All Downloads are FREE. Search and download functionalities are using the official Maven repository.

wechat.protobuf.ModContact Maven / Gradle / Ivy

There is a newer version: 8.0.48.01
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: wechat.proto

package wechat.protobuf;

/**
 * Protobuf type {@code wechat_proto.ModContact}
 */
public final class ModContact extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:wechat_proto.ModContact)
    ModContactOrBuilder {
private static final long serialVersionUID = 0L;
  // Use ModContact.newBuilder() to construct.
  private ModContact(com.google.protobuf.GeneratedMessageV3.Builder builder) {
    super(builder);
  }
  private ModContact() {
    roomInfoList_ = java.util.Collections.emptyList();
    province_ = "";
    city_ = "";
    signature_ = "";
    verifyInfo_ = "";
    weibo_ = "";
    verifyContent_ = "";
    alias_ = "";
    chatRoomOwner_ = "";
    weiboNickname_ = "";
    albumBgimgId_ = "";
    country_ = "";
    bigHeadImgUrl_ = "";
    smallHeadImgUrl_ = "";
    myBrandList_ = "";
    chatRoomData_ = "";
    headImgMd5_ = "";
    encryptUserName_ = "";
    idcardNum_ = "";
    realName_ = "";
    mobileHash_ = "";
    mobileFullHash_ = "";
    extInfo_ = "";
    description_ = "";
    cardImgUrl_ = "";
    labelIdlist_ = "";
    weiDianInfo_ = "";
    sourceExtInfo_ = "";
  }

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

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private ModContact(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    int mutable_bitField1_ = 0;
    int mutable_bitField2_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000001) != 0)) {
              subBuilder = userName_.toBuilder();
            }
            userName_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(userName_);
              userName_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000001;
            break;
          }
          case 18: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000002) != 0)) {
              subBuilder = nickName_.toBuilder();
            }
            nickName_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(nickName_);
              nickName_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000002;
            break;
          }
          case 26: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000004) != 0)) {
              subBuilder = pyinitial_.toBuilder();
            }
            pyinitial_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(pyinitial_);
              pyinitial_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000004;
            break;
          }
          case 34: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000008) != 0)) {
              subBuilder = quanPin_.toBuilder();
            }
            quanPin_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(quanPin_);
              quanPin_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000008;
            break;
          }
          case 40: {
            bitField0_ |= 0x00000010;
            sex_ = input.readInt32();
            break;
          }
          case 50: {
            wechat.protobuf.SKBuiltinString_.Builder subBuilder = null;
            if (((bitField0_ & 0x00000020) != 0)) {
              subBuilder = imgBuf_.toBuilder();
            }
            imgBuf_ = input.readMessage(wechat.protobuf.SKBuiltinString_.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(imgBuf_);
              imgBuf_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000020;
            break;
          }
          case 56: {
            bitField0_ |= 0x00000040;
            bitMask_ = input.readUInt32();
            break;
          }
          case 64: {
            bitField0_ |= 0x00000080;
            bitVal_ = input.readUInt32();
            break;
          }
          case 72: {
            bitField0_ |= 0x00000100;
            imgFlag_ = input.readUInt32();
            break;
          }
          case 82: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000200) != 0)) {
              subBuilder = remark_.toBuilder();
            }
            remark_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(remark_);
              remark_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000200;
            break;
          }
          case 90: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000400) != 0)) {
              subBuilder = remarkPyinitial_.toBuilder();
            }
            remarkPyinitial_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(remarkPyinitial_);
              remarkPyinitial_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000400;
            break;
          }
          case 98: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00000800) != 0)) {
              subBuilder = remarkQuanPin_.toBuilder();
            }
            remarkQuanPin_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(remarkQuanPin_);
              remarkQuanPin_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00000800;
            break;
          }
          case 104: {
            bitField0_ |= 0x00001000;
            contactType_ = input.readUInt32();
            break;
          }
          case 112: {
            bitField0_ |= 0x00002000;
            roomInfoNum_ = input.readUInt32();
            break;
          }
          case 122: {
            if (!((mutable_bitField0_ & 0x00004000) != 0)) {
              roomInfoList_ = new java.util.ArrayList();
              mutable_bitField0_ |= 0x00004000;
            }
            roomInfoList_.add(
                input.readMessage(wechat.protobuf.RoomInfo.PARSER, extensionRegistry));
            break;
          }
          case 130: {
            wechat.protobuf.SKBuiltinString.Builder subBuilder = null;
            if (((bitField0_ & 0x00004000) != 0)) {
              subBuilder = domainList_.toBuilder();
            }
            domainList_ = input.readMessage(wechat.protobuf.SKBuiltinString.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(domainList_);
              domainList_ = subBuilder.buildPartial();
            }
            bitField0_ |= 0x00004000;
            break;
          }
          case 136: {
            bitField0_ |= 0x00008000;
            chatRoomNotify_ = input.readUInt32();
            break;
          }
          case 144: {
            bitField0_ |= 0x00010000;
            addContactScene_ = input.readUInt32();
            break;
          }
          case 154: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00020000;
            province_ = bs;
            break;
          }
          case 162: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00040000;
            city_ = bs;
            break;
          }
          case 170: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00080000;
            signature_ = bs;
            break;
          }
          case 176: {
            bitField0_ |= 0x00100000;
            personalCard_ = input.readUInt32();
            break;
          }
          case 184: {
            bitField0_ |= 0x00200000;
            hasWeiXinHdHeadImg_ = input.readUInt32();
            break;
          }
          case 192: {
            bitField0_ |= 0x00400000;
            verifyFlag_ = input.readUInt32();
            break;
          }
          case 202: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x00800000;
            verifyInfo_ = bs;
            break;
          }
          case 208: {
            bitField0_ |= 0x01000000;
            level_ = input.readInt32();
            break;
          }
          case 216: {
            bitField0_ |= 0x02000000;
            source_ = input.readUInt32();
            break;
          }
          case 226: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x04000000;
            weibo_ = bs;
            break;
          }
          case 234: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x08000000;
            verifyContent_ = bs;
            break;
          }
          case 242: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x10000000;
            alias_ = bs;
            break;
          }
          case 250: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x20000000;
            chatRoomOwner_ = bs;
            break;
          }
          case 258: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField0_ |= 0x40000000;
            weiboNickname_ = bs;
            break;
          }
          case 264: {
            bitField0_ |= 0x80000000;
            weiboFlag_ = input.readUInt32();
            break;
          }
          case 272: {
            bitField1_ |= 0x00000001;
            albumStyle_ = input.readInt32();
            break;
          }
          case 280: {
            bitField1_ |= 0x00000002;
            albumFlag_ = input.readInt32();
            break;
          }
          case 290: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000004;
            albumBgimgId_ = bs;
            break;
          }
          case 298: {
            wechat.protobuf.SnsUserInfo.Builder subBuilder = null;
            if (((bitField1_ & 0x00000008) != 0)) {
              subBuilder = snsUserInfo_.toBuilder();
            }
            snsUserInfo_ = input.readMessage(wechat.protobuf.SnsUserInfo.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(snsUserInfo_);
              snsUserInfo_ = subBuilder.buildPartial();
            }
            bitField1_ |= 0x00000008;
            break;
          }
          case 306: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000010;
            country_ = bs;
            break;
          }
          case 314: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000020;
            bigHeadImgUrl_ = bs;
            break;
          }
          case 322: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000040;
            smallHeadImgUrl_ = bs;
            break;
          }
          case 330: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000080;
            myBrandList_ = bs;
            break;
          }
          case 338: {
            wechat.protobuf.CustomizedInfo.Builder subBuilder = null;
            if (((bitField1_ & 0x00000100) != 0)) {
              subBuilder = customizedInfo_.toBuilder();
            }
            customizedInfo_ = input.readMessage(wechat.protobuf.CustomizedInfo.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(customizedInfo_);
              customizedInfo_ = subBuilder.buildPartial();
            }
            bitField1_ |= 0x00000100;
            break;
          }
          case 346: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000200;
            chatRoomData_ = bs;
            break;
          }
          case 354: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000400;
            headImgMd5_ = bs;
            break;
          }
          case 362: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00000800;
            encryptUserName_ = bs;
            break;
          }
          case 370: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00001000;
            idcardNum_ = bs;
            break;
          }
          case 378: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00002000;
            realName_ = bs;
            break;
          }
          case 386: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00004000;
            mobileHash_ = bs;
            break;
          }
          case 394: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00008000;
            mobileFullHash_ = bs;
            break;
          }
          case 402: {
            wechat.protobuf.AdditionalContactList.Builder subBuilder = null;
            if (((bitField1_ & 0x00010000) != 0)) {
              subBuilder = additionalContactList_.toBuilder();
            }
            additionalContactList_ = input.readMessage(wechat.protobuf.AdditionalContactList.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(additionalContactList_);
              additionalContactList_ = subBuilder.buildPartial();
            }
            bitField1_ |= 0x00010000;
            break;
          }
          case 424: {
            bitField1_ |= 0x00020000;
            chatroomVersion_ = input.readUInt32();
            break;
          }
          case 434: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00040000;
            extInfo_ = bs;
            break;
          }
          case 440: {
            bitField1_ |= 0x00080000;
            chatroomMaxNum_ = input.readUInt32();
            break;
          }
          case 448: {
            bitField1_ |= 0x00100000;
            chatroomAccessType_ = input.readUInt32();
            break;
          }
          case 458: {
            wechat.protobuf.ChatRoomMemberData.Builder subBuilder = null;
            if (((bitField1_ & 0x00200000) != 0)) {
              subBuilder = newChatroomData_.toBuilder();
            }
            newChatroomData_ = input.readMessage(wechat.protobuf.ChatRoomMemberData.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(newChatroomData_);
              newChatroomData_ = subBuilder.buildPartial();
            }
            bitField1_ |= 0x00200000;
            break;
          }
          case 464: {
            bitField1_ |= 0x00400000;
            deleteFlag_ = input.readInt32();
            break;
          }
          case 474: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x00800000;
            description_ = bs;
            break;
          }
          case 482: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x01000000;
            cardImgUrl_ = bs;
            break;
          }
          case 490: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x02000000;
            labelIdlist_ = bs;
            break;
          }
          case 498: {
            wechat.protobuf.PhoneNumListInfo.Builder subBuilder = null;
            if (((bitField1_ & 0x04000000) != 0)) {
              subBuilder = phoneNumListInfo_.toBuilder();
            }
            phoneNumListInfo_ = input.readMessage(wechat.protobuf.PhoneNumListInfo.PARSER, extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(phoneNumListInfo_);
              phoneNumListInfo_ = subBuilder.buildPartial();
            }
            bitField1_ |= 0x04000000;
            break;
          }
          case 506: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField1_ |= 0x08000000;
            weiDianInfo_ = bs;
            break;
          }
          case 512: {
            bitField1_ |= 0x10000000;
            chatroomInfoVersion_ = input.readUInt32();
            break;
          }
          case 520: {
            bitField1_ |= 0x20000000;
            deleteContactScene_ = input.readUInt32();
            break;
          }
          case 528: {
            bitField1_ |= 0x40000000;
            chatroomStatus_ = input.readUInt32();
            break;
          }
          case 536: {
            bitField1_ |= 0x80000000;
            extFlag_ = input.readUInt32();
            break;
          }
          case 546: {
            com.google.protobuf.ByteString bs = input.readBytes();
            bitField2_ |= 0x00000001;
            sourceExtInfo_ = bs;
            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00004000) != 0)) {
        roomInfoList_ = java.util.Collections.unmodifiableList(roomInfoList_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }
  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return wechat.protobuf.Wechat.internal_static_wechat_proto_ModContact_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return wechat.protobuf.Wechat.internal_static_wechat_proto_ModContact_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            wechat.protobuf.ModContact.class, wechat.protobuf.ModContact.Builder.class);
  }

  private int bitField0_;
  private int bitField1_;
  private int bitField2_;
  public static final int USERNAME_FIELD_NUMBER = 1;
  private wechat.protobuf.SKBuiltinString userName_;
  /**
   * optional .wechat_proto.SKBuiltinString userName = 1;
   * @return Whether the userName field is set.
   */
  @java.lang.Override
  public boolean hasUserName() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString userName = 1;
   * @return The userName.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getUserName() {
    return userName_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : userName_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString userName = 1;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getUserNameOrBuilder() {
    return userName_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : userName_;
  }

  public static final int NICKNAME_FIELD_NUMBER = 2;
  private wechat.protobuf.SKBuiltinString nickName_;
  /**
   * optional .wechat_proto.SKBuiltinString nickName = 2;
   * @return Whether the nickName field is set.
   */
  @java.lang.Override
  public boolean hasNickName() {
    return ((bitField0_ & 0x00000002) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString nickName = 2;
   * @return The nickName.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getNickName() {
    return nickName_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : nickName_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString nickName = 2;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getNickNameOrBuilder() {
    return nickName_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : nickName_;
  }

  public static final int PYINITIAL_FIELD_NUMBER = 3;
  private wechat.protobuf.SKBuiltinString pyinitial_;
  /**
   * optional .wechat_proto.SKBuiltinString pyinitial = 3;
   * @return Whether the pyinitial field is set.
   */
  @java.lang.Override
  public boolean hasPyinitial() {
    return ((bitField0_ & 0x00000004) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString pyinitial = 3;
   * @return The pyinitial.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getPyinitial() {
    return pyinitial_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : pyinitial_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString pyinitial = 3;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getPyinitialOrBuilder() {
    return pyinitial_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : pyinitial_;
  }

  public static final int QUANPIN_FIELD_NUMBER = 4;
  private wechat.protobuf.SKBuiltinString quanPin_;
  /**
   * optional .wechat_proto.SKBuiltinString quanPin = 4;
   * @return Whether the quanPin field is set.
   */
  @java.lang.Override
  public boolean hasQuanPin() {
    return ((bitField0_ & 0x00000008) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString quanPin = 4;
   * @return The quanPin.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getQuanPin() {
    return quanPin_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : quanPin_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString quanPin = 4;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getQuanPinOrBuilder() {
    return quanPin_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : quanPin_;
  }

  public static final int SEX_FIELD_NUMBER = 5;
  private int sex_;
  /**
   * optional int32 sex = 5;
   * @return Whether the sex field is set.
   */
  @java.lang.Override
  public boolean hasSex() {
    return ((bitField0_ & 0x00000010) != 0);
  }
  /**
   * optional int32 sex = 5;
   * @return The sex.
   */
  @java.lang.Override
  public int getSex() {
    return sex_;
  }

  public static final int IMGBUF_FIELD_NUMBER = 6;
  private wechat.protobuf.SKBuiltinString_ imgBuf_;
  /**
   * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
   * @return Whether the imgBuf field is set.
   */
  @java.lang.Override
  public boolean hasImgBuf() {
    return ((bitField0_ & 0x00000020) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
   * @return The imgBuf.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString_ getImgBuf() {
    return imgBuf_ == null ? wechat.protobuf.SKBuiltinString_.getDefaultInstance() : imgBuf_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString_OrBuilder getImgBufOrBuilder() {
    return imgBuf_ == null ? wechat.protobuf.SKBuiltinString_.getDefaultInstance() : imgBuf_;
  }

  public static final int BITMASK_FIELD_NUMBER = 7;
  private int bitMask_;
  /**
   * optional uint32 bitMask = 7;
   * @return Whether the bitMask field is set.
   */
  @java.lang.Override
  public boolean hasBitMask() {
    return ((bitField0_ & 0x00000040) != 0);
  }
  /**
   * optional uint32 bitMask = 7;
   * @return The bitMask.
   */
  @java.lang.Override
  public int getBitMask() {
    return bitMask_;
  }

  public static final int BITVAL_FIELD_NUMBER = 8;
  private int bitVal_;
  /**
   * optional uint32 bitVal = 8;
   * @return Whether the bitVal field is set.
   */
  @java.lang.Override
  public boolean hasBitVal() {
    return ((bitField0_ & 0x00000080) != 0);
  }
  /**
   * optional uint32 bitVal = 8;
   * @return The bitVal.
   */
  @java.lang.Override
  public int getBitVal() {
    return bitVal_;
  }

  public static final int IMGFLAG_FIELD_NUMBER = 9;
  private int imgFlag_;
  /**
   * optional uint32 imgFlag = 9;
   * @return Whether the imgFlag field is set.
   */
  @java.lang.Override
  public boolean hasImgFlag() {
    return ((bitField0_ & 0x00000100) != 0);
  }
  /**
   * optional uint32 imgFlag = 9;
   * @return The imgFlag.
   */
  @java.lang.Override
  public int getImgFlag() {
    return imgFlag_;
  }

  public static final int REMARK_FIELD_NUMBER = 10;
  private wechat.protobuf.SKBuiltinString remark_;
  /**
   * optional .wechat_proto.SKBuiltinString remark = 10;
   * @return Whether the remark field is set.
   */
  @java.lang.Override
  public boolean hasRemark() {
    return ((bitField0_ & 0x00000200) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString remark = 10;
   * @return The remark.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getRemark() {
    return remark_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remark_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString remark = 10;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getRemarkOrBuilder() {
    return remark_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remark_;
  }

  public static final int REMARKPYINITIAL_FIELD_NUMBER = 11;
  private wechat.protobuf.SKBuiltinString remarkPyinitial_;
  /**
   * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
   * @return Whether the remarkPyinitial field is set.
   */
  @java.lang.Override
  public boolean hasRemarkPyinitial() {
    return ((bitField0_ & 0x00000400) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
   * @return The remarkPyinitial.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getRemarkPyinitial() {
    return remarkPyinitial_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkPyinitial_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getRemarkPyinitialOrBuilder() {
    return remarkPyinitial_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkPyinitial_;
  }

  public static final int REMARKQUANPIN_FIELD_NUMBER = 12;
  private wechat.protobuf.SKBuiltinString remarkQuanPin_;
  /**
   * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
   * @return Whether the remarkQuanPin field is set.
   */
  @java.lang.Override
  public boolean hasRemarkQuanPin() {
    return ((bitField0_ & 0x00000800) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
   * @return The remarkQuanPin.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getRemarkQuanPin() {
    return remarkQuanPin_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkQuanPin_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getRemarkQuanPinOrBuilder() {
    return remarkQuanPin_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkQuanPin_;
  }

  public static final int CONTACTTYPE_FIELD_NUMBER = 13;
  private int contactType_;
  /**
   * optional uint32 contactType = 13;
   * @return Whether the contactType field is set.
   */
  @java.lang.Override
  public boolean hasContactType() {
    return ((bitField0_ & 0x00001000) != 0);
  }
  /**
   * optional uint32 contactType = 13;
   * @return The contactType.
   */
  @java.lang.Override
  public int getContactType() {
    return contactType_;
  }

  public static final int ROOMINFONUM_FIELD_NUMBER = 14;
  private int roomInfoNum_;
  /**
   * optional uint32 roomInfoNum = 14;
   * @return Whether the roomInfoNum field is set.
   */
  @java.lang.Override
  public boolean hasRoomInfoNum() {
    return ((bitField0_ & 0x00002000) != 0);
  }
  /**
   * optional uint32 roomInfoNum = 14;
   * @return The roomInfoNum.
   */
  @java.lang.Override
  public int getRoomInfoNum() {
    return roomInfoNum_;
  }

  public static final int ROOMINFOLIST_FIELD_NUMBER = 15;
  private java.util.List roomInfoList_;
  /**
   * repeated .wechat_proto.RoomInfo roomInfoList = 15;
   */
  @java.lang.Override
  public java.util.List getRoomInfoListList() {
    return roomInfoList_;
  }
  /**
   * repeated .wechat_proto.RoomInfo roomInfoList = 15;
   */
  @java.lang.Override
  public java.util.List 
      getRoomInfoListOrBuilderList() {
    return roomInfoList_;
  }
  /**
   * repeated .wechat_proto.RoomInfo roomInfoList = 15;
   */
  @java.lang.Override
  public int getRoomInfoListCount() {
    return roomInfoList_.size();
  }
  /**
   * repeated .wechat_proto.RoomInfo roomInfoList = 15;
   */
  @java.lang.Override
  public wechat.protobuf.RoomInfo getRoomInfoList(int index) {
    return roomInfoList_.get(index);
  }
  /**
   * repeated .wechat_proto.RoomInfo roomInfoList = 15;
   */
  @java.lang.Override
  public wechat.protobuf.RoomInfoOrBuilder getRoomInfoListOrBuilder(
      int index) {
    return roomInfoList_.get(index);
  }

  public static final int DOMAINLIST_FIELD_NUMBER = 16;
  private wechat.protobuf.SKBuiltinString domainList_;
  /**
   * optional .wechat_proto.SKBuiltinString domainList = 16;
   * @return Whether the domainList field is set.
   */
  @java.lang.Override
  public boolean hasDomainList() {
    return ((bitField0_ & 0x00004000) != 0);
  }
  /**
   * optional .wechat_proto.SKBuiltinString domainList = 16;
   * @return The domainList.
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinString getDomainList() {
    return domainList_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : domainList_;
  }
  /**
   * optional .wechat_proto.SKBuiltinString domainList = 16;
   */
  @java.lang.Override
  public wechat.protobuf.SKBuiltinStringOrBuilder getDomainListOrBuilder() {
    return domainList_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : domainList_;
  }

  public static final int CHATROOMNOTIFY_FIELD_NUMBER = 17;
  private int chatRoomNotify_;
  /**
   * optional uint32 chatRoomNotify = 17;
   * @return Whether the chatRoomNotify field is set.
   */
  @java.lang.Override
  public boolean hasChatRoomNotify() {
    return ((bitField0_ & 0x00008000) != 0);
  }
  /**
   * optional uint32 chatRoomNotify = 17;
   * @return The chatRoomNotify.
   */
  @java.lang.Override
  public int getChatRoomNotify() {
    return chatRoomNotify_;
  }

  public static final int ADDCONTACTSCENE_FIELD_NUMBER = 18;
  private int addContactScene_;
  /**
   * optional uint32 addContactScene = 18;
   * @return Whether the addContactScene field is set.
   */
  @java.lang.Override
  public boolean hasAddContactScene() {
    return ((bitField0_ & 0x00010000) != 0);
  }
  /**
   * optional uint32 addContactScene = 18;
   * @return The addContactScene.
   */
  @java.lang.Override
  public int getAddContactScene() {
    return addContactScene_;
  }

  public static final int PROVINCE_FIELD_NUMBER = 19;
  private volatile java.lang.Object province_;
  /**
   * optional string province = 19;
   * @return Whether the province field is set.
   */
  @java.lang.Override
  public boolean hasProvince() {
    return ((bitField0_ & 0x00020000) != 0);
  }
  /**
   * optional string province = 19;
   * @return The province.
   */
  @java.lang.Override
  public java.lang.String getProvince() {
    java.lang.Object ref = province_;
    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()) {
        province_ = s;
      }
      return s;
    }
  }
  /**
   * optional string province = 19;
   * @return The bytes for province.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getProvinceBytes() {
    java.lang.Object ref = province_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      province_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CITY_FIELD_NUMBER = 20;
  private volatile java.lang.Object city_;
  /**
   * optional string city = 20;
   * @return Whether the city field is set.
   */
  @java.lang.Override
  public boolean hasCity() {
    return ((bitField0_ & 0x00040000) != 0);
  }
  /**
   * optional string city = 20;
   * @return The city.
   */
  @java.lang.Override
  public java.lang.String getCity() {
    java.lang.Object ref = city_;
    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()) {
        city_ = s;
      }
      return s;
    }
  }
  /**
   * optional string city = 20;
   * @return The bytes for city.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCityBytes() {
    java.lang.Object ref = city_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      city_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int SIGNATURE_FIELD_NUMBER = 21;
  private volatile java.lang.Object signature_;
  /**
   * optional string signature = 21;
   * @return Whether the signature field is set.
   */
  @java.lang.Override
  public boolean hasSignature() {
    return ((bitField0_ & 0x00080000) != 0);
  }
  /**
   * optional string signature = 21;
   * @return The signature.
   */
  @java.lang.Override
  public java.lang.String getSignature() {
    java.lang.Object ref = signature_;
    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()) {
        signature_ = s;
      }
      return s;
    }
  }
  /**
   * optional string signature = 21;
   * @return The bytes for signature.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getSignatureBytes() {
    java.lang.Object ref = signature_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      signature_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int PERSONALCARD_FIELD_NUMBER = 22;
  private int personalCard_;
  /**
   * optional uint32 personalCard = 22;
   * @return Whether the personalCard field is set.
   */
  @java.lang.Override
  public boolean hasPersonalCard() {
    return ((bitField0_ & 0x00100000) != 0);
  }
  /**
   * optional uint32 personalCard = 22;
   * @return The personalCard.
   */
  @java.lang.Override
  public int getPersonalCard() {
    return personalCard_;
  }

  public static final int HASWEIXINHDHEADIMG_FIELD_NUMBER = 23;
  private int hasWeiXinHdHeadImg_;
  /**
   * optional uint32 hasWeiXinHdHeadImg = 23;
   * @return Whether the hasWeiXinHdHeadImg field is set.
   */
  @java.lang.Override
  public boolean hasHasWeiXinHdHeadImg() {
    return ((bitField0_ & 0x00200000) != 0);
  }
  /**
   * optional uint32 hasWeiXinHdHeadImg = 23;
   * @return The hasWeiXinHdHeadImg.
   */
  @java.lang.Override
  public int getHasWeiXinHdHeadImg() {
    return hasWeiXinHdHeadImg_;
  }

  public static final int VERIFYFLAG_FIELD_NUMBER = 24;
  private int verifyFlag_;
  /**
   * optional uint32 verifyFlag = 24;
   * @return Whether the verifyFlag field is set.
   */
  @java.lang.Override
  public boolean hasVerifyFlag() {
    return ((bitField0_ & 0x00400000) != 0);
  }
  /**
   * optional uint32 verifyFlag = 24;
   * @return The verifyFlag.
   */
  @java.lang.Override
  public int getVerifyFlag() {
    return verifyFlag_;
  }

  public static final int VERIFYINFO_FIELD_NUMBER = 25;
  private volatile java.lang.Object verifyInfo_;
  /**
   * optional string verifyInfo = 25;
   * @return Whether the verifyInfo field is set.
   */
  @java.lang.Override
  public boolean hasVerifyInfo() {
    return ((bitField0_ & 0x00800000) != 0);
  }
  /**
   * optional string verifyInfo = 25;
   * @return The verifyInfo.
   */
  @java.lang.Override
  public java.lang.String getVerifyInfo() {
    java.lang.Object ref = verifyInfo_;
    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()) {
        verifyInfo_ = s;
      }
      return s;
    }
  }
  /**
   * optional string verifyInfo = 25;
   * @return The bytes for verifyInfo.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getVerifyInfoBytes() {
    java.lang.Object ref = verifyInfo_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      verifyInfo_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int LEVEL_FIELD_NUMBER = 26;
  private int level_;
  /**
   * optional int32 level = 26;
   * @return Whether the level field is set.
   */
  @java.lang.Override
  public boolean hasLevel() {
    return ((bitField0_ & 0x01000000) != 0);
  }
  /**
   * optional int32 level = 26;
   * @return The level.
   */
  @java.lang.Override
  public int getLevel() {
    return level_;
  }

  public static final int SOURCE_FIELD_NUMBER = 27;
  private int source_;
  /**
   * optional uint32 source = 27;
   * @return Whether the source field is set.
   */
  @java.lang.Override
  public boolean hasSource() {
    return ((bitField0_ & 0x02000000) != 0);
  }
  /**
   * optional uint32 source = 27;
   * @return The source.
   */
  @java.lang.Override
  public int getSource() {
    return source_;
  }

  public static final int WEIBO_FIELD_NUMBER = 28;
  private volatile java.lang.Object weibo_;
  /**
   * optional string weibo = 28;
   * @return Whether the weibo field is set.
   */
  @java.lang.Override
  public boolean hasWeibo() {
    return ((bitField0_ & 0x04000000) != 0);
  }
  /**
   * optional string weibo = 28;
   * @return The weibo.
   */
  @java.lang.Override
  public java.lang.String getWeibo() {
    java.lang.Object ref = weibo_;
    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()) {
        weibo_ = s;
      }
      return s;
    }
  }
  /**
   * optional string weibo = 28;
   * @return The bytes for weibo.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getWeiboBytes() {
    java.lang.Object ref = weibo_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      weibo_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int VERIFYCONTENT_FIELD_NUMBER = 29;
  private volatile java.lang.Object verifyContent_;
  /**
   * optional string verifyContent = 29;
   * @return Whether the verifyContent field is set.
   */
  @java.lang.Override
  public boolean hasVerifyContent() {
    return ((bitField0_ & 0x08000000) != 0);
  }
  /**
   * optional string verifyContent = 29;
   * @return The verifyContent.
   */
  @java.lang.Override
  public java.lang.String getVerifyContent() {
    java.lang.Object ref = verifyContent_;
    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()) {
        verifyContent_ = s;
      }
      return s;
    }
  }
  /**
   * optional string verifyContent = 29;
   * @return The bytes for verifyContent.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getVerifyContentBytes() {
    java.lang.Object ref = verifyContent_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      verifyContent_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int ALIAS_FIELD_NUMBER = 30;
  private volatile java.lang.Object alias_;
  /**
   * optional string alias = 30;
   * @return Whether the alias field is set.
   */
  @java.lang.Override
  public boolean hasAlias() {
    return ((bitField0_ & 0x10000000) != 0);
  }
  /**
   * optional string alias = 30;
   * @return The alias.
   */
  @java.lang.Override
  public java.lang.String getAlias() {
    java.lang.Object ref = alias_;
    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()) {
        alias_ = s;
      }
      return s;
    }
  }
  /**
   * optional string alias = 30;
   * @return The bytes for alias.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getAliasBytes() {
    java.lang.Object ref = alias_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      alias_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CHATROOMOWNER_FIELD_NUMBER = 31;
  private volatile java.lang.Object chatRoomOwner_;
  /**
   * optional string chatRoomOwner = 31;
   * @return Whether the chatRoomOwner field is set.
   */
  @java.lang.Override
  public boolean hasChatRoomOwner() {
    return ((bitField0_ & 0x20000000) != 0);
  }
  /**
   * optional string chatRoomOwner = 31;
   * @return The chatRoomOwner.
   */
  @java.lang.Override
  public java.lang.String getChatRoomOwner() {
    java.lang.Object ref = chatRoomOwner_;
    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()) {
        chatRoomOwner_ = s;
      }
      return s;
    }
  }
  /**
   * optional string chatRoomOwner = 31;
   * @return The bytes for chatRoomOwner.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getChatRoomOwnerBytes() {
    java.lang.Object ref = chatRoomOwner_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      chatRoomOwner_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int WEIBONICKNAME_FIELD_NUMBER = 32;
  private volatile java.lang.Object weiboNickname_;
  /**
   * optional string weiboNickname = 32;
   * @return Whether the weiboNickname field is set.
   */
  @java.lang.Override
  public boolean hasWeiboNickname() {
    return ((bitField0_ & 0x40000000) != 0);
  }
  /**
   * optional string weiboNickname = 32;
   * @return The weiboNickname.
   */
  @java.lang.Override
  public java.lang.String getWeiboNickname() {
    java.lang.Object ref = weiboNickname_;
    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()) {
        weiboNickname_ = s;
      }
      return s;
    }
  }
  /**
   * optional string weiboNickname = 32;
   * @return The bytes for weiboNickname.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getWeiboNicknameBytes() {
    java.lang.Object ref = weiboNickname_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      weiboNickname_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int WEIBOFLAG_FIELD_NUMBER = 33;
  private int weiboFlag_;
  /**
   * optional uint32 weiboFlag = 33;
   * @return Whether the weiboFlag field is set.
   */
  @java.lang.Override
  public boolean hasWeiboFlag() {
    return ((bitField0_ & 0x80000000) != 0);
  }
  /**
   * optional uint32 weiboFlag = 33;
   * @return The weiboFlag.
   */
  @java.lang.Override
  public int getWeiboFlag() {
    return weiboFlag_;
  }

  public static final int ALBUMSTYLE_FIELD_NUMBER = 34;
  private int albumStyle_;
  /**
   * optional int32 albumStyle = 34;
   * @return Whether the albumStyle field is set.
   */
  @java.lang.Override
  public boolean hasAlbumStyle() {
    return ((bitField1_ & 0x00000001) != 0);
  }
  /**
   * optional int32 albumStyle = 34;
   * @return The albumStyle.
   */
  @java.lang.Override
  public int getAlbumStyle() {
    return albumStyle_;
  }

  public static final int ALBUMFLAG_FIELD_NUMBER = 35;
  private int albumFlag_;
  /**
   * optional int32 albumFlag = 35;
   * @return Whether the albumFlag field is set.
   */
  @java.lang.Override
  public boolean hasAlbumFlag() {
    return ((bitField1_ & 0x00000002) != 0);
  }
  /**
   * optional int32 albumFlag = 35;
   * @return The albumFlag.
   */
  @java.lang.Override
  public int getAlbumFlag() {
    return albumFlag_;
  }

  public static final int ALBUMBGIMGID_FIELD_NUMBER = 36;
  private volatile java.lang.Object albumBgimgId_;
  /**
   * optional string albumBgimgId = 36;
   * @return Whether the albumBgimgId field is set.
   */
  @java.lang.Override
  public boolean hasAlbumBgimgId() {
    return ((bitField1_ & 0x00000004) != 0);
  }
  /**
   * optional string albumBgimgId = 36;
   * @return The albumBgimgId.
   */
  @java.lang.Override
  public java.lang.String getAlbumBgimgId() {
    java.lang.Object ref = albumBgimgId_;
    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()) {
        albumBgimgId_ = s;
      }
      return s;
    }
  }
  /**
   * optional string albumBgimgId = 36;
   * @return The bytes for albumBgimgId.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getAlbumBgimgIdBytes() {
    java.lang.Object ref = albumBgimgId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      albumBgimgId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int SNSUSERINFO_FIELD_NUMBER = 37;
  private wechat.protobuf.SnsUserInfo snsUserInfo_;
  /**
   * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
   * @return Whether the snsUserInfo field is set.
   */
  @java.lang.Override
  public boolean hasSnsUserInfo() {
    return ((bitField1_ & 0x00000008) != 0);
  }
  /**
   * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
   * @return The snsUserInfo.
   */
  @java.lang.Override
  public wechat.protobuf.SnsUserInfo getSnsUserInfo() {
    return snsUserInfo_ == null ? wechat.protobuf.SnsUserInfo.getDefaultInstance() : snsUserInfo_;
  }
  /**
   * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
   */
  @java.lang.Override
  public wechat.protobuf.SnsUserInfoOrBuilder getSnsUserInfoOrBuilder() {
    return snsUserInfo_ == null ? wechat.protobuf.SnsUserInfo.getDefaultInstance() : snsUserInfo_;
  }

  public static final int COUNTRY_FIELD_NUMBER = 38;
  private volatile java.lang.Object country_;
  /**
   * optional string country = 38;
   * @return Whether the country field is set.
   */
  @java.lang.Override
  public boolean hasCountry() {
    return ((bitField1_ & 0x00000010) != 0);
  }
  /**
   * optional string country = 38;
   * @return The country.
   */
  @java.lang.Override
  public java.lang.String getCountry() {
    java.lang.Object ref = country_;
    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()) {
        country_ = s;
      }
      return s;
    }
  }
  /**
   * optional string country = 38;
   * @return The bytes for country.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCountryBytes() {
    java.lang.Object ref = country_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      country_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int BIGHEADIMGURL_FIELD_NUMBER = 39;
  private volatile java.lang.Object bigHeadImgUrl_;
  /**
   * optional string bigHeadImgUrl = 39;
   * @return Whether the bigHeadImgUrl field is set.
   */
  @java.lang.Override
  public boolean hasBigHeadImgUrl() {
    return ((bitField1_ & 0x00000020) != 0);
  }
  /**
   * optional string bigHeadImgUrl = 39;
   * @return The bigHeadImgUrl.
   */
  @java.lang.Override
  public java.lang.String getBigHeadImgUrl() {
    java.lang.Object ref = bigHeadImgUrl_;
    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()) {
        bigHeadImgUrl_ = s;
      }
      return s;
    }
  }
  /**
   * optional string bigHeadImgUrl = 39;
   * @return The bytes for bigHeadImgUrl.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getBigHeadImgUrlBytes() {
    java.lang.Object ref = bigHeadImgUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      bigHeadImgUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int SMALLHEADIMGURL_FIELD_NUMBER = 40;
  private volatile java.lang.Object smallHeadImgUrl_;
  /**
   * optional string smallHeadImgUrl = 40;
   * @return Whether the smallHeadImgUrl field is set.
   */
  @java.lang.Override
  public boolean hasSmallHeadImgUrl() {
    return ((bitField1_ & 0x00000040) != 0);
  }
  /**
   * optional string smallHeadImgUrl = 40;
   * @return The smallHeadImgUrl.
   */
  @java.lang.Override
  public java.lang.String getSmallHeadImgUrl() {
    java.lang.Object ref = smallHeadImgUrl_;
    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()) {
        smallHeadImgUrl_ = s;
      }
      return s;
    }
  }
  /**
   * optional string smallHeadImgUrl = 40;
   * @return The bytes for smallHeadImgUrl.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getSmallHeadImgUrlBytes() {
    java.lang.Object ref = smallHeadImgUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      smallHeadImgUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MYBRANDLIST_FIELD_NUMBER = 41;
  private volatile java.lang.Object myBrandList_;
  /**
   * optional string myBrandList = 41;
   * @return Whether the myBrandList field is set.
   */
  @java.lang.Override
  public boolean hasMyBrandList() {
    return ((bitField1_ & 0x00000080) != 0);
  }
  /**
   * optional string myBrandList = 41;
   * @return The myBrandList.
   */
  @java.lang.Override
  public java.lang.String getMyBrandList() {
    java.lang.Object ref = myBrandList_;
    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()) {
        myBrandList_ = s;
      }
      return s;
    }
  }
  /**
   * optional string myBrandList = 41;
   * @return The bytes for myBrandList.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMyBrandListBytes() {
    java.lang.Object ref = myBrandList_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      myBrandList_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CUSTOMIZEDINFO_FIELD_NUMBER = 42;
  private wechat.protobuf.CustomizedInfo customizedInfo_;
  /**
   * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
   * @return Whether the customizedInfo field is set.
   */
  @java.lang.Override
  public boolean hasCustomizedInfo() {
    return ((bitField1_ & 0x00000100) != 0);
  }
  /**
   * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
   * @return The customizedInfo.
   */
  @java.lang.Override
  public wechat.protobuf.CustomizedInfo getCustomizedInfo() {
    return customizedInfo_ == null ? wechat.protobuf.CustomizedInfo.getDefaultInstance() : customizedInfo_;
  }
  /**
   * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
   */
  @java.lang.Override
  public wechat.protobuf.CustomizedInfoOrBuilder getCustomizedInfoOrBuilder() {
    return customizedInfo_ == null ? wechat.protobuf.CustomizedInfo.getDefaultInstance() : customizedInfo_;
  }

  public static final int CHATROOMDATA_FIELD_NUMBER = 43;
  private volatile java.lang.Object chatRoomData_;
  /**
   * optional string chatRoomData = 43;
   * @return Whether the chatRoomData field is set.
   */
  @java.lang.Override
  public boolean hasChatRoomData() {
    return ((bitField1_ & 0x00000200) != 0);
  }
  /**
   * optional string chatRoomData = 43;
   * @return The chatRoomData.
   */
  @java.lang.Override
  public java.lang.String getChatRoomData() {
    java.lang.Object ref = chatRoomData_;
    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()) {
        chatRoomData_ = s;
      }
      return s;
    }
  }
  /**
   * optional string chatRoomData = 43;
   * @return The bytes for chatRoomData.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getChatRoomDataBytes() {
    java.lang.Object ref = chatRoomData_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      chatRoomData_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int HEADIMGMD5_FIELD_NUMBER = 44;
  private volatile java.lang.Object headImgMd5_;
  /**
   * optional string headImgMd5 = 44;
   * @return Whether the headImgMd5 field is set.
   */
  @java.lang.Override
  public boolean hasHeadImgMd5() {
    return ((bitField1_ & 0x00000400) != 0);
  }
  /**
   * optional string headImgMd5 = 44;
   * @return The headImgMd5.
   */
  @java.lang.Override
  public java.lang.String getHeadImgMd5() {
    java.lang.Object ref = headImgMd5_;
    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()) {
        headImgMd5_ = s;
      }
      return s;
    }
  }
  /**
   * optional string headImgMd5 = 44;
   * @return The bytes for headImgMd5.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getHeadImgMd5Bytes() {
    java.lang.Object ref = headImgMd5_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      headImgMd5_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int ENCRYPTUSERNAME_FIELD_NUMBER = 45;
  private volatile java.lang.Object encryptUserName_;
  /**
   * optional string encryptUserName = 45;
   * @return Whether the encryptUserName field is set.
   */
  @java.lang.Override
  public boolean hasEncryptUserName() {
    return ((bitField1_ & 0x00000800) != 0);
  }
  /**
   * optional string encryptUserName = 45;
   * @return The encryptUserName.
   */
  @java.lang.Override
  public java.lang.String getEncryptUserName() {
    java.lang.Object ref = encryptUserName_;
    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()) {
        encryptUserName_ = s;
      }
      return s;
    }
  }
  /**
   * optional string encryptUserName = 45;
   * @return The bytes for encryptUserName.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getEncryptUserNameBytes() {
    java.lang.Object ref = encryptUserName_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      encryptUserName_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int IDCARDNUM_FIELD_NUMBER = 46;
  private volatile java.lang.Object idcardNum_;
  /**
   * optional string idcardNum = 46;
   * @return Whether the idcardNum field is set.
   */
  @java.lang.Override
  public boolean hasIdcardNum() {
    return ((bitField1_ & 0x00001000) != 0);
  }
  /**
   * optional string idcardNum = 46;
   * @return The idcardNum.
   */
  @java.lang.Override
  public java.lang.String getIdcardNum() {
    java.lang.Object ref = idcardNum_;
    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()) {
        idcardNum_ = s;
      }
      return s;
    }
  }
  /**
   * optional string idcardNum = 46;
   * @return The bytes for idcardNum.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getIdcardNumBytes() {
    java.lang.Object ref = idcardNum_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      idcardNum_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int REALNAME_FIELD_NUMBER = 47;
  private volatile java.lang.Object realName_;
  /**
   * optional string realName = 47;
   * @return Whether the realName field is set.
   */
  @java.lang.Override
  public boolean hasRealName() {
    return ((bitField1_ & 0x00002000) != 0);
  }
  /**
   * optional string realName = 47;
   * @return The realName.
   */
  @java.lang.Override
  public java.lang.String getRealName() {
    java.lang.Object ref = realName_;
    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()) {
        realName_ = s;
      }
      return s;
    }
  }
  /**
   * optional string realName = 47;
   * @return The bytes for realName.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getRealNameBytes() {
    java.lang.Object ref = realName_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      realName_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MOBILEHASH_FIELD_NUMBER = 48;
  private volatile java.lang.Object mobileHash_;
  /**
   * optional string mobileHash = 48;
   * @return Whether the mobileHash field is set.
   */
  @java.lang.Override
  public boolean hasMobileHash() {
    return ((bitField1_ & 0x00004000) != 0);
  }
  /**
   * optional string mobileHash = 48;
   * @return The mobileHash.
   */
  @java.lang.Override
  public java.lang.String getMobileHash() {
    java.lang.Object ref = mobileHash_;
    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()) {
        mobileHash_ = s;
      }
      return s;
    }
  }
  /**
   * optional string mobileHash = 48;
   * @return The bytes for mobileHash.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMobileHashBytes() {
    java.lang.Object ref = mobileHash_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      mobileHash_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MOBILEFULLHASH_FIELD_NUMBER = 49;
  private volatile java.lang.Object mobileFullHash_;
  /**
   * optional string mobileFullHash = 49;
   * @return Whether the mobileFullHash field is set.
   */
  @java.lang.Override
  public boolean hasMobileFullHash() {
    return ((bitField1_ & 0x00008000) != 0);
  }
  /**
   * optional string mobileFullHash = 49;
   * @return The mobileFullHash.
   */
  @java.lang.Override
  public java.lang.String getMobileFullHash() {
    java.lang.Object ref = mobileFullHash_;
    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()) {
        mobileFullHash_ = s;
      }
      return s;
    }
  }
  /**
   * optional string mobileFullHash = 49;
   * @return The bytes for mobileFullHash.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMobileFullHashBytes() {
    java.lang.Object ref = mobileFullHash_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      mobileFullHash_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int ADDITIONALCONTACTLIST_FIELD_NUMBER = 50;
  private wechat.protobuf.AdditionalContactList additionalContactList_;
  /**
   * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
   * @return Whether the additionalContactList field is set.
   */
  @java.lang.Override
  public boolean hasAdditionalContactList() {
    return ((bitField1_ & 0x00010000) != 0);
  }
  /**
   * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
   * @return The additionalContactList.
   */
  @java.lang.Override
  public wechat.protobuf.AdditionalContactList getAdditionalContactList() {
    return additionalContactList_ == null ? wechat.protobuf.AdditionalContactList.getDefaultInstance() : additionalContactList_;
  }
  /**
   * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
   */
  @java.lang.Override
  public wechat.protobuf.AdditionalContactListOrBuilder getAdditionalContactListOrBuilder() {
    return additionalContactList_ == null ? wechat.protobuf.AdditionalContactList.getDefaultInstance() : additionalContactList_;
  }

  public static final int CHATROOMVERSION_FIELD_NUMBER = 53;
  private int chatroomVersion_;
  /**
   * optional uint32 chatroomVersion = 53;
   * @return Whether the chatroomVersion field is set.
   */
  @java.lang.Override
  public boolean hasChatroomVersion() {
    return ((bitField1_ & 0x00020000) != 0);
  }
  /**
   * optional uint32 chatroomVersion = 53;
   * @return The chatroomVersion.
   */
  @java.lang.Override
  public int getChatroomVersion() {
    return chatroomVersion_;
  }

  public static final int EXTINFO_FIELD_NUMBER = 54;
  private volatile java.lang.Object extInfo_;
  /**
   * optional string extInfo = 54;
   * @return Whether the extInfo field is set.
   */
  @java.lang.Override
  public boolean hasExtInfo() {
    return ((bitField1_ & 0x00040000) != 0);
  }
  /**
   * optional string extInfo = 54;
   * @return The extInfo.
   */
  @java.lang.Override
  public java.lang.String getExtInfo() {
    java.lang.Object ref = extInfo_;
    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()) {
        extInfo_ = s;
      }
      return s;
    }
  }
  /**
   * optional string extInfo = 54;
   * @return The bytes for extInfo.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getExtInfoBytes() {
    java.lang.Object ref = extInfo_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      extInfo_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CHATROOMMAXNUM_FIELD_NUMBER = 55;
  private int chatroomMaxNum_;
  /**
   * optional uint32 chatroomMaxNum = 55;
   * @return Whether the chatroomMaxNum field is set.
   */
  @java.lang.Override
  public boolean hasChatroomMaxNum() {
    return ((bitField1_ & 0x00080000) != 0);
  }
  /**
   * optional uint32 chatroomMaxNum = 55;
   * @return The chatroomMaxNum.
   */
  @java.lang.Override
  public int getChatroomMaxNum() {
    return chatroomMaxNum_;
  }

  public static final int CHATROOMACCESSTYPE_FIELD_NUMBER = 56;
  private int chatroomAccessType_;
  /**
   * optional uint32 chatroomAccessType = 56;
   * @return Whether the chatroomAccessType field is set.
   */
  @java.lang.Override
  public boolean hasChatroomAccessType() {
    return ((bitField1_ & 0x00100000) != 0);
  }
  /**
   * optional uint32 chatroomAccessType = 56;
   * @return The chatroomAccessType.
   */
  @java.lang.Override
  public int getChatroomAccessType() {
    return chatroomAccessType_;
  }

  public static final int NEWCHATROOMDATA_FIELD_NUMBER = 57;
  private wechat.protobuf.ChatRoomMemberData newChatroomData_;
  /**
   * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
   * @return Whether the newChatroomData field is set.
   */
  @java.lang.Override
  public boolean hasNewChatroomData() {
    return ((bitField1_ & 0x00200000) != 0);
  }
  /**
   * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
   * @return The newChatroomData.
   */
  @java.lang.Override
  public wechat.protobuf.ChatRoomMemberData getNewChatroomData() {
    return newChatroomData_ == null ? wechat.protobuf.ChatRoomMemberData.getDefaultInstance() : newChatroomData_;
  }
  /**
   * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
   */
  @java.lang.Override
  public wechat.protobuf.ChatRoomMemberDataOrBuilder getNewChatroomDataOrBuilder() {
    return newChatroomData_ == null ? wechat.protobuf.ChatRoomMemberData.getDefaultInstance() : newChatroomData_;
  }

  public static final int DELETEFLAG_FIELD_NUMBER = 58;
  private int deleteFlag_;
  /**
   * optional int32 deleteFlag = 58;
   * @return Whether the deleteFlag field is set.
   */
  @java.lang.Override
  public boolean hasDeleteFlag() {
    return ((bitField1_ & 0x00400000) != 0);
  }
  /**
   * optional int32 deleteFlag = 58;
   * @return The deleteFlag.
   */
  @java.lang.Override
  public int getDeleteFlag() {
    return deleteFlag_;
  }

  public static final int DESCRIPTION_FIELD_NUMBER = 59;
  private volatile java.lang.Object description_;
  /**
   * optional string description = 59;
   * @return Whether the description field is set.
   */
  @java.lang.Override
  public boolean hasDescription() {
    return ((bitField1_ & 0x00800000) != 0);
  }
  /**
   * optional string description = 59;
   * @return The description.
   */
  @java.lang.Override
  public java.lang.String getDescription() {
    java.lang.Object ref = description_;
    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()) {
        description_ = s;
      }
      return s;
    }
  }
  /**
   * optional string description = 59;
   * @return The bytes for description.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getDescriptionBytes() {
    java.lang.Object ref = description_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      description_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CARDIMGURL_FIELD_NUMBER = 60;
  private volatile java.lang.Object cardImgUrl_;
  /**
   * optional string cardImgUrl = 60;
   * @return Whether the cardImgUrl field is set.
   */
  @java.lang.Override
  public boolean hasCardImgUrl() {
    return ((bitField1_ & 0x01000000) != 0);
  }
  /**
   * optional string cardImgUrl = 60;
   * @return The cardImgUrl.
   */
  @java.lang.Override
  public java.lang.String getCardImgUrl() {
    java.lang.Object ref = cardImgUrl_;
    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()) {
        cardImgUrl_ = s;
      }
      return s;
    }
  }
  /**
   * optional string cardImgUrl = 60;
   * @return The bytes for cardImgUrl.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCardImgUrlBytes() {
    java.lang.Object ref = cardImgUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      cardImgUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int LABELIDLIST_FIELD_NUMBER = 61;
  private volatile java.lang.Object labelIdlist_;
  /**
   * optional string labelIdlist = 61;
   * @return Whether the labelIdlist field is set.
   */
  @java.lang.Override
  public boolean hasLabelIdlist() {
    return ((bitField1_ & 0x02000000) != 0);
  }
  /**
   * optional string labelIdlist = 61;
   * @return The labelIdlist.
   */
  @java.lang.Override
  public java.lang.String getLabelIdlist() {
    java.lang.Object ref = labelIdlist_;
    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()) {
        labelIdlist_ = s;
      }
      return s;
    }
  }
  /**
   * optional string labelIdlist = 61;
   * @return The bytes for labelIdlist.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getLabelIdlistBytes() {
    java.lang.Object ref = labelIdlist_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      labelIdlist_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int PHONENUMLISTINFO_FIELD_NUMBER = 62;
  private wechat.protobuf.PhoneNumListInfo phoneNumListInfo_;
  /**
   * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
   * @return Whether the phoneNumListInfo field is set.
   */
  @java.lang.Override
  public boolean hasPhoneNumListInfo() {
    return ((bitField1_ & 0x04000000) != 0);
  }
  /**
   * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
   * @return The phoneNumListInfo.
   */
  @java.lang.Override
  public wechat.protobuf.PhoneNumListInfo getPhoneNumListInfo() {
    return phoneNumListInfo_ == null ? wechat.protobuf.PhoneNumListInfo.getDefaultInstance() : phoneNumListInfo_;
  }
  /**
   * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
   */
  @java.lang.Override
  public wechat.protobuf.PhoneNumListInfoOrBuilder getPhoneNumListInfoOrBuilder() {
    return phoneNumListInfo_ == null ? wechat.protobuf.PhoneNumListInfo.getDefaultInstance() : phoneNumListInfo_;
  }

  public static final int WEIDIANINFO_FIELD_NUMBER = 63;
  private volatile java.lang.Object weiDianInfo_;
  /**
   * optional string weiDianInfo = 63;
   * @return Whether the weiDianInfo field is set.
   */
  @java.lang.Override
  public boolean hasWeiDianInfo() {
    return ((bitField1_ & 0x08000000) != 0);
  }
  /**
   * optional string weiDianInfo = 63;
   * @return The weiDianInfo.
   */
  @java.lang.Override
  public java.lang.String getWeiDianInfo() {
    java.lang.Object ref = weiDianInfo_;
    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()) {
        weiDianInfo_ = s;
      }
      return s;
    }
  }
  /**
   * optional string weiDianInfo = 63;
   * @return The bytes for weiDianInfo.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getWeiDianInfoBytes() {
    java.lang.Object ref = weiDianInfo_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      weiDianInfo_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CHATROOMINFOVERSION_FIELD_NUMBER = 64;
  private int chatroomInfoVersion_;
  /**
   * optional uint32 chatroomInfoVersion = 64;
   * @return Whether the chatroomInfoVersion field is set.
   */
  @java.lang.Override
  public boolean hasChatroomInfoVersion() {
    return ((bitField1_ & 0x10000000) != 0);
  }
  /**
   * optional uint32 chatroomInfoVersion = 64;
   * @return The chatroomInfoVersion.
   */
  @java.lang.Override
  public int getChatroomInfoVersion() {
    return chatroomInfoVersion_;
  }

  public static final int DELETECONTACTSCENE_FIELD_NUMBER = 65;
  private int deleteContactScene_;
  /**
   * optional uint32 deleteContactScene = 65;
   * @return Whether the deleteContactScene field is set.
   */
  @java.lang.Override
  public boolean hasDeleteContactScene() {
    return ((bitField1_ & 0x20000000) != 0);
  }
  /**
   * optional uint32 deleteContactScene = 65;
   * @return The deleteContactScene.
   */
  @java.lang.Override
  public int getDeleteContactScene() {
    return deleteContactScene_;
  }

  public static final int CHATROOMSTATUS_FIELD_NUMBER = 66;
  private int chatroomStatus_;
  /**
   * optional uint32 chatroomStatus = 66;
   * @return Whether the chatroomStatus field is set.
   */
  @java.lang.Override
  public boolean hasChatroomStatus() {
    return ((bitField1_ & 0x40000000) != 0);
  }
  /**
   * optional uint32 chatroomStatus = 66;
   * @return The chatroomStatus.
   */
  @java.lang.Override
  public int getChatroomStatus() {
    return chatroomStatus_;
  }

  public static final int EXTFLAG_FIELD_NUMBER = 67;
  private int extFlag_;
  /**
   * optional uint32 extFlag = 67;
   * @return Whether the extFlag field is set.
   */
  @java.lang.Override
  public boolean hasExtFlag() {
    return ((bitField1_ & 0x80000000) != 0);
  }
  /**
   * optional uint32 extFlag = 67;
   * @return The extFlag.
   */
  @java.lang.Override
  public int getExtFlag() {
    return extFlag_;
  }

  public static final int SOURCEEXTINFO_FIELD_NUMBER = 68;
  private volatile java.lang.Object sourceExtInfo_;
  /**
   * optional string sourceExtInfo = 68;
   * @return Whether the sourceExtInfo field is set.
   */
  @java.lang.Override
  public boolean hasSourceExtInfo() {
    return ((bitField2_ & 0x00000001) != 0);
  }
  /**
   * optional string sourceExtInfo = 68;
   * @return The sourceExtInfo.
   */
  @java.lang.Override
  public java.lang.String getSourceExtInfo() {
    java.lang.Object ref = sourceExtInfo_;
    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()) {
        sourceExtInfo_ = s;
      }
      return s;
    }
  }
  /**
   * optional string sourceExtInfo = 68;
   * @return The bytes for sourceExtInfo.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getSourceExtInfoBytes() {
    java.lang.Object ref = sourceExtInfo_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      sourceExtInfo_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

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

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeMessage(1, getUserName());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      output.writeMessage(2, getNickName());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      output.writeMessage(3, getPyinitial());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      output.writeMessage(4, getQuanPin());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      output.writeInt32(5, sex_);
    }
    if (((bitField0_ & 0x00000020) != 0)) {
      output.writeMessage(6, getImgBuf());
    }
    if (((bitField0_ & 0x00000040) != 0)) {
      output.writeUInt32(7, bitMask_);
    }
    if (((bitField0_ & 0x00000080) != 0)) {
      output.writeUInt32(8, bitVal_);
    }
    if (((bitField0_ & 0x00000100) != 0)) {
      output.writeUInt32(9, imgFlag_);
    }
    if (((bitField0_ & 0x00000200) != 0)) {
      output.writeMessage(10, getRemark());
    }
    if (((bitField0_ & 0x00000400) != 0)) {
      output.writeMessage(11, getRemarkPyinitial());
    }
    if (((bitField0_ & 0x00000800) != 0)) {
      output.writeMessage(12, getRemarkQuanPin());
    }
    if (((bitField0_ & 0x00001000) != 0)) {
      output.writeUInt32(13, contactType_);
    }
    if (((bitField0_ & 0x00002000) != 0)) {
      output.writeUInt32(14, roomInfoNum_);
    }
    for (int i = 0; i < roomInfoList_.size(); i++) {
      output.writeMessage(15, roomInfoList_.get(i));
    }
    if (((bitField0_ & 0x00004000) != 0)) {
      output.writeMessage(16, getDomainList());
    }
    if (((bitField0_ & 0x00008000) != 0)) {
      output.writeUInt32(17, chatRoomNotify_);
    }
    if (((bitField0_ & 0x00010000) != 0)) {
      output.writeUInt32(18, addContactScene_);
    }
    if (((bitField0_ & 0x00020000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 19, province_);
    }
    if (((bitField0_ & 0x00040000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 20, city_);
    }
    if (((bitField0_ & 0x00080000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 21, signature_);
    }
    if (((bitField0_ & 0x00100000) != 0)) {
      output.writeUInt32(22, personalCard_);
    }
    if (((bitField0_ & 0x00200000) != 0)) {
      output.writeUInt32(23, hasWeiXinHdHeadImg_);
    }
    if (((bitField0_ & 0x00400000) != 0)) {
      output.writeUInt32(24, verifyFlag_);
    }
    if (((bitField0_ & 0x00800000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 25, verifyInfo_);
    }
    if (((bitField0_ & 0x01000000) != 0)) {
      output.writeInt32(26, level_);
    }
    if (((bitField0_ & 0x02000000) != 0)) {
      output.writeUInt32(27, source_);
    }
    if (((bitField0_ & 0x04000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 28, weibo_);
    }
    if (((bitField0_ & 0x08000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 29, verifyContent_);
    }
    if (((bitField0_ & 0x10000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 30, alias_);
    }
    if (((bitField0_ & 0x20000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 31, chatRoomOwner_);
    }
    if (((bitField0_ & 0x40000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 32, weiboNickname_);
    }
    if (((bitField0_ & 0x80000000) != 0)) {
      output.writeUInt32(33, weiboFlag_);
    }
    if (((bitField1_ & 0x00000001) != 0)) {
      output.writeInt32(34, albumStyle_);
    }
    if (((bitField1_ & 0x00000002) != 0)) {
      output.writeInt32(35, albumFlag_);
    }
    if (((bitField1_ & 0x00000004) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 36, albumBgimgId_);
    }
    if (((bitField1_ & 0x00000008) != 0)) {
      output.writeMessage(37, getSnsUserInfo());
    }
    if (((bitField1_ & 0x00000010) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 38, country_);
    }
    if (((bitField1_ & 0x00000020) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 39, bigHeadImgUrl_);
    }
    if (((bitField1_ & 0x00000040) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 40, smallHeadImgUrl_);
    }
    if (((bitField1_ & 0x00000080) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 41, myBrandList_);
    }
    if (((bitField1_ & 0x00000100) != 0)) {
      output.writeMessage(42, getCustomizedInfo());
    }
    if (((bitField1_ & 0x00000200) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 43, chatRoomData_);
    }
    if (((bitField1_ & 0x00000400) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 44, headImgMd5_);
    }
    if (((bitField1_ & 0x00000800) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 45, encryptUserName_);
    }
    if (((bitField1_ & 0x00001000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 46, idcardNum_);
    }
    if (((bitField1_ & 0x00002000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 47, realName_);
    }
    if (((bitField1_ & 0x00004000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 48, mobileHash_);
    }
    if (((bitField1_ & 0x00008000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 49, mobileFullHash_);
    }
    if (((bitField1_ & 0x00010000) != 0)) {
      output.writeMessage(50, getAdditionalContactList());
    }
    if (((bitField1_ & 0x00020000) != 0)) {
      output.writeUInt32(53, chatroomVersion_);
    }
    if (((bitField1_ & 0x00040000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 54, extInfo_);
    }
    if (((bitField1_ & 0x00080000) != 0)) {
      output.writeUInt32(55, chatroomMaxNum_);
    }
    if (((bitField1_ & 0x00100000) != 0)) {
      output.writeUInt32(56, chatroomAccessType_);
    }
    if (((bitField1_ & 0x00200000) != 0)) {
      output.writeMessage(57, getNewChatroomData());
    }
    if (((bitField1_ & 0x00400000) != 0)) {
      output.writeInt32(58, deleteFlag_);
    }
    if (((bitField1_ & 0x00800000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 59, description_);
    }
    if (((bitField1_ & 0x01000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 60, cardImgUrl_);
    }
    if (((bitField1_ & 0x02000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 61, labelIdlist_);
    }
    if (((bitField1_ & 0x04000000) != 0)) {
      output.writeMessage(62, getPhoneNumListInfo());
    }
    if (((bitField1_ & 0x08000000) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 63, weiDianInfo_);
    }
    if (((bitField1_ & 0x10000000) != 0)) {
      output.writeUInt32(64, chatroomInfoVersion_);
    }
    if (((bitField1_ & 0x20000000) != 0)) {
      output.writeUInt32(65, deleteContactScene_);
    }
    if (((bitField1_ & 0x40000000) != 0)) {
      output.writeUInt32(66, chatroomStatus_);
    }
    if (((bitField1_ & 0x80000000) != 0)) {
      output.writeUInt32(67, extFlag_);
    }
    if (((bitField2_ & 0x00000001) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 68, sourceExtInfo_);
    }
    unknownFields.writeTo(output);
  }

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

    size = 0;
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(1, getUserName());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(2, getNickName());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(3, getPyinitial());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(4, getQuanPin());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(5, sex_);
    }
    if (((bitField0_ & 0x00000020) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(6, getImgBuf());
    }
    if (((bitField0_ & 0x00000040) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(7, bitMask_);
    }
    if (((bitField0_ & 0x00000080) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(8, bitVal_);
    }
    if (((bitField0_ & 0x00000100) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(9, imgFlag_);
    }
    if (((bitField0_ & 0x00000200) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(10, getRemark());
    }
    if (((bitField0_ & 0x00000400) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(11, getRemarkPyinitial());
    }
    if (((bitField0_ & 0x00000800) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(12, getRemarkQuanPin());
    }
    if (((bitField0_ & 0x00001000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(13, contactType_);
    }
    if (((bitField0_ & 0x00002000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(14, roomInfoNum_);
    }
    for (int i = 0; i < roomInfoList_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(15, roomInfoList_.get(i));
    }
    if (((bitField0_ & 0x00004000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(16, getDomainList());
    }
    if (((bitField0_ & 0x00008000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(17, chatRoomNotify_);
    }
    if (((bitField0_ & 0x00010000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(18, addContactScene_);
    }
    if (((bitField0_ & 0x00020000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, province_);
    }
    if (((bitField0_ & 0x00040000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, city_);
    }
    if (((bitField0_ & 0x00080000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, signature_);
    }
    if (((bitField0_ & 0x00100000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(22, personalCard_);
    }
    if (((bitField0_ & 0x00200000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(23, hasWeiXinHdHeadImg_);
    }
    if (((bitField0_ & 0x00400000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(24, verifyFlag_);
    }
    if (((bitField0_ & 0x00800000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(25, verifyInfo_);
    }
    if (((bitField0_ & 0x01000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(26, level_);
    }
    if (((bitField0_ & 0x02000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(27, source_);
    }
    if (((bitField0_ & 0x04000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(28, weibo_);
    }
    if (((bitField0_ & 0x08000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, verifyContent_);
    }
    if (((bitField0_ & 0x10000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(30, alias_);
    }
    if (((bitField0_ & 0x20000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, chatRoomOwner_);
    }
    if (((bitField0_ & 0x40000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(32, weiboNickname_);
    }
    if (((bitField0_ & 0x80000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(33, weiboFlag_);
    }
    if (((bitField1_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(34, albumStyle_);
    }
    if (((bitField1_ & 0x00000002) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(35, albumFlag_);
    }
    if (((bitField1_ & 0x00000004) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(36, albumBgimgId_);
    }
    if (((bitField1_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(37, getSnsUserInfo());
    }
    if (((bitField1_ & 0x00000010) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(38, country_);
    }
    if (((bitField1_ & 0x00000020) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(39, bigHeadImgUrl_);
    }
    if (((bitField1_ & 0x00000040) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(40, smallHeadImgUrl_);
    }
    if (((bitField1_ & 0x00000080) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(41, myBrandList_);
    }
    if (((bitField1_ & 0x00000100) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(42, getCustomizedInfo());
    }
    if (((bitField1_ & 0x00000200) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(43, chatRoomData_);
    }
    if (((bitField1_ & 0x00000400) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(44, headImgMd5_);
    }
    if (((bitField1_ & 0x00000800) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(45, encryptUserName_);
    }
    if (((bitField1_ & 0x00001000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(46, idcardNum_);
    }
    if (((bitField1_ & 0x00002000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(47, realName_);
    }
    if (((bitField1_ & 0x00004000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(48, mobileHash_);
    }
    if (((bitField1_ & 0x00008000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(49, mobileFullHash_);
    }
    if (((bitField1_ & 0x00010000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(50, getAdditionalContactList());
    }
    if (((bitField1_ & 0x00020000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(53, chatroomVersion_);
    }
    if (((bitField1_ & 0x00040000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(54, extInfo_);
    }
    if (((bitField1_ & 0x00080000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(55, chatroomMaxNum_);
    }
    if (((bitField1_ & 0x00100000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(56, chatroomAccessType_);
    }
    if (((bitField1_ & 0x00200000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(57, getNewChatroomData());
    }
    if (((bitField1_ & 0x00400000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(58, deleteFlag_);
    }
    if (((bitField1_ & 0x00800000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(59, description_);
    }
    if (((bitField1_ & 0x01000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(60, cardImgUrl_);
    }
    if (((bitField1_ & 0x02000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(61, labelIdlist_);
    }
    if (((bitField1_ & 0x04000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(62, getPhoneNumListInfo());
    }
    if (((bitField1_ & 0x08000000) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(63, weiDianInfo_);
    }
    if (((bitField1_ & 0x10000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(64, chatroomInfoVersion_);
    }
    if (((bitField1_ & 0x20000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(65, deleteContactScene_);
    }
    if (((bitField1_ & 0x40000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(66, chatroomStatus_);
    }
    if (((bitField1_ & 0x80000000) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(67, extFlag_);
    }
    if (((bitField2_ & 0x00000001) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(68, sourceExtInfo_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof wechat.protobuf.ModContact)) {
      return super.equals(obj);
    }
    wechat.protobuf.ModContact other = (wechat.protobuf.ModContact) obj;

    if (hasUserName() != other.hasUserName()) return false;
    if (hasUserName()) {
      if (!getUserName()
          .equals(other.getUserName())) return false;
    }
    if (hasNickName() != other.hasNickName()) return false;
    if (hasNickName()) {
      if (!getNickName()
          .equals(other.getNickName())) return false;
    }
    if (hasPyinitial() != other.hasPyinitial()) return false;
    if (hasPyinitial()) {
      if (!getPyinitial()
          .equals(other.getPyinitial())) return false;
    }
    if (hasQuanPin() != other.hasQuanPin()) return false;
    if (hasQuanPin()) {
      if (!getQuanPin()
          .equals(other.getQuanPin())) return false;
    }
    if (hasSex() != other.hasSex()) return false;
    if (hasSex()) {
      if (getSex()
          != other.getSex()) return false;
    }
    if (hasImgBuf() != other.hasImgBuf()) return false;
    if (hasImgBuf()) {
      if (!getImgBuf()
          .equals(other.getImgBuf())) return false;
    }
    if (hasBitMask() != other.hasBitMask()) return false;
    if (hasBitMask()) {
      if (getBitMask()
          != other.getBitMask()) return false;
    }
    if (hasBitVal() != other.hasBitVal()) return false;
    if (hasBitVal()) {
      if (getBitVal()
          != other.getBitVal()) return false;
    }
    if (hasImgFlag() != other.hasImgFlag()) return false;
    if (hasImgFlag()) {
      if (getImgFlag()
          != other.getImgFlag()) return false;
    }
    if (hasRemark() != other.hasRemark()) return false;
    if (hasRemark()) {
      if (!getRemark()
          .equals(other.getRemark())) return false;
    }
    if (hasRemarkPyinitial() != other.hasRemarkPyinitial()) return false;
    if (hasRemarkPyinitial()) {
      if (!getRemarkPyinitial()
          .equals(other.getRemarkPyinitial())) return false;
    }
    if (hasRemarkQuanPin() != other.hasRemarkQuanPin()) return false;
    if (hasRemarkQuanPin()) {
      if (!getRemarkQuanPin()
          .equals(other.getRemarkQuanPin())) return false;
    }
    if (hasContactType() != other.hasContactType()) return false;
    if (hasContactType()) {
      if (getContactType()
          != other.getContactType()) return false;
    }
    if (hasRoomInfoNum() != other.hasRoomInfoNum()) return false;
    if (hasRoomInfoNum()) {
      if (getRoomInfoNum()
          != other.getRoomInfoNum()) return false;
    }
    if (!getRoomInfoListList()
        .equals(other.getRoomInfoListList())) return false;
    if (hasDomainList() != other.hasDomainList()) return false;
    if (hasDomainList()) {
      if (!getDomainList()
          .equals(other.getDomainList())) return false;
    }
    if (hasChatRoomNotify() != other.hasChatRoomNotify()) return false;
    if (hasChatRoomNotify()) {
      if (getChatRoomNotify()
          != other.getChatRoomNotify()) return false;
    }
    if (hasAddContactScene() != other.hasAddContactScene()) return false;
    if (hasAddContactScene()) {
      if (getAddContactScene()
          != other.getAddContactScene()) return false;
    }
    if (hasProvince() != other.hasProvince()) return false;
    if (hasProvince()) {
      if (!getProvince()
          .equals(other.getProvince())) return false;
    }
    if (hasCity() != other.hasCity()) return false;
    if (hasCity()) {
      if (!getCity()
          .equals(other.getCity())) return false;
    }
    if (hasSignature() != other.hasSignature()) return false;
    if (hasSignature()) {
      if (!getSignature()
          .equals(other.getSignature())) return false;
    }
    if (hasPersonalCard() != other.hasPersonalCard()) return false;
    if (hasPersonalCard()) {
      if (getPersonalCard()
          != other.getPersonalCard()) return false;
    }
    if (hasHasWeiXinHdHeadImg() != other.hasHasWeiXinHdHeadImg()) return false;
    if (hasHasWeiXinHdHeadImg()) {
      if (getHasWeiXinHdHeadImg()
          != other.getHasWeiXinHdHeadImg()) return false;
    }
    if (hasVerifyFlag() != other.hasVerifyFlag()) return false;
    if (hasVerifyFlag()) {
      if (getVerifyFlag()
          != other.getVerifyFlag()) return false;
    }
    if (hasVerifyInfo() != other.hasVerifyInfo()) return false;
    if (hasVerifyInfo()) {
      if (!getVerifyInfo()
          .equals(other.getVerifyInfo())) return false;
    }
    if (hasLevel() != other.hasLevel()) return false;
    if (hasLevel()) {
      if (getLevel()
          != other.getLevel()) return false;
    }
    if (hasSource() != other.hasSource()) return false;
    if (hasSource()) {
      if (getSource()
          != other.getSource()) return false;
    }
    if (hasWeibo() != other.hasWeibo()) return false;
    if (hasWeibo()) {
      if (!getWeibo()
          .equals(other.getWeibo())) return false;
    }
    if (hasVerifyContent() != other.hasVerifyContent()) return false;
    if (hasVerifyContent()) {
      if (!getVerifyContent()
          .equals(other.getVerifyContent())) return false;
    }
    if (hasAlias() != other.hasAlias()) return false;
    if (hasAlias()) {
      if (!getAlias()
          .equals(other.getAlias())) return false;
    }
    if (hasChatRoomOwner() != other.hasChatRoomOwner()) return false;
    if (hasChatRoomOwner()) {
      if (!getChatRoomOwner()
          .equals(other.getChatRoomOwner())) return false;
    }
    if (hasWeiboNickname() != other.hasWeiboNickname()) return false;
    if (hasWeiboNickname()) {
      if (!getWeiboNickname()
          .equals(other.getWeiboNickname())) return false;
    }
    if (hasWeiboFlag() != other.hasWeiboFlag()) return false;
    if (hasWeiboFlag()) {
      if (getWeiboFlag()
          != other.getWeiboFlag()) return false;
    }
    if (hasAlbumStyle() != other.hasAlbumStyle()) return false;
    if (hasAlbumStyle()) {
      if (getAlbumStyle()
          != other.getAlbumStyle()) return false;
    }
    if (hasAlbumFlag() != other.hasAlbumFlag()) return false;
    if (hasAlbumFlag()) {
      if (getAlbumFlag()
          != other.getAlbumFlag()) return false;
    }
    if (hasAlbumBgimgId() != other.hasAlbumBgimgId()) return false;
    if (hasAlbumBgimgId()) {
      if (!getAlbumBgimgId()
          .equals(other.getAlbumBgimgId())) return false;
    }
    if (hasSnsUserInfo() != other.hasSnsUserInfo()) return false;
    if (hasSnsUserInfo()) {
      if (!getSnsUserInfo()
          .equals(other.getSnsUserInfo())) return false;
    }
    if (hasCountry() != other.hasCountry()) return false;
    if (hasCountry()) {
      if (!getCountry()
          .equals(other.getCountry())) return false;
    }
    if (hasBigHeadImgUrl() != other.hasBigHeadImgUrl()) return false;
    if (hasBigHeadImgUrl()) {
      if (!getBigHeadImgUrl()
          .equals(other.getBigHeadImgUrl())) return false;
    }
    if (hasSmallHeadImgUrl() != other.hasSmallHeadImgUrl()) return false;
    if (hasSmallHeadImgUrl()) {
      if (!getSmallHeadImgUrl()
          .equals(other.getSmallHeadImgUrl())) return false;
    }
    if (hasMyBrandList() != other.hasMyBrandList()) return false;
    if (hasMyBrandList()) {
      if (!getMyBrandList()
          .equals(other.getMyBrandList())) return false;
    }
    if (hasCustomizedInfo() != other.hasCustomizedInfo()) return false;
    if (hasCustomizedInfo()) {
      if (!getCustomizedInfo()
          .equals(other.getCustomizedInfo())) return false;
    }
    if (hasChatRoomData() != other.hasChatRoomData()) return false;
    if (hasChatRoomData()) {
      if (!getChatRoomData()
          .equals(other.getChatRoomData())) return false;
    }
    if (hasHeadImgMd5() != other.hasHeadImgMd5()) return false;
    if (hasHeadImgMd5()) {
      if (!getHeadImgMd5()
          .equals(other.getHeadImgMd5())) return false;
    }
    if (hasEncryptUserName() != other.hasEncryptUserName()) return false;
    if (hasEncryptUserName()) {
      if (!getEncryptUserName()
          .equals(other.getEncryptUserName())) return false;
    }
    if (hasIdcardNum() != other.hasIdcardNum()) return false;
    if (hasIdcardNum()) {
      if (!getIdcardNum()
          .equals(other.getIdcardNum())) return false;
    }
    if (hasRealName() != other.hasRealName()) return false;
    if (hasRealName()) {
      if (!getRealName()
          .equals(other.getRealName())) return false;
    }
    if (hasMobileHash() != other.hasMobileHash()) return false;
    if (hasMobileHash()) {
      if (!getMobileHash()
          .equals(other.getMobileHash())) return false;
    }
    if (hasMobileFullHash() != other.hasMobileFullHash()) return false;
    if (hasMobileFullHash()) {
      if (!getMobileFullHash()
          .equals(other.getMobileFullHash())) return false;
    }
    if (hasAdditionalContactList() != other.hasAdditionalContactList()) return false;
    if (hasAdditionalContactList()) {
      if (!getAdditionalContactList()
          .equals(other.getAdditionalContactList())) return false;
    }
    if (hasChatroomVersion() != other.hasChatroomVersion()) return false;
    if (hasChatroomVersion()) {
      if (getChatroomVersion()
          != other.getChatroomVersion()) return false;
    }
    if (hasExtInfo() != other.hasExtInfo()) return false;
    if (hasExtInfo()) {
      if (!getExtInfo()
          .equals(other.getExtInfo())) return false;
    }
    if (hasChatroomMaxNum() != other.hasChatroomMaxNum()) return false;
    if (hasChatroomMaxNum()) {
      if (getChatroomMaxNum()
          != other.getChatroomMaxNum()) return false;
    }
    if (hasChatroomAccessType() != other.hasChatroomAccessType()) return false;
    if (hasChatroomAccessType()) {
      if (getChatroomAccessType()
          != other.getChatroomAccessType()) return false;
    }
    if (hasNewChatroomData() != other.hasNewChatroomData()) return false;
    if (hasNewChatroomData()) {
      if (!getNewChatroomData()
          .equals(other.getNewChatroomData())) return false;
    }
    if (hasDeleteFlag() != other.hasDeleteFlag()) return false;
    if (hasDeleteFlag()) {
      if (getDeleteFlag()
          != other.getDeleteFlag()) return false;
    }
    if (hasDescription() != other.hasDescription()) return false;
    if (hasDescription()) {
      if (!getDescription()
          .equals(other.getDescription())) return false;
    }
    if (hasCardImgUrl() != other.hasCardImgUrl()) return false;
    if (hasCardImgUrl()) {
      if (!getCardImgUrl()
          .equals(other.getCardImgUrl())) return false;
    }
    if (hasLabelIdlist() != other.hasLabelIdlist()) return false;
    if (hasLabelIdlist()) {
      if (!getLabelIdlist()
          .equals(other.getLabelIdlist())) return false;
    }
    if (hasPhoneNumListInfo() != other.hasPhoneNumListInfo()) return false;
    if (hasPhoneNumListInfo()) {
      if (!getPhoneNumListInfo()
          .equals(other.getPhoneNumListInfo())) return false;
    }
    if (hasWeiDianInfo() != other.hasWeiDianInfo()) return false;
    if (hasWeiDianInfo()) {
      if (!getWeiDianInfo()
          .equals(other.getWeiDianInfo())) return false;
    }
    if (hasChatroomInfoVersion() != other.hasChatroomInfoVersion()) return false;
    if (hasChatroomInfoVersion()) {
      if (getChatroomInfoVersion()
          != other.getChatroomInfoVersion()) return false;
    }
    if (hasDeleteContactScene() != other.hasDeleteContactScene()) return false;
    if (hasDeleteContactScene()) {
      if (getDeleteContactScene()
          != other.getDeleteContactScene()) return false;
    }
    if (hasChatroomStatus() != other.hasChatroomStatus()) return false;
    if (hasChatroomStatus()) {
      if (getChatroomStatus()
          != other.getChatroomStatus()) return false;
    }
    if (hasExtFlag() != other.hasExtFlag()) return false;
    if (hasExtFlag()) {
      if (getExtFlag()
          != other.getExtFlag()) return false;
    }
    if (hasSourceExtInfo() != other.hasSourceExtInfo()) return false;
    if (hasSourceExtInfo()) {
      if (!getSourceExtInfo()
          .equals(other.getSourceExtInfo())) return false;
    }
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasUserName()) {
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUserName().hashCode();
    }
    if (hasNickName()) {
      hash = (37 * hash) + NICKNAME_FIELD_NUMBER;
      hash = (53 * hash) + getNickName().hashCode();
    }
    if (hasPyinitial()) {
      hash = (37 * hash) + PYINITIAL_FIELD_NUMBER;
      hash = (53 * hash) + getPyinitial().hashCode();
    }
    if (hasQuanPin()) {
      hash = (37 * hash) + QUANPIN_FIELD_NUMBER;
      hash = (53 * hash) + getQuanPin().hashCode();
    }
    if (hasSex()) {
      hash = (37 * hash) + SEX_FIELD_NUMBER;
      hash = (53 * hash) + getSex();
    }
    if (hasImgBuf()) {
      hash = (37 * hash) + IMGBUF_FIELD_NUMBER;
      hash = (53 * hash) + getImgBuf().hashCode();
    }
    if (hasBitMask()) {
      hash = (37 * hash) + BITMASK_FIELD_NUMBER;
      hash = (53 * hash) + getBitMask();
    }
    if (hasBitVal()) {
      hash = (37 * hash) + BITVAL_FIELD_NUMBER;
      hash = (53 * hash) + getBitVal();
    }
    if (hasImgFlag()) {
      hash = (37 * hash) + IMGFLAG_FIELD_NUMBER;
      hash = (53 * hash) + getImgFlag();
    }
    if (hasRemark()) {
      hash = (37 * hash) + REMARK_FIELD_NUMBER;
      hash = (53 * hash) + getRemark().hashCode();
    }
    if (hasRemarkPyinitial()) {
      hash = (37 * hash) + REMARKPYINITIAL_FIELD_NUMBER;
      hash = (53 * hash) + getRemarkPyinitial().hashCode();
    }
    if (hasRemarkQuanPin()) {
      hash = (37 * hash) + REMARKQUANPIN_FIELD_NUMBER;
      hash = (53 * hash) + getRemarkQuanPin().hashCode();
    }
    if (hasContactType()) {
      hash = (37 * hash) + CONTACTTYPE_FIELD_NUMBER;
      hash = (53 * hash) + getContactType();
    }
    if (hasRoomInfoNum()) {
      hash = (37 * hash) + ROOMINFONUM_FIELD_NUMBER;
      hash = (53 * hash) + getRoomInfoNum();
    }
    if (getRoomInfoListCount() > 0) {
      hash = (37 * hash) + ROOMINFOLIST_FIELD_NUMBER;
      hash = (53 * hash) + getRoomInfoListList().hashCode();
    }
    if (hasDomainList()) {
      hash = (37 * hash) + DOMAINLIST_FIELD_NUMBER;
      hash = (53 * hash) + getDomainList().hashCode();
    }
    if (hasChatRoomNotify()) {
      hash = (37 * hash) + CHATROOMNOTIFY_FIELD_NUMBER;
      hash = (53 * hash) + getChatRoomNotify();
    }
    if (hasAddContactScene()) {
      hash = (37 * hash) + ADDCONTACTSCENE_FIELD_NUMBER;
      hash = (53 * hash) + getAddContactScene();
    }
    if (hasProvince()) {
      hash = (37 * hash) + PROVINCE_FIELD_NUMBER;
      hash = (53 * hash) + getProvince().hashCode();
    }
    if (hasCity()) {
      hash = (37 * hash) + CITY_FIELD_NUMBER;
      hash = (53 * hash) + getCity().hashCode();
    }
    if (hasSignature()) {
      hash = (37 * hash) + SIGNATURE_FIELD_NUMBER;
      hash = (53 * hash) + getSignature().hashCode();
    }
    if (hasPersonalCard()) {
      hash = (37 * hash) + PERSONALCARD_FIELD_NUMBER;
      hash = (53 * hash) + getPersonalCard();
    }
    if (hasHasWeiXinHdHeadImg()) {
      hash = (37 * hash) + HASWEIXINHDHEADIMG_FIELD_NUMBER;
      hash = (53 * hash) + getHasWeiXinHdHeadImg();
    }
    if (hasVerifyFlag()) {
      hash = (37 * hash) + VERIFYFLAG_FIELD_NUMBER;
      hash = (53 * hash) + getVerifyFlag();
    }
    if (hasVerifyInfo()) {
      hash = (37 * hash) + VERIFYINFO_FIELD_NUMBER;
      hash = (53 * hash) + getVerifyInfo().hashCode();
    }
    if (hasLevel()) {
      hash = (37 * hash) + LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getLevel();
    }
    if (hasSource()) {
      hash = (37 * hash) + SOURCE_FIELD_NUMBER;
      hash = (53 * hash) + getSource();
    }
    if (hasWeibo()) {
      hash = (37 * hash) + WEIBO_FIELD_NUMBER;
      hash = (53 * hash) + getWeibo().hashCode();
    }
    if (hasVerifyContent()) {
      hash = (37 * hash) + VERIFYCONTENT_FIELD_NUMBER;
      hash = (53 * hash) + getVerifyContent().hashCode();
    }
    if (hasAlias()) {
      hash = (37 * hash) + ALIAS_FIELD_NUMBER;
      hash = (53 * hash) + getAlias().hashCode();
    }
    if (hasChatRoomOwner()) {
      hash = (37 * hash) + CHATROOMOWNER_FIELD_NUMBER;
      hash = (53 * hash) + getChatRoomOwner().hashCode();
    }
    if (hasWeiboNickname()) {
      hash = (37 * hash) + WEIBONICKNAME_FIELD_NUMBER;
      hash = (53 * hash) + getWeiboNickname().hashCode();
    }
    if (hasWeiboFlag()) {
      hash = (37 * hash) + WEIBOFLAG_FIELD_NUMBER;
      hash = (53 * hash) + getWeiboFlag();
    }
    if (hasAlbumStyle()) {
      hash = (37 * hash) + ALBUMSTYLE_FIELD_NUMBER;
      hash = (53 * hash) + getAlbumStyle();
    }
    if (hasAlbumFlag()) {
      hash = (37 * hash) + ALBUMFLAG_FIELD_NUMBER;
      hash = (53 * hash) + getAlbumFlag();
    }
    if (hasAlbumBgimgId()) {
      hash = (37 * hash) + ALBUMBGIMGID_FIELD_NUMBER;
      hash = (53 * hash) + getAlbumBgimgId().hashCode();
    }
    if (hasSnsUserInfo()) {
      hash = (37 * hash) + SNSUSERINFO_FIELD_NUMBER;
      hash = (53 * hash) + getSnsUserInfo().hashCode();
    }
    if (hasCountry()) {
      hash = (37 * hash) + COUNTRY_FIELD_NUMBER;
      hash = (53 * hash) + getCountry().hashCode();
    }
    if (hasBigHeadImgUrl()) {
      hash = (37 * hash) + BIGHEADIMGURL_FIELD_NUMBER;
      hash = (53 * hash) + getBigHeadImgUrl().hashCode();
    }
    if (hasSmallHeadImgUrl()) {
      hash = (37 * hash) + SMALLHEADIMGURL_FIELD_NUMBER;
      hash = (53 * hash) + getSmallHeadImgUrl().hashCode();
    }
    if (hasMyBrandList()) {
      hash = (37 * hash) + MYBRANDLIST_FIELD_NUMBER;
      hash = (53 * hash) + getMyBrandList().hashCode();
    }
    if (hasCustomizedInfo()) {
      hash = (37 * hash) + CUSTOMIZEDINFO_FIELD_NUMBER;
      hash = (53 * hash) + getCustomizedInfo().hashCode();
    }
    if (hasChatRoomData()) {
      hash = (37 * hash) + CHATROOMDATA_FIELD_NUMBER;
      hash = (53 * hash) + getChatRoomData().hashCode();
    }
    if (hasHeadImgMd5()) {
      hash = (37 * hash) + HEADIMGMD5_FIELD_NUMBER;
      hash = (53 * hash) + getHeadImgMd5().hashCode();
    }
    if (hasEncryptUserName()) {
      hash = (37 * hash) + ENCRYPTUSERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getEncryptUserName().hashCode();
    }
    if (hasIdcardNum()) {
      hash = (37 * hash) + IDCARDNUM_FIELD_NUMBER;
      hash = (53 * hash) + getIdcardNum().hashCode();
    }
    if (hasRealName()) {
      hash = (37 * hash) + REALNAME_FIELD_NUMBER;
      hash = (53 * hash) + getRealName().hashCode();
    }
    if (hasMobileHash()) {
      hash = (37 * hash) + MOBILEHASH_FIELD_NUMBER;
      hash = (53 * hash) + getMobileHash().hashCode();
    }
    if (hasMobileFullHash()) {
      hash = (37 * hash) + MOBILEFULLHASH_FIELD_NUMBER;
      hash = (53 * hash) + getMobileFullHash().hashCode();
    }
    if (hasAdditionalContactList()) {
      hash = (37 * hash) + ADDITIONALCONTACTLIST_FIELD_NUMBER;
      hash = (53 * hash) + getAdditionalContactList().hashCode();
    }
    if (hasChatroomVersion()) {
      hash = (37 * hash) + CHATROOMVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getChatroomVersion();
    }
    if (hasExtInfo()) {
      hash = (37 * hash) + EXTINFO_FIELD_NUMBER;
      hash = (53 * hash) + getExtInfo().hashCode();
    }
    if (hasChatroomMaxNum()) {
      hash = (37 * hash) + CHATROOMMAXNUM_FIELD_NUMBER;
      hash = (53 * hash) + getChatroomMaxNum();
    }
    if (hasChatroomAccessType()) {
      hash = (37 * hash) + CHATROOMACCESSTYPE_FIELD_NUMBER;
      hash = (53 * hash) + getChatroomAccessType();
    }
    if (hasNewChatroomData()) {
      hash = (37 * hash) + NEWCHATROOMDATA_FIELD_NUMBER;
      hash = (53 * hash) + getNewChatroomData().hashCode();
    }
    if (hasDeleteFlag()) {
      hash = (37 * hash) + DELETEFLAG_FIELD_NUMBER;
      hash = (53 * hash) + getDeleteFlag();
    }
    if (hasDescription()) {
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
    }
    if (hasCardImgUrl()) {
      hash = (37 * hash) + CARDIMGURL_FIELD_NUMBER;
      hash = (53 * hash) + getCardImgUrl().hashCode();
    }
    if (hasLabelIdlist()) {
      hash = (37 * hash) + LABELIDLIST_FIELD_NUMBER;
      hash = (53 * hash) + getLabelIdlist().hashCode();
    }
    if (hasPhoneNumListInfo()) {
      hash = (37 * hash) + PHONENUMLISTINFO_FIELD_NUMBER;
      hash = (53 * hash) + getPhoneNumListInfo().hashCode();
    }
    if (hasWeiDianInfo()) {
      hash = (37 * hash) + WEIDIANINFO_FIELD_NUMBER;
      hash = (53 * hash) + getWeiDianInfo().hashCode();
    }
    if (hasChatroomInfoVersion()) {
      hash = (37 * hash) + CHATROOMINFOVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getChatroomInfoVersion();
    }
    if (hasDeleteContactScene()) {
      hash = (37 * hash) + DELETECONTACTSCENE_FIELD_NUMBER;
      hash = (53 * hash) + getDeleteContactScene();
    }
    if (hasChatroomStatus()) {
      hash = (37 * hash) + CHATROOMSTATUS_FIELD_NUMBER;
      hash = (53 * hash) + getChatroomStatus();
    }
    if (hasExtFlag()) {
      hash = (37 * hash) + EXTFLAG_FIELD_NUMBER;
      hash = (53 * hash) + getExtFlag();
    }
    if (hasSourceExtInfo()) {
      hash = (37 * hash) + SOURCEEXTINFO_FIELD_NUMBER;
      hash = (53 * hash) + getSourceExtInfo().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

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

  @java.lang.Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(wechat.protobuf.ModContact prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * Protobuf type {@code wechat_proto.ModContact}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder implements
      // @@protoc_insertion_point(builder_implements:wechat_proto.ModContact)
      wechat.protobuf.ModContactOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return wechat.protobuf.Wechat.internal_static_wechat_proto_ModContact_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return wechat.protobuf.Wechat.internal_static_wechat_proto_ModContact_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              wechat.protobuf.ModContact.class, wechat.protobuf.ModContact.Builder.class);
    }

    // Construct using wechat.protobuf.ModContact.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
              .alwaysUseFieldBuilders) {
        getUserNameFieldBuilder();
        getNickNameFieldBuilder();
        getPyinitialFieldBuilder();
        getQuanPinFieldBuilder();
        getImgBufFieldBuilder();
        getRemarkFieldBuilder();
        getRemarkPyinitialFieldBuilder();
        getRemarkQuanPinFieldBuilder();
        getRoomInfoListFieldBuilder();
        getDomainListFieldBuilder();
        getSnsUserInfoFieldBuilder();
        getCustomizedInfoFieldBuilder();
        getAdditionalContactListFieldBuilder();
        getNewChatroomDataFieldBuilder();
        getPhoneNumListInfoFieldBuilder();
      }
    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (userNameBuilder_ == null) {
        userName_ = null;
      } else {
        userNameBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000001);
      if (nickNameBuilder_ == null) {
        nickName_ = null;
      } else {
        nickNameBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000002);
      if (pyinitialBuilder_ == null) {
        pyinitial_ = null;
      } else {
        pyinitialBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000004);
      if (quanPinBuilder_ == null) {
        quanPin_ = null;
      } else {
        quanPinBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000008);
      sex_ = 0;
      bitField0_ = (bitField0_ & ~0x00000010);
      if (imgBufBuilder_ == null) {
        imgBuf_ = null;
      } else {
        imgBufBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000020);
      bitMask_ = 0;
      bitField0_ = (bitField0_ & ~0x00000040);
      bitVal_ = 0;
      bitField0_ = (bitField0_ & ~0x00000080);
      imgFlag_ = 0;
      bitField0_ = (bitField0_ & ~0x00000100);
      if (remarkBuilder_ == null) {
        remark_ = null;
      } else {
        remarkBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000200);
      if (remarkPyinitialBuilder_ == null) {
        remarkPyinitial_ = null;
      } else {
        remarkPyinitialBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000400);
      if (remarkQuanPinBuilder_ == null) {
        remarkQuanPin_ = null;
      } else {
        remarkQuanPinBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000800);
      contactType_ = 0;
      bitField0_ = (bitField0_ & ~0x00001000);
      roomInfoNum_ = 0;
      bitField0_ = (bitField0_ & ~0x00002000);
      if (roomInfoListBuilder_ == null) {
        roomInfoList_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00004000);
      } else {
        roomInfoListBuilder_.clear();
      }
      if (domainListBuilder_ == null) {
        domainList_ = null;
      } else {
        domainListBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00008000);
      chatRoomNotify_ = 0;
      bitField0_ = (bitField0_ & ~0x00010000);
      addContactScene_ = 0;
      bitField0_ = (bitField0_ & ~0x00020000);
      province_ = "";
      bitField0_ = (bitField0_ & ~0x00040000);
      city_ = "";
      bitField0_ = (bitField0_ & ~0x00080000);
      signature_ = "";
      bitField0_ = (bitField0_ & ~0x00100000);
      personalCard_ = 0;
      bitField0_ = (bitField0_ & ~0x00200000);
      hasWeiXinHdHeadImg_ = 0;
      bitField0_ = (bitField0_ & ~0x00400000);
      verifyFlag_ = 0;
      bitField0_ = (bitField0_ & ~0x00800000);
      verifyInfo_ = "";
      bitField0_ = (bitField0_ & ~0x01000000);
      level_ = 0;
      bitField0_ = (bitField0_ & ~0x02000000);
      source_ = 0;
      bitField0_ = (bitField0_ & ~0x04000000);
      weibo_ = "";
      bitField0_ = (bitField0_ & ~0x08000000);
      verifyContent_ = "";
      bitField0_ = (bitField0_ & ~0x10000000);
      alias_ = "";
      bitField0_ = (bitField0_ & ~0x20000000);
      chatRoomOwner_ = "";
      bitField0_ = (bitField0_ & ~0x40000000);
      weiboNickname_ = "";
      bitField0_ = (bitField0_ & ~0x80000000);
      weiboFlag_ = 0;
      bitField1_ = (bitField1_ & ~0x00000001);
      albumStyle_ = 0;
      bitField1_ = (bitField1_ & ~0x00000002);
      albumFlag_ = 0;
      bitField1_ = (bitField1_ & ~0x00000004);
      albumBgimgId_ = "";
      bitField1_ = (bitField1_ & ~0x00000008);
      if (snsUserInfoBuilder_ == null) {
        snsUserInfo_ = null;
      } else {
        snsUserInfoBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00000010);
      country_ = "";
      bitField1_ = (bitField1_ & ~0x00000020);
      bigHeadImgUrl_ = "";
      bitField1_ = (bitField1_ & ~0x00000040);
      smallHeadImgUrl_ = "";
      bitField1_ = (bitField1_ & ~0x00000080);
      myBrandList_ = "";
      bitField1_ = (bitField1_ & ~0x00000100);
      if (customizedInfoBuilder_ == null) {
        customizedInfo_ = null;
      } else {
        customizedInfoBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00000200);
      chatRoomData_ = "";
      bitField1_ = (bitField1_ & ~0x00000400);
      headImgMd5_ = "";
      bitField1_ = (bitField1_ & ~0x00000800);
      encryptUserName_ = "";
      bitField1_ = (bitField1_ & ~0x00001000);
      idcardNum_ = "";
      bitField1_ = (bitField1_ & ~0x00002000);
      realName_ = "";
      bitField1_ = (bitField1_ & ~0x00004000);
      mobileHash_ = "";
      bitField1_ = (bitField1_ & ~0x00008000);
      mobileFullHash_ = "";
      bitField1_ = (bitField1_ & ~0x00010000);
      if (additionalContactListBuilder_ == null) {
        additionalContactList_ = null;
      } else {
        additionalContactListBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00020000);
      chatroomVersion_ = 0;
      bitField1_ = (bitField1_ & ~0x00040000);
      extInfo_ = "";
      bitField1_ = (bitField1_ & ~0x00080000);
      chatroomMaxNum_ = 0;
      bitField1_ = (bitField1_ & ~0x00100000);
      chatroomAccessType_ = 0;
      bitField1_ = (bitField1_ & ~0x00200000);
      if (newChatroomDataBuilder_ == null) {
        newChatroomData_ = null;
      } else {
        newChatroomDataBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00400000);
      deleteFlag_ = 0;
      bitField1_ = (bitField1_ & ~0x00800000);
      description_ = "";
      bitField1_ = (bitField1_ & ~0x01000000);
      cardImgUrl_ = "";
      bitField1_ = (bitField1_ & ~0x02000000);
      labelIdlist_ = "";
      bitField1_ = (bitField1_ & ~0x04000000);
      if (phoneNumListInfoBuilder_ == null) {
        phoneNumListInfo_ = null;
      } else {
        phoneNumListInfoBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x08000000);
      weiDianInfo_ = "";
      bitField1_ = (bitField1_ & ~0x10000000);
      chatroomInfoVersion_ = 0;
      bitField1_ = (bitField1_ & ~0x20000000);
      deleteContactScene_ = 0;
      bitField1_ = (bitField1_ & ~0x40000000);
      chatroomStatus_ = 0;
      bitField1_ = (bitField1_ & ~0x80000000);
      extFlag_ = 0;
      bitField2_ = (bitField2_ & ~0x00000001);
      sourceExtInfo_ = "";
      bitField2_ = (bitField2_ & ~0x00000002);
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return wechat.protobuf.Wechat.internal_static_wechat_proto_ModContact_descriptor;
    }

    @java.lang.Override
    public wechat.protobuf.ModContact getDefaultInstanceForType() {
      return wechat.protobuf.ModContact.getDefaultInstance();
    }

    @java.lang.Override
    public wechat.protobuf.ModContact build() {
      wechat.protobuf.ModContact result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public wechat.protobuf.ModContact buildPartial() {
      wechat.protobuf.ModContact result = new wechat.protobuf.ModContact(this);
      int from_bitField0_ = bitField0_;
      int from_bitField1_ = bitField1_;
      int from_bitField2_ = bitField2_;
      int to_bitField0_ = 0;
      int to_bitField1_ = 0;
      int to_bitField2_ = 0;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        if (userNameBuilder_ == null) {
          result.userName_ = userName_;
        } else {
          result.userName_ = userNameBuilder_.build();
        }
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        if (nickNameBuilder_ == null) {
          result.nickName_ = nickName_;
        } else {
          result.nickName_ = nickNameBuilder_.build();
        }
        to_bitField0_ |= 0x00000002;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        if (pyinitialBuilder_ == null) {
          result.pyinitial_ = pyinitial_;
        } else {
          result.pyinitial_ = pyinitialBuilder_.build();
        }
        to_bitField0_ |= 0x00000004;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        if (quanPinBuilder_ == null) {
          result.quanPin_ = quanPin_;
        } else {
          result.quanPin_ = quanPinBuilder_.build();
        }
        to_bitField0_ |= 0x00000008;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.sex_ = sex_;
        to_bitField0_ |= 0x00000010;
      }
      if (((from_bitField0_ & 0x00000020) != 0)) {
        if (imgBufBuilder_ == null) {
          result.imgBuf_ = imgBuf_;
        } else {
          result.imgBuf_ = imgBufBuilder_.build();
        }
        to_bitField0_ |= 0x00000020;
      }
      if (((from_bitField0_ & 0x00000040) != 0)) {
        result.bitMask_ = bitMask_;
        to_bitField0_ |= 0x00000040;
      }
      if (((from_bitField0_ & 0x00000080) != 0)) {
        result.bitVal_ = bitVal_;
        to_bitField0_ |= 0x00000080;
      }
      if (((from_bitField0_ & 0x00000100) != 0)) {
        result.imgFlag_ = imgFlag_;
        to_bitField0_ |= 0x00000100;
      }
      if (((from_bitField0_ & 0x00000200) != 0)) {
        if (remarkBuilder_ == null) {
          result.remark_ = remark_;
        } else {
          result.remark_ = remarkBuilder_.build();
        }
        to_bitField0_ |= 0x00000200;
      }
      if (((from_bitField0_ & 0x00000400) != 0)) {
        if (remarkPyinitialBuilder_ == null) {
          result.remarkPyinitial_ = remarkPyinitial_;
        } else {
          result.remarkPyinitial_ = remarkPyinitialBuilder_.build();
        }
        to_bitField0_ |= 0x00000400;
      }
      if (((from_bitField0_ & 0x00000800) != 0)) {
        if (remarkQuanPinBuilder_ == null) {
          result.remarkQuanPin_ = remarkQuanPin_;
        } else {
          result.remarkQuanPin_ = remarkQuanPinBuilder_.build();
        }
        to_bitField0_ |= 0x00000800;
      }
      if (((from_bitField0_ & 0x00001000) != 0)) {
        result.contactType_ = contactType_;
        to_bitField0_ |= 0x00001000;
      }
      if (((from_bitField0_ & 0x00002000) != 0)) {
        result.roomInfoNum_ = roomInfoNum_;
        to_bitField0_ |= 0x00002000;
      }
      if (roomInfoListBuilder_ == null) {
        if (((bitField0_ & 0x00004000) != 0)) {
          roomInfoList_ = java.util.Collections.unmodifiableList(roomInfoList_);
          bitField0_ = (bitField0_ & ~0x00004000);
        }
        result.roomInfoList_ = roomInfoList_;
      } else {
        result.roomInfoList_ = roomInfoListBuilder_.build();
      }
      if (((from_bitField0_ & 0x00008000) != 0)) {
        if (domainListBuilder_ == null) {
          result.domainList_ = domainList_;
        } else {
          result.domainList_ = domainListBuilder_.build();
        }
        to_bitField0_ |= 0x00004000;
      }
      if (((from_bitField0_ & 0x00010000) != 0)) {
        result.chatRoomNotify_ = chatRoomNotify_;
        to_bitField0_ |= 0x00008000;
      }
      if (((from_bitField0_ & 0x00020000) != 0)) {
        result.addContactScene_ = addContactScene_;
        to_bitField0_ |= 0x00010000;
      }
      if (((from_bitField0_ & 0x00040000) != 0)) {
        to_bitField0_ |= 0x00020000;
      }
      result.province_ = province_;
      if (((from_bitField0_ & 0x00080000) != 0)) {
        to_bitField0_ |= 0x00040000;
      }
      result.city_ = city_;
      if (((from_bitField0_ & 0x00100000) != 0)) {
        to_bitField0_ |= 0x00080000;
      }
      result.signature_ = signature_;
      if (((from_bitField0_ & 0x00200000) != 0)) {
        result.personalCard_ = personalCard_;
        to_bitField0_ |= 0x00100000;
      }
      if (((from_bitField0_ & 0x00400000) != 0)) {
        result.hasWeiXinHdHeadImg_ = hasWeiXinHdHeadImg_;
        to_bitField0_ |= 0x00200000;
      }
      if (((from_bitField0_ & 0x00800000) != 0)) {
        result.verifyFlag_ = verifyFlag_;
        to_bitField0_ |= 0x00400000;
      }
      if (((from_bitField0_ & 0x01000000) != 0)) {
        to_bitField0_ |= 0x00800000;
      }
      result.verifyInfo_ = verifyInfo_;
      if (((from_bitField0_ & 0x02000000) != 0)) {
        result.level_ = level_;
        to_bitField0_ |= 0x01000000;
      }
      if (((from_bitField0_ & 0x04000000) != 0)) {
        result.source_ = source_;
        to_bitField0_ |= 0x02000000;
      }
      if (((from_bitField0_ & 0x08000000) != 0)) {
        to_bitField0_ |= 0x04000000;
      }
      result.weibo_ = weibo_;
      if (((from_bitField0_ & 0x10000000) != 0)) {
        to_bitField0_ |= 0x08000000;
      }
      result.verifyContent_ = verifyContent_;
      if (((from_bitField0_ & 0x20000000) != 0)) {
        to_bitField0_ |= 0x10000000;
      }
      result.alias_ = alias_;
      if (((from_bitField0_ & 0x40000000) != 0)) {
        to_bitField0_ |= 0x20000000;
      }
      result.chatRoomOwner_ = chatRoomOwner_;
      if (((from_bitField0_ & 0x80000000) != 0)) {
        to_bitField0_ |= 0x40000000;
      }
      result.weiboNickname_ = weiboNickname_;
      if (((from_bitField1_ & 0x00000001) != 0)) {
        result.weiboFlag_ = weiboFlag_;
        to_bitField0_ |= 0x80000000;
      }
      if (((from_bitField1_ & 0x00000002) != 0)) {
        result.albumStyle_ = albumStyle_;
        to_bitField1_ |= 0x00000001;
      }
      if (((from_bitField1_ & 0x00000004) != 0)) {
        result.albumFlag_ = albumFlag_;
        to_bitField1_ |= 0x00000002;
      }
      if (((from_bitField1_ & 0x00000008) != 0)) {
        to_bitField1_ |= 0x00000004;
      }
      result.albumBgimgId_ = albumBgimgId_;
      if (((from_bitField1_ & 0x00000010) != 0)) {
        if (snsUserInfoBuilder_ == null) {
          result.snsUserInfo_ = snsUserInfo_;
        } else {
          result.snsUserInfo_ = snsUserInfoBuilder_.build();
        }
        to_bitField1_ |= 0x00000008;
      }
      if (((from_bitField1_ & 0x00000020) != 0)) {
        to_bitField1_ |= 0x00000010;
      }
      result.country_ = country_;
      if (((from_bitField1_ & 0x00000040) != 0)) {
        to_bitField1_ |= 0x00000020;
      }
      result.bigHeadImgUrl_ = bigHeadImgUrl_;
      if (((from_bitField1_ & 0x00000080) != 0)) {
        to_bitField1_ |= 0x00000040;
      }
      result.smallHeadImgUrl_ = smallHeadImgUrl_;
      if (((from_bitField1_ & 0x00000100) != 0)) {
        to_bitField1_ |= 0x00000080;
      }
      result.myBrandList_ = myBrandList_;
      if (((from_bitField1_ & 0x00000200) != 0)) {
        if (customizedInfoBuilder_ == null) {
          result.customizedInfo_ = customizedInfo_;
        } else {
          result.customizedInfo_ = customizedInfoBuilder_.build();
        }
        to_bitField1_ |= 0x00000100;
      }
      if (((from_bitField1_ & 0x00000400) != 0)) {
        to_bitField1_ |= 0x00000200;
      }
      result.chatRoomData_ = chatRoomData_;
      if (((from_bitField1_ & 0x00000800) != 0)) {
        to_bitField1_ |= 0x00000400;
      }
      result.headImgMd5_ = headImgMd5_;
      if (((from_bitField1_ & 0x00001000) != 0)) {
        to_bitField1_ |= 0x00000800;
      }
      result.encryptUserName_ = encryptUserName_;
      if (((from_bitField1_ & 0x00002000) != 0)) {
        to_bitField1_ |= 0x00001000;
      }
      result.idcardNum_ = idcardNum_;
      if (((from_bitField1_ & 0x00004000) != 0)) {
        to_bitField1_ |= 0x00002000;
      }
      result.realName_ = realName_;
      if (((from_bitField1_ & 0x00008000) != 0)) {
        to_bitField1_ |= 0x00004000;
      }
      result.mobileHash_ = mobileHash_;
      if (((from_bitField1_ & 0x00010000) != 0)) {
        to_bitField1_ |= 0x00008000;
      }
      result.mobileFullHash_ = mobileFullHash_;
      if (((from_bitField1_ & 0x00020000) != 0)) {
        if (additionalContactListBuilder_ == null) {
          result.additionalContactList_ = additionalContactList_;
        } else {
          result.additionalContactList_ = additionalContactListBuilder_.build();
        }
        to_bitField1_ |= 0x00010000;
      }
      if (((from_bitField1_ & 0x00040000) != 0)) {
        result.chatroomVersion_ = chatroomVersion_;
        to_bitField1_ |= 0x00020000;
      }
      if (((from_bitField1_ & 0x00080000) != 0)) {
        to_bitField1_ |= 0x00040000;
      }
      result.extInfo_ = extInfo_;
      if (((from_bitField1_ & 0x00100000) != 0)) {
        result.chatroomMaxNum_ = chatroomMaxNum_;
        to_bitField1_ |= 0x00080000;
      }
      if (((from_bitField1_ & 0x00200000) != 0)) {
        result.chatroomAccessType_ = chatroomAccessType_;
        to_bitField1_ |= 0x00100000;
      }
      if (((from_bitField1_ & 0x00400000) != 0)) {
        if (newChatroomDataBuilder_ == null) {
          result.newChatroomData_ = newChatroomData_;
        } else {
          result.newChatroomData_ = newChatroomDataBuilder_.build();
        }
        to_bitField1_ |= 0x00200000;
      }
      if (((from_bitField1_ & 0x00800000) != 0)) {
        result.deleteFlag_ = deleteFlag_;
        to_bitField1_ |= 0x00400000;
      }
      if (((from_bitField1_ & 0x01000000) != 0)) {
        to_bitField1_ |= 0x00800000;
      }
      result.description_ = description_;
      if (((from_bitField1_ & 0x02000000) != 0)) {
        to_bitField1_ |= 0x01000000;
      }
      result.cardImgUrl_ = cardImgUrl_;
      if (((from_bitField1_ & 0x04000000) != 0)) {
        to_bitField1_ |= 0x02000000;
      }
      result.labelIdlist_ = labelIdlist_;
      if (((from_bitField1_ & 0x08000000) != 0)) {
        if (phoneNumListInfoBuilder_ == null) {
          result.phoneNumListInfo_ = phoneNumListInfo_;
        } else {
          result.phoneNumListInfo_ = phoneNumListInfoBuilder_.build();
        }
        to_bitField1_ |= 0x04000000;
      }
      if (((from_bitField1_ & 0x10000000) != 0)) {
        to_bitField1_ |= 0x08000000;
      }
      result.weiDianInfo_ = weiDianInfo_;
      if (((from_bitField1_ & 0x20000000) != 0)) {
        result.chatroomInfoVersion_ = chatroomInfoVersion_;
        to_bitField1_ |= 0x10000000;
      }
      if (((from_bitField1_ & 0x40000000) != 0)) {
        result.deleteContactScene_ = deleteContactScene_;
        to_bitField1_ |= 0x20000000;
      }
      if (((from_bitField1_ & 0x80000000) != 0)) {
        result.chatroomStatus_ = chatroomStatus_;
        to_bitField1_ |= 0x40000000;
      }
      if (((from_bitField2_ & 0x00000001) != 0)) {
        result.extFlag_ = extFlag_;
        to_bitField1_ |= 0x80000000;
      }
      if (((from_bitField2_ & 0x00000002) != 0)) {
        to_bitField2_ |= 0x00000001;
      }
      result.sourceExtInfo_ = sourceExtInfo_;
      result.bitField0_ = to_bitField0_;
      result.bitField1_ = to_bitField1_;
      result.bitField2_ = to_bitField2_;
      onBuilt();
      return result;
    }

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

    public Builder mergeFrom(wechat.protobuf.ModContact other) {
      if (other == wechat.protobuf.ModContact.getDefaultInstance()) return this;
      if (other.hasUserName()) {
        mergeUserName(other.getUserName());
      }
      if (other.hasNickName()) {
        mergeNickName(other.getNickName());
      }
      if (other.hasPyinitial()) {
        mergePyinitial(other.getPyinitial());
      }
      if (other.hasQuanPin()) {
        mergeQuanPin(other.getQuanPin());
      }
      if (other.hasSex()) {
        setSex(other.getSex());
      }
      if (other.hasImgBuf()) {
        mergeImgBuf(other.getImgBuf());
      }
      if (other.hasBitMask()) {
        setBitMask(other.getBitMask());
      }
      if (other.hasBitVal()) {
        setBitVal(other.getBitVal());
      }
      if (other.hasImgFlag()) {
        setImgFlag(other.getImgFlag());
      }
      if (other.hasRemark()) {
        mergeRemark(other.getRemark());
      }
      if (other.hasRemarkPyinitial()) {
        mergeRemarkPyinitial(other.getRemarkPyinitial());
      }
      if (other.hasRemarkQuanPin()) {
        mergeRemarkQuanPin(other.getRemarkQuanPin());
      }
      if (other.hasContactType()) {
        setContactType(other.getContactType());
      }
      if (other.hasRoomInfoNum()) {
        setRoomInfoNum(other.getRoomInfoNum());
      }
      if (roomInfoListBuilder_ == null) {
        if (!other.roomInfoList_.isEmpty()) {
          if (roomInfoList_.isEmpty()) {
            roomInfoList_ = other.roomInfoList_;
            bitField0_ = (bitField0_ & ~0x00004000);
          } else {
            ensureRoomInfoListIsMutable();
            roomInfoList_.addAll(other.roomInfoList_);
          }
          onChanged();
        }
      } else {
        if (!other.roomInfoList_.isEmpty()) {
          if (roomInfoListBuilder_.isEmpty()) {
            roomInfoListBuilder_.dispose();
            roomInfoListBuilder_ = null;
            roomInfoList_ = other.roomInfoList_;
            bitField0_ = (bitField0_ & ~0x00004000);
            roomInfoListBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getRoomInfoListFieldBuilder() : null;
          } else {
            roomInfoListBuilder_.addAllMessages(other.roomInfoList_);
          }
        }
      }
      if (other.hasDomainList()) {
        mergeDomainList(other.getDomainList());
      }
      if (other.hasChatRoomNotify()) {
        setChatRoomNotify(other.getChatRoomNotify());
      }
      if (other.hasAddContactScene()) {
        setAddContactScene(other.getAddContactScene());
      }
      if (other.hasProvince()) {
        bitField0_ |= 0x00040000;
        province_ = other.province_;
        onChanged();
      }
      if (other.hasCity()) {
        bitField0_ |= 0x00080000;
        city_ = other.city_;
        onChanged();
      }
      if (other.hasSignature()) {
        bitField0_ |= 0x00100000;
        signature_ = other.signature_;
        onChanged();
      }
      if (other.hasPersonalCard()) {
        setPersonalCard(other.getPersonalCard());
      }
      if (other.hasHasWeiXinHdHeadImg()) {
        setHasWeiXinHdHeadImg(other.getHasWeiXinHdHeadImg());
      }
      if (other.hasVerifyFlag()) {
        setVerifyFlag(other.getVerifyFlag());
      }
      if (other.hasVerifyInfo()) {
        bitField0_ |= 0x01000000;
        verifyInfo_ = other.verifyInfo_;
        onChanged();
      }
      if (other.hasLevel()) {
        setLevel(other.getLevel());
      }
      if (other.hasSource()) {
        setSource(other.getSource());
      }
      if (other.hasWeibo()) {
        bitField0_ |= 0x08000000;
        weibo_ = other.weibo_;
        onChanged();
      }
      if (other.hasVerifyContent()) {
        bitField0_ |= 0x10000000;
        verifyContent_ = other.verifyContent_;
        onChanged();
      }
      if (other.hasAlias()) {
        bitField0_ |= 0x20000000;
        alias_ = other.alias_;
        onChanged();
      }
      if (other.hasChatRoomOwner()) {
        bitField0_ |= 0x40000000;
        chatRoomOwner_ = other.chatRoomOwner_;
        onChanged();
      }
      if (other.hasWeiboNickname()) {
        bitField0_ |= 0x80000000;
        weiboNickname_ = other.weiboNickname_;
        onChanged();
      }
      if (other.hasWeiboFlag()) {
        setWeiboFlag(other.getWeiboFlag());
      }
      if (other.hasAlbumStyle()) {
        setAlbumStyle(other.getAlbumStyle());
      }
      if (other.hasAlbumFlag()) {
        setAlbumFlag(other.getAlbumFlag());
      }
      if (other.hasAlbumBgimgId()) {
        bitField1_ |= 0x00000008;
        albumBgimgId_ = other.albumBgimgId_;
        onChanged();
      }
      if (other.hasSnsUserInfo()) {
        mergeSnsUserInfo(other.getSnsUserInfo());
      }
      if (other.hasCountry()) {
        bitField1_ |= 0x00000020;
        country_ = other.country_;
        onChanged();
      }
      if (other.hasBigHeadImgUrl()) {
        bitField1_ |= 0x00000040;
        bigHeadImgUrl_ = other.bigHeadImgUrl_;
        onChanged();
      }
      if (other.hasSmallHeadImgUrl()) {
        bitField1_ |= 0x00000080;
        smallHeadImgUrl_ = other.smallHeadImgUrl_;
        onChanged();
      }
      if (other.hasMyBrandList()) {
        bitField1_ |= 0x00000100;
        myBrandList_ = other.myBrandList_;
        onChanged();
      }
      if (other.hasCustomizedInfo()) {
        mergeCustomizedInfo(other.getCustomizedInfo());
      }
      if (other.hasChatRoomData()) {
        bitField1_ |= 0x00000400;
        chatRoomData_ = other.chatRoomData_;
        onChanged();
      }
      if (other.hasHeadImgMd5()) {
        bitField1_ |= 0x00000800;
        headImgMd5_ = other.headImgMd5_;
        onChanged();
      }
      if (other.hasEncryptUserName()) {
        bitField1_ |= 0x00001000;
        encryptUserName_ = other.encryptUserName_;
        onChanged();
      }
      if (other.hasIdcardNum()) {
        bitField1_ |= 0x00002000;
        idcardNum_ = other.idcardNum_;
        onChanged();
      }
      if (other.hasRealName()) {
        bitField1_ |= 0x00004000;
        realName_ = other.realName_;
        onChanged();
      }
      if (other.hasMobileHash()) {
        bitField1_ |= 0x00008000;
        mobileHash_ = other.mobileHash_;
        onChanged();
      }
      if (other.hasMobileFullHash()) {
        bitField1_ |= 0x00010000;
        mobileFullHash_ = other.mobileFullHash_;
        onChanged();
      }
      if (other.hasAdditionalContactList()) {
        mergeAdditionalContactList(other.getAdditionalContactList());
      }
      if (other.hasChatroomVersion()) {
        setChatroomVersion(other.getChatroomVersion());
      }
      if (other.hasExtInfo()) {
        bitField1_ |= 0x00080000;
        extInfo_ = other.extInfo_;
        onChanged();
      }
      if (other.hasChatroomMaxNum()) {
        setChatroomMaxNum(other.getChatroomMaxNum());
      }
      if (other.hasChatroomAccessType()) {
        setChatroomAccessType(other.getChatroomAccessType());
      }
      if (other.hasNewChatroomData()) {
        mergeNewChatroomData(other.getNewChatroomData());
      }
      if (other.hasDeleteFlag()) {
        setDeleteFlag(other.getDeleteFlag());
      }
      if (other.hasDescription()) {
        bitField1_ |= 0x01000000;
        description_ = other.description_;
        onChanged();
      }
      if (other.hasCardImgUrl()) {
        bitField1_ |= 0x02000000;
        cardImgUrl_ = other.cardImgUrl_;
        onChanged();
      }
      if (other.hasLabelIdlist()) {
        bitField1_ |= 0x04000000;
        labelIdlist_ = other.labelIdlist_;
        onChanged();
      }
      if (other.hasPhoneNumListInfo()) {
        mergePhoneNumListInfo(other.getPhoneNumListInfo());
      }
      if (other.hasWeiDianInfo()) {
        bitField1_ |= 0x10000000;
        weiDianInfo_ = other.weiDianInfo_;
        onChanged();
      }
      if (other.hasChatroomInfoVersion()) {
        setChatroomInfoVersion(other.getChatroomInfoVersion());
      }
      if (other.hasDeleteContactScene()) {
        setDeleteContactScene(other.getDeleteContactScene());
      }
      if (other.hasChatroomStatus()) {
        setChatroomStatus(other.getChatroomStatus());
      }
      if (other.hasExtFlag()) {
        setExtFlag(other.getExtFlag());
      }
      if (other.hasSourceExtInfo()) {
        bitField2_ |= 0x00000002;
        sourceExtInfo_ = other.sourceExtInfo_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

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

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

    private wechat.protobuf.SKBuiltinString userName_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> userNameBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     * @return Whether the userName field is set.
     */
    public boolean hasUserName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     * @return The userName.
     */
    public wechat.protobuf.SKBuiltinString getUserName() {
      if (userNameBuilder_ == null) {
        return userName_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : userName_;
      } else {
        return userNameBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     */
    public Builder setUserName(wechat.protobuf.SKBuiltinString value) {
      if (userNameBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        userName_ = value;
        onChanged();
      } else {
        userNameBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     */
    public Builder setUserName(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (userNameBuilder_ == null) {
        userName_ = builderForValue.build();
        onChanged();
      } else {
        userNameBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     */
    public Builder mergeUserName(wechat.protobuf.SKBuiltinString value) {
      if (userNameBuilder_ == null) {
        if (((bitField0_ & 0x00000001) != 0) &&
            userName_ != null &&
            userName_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          userName_ =
            wechat.protobuf.SKBuiltinString.newBuilder(userName_).mergeFrom(value).buildPartial();
        } else {
          userName_ = value;
        }
        onChanged();
      } else {
        userNameBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     */
    public Builder clearUserName() {
      if (userNameBuilder_ == null) {
        userName_ = null;
        onChanged();
      } else {
        userNameBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000001);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     */
    public wechat.protobuf.SKBuiltinString.Builder getUserNameBuilder() {
      bitField0_ |= 0x00000001;
      onChanged();
      return getUserNameFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getUserNameOrBuilder() {
      if (userNameBuilder_ != null) {
        return userNameBuilder_.getMessageOrBuilder();
      } else {
        return userName_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : userName_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString userName = 1;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getUserNameFieldBuilder() {
      if (userNameBuilder_ == null) {
        userNameBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getUserName(),
                getParentForChildren(),
                isClean());
        userName_ = null;
      }
      return userNameBuilder_;
    }

    private wechat.protobuf.SKBuiltinString nickName_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> nickNameBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     * @return Whether the nickName field is set.
     */
    public boolean hasNickName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     * @return The nickName.
     */
    public wechat.protobuf.SKBuiltinString getNickName() {
      if (nickNameBuilder_ == null) {
        return nickName_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : nickName_;
      } else {
        return nickNameBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     */
    public Builder setNickName(wechat.protobuf.SKBuiltinString value) {
      if (nickNameBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        nickName_ = value;
        onChanged();
      } else {
        nickNameBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000002;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     */
    public Builder setNickName(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (nickNameBuilder_ == null) {
        nickName_ = builderForValue.build();
        onChanged();
      } else {
        nickNameBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000002;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     */
    public Builder mergeNickName(wechat.protobuf.SKBuiltinString value) {
      if (nickNameBuilder_ == null) {
        if (((bitField0_ & 0x00000002) != 0) &&
            nickName_ != null &&
            nickName_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          nickName_ =
            wechat.protobuf.SKBuiltinString.newBuilder(nickName_).mergeFrom(value).buildPartial();
        } else {
          nickName_ = value;
        }
        onChanged();
      } else {
        nickNameBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000002;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     */
    public Builder clearNickName() {
      if (nickNameBuilder_ == null) {
        nickName_ = null;
        onChanged();
      } else {
        nickNameBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000002);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     */
    public wechat.protobuf.SKBuiltinString.Builder getNickNameBuilder() {
      bitField0_ |= 0x00000002;
      onChanged();
      return getNickNameFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getNickNameOrBuilder() {
      if (nickNameBuilder_ != null) {
        return nickNameBuilder_.getMessageOrBuilder();
      } else {
        return nickName_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : nickName_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString nickName = 2;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getNickNameFieldBuilder() {
      if (nickNameBuilder_ == null) {
        nickNameBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getNickName(),
                getParentForChildren(),
                isClean());
        nickName_ = null;
      }
      return nickNameBuilder_;
    }

    private wechat.protobuf.SKBuiltinString pyinitial_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> pyinitialBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     * @return Whether the pyinitial field is set.
     */
    public boolean hasPyinitial() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     * @return The pyinitial.
     */
    public wechat.protobuf.SKBuiltinString getPyinitial() {
      if (pyinitialBuilder_ == null) {
        return pyinitial_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : pyinitial_;
      } else {
        return pyinitialBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     */
    public Builder setPyinitial(wechat.protobuf.SKBuiltinString value) {
      if (pyinitialBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        pyinitial_ = value;
        onChanged();
      } else {
        pyinitialBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000004;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     */
    public Builder setPyinitial(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (pyinitialBuilder_ == null) {
        pyinitial_ = builderForValue.build();
        onChanged();
      } else {
        pyinitialBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000004;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     */
    public Builder mergePyinitial(wechat.protobuf.SKBuiltinString value) {
      if (pyinitialBuilder_ == null) {
        if (((bitField0_ & 0x00000004) != 0) &&
            pyinitial_ != null &&
            pyinitial_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          pyinitial_ =
            wechat.protobuf.SKBuiltinString.newBuilder(pyinitial_).mergeFrom(value).buildPartial();
        } else {
          pyinitial_ = value;
        }
        onChanged();
      } else {
        pyinitialBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000004;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     */
    public Builder clearPyinitial() {
      if (pyinitialBuilder_ == null) {
        pyinitial_ = null;
        onChanged();
      } else {
        pyinitialBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000004);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     */
    public wechat.protobuf.SKBuiltinString.Builder getPyinitialBuilder() {
      bitField0_ |= 0x00000004;
      onChanged();
      return getPyinitialFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getPyinitialOrBuilder() {
      if (pyinitialBuilder_ != null) {
        return pyinitialBuilder_.getMessageOrBuilder();
      } else {
        return pyinitial_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : pyinitial_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString pyinitial = 3;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getPyinitialFieldBuilder() {
      if (pyinitialBuilder_ == null) {
        pyinitialBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getPyinitial(),
                getParentForChildren(),
                isClean());
        pyinitial_ = null;
      }
      return pyinitialBuilder_;
    }

    private wechat.protobuf.SKBuiltinString quanPin_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> quanPinBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     * @return Whether the quanPin field is set.
     */
    public boolean hasQuanPin() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     * @return The quanPin.
     */
    public wechat.protobuf.SKBuiltinString getQuanPin() {
      if (quanPinBuilder_ == null) {
        return quanPin_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : quanPin_;
      } else {
        return quanPinBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     */
    public Builder setQuanPin(wechat.protobuf.SKBuiltinString value) {
      if (quanPinBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        quanPin_ = value;
        onChanged();
      } else {
        quanPinBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000008;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     */
    public Builder setQuanPin(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (quanPinBuilder_ == null) {
        quanPin_ = builderForValue.build();
        onChanged();
      } else {
        quanPinBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000008;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     */
    public Builder mergeQuanPin(wechat.protobuf.SKBuiltinString value) {
      if (quanPinBuilder_ == null) {
        if (((bitField0_ & 0x00000008) != 0) &&
            quanPin_ != null &&
            quanPin_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          quanPin_ =
            wechat.protobuf.SKBuiltinString.newBuilder(quanPin_).mergeFrom(value).buildPartial();
        } else {
          quanPin_ = value;
        }
        onChanged();
      } else {
        quanPinBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000008;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     */
    public Builder clearQuanPin() {
      if (quanPinBuilder_ == null) {
        quanPin_ = null;
        onChanged();
      } else {
        quanPinBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000008);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     */
    public wechat.protobuf.SKBuiltinString.Builder getQuanPinBuilder() {
      bitField0_ |= 0x00000008;
      onChanged();
      return getQuanPinFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getQuanPinOrBuilder() {
      if (quanPinBuilder_ != null) {
        return quanPinBuilder_.getMessageOrBuilder();
      } else {
        return quanPin_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : quanPin_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString quanPin = 4;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getQuanPinFieldBuilder() {
      if (quanPinBuilder_ == null) {
        quanPinBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getQuanPin(),
                getParentForChildren(),
                isClean());
        quanPin_ = null;
      }
      return quanPinBuilder_;
    }

    private int sex_ ;
    /**
     * optional int32 sex = 5;
     * @return Whether the sex field is set.
     */
    @java.lang.Override
    public boolean hasSex() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional int32 sex = 5;
     * @return The sex.
     */
    @java.lang.Override
    public int getSex() {
      return sex_;
    }
    /**
     * optional int32 sex = 5;
     * @param value The sex to set.
     * @return This builder for chaining.
     */
    public Builder setSex(int value) {
      bitField0_ |= 0x00000010;
      sex_ = value;
      onChanged();
      return this;
    }
    /**
     * optional int32 sex = 5;
     * @return This builder for chaining.
     */
    public Builder clearSex() {
      bitField0_ = (bitField0_ & ~0x00000010);
      sex_ = 0;
      onChanged();
      return this;
    }

    private wechat.protobuf.SKBuiltinString_ imgBuf_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString_, wechat.protobuf.SKBuiltinString_.Builder, wechat.protobuf.SKBuiltinString_OrBuilder> imgBufBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     * @return Whether the imgBuf field is set.
     */
    public boolean hasImgBuf() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     * @return The imgBuf.
     */
    public wechat.protobuf.SKBuiltinString_ getImgBuf() {
      if (imgBufBuilder_ == null) {
        return imgBuf_ == null ? wechat.protobuf.SKBuiltinString_.getDefaultInstance() : imgBuf_;
      } else {
        return imgBufBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     */
    public Builder setImgBuf(wechat.protobuf.SKBuiltinString_ value) {
      if (imgBufBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        imgBuf_ = value;
        onChanged();
      } else {
        imgBufBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000020;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     */
    public Builder setImgBuf(
        wechat.protobuf.SKBuiltinString_.Builder builderForValue) {
      if (imgBufBuilder_ == null) {
        imgBuf_ = builderForValue.build();
        onChanged();
      } else {
        imgBufBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000020;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     */
    public Builder mergeImgBuf(wechat.protobuf.SKBuiltinString_ value) {
      if (imgBufBuilder_ == null) {
        if (((bitField0_ & 0x00000020) != 0) &&
            imgBuf_ != null &&
            imgBuf_ != wechat.protobuf.SKBuiltinString_.getDefaultInstance()) {
          imgBuf_ =
            wechat.protobuf.SKBuiltinString_.newBuilder(imgBuf_).mergeFrom(value).buildPartial();
        } else {
          imgBuf_ = value;
        }
        onChanged();
      } else {
        imgBufBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000020;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     */
    public Builder clearImgBuf() {
      if (imgBufBuilder_ == null) {
        imgBuf_ = null;
        onChanged();
      } else {
        imgBufBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000020);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     */
    public wechat.protobuf.SKBuiltinString_.Builder getImgBufBuilder() {
      bitField0_ |= 0x00000020;
      onChanged();
      return getImgBufFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     */
    public wechat.protobuf.SKBuiltinString_OrBuilder getImgBufOrBuilder() {
      if (imgBufBuilder_ != null) {
        return imgBufBuilder_.getMessageOrBuilder();
      } else {
        return imgBuf_ == null ?
            wechat.protobuf.SKBuiltinString_.getDefaultInstance() : imgBuf_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString_ imgBuf = 6;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString_, wechat.protobuf.SKBuiltinString_.Builder, wechat.protobuf.SKBuiltinString_OrBuilder> 
        getImgBufFieldBuilder() {
      if (imgBufBuilder_ == null) {
        imgBufBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString_, wechat.protobuf.SKBuiltinString_.Builder, wechat.protobuf.SKBuiltinString_OrBuilder>(
                getImgBuf(),
                getParentForChildren(),
                isClean());
        imgBuf_ = null;
      }
      return imgBufBuilder_;
    }

    private int bitMask_ ;
    /**
     * optional uint32 bitMask = 7;
     * @return Whether the bitMask field is set.
     */
    @java.lang.Override
    public boolean hasBitMask() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * optional uint32 bitMask = 7;
     * @return The bitMask.
     */
    @java.lang.Override
    public int getBitMask() {
      return bitMask_;
    }
    /**
     * optional uint32 bitMask = 7;
     * @param value The bitMask to set.
     * @return This builder for chaining.
     */
    public Builder setBitMask(int value) {
      bitField0_ |= 0x00000040;
      bitMask_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 bitMask = 7;
     * @return This builder for chaining.
     */
    public Builder clearBitMask() {
      bitField0_ = (bitField0_ & ~0x00000040);
      bitMask_ = 0;
      onChanged();
      return this;
    }

    private int bitVal_ ;
    /**
     * optional uint32 bitVal = 8;
     * @return Whether the bitVal field is set.
     */
    @java.lang.Override
    public boolean hasBitVal() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * optional uint32 bitVal = 8;
     * @return The bitVal.
     */
    @java.lang.Override
    public int getBitVal() {
      return bitVal_;
    }
    /**
     * optional uint32 bitVal = 8;
     * @param value The bitVal to set.
     * @return This builder for chaining.
     */
    public Builder setBitVal(int value) {
      bitField0_ |= 0x00000080;
      bitVal_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 bitVal = 8;
     * @return This builder for chaining.
     */
    public Builder clearBitVal() {
      bitField0_ = (bitField0_ & ~0x00000080);
      bitVal_ = 0;
      onChanged();
      return this;
    }

    private int imgFlag_ ;
    /**
     * optional uint32 imgFlag = 9;
     * @return Whether the imgFlag field is set.
     */
    @java.lang.Override
    public boolean hasImgFlag() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * optional uint32 imgFlag = 9;
     * @return The imgFlag.
     */
    @java.lang.Override
    public int getImgFlag() {
      return imgFlag_;
    }
    /**
     * optional uint32 imgFlag = 9;
     * @param value The imgFlag to set.
     * @return This builder for chaining.
     */
    public Builder setImgFlag(int value) {
      bitField0_ |= 0x00000100;
      imgFlag_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 imgFlag = 9;
     * @return This builder for chaining.
     */
    public Builder clearImgFlag() {
      bitField0_ = (bitField0_ & ~0x00000100);
      imgFlag_ = 0;
      onChanged();
      return this;
    }

    private wechat.protobuf.SKBuiltinString remark_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> remarkBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     * @return Whether the remark field is set.
     */
    public boolean hasRemark() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     * @return The remark.
     */
    public wechat.protobuf.SKBuiltinString getRemark() {
      if (remarkBuilder_ == null) {
        return remark_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remark_;
      } else {
        return remarkBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     */
    public Builder setRemark(wechat.protobuf.SKBuiltinString value) {
      if (remarkBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        remark_ = value;
        onChanged();
      } else {
        remarkBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000200;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     */
    public Builder setRemark(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (remarkBuilder_ == null) {
        remark_ = builderForValue.build();
        onChanged();
      } else {
        remarkBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000200;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     */
    public Builder mergeRemark(wechat.protobuf.SKBuiltinString value) {
      if (remarkBuilder_ == null) {
        if (((bitField0_ & 0x00000200) != 0) &&
            remark_ != null &&
            remark_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          remark_ =
            wechat.protobuf.SKBuiltinString.newBuilder(remark_).mergeFrom(value).buildPartial();
        } else {
          remark_ = value;
        }
        onChanged();
      } else {
        remarkBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000200;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     */
    public Builder clearRemark() {
      if (remarkBuilder_ == null) {
        remark_ = null;
        onChanged();
      } else {
        remarkBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000200);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     */
    public wechat.protobuf.SKBuiltinString.Builder getRemarkBuilder() {
      bitField0_ |= 0x00000200;
      onChanged();
      return getRemarkFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getRemarkOrBuilder() {
      if (remarkBuilder_ != null) {
        return remarkBuilder_.getMessageOrBuilder();
      } else {
        return remark_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : remark_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString remark = 10;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getRemarkFieldBuilder() {
      if (remarkBuilder_ == null) {
        remarkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getRemark(),
                getParentForChildren(),
                isClean());
        remark_ = null;
      }
      return remarkBuilder_;
    }

    private wechat.protobuf.SKBuiltinString remarkPyinitial_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> remarkPyinitialBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     * @return Whether the remarkPyinitial field is set.
     */
    public boolean hasRemarkPyinitial() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     * @return The remarkPyinitial.
     */
    public wechat.protobuf.SKBuiltinString getRemarkPyinitial() {
      if (remarkPyinitialBuilder_ == null) {
        return remarkPyinitial_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkPyinitial_;
      } else {
        return remarkPyinitialBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     */
    public Builder setRemarkPyinitial(wechat.protobuf.SKBuiltinString value) {
      if (remarkPyinitialBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        remarkPyinitial_ = value;
        onChanged();
      } else {
        remarkPyinitialBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000400;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     */
    public Builder setRemarkPyinitial(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (remarkPyinitialBuilder_ == null) {
        remarkPyinitial_ = builderForValue.build();
        onChanged();
      } else {
        remarkPyinitialBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000400;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     */
    public Builder mergeRemarkPyinitial(wechat.protobuf.SKBuiltinString value) {
      if (remarkPyinitialBuilder_ == null) {
        if (((bitField0_ & 0x00000400) != 0) &&
            remarkPyinitial_ != null &&
            remarkPyinitial_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          remarkPyinitial_ =
            wechat.protobuf.SKBuiltinString.newBuilder(remarkPyinitial_).mergeFrom(value).buildPartial();
        } else {
          remarkPyinitial_ = value;
        }
        onChanged();
      } else {
        remarkPyinitialBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000400;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     */
    public Builder clearRemarkPyinitial() {
      if (remarkPyinitialBuilder_ == null) {
        remarkPyinitial_ = null;
        onChanged();
      } else {
        remarkPyinitialBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000400);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     */
    public wechat.protobuf.SKBuiltinString.Builder getRemarkPyinitialBuilder() {
      bitField0_ |= 0x00000400;
      onChanged();
      return getRemarkPyinitialFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getRemarkPyinitialOrBuilder() {
      if (remarkPyinitialBuilder_ != null) {
        return remarkPyinitialBuilder_.getMessageOrBuilder();
      } else {
        return remarkPyinitial_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkPyinitial_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkPyinitial = 11;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getRemarkPyinitialFieldBuilder() {
      if (remarkPyinitialBuilder_ == null) {
        remarkPyinitialBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getRemarkPyinitial(),
                getParentForChildren(),
                isClean());
        remarkPyinitial_ = null;
      }
      return remarkPyinitialBuilder_;
    }

    private wechat.protobuf.SKBuiltinString remarkQuanPin_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> remarkQuanPinBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     * @return Whether the remarkQuanPin field is set.
     */
    public boolean hasRemarkQuanPin() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     * @return The remarkQuanPin.
     */
    public wechat.protobuf.SKBuiltinString getRemarkQuanPin() {
      if (remarkQuanPinBuilder_ == null) {
        return remarkQuanPin_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkQuanPin_;
      } else {
        return remarkQuanPinBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     */
    public Builder setRemarkQuanPin(wechat.protobuf.SKBuiltinString value) {
      if (remarkQuanPinBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        remarkQuanPin_ = value;
        onChanged();
      } else {
        remarkQuanPinBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000800;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     */
    public Builder setRemarkQuanPin(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (remarkQuanPinBuilder_ == null) {
        remarkQuanPin_ = builderForValue.build();
        onChanged();
      } else {
        remarkQuanPinBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000800;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     */
    public Builder mergeRemarkQuanPin(wechat.protobuf.SKBuiltinString value) {
      if (remarkQuanPinBuilder_ == null) {
        if (((bitField0_ & 0x00000800) != 0) &&
            remarkQuanPin_ != null &&
            remarkQuanPin_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          remarkQuanPin_ =
            wechat.protobuf.SKBuiltinString.newBuilder(remarkQuanPin_).mergeFrom(value).buildPartial();
        } else {
          remarkQuanPin_ = value;
        }
        onChanged();
      } else {
        remarkQuanPinBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000800;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     */
    public Builder clearRemarkQuanPin() {
      if (remarkQuanPinBuilder_ == null) {
        remarkQuanPin_ = null;
        onChanged();
      } else {
        remarkQuanPinBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000800);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     */
    public wechat.protobuf.SKBuiltinString.Builder getRemarkQuanPinBuilder() {
      bitField0_ |= 0x00000800;
      onChanged();
      return getRemarkQuanPinFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getRemarkQuanPinOrBuilder() {
      if (remarkQuanPinBuilder_ != null) {
        return remarkQuanPinBuilder_.getMessageOrBuilder();
      } else {
        return remarkQuanPin_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : remarkQuanPin_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString remarkQuanPin = 12;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getRemarkQuanPinFieldBuilder() {
      if (remarkQuanPinBuilder_ == null) {
        remarkQuanPinBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getRemarkQuanPin(),
                getParentForChildren(),
                isClean());
        remarkQuanPin_ = null;
      }
      return remarkQuanPinBuilder_;
    }

    private int contactType_ ;
    /**
     * optional uint32 contactType = 13;
     * @return Whether the contactType field is set.
     */
    @java.lang.Override
    public boolean hasContactType() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * optional uint32 contactType = 13;
     * @return The contactType.
     */
    @java.lang.Override
    public int getContactType() {
      return contactType_;
    }
    /**
     * optional uint32 contactType = 13;
     * @param value The contactType to set.
     * @return This builder for chaining.
     */
    public Builder setContactType(int value) {
      bitField0_ |= 0x00001000;
      contactType_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 contactType = 13;
     * @return This builder for chaining.
     */
    public Builder clearContactType() {
      bitField0_ = (bitField0_ & ~0x00001000);
      contactType_ = 0;
      onChanged();
      return this;
    }

    private int roomInfoNum_ ;
    /**
     * optional uint32 roomInfoNum = 14;
     * @return Whether the roomInfoNum field is set.
     */
    @java.lang.Override
    public boolean hasRoomInfoNum() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * optional uint32 roomInfoNum = 14;
     * @return The roomInfoNum.
     */
    @java.lang.Override
    public int getRoomInfoNum() {
      return roomInfoNum_;
    }
    /**
     * optional uint32 roomInfoNum = 14;
     * @param value The roomInfoNum to set.
     * @return This builder for chaining.
     */
    public Builder setRoomInfoNum(int value) {
      bitField0_ |= 0x00002000;
      roomInfoNum_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 roomInfoNum = 14;
     * @return This builder for chaining.
     */
    public Builder clearRoomInfoNum() {
      bitField0_ = (bitField0_ & ~0x00002000);
      roomInfoNum_ = 0;
      onChanged();
      return this;
    }

    private java.util.List roomInfoList_ =
      java.util.Collections.emptyList();
    private void ensureRoomInfoListIsMutable() {
      if (!((bitField0_ & 0x00004000) != 0)) {
        roomInfoList_ = new java.util.ArrayList(roomInfoList_);
        bitField0_ |= 0x00004000;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        wechat.protobuf.RoomInfo, wechat.protobuf.RoomInfo.Builder, wechat.protobuf.RoomInfoOrBuilder> roomInfoListBuilder_;

    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public java.util.List getRoomInfoListList() {
      if (roomInfoListBuilder_ == null) {
        return java.util.Collections.unmodifiableList(roomInfoList_);
      } else {
        return roomInfoListBuilder_.getMessageList();
      }
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public int getRoomInfoListCount() {
      if (roomInfoListBuilder_ == null) {
        return roomInfoList_.size();
      } else {
        return roomInfoListBuilder_.getCount();
      }
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public wechat.protobuf.RoomInfo getRoomInfoList(int index) {
      if (roomInfoListBuilder_ == null) {
        return roomInfoList_.get(index);
      } else {
        return roomInfoListBuilder_.getMessage(index);
      }
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder setRoomInfoList(
        int index, wechat.protobuf.RoomInfo value) {
      if (roomInfoListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRoomInfoListIsMutable();
        roomInfoList_.set(index, value);
        onChanged();
      } else {
        roomInfoListBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder setRoomInfoList(
        int index, wechat.protobuf.RoomInfo.Builder builderForValue) {
      if (roomInfoListBuilder_ == null) {
        ensureRoomInfoListIsMutable();
        roomInfoList_.set(index, builderForValue.build());
        onChanged();
      } else {
        roomInfoListBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder addRoomInfoList(wechat.protobuf.RoomInfo value) {
      if (roomInfoListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRoomInfoListIsMutable();
        roomInfoList_.add(value);
        onChanged();
      } else {
        roomInfoListBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder addRoomInfoList(
        int index, wechat.protobuf.RoomInfo value) {
      if (roomInfoListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRoomInfoListIsMutable();
        roomInfoList_.add(index, value);
        onChanged();
      } else {
        roomInfoListBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder addRoomInfoList(
        wechat.protobuf.RoomInfo.Builder builderForValue) {
      if (roomInfoListBuilder_ == null) {
        ensureRoomInfoListIsMutable();
        roomInfoList_.add(builderForValue.build());
        onChanged();
      } else {
        roomInfoListBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder addRoomInfoList(
        int index, wechat.protobuf.RoomInfo.Builder builderForValue) {
      if (roomInfoListBuilder_ == null) {
        ensureRoomInfoListIsMutable();
        roomInfoList_.add(index, builderForValue.build());
        onChanged();
      } else {
        roomInfoListBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder addAllRoomInfoList(
        java.lang.Iterable values) {
      if (roomInfoListBuilder_ == null) {
        ensureRoomInfoListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, roomInfoList_);
        onChanged();
      } else {
        roomInfoListBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder clearRoomInfoList() {
      if (roomInfoListBuilder_ == null) {
        roomInfoList_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00004000);
        onChanged();
      } else {
        roomInfoListBuilder_.clear();
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public Builder removeRoomInfoList(int index) {
      if (roomInfoListBuilder_ == null) {
        ensureRoomInfoListIsMutable();
        roomInfoList_.remove(index);
        onChanged();
      } else {
        roomInfoListBuilder_.remove(index);
      }
      return this;
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public wechat.protobuf.RoomInfo.Builder getRoomInfoListBuilder(
        int index) {
      return getRoomInfoListFieldBuilder().getBuilder(index);
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public wechat.protobuf.RoomInfoOrBuilder getRoomInfoListOrBuilder(
        int index) {
      if (roomInfoListBuilder_ == null) {
        return roomInfoList_.get(index);  } else {
        return roomInfoListBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public java.util.List 
         getRoomInfoListOrBuilderList() {
      if (roomInfoListBuilder_ != null) {
        return roomInfoListBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(roomInfoList_);
      }
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public wechat.protobuf.RoomInfo.Builder addRoomInfoListBuilder() {
      return getRoomInfoListFieldBuilder().addBuilder(
          wechat.protobuf.RoomInfo.getDefaultInstance());
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public wechat.protobuf.RoomInfo.Builder addRoomInfoListBuilder(
        int index) {
      return getRoomInfoListFieldBuilder().addBuilder(
          index, wechat.protobuf.RoomInfo.getDefaultInstance());
    }
    /**
     * repeated .wechat_proto.RoomInfo roomInfoList = 15;
     */
    public java.util.List 
         getRoomInfoListBuilderList() {
      return getRoomInfoListFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        wechat.protobuf.RoomInfo, wechat.protobuf.RoomInfo.Builder, wechat.protobuf.RoomInfoOrBuilder> 
        getRoomInfoListFieldBuilder() {
      if (roomInfoListBuilder_ == null) {
        roomInfoListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            wechat.protobuf.RoomInfo, wechat.protobuf.RoomInfo.Builder, wechat.protobuf.RoomInfoOrBuilder>(
                roomInfoList_,
                ((bitField0_ & 0x00004000) != 0),
                getParentForChildren(),
                isClean());
        roomInfoList_ = null;
      }
      return roomInfoListBuilder_;
    }

    private wechat.protobuf.SKBuiltinString domainList_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> domainListBuilder_;
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     * @return Whether the domainList field is set.
     */
    public boolean hasDomainList() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     * @return The domainList.
     */
    public wechat.protobuf.SKBuiltinString getDomainList() {
      if (domainListBuilder_ == null) {
        return domainList_ == null ? wechat.protobuf.SKBuiltinString.getDefaultInstance() : domainList_;
      } else {
        return domainListBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     */
    public Builder setDomainList(wechat.protobuf.SKBuiltinString value) {
      if (domainListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        domainList_ = value;
        onChanged();
      } else {
        domainListBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00008000;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     */
    public Builder setDomainList(
        wechat.protobuf.SKBuiltinString.Builder builderForValue) {
      if (domainListBuilder_ == null) {
        domainList_ = builderForValue.build();
        onChanged();
      } else {
        domainListBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00008000;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     */
    public Builder mergeDomainList(wechat.protobuf.SKBuiltinString value) {
      if (domainListBuilder_ == null) {
        if (((bitField0_ & 0x00008000) != 0) &&
            domainList_ != null &&
            domainList_ != wechat.protobuf.SKBuiltinString.getDefaultInstance()) {
          domainList_ =
            wechat.protobuf.SKBuiltinString.newBuilder(domainList_).mergeFrom(value).buildPartial();
        } else {
          domainList_ = value;
        }
        onChanged();
      } else {
        domainListBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00008000;
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     */
    public Builder clearDomainList() {
      if (domainListBuilder_ == null) {
        domainList_ = null;
        onChanged();
      } else {
        domainListBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00008000);
      return this;
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     */
    public wechat.protobuf.SKBuiltinString.Builder getDomainListBuilder() {
      bitField0_ |= 0x00008000;
      onChanged();
      return getDomainListFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     */
    public wechat.protobuf.SKBuiltinStringOrBuilder getDomainListOrBuilder() {
      if (domainListBuilder_ != null) {
        return domainListBuilder_.getMessageOrBuilder();
      } else {
        return domainList_ == null ?
            wechat.protobuf.SKBuiltinString.getDefaultInstance() : domainList_;
      }
    }
    /**
     * optional .wechat_proto.SKBuiltinString domainList = 16;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder> 
        getDomainListFieldBuilder() {
      if (domainListBuilder_ == null) {
        domainListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SKBuiltinString, wechat.protobuf.SKBuiltinString.Builder, wechat.protobuf.SKBuiltinStringOrBuilder>(
                getDomainList(),
                getParentForChildren(),
                isClean());
        domainList_ = null;
      }
      return domainListBuilder_;
    }

    private int chatRoomNotify_ ;
    /**
     * optional uint32 chatRoomNotify = 17;
     * @return Whether the chatRoomNotify field is set.
     */
    @java.lang.Override
    public boolean hasChatRoomNotify() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * optional uint32 chatRoomNotify = 17;
     * @return The chatRoomNotify.
     */
    @java.lang.Override
    public int getChatRoomNotify() {
      return chatRoomNotify_;
    }
    /**
     * optional uint32 chatRoomNotify = 17;
     * @param value The chatRoomNotify to set.
     * @return This builder for chaining.
     */
    public Builder setChatRoomNotify(int value) {
      bitField0_ |= 0x00010000;
      chatRoomNotify_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 chatRoomNotify = 17;
     * @return This builder for chaining.
     */
    public Builder clearChatRoomNotify() {
      bitField0_ = (bitField0_ & ~0x00010000);
      chatRoomNotify_ = 0;
      onChanged();
      return this;
    }

    private int addContactScene_ ;
    /**
     * optional uint32 addContactScene = 18;
     * @return Whether the addContactScene field is set.
     */
    @java.lang.Override
    public boolean hasAddContactScene() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * optional uint32 addContactScene = 18;
     * @return The addContactScene.
     */
    @java.lang.Override
    public int getAddContactScene() {
      return addContactScene_;
    }
    /**
     * optional uint32 addContactScene = 18;
     * @param value The addContactScene to set.
     * @return This builder for chaining.
     */
    public Builder setAddContactScene(int value) {
      bitField0_ |= 0x00020000;
      addContactScene_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 addContactScene = 18;
     * @return This builder for chaining.
     */
    public Builder clearAddContactScene() {
      bitField0_ = (bitField0_ & ~0x00020000);
      addContactScene_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object province_ = "";
    /**
     * optional string province = 19;
     * @return Whether the province field is set.
     */
    public boolean hasProvince() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * optional string province = 19;
     * @return The province.
     */
    public java.lang.String getProvince() {
      java.lang.Object ref = province_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          province_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string province = 19;
     * @return The bytes for province.
     */
    public com.google.protobuf.ByteString
        getProvinceBytes() {
      java.lang.Object ref = province_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        province_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string province = 19;
     * @param value The province to set.
     * @return This builder for chaining.
     */
    public Builder setProvince(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00040000;
      province_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string province = 19;
     * @return This builder for chaining.
     */
    public Builder clearProvince() {
      bitField0_ = (bitField0_ & ~0x00040000);
      province_ = getDefaultInstance().getProvince();
      onChanged();
      return this;
    }
    /**
     * optional string province = 19;
     * @param value The bytes for province to set.
     * @return This builder for chaining.
     */
    public Builder setProvinceBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00040000;
      province_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object city_ = "";
    /**
     * optional string city = 20;
     * @return Whether the city field is set.
     */
    public boolean hasCity() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * optional string city = 20;
     * @return The city.
     */
    public java.lang.String getCity() {
      java.lang.Object ref = city_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          city_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string city = 20;
     * @return The bytes for city.
     */
    public com.google.protobuf.ByteString
        getCityBytes() {
      java.lang.Object ref = city_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        city_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string city = 20;
     * @param value The city to set.
     * @return This builder for chaining.
     */
    public Builder setCity(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00080000;
      city_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string city = 20;
     * @return This builder for chaining.
     */
    public Builder clearCity() {
      bitField0_ = (bitField0_ & ~0x00080000);
      city_ = getDefaultInstance().getCity();
      onChanged();
      return this;
    }
    /**
     * optional string city = 20;
     * @param value The bytes for city to set.
     * @return This builder for chaining.
     */
    public Builder setCityBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00080000;
      city_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object signature_ = "";
    /**
     * optional string signature = 21;
     * @return Whether the signature field is set.
     */
    public boolean hasSignature() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * optional string signature = 21;
     * @return The signature.
     */
    public java.lang.String getSignature() {
      java.lang.Object ref = signature_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          signature_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string signature = 21;
     * @return The bytes for signature.
     */
    public com.google.protobuf.ByteString
        getSignatureBytes() {
      java.lang.Object ref = signature_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        signature_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string signature = 21;
     * @param value The signature to set.
     * @return This builder for chaining.
     */
    public Builder setSignature(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00100000;
      signature_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string signature = 21;
     * @return This builder for chaining.
     */
    public Builder clearSignature() {
      bitField0_ = (bitField0_ & ~0x00100000);
      signature_ = getDefaultInstance().getSignature();
      onChanged();
      return this;
    }
    /**
     * optional string signature = 21;
     * @param value The bytes for signature to set.
     * @return This builder for chaining.
     */
    public Builder setSignatureBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00100000;
      signature_ = value;
      onChanged();
      return this;
    }

    private int personalCard_ ;
    /**
     * optional uint32 personalCard = 22;
     * @return Whether the personalCard field is set.
     */
    @java.lang.Override
    public boolean hasPersonalCard() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * optional uint32 personalCard = 22;
     * @return The personalCard.
     */
    @java.lang.Override
    public int getPersonalCard() {
      return personalCard_;
    }
    /**
     * optional uint32 personalCard = 22;
     * @param value The personalCard to set.
     * @return This builder for chaining.
     */
    public Builder setPersonalCard(int value) {
      bitField0_ |= 0x00200000;
      personalCard_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 personalCard = 22;
     * @return This builder for chaining.
     */
    public Builder clearPersonalCard() {
      bitField0_ = (bitField0_ & ~0x00200000);
      personalCard_ = 0;
      onChanged();
      return this;
    }

    private int hasWeiXinHdHeadImg_ ;
    /**
     * optional uint32 hasWeiXinHdHeadImg = 23;
     * @return Whether the hasWeiXinHdHeadImg field is set.
     */
    @java.lang.Override
    public boolean hasHasWeiXinHdHeadImg() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * optional uint32 hasWeiXinHdHeadImg = 23;
     * @return The hasWeiXinHdHeadImg.
     */
    @java.lang.Override
    public int getHasWeiXinHdHeadImg() {
      return hasWeiXinHdHeadImg_;
    }
    /**
     * optional uint32 hasWeiXinHdHeadImg = 23;
     * @param value The hasWeiXinHdHeadImg to set.
     * @return This builder for chaining.
     */
    public Builder setHasWeiXinHdHeadImg(int value) {
      bitField0_ |= 0x00400000;
      hasWeiXinHdHeadImg_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 hasWeiXinHdHeadImg = 23;
     * @return This builder for chaining.
     */
    public Builder clearHasWeiXinHdHeadImg() {
      bitField0_ = (bitField0_ & ~0x00400000);
      hasWeiXinHdHeadImg_ = 0;
      onChanged();
      return this;
    }

    private int verifyFlag_ ;
    /**
     * optional uint32 verifyFlag = 24;
     * @return Whether the verifyFlag field is set.
     */
    @java.lang.Override
    public boolean hasVerifyFlag() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * optional uint32 verifyFlag = 24;
     * @return The verifyFlag.
     */
    @java.lang.Override
    public int getVerifyFlag() {
      return verifyFlag_;
    }
    /**
     * optional uint32 verifyFlag = 24;
     * @param value The verifyFlag to set.
     * @return This builder for chaining.
     */
    public Builder setVerifyFlag(int value) {
      bitField0_ |= 0x00800000;
      verifyFlag_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 verifyFlag = 24;
     * @return This builder for chaining.
     */
    public Builder clearVerifyFlag() {
      bitField0_ = (bitField0_ & ~0x00800000);
      verifyFlag_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object verifyInfo_ = "";
    /**
     * optional string verifyInfo = 25;
     * @return Whether the verifyInfo field is set.
     */
    public boolean hasVerifyInfo() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * optional string verifyInfo = 25;
     * @return The verifyInfo.
     */
    public java.lang.String getVerifyInfo() {
      java.lang.Object ref = verifyInfo_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          verifyInfo_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string verifyInfo = 25;
     * @return The bytes for verifyInfo.
     */
    public com.google.protobuf.ByteString
        getVerifyInfoBytes() {
      java.lang.Object ref = verifyInfo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        verifyInfo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string verifyInfo = 25;
     * @param value The verifyInfo to set.
     * @return This builder for chaining.
     */
    public Builder setVerifyInfo(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x01000000;
      verifyInfo_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string verifyInfo = 25;
     * @return This builder for chaining.
     */
    public Builder clearVerifyInfo() {
      bitField0_ = (bitField0_ & ~0x01000000);
      verifyInfo_ = getDefaultInstance().getVerifyInfo();
      onChanged();
      return this;
    }
    /**
     * optional string verifyInfo = 25;
     * @param value The bytes for verifyInfo to set.
     * @return This builder for chaining.
     */
    public Builder setVerifyInfoBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x01000000;
      verifyInfo_ = value;
      onChanged();
      return this;
    }

    private int level_ ;
    /**
     * optional int32 level = 26;
     * @return Whether the level field is set.
     */
    @java.lang.Override
    public boolean hasLevel() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * optional int32 level = 26;
     * @return The level.
     */
    @java.lang.Override
    public int getLevel() {
      return level_;
    }
    /**
     * optional int32 level = 26;
     * @param value The level to set.
     * @return This builder for chaining.
     */
    public Builder setLevel(int value) {
      bitField0_ |= 0x02000000;
      level_ = value;
      onChanged();
      return this;
    }
    /**
     * optional int32 level = 26;
     * @return This builder for chaining.
     */
    public Builder clearLevel() {
      bitField0_ = (bitField0_ & ~0x02000000);
      level_ = 0;
      onChanged();
      return this;
    }

    private int source_ ;
    /**
     * optional uint32 source = 27;
     * @return Whether the source field is set.
     */
    @java.lang.Override
    public boolean hasSource() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * optional uint32 source = 27;
     * @return The source.
     */
    @java.lang.Override
    public int getSource() {
      return source_;
    }
    /**
     * optional uint32 source = 27;
     * @param value The source to set.
     * @return This builder for chaining.
     */
    public Builder setSource(int value) {
      bitField0_ |= 0x04000000;
      source_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 source = 27;
     * @return This builder for chaining.
     */
    public Builder clearSource() {
      bitField0_ = (bitField0_ & ~0x04000000);
      source_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object weibo_ = "";
    /**
     * optional string weibo = 28;
     * @return Whether the weibo field is set.
     */
    public boolean hasWeibo() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * optional string weibo = 28;
     * @return The weibo.
     */
    public java.lang.String getWeibo() {
      java.lang.Object ref = weibo_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          weibo_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string weibo = 28;
     * @return The bytes for weibo.
     */
    public com.google.protobuf.ByteString
        getWeiboBytes() {
      java.lang.Object ref = weibo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        weibo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string weibo = 28;
     * @param value The weibo to set.
     * @return This builder for chaining.
     */
    public Builder setWeibo(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x08000000;
      weibo_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string weibo = 28;
     * @return This builder for chaining.
     */
    public Builder clearWeibo() {
      bitField0_ = (bitField0_ & ~0x08000000);
      weibo_ = getDefaultInstance().getWeibo();
      onChanged();
      return this;
    }
    /**
     * optional string weibo = 28;
     * @param value The bytes for weibo to set.
     * @return This builder for chaining.
     */
    public Builder setWeiboBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x08000000;
      weibo_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object verifyContent_ = "";
    /**
     * optional string verifyContent = 29;
     * @return Whether the verifyContent field is set.
     */
    public boolean hasVerifyContent() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * optional string verifyContent = 29;
     * @return The verifyContent.
     */
    public java.lang.String getVerifyContent() {
      java.lang.Object ref = verifyContent_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          verifyContent_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string verifyContent = 29;
     * @return The bytes for verifyContent.
     */
    public com.google.protobuf.ByteString
        getVerifyContentBytes() {
      java.lang.Object ref = verifyContent_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        verifyContent_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string verifyContent = 29;
     * @param value The verifyContent to set.
     * @return This builder for chaining.
     */
    public Builder setVerifyContent(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x10000000;
      verifyContent_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string verifyContent = 29;
     * @return This builder for chaining.
     */
    public Builder clearVerifyContent() {
      bitField0_ = (bitField0_ & ~0x10000000);
      verifyContent_ = getDefaultInstance().getVerifyContent();
      onChanged();
      return this;
    }
    /**
     * optional string verifyContent = 29;
     * @param value The bytes for verifyContent to set.
     * @return This builder for chaining.
     */
    public Builder setVerifyContentBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x10000000;
      verifyContent_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object alias_ = "";
    /**
     * optional string alias = 30;
     * @return Whether the alias field is set.
     */
    public boolean hasAlias() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * optional string alias = 30;
     * @return The alias.
     */
    public java.lang.String getAlias() {
      java.lang.Object ref = alias_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          alias_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string alias = 30;
     * @return The bytes for alias.
     */
    public com.google.protobuf.ByteString
        getAliasBytes() {
      java.lang.Object ref = alias_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alias_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string alias = 30;
     * @param value The alias to set.
     * @return This builder for chaining.
     */
    public Builder setAlias(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x20000000;
      alias_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string alias = 30;
     * @return This builder for chaining.
     */
    public Builder clearAlias() {
      bitField0_ = (bitField0_ & ~0x20000000);
      alias_ = getDefaultInstance().getAlias();
      onChanged();
      return this;
    }
    /**
     * optional string alias = 30;
     * @param value The bytes for alias to set.
     * @return This builder for chaining.
     */
    public Builder setAliasBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x20000000;
      alias_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object chatRoomOwner_ = "";
    /**
     * optional string chatRoomOwner = 31;
     * @return Whether the chatRoomOwner field is set.
     */
    public boolean hasChatRoomOwner() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * optional string chatRoomOwner = 31;
     * @return The chatRoomOwner.
     */
    public java.lang.String getChatRoomOwner() {
      java.lang.Object ref = chatRoomOwner_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          chatRoomOwner_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string chatRoomOwner = 31;
     * @return The bytes for chatRoomOwner.
     */
    public com.google.protobuf.ByteString
        getChatRoomOwnerBytes() {
      java.lang.Object ref = chatRoomOwner_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatRoomOwner_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string chatRoomOwner = 31;
     * @param value The chatRoomOwner to set.
     * @return This builder for chaining.
     */
    public Builder setChatRoomOwner(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x40000000;
      chatRoomOwner_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string chatRoomOwner = 31;
     * @return This builder for chaining.
     */
    public Builder clearChatRoomOwner() {
      bitField0_ = (bitField0_ & ~0x40000000);
      chatRoomOwner_ = getDefaultInstance().getChatRoomOwner();
      onChanged();
      return this;
    }
    /**
     * optional string chatRoomOwner = 31;
     * @param value The bytes for chatRoomOwner to set.
     * @return This builder for chaining.
     */
    public Builder setChatRoomOwnerBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x40000000;
      chatRoomOwner_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object weiboNickname_ = "";
    /**
     * optional string weiboNickname = 32;
     * @return Whether the weiboNickname field is set.
     */
    public boolean hasWeiboNickname() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * optional string weiboNickname = 32;
     * @return The weiboNickname.
     */
    public java.lang.String getWeiboNickname() {
      java.lang.Object ref = weiboNickname_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          weiboNickname_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string weiboNickname = 32;
     * @return The bytes for weiboNickname.
     */
    public com.google.protobuf.ByteString
        getWeiboNicknameBytes() {
      java.lang.Object ref = weiboNickname_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        weiboNickname_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string weiboNickname = 32;
     * @param value The weiboNickname to set.
     * @return This builder for chaining.
     */
    public Builder setWeiboNickname(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x80000000;
      weiboNickname_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string weiboNickname = 32;
     * @return This builder for chaining.
     */
    public Builder clearWeiboNickname() {
      bitField0_ = (bitField0_ & ~0x80000000);
      weiboNickname_ = getDefaultInstance().getWeiboNickname();
      onChanged();
      return this;
    }
    /**
     * optional string weiboNickname = 32;
     * @param value The bytes for weiboNickname to set.
     * @return This builder for chaining.
     */
    public Builder setWeiboNicknameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x80000000;
      weiboNickname_ = value;
      onChanged();
      return this;
    }

    private int weiboFlag_ ;
    /**
     * optional uint32 weiboFlag = 33;
     * @return Whether the weiboFlag field is set.
     */
    @java.lang.Override
    public boolean hasWeiboFlag() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * optional uint32 weiboFlag = 33;
     * @return The weiboFlag.
     */
    @java.lang.Override
    public int getWeiboFlag() {
      return weiboFlag_;
    }
    /**
     * optional uint32 weiboFlag = 33;
     * @param value The weiboFlag to set.
     * @return This builder for chaining.
     */
    public Builder setWeiboFlag(int value) {
      bitField1_ |= 0x00000001;
      weiboFlag_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 weiboFlag = 33;
     * @return This builder for chaining.
     */
    public Builder clearWeiboFlag() {
      bitField1_ = (bitField1_ & ~0x00000001);
      weiboFlag_ = 0;
      onChanged();
      return this;
    }

    private int albumStyle_ ;
    /**
     * optional int32 albumStyle = 34;
     * @return Whether the albumStyle field is set.
     */
    @java.lang.Override
    public boolean hasAlbumStyle() {
      return ((bitField1_ & 0x00000002) != 0);
    }
    /**
     * optional int32 albumStyle = 34;
     * @return The albumStyle.
     */
    @java.lang.Override
    public int getAlbumStyle() {
      return albumStyle_;
    }
    /**
     * optional int32 albumStyle = 34;
     * @param value The albumStyle to set.
     * @return This builder for chaining.
     */
    public Builder setAlbumStyle(int value) {
      bitField1_ |= 0x00000002;
      albumStyle_ = value;
      onChanged();
      return this;
    }
    /**
     * optional int32 albumStyle = 34;
     * @return This builder for chaining.
     */
    public Builder clearAlbumStyle() {
      bitField1_ = (bitField1_ & ~0x00000002);
      albumStyle_ = 0;
      onChanged();
      return this;
    }

    private int albumFlag_ ;
    /**
     * optional int32 albumFlag = 35;
     * @return Whether the albumFlag field is set.
     */
    @java.lang.Override
    public boolean hasAlbumFlag() {
      return ((bitField1_ & 0x00000004) != 0);
    }
    /**
     * optional int32 albumFlag = 35;
     * @return The albumFlag.
     */
    @java.lang.Override
    public int getAlbumFlag() {
      return albumFlag_;
    }
    /**
     * optional int32 albumFlag = 35;
     * @param value The albumFlag to set.
     * @return This builder for chaining.
     */
    public Builder setAlbumFlag(int value) {
      bitField1_ |= 0x00000004;
      albumFlag_ = value;
      onChanged();
      return this;
    }
    /**
     * optional int32 albumFlag = 35;
     * @return This builder for chaining.
     */
    public Builder clearAlbumFlag() {
      bitField1_ = (bitField1_ & ~0x00000004);
      albumFlag_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object albumBgimgId_ = "";
    /**
     * optional string albumBgimgId = 36;
     * @return Whether the albumBgimgId field is set.
     */
    public boolean hasAlbumBgimgId() {
      return ((bitField1_ & 0x00000008) != 0);
    }
    /**
     * optional string albumBgimgId = 36;
     * @return The albumBgimgId.
     */
    public java.lang.String getAlbumBgimgId() {
      java.lang.Object ref = albumBgimgId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          albumBgimgId_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string albumBgimgId = 36;
     * @return The bytes for albumBgimgId.
     */
    public com.google.protobuf.ByteString
        getAlbumBgimgIdBytes() {
      java.lang.Object ref = albumBgimgId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        albumBgimgId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string albumBgimgId = 36;
     * @param value The albumBgimgId to set.
     * @return This builder for chaining.
     */
    public Builder setAlbumBgimgId(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000008;
      albumBgimgId_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string albumBgimgId = 36;
     * @return This builder for chaining.
     */
    public Builder clearAlbumBgimgId() {
      bitField1_ = (bitField1_ & ~0x00000008);
      albumBgimgId_ = getDefaultInstance().getAlbumBgimgId();
      onChanged();
      return this;
    }
    /**
     * optional string albumBgimgId = 36;
     * @param value The bytes for albumBgimgId to set.
     * @return This builder for chaining.
     */
    public Builder setAlbumBgimgIdBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000008;
      albumBgimgId_ = value;
      onChanged();
      return this;
    }

    private wechat.protobuf.SnsUserInfo snsUserInfo_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SnsUserInfo, wechat.protobuf.SnsUserInfo.Builder, wechat.protobuf.SnsUserInfoOrBuilder> snsUserInfoBuilder_;
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     * @return Whether the snsUserInfo field is set.
     */
    public boolean hasSnsUserInfo() {
      return ((bitField1_ & 0x00000010) != 0);
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     * @return The snsUserInfo.
     */
    public wechat.protobuf.SnsUserInfo getSnsUserInfo() {
      if (snsUserInfoBuilder_ == null) {
        return snsUserInfo_ == null ? wechat.protobuf.SnsUserInfo.getDefaultInstance() : snsUserInfo_;
      } else {
        return snsUserInfoBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     */
    public Builder setSnsUserInfo(wechat.protobuf.SnsUserInfo value) {
      if (snsUserInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        snsUserInfo_ = value;
        onChanged();
      } else {
        snsUserInfoBuilder_.setMessage(value);
      }
      bitField1_ |= 0x00000010;
      return this;
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     */
    public Builder setSnsUserInfo(
        wechat.protobuf.SnsUserInfo.Builder builderForValue) {
      if (snsUserInfoBuilder_ == null) {
        snsUserInfo_ = builderForValue.build();
        onChanged();
      } else {
        snsUserInfoBuilder_.setMessage(builderForValue.build());
      }
      bitField1_ |= 0x00000010;
      return this;
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     */
    public Builder mergeSnsUserInfo(wechat.protobuf.SnsUserInfo value) {
      if (snsUserInfoBuilder_ == null) {
        if (((bitField1_ & 0x00000010) != 0) &&
            snsUserInfo_ != null &&
            snsUserInfo_ != wechat.protobuf.SnsUserInfo.getDefaultInstance()) {
          snsUserInfo_ =
            wechat.protobuf.SnsUserInfo.newBuilder(snsUserInfo_).mergeFrom(value).buildPartial();
        } else {
          snsUserInfo_ = value;
        }
        onChanged();
      } else {
        snsUserInfoBuilder_.mergeFrom(value);
      }
      bitField1_ |= 0x00000010;
      return this;
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     */
    public Builder clearSnsUserInfo() {
      if (snsUserInfoBuilder_ == null) {
        snsUserInfo_ = null;
        onChanged();
      } else {
        snsUserInfoBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00000010);
      return this;
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     */
    public wechat.protobuf.SnsUserInfo.Builder getSnsUserInfoBuilder() {
      bitField1_ |= 0x00000010;
      onChanged();
      return getSnsUserInfoFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     */
    public wechat.protobuf.SnsUserInfoOrBuilder getSnsUserInfoOrBuilder() {
      if (snsUserInfoBuilder_ != null) {
        return snsUserInfoBuilder_.getMessageOrBuilder();
      } else {
        return snsUserInfo_ == null ?
            wechat.protobuf.SnsUserInfo.getDefaultInstance() : snsUserInfo_;
      }
    }
    /**
     * optional .wechat_proto.SnsUserInfo snsUserInfo = 37;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.SnsUserInfo, wechat.protobuf.SnsUserInfo.Builder, wechat.protobuf.SnsUserInfoOrBuilder> 
        getSnsUserInfoFieldBuilder() {
      if (snsUserInfoBuilder_ == null) {
        snsUserInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.SnsUserInfo, wechat.protobuf.SnsUserInfo.Builder, wechat.protobuf.SnsUserInfoOrBuilder>(
                getSnsUserInfo(),
                getParentForChildren(),
                isClean());
        snsUserInfo_ = null;
      }
      return snsUserInfoBuilder_;
    }

    private java.lang.Object country_ = "";
    /**
     * optional string country = 38;
     * @return Whether the country field is set.
     */
    public boolean hasCountry() {
      return ((bitField1_ & 0x00000020) != 0);
    }
    /**
     * optional string country = 38;
     * @return The country.
     */
    public java.lang.String getCountry() {
      java.lang.Object ref = country_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          country_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string country = 38;
     * @return The bytes for country.
     */
    public com.google.protobuf.ByteString
        getCountryBytes() {
      java.lang.Object ref = country_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        country_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string country = 38;
     * @param value The country to set.
     * @return This builder for chaining.
     */
    public Builder setCountry(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000020;
      country_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string country = 38;
     * @return This builder for chaining.
     */
    public Builder clearCountry() {
      bitField1_ = (bitField1_ & ~0x00000020);
      country_ = getDefaultInstance().getCountry();
      onChanged();
      return this;
    }
    /**
     * optional string country = 38;
     * @param value The bytes for country to set.
     * @return This builder for chaining.
     */
    public Builder setCountryBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000020;
      country_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object bigHeadImgUrl_ = "";
    /**
     * optional string bigHeadImgUrl = 39;
     * @return Whether the bigHeadImgUrl field is set.
     */
    public boolean hasBigHeadImgUrl() {
      return ((bitField1_ & 0x00000040) != 0);
    }
    /**
     * optional string bigHeadImgUrl = 39;
     * @return The bigHeadImgUrl.
     */
    public java.lang.String getBigHeadImgUrl() {
      java.lang.Object ref = bigHeadImgUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          bigHeadImgUrl_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string bigHeadImgUrl = 39;
     * @return The bytes for bigHeadImgUrl.
     */
    public com.google.protobuf.ByteString
        getBigHeadImgUrlBytes() {
      java.lang.Object ref = bigHeadImgUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        bigHeadImgUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string bigHeadImgUrl = 39;
     * @param value The bigHeadImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setBigHeadImgUrl(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000040;
      bigHeadImgUrl_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string bigHeadImgUrl = 39;
     * @return This builder for chaining.
     */
    public Builder clearBigHeadImgUrl() {
      bitField1_ = (bitField1_ & ~0x00000040);
      bigHeadImgUrl_ = getDefaultInstance().getBigHeadImgUrl();
      onChanged();
      return this;
    }
    /**
     * optional string bigHeadImgUrl = 39;
     * @param value The bytes for bigHeadImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setBigHeadImgUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000040;
      bigHeadImgUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object smallHeadImgUrl_ = "";
    /**
     * optional string smallHeadImgUrl = 40;
     * @return Whether the smallHeadImgUrl field is set.
     */
    public boolean hasSmallHeadImgUrl() {
      return ((bitField1_ & 0x00000080) != 0);
    }
    /**
     * optional string smallHeadImgUrl = 40;
     * @return The smallHeadImgUrl.
     */
    public java.lang.String getSmallHeadImgUrl() {
      java.lang.Object ref = smallHeadImgUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          smallHeadImgUrl_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string smallHeadImgUrl = 40;
     * @return The bytes for smallHeadImgUrl.
     */
    public com.google.protobuf.ByteString
        getSmallHeadImgUrlBytes() {
      java.lang.Object ref = smallHeadImgUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        smallHeadImgUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string smallHeadImgUrl = 40;
     * @param value The smallHeadImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setSmallHeadImgUrl(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000080;
      smallHeadImgUrl_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string smallHeadImgUrl = 40;
     * @return This builder for chaining.
     */
    public Builder clearSmallHeadImgUrl() {
      bitField1_ = (bitField1_ & ~0x00000080);
      smallHeadImgUrl_ = getDefaultInstance().getSmallHeadImgUrl();
      onChanged();
      return this;
    }
    /**
     * optional string smallHeadImgUrl = 40;
     * @param value The bytes for smallHeadImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setSmallHeadImgUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000080;
      smallHeadImgUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object myBrandList_ = "";
    /**
     * optional string myBrandList = 41;
     * @return Whether the myBrandList field is set.
     */
    public boolean hasMyBrandList() {
      return ((bitField1_ & 0x00000100) != 0);
    }
    /**
     * optional string myBrandList = 41;
     * @return The myBrandList.
     */
    public java.lang.String getMyBrandList() {
      java.lang.Object ref = myBrandList_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          myBrandList_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string myBrandList = 41;
     * @return The bytes for myBrandList.
     */
    public com.google.protobuf.ByteString
        getMyBrandListBytes() {
      java.lang.Object ref = myBrandList_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        myBrandList_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string myBrandList = 41;
     * @param value The myBrandList to set.
     * @return This builder for chaining.
     */
    public Builder setMyBrandList(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000100;
      myBrandList_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string myBrandList = 41;
     * @return This builder for chaining.
     */
    public Builder clearMyBrandList() {
      bitField1_ = (bitField1_ & ~0x00000100);
      myBrandList_ = getDefaultInstance().getMyBrandList();
      onChanged();
      return this;
    }
    /**
     * optional string myBrandList = 41;
     * @param value The bytes for myBrandList to set.
     * @return This builder for chaining.
     */
    public Builder setMyBrandListBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000100;
      myBrandList_ = value;
      onChanged();
      return this;
    }

    private wechat.protobuf.CustomizedInfo customizedInfo_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.CustomizedInfo, wechat.protobuf.CustomizedInfo.Builder, wechat.protobuf.CustomizedInfoOrBuilder> customizedInfoBuilder_;
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     * @return Whether the customizedInfo field is set.
     */
    public boolean hasCustomizedInfo() {
      return ((bitField1_ & 0x00000200) != 0);
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     * @return The customizedInfo.
     */
    public wechat.protobuf.CustomizedInfo getCustomizedInfo() {
      if (customizedInfoBuilder_ == null) {
        return customizedInfo_ == null ? wechat.protobuf.CustomizedInfo.getDefaultInstance() : customizedInfo_;
      } else {
        return customizedInfoBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     */
    public Builder setCustomizedInfo(wechat.protobuf.CustomizedInfo value) {
      if (customizedInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        customizedInfo_ = value;
        onChanged();
      } else {
        customizedInfoBuilder_.setMessage(value);
      }
      bitField1_ |= 0x00000200;
      return this;
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     */
    public Builder setCustomizedInfo(
        wechat.protobuf.CustomizedInfo.Builder builderForValue) {
      if (customizedInfoBuilder_ == null) {
        customizedInfo_ = builderForValue.build();
        onChanged();
      } else {
        customizedInfoBuilder_.setMessage(builderForValue.build());
      }
      bitField1_ |= 0x00000200;
      return this;
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     */
    public Builder mergeCustomizedInfo(wechat.protobuf.CustomizedInfo value) {
      if (customizedInfoBuilder_ == null) {
        if (((bitField1_ & 0x00000200) != 0) &&
            customizedInfo_ != null &&
            customizedInfo_ != wechat.protobuf.CustomizedInfo.getDefaultInstance()) {
          customizedInfo_ =
            wechat.protobuf.CustomizedInfo.newBuilder(customizedInfo_).mergeFrom(value).buildPartial();
        } else {
          customizedInfo_ = value;
        }
        onChanged();
      } else {
        customizedInfoBuilder_.mergeFrom(value);
      }
      bitField1_ |= 0x00000200;
      return this;
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     */
    public Builder clearCustomizedInfo() {
      if (customizedInfoBuilder_ == null) {
        customizedInfo_ = null;
        onChanged();
      } else {
        customizedInfoBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00000200);
      return this;
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     */
    public wechat.protobuf.CustomizedInfo.Builder getCustomizedInfoBuilder() {
      bitField1_ |= 0x00000200;
      onChanged();
      return getCustomizedInfoFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     */
    public wechat.protobuf.CustomizedInfoOrBuilder getCustomizedInfoOrBuilder() {
      if (customizedInfoBuilder_ != null) {
        return customizedInfoBuilder_.getMessageOrBuilder();
      } else {
        return customizedInfo_ == null ?
            wechat.protobuf.CustomizedInfo.getDefaultInstance() : customizedInfo_;
      }
    }
    /**
     * optional .wechat_proto.CustomizedInfo customizedInfo = 42;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.CustomizedInfo, wechat.protobuf.CustomizedInfo.Builder, wechat.protobuf.CustomizedInfoOrBuilder> 
        getCustomizedInfoFieldBuilder() {
      if (customizedInfoBuilder_ == null) {
        customizedInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.CustomizedInfo, wechat.protobuf.CustomizedInfo.Builder, wechat.protobuf.CustomizedInfoOrBuilder>(
                getCustomizedInfo(),
                getParentForChildren(),
                isClean());
        customizedInfo_ = null;
      }
      return customizedInfoBuilder_;
    }

    private java.lang.Object chatRoomData_ = "";
    /**
     * optional string chatRoomData = 43;
     * @return Whether the chatRoomData field is set.
     */
    public boolean hasChatRoomData() {
      return ((bitField1_ & 0x00000400) != 0);
    }
    /**
     * optional string chatRoomData = 43;
     * @return The chatRoomData.
     */
    public java.lang.String getChatRoomData() {
      java.lang.Object ref = chatRoomData_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          chatRoomData_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string chatRoomData = 43;
     * @return The bytes for chatRoomData.
     */
    public com.google.protobuf.ByteString
        getChatRoomDataBytes() {
      java.lang.Object ref = chatRoomData_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatRoomData_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string chatRoomData = 43;
     * @param value The chatRoomData to set.
     * @return This builder for chaining.
     */
    public Builder setChatRoomData(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000400;
      chatRoomData_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string chatRoomData = 43;
     * @return This builder for chaining.
     */
    public Builder clearChatRoomData() {
      bitField1_ = (bitField1_ & ~0x00000400);
      chatRoomData_ = getDefaultInstance().getChatRoomData();
      onChanged();
      return this;
    }
    /**
     * optional string chatRoomData = 43;
     * @param value The bytes for chatRoomData to set.
     * @return This builder for chaining.
     */
    public Builder setChatRoomDataBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000400;
      chatRoomData_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object headImgMd5_ = "";
    /**
     * optional string headImgMd5 = 44;
     * @return Whether the headImgMd5 field is set.
     */
    public boolean hasHeadImgMd5() {
      return ((bitField1_ & 0x00000800) != 0);
    }
    /**
     * optional string headImgMd5 = 44;
     * @return The headImgMd5.
     */
    public java.lang.String getHeadImgMd5() {
      java.lang.Object ref = headImgMd5_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          headImgMd5_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string headImgMd5 = 44;
     * @return The bytes for headImgMd5.
     */
    public com.google.protobuf.ByteString
        getHeadImgMd5Bytes() {
      java.lang.Object ref = headImgMd5_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        headImgMd5_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string headImgMd5 = 44;
     * @param value The headImgMd5 to set.
     * @return This builder for chaining.
     */
    public Builder setHeadImgMd5(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000800;
      headImgMd5_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string headImgMd5 = 44;
     * @return This builder for chaining.
     */
    public Builder clearHeadImgMd5() {
      bitField1_ = (bitField1_ & ~0x00000800);
      headImgMd5_ = getDefaultInstance().getHeadImgMd5();
      onChanged();
      return this;
    }
    /**
     * optional string headImgMd5 = 44;
     * @param value The bytes for headImgMd5 to set.
     * @return This builder for chaining.
     */
    public Builder setHeadImgMd5Bytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000800;
      headImgMd5_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object encryptUserName_ = "";
    /**
     * optional string encryptUserName = 45;
     * @return Whether the encryptUserName field is set.
     */
    public boolean hasEncryptUserName() {
      return ((bitField1_ & 0x00001000) != 0);
    }
    /**
     * optional string encryptUserName = 45;
     * @return The encryptUserName.
     */
    public java.lang.String getEncryptUserName() {
      java.lang.Object ref = encryptUserName_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          encryptUserName_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string encryptUserName = 45;
     * @return The bytes for encryptUserName.
     */
    public com.google.protobuf.ByteString
        getEncryptUserNameBytes() {
      java.lang.Object ref = encryptUserName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        encryptUserName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string encryptUserName = 45;
     * @param value The encryptUserName to set.
     * @return This builder for chaining.
     */
    public Builder setEncryptUserName(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00001000;
      encryptUserName_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string encryptUserName = 45;
     * @return This builder for chaining.
     */
    public Builder clearEncryptUserName() {
      bitField1_ = (bitField1_ & ~0x00001000);
      encryptUserName_ = getDefaultInstance().getEncryptUserName();
      onChanged();
      return this;
    }
    /**
     * optional string encryptUserName = 45;
     * @param value The bytes for encryptUserName to set.
     * @return This builder for chaining.
     */
    public Builder setEncryptUserNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00001000;
      encryptUserName_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object idcardNum_ = "";
    /**
     * optional string idcardNum = 46;
     * @return Whether the idcardNum field is set.
     */
    public boolean hasIdcardNum() {
      return ((bitField1_ & 0x00002000) != 0);
    }
    /**
     * optional string idcardNum = 46;
     * @return The idcardNum.
     */
    public java.lang.String getIdcardNum() {
      java.lang.Object ref = idcardNum_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          idcardNum_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string idcardNum = 46;
     * @return The bytes for idcardNum.
     */
    public com.google.protobuf.ByteString
        getIdcardNumBytes() {
      java.lang.Object ref = idcardNum_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        idcardNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string idcardNum = 46;
     * @param value The idcardNum to set.
     * @return This builder for chaining.
     */
    public Builder setIdcardNum(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00002000;
      idcardNum_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string idcardNum = 46;
     * @return This builder for chaining.
     */
    public Builder clearIdcardNum() {
      bitField1_ = (bitField1_ & ~0x00002000);
      idcardNum_ = getDefaultInstance().getIdcardNum();
      onChanged();
      return this;
    }
    /**
     * optional string idcardNum = 46;
     * @param value The bytes for idcardNum to set.
     * @return This builder for chaining.
     */
    public Builder setIdcardNumBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00002000;
      idcardNum_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object realName_ = "";
    /**
     * optional string realName = 47;
     * @return Whether the realName field is set.
     */
    public boolean hasRealName() {
      return ((bitField1_ & 0x00004000) != 0);
    }
    /**
     * optional string realName = 47;
     * @return The realName.
     */
    public java.lang.String getRealName() {
      java.lang.Object ref = realName_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          realName_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string realName = 47;
     * @return The bytes for realName.
     */
    public com.google.protobuf.ByteString
        getRealNameBytes() {
      java.lang.Object ref = realName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        realName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string realName = 47;
     * @param value The realName to set.
     * @return This builder for chaining.
     */
    public Builder setRealName(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00004000;
      realName_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string realName = 47;
     * @return This builder for chaining.
     */
    public Builder clearRealName() {
      bitField1_ = (bitField1_ & ~0x00004000);
      realName_ = getDefaultInstance().getRealName();
      onChanged();
      return this;
    }
    /**
     * optional string realName = 47;
     * @param value The bytes for realName to set.
     * @return This builder for chaining.
     */
    public Builder setRealNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00004000;
      realName_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object mobileHash_ = "";
    /**
     * optional string mobileHash = 48;
     * @return Whether the mobileHash field is set.
     */
    public boolean hasMobileHash() {
      return ((bitField1_ & 0x00008000) != 0);
    }
    /**
     * optional string mobileHash = 48;
     * @return The mobileHash.
     */
    public java.lang.String getMobileHash() {
      java.lang.Object ref = mobileHash_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          mobileHash_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string mobileHash = 48;
     * @return The bytes for mobileHash.
     */
    public com.google.protobuf.ByteString
        getMobileHashBytes() {
      java.lang.Object ref = mobileHash_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mobileHash_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string mobileHash = 48;
     * @param value The mobileHash to set.
     * @return This builder for chaining.
     */
    public Builder setMobileHash(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00008000;
      mobileHash_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string mobileHash = 48;
     * @return This builder for chaining.
     */
    public Builder clearMobileHash() {
      bitField1_ = (bitField1_ & ~0x00008000);
      mobileHash_ = getDefaultInstance().getMobileHash();
      onChanged();
      return this;
    }
    /**
     * optional string mobileHash = 48;
     * @param value The bytes for mobileHash to set.
     * @return This builder for chaining.
     */
    public Builder setMobileHashBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00008000;
      mobileHash_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object mobileFullHash_ = "";
    /**
     * optional string mobileFullHash = 49;
     * @return Whether the mobileFullHash field is set.
     */
    public boolean hasMobileFullHash() {
      return ((bitField1_ & 0x00010000) != 0);
    }
    /**
     * optional string mobileFullHash = 49;
     * @return The mobileFullHash.
     */
    public java.lang.String getMobileFullHash() {
      java.lang.Object ref = mobileFullHash_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          mobileFullHash_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string mobileFullHash = 49;
     * @return The bytes for mobileFullHash.
     */
    public com.google.protobuf.ByteString
        getMobileFullHashBytes() {
      java.lang.Object ref = mobileFullHash_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mobileFullHash_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string mobileFullHash = 49;
     * @param value The mobileFullHash to set.
     * @return This builder for chaining.
     */
    public Builder setMobileFullHash(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00010000;
      mobileFullHash_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string mobileFullHash = 49;
     * @return This builder for chaining.
     */
    public Builder clearMobileFullHash() {
      bitField1_ = (bitField1_ & ~0x00010000);
      mobileFullHash_ = getDefaultInstance().getMobileFullHash();
      onChanged();
      return this;
    }
    /**
     * optional string mobileFullHash = 49;
     * @param value The bytes for mobileFullHash to set.
     * @return This builder for chaining.
     */
    public Builder setMobileFullHashBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00010000;
      mobileFullHash_ = value;
      onChanged();
      return this;
    }

    private wechat.protobuf.AdditionalContactList additionalContactList_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.AdditionalContactList, wechat.protobuf.AdditionalContactList.Builder, wechat.protobuf.AdditionalContactListOrBuilder> additionalContactListBuilder_;
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     * @return Whether the additionalContactList field is set.
     */
    public boolean hasAdditionalContactList() {
      return ((bitField1_ & 0x00020000) != 0);
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     * @return The additionalContactList.
     */
    public wechat.protobuf.AdditionalContactList getAdditionalContactList() {
      if (additionalContactListBuilder_ == null) {
        return additionalContactList_ == null ? wechat.protobuf.AdditionalContactList.getDefaultInstance() : additionalContactList_;
      } else {
        return additionalContactListBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     */
    public Builder setAdditionalContactList(wechat.protobuf.AdditionalContactList value) {
      if (additionalContactListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        additionalContactList_ = value;
        onChanged();
      } else {
        additionalContactListBuilder_.setMessage(value);
      }
      bitField1_ |= 0x00020000;
      return this;
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     */
    public Builder setAdditionalContactList(
        wechat.protobuf.AdditionalContactList.Builder builderForValue) {
      if (additionalContactListBuilder_ == null) {
        additionalContactList_ = builderForValue.build();
        onChanged();
      } else {
        additionalContactListBuilder_.setMessage(builderForValue.build());
      }
      bitField1_ |= 0x00020000;
      return this;
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     */
    public Builder mergeAdditionalContactList(wechat.protobuf.AdditionalContactList value) {
      if (additionalContactListBuilder_ == null) {
        if (((bitField1_ & 0x00020000) != 0) &&
            additionalContactList_ != null &&
            additionalContactList_ != wechat.protobuf.AdditionalContactList.getDefaultInstance()) {
          additionalContactList_ =
            wechat.protobuf.AdditionalContactList.newBuilder(additionalContactList_).mergeFrom(value).buildPartial();
        } else {
          additionalContactList_ = value;
        }
        onChanged();
      } else {
        additionalContactListBuilder_.mergeFrom(value);
      }
      bitField1_ |= 0x00020000;
      return this;
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     */
    public Builder clearAdditionalContactList() {
      if (additionalContactListBuilder_ == null) {
        additionalContactList_ = null;
        onChanged();
      } else {
        additionalContactListBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00020000);
      return this;
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     */
    public wechat.protobuf.AdditionalContactList.Builder getAdditionalContactListBuilder() {
      bitField1_ |= 0x00020000;
      onChanged();
      return getAdditionalContactListFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     */
    public wechat.protobuf.AdditionalContactListOrBuilder getAdditionalContactListOrBuilder() {
      if (additionalContactListBuilder_ != null) {
        return additionalContactListBuilder_.getMessageOrBuilder();
      } else {
        return additionalContactList_ == null ?
            wechat.protobuf.AdditionalContactList.getDefaultInstance() : additionalContactList_;
      }
    }
    /**
     * optional .wechat_proto.AdditionalContactList additionalContactList = 50;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.AdditionalContactList, wechat.protobuf.AdditionalContactList.Builder, wechat.protobuf.AdditionalContactListOrBuilder> 
        getAdditionalContactListFieldBuilder() {
      if (additionalContactListBuilder_ == null) {
        additionalContactListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.AdditionalContactList, wechat.protobuf.AdditionalContactList.Builder, wechat.protobuf.AdditionalContactListOrBuilder>(
                getAdditionalContactList(),
                getParentForChildren(),
                isClean());
        additionalContactList_ = null;
      }
      return additionalContactListBuilder_;
    }

    private int chatroomVersion_ ;
    /**
     * optional uint32 chatroomVersion = 53;
     * @return Whether the chatroomVersion field is set.
     */
    @java.lang.Override
    public boolean hasChatroomVersion() {
      return ((bitField1_ & 0x00040000) != 0);
    }
    /**
     * optional uint32 chatroomVersion = 53;
     * @return The chatroomVersion.
     */
    @java.lang.Override
    public int getChatroomVersion() {
      return chatroomVersion_;
    }
    /**
     * optional uint32 chatroomVersion = 53;
     * @param value The chatroomVersion to set.
     * @return This builder for chaining.
     */
    public Builder setChatroomVersion(int value) {
      bitField1_ |= 0x00040000;
      chatroomVersion_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 chatroomVersion = 53;
     * @return This builder for chaining.
     */
    public Builder clearChatroomVersion() {
      bitField1_ = (bitField1_ & ~0x00040000);
      chatroomVersion_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object extInfo_ = "";
    /**
     * optional string extInfo = 54;
     * @return Whether the extInfo field is set.
     */
    public boolean hasExtInfo() {
      return ((bitField1_ & 0x00080000) != 0);
    }
    /**
     * optional string extInfo = 54;
     * @return The extInfo.
     */
    public java.lang.String getExtInfo() {
      java.lang.Object ref = extInfo_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          extInfo_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string extInfo = 54;
     * @return The bytes for extInfo.
     */
    public com.google.protobuf.ByteString
        getExtInfoBytes() {
      java.lang.Object ref = extInfo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        extInfo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string extInfo = 54;
     * @param value The extInfo to set.
     * @return This builder for chaining.
     */
    public Builder setExtInfo(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00080000;
      extInfo_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string extInfo = 54;
     * @return This builder for chaining.
     */
    public Builder clearExtInfo() {
      bitField1_ = (bitField1_ & ~0x00080000);
      extInfo_ = getDefaultInstance().getExtInfo();
      onChanged();
      return this;
    }
    /**
     * optional string extInfo = 54;
     * @param value The bytes for extInfo to set.
     * @return This builder for chaining.
     */
    public Builder setExtInfoBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00080000;
      extInfo_ = value;
      onChanged();
      return this;
    }

    private int chatroomMaxNum_ ;
    /**
     * optional uint32 chatroomMaxNum = 55;
     * @return Whether the chatroomMaxNum field is set.
     */
    @java.lang.Override
    public boolean hasChatroomMaxNum() {
      return ((bitField1_ & 0x00100000) != 0);
    }
    /**
     * optional uint32 chatroomMaxNum = 55;
     * @return The chatroomMaxNum.
     */
    @java.lang.Override
    public int getChatroomMaxNum() {
      return chatroomMaxNum_;
    }
    /**
     * optional uint32 chatroomMaxNum = 55;
     * @param value The chatroomMaxNum to set.
     * @return This builder for chaining.
     */
    public Builder setChatroomMaxNum(int value) {
      bitField1_ |= 0x00100000;
      chatroomMaxNum_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 chatroomMaxNum = 55;
     * @return This builder for chaining.
     */
    public Builder clearChatroomMaxNum() {
      bitField1_ = (bitField1_ & ~0x00100000);
      chatroomMaxNum_ = 0;
      onChanged();
      return this;
    }

    private int chatroomAccessType_ ;
    /**
     * optional uint32 chatroomAccessType = 56;
     * @return Whether the chatroomAccessType field is set.
     */
    @java.lang.Override
    public boolean hasChatroomAccessType() {
      return ((bitField1_ & 0x00200000) != 0);
    }
    /**
     * optional uint32 chatroomAccessType = 56;
     * @return The chatroomAccessType.
     */
    @java.lang.Override
    public int getChatroomAccessType() {
      return chatroomAccessType_;
    }
    /**
     * optional uint32 chatroomAccessType = 56;
     * @param value The chatroomAccessType to set.
     * @return This builder for chaining.
     */
    public Builder setChatroomAccessType(int value) {
      bitField1_ |= 0x00200000;
      chatroomAccessType_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 chatroomAccessType = 56;
     * @return This builder for chaining.
     */
    public Builder clearChatroomAccessType() {
      bitField1_ = (bitField1_ & ~0x00200000);
      chatroomAccessType_ = 0;
      onChanged();
      return this;
    }

    private wechat.protobuf.ChatRoomMemberData newChatroomData_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.ChatRoomMemberData, wechat.protobuf.ChatRoomMemberData.Builder, wechat.protobuf.ChatRoomMemberDataOrBuilder> newChatroomDataBuilder_;
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     * @return Whether the newChatroomData field is set.
     */
    public boolean hasNewChatroomData() {
      return ((bitField1_ & 0x00400000) != 0);
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     * @return The newChatroomData.
     */
    public wechat.protobuf.ChatRoomMemberData getNewChatroomData() {
      if (newChatroomDataBuilder_ == null) {
        return newChatroomData_ == null ? wechat.protobuf.ChatRoomMemberData.getDefaultInstance() : newChatroomData_;
      } else {
        return newChatroomDataBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     */
    public Builder setNewChatroomData(wechat.protobuf.ChatRoomMemberData value) {
      if (newChatroomDataBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        newChatroomData_ = value;
        onChanged();
      } else {
        newChatroomDataBuilder_.setMessage(value);
      }
      bitField1_ |= 0x00400000;
      return this;
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     */
    public Builder setNewChatroomData(
        wechat.protobuf.ChatRoomMemberData.Builder builderForValue) {
      if (newChatroomDataBuilder_ == null) {
        newChatroomData_ = builderForValue.build();
        onChanged();
      } else {
        newChatroomDataBuilder_.setMessage(builderForValue.build());
      }
      bitField1_ |= 0x00400000;
      return this;
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     */
    public Builder mergeNewChatroomData(wechat.protobuf.ChatRoomMemberData value) {
      if (newChatroomDataBuilder_ == null) {
        if (((bitField1_ & 0x00400000) != 0) &&
            newChatroomData_ != null &&
            newChatroomData_ != wechat.protobuf.ChatRoomMemberData.getDefaultInstance()) {
          newChatroomData_ =
            wechat.protobuf.ChatRoomMemberData.newBuilder(newChatroomData_).mergeFrom(value).buildPartial();
        } else {
          newChatroomData_ = value;
        }
        onChanged();
      } else {
        newChatroomDataBuilder_.mergeFrom(value);
      }
      bitField1_ |= 0x00400000;
      return this;
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     */
    public Builder clearNewChatroomData() {
      if (newChatroomDataBuilder_ == null) {
        newChatroomData_ = null;
        onChanged();
      } else {
        newChatroomDataBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x00400000);
      return this;
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     */
    public wechat.protobuf.ChatRoomMemberData.Builder getNewChatroomDataBuilder() {
      bitField1_ |= 0x00400000;
      onChanged();
      return getNewChatroomDataFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     */
    public wechat.protobuf.ChatRoomMemberDataOrBuilder getNewChatroomDataOrBuilder() {
      if (newChatroomDataBuilder_ != null) {
        return newChatroomDataBuilder_.getMessageOrBuilder();
      } else {
        return newChatroomData_ == null ?
            wechat.protobuf.ChatRoomMemberData.getDefaultInstance() : newChatroomData_;
      }
    }
    /**
     * optional .wechat_proto.ChatRoomMemberData newChatroomData = 57;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.ChatRoomMemberData, wechat.protobuf.ChatRoomMemberData.Builder, wechat.protobuf.ChatRoomMemberDataOrBuilder> 
        getNewChatroomDataFieldBuilder() {
      if (newChatroomDataBuilder_ == null) {
        newChatroomDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.ChatRoomMemberData, wechat.protobuf.ChatRoomMemberData.Builder, wechat.protobuf.ChatRoomMemberDataOrBuilder>(
                getNewChatroomData(),
                getParentForChildren(),
                isClean());
        newChatroomData_ = null;
      }
      return newChatroomDataBuilder_;
    }

    private int deleteFlag_ ;
    /**
     * optional int32 deleteFlag = 58;
     * @return Whether the deleteFlag field is set.
     */
    @java.lang.Override
    public boolean hasDeleteFlag() {
      return ((bitField1_ & 0x00800000) != 0);
    }
    /**
     * optional int32 deleteFlag = 58;
     * @return The deleteFlag.
     */
    @java.lang.Override
    public int getDeleteFlag() {
      return deleteFlag_;
    }
    /**
     * optional int32 deleteFlag = 58;
     * @param value The deleteFlag to set.
     * @return This builder for chaining.
     */
    public Builder setDeleteFlag(int value) {
      bitField1_ |= 0x00800000;
      deleteFlag_ = value;
      onChanged();
      return this;
    }
    /**
     * optional int32 deleteFlag = 58;
     * @return This builder for chaining.
     */
    public Builder clearDeleteFlag() {
      bitField1_ = (bitField1_ & ~0x00800000);
      deleteFlag_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object description_ = "";
    /**
     * optional string description = 59;
     * @return Whether the description field is set.
     */
    public boolean hasDescription() {
      return ((bitField1_ & 0x01000000) != 0);
    }
    /**
     * optional string description = 59;
     * @return The description.
     */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          description_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string description = 59;
     * @return The bytes for description.
     */
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string description = 59;
     * @param value The description to set.
     * @return This builder for chaining.
     */
    public Builder setDescription(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x01000000;
      description_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string description = 59;
     * @return This builder for chaining.
     */
    public Builder clearDescription() {
      bitField1_ = (bitField1_ & ~0x01000000);
      description_ = getDefaultInstance().getDescription();
      onChanged();
      return this;
    }
    /**
     * optional string description = 59;
     * @param value The bytes for description to set.
     * @return This builder for chaining.
     */
    public Builder setDescriptionBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x01000000;
      description_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object cardImgUrl_ = "";
    /**
     * optional string cardImgUrl = 60;
     * @return Whether the cardImgUrl field is set.
     */
    public boolean hasCardImgUrl() {
      return ((bitField1_ & 0x02000000) != 0);
    }
    /**
     * optional string cardImgUrl = 60;
     * @return The cardImgUrl.
     */
    public java.lang.String getCardImgUrl() {
      java.lang.Object ref = cardImgUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cardImgUrl_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string cardImgUrl = 60;
     * @return The bytes for cardImgUrl.
     */
    public com.google.protobuf.ByteString
        getCardImgUrlBytes() {
      java.lang.Object ref = cardImgUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cardImgUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string cardImgUrl = 60;
     * @param value The cardImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCardImgUrl(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x02000000;
      cardImgUrl_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string cardImgUrl = 60;
     * @return This builder for chaining.
     */
    public Builder clearCardImgUrl() {
      bitField1_ = (bitField1_ & ~0x02000000);
      cardImgUrl_ = getDefaultInstance().getCardImgUrl();
      onChanged();
      return this;
    }
    /**
     * optional string cardImgUrl = 60;
     * @param value The bytes for cardImgUrl to set.
     * @return This builder for chaining.
     */
    public Builder setCardImgUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x02000000;
      cardImgUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object labelIdlist_ = "";
    /**
     * optional string labelIdlist = 61;
     * @return Whether the labelIdlist field is set.
     */
    public boolean hasLabelIdlist() {
      return ((bitField1_ & 0x04000000) != 0);
    }
    /**
     * optional string labelIdlist = 61;
     * @return The labelIdlist.
     */
    public java.lang.String getLabelIdlist() {
      java.lang.Object ref = labelIdlist_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          labelIdlist_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string labelIdlist = 61;
     * @return The bytes for labelIdlist.
     */
    public com.google.protobuf.ByteString
        getLabelIdlistBytes() {
      java.lang.Object ref = labelIdlist_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        labelIdlist_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string labelIdlist = 61;
     * @param value The labelIdlist to set.
     * @return This builder for chaining.
     */
    public Builder setLabelIdlist(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x04000000;
      labelIdlist_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string labelIdlist = 61;
     * @return This builder for chaining.
     */
    public Builder clearLabelIdlist() {
      bitField1_ = (bitField1_ & ~0x04000000);
      labelIdlist_ = getDefaultInstance().getLabelIdlist();
      onChanged();
      return this;
    }
    /**
     * optional string labelIdlist = 61;
     * @param value The bytes for labelIdlist to set.
     * @return This builder for chaining.
     */
    public Builder setLabelIdlistBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x04000000;
      labelIdlist_ = value;
      onChanged();
      return this;
    }

    private wechat.protobuf.PhoneNumListInfo phoneNumListInfo_;
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.PhoneNumListInfo, wechat.protobuf.PhoneNumListInfo.Builder, wechat.protobuf.PhoneNumListInfoOrBuilder> phoneNumListInfoBuilder_;
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     * @return Whether the phoneNumListInfo field is set.
     */
    public boolean hasPhoneNumListInfo() {
      return ((bitField1_ & 0x08000000) != 0);
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     * @return The phoneNumListInfo.
     */
    public wechat.protobuf.PhoneNumListInfo getPhoneNumListInfo() {
      if (phoneNumListInfoBuilder_ == null) {
        return phoneNumListInfo_ == null ? wechat.protobuf.PhoneNumListInfo.getDefaultInstance() : phoneNumListInfo_;
      } else {
        return phoneNumListInfoBuilder_.getMessage();
      }
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     */
    public Builder setPhoneNumListInfo(wechat.protobuf.PhoneNumListInfo value) {
      if (phoneNumListInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        phoneNumListInfo_ = value;
        onChanged();
      } else {
        phoneNumListInfoBuilder_.setMessage(value);
      }
      bitField1_ |= 0x08000000;
      return this;
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     */
    public Builder setPhoneNumListInfo(
        wechat.protobuf.PhoneNumListInfo.Builder builderForValue) {
      if (phoneNumListInfoBuilder_ == null) {
        phoneNumListInfo_ = builderForValue.build();
        onChanged();
      } else {
        phoneNumListInfoBuilder_.setMessage(builderForValue.build());
      }
      bitField1_ |= 0x08000000;
      return this;
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     */
    public Builder mergePhoneNumListInfo(wechat.protobuf.PhoneNumListInfo value) {
      if (phoneNumListInfoBuilder_ == null) {
        if (((bitField1_ & 0x08000000) != 0) &&
            phoneNumListInfo_ != null &&
            phoneNumListInfo_ != wechat.protobuf.PhoneNumListInfo.getDefaultInstance()) {
          phoneNumListInfo_ =
            wechat.protobuf.PhoneNumListInfo.newBuilder(phoneNumListInfo_).mergeFrom(value).buildPartial();
        } else {
          phoneNumListInfo_ = value;
        }
        onChanged();
      } else {
        phoneNumListInfoBuilder_.mergeFrom(value);
      }
      bitField1_ |= 0x08000000;
      return this;
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     */
    public Builder clearPhoneNumListInfo() {
      if (phoneNumListInfoBuilder_ == null) {
        phoneNumListInfo_ = null;
        onChanged();
      } else {
        phoneNumListInfoBuilder_.clear();
      }
      bitField1_ = (bitField1_ & ~0x08000000);
      return this;
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     */
    public wechat.protobuf.PhoneNumListInfo.Builder getPhoneNumListInfoBuilder() {
      bitField1_ |= 0x08000000;
      onChanged();
      return getPhoneNumListInfoFieldBuilder().getBuilder();
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     */
    public wechat.protobuf.PhoneNumListInfoOrBuilder getPhoneNumListInfoOrBuilder() {
      if (phoneNumListInfoBuilder_ != null) {
        return phoneNumListInfoBuilder_.getMessageOrBuilder();
      } else {
        return phoneNumListInfo_ == null ?
            wechat.protobuf.PhoneNumListInfo.getDefaultInstance() : phoneNumListInfo_;
      }
    }
    /**
     * optional .wechat_proto.PhoneNumListInfo phoneNumListInfo = 62;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        wechat.protobuf.PhoneNumListInfo, wechat.protobuf.PhoneNumListInfo.Builder, wechat.protobuf.PhoneNumListInfoOrBuilder> 
        getPhoneNumListInfoFieldBuilder() {
      if (phoneNumListInfoBuilder_ == null) {
        phoneNumListInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            wechat.protobuf.PhoneNumListInfo, wechat.protobuf.PhoneNumListInfo.Builder, wechat.protobuf.PhoneNumListInfoOrBuilder>(
                getPhoneNumListInfo(),
                getParentForChildren(),
                isClean());
        phoneNumListInfo_ = null;
      }
      return phoneNumListInfoBuilder_;
    }

    private java.lang.Object weiDianInfo_ = "";
    /**
     * optional string weiDianInfo = 63;
     * @return Whether the weiDianInfo field is set.
     */
    public boolean hasWeiDianInfo() {
      return ((bitField1_ & 0x10000000) != 0);
    }
    /**
     * optional string weiDianInfo = 63;
     * @return The weiDianInfo.
     */
    public java.lang.String getWeiDianInfo() {
      java.lang.Object ref = weiDianInfo_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          weiDianInfo_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string weiDianInfo = 63;
     * @return The bytes for weiDianInfo.
     */
    public com.google.protobuf.ByteString
        getWeiDianInfoBytes() {
      java.lang.Object ref = weiDianInfo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        weiDianInfo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string weiDianInfo = 63;
     * @param value The weiDianInfo to set.
     * @return This builder for chaining.
     */
    public Builder setWeiDianInfo(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x10000000;
      weiDianInfo_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string weiDianInfo = 63;
     * @return This builder for chaining.
     */
    public Builder clearWeiDianInfo() {
      bitField1_ = (bitField1_ & ~0x10000000);
      weiDianInfo_ = getDefaultInstance().getWeiDianInfo();
      onChanged();
      return this;
    }
    /**
     * optional string weiDianInfo = 63;
     * @param value The bytes for weiDianInfo to set.
     * @return This builder for chaining.
     */
    public Builder setWeiDianInfoBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x10000000;
      weiDianInfo_ = value;
      onChanged();
      return this;
    }

    private int chatroomInfoVersion_ ;
    /**
     * optional uint32 chatroomInfoVersion = 64;
     * @return Whether the chatroomInfoVersion field is set.
     */
    @java.lang.Override
    public boolean hasChatroomInfoVersion() {
      return ((bitField1_ & 0x20000000) != 0);
    }
    /**
     * optional uint32 chatroomInfoVersion = 64;
     * @return The chatroomInfoVersion.
     */
    @java.lang.Override
    public int getChatroomInfoVersion() {
      return chatroomInfoVersion_;
    }
    /**
     * optional uint32 chatroomInfoVersion = 64;
     * @param value The chatroomInfoVersion to set.
     * @return This builder for chaining.
     */
    public Builder setChatroomInfoVersion(int value) {
      bitField1_ |= 0x20000000;
      chatroomInfoVersion_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 chatroomInfoVersion = 64;
     * @return This builder for chaining.
     */
    public Builder clearChatroomInfoVersion() {
      bitField1_ = (bitField1_ & ~0x20000000);
      chatroomInfoVersion_ = 0;
      onChanged();
      return this;
    }

    private int deleteContactScene_ ;
    /**
     * optional uint32 deleteContactScene = 65;
     * @return Whether the deleteContactScene field is set.
     */
    @java.lang.Override
    public boolean hasDeleteContactScene() {
      return ((bitField1_ & 0x40000000) != 0);
    }
    /**
     * optional uint32 deleteContactScene = 65;
     * @return The deleteContactScene.
     */
    @java.lang.Override
    public int getDeleteContactScene() {
      return deleteContactScene_;
    }
    /**
     * optional uint32 deleteContactScene = 65;
     * @param value The deleteContactScene to set.
     * @return This builder for chaining.
     */
    public Builder setDeleteContactScene(int value) {
      bitField1_ |= 0x40000000;
      deleteContactScene_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 deleteContactScene = 65;
     * @return This builder for chaining.
     */
    public Builder clearDeleteContactScene() {
      bitField1_ = (bitField1_ & ~0x40000000);
      deleteContactScene_ = 0;
      onChanged();
      return this;
    }

    private int chatroomStatus_ ;
    /**
     * optional uint32 chatroomStatus = 66;
     * @return Whether the chatroomStatus field is set.
     */
    @java.lang.Override
    public boolean hasChatroomStatus() {
      return ((bitField1_ & 0x80000000) != 0);
    }
    /**
     * optional uint32 chatroomStatus = 66;
     * @return The chatroomStatus.
     */
    @java.lang.Override
    public int getChatroomStatus() {
      return chatroomStatus_;
    }
    /**
     * optional uint32 chatroomStatus = 66;
     * @param value The chatroomStatus to set.
     * @return This builder for chaining.
     */
    public Builder setChatroomStatus(int value) {
      bitField1_ |= 0x80000000;
      chatroomStatus_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 chatroomStatus = 66;
     * @return This builder for chaining.
     */
    public Builder clearChatroomStatus() {
      bitField1_ = (bitField1_ & ~0x80000000);
      chatroomStatus_ = 0;
      onChanged();
      return this;
    }

    private int extFlag_ ;
    /**
     * optional uint32 extFlag = 67;
     * @return Whether the extFlag field is set.
     */
    @java.lang.Override
    public boolean hasExtFlag() {
      return ((bitField2_ & 0x00000001) != 0);
    }
    /**
     * optional uint32 extFlag = 67;
     * @return The extFlag.
     */
    @java.lang.Override
    public int getExtFlag() {
      return extFlag_;
    }
    /**
     * optional uint32 extFlag = 67;
     * @param value The extFlag to set.
     * @return This builder for chaining.
     */
    public Builder setExtFlag(int value) {
      bitField2_ |= 0x00000001;
      extFlag_ = value;
      onChanged();
      return this;
    }
    /**
     * optional uint32 extFlag = 67;
     * @return This builder for chaining.
     */
    public Builder clearExtFlag() {
      bitField2_ = (bitField2_ & ~0x00000001);
      extFlag_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object sourceExtInfo_ = "";
    /**
     * optional string sourceExtInfo = 68;
     * @return Whether the sourceExtInfo field is set.
     */
    public boolean hasSourceExtInfo() {
      return ((bitField2_ & 0x00000002) != 0);
    }
    /**
     * optional string sourceExtInfo = 68;
     * @return The sourceExtInfo.
     */
    public java.lang.String getSourceExtInfo() {
      java.lang.Object ref = sourceExtInfo_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          sourceExtInfo_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string sourceExtInfo = 68;
     * @return The bytes for sourceExtInfo.
     */
    public com.google.protobuf.ByteString
        getSourceExtInfoBytes() {
      java.lang.Object ref = sourceExtInfo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceExtInfo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string sourceExtInfo = 68;
     * @param value The sourceExtInfo to set.
     * @return This builder for chaining.
     */
    public Builder setSourceExtInfo(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField2_ |= 0x00000002;
      sourceExtInfo_ = value;
      onChanged();
      return this;
    }
    /**
     * optional string sourceExtInfo = 68;
     * @return This builder for chaining.
     */
    public Builder clearSourceExtInfo() {
      bitField2_ = (bitField2_ & ~0x00000002);
      sourceExtInfo_ = getDefaultInstance().getSourceExtInfo();
      onChanged();
      return this;
    }
    /**
     * optional string sourceExtInfo = 68;
     * @param value The bytes for sourceExtInfo to set.
     * @return This builder for chaining.
     */
    public Builder setSourceExtInfoBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField2_ |= 0x00000002;
      sourceExtInfo_ = value;
      onChanged();
      return this;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

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


    // @@protoc_insertion_point(builder_scope:wechat_proto.ModContact)
  }

  // @@protoc_insertion_point(class_scope:wechat_proto.ModContact)
  private static final wechat.protobuf.ModContact DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new wechat.protobuf.ModContact();
  }

  public static wechat.protobuf.ModContact getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

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

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

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

  @java.lang.Override
  public wechat.protobuf.ModContact getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy