package com.jsc.dsp.proto;// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Person.proto

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface PersonInfoSetsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PersonInfoSets)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    java.util.List<PersonInfo>
        getPersonInfoList();
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    PersonInfo getPersonInfo(int index);
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    int getPersonInfoCount();
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    java.util.List<? extends PersonInfoOrBuilder>
        getPersonInfoOrBuilderList();
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    PersonInfoOrBuilder getPersonInfoOrBuilder(
        int index);

    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    java.util.List<ContactInfo>
        getContactInfoList();
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    ContactInfo getContactInfo(int index);
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    int getContactInfoCount();
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    java.util.List<? extends ContactInfoOrBuilder>
        getContactInfoOrBuilderList();
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    ContactInfoOrBuilder getContactInfoOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PersonInfoSets}
   */
  public  static final class PersonInfoSets extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PersonInfoSets)
      PersonInfoSetsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PersonInfoSets.newBuilder() to construct.
    private PersonInfoSets(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PersonInfoSets() {
      personInfo_ = java.util.Collections.emptyList();
      contactInfo_ = java.util.Collections.emptyList();
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new PersonInfoSets();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PersonInfoSets(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                personInfo_ = new java.util.ArrayList<PersonInfo>();
                mutable_bitField0_ |= 0x00000001;
              }
              personInfo_.add(
                  input.readMessage(PersonInfo.parser(), extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                contactInfo_ = new java.util.ArrayList<ContactInfo>();
                mutable_bitField0_ |= 0x00000002;
              }
              contactInfo_.add(
                  input.readMessage(ContactInfo.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          personInfo_ = java.util.Collections.unmodifiableList(personInfo_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          contactInfo_ = java.util.Collections.unmodifiableList(contactInfo_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return Person.internal_static_PersonInfoSets_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return Person.internal_static_PersonInfoSets_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              PersonInfoSets.class, Builder.class);
    }

    public static final int PERSONINFO_FIELD_NUMBER = 1;
    private java.util.List<PersonInfo> personInfo_;
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    public java.util.List<PersonInfo> getPersonInfoList() {
      return personInfo_;
    }
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    public java.util.List<? extends PersonInfoOrBuilder>
        getPersonInfoOrBuilderList() {
      return personInfo_;
    }
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    public int getPersonInfoCount() {
      return personInfo_.size();
    }
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    public PersonInfo getPersonInfo(int index) {
      return personInfo_.get(index);
    }
    /**
     * <code>repeated .PersonInfo PersonInfo = 1;</code>
     */
    public PersonInfoOrBuilder getPersonInfoOrBuilder(
        int index) {
      return personInfo_.get(index);
    }

    public static final int CONTACTINFO_FIELD_NUMBER = 2;
    private java.util.List<ContactInfo> contactInfo_;
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    public java.util.List<ContactInfo> getContactInfoList() {
      return contactInfo_;
    }
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    public java.util.List<? extends ContactInfoOrBuilder>
        getContactInfoOrBuilderList() {
      return contactInfo_;
    }
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    public int getContactInfoCount() {
      return contactInfo_.size();
    }
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    public ContactInfo getContactInfo(int index) {
      return contactInfo_.get(index);
    }
    /**
     * <code>repeated .ContactInfo ContactInfo = 2;</code>
     */
    public ContactInfoOrBuilder getContactInfoOrBuilder(
        int index) {
      return contactInfo_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      for (int i = 0; i < personInfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, personInfo_.get(i));
      }
      for (int i = 0; i < contactInfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, contactInfo_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof PersonInfoSets)) {
        return super.equals(obj);
      }
      PersonInfoSets other = (PersonInfoSets) obj;

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

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPersonInfoCount() > 0) {
        hash = (37 * hash) + PERSONINFO_FIELD_NUMBER;
        hash = (53 * hash) + getPersonInfoList().hashCode();
      }
      if (getContactInfoCount() > 0) {
        hash = (37 * hash) + CONTACTINFO_FIELD_NUMBER;
        hash = (53 * hash) + getContactInfoList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static PersonInfoSets parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static PersonInfoSets parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static PersonInfoSets parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static PersonInfoSets parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static PersonInfoSets parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static PersonInfoSets parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static PersonInfoSets parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static PersonInfoSets 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 PersonInfoSets parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static PersonInfoSets 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 PersonInfoSets parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static PersonInfoSets parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(PersonInfoSets prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PersonInfoSets}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PersonInfoSets)
        PersonInfoSetsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Person.internal_static_PersonInfoSets_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Person.internal_static_PersonInfoSets_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                PersonInfoSets.class, Builder.class);
      }

      // Construct using Person.PersonInfoSets.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPersonInfoFieldBuilder();
          getContactInfoFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (personInfoBuilder_ == null) {
          personInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          personInfoBuilder_.clear();
        }
        if (contactInfoBuilder_ == null) {
          contactInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          contactInfoBuilder_.clear();
        }
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return Person.internal_static_PersonInfoSets_descriptor;
      }

      @Override
      public PersonInfoSets getDefaultInstanceForType() {
        return PersonInfoSets.getDefaultInstance();
      }

      @Override
      public PersonInfoSets build() {
        PersonInfoSets result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public PersonInfoSets buildPartial() {
        PersonInfoSets result = new PersonInfoSets(this);
        int from_bitField0_ = bitField0_;
        if (personInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            personInfo_ = java.util.Collections.unmodifiableList(personInfo_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.personInfo_ = personInfo_;
        } else {
          result.personInfo_ = personInfoBuilder_.build();
        }
        if (contactInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            contactInfo_ = java.util.Collections.unmodifiableList(contactInfo_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.contactInfo_ = contactInfo_;
        } else {
          result.contactInfo_ = contactInfoBuilder_.build();
        }
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(PersonInfoSets other) {
        if (other == PersonInfoSets.getDefaultInstance()) return this;
        if (personInfoBuilder_ == null) {
          if (!other.personInfo_.isEmpty()) {
            if (personInfo_.isEmpty()) {
              personInfo_ = other.personInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePersonInfoIsMutable();
              personInfo_.addAll(other.personInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.personInfo_.isEmpty()) {
            if (personInfoBuilder_.isEmpty()) {
              personInfoBuilder_.dispose();
              personInfoBuilder_ = null;
              personInfo_ = other.personInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
              personInfoBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPersonInfoFieldBuilder() : null;
            } else {
              personInfoBuilder_.addAllMessages(other.personInfo_);
            }
          }
        }
        if (contactInfoBuilder_ == null) {
          if (!other.contactInfo_.isEmpty()) {
            if (contactInfo_.isEmpty()) {
              contactInfo_ = other.contactInfo_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureContactInfoIsMutable();
              contactInfo_.addAll(other.contactInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.contactInfo_.isEmpty()) {
            if (contactInfoBuilder_.isEmpty()) {
              contactInfoBuilder_.dispose();
              contactInfoBuilder_ = null;
              contactInfo_ = other.contactInfo_;
              bitField0_ = (bitField0_ & ~0x00000002);
              contactInfoBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getContactInfoFieldBuilder() : null;
            } else {
              contactInfoBuilder_.addAllMessages(other.contactInfo_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private java.util.List<PersonInfo> personInfo_ =
        java.util.Collections.emptyList();
      private void ensurePersonInfoIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          personInfo_ = new java.util.ArrayList<PersonInfo>(personInfo_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          PersonInfo, PersonInfo.Builder, PersonInfoOrBuilder> personInfoBuilder_;

      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public java.util.List<PersonInfo> getPersonInfoList() {
        if (personInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(personInfo_);
        } else {
          return personInfoBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public int getPersonInfoCount() {
        if (personInfoBuilder_ == null) {
          return personInfo_.size();
        } else {
          return personInfoBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public PersonInfo getPersonInfo(int index) {
        if (personInfoBuilder_ == null) {
          return personInfo_.get(index);
        } else {
          return personInfoBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder setPersonInfo(
          int index, PersonInfo value) {
        if (personInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePersonInfoIsMutable();
          personInfo_.set(index, value);
          onChanged();
        } else {
          personInfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder setPersonInfo(
          int index, PersonInfo.Builder builderForValue) {
        if (personInfoBuilder_ == null) {
          ensurePersonInfoIsMutable();
          personInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          personInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder addPersonInfo(PersonInfo value) {
        if (personInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePersonInfoIsMutable();
          personInfo_.add(value);
          onChanged();
        } else {
          personInfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder addPersonInfo(
          int index, PersonInfo value) {
        if (personInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePersonInfoIsMutable();
          personInfo_.add(index, value);
          onChanged();
        } else {
          personInfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder addPersonInfo(
          PersonInfo.Builder builderForValue) {
        if (personInfoBuilder_ == null) {
          ensurePersonInfoIsMutable();
          personInfo_.add(builderForValue.build());
          onChanged();
        } else {
          personInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder addPersonInfo(
          int index, PersonInfo.Builder builderForValue) {
        if (personInfoBuilder_ == null) {
          ensurePersonInfoIsMutable();
          personInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          personInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder addAllPersonInfo(
          Iterable<? extends PersonInfo> values) {
        if (personInfoBuilder_ == null) {
          ensurePersonInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, personInfo_);
          onChanged();
        } else {
          personInfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder clearPersonInfo() {
        if (personInfoBuilder_ == null) {
          personInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          personInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public Builder removePersonInfo(int index) {
        if (personInfoBuilder_ == null) {
          ensurePersonInfoIsMutable();
          personInfo_.remove(index);
          onChanged();
        } else {
          personInfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public PersonInfo.Builder getPersonInfoBuilder(
          int index) {
        return getPersonInfoFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public PersonInfoOrBuilder getPersonInfoOrBuilder(
          int index) {
        if (personInfoBuilder_ == null) {
          return personInfo_.get(index);  } else {
          return personInfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public java.util.List<? extends PersonInfoOrBuilder>
           getPersonInfoOrBuilderList() {
        if (personInfoBuilder_ != null) {
          return personInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(personInfo_);
        }
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public PersonInfo.Builder addPersonInfoBuilder() {
        return getPersonInfoFieldBuilder().addBuilder(
            PersonInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public PersonInfo.Builder addPersonInfoBuilder(
          int index) {
        return getPersonInfoFieldBuilder().addBuilder(
            index, PersonInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .PersonInfo PersonInfo = 1;</code>
       */
      public java.util.List<PersonInfo.Builder>
           getPersonInfoBuilderList() {
        return getPersonInfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          PersonInfo, PersonInfo.Builder, PersonInfoOrBuilder>
          getPersonInfoFieldBuilder() {
        if (personInfoBuilder_ == null) {
          personInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              PersonInfo, PersonInfo.Builder, PersonInfoOrBuilder>(
                  personInfo_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          personInfo_ = null;
        }
        return personInfoBuilder_;
      }

      private java.util.List<ContactInfo> contactInfo_ =
        java.util.Collections.emptyList();
      private void ensureContactInfoIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          contactInfo_ = new java.util.ArrayList<ContactInfo>(contactInfo_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ContactInfo, ContactInfo.Builder, ContactInfoOrBuilder> contactInfoBuilder_;

      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public java.util.List<ContactInfo> getContactInfoList() {
        if (contactInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(contactInfo_);
        } else {
          return contactInfoBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public int getContactInfoCount() {
        if (contactInfoBuilder_ == null) {
          return contactInfo_.size();
        } else {
          return contactInfoBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public ContactInfo getContactInfo(int index) {
        if (contactInfoBuilder_ == null) {
          return contactInfo_.get(index);
        } else {
          return contactInfoBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder setContactInfo(
          int index, ContactInfo value) {
        if (contactInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContactInfoIsMutable();
          contactInfo_.set(index, value);
          onChanged();
        } else {
          contactInfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder setContactInfo(
          int index, ContactInfo.Builder builderForValue) {
        if (contactInfoBuilder_ == null) {
          ensureContactInfoIsMutable();
          contactInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          contactInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder addContactInfo(ContactInfo value) {
        if (contactInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContactInfoIsMutable();
          contactInfo_.add(value);
          onChanged();
        } else {
          contactInfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder addContactInfo(
          int index, ContactInfo value) {
        if (contactInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContactInfoIsMutable();
          contactInfo_.add(index, value);
          onChanged();
        } else {
          contactInfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder addContactInfo(
          ContactInfo.Builder builderForValue) {
        if (contactInfoBuilder_ == null) {
          ensureContactInfoIsMutable();
          contactInfo_.add(builderForValue.build());
          onChanged();
        } else {
          contactInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder addContactInfo(
          int index, ContactInfo.Builder builderForValue) {
        if (contactInfoBuilder_ == null) {
          ensureContactInfoIsMutable();
          contactInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          contactInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder addAllContactInfo(
          Iterable<? extends ContactInfo> values) {
        if (contactInfoBuilder_ == null) {
          ensureContactInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, contactInfo_);
          onChanged();
        } else {
          contactInfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder clearContactInfo() {
        if (contactInfoBuilder_ == null) {
          contactInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          contactInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public Builder removeContactInfo(int index) {
        if (contactInfoBuilder_ == null) {
          ensureContactInfoIsMutable();
          contactInfo_.remove(index);
          onChanged();
        } else {
          contactInfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public ContactInfo.Builder getContactInfoBuilder(
          int index) {
        return getContactInfoFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public ContactInfoOrBuilder getContactInfoOrBuilder(
          int index) {
        if (contactInfoBuilder_ == null) {
          return contactInfo_.get(index);  } else {
          return contactInfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public java.util.List<? extends ContactInfoOrBuilder>
           getContactInfoOrBuilderList() {
        if (contactInfoBuilder_ != null) {
          return contactInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(contactInfo_);
        }
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public ContactInfo.Builder addContactInfoBuilder() {
        return getContactInfoFieldBuilder().addBuilder(
            ContactInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public ContactInfo.Builder addContactInfoBuilder(
          int index) {
        return getContactInfoFieldBuilder().addBuilder(
            index, ContactInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .ContactInfo ContactInfo = 2;</code>
       */
      public java.util.List<ContactInfo.Builder>
           getContactInfoBuilderList() {
        return getContactInfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ContactInfo, ContactInfo.Builder, ContactInfoOrBuilder>
          getContactInfoFieldBuilder() {
        if (contactInfoBuilder_ == null) {
          contactInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ContactInfo, ContactInfo.Builder, ContactInfoOrBuilder>(
                  contactInfo_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          contactInfo_ = null;
        }
        return contactInfoBuilder_;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:PersonInfoSets)
    }

    // @@protoc_insertion_point(class_scope:PersonInfoSets)
    private static final PersonInfoSets DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new PersonInfoSets();
    }

    public static PersonInfoSets getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @Override
    public PersonInfoSets getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PersonInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PersonInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    String getId();
    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

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

    /**
     * <code>string photo = 3;</code>
     * @return The photo.
     */
    String getPhoto();
    /**
     * <code>string photo = 3;</code>
     * @return The bytes for photo.
     */
    com.google.protobuf.ByteString
        getPhotoBytes();

    /**
     * <code>string foreignName = 4;</code>
     * @return The foreignName.
     */
    String getForeignName();
    /**
     * <code>string foreignName = 4;</code>
     * @return The bytes for foreignName.
     */
    com.google.protobuf.ByteString
        getForeignNameBytes();

    /**
     * <code>string sex = 5;</code>
     * @return The sex.
     */
    String getSex();
    /**
     * <code>string sex = 5;</code>
     * @return The bytes for sex.
     */
    com.google.protobuf.ByteString
        getSexBytes();

    /**
     * <code>string source = 6;</code>
     * @return The source.
     */
    String getSource();
    /**
     * <code>string source = 6;</code>
     * @return The bytes for source.
     */
    com.google.protobuf.ByteString
        getSourceBytes();

    /**
     * <code>string birthday = 7;</code>
     * @return The birthday.
     */
    String getBirthday();
    /**
     * <code>string birthday = 7;</code>
     * @return The bytes for birthday.
     */
    com.google.protobuf.ByteString
        getBirthdayBytes();

    /**
     * <code>string education = 8;</code>
     * @return The education.
     */
    String getEducation();
    /**
     * <code>string education = 8;</code>
     * @return The bytes for education.
     */
    com.google.protobuf.ByteString
        getEducationBytes();

    /**
     * <code>string experience = 9;</code>
     * @return The experience.
     */
    String getExperience();
    /**
     * <code>string experience = 9;</code>
     * @return The bytes for experience.
     */
    com.google.protobuf.ByteString
        getExperienceBytes();

    /**
     * <code>string chronicle = 10;</code>
     * @return The chronicle.
     */
    String getChronicle();
    /**
     * <code>string chronicle = 10;</code>
     * @return The bytes for chronicle.
     */
    com.google.protobuf.ByteString
        getChronicleBytes();

    /**
     * <code>string institutions = 11;</code>
     * @return The institutions.
     */
    String getInstitutions();
    /**
     * <code>string institutions = 11;</code>
     * @return The bytes for institutions.
     */
    com.google.protobuf.ByteString
        getInstitutionsBytes();

    /**
     * <code>string departments = 12;</code>
     * @return The departments.
     */
    String getDepartments();
    /**
     * <code>string departments = 12;</code>
     * @return The bytes for departments.
     */
    com.google.protobuf.ByteString
        getDepartmentsBytes();

    /**
     * <code>string positions = 13;</code>
     * @return The positions.
     */
    String getPositions();
    /**
     * <code>string positions = 13;</code>
     * @return The bytes for positions.
     */
    com.google.protobuf.ByteString
        getPositionsBytes();

    /**
     * <code>string languages = 14;</code>
     * @return The languages.
     */
    String getLanguages();
    /**
     * <code>string languages = 14;</code>
     * @return The bytes for languages.
     */
    com.google.protobuf.ByteString
        getLanguagesBytes();

    /**
     * <code>string nationality = 15;</code>
     * @return The nationality.
     */
    String getNationality();
    /**
     * <code>string nationality = 15;</code>
     * @return The bytes for nationality.
     */
    com.google.protobuf.ByteString
        getNationalityBytes();

    /**
     * <code>string directions = 16;</code>
     * @return The directions.
     */
    String getDirections();
    /**
     * <code>string directions = 16;</code>
     * @return The bytes for directions.
     */
    com.google.protobuf.ByteString
        getDirectionsBytes();

    /**
     * <code>string researchFields = 17;</code>
     * @return The researchFields.
     */
    String getResearchFields();
    /**
     * <code>string researchFields = 17;</code>
     * @return The bytes for researchFields.
     */
    com.google.protobuf.ByteString
        getResearchFieldsBytes();

    /**
     * <code>string projects = 18;</code>
     * @return The projects.
     */
    String getProjects();
    /**
     * <code>string projects = 18;</code>
     * @return The bytes for projects.
     */
    com.google.protobuf.ByteString
        getProjectsBytes();

    /**
     * <code>string honor = 19;</code>
     * @return The honor.
     */
    String getHonor();
    /**
     * <code>string honor = 19;</code>
     * @return The bytes for honor.
     */
    com.google.protobuf.ByteString
        getHonorBytes();

    /**
     * <code>string religions = 20;</code>
     * @return The religions.
     */
    String getReligions();
    /**
     * <code>string religions = 20;</code>
     * @return The bytes for religions.
     */
    com.google.protobuf.ByteString
        getReligionsBytes();

    /**
     * <code>string introduction = 21;</code>
     * @return The introduction.
     */
    String getIntroduction();
    /**
     * <code>string introduction = 21;</code>
     * @return The bytes for introduction.
     */
    com.google.protobuf.ByteString
        getIntroductionBytes();

    /**
     * <code>string updateTime = 22;</code>
     * @return The updateTime.
     */
    String getUpdateTime();
    /**
     * <code>string updateTime = 22;</code>
     * @return The bytes for updateTime.
     */
    com.google.protobuf.ByteString
        getUpdateTimeBytes();

    /**
     * <code>string remarks = 23;</code>
     * @return The remarks.
     */
    String getRemarks();
    /**
     * <code>string remarks = 23;</code>
     * @return The bytes for remarks.
     */
    com.google.protobuf.ByteString
        getRemarksBytes();
  }
  /**
   * Protobuf type {@code PersonInfo}
   */
  public  static final class PersonInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PersonInfo)
      PersonInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PersonInfo.newBuilder() to construct.
    private PersonInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PersonInfo() {
      id_ = "";
      name_ = "";
      photo_ = "";
      foreignName_ = "";
      sex_ = "";
      source_ = "";
      birthday_ = "";
      education_ = "";
      experience_ = "";
      chronicle_ = "";
      institutions_ = "";
      departments_ = "";
      positions_ = "";
      languages_ = "";
      nationality_ = "";
      directions_ = "";
      researchFields_ = "";
      projects_ = "";
      honor_ = "";
      religions_ = "";
      introduction_ = "";
      updateTime_ = "";
      remarks_ = "";
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new PersonInfo();
    }

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

              id_ = s;
              break;
            }
            case 18: {
              String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 26: {
              String s = input.readStringRequireUtf8();

              photo_ = s;
              break;
            }
            case 34: {
              String s = input.readStringRequireUtf8();

              foreignName_ = s;
              break;
            }
            case 42: {
              String s = input.readStringRequireUtf8();

              sex_ = s;
              break;
            }
            case 50: {
              String s = input.readStringRequireUtf8();

              source_ = s;
              break;
            }
            case 58: {
              String s = input.readStringRequireUtf8();

              birthday_ = s;
              break;
            }
            case 66: {
              String s = input.readStringRequireUtf8();

              education_ = s;
              break;
            }
            case 74: {
              String s = input.readStringRequireUtf8();

              experience_ = s;
              break;
            }
            case 82: {
              String s = input.readStringRequireUtf8();

              chronicle_ = s;
              break;
            }
            case 90: {
              String s = input.readStringRequireUtf8();

              institutions_ = s;
              break;
            }
            case 98: {
              String s = input.readStringRequireUtf8();

              departments_ = s;
              break;
            }
            case 106: {
              String s = input.readStringRequireUtf8();

              positions_ = s;
              break;
            }
            case 114: {
              String s = input.readStringRequireUtf8();

              languages_ = s;
              break;
            }
            case 122: {
              String s = input.readStringRequireUtf8();

              nationality_ = s;
              break;
            }
            case 130: {
              String s = input.readStringRequireUtf8();

              directions_ = s;
              break;
            }
            case 138: {
              String s = input.readStringRequireUtf8();

              researchFields_ = s;
              break;
            }
            case 146: {
              String s = input.readStringRequireUtf8();

              projects_ = s;
              break;
            }
            case 154: {
              String s = input.readStringRequireUtf8();

              honor_ = s;
              break;
            }
            case 162: {
              String s = input.readStringRequireUtf8();

              religions_ = s;
              break;
            }
            case 170: {
              String s = input.readStringRequireUtf8();

              introduction_ = s;
              break;
            }
            case 178: {
              String s = input.readStringRequireUtf8();

              updateTime_ = s;
              break;
            }
            case 186: {
              String s = input.readStringRequireUtf8();

              remarks_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return Person.internal_static_PersonInfo_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return Person.internal_static_PersonInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              PersonInfo.class, Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private volatile Object id_;
    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    public String getId() {
      Object ref = id_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    public com.google.protobuf.ByteString
        getIdBytes() {
      Object ref = id_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

    public static final int PHOTO_FIELD_NUMBER = 3;
    private volatile Object photo_;
    /**
     * <code>string photo = 3;</code>
     * @return The photo.
     */
    public String getPhoto() {
      Object ref = photo_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        photo_ = s;
        return s;
      }
    }
    /**
     * <code>string photo = 3;</code>
     * @return The bytes for photo.
     */
    public com.google.protobuf.ByteString
        getPhotoBytes() {
      Object ref = photo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        photo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FOREIGNNAME_FIELD_NUMBER = 4;
    private volatile Object foreignName_;
    /**
     * <code>string foreignName = 4;</code>
     * @return The foreignName.
     */
    public String getForeignName() {
      Object ref = foreignName_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        foreignName_ = s;
        return s;
      }
    }
    /**
     * <code>string foreignName = 4;</code>
     * @return The bytes for foreignName.
     */
    public com.google.protobuf.ByteString
        getForeignNameBytes() {
      Object ref = foreignName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        foreignName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEX_FIELD_NUMBER = 5;
    private volatile Object sex_;
    /**
     * <code>string sex = 5;</code>
     * @return The sex.
     */
    public String getSex() {
      Object ref = sex_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        sex_ = s;
        return s;
      }
    }
    /**
     * <code>string sex = 5;</code>
     * @return The bytes for sex.
     */
    public com.google.protobuf.ByteString
        getSexBytes() {
      Object ref = sex_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        sex_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOURCE_FIELD_NUMBER = 6;
    private volatile Object source_;
    /**
     * <code>string source = 6;</code>
     * @return The source.
     */
    public String getSource() {
      Object ref = source_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        source_ = s;
        return s;
      }
    }
    /**
     * <code>string source = 6;</code>
     * @return The bytes for source.
     */
    public com.google.protobuf.ByteString
        getSourceBytes() {
      Object ref = source_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        source_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BIRTHDAY_FIELD_NUMBER = 7;
    private volatile Object birthday_;
    /**
     * <code>string birthday = 7;</code>
     * @return The birthday.
     */
    public String getBirthday() {
      Object ref = birthday_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        birthday_ = s;
        return s;
      }
    }
    /**
     * <code>string birthday = 7;</code>
     * @return The bytes for birthday.
     */
    public com.google.protobuf.ByteString
        getBirthdayBytes() {
      Object ref = birthday_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        birthday_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EDUCATION_FIELD_NUMBER = 8;
    private volatile Object education_;
    /**
     * <code>string education = 8;</code>
     * @return The education.
     */
    public String getEducation() {
      Object ref = education_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        education_ = s;
        return s;
      }
    }
    /**
     * <code>string education = 8;</code>
     * @return The bytes for education.
     */
    public com.google.protobuf.ByteString
        getEducationBytes() {
      Object ref = education_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        education_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXPERIENCE_FIELD_NUMBER = 9;
    private volatile Object experience_;
    /**
     * <code>string experience = 9;</code>
     * @return The experience.
     */
    public String getExperience() {
      Object ref = experience_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        experience_ = s;
        return s;
      }
    }
    /**
     * <code>string experience = 9;</code>
     * @return The bytes for experience.
     */
    public com.google.protobuf.ByteString
        getExperienceBytes() {
      Object ref = experience_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        experience_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CHRONICLE_FIELD_NUMBER = 10;
    private volatile Object chronicle_;
    /**
     * <code>string chronicle = 10;</code>
     * @return The chronicle.
     */
    public String getChronicle() {
      Object ref = chronicle_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        chronicle_ = s;
        return s;
      }
    }
    /**
     * <code>string chronicle = 10;</code>
     * @return The bytes for chronicle.
     */
    public com.google.protobuf.ByteString
        getChronicleBytes() {
      Object ref = chronicle_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        chronicle_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INSTITUTIONS_FIELD_NUMBER = 11;
    private volatile Object institutions_;
    /**
     * <code>string institutions = 11;</code>
     * @return The institutions.
     */
    public String getInstitutions() {
      Object ref = institutions_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        institutions_ = s;
        return s;
      }
    }
    /**
     * <code>string institutions = 11;</code>
     * @return The bytes for institutions.
     */
    public com.google.protobuf.ByteString
        getInstitutionsBytes() {
      Object ref = institutions_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        institutions_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEPARTMENTS_FIELD_NUMBER = 12;
    private volatile Object departments_;
    /**
     * <code>string departments = 12;</code>
     * @return The departments.
     */
    public String getDepartments() {
      Object ref = departments_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        departments_ = s;
        return s;
      }
    }
    /**
     * <code>string departments = 12;</code>
     * @return The bytes for departments.
     */
    public com.google.protobuf.ByteString
        getDepartmentsBytes() {
      Object ref = departments_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        departments_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int POSITIONS_FIELD_NUMBER = 13;
    private volatile Object positions_;
    /**
     * <code>string positions = 13;</code>
     * @return The positions.
     */
    public String getPositions() {
      Object ref = positions_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        positions_ = s;
        return s;
      }
    }
    /**
     * <code>string positions = 13;</code>
     * @return The bytes for positions.
     */
    public com.google.protobuf.ByteString
        getPositionsBytes() {
      Object ref = positions_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        positions_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LANGUAGES_FIELD_NUMBER = 14;
    private volatile Object languages_;
    /**
     * <code>string languages = 14;</code>
     * @return The languages.
     */
    public String getLanguages() {
      Object ref = languages_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        languages_ = s;
        return s;
      }
    }
    /**
     * <code>string languages = 14;</code>
     * @return The bytes for languages.
     */
    public com.google.protobuf.ByteString
        getLanguagesBytes() {
      Object ref = languages_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        languages_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NATIONALITY_FIELD_NUMBER = 15;
    private volatile Object nationality_;
    /**
     * <code>string nationality = 15;</code>
     * @return The nationality.
     */
    public String getNationality() {
      Object ref = nationality_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        nationality_ = s;
        return s;
      }
    }
    /**
     * <code>string nationality = 15;</code>
     * @return The bytes for nationality.
     */
    public com.google.protobuf.ByteString
        getNationalityBytes() {
      Object ref = nationality_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        nationality_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DIRECTIONS_FIELD_NUMBER = 16;
    private volatile Object directions_;
    /**
     * <code>string directions = 16;</code>
     * @return The directions.
     */
    public String getDirections() {
      Object ref = directions_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        directions_ = s;
        return s;
      }
    }
    /**
     * <code>string directions = 16;</code>
     * @return The bytes for directions.
     */
    public com.google.protobuf.ByteString
        getDirectionsBytes() {
      Object ref = directions_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        directions_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESEARCHFIELDS_FIELD_NUMBER = 17;
    private volatile Object researchFields_;
    /**
     * <code>string researchFields = 17;</code>
     * @return The researchFields.
     */
    public String getResearchFields() {
      Object ref = researchFields_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        researchFields_ = s;
        return s;
      }
    }
    /**
     * <code>string researchFields = 17;</code>
     * @return The bytes for researchFields.
     */
    public com.google.protobuf.ByteString
        getResearchFieldsBytes() {
      Object ref = researchFields_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        researchFields_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROJECTS_FIELD_NUMBER = 18;
    private volatile Object projects_;
    /**
     * <code>string projects = 18;</code>
     * @return The projects.
     */
    public String getProjects() {
      Object ref = projects_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        projects_ = s;
        return s;
      }
    }
    /**
     * <code>string projects = 18;</code>
     * @return The bytes for projects.
     */
    public com.google.protobuf.ByteString
        getProjectsBytes() {
      Object ref = projects_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        projects_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HONOR_FIELD_NUMBER = 19;
    private volatile Object honor_;
    /**
     * <code>string honor = 19;</code>
     * @return The honor.
     */
    public String getHonor() {
      Object ref = honor_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        honor_ = s;
        return s;
      }
    }
    /**
     * <code>string honor = 19;</code>
     * @return The bytes for honor.
     */
    public com.google.protobuf.ByteString
        getHonorBytes() {
      Object ref = honor_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        honor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RELIGIONS_FIELD_NUMBER = 20;
    private volatile Object religions_;
    /**
     * <code>string religions = 20;</code>
     * @return The religions.
     */
    public String getReligions() {
      Object ref = religions_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        religions_ = s;
        return s;
      }
    }
    /**
     * <code>string religions = 20;</code>
     * @return The bytes for religions.
     */
    public com.google.protobuf.ByteString
        getReligionsBytes() {
      Object ref = religions_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        religions_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INTRODUCTION_FIELD_NUMBER = 21;
    private volatile Object introduction_;
    /**
     * <code>string introduction = 21;</code>
     * @return The introduction.
     */
    public String getIntroduction() {
      Object ref = introduction_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        introduction_ = s;
        return s;
      }
    }
    /**
     * <code>string introduction = 21;</code>
     * @return The bytes for introduction.
     */
    public com.google.protobuf.ByteString
        getIntroductionBytes() {
      Object ref = introduction_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        introduction_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int UPDATETIME_FIELD_NUMBER = 22;
    private volatile Object updateTime_;
    /**
     * <code>string updateTime = 22;</code>
     * @return The updateTime.
     */
    public String getUpdateTime() {
      Object ref = updateTime_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        updateTime_ = s;
        return s;
      }
    }
    /**
     * <code>string updateTime = 22;</code>
     * @return The bytes for updateTime.
     */
    public com.google.protobuf.ByteString
        getUpdateTimeBytes() {
      Object ref = updateTime_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        updateTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REMARKS_FIELD_NUMBER = 23;
    private volatile Object remarks_;
    /**
     * <code>string remarks = 23;</code>
     * @return The remarks.
     */
    public String getRemarks() {
      Object ref = remarks_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        remarks_ = s;
        return s;
      }
    }
    /**
     * <code>string remarks = 23;</code>
     * @return The bytes for remarks.
     */
    public com.google.protobuf.ByteString
        getRemarksBytes() {
      Object ref = remarks_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        remarks_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (!getPhotoBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, photo_);
      }
      if (!getForeignNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, foreignName_);
      }
      if (!getSexBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, sex_);
      }
      if (!getSourceBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, source_);
      }
      if (!getBirthdayBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, birthday_);
      }
      if (!getEducationBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, education_);
      }
      if (!getExperienceBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, experience_);
      }
      if (!getChronicleBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, chronicle_);
      }
      if (!getInstitutionsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, institutions_);
      }
      if (!getDepartmentsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, departments_);
      }
      if (!getPositionsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, positions_);
      }
      if (!getLanguagesBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, languages_);
      }
      if (!getNationalityBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, nationality_);
      }
      if (!getDirectionsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, directions_);
      }
      if (!getResearchFieldsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, researchFields_);
      }
      if (!getProjectsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, projects_);
      }
      if (!getHonorBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 19, honor_);
      }
      if (!getReligionsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, religions_);
      }
      if (!getIntroductionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 21, introduction_);
      }
      if (!getUpdateTimeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 22, updateTime_);
      }
      if (!getRemarksBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 23, remarks_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (!getPhotoBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, photo_);
      }
      if (!getForeignNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, foreignName_);
      }
      if (!getSexBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, sex_);
      }
      if (!getSourceBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, source_);
      }
      if (!getBirthdayBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, birthday_);
      }
      if (!getEducationBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, education_);
      }
      if (!getExperienceBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, experience_);
      }
      if (!getChronicleBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, chronicle_);
      }
      if (!getInstitutionsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, institutions_);
      }
      if (!getDepartmentsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, departments_);
      }
      if (!getPositionsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, positions_);
      }
      if (!getLanguagesBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, languages_);
      }
      if (!getNationalityBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, nationality_);
      }
      if (!getDirectionsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, directions_);
      }
      if (!getResearchFieldsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, researchFields_);
      }
      if (!getProjectsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, projects_);
      }
      if (!getHonorBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, honor_);
      }
      if (!getReligionsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, religions_);
      }
      if (!getIntroductionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, introduction_);
      }
      if (!getUpdateTimeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, updateTime_);
      }
      if (!getRemarksBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, remarks_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof PersonInfo)) {
        return super.equals(obj);
      }
      PersonInfo other = (PersonInfo) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getPhoto()
          .equals(other.getPhoto())) return false;
      if (!getForeignName()
          .equals(other.getForeignName())) return false;
      if (!getSex()
          .equals(other.getSex())) return false;
      if (!getSource()
          .equals(other.getSource())) return false;
      if (!getBirthday()
          .equals(other.getBirthday())) return false;
      if (!getEducation()
          .equals(other.getEducation())) return false;
      if (!getExperience()
          .equals(other.getExperience())) return false;
      if (!getChronicle()
          .equals(other.getChronicle())) return false;
      if (!getInstitutions()
          .equals(other.getInstitutions())) return false;
      if (!getDepartments()
          .equals(other.getDepartments())) return false;
      if (!getPositions()
          .equals(other.getPositions())) return false;
      if (!getLanguages()
          .equals(other.getLanguages())) return false;
      if (!getNationality()
          .equals(other.getNationality())) return false;
      if (!getDirections()
          .equals(other.getDirections())) return false;
      if (!getResearchFields()
          .equals(other.getResearchFields())) return false;
      if (!getProjects()
          .equals(other.getProjects())) return false;
      if (!getHonor()
          .equals(other.getHonor())) return false;
      if (!getReligions()
          .equals(other.getReligions())) return false;
      if (!getIntroduction()
          .equals(other.getIntroduction())) return false;
      if (!getUpdateTime()
          .equals(other.getUpdateTime())) return false;
      if (!getRemarks()
          .equals(other.getRemarks())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + PHOTO_FIELD_NUMBER;
      hash = (53 * hash) + getPhoto().hashCode();
      hash = (37 * hash) + FOREIGNNAME_FIELD_NUMBER;
      hash = (53 * hash) + getForeignName().hashCode();
      hash = (37 * hash) + SEX_FIELD_NUMBER;
      hash = (53 * hash) + getSex().hashCode();
      hash = (37 * hash) + SOURCE_FIELD_NUMBER;
      hash = (53 * hash) + getSource().hashCode();
      hash = (37 * hash) + BIRTHDAY_FIELD_NUMBER;
      hash = (53 * hash) + getBirthday().hashCode();
      hash = (37 * hash) + EDUCATION_FIELD_NUMBER;
      hash = (53 * hash) + getEducation().hashCode();
      hash = (37 * hash) + EXPERIENCE_FIELD_NUMBER;
      hash = (53 * hash) + getExperience().hashCode();
      hash = (37 * hash) + CHRONICLE_FIELD_NUMBER;
      hash = (53 * hash) + getChronicle().hashCode();
      hash = (37 * hash) + INSTITUTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getInstitutions().hashCode();
      hash = (37 * hash) + DEPARTMENTS_FIELD_NUMBER;
      hash = (53 * hash) + getDepartments().hashCode();
      hash = (37 * hash) + POSITIONS_FIELD_NUMBER;
      hash = (53 * hash) + getPositions().hashCode();
      hash = (37 * hash) + LANGUAGES_FIELD_NUMBER;
      hash = (53 * hash) + getLanguages().hashCode();
      hash = (37 * hash) + NATIONALITY_FIELD_NUMBER;
      hash = (53 * hash) + getNationality().hashCode();
      hash = (37 * hash) + DIRECTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getDirections().hashCode();
      hash = (37 * hash) + RESEARCHFIELDS_FIELD_NUMBER;
      hash = (53 * hash) + getResearchFields().hashCode();
      hash = (37 * hash) + PROJECTS_FIELD_NUMBER;
      hash = (53 * hash) + getProjects().hashCode();
      hash = (37 * hash) + HONOR_FIELD_NUMBER;
      hash = (53 * hash) + getHonor().hashCode();
      hash = (37 * hash) + RELIGIONS_FIELD_NUMBER;
      hash = (53 * hash) + getReligions().hashCode();
      hash = (37 * hash) + INTRODUCTION_FIELD_NUMBER;
      hash = (53 * hash) + getIntroduction().hashCode();
      hash = (37 * hash) + UPDATETIME_FIELD_NUMBER;
      hash = (53 * hash) + getUpdateTime().hashCode();
      hash = (37 * hash) + REMARKS_FIELD_NUMBER;
      hash = (53 * hash) + getRemarks().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static PersonInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static PersonInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static PersonInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static PersonInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static PersonInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static PersonInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static PersonInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static PersonInfo 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 PersonInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static PersonInfo 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 PersonInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static PersonInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(PersonInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PersonInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PersonInfo)
        PersonInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Person.internal_static_PersonInfo_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Person.internal_static_PersonInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                PersonInfo.class, Builder.class);
      }

      // Construct using Person.PersonInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        name_ = "";

        photo_ = "";

        foreignName_ = "";

        sex_ = "";

        source_ = "";

        birthday_ = "";

        education_ = "";

        experience_ = "";

        chronicle_ = "";

        institutions_ = "";

        departments_ = "";

        positions_ = "";

        languages_ = "";

        nationality_ = "";

        directions_ = "";

        researchFields_ = "";

        projects_ = "";

        honor_ = "";

        religions_ = "";

        introduction_ = "";

        updateTime_ = "";

        remarks_ = "";

        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return Person.internal_static_PersonInfo_descriptor;
      }

      @Override
      public PersonInfo getDefaultInstanceForType() {
        return PersonInfo.getDefaultInstance();
      }

      @Override
      public PersonInfo build() {
        PersonInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public PersonInfo buildPartial() {
        PersonInfo result = new PersonInfo(this);
        result.id_ = id_;
        result.name_ = name_;
        result.photo_ = photo_;
        result.foreignName_ = foreignName_;
        result.sex_ = sex_;
        result.source_ = source_;
        result.birthday_ = birthday_;
        result.education_ = education_;
        result.experience_ = experience_;
        result.chronicle_ = chronicle_;
        result.institutions_ = institutions_;
        result.departments_ = departments_;
        result.positions_ = positions_;
        result.languages_ = languages_;
        result.nationality_ = nationality_;
        result.directions_ = directions_;
        result.researchFields_ = researchFields_;
        result.projects_ = projects_;
        result.honor_ = honor_;
        result.religions_ = religions_;
        result.introduction_ = introduction_;
        result.updateTime_ = updateTime_;
        result.remarks_ = remarks_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(PersonInfo other) {
        if (other == PersonInfo.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getPhoto().isEmpty()) {
          photo_ = other.photo_;
          onChanged();
        }
        if (!other.getForeignName().isEmpty()) {
          foreignName_ = other.foreignName_;
          onChanged();
        }
        if (!other.getSex().isEmpty()) {
          sex_ = other.sex_;
          onChanged();
        }
        if (!other.getSource().isEmpty()) {
          source_ = other.source_;
          onChanged();
        }
        if (!other.getBirthday().isEmpty()) {
          birthday_ = other.birthday_;
          onChanged();
        }
        if (!other.getEducation().isEmpty()) {
          education_ = other.education_;
          onChanged();
        }
        if (!other.getExperience().isEmpty()) {
          experience_ = other.experience_;
          onChanged();
        }
        if (!other.getChronicle().isEmpty()) {
          chronicle_ = other.chronicle_;
          onChanged();
        }
        if (!other.getInstitutions().isEmpty()) {
          institutions_ = other.institutions_;
          onChanged();
        }
        if (!other.getDepartments().isEmpty()) {
          departments_ = other.departments_;
          onChanged();
        }
        if (!other.getPositions().isEmpty()) {
          positions_ = other.positions_;
          onChanged();
        }
        if (!other.getLanguages().isEmpty()) {
          languages_ = other.languages_;
          onChanged();
        }
        if (!other.getNationality().isEmpty()) {
          nationality_ = other.nationality_;
          onChanged();
        }
        if (!other.getDirections().isEmpty()) {
          directions_ = other.directions_;
          onChanged();
        }
        if (!other.getResearchFields().isEmpty()) {
          researchFields_ = other.researchFields_;
          onChanged();
        }
        if (!other.getProjects().isEmpty()) {
          projects_ = other.projects_;
          onChanged();
        }
        if (!other.getHonor().isEmpty()) {
          honor_ = other.honor_;
          onChanged();
        }
        if (!other.getReligions().isEmpty()) {
          religions_ = other.religions_;
          onChanged();
        }
        if (!other.getIntroduction().isEmpty()) {
          introduction_ = other.introduction_;
          onChanged();
        }
        if (!other.getUpdateTime().isEmpty()) {
          updateTime_ = other.updateTime_;
          onChanged();
        }
        if (!other.getRemarks().isEmpty()) {
          remarks_ = other.remarks_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private Object id_ = "";
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The id.
       */
      public String getId() {
        Object ref = id_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }

      private Object name_ = "";
      /**
       * <code>string name = 2;</code>
       * @return The name.
       */
      public String getName() {
        Object ref = name_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string name = 2;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>string name = 2;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private Object photo_ = "";
      /**
       * <code>string photo = 3;</code>
       * @return The photo.
       */
      public String getPhoto() {
        Object ref = photo_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          photo_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string photo = 3;</code>
       * @return The bytes for photo.
       */
      public com.google.protobuf.ByteString
          getPhotoBytes() {
        Object ref = photo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          photo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string photo = 3;</code>
       * @param value The photo to set.
       * @return This builder for chaining.
       */
      public Builder setPhoto(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        photo_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string photo = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPhoto() {
        
        photo_ = getDefaultInstance().getPhoto();
        onChanged();
        return this;
      }
      /**
       * <code>string photo = 3;</code>
       * @param value The bytes for photo to set.
       * @return This builder for chaining.
       */
      public Builder setPhotoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        photo_ = value;
        onChanged();
        return this;
      }

      private Object foreignName_ = "";
      /**
       * <code>string foreignName = 4;</code>
       * @return The foreignName.
       */
      public String getForeignName() {
        Object ref = foreignName_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          foreignName_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string foreignName = 4;</code>
       * @return The bytes for foreignName.
       */
      public com.google.protobuf.ByteString
          getForeignNameBytes() {
        Object ref = foreignName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          foreignName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string foreignName = 4;</code>
       * @param value The foreignName to set.
       * @return This builder for chaining.
       */
      public Builder setForeignName(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        foreignName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string foreignName = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearForeignName() {
        
        foreignName_ = getDefaultInstance().getForeignName();
        onChanged();
        return this;
      }
      /**
       * <code>string foreignName = 4;</code>
       * @param value The bytes for foreignName to set.
       * @return This builder for chaining.
       */
      public Builder setForeignNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        foreignName_ = value;
        onChanged();
        return this;
      }

      private Object sex_ = "";
      /**
       * <code>string sex = 5;</code>
       * @return The sex.
       */
      public String getSex() {
        Object ref = sex_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          sex_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string sex = 5;</code>
       * @return The bytes for sex.
       */
      public com.google.protobuf.ByteString
          getSexBytes() {
        Object ref = sex_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          sex_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string sex = 5;</code>
       * @param value The sex to set.
       * @return This builder for chaining.
       */
      public Builder setSex(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string sex = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSex() {
        
        sex_ = getDefaultInstance().getSex();
        onChanged();
        return this;
      }
      /**
       * <code>string sex = 5;</code>
       * @param value The bytes for sex to set.
       * @return This builder for chaining.
       */
      public Builder setSexBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        sex_ = value;
        onChanged();
        return this;
      }

      private Object source_ = "";
      /**
       * <code>string source = 6;</code>
       * @return The source.
       */
      public String getSource() {
        Object ref = source_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          source_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string source = 6;</code>
       * @return The bytes for source.
       */
      public com.google.protobuf.ByteString
          getSourceBytes() {
        Object ref = source_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          source_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string source = 6;</code>
       * @param value The source to set.
       * @return This builder for chaining.
       */
      public Builder setSource(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        source_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string source = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearSource() {
        
        source_ = getDefaultInstance().getSource();
        onChanged();
        return this;
      }
      /**
       * <code>string source = 6;</code>
       * @param value The bytes for source to set.
       * @return This builder for chaining.
       */
      public Builder setSourceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        source_ = value;
        onChanged();
        return this;
      }

      private Object birthday_ = "";
      /**
       * <code>string birthday = 7;</code>
       * @return The birthday.
       */
      public String getBirthday() {
        Object ref = birthday_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          birthday_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string birthday = 7;</code>
       * @return The bytes for birthday.
       */
      public com.google.protobuf.ByteString
          getBirthdayBytes() {
        Object ref = birthday_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          birthday_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string birthday = 7;</code>
       * @param value The birthday to set.
       * @return This builder for chaining.
       */
      public Builder setBirthday(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        birthday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string birthday = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearBirthday() {
        
        birthday_ = getDefaultInstance().getBirthday();
        onChanged();
        return this;
      }
      /**
       * <code>string birthday = 7;</code>
       * @param value The bytes for birthday to set.
       * @return This builder for chaining.
       */
      public Builder setBirthdayBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        birthday_ = value;
        onChanged();
        return this;
      }

      private Object education_ = "";
      /**
       * <code>string education = 8;</code>
       * @return The education.
       */
      public String getEducation() {
        Object ref = education_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          education_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string education = 8;</code>
       * @return The bytes for education.
       */
      public com.google.protobuf.ByteString
          getEducationBytes() {
        Object ref = education_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          education_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string education = 8;</code>
       * @param value The education to set.
       * @return This builder for chaining.
       */
      public Builder setEducation(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        education_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string education = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearEducation() {
        
        education_ = getDefaultInstance().getEducation();
        onChanged();
        return this;
      }
      /**
       * <code>string education = 8;</code>
       * @param value The bytes for education to set.
       * @return This builder for chaining.
       */
      public Builder setEducationBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        education_ = value;
        onChanged();
        return this;
      }

      private Object experience_ = "";
      /**
       * <code>string experience = 9;</code>
       * @return The experience.
       */
      public String getExperience() {
        Object ref = experience_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          experience_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string experience = 9;</code>
       * @return The bytes for experience.
       */
      public com.google.protobuf.ByteString
          getExperienceBytes() {
        Object ref = experience_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          experience_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string experience = 9;</code>
       * @param value The experience to set.
       * @return This builder for chaining.
       */
      public Builder setExperience(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        experience_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string experience = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearExperience() {
        
        experience_ = getDefaultInstance().getExperience();
        onChanged();
        return this;
      }
      /**
       * <code>string experience = 9;</code>
       * @param value The bytes for experience to set.
       * @return This builder for chaining.
       */
      public Builder setExperienceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        experience_ = value;
        onChanged();
        return this;
      }

      private Object chronicle_ = "";
      /**
       * <code>string chronicle = 10;</code>
       * @return The chronicle.
       */
      public String getChronicle() {
        Object ref = chronicle_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          chronicle_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string chronicle = 10;</code>
       * @return The bytes for chronicle.
       */
      public com.google.protobuf.ByteString
          getChronicleBytes() {
        Object ref = chronicle_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          chronicle_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string chronicle = 10;</code>
       * @param value The chronicle to set.
       * @return This builder for chaining.
       */
      public Builder setChronicle(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        chronicle_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string chronicle = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearChronicle() {
        
        chronicle_ = getDefaultInstance().getChronicle();
        onChanged();
        return this;
      }
      /**
       * <code>string chronicle = 10;</code>
       * @param value The bytes for chronicle to set.
       * @return This builder for chaining.
       */
      public Builder setChronicleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        chronicle_ = value;
        onChanged();
        return this;
      }

      private Object institutions_ = "";
      /**
       * <code>string institutions = 11;</code>
       * @return The institutions.
       */
      public String getInstitutions() {
        Object ref = institutions_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          institutions_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string institutions = 11;</code>
       * @return The bytes for institutions.
       */
      public com.google.protobuf.ByteString
          getInstitutionsBytes() {
        Object ref = institutions_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          institutions_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string institutions = 11;</code>
       * @param value The institutions to set.
       * @return This builder for chaining.
       */
      public Builder setInstitutions(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        institutions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string institutions = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearInstitutions() {
        
        institutions_ = getDefaultInstance().getInstitutions();
        onChanged();
        return this;
      }
      /**
       * <code>string institutions = 11;</code>
       * @param value The bytes for institutions to set.
       * @return This builder for chaining.
       */
      public Builder setInstitutionsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        institutions_ = value;
        onChanged();
        return this;
      }

      private Object departments_ = "";
      /**
       * <code>string departments = 12;</code>
       * @return The departments.
       */
      public String getDepartments() {
        Object ref = departments_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          departments_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string departments = 12;</code>
       * @return The bytes for departments.
       */
      public com.google.protobuf.ByteString
          getDepartmentsBytes() {
        Object ref = departments_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          departments_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string departments = 12;</code>
       * @param value The departments to set.
       * @return This builder for chaining.
       */
      public Builder setDepartments(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        departments_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string departments = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearDepartments() {
        
        departments_ = getDefaultInstance().getDepartments();
        onChanged();
        return this;
      }
      /**
       * <code>string departments = 12;</code>
       * @param value The bytes for departments to set.
       * @return This builder for chaining.
       */
      public Builder setDepartmentsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        departments_ = value;
        onChanged();
        return this;
      }

      private Object positions_ = "";
      /**
       * <code>string positions = 13;</code>
       * @return The positions.
       */
      public String getPositions() {
        Object ref = positions_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          positions_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string positions = 13;</code>
       * @return The bytes for positions.
       */
      public com.google.protobuf.ByteString
          getPositionsBytes() {
        Object ref = positions_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          positions_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string positions = 13;</code>
       * @param value The positions to set.
       * @return This builder for chaining.
       */
      public Builder setPositions(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        positions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string positions = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearPositions() {
        
        positions_ = getDefaultInstance().getPositions();
        onChanged();
        return this;
      }
      /**
       * <code>string positions = 13;</code>
       * @param value The bytes for positions to set.
       * @return This builder for chaining.
       */
      public Builder setPositionsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        positions_ = value;
        onChanged();
        return this;
      }

      private Object languages_ = "";
      /**
       * <code>string languages = 14;</code>
       * @return The languages.
       */
      public String getLanguages() {
        Object ref = languages_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          languages_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string languages = 14;</code>
       * @return The bytes for languages.
       */
      public com.google.protobuf.ByteString
          getLanguagesBytes() {
        Object ref = languages_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          languages_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string languages = 14;</code>
       * @param value The languages to set.
       * @return This builder for chaining.
       */
      public Builder setLanguages(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        languages_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string languages = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearLanguages() {
        
        languages_ = getDefaultInstance().getLanguages();
        onChanged();
        return this;
      }
      /**
       * <code>string languages = 14;</code>
       * @param value The bytes for languages to set.
       * @return This builder for chaining.
       */
      public Builder setLanguagesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        languages_ = value;
        onChanged();
        return this;
      }

      private Object nationality_ = "";
      /**
       * <code>string nationality = 15;</code>
       * @return The nationality.
       */
      public String getNationality() {
        Object ref = nationality_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          nationality_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string nationality = 15;</code>
       * @return The bytes for nationality.
       */
      public com.google.protobuf.ByteString
          getNationalityBytes() {
        Object ref = nationality_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          nationality_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string nationality = 15;</code>
       * @param value The nationality to set.
       * @return This builder for chaining.
       */
      public Builder setNationality(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nationality_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string nationality = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearNationality() {
        
        nationality_ = getDefaultInstance().getNationality();
        onChanged();
        return this;
      }
      /**
       * <code>string nationality = 15;</code>
       * @param value The bytes for nationality to set.
       * @return This builder for chaining.
       */
      public Builder setNationalityBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        nationality_ = value;
        onChanged();
        return this;
      }

      private Object directions_ = "";
      /**
       * <code>string directions = 16;</code>
       * @return The directions.
       */
      public String getDirections() {
        Object ref = directions_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          directions_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string directions = 16;</code>
       * @return The bytes for directions.
       */
      public com.google.protobuf.ByteString
          getDirectionsBytes() {
        Object ref = directions_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          directions_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string directions = 16;</code>
       * @param value The directions to set.
       * @return This builder for chaining.
       */
      public Builder setDirections(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        directions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string directions = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearDirections() {
        
        directions_ = getDefaultInstance().getDirections();
        onChanged();
        return this;
      }
      /**
       * <code>string directions = 16;</code>
       * @param value The bytes for directions to set.
       * @return This builder for chaining.
       */
      public Builder setDirectionsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        directions_ = value;
        onChanged();
        return this;
      }

      private Object researchFields_ = "";
      /**
       * <code>string researchFields = 17;</code>
       * @return The researchFields.
       */
      public String getResearchFields() {
        Object ref = researchFields_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          researchFields_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string researchFields = 17;</code>
       * @return The bytes for researchFields.
       */
      public com.google.protobuf.ByteString
          getResearchFieldsBytes() {
        Object ref = researchFields_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          researchFields_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string researchFields = 17;</code>
       * @param value The researchFields to set.
       * @return This builder for chaining.
       */
      public Builder setResearchFields(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        researchFields_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string researchFields = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearResearchFields() {
        
        researchFields_ = getDefaultInstance().getResearchFields();
        onChanged();
        return this;
      }
      /**
       * <code>string researchFields = 17;</code>
       * @param value The bytes for researchFields to set.
       * @return This builder for chaining.
       */
      public Builder setResearchFieldsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        researchFields_ = value;
        onChanged();
        return this;
      }

      private Object projects_ = "";
      /**
       * <code>string projects = 18;</code>
       * @return The projects.
       */
      public String getProjects() {
        Object ref = projects_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          projects_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string projects = 18;</code>
       * @return The bytes for projects.
       */
      public com.google.protobuf.ByteString
          getProjectsBytes() {
        Object ref = projects_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          projects_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string projects = 18;</code>
       * @param value The projects to set.
       * @return This builder for chaining.
       */
      public Builder setProjects(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        projects_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string projects = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearProjects() {
        
        projects_ = getDefaultInstance().getProjects();
        onChanged();
        return this;
      }
      /**
       * <code>string projects = 18;</code>
       * @param value The bytes for projects to set.
       * @return This builder for chaining.
       */
      public Builder setProjectsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        projects_ = value;
        onChanged();
        return this;
      }

      private Object honor_ = "";
      /**
       * <code>string honor = 19;</code>
       * @return The honor.
       */
      public String getHonor() {
        Object ref = honor_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          honor_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string honor = 19;</code>
       * @return The bytes for honor.
       */
      public com.google.protobuf.ByteString
          getHonorBytes() {
        Object ref = honor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          honor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string honor = 19;</code>
       * @param value The honor to set.
       * @return This builder for chaining.
       */
      public Builder setHonor(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        honor_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string honor = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearHonor() {
        
        honor_ = getDefaultInstance().getHonor();
        onChanged();
        return this;
      }
      /**
       * <code>string honor = 19;</code>
       * @param value The bytes for honor to set.
       * @return This builder for chaining.
       */
      public Builder setHonorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        honor_ = value;
        onChanged();
        return this;
      }

      private Object religions_ = "";
      /**
       * <code>string religions = 20;</code>
       * @return The religions.
       */
      public String getReligions() {
        Object ref = religions_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          religions_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string religions = 20;</code>
       * @return The bytes for religions.
       */
      public com.google.protobuf.ByteString
          getReligionsBytes() {
        Object ref = religions_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          religions_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string religions = 20;</code>
       * @param value The religions to set.
       * @return This builder for chaining.
       */
      public Builder setReligions(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        religions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string religions = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearReligions() {
        
        religions_ = getDefaultInstance().getReligions();
        onChanged();
        return this;
      }
      /**
       * <code>string religions = 20;</code>
       * @param value The bytes for religions to set.
       * @return This builder for chaining.
       */
      public Builder setReligionsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        religions_ = value;
        onChanged();
        return this;
      }

      private Object introduction_ = "";
      /**
       * <code>string introduction = 21;</code>
       * @return The introduction.
       */
      public String getIntroduction() {
        Object ref = introduction_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          introduction_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string introduction = 21;</code>
       * @return The bytes for introduction.
       */
      public com.google.protobuf.ByteString
          getIntroductionBytes() {
        Object ref = introduction_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          introduction_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string introduction = 21;</code>
       * @param value The introduction to set.
       * @return This builder for chaining.
       */
      public Builder setIntroduction(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        introduction_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string introduction = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearIntroduction() {
        
        introduction_ = getDefaultInstance().getIntroduction();
        onChanged();
        return this;
      }
      /**
       * <code>string introduction = 21;</code>
       * @param value The bytes for introduction to set.
       * @return This builder for chaining.
       */
      public Builder setIntroductionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        introduction_ = value;
        onChanged();
        return this;
      }

      private Object updateTime_ = "";
      /**
       * <code>string updateTime = 22;</code>
       * @return The updateTime.
       */
      public String getUpdateTime() {
        Object ref = updateTime_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          updateTime_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string updateTime = 22;</code>
       * @return The bytes for updateTime.
       */
      public com.google.protobuf.ByteString
          getUpdateTimeBytes() {
        Object ref = updateTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          updateTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string updateTime = 22;</code>
       * @param value The updateTime to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateTime(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        updateTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string updateTime = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearUpdateTime() {
        
        updateTime_ = getDefaultInstance().getUpdateTime();
        onChanged();
        return this;
      }
      /**
       * <code>string updateTime = 22;</code>
       * @param value The bytes for updateTime to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        updateTime_ = value;
        onChanged();
        return this;
      }

      private Object remarks_ = "";
      /**
       * <code>string remarks = 23;</code>
       * @return The remarks.
       */
      public String getRemarks() {
        Object ref = remarks_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          remarks_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string remarks = 23;</code>
       * @return The bytes for remarks.
       */
      public com.google.protobuf.ByteString
          getRemarksBytes() {
        Object ref = remarks_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          remarks_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string remarks = 23;</code>
       * @param value The remarks to set.
       * @return This builder for chaining.
       */
      public Builder setRemarks(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        remarks_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string remarks = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemarks() {
        
        remarks_ = getDefaultInstance().getRemarks();
        onChanged();
        return this;
      }
      /**
       * <code>string remarks = 23;</code>
       * @param value The bytes for remarks to set.
       * @return This builder for chaining.
       */
      public Builder setRemarksBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        remarks_ = value;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:PersonInfo)
    }

    // @@protoc_insertion_point(class_scope:PersonInfo)
    private static final PersonInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new PersonInfo();
    }

    public static PersonInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @Override
    public PersonInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ContactInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ContactInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    String getId();
    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <code>string entityId = 2;</code>
     * @return The entityId.
     */
    String getEntityId();
    /**
     * <code>string entityId = 2;</code>
     * @return The bytes for entityId.
     */
    com.google.protobuf.ByteString
        getEntityIdBytes();

    /**
     * <code>string addresses = 3;</code>
     * @return The addresses.
     */
    String getAddresses();
    /**
     * <code>string addresses = 3;</code>
     * @return The bytes for addresses.
     */
    com.google.protobuf.ByteString
        getAddressesBytes();

    /**
     * <code>string phones = 4;</code>
     * @return The phones.
     */
    String getPhones();
    /**
     * <code>string phones = 4;</code>
     * @return The bytes for phones.
     */
    com.google.protobuf.ByteString
        getPhonesBytes();

    /**
     * <code>string emails = 5;</code>
     * @return The emails.
     */
    String getEmails();
    /**
     * <code>string emails = 5;</code>
     * @return The bytes for emails.
     */
    com.google.protobuf.ByteString
        getEmailsBytes();

    /**
     * <code>string Facebook = 6;</code>
     * @return The facebook.
     */
    String getFacebook();
    /**
     * <code>string Facebook = 6;</code>
     * @return The bytes for facebook.
     */
    com.google.protobuf.ByteString
        getFacebookBytes();

    /**
     * <code>string Twitter = 7;</code>
     * @return The twitter.
     */
    String getTwitter();
    /**
     * <code>string Twitter = 7;</code>
     * @return The bytes for twitter.
     */
    com.google.protobuf.ByteString
        getTwitterBytes();

    /**
     * <code>string LinkedIn = 8;</code>
     * @return The linkedIn.
     */
    String getLinkedIn();
    /**
     * <code>string LinkedIn = 8;</code>
     * @return The bytes for linkedIn.
     */
    com.google.protobuf.ByteString
        getLinkedInBytes();

    /**
     * <code>string Instagram = 9;</code>
     * @return The instagram.
     */
    String getInstagram();
    /**
     * <code>string Instagram = 9;</code>
     * @return The bytes for instagram.
     */
    com.google.protobuf.ByteString
        getInstagramBytes();

    /**
     * <code>string Youtube = 10;</code>
     * @return The youtube.
     */
    String getYoutube();
    /**
     * <code>string Youtube = 10;</code>
     * @return The bytes for youtube.
     */
    com.google.protobuf.ByteString
        getYoutubeBytes();

    /**
     * <code>string Fax = 11;</code>
     * @return The fax.
     */
    String getFax();
    /**
     * <code>string Fax = 11;</code>
     * @return The bytes for fax.
     */
    com.google.protobuf.ByteString
        getFaxBytes();

    /**
     * <code>string entityType = 12;</code>
     * @return The entityType.
     */
    String getEntityType();
    /**
     * <code>string entityType = 12;</code>
     * @return The bytes for entityType.
     */
    com.google.protobuf.ByteString
        getEntityTypeBytes();
  }
  /**
   * Protobuf type {@code ContactInfo}
   */
  public  static final class ContactInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ContactInfo)
      ContactInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ContactInfo.newBuilder() to construct.
    private ContactInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ContactInfo() {
      id_ = "";
      entityId_ = "";
      addresses_ = "";
      phones_ = "";
      emails_ = "";
      facebook_ = "";
      twitter_ = "";
      linkedIn_ = "";
      instagram_ = "";
      youtube_ = "";
      fax_ = "";
      entityType_ = "";
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new ContactInfo();
    }

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

              id_ = s;
              break;
            }
            case 18: {
              String s = input.readStringRequireUtf8();

              entityId_ = s;
              break;
            }
            case 26: {
              String s = input.readStringRequireUtf8();

              addresses_ = s;
              break;
            }
            case 34: {
              String s = input.readStringRequireUtf8();

              phones_ = s;
              break;
            }
            case 42: {
              String s = input.readStringRequireUtf8();

              emails_ = s;
              break;
            }
            case 50: {
              String s = input.readStringRequireUtf8();

              facebook_ = s;
              break;
            }
            case 58: {
              String s = input.readStringRequireUtf8();

              twitter_ = s;
              break;
            }
            case 66: {
              String s = input.readStringRequireUtf8();

              linkedIn_ = s;
              break;
            }
            case 74: {
              String s = input.readStringRequireUtf8();

              instagram_ = s;
              break;
            }
            case 82: {
              String s = input.readStringRequireUtf8();

              youtube_ = s;
              break;
            }
            case 90: {
              String s = input.readStringRequireUtf8();

              fax_ = s;
              break;
            }
            case 98: {
              String s = input.readStringRequireUtf8();

              entityType_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return Person.internal_static_ContactInfo_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return Person.internal_static_ContactInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ContactInfo.class, Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private volatile Object id_;
    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    public String getId() {
      Object ref = id_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *ID
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    public com.google.protobuf.ByteString
        getIdBytes() {
      Object ref = id_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENTITYID_FIELD_NUMBER = 2;
    private volatile Object entityId_;
    /**
     * <code>string entityId = 2;</code>
     * @return The entityId.
     */
    public String getEntityId() {
      Object ref = entityId_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        entityId_ = s;
        return s;
      }
    }
    /**
     * <code>string entityId = 2;</code>
     * @return The bytes for entityId.
     */
    public com.google.protobuf.ByteString
        getEntityIdBytes() {
      Object ref = entityId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        entityId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ADDRESSES_FIELD_NUMBER = 3;
    private volatile Object addresses_;
    /**
     * <code>string addresses = 3;</code>
     * @return The addresses.
     */
    public String getAddresses() {
      Object ref = addresses_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        addresses_ = s;
        return s;
      }
    }
    /**
     * <code>string addresses = 3;</code>
     * @return The bytes for addresses.
     */
    public com.google.protobuf.ByteString
        getAddressesBytes() {
      Object ref = addresses_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        addresses_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PHONES_FIELD_NUMBER = 4;
    private volatile Object phones_;
    /**
     * <code>string phones = 4;</code>
     * @return The phones.
     */
    public String getPhones() {
      Object ref = phones_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        phones_ = s;
        return s;
      }
    }
    /**
     * <code>string phones = 4;</code>
     * @return The bytes for phones.
     */
    public com.google.protobuf.ByteString
        getPhonesBytes() {
      Object ref = phones_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        phones_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EMAILS_FIELD_NUMBER = 5;
    private volatile Object emails_;
    /**
     * <code>string emails = 5;</code>
     * @return The emails.
     */
    public String getEmails() {
      Object ref = emails_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        emails_ = s;
        return s;
      }
    }
    /**
     * <code>string emails = 5;</code>
     * @return The bytes for emails.
     */
    public com.google.protobuf.ByteString
        getEmailsBytes() {
      Object ref = emails_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        emails_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FACEBOOK_FIELD_NUMBER = 6;
    private volatile Object facebook_;
    /**
     * <code>string Facebook = 6;</code>
     * @return The facebook.
     */
    public String getFacebook() {
      Object ref = facebook_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        facebook_ = s;
        return s;
      }
    }
    /**
     * <code>string Facebook = 6;</code>
     * @return The bytes for facebook.
     */
    public com.google.protobuf.ByteString
        getFacebookBytes() {
      Object ref = facebook_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        facebook_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TWITTER_FIELD_NUMBER = 7;
    private volatile Object twitter_;
    /**
     * <code>string Twitter = 7;</code>
     * @return The twitter.
     */
    public String getTwitter() {
      Object ref = twitter_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        twitter_ = s;
        return s;
      }
    }
    /**
     * <code>string Twitter = 7;</code>
     * @return The bytes for twitter.
     */
    public com.google.protobuf.ByteString
        getTwitterBytes() {
      Object ref = twitter_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        twitter_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LINKEDIN_FIELD_NUMBER = 8;
    private volatile Object linkedIn_;
    /**
     * <code>string LinkedIn = 8;</code>
     * @return The linkedIn.
     */
    public String getLinkedIn() {
      Object ref = linkedIn_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        linkedIn_ = s;
        return s;
      }
    }
    /**
     * <code>string LinkedIn = 8;</code>
     * @return The bytes for linkedIn.
     */
    public com.google.protobuf.ByteString
        getLinkedInBytes() {
      Object ref = linkedIn_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        linkedIn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INSTAGRAM_FIELD_NUMBER = 9;
    private volatile Object instagram_;
    /**
     * <code>string Instagram = 9;</code>
     * @return The instagram.
     */
    public String getInstagram() {
      Object ref = instagram_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        instagram_ = s;
        return s;
      }
    }
    /**
     * <code>string Instagram = 9;</code>
     * @return The bytes for instagram.
     */
    public com.google.protobuf.ByteString
        getInstagramBytes() {
      Object ref = instagram_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        instagram_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int YOUTUBE_FIELD_NUMBER = 10;
    private volatile Object youtube_;
    /**
     * <code>string Youtube = 10;</code>
     * @return The youtube.
     */
    public String getYoutube() {
      Object ref = youtube_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        youtube_ = s;
        return s;
      }
    }
    /**
     * <code>string Youtube = 10;</code>
     * @return The bytes for youtube.
     */
    public com.google.protobuf.ByteString
        getYoutubeBytes() {
      Object ref = youtube_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        youtube_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FAX_FIELD_NUMBER = 11;
    private volatile Object fax_;
    /**
     * <code>string Fax = 11;</code>
     * @return The fax.
     */
    public String getFax() {
      Object ref = fax_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        fax_ = s;
        return s;
      }
    }
    /**
     * <code>string Fax = 11;</code>
     * @return The bytes for fax.
     */
    public com.google.protobuf.ByteString
        getFaxBytes() {
      Object ref = fax_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        fax_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENTITYTYPE_FIELD_NUMBER = 12;
    private volatile Object entityType_;
    /**
     * <code>string entityType = 12;</code>
     * @return The entityType.
     */
    public String getEntityType() {
      Object ref = entityType_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        entityType_ = s;
        return s;
      }
    }
    /**
     * <code>string entityType = 12;</code>
     * @return The bytes for entityType.
     */
    public com.google.protobuf.ByteString
        getEntityTypeBytes() {
      Object ref = entityType_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        entityType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (!getEntityIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, entityId_);
      }
      if (!getAddressesBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, addresses_);
      }
      if (!getPhonesBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, phones_);
      }
      if (!getEmailsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, emails_);
      }
      if (!getFacebookBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, facebook_);
      }
      if (!getTwitterBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, twitter_);
      }
      if (!getLinkedInBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, linkedIn_);
      }
      if (!getInstagramBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, instagram_);
      }
      if (!getYoutubeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, youtube_);
      }
      if (!getFaxBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, fax_);
      }
      if (!getEntityTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, entityType_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (!getEntityIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, entityId_);
      }
      if (!getAddressesBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, addresses_);
      }
      if (!getPhonesBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, phones_);
      }
      if (!getEmailsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, emails_);
      }
      if (!getFacebookBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, facebook_);
      }
      if (!getTwitterBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, twitter_);
      }
      if (!getLinkedInBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, linkedIn_);
      }
      if (!getInstagramBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, instagram_);
      }
      if (!getYoutubeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, youtube_);
      }
      if (!getFaxBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, fax_);
      }
      if (!getEntityTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, entityType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ContactInfo)) {
        return super.equals(obj);
      }
      ContactInfo other = (ContactInfo) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (!getEntityId()
          .equals(other.getEntityId())) return false;
      if (!getAddresses()
          .equals(other.getAddresses())) return false;
      if (!getPhones()
          .equals(other.getPhones())) return false;
      if (!getEmails()
          .equals(other.getEmails())) return false;
      if (!getFacebook()
          .equals(other.getFacebook())) return false;
      if (!getTwitter()
          .equals(other.getTwitter())) return false;
      if (!getLinkedIn()
          .equals(other.getLinkedIn())) return false;
      if (!getInstagram()
          .equals(other.getInstagram())) return false;
      if (!getYoutube()
          .equals(other.getYoutube())) return false;
      if (!getFax()
          .equals(other.getFax())) return false;
      if (!getEntityType()
          .equals(other.getEntityType())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
      hash = (53 * hash) + getEntityId().hashCode();
      hash = (37 * hash) + ADDRESSES_FIELD_NUMBER;
      hash = (53 * hash) + getAddresses().hashCode();
      hash = (37 * hash) + PHONES_FIELD_NUMBER;
      hash = (53 * hash) + getPhones().hashCode();
      hash = (37 * hash) + EMAILS_FIELD_NUMBER;
      hash = (53 * hash) + getEmails().hashCode();
      hash = (37 * hash) + FACEBOOK_FIELD_NUMBER;
      hash = (53 * hash) + getFacebook().hashCode();
      hash = (37 * hash) + TWITTER_FIELD_NUMBER;
      hash = (53 * hash) + getTwitter().hashCode();
      hash = (37 * hash) + LINKEDIN_FIELD_NUMBER;
      hash = (53 * hash) + getLinkedIn().hashCode();
      hash = (37 * hash) + INSTAGRAM_FIELD_NUMBER;
      hash = (53 * hash) + getInstagram().hashCode();
      hash = (37 * hash) + YOUTUBE_FIELD_NUMBER;
      hash = (53 * hash) + getYoutube().hashCode();
      hash = (37 * hash) + FAX_FIELD_NUMBER;
      hash = (53 * hash) + getFax().hashCode();
      hash = (37 * hash) + ENTITYTYPE_FIELD_NUMBER;
      hash = (53 * hash) + getEntityType().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ContactInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ContactInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ContactInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ContactInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ContactInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ContactInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ContactInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ContactInfo 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 ContactInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ContactInfo 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 ContactInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ContactInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ContactInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ContactInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ContactInfo)
        ContactInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Person.internal_static_ContactInfo_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Person.internal_static_ContactInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ContactInfo.class, Builder.class);
      }

      // Construct using Person.ContactInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        entityId_ = "";

        addresses_ = "";

        phones_ = "";

        emails_ = "";

        facebook_ = "";

        twitter_ = "";

        linkedIn_ = "";

        instagram_ = "";

        youtube_ = "";

        fax_ = "";

        entityType_ = "";

        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return Person.internal_static_ContactInfo_descriptor;
      }

      @Override
      public ContactInfo getDefaultInstanceForType() {
        return ContactInfo.getDefaultInstance();
      }

      @Override
      public ContactInfo build() {
        ContactInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public ContactInfo buildPartial() {
        ContactInfo result = new ContactInfo(this);
        result.id_ = id_;
        result.entityId_ = entityId_;
        result.addresses_ = addresses_;
        result.phones_ = phones_;
        result.emails_ = emails_;
        result.facebook_ = facebook_;
        result.twitter_ = twitter_;
        result.linkedIn_ = linkedIn_;
        result.instagram_ = instagram_;
        result.youtube_ = youtube_;
        result.fax_ = fax_;
        result.entityType_ = entityType_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(ContactInfo other) {
        if (other == ContactInfo.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (!other.getEntityId().isEmpty()) {
          entityId_ = other.entityId_;
          onChanged();
        }
        if (!other.getAddresses().isEmpty()) {
          addresses_ = other.addresses_;
          onChanged();
        }
        if (!other.getPhones().isEmpty()) {
          phones_ = other.phones_;
          onChanged();
        }
        if (!other.getEmails().isEmpty()) {
          emails_ = other.emails_;
          onChanged();
        }
        if (!other.getFacebook().isEmpty()) {
          facebook_ = other.facebook_;
          onChanged();
        }
        if (!other.getTwitter().isEmpty()) {
          twitter_ = other.twitter_;
          onChanged();
        }
        if (!other.getLinkedIn().isEmpty()) {
          linkedIn_ = other.linkedIn_;
          onChanged();
        }
        if (!other.getInstagram().isEmpty()) {
          instagram_ = other.instagram_;
          onChanged();
        }
        if (!other.getYoutube().isEmpty()) {
          youtube_ = other.youtube_;
          onChanged();
        }
        if (!other.getFax().isEmpty()) {
          fax_ = other.fax_;
          onChanged();
        }
        if (!other.getEntityType().isEmpty()) {
          entityType_ = other.entityType_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private Object id_ = "";
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The id.
       */
      public String getId() {
        Object ref = id_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *ID
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }

      private Object entityId_ = "";
      /**
       * <code>string entityId = 2;</code>
       * @return The entityId.
       */
      public String getEntityId() {
        Object ref = entityId_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          entityId_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string entityId = 2;</code>
       * @return The bytes for entityId.
       */
      public com.google.protobuf.ByteString
          getEntityIdBytes() {
        Object ref = entityId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          entityId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string entityId = 2;</code>
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string entityId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>string entityId = 2;</code>
       * @param value The bytes for entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        entityId_ = value;
        onChanged();
        return this;
      }

      private Object addresses_ = "";
      /**
       * <code>string addresses = 3;</code>
       * @return The addresses.
       */
      public String getAddresses() {
        Object ref = addresses_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          addresses_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string addresses = 3;</code>
       * @return The bytes for addresses.
       */
      public com.google.protobuf.ByteString
          getAddressesBytes() {
        Object ref = addresses_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          addresses_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string addresses = 3;</code>
       * @param value The addresses to set.
       * @return This builder for chaining.
       */
      public Builder setAddresses(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        addresses_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string addresses = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAddresses() {
        
        addresses_ = getDefaultInstance().getAddresses();
        onChanged();
        return this;
      }
      /**
       * <code>string addresses = 3;</code>
       * @param value The bytes for addresses to set.
       * @return This builder for chaining.
       */
      public Builder setAddressesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        addresses_ = value;
        onChanged();
        return this;
      }

      private Object phones_ = "";
      /**
       * <code>string phones = 4;</code>
       * @return The phones.
       */
      public String getPhones() {
        Object ref = phones_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          phones_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string phones = 4;</code>
       * @return The bytes for phones.
       */
      public com.google.protobuf.ByteString
          getPhonesBytes() {
        Object ref = phones_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          phones_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string phones = 4;</code>
       * @param value The phones to set.
       * @return This builder for chaining.
       */
      public Builder setPhones(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        phones_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string phones = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPhones() {
        
        phones_ = getDefaultInstance().getPhones();
        onChanged();
        return this;
      }
      /**
       * <code>string phones = 4;</code>
       * @param value The bytes for phones to set.
       * @return This builder for chaining.
       */
      public Builder setPhonesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        phones_ = value;
        onChanged();
        return this;
      }

      private Object emails_ = "";
      /**
       * <code>string emails = 5;</code>
       * @return The emails.
       */
      public String getEmails() {
        Object ref = emails_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          emails_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string emails = 5;</code>
       * @return The bytes for emails.
       */
      public com.google.protobuf.ByteString
          getEmailsBytes() {
        Object ref = emails_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          emails_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string emails = 5;</code>
       * @param value The emails to set.
       * @return This builder for chaining.
       */
      public Builder setEmails(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        emails_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string emails = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmails() {
        
        emails_ = getDefaultInstance().getEmails();
        onChanged();
        return this;
      }
      /**
       * <code>string emails = 5;</code>
       * @param value The bytes for emails to set.
       * @return This builder for chaining.
       */
      public Builder setEmailsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        emails_ = value;
        onChanged();
        return this;
      }

      private Object facebook_ = "";
      /**
       * <code>string Facebook = 6;</code>
       * @return The facebook.
       */
      public String getFacebook() {
        Object ref = facebook_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          facebook_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string Facebook = 6;</code>
       * @return The bytes for facebook.
       */
      public com.google.protobuf.ByteString
          getFacebookBytes() {
        Object ref = facebook_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          facebook_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string Facebook = 6;</code>
       * @param value The facebook to set.
       * @return This builder for chaining.
       */
      public Builder setFacebook(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        facebook_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string Facebook = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearFacebook() {
        
        facebook_ = getDefaultInstance().getFacebook();
        onChanged();
        return this;
      }
      /**
       * <code>string Facebook = 6;</code>
       * @param value The bytes for facebook to set.
       * @return This builder for chaining.
       */
      public Builder setFacebookBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        facebook_ = value;
        onChanged();
        return this;
      }

      private Object twitter_ = "";
      /**
       * <code>string Twitter = 7;</code>
       * @return The twitter.
       */
      public String getTwitter() {
        Object ref = twitter_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          twitter_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string Twitter = 7;</code>
       * @return The bytes for twitter.
       */
      public com.google.protobuf.ByteString
          getTwitterBytes() {
        Object ref = twitter_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          twitter_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string Twitter = 7;</code>
       * @param value The twitter to set.
       * @return This builder for chaining.
       */
      public Builder setTwitter(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        twitter_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string Twitter = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearTwitter() {
        
        twitter_ = getDefaultInstance().getTwitter();
        onChanged();
        return this;
      }
      /**
       * <code>string Twitter = 7;</code>
       * @param value The bytes for twitter to set.
       * @return This builder for chaining.
       */
      public Builder setTwitterBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        twitter_ = value;
        onChanged();
        return this;
      }

      private Object linkedIn_ = "";
      /**
       * <code>string LinkedIn = 8;</code>
       * @return The linkedIn.
       */
      public String getLinkedIn() {
        Object ref = linkedIn_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          linkedIn_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string LinkedIn = 8;</code>
       * @return The bytes for linkedIn.
       */
      public com.google.protobuf.ByteString
          getLinkedInBytes() {
        Object ref = linkedIn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          linkedIn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string LinkedIn = 8;</code>
       * @param value The linkedIn to set.
       * @return This builder for chaining.
       */
      public Builder setLinkedIn(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        linkedIn_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string LinkedIn = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearLinkedIn() {
        
        linkedIn_ = getDefaultInstance().getLinkedIn();
        onChanged();
        return this;
      }
      /**
       * <code>string LinkedIn = 8;</code>
       * @param value The bytes for linkedIn to set.
       * @return This builder for chaining.
       */
      public Builder setLinkedInBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        linkedIn_ = value;
        onChanged();
        return this;
      }

      private Object instagram_ = "";
      /**
       * <code>string Instagram = 9;</code>
       * @return The instagram.
       */
      public String getInstagram() {
        Object ref = instagram_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          instagram_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string Instagram = 9;</code>
       * @return The bytes for instagram.
       */
      public com.google.protobuf.ByteString
          getInstagramBytes() {
        Object ref = instagram_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          instagram_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string Instagram = 9;</code>
       * @param value The instagram to set.
       * @return This builder for chaining.
       */
      public Builder setInstagram(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        instagram_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string Instagram = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearInstagram() {
        
        instagram_ = getDefaultInstance().getInstagram();
        onChanged();
        return this;
      }
      /**
       * <code>string Instagram = 9;</code>
       * @param value The bytes for instagram to set.
       * @return This builder for chaining.
       */
      public Builder setInstagramBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        instagram_ = value;
        onChanged();
        return this;
      }

      private Object youtube_ = "";
      /**
       * <code>string Youtube = 10;</code>
       * @return The youtube.
       */
      public String getYoutube() {
        Object ref = youtube_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          youtube_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string Youtube = 10;</code>
       * @return The bytes for youtube.
       */
      public com.google.protobuf.ByteString
          getYoutubeBytes() {
        Object ref = youtube_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          youtube_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string Youtube = 10;</code>
       * @param value The youtube to set.
       * @return This builder for chaining.
       */
      public Builder setYoutube(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        youtube_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string Youtube = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearYoutube() {
        
        youtube_ = getDefaultInstance().getYoutube();
        onChanged();
        return this;
      }
      /**
       * <code>string Youtube = 10;</code>
       * @param value The bytes for youtube to set.
       * @return This builder for chaining.
       */
      public Builder setYoutubeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        youtube_ = value;
        onChanged();
        return this;
      }

      private Object fax_ = "";
      /**
       * <code>string Fax = 11;</code>
       * @return The fax.
       */
      public String getFax() {
        Object ref = fax_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          fax_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string Fax = 11;</code>
       * @return The bytes for fax.
       */
      public com.google.protobuf.ByteString
          getFaxBytes() {
        Object ref = fax_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          fax_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string Fax = 11;</code>
       * @param value The fax to set.
       * @return This builder for chaining.
       */
      public Builder setFax(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        fax_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string Fax = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearFax() {
        
        fax_ = getDefaultInstance().getFax();
        onChanged();
        return this;
      }
      /**
       * <code>string Fax = 11;</code>
       * @param value The bytes for fax to set.
       * @return This builder for chaining.
       */
      public Builder setFaxBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        fax_ = value;
        onChanged();
        return this;
      }

      private Object entityType_ = "";
      /**
       * <code>string entityType = 12;</code>
       * @return The entityType.
       */
      public String getEntityType() {
        Object ref = entityType_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          entityType_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>string entityType = 12;</code>
       * @return The bytes for entityType.
       */
      public com.google.protobuf.ByteString
          getEntityTypeBytes() {
        Object ref = entityType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          entityType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string entityType = 12;</code>
       * @param value The entityType to set.
       * @return This builder for chaining.
       */
      public Builder setEntityType(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        entityType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string entityType = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityType() {
        
        entityType_ = getDefaultInstance().getEntityType();
        onChanged();
        return this;
      }
      /**
       * <code>string entityType = 12;</code>
       * @param value The bytes for entityType to set.
       * @return This builder for chaining.
       */
      public Builder setEntityTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        entityType_ = value;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:ContactInfo)
    }

    // @@protoc_insertion_point(class_scope:ContactInfo)
    private static final ContactInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ContactInfo();
    }

    public static ContactInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @Override
    public ContactInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PersonInfoSets_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PersonInfoSets_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PersonInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PersonInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ContactInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ContactInfo_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    String[] descriptorData = {
      "\n\014Person.proto\"T\n\016PersonInfoSets\022\037\n\nPers" +
      "onInfo\030\001 \003(\0132\013.PersonInfo\022!\n\013ContactInfo" +
      "\030\002 \003(\0132\014.ContactInfo\"\264\003\n\nPersonInfo\022\n\n\002i" +
      "d\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\r\n\005photo\030\003 \001(\t\022\023\n\013" +
      "foreignName\030\004 \001(\t\022\013\n\003sex\030\005 \001(\t\022\016\n\006source" +
      "\030\006 \001(\t\022\020\n\010birthday\030\007 \001(\t\022\021\n\teducation\030\010 " +
      "\001(\t\022\022\n\nexperience\030\t \001(\t\022\021\n\tchronicle\030\n \001" +
      "(\t\022\024\n\014institutions\030\013 \001(\t\022\023\n\013departments\030" +
      "\014 \001(\t\022\021\n\tpositions\030\r \001(\t\022\021\n\tlanguages\030\016 " +
      "\001(\t\022\023\n\013nationality\030\017 \001(\t\022\022\n\ndirections\030\020" +
      " \001(\t\022\026\n\016researchFields\030\021 \001(\t\022\020\n\010projects" +
      "\030\022 \001(\t\022\r\n\005honor\030\023 \001(\t\022\021\n\treligions\030\024 \001(\t" +
      "\022\024\n\014introduction\030\025 \001(\t\022\022\n\nupdateTime\030\026 \001" +
      "(\t\022\017\n\007remarks\030\027 \001(\t\"\330\001\n\013ContactInfo\022\n\n\002i" +
      "d\030\001 \001(\t\022\020\n\010entityId\030\002 \001(\t\022\021\n\taddresses\030\003" +
      " \001(\t\022\016\n\006phones\030\004 \001(\t\022\016\n\006emails\030\005 \001(\t\022\020\n\010" +
      "Facebook\030\006 \001(\t\022\017\n\007Twitter\030\007 \001(\t\022\020\n\010Linke" +
      "dIn\030\010 \001(\t\022\021\n\tInstagram\030\t \001(\t\022\017\n\007Youtube\030" +
      "\n \001(\t\022\013\n\003Fax\030\013 \001(\t\022\022\n\nentityType\030\014 \001(\tb\006" +
      "proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_PersonInfoSets_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_PersonInfoSets_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PersonInfoSets_descriptor,
        new String[] { "PersonInfo", "ContactInfo", });
    internal_static_PersonInfo_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_PersonInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PersonInfo_descriptor,
        new String[] { "Id", "Name", "Photo", "ForeignName", "Sex", "Source", "Birthday", "Education", "Experience", "Chronicle", "Institutions", "Departments", "Positions", "Languages", "Nationality", "Directions", "ResearchFields", "Projects", "Honor", "Religions", "Introduction", "UpdateTime", "Remarks", });
    internal_static_ContactInfo_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_ContactInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ContactInfo_descriptor,
        new String[] { "Id", "EntityId", "Addresses", "Phones", "Emails", "Facebook", "Twitter", "LinkedIn", "Instagram", "Youtube", "Fax", "EntityType", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
