// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: his_data.proto
package com.fs.watch.protobuf;
public final class HisDataOuterClass {
  private HisDataOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code HisOperation}
   */
  public enum HisOperation
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     * get index table
     * </pre>
     *
     * <code>IT_SYNC = 0;</code>
     */
    IT_SYNC(0),
    /**
     * <pre>
     * start sync
     * </pre>
     *
     * <code>START_SYNC = 1;</code>
     */
    START_SYNC(1),
    /**
     * <pre>
     * stop sync
     * </pre>
     *
     * <code>STOP_SYNC = 2;</code>
     */
    STOP_SYNC(2),
    ;

    /**
     * <pre>
     * get index table
     * </pre>
     *
     * <code>IT_SYNC = 0;</code>
     */
    public static final int IT_SYNC_VALUE = 0;
    /**
     * <pre>
     * start sync
     * </pre>
     *
     * <code>START_SYNC = 1;</code>
     */
    public static final int START_SYNC_VALUE = 1;
    /**
     * <pre>
     * stop sync
     * </pre>
     *
     * <code>STOP_SYNC = 2;</code>
     */
    public static final int STOP_SYNC_VALUE = 2;


    public final int getNumber() {
      return value;
    }

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static HisOperation forNumber(int value) {
      switch (value) {
        case 0: return IT_SYNC;
        case 1: return START_SYNC;
        case 2: return STOP_SYNC;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return HisDataOuterClass.getDescriptor().getEnumTypes().get(0);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:HisOperation)
  }

  /**
   * Protobuf enum {@code HisDataType}
   */
  public enum HisDataType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>HEALTH_DATA = 0;</code>
     */
    HEALTH_DATA(0),
    /**
     * <code>GNSS_DATA = 1;</code>
     */
    GNSS_DATA(1),
    /**
     * <code>ECG_DATA = 2;</code>
     */
    ECG_DATA(2),
    /**
     * <code>PPG_DATA = 3;</code>
     */
    PPG_DATA(3),
    /**
     * <code>RRI_DATA = 4;</code>
     */
    RRI_DATA(4),
    /**
     * <code>MEDIC_DATA = 5;</code>
     */
    MEDIC_DATA(5),
    /**
     * <code>SPO2_DATA = 6;</code>
     */
    SPO2_DATA(6),
    /**
     * <code>SWIM_DATA = 7;</code>
     */
    SWIM_DATA(7),
    /**
     * <code>TEMPERATURE_DATA = 8;</code>
     */
    TEMPERATURE_DATA(8),
    /**
     * <code>HEALTH_DATA_ENCRYPT = 9;</code>
     */
    HEALTH_DATA_ENCRYPT(9),
    /**
     * <code>ECG_DATA_ENCRYPT = 10;</code>
     */
    ECG_DATA_ENCRYPT(10),
    /**
     * <code>PPG_DATA_ENCRYPT = 11;</code>
     */
    PPG_DATA_ENCRYPT(11),
    /**
     * <code>RRI_DATA_ENCRYPT = 12;</code>
     */
    RRI_DATA_ENCRYPT(12),
    /**
     * <code>LONG_ECG_DATA = 13;</code>
     */
    LONG_ECG_DATA(13),
    /**
     * <code>THIRDPARTY_DATA = 14;</code>
     */
    THIRDPARTY_DATA(14),
    /**
     * <code>THIRDPARTY_DATA_V2 = 15;</code>
     */
    THIRDPARTY_DATA_V2(15),
    /**
     * <code>GYROSCOPE_DATA = 16;</code>
     */
    GYROSCOPE_DATA(16),
    /**
     * <code>ACCELEROMETER_DATA = 17;</code>
     */
    ACCELEROMETER_DATA(17),
    /**
     * <code>YYLPFE_DATA = 18;</code>
     */
    YYLPFE_DATA(18),
    /**
     * <code>MULTI_LEADS_ECG_DATA = 19;</code>
     */
    MULTI_LEADS_ECG_DATA(19),
    ;

    /**
     * <code>HEALTH_DATA = 0;</code>
     */
    public static final int HEALTH_DATA_VALUE = 0;
    /**
     * <code>GNSS_DATA = 1;</code>
     */
    public static final int GNSS_DATA_VALUE = 1;
    /**
     * <code>ECG_DATA = 2;</code>
     */
    public static final int ECG_DATA_VALUE = 2;
    /**
     * <code>PPG_DATA = 3;</code>
     */
    public static final int PPG_DATA_VALUE = 3;
    /**
     * <code>RRI_DATA = 4;</code>
     */
    public static final int RRI_DATA_VALUE = 4;
    /**
     * <code>MEDIC_DATA = 5;</code>
     */
    public static final int MEDIC_DATA_VALUE = 5;
    /**
     * <code>SPO2_DATA = 6;</code>
     */
    public static final int SPO2_DATA_VALUE = 6;
    /**
     * <code>SWIM_DATA = 7;</code>
     */
    public static final int SWIM_DATA_VALUE = 7;
    /**
     * <code>TEMPERATURE_DATA = 8;</code>
     */
    public static final int TEMPERATURE_DATA_VALUE = 8;
    /**
     * <code>HEALTH_DATA_ENCRYPT = 9;</code>
     */
    public static final int HEALTH_DATA_ENCRYPT_VALUE = 9;
    /**
     * <code>ECG_DATA_ENCRYPT = 10;</code>
     */
    public static final int ECG_DATA_ENCRYPT_VALUE = 10;
    /**
     * <code>PPG_DATA_ENCRYPT = 11;</code>
     */
    public static final int PPG_DATA_ENCRYPT_VALUE = 11;
    /**
     * <code>RRI_DATA_ENCRYPT = 12;</code>
     */
    public static final int RRI_DATA_ENCRYPT_VALUE = 12;
    /**
     * <code>LONG_ECG_DATA = 13;</code>
     */
    public static final int LONG_ECG_DATA_VALUE = 13;
    /**
     * <code>THIRDPARTY_DATA = 14;</code>
     */
    public static final int THIRDPARTY_DATA_VALUE = 14;
    /**
     * <code>THIRDPARTY_DATA_V2 = 15;</code>
     */
    public static final int THIRDPARTY_DATA_V2_VALUE = 15;
    /**
     * <code>GYROSCOPE_DATA = 16;</code>
     */
    public static final int GYROSCOPE_DATA_VALUE = 16;
    /**
     * <code>ACCELEROMETER_DATA = 17;</code>
     */
    public static final int ACCELEROMETER_DATA_VALUE = 17;
    /**
     * <code>YYLPFE_DATA = 18;</code>
     */
    public static final int YYLPFE_DATA_VALUE = 18;
    /**
     * <code>MULTI_LEADS_ECG_DATA = 19;</code>
     */
    public static final int MULTI_LEADS_ECG_DATA_VALUE = 19;


    public final int getNumber() {
      return value;
    }

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static HisDataType forNumber(int value) {
      switch (value) {
        case 0: return HEALTH_DATA;
        case 1: return GNSS_DATA;
        case 2: return ECG_DATA;
        case 3: return PPG_DATA;
        case 4: return RRI_DATA;
        case 5: return MEDIC_DATA;
        case 6: return SPO2_DATA;
        case 7: return SWIM_DATA;
        case 8: return TEMPERATURE_DATA;
        case 9: return HEALTH_DATA_ENCRYPT;
        case 10: return ECG_DATA_ENCRYPT;
        case 11: return PPG_DATA_ENCRYPT;
        case 12: return RRI_DATA_ENCRYPT;
        case 13: return LONG_ECG_DATA;
        case 14: return THIRDPARTY_DATA;
        case 15: return THIRDPARTY_DATA_V2;
        case 16: return GYROSCOPE_DATA;
        case 17: return ACCELEROMETER_DATA;
        case 18: return YYLPFE_DATA;
        case 19: return MULTI_LEADS_ECG_DATA;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return HisDataOuterClass.getDescriptor().getEnumTypes().get(1);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:HisDataType)
  }

  /**
   * Protobuf enum {@code HisDataStatus}
   */
  public enum HisDataStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>STATUS_OK = 0;</code>
     */
    STATUS_OK(0),
    /**
     * <code>STATUS_INNER_ERROR = 1;</code>
     */
    STATUS_INNER_ERROR(1),
    /**
     * <code>STATUS_NV_ERROR = 2;</code>
     */
    STATUS_NV_ERROR(2),
    /**
     * <code>STATUS_CRC_ERROR = 3;</code>
     */
    STATUS_CRC_ERROR(3),
    /**
     * <code>STATUS_TYPE_ERROR = 4;</code>
     */
    STATUS_TYPE_ERROR(4),
    /**
     * <code>STATUS_NOT_SUPPORTED = 5;</code>
     */
    STATUS_NOT_SUPPORTED(5),
    ;

    /**
     * <code>STATUS_OK = 0;</code>
     */
    public static final int STATUS_OK_VALUE = 0;
    /**
     * <code>STATUS_INNER_ERROR = 1;</code>
     */
    public static final int STATUS_INNER_ERROR_VALUE = 1;
    /**
     * <code>STATUS_NV_ERROR = 2;</code>
     */
    public static final int STATUS_NV_ERROR_VALUE = 2;
    /**
     * <code>STATUS_CRC_ERROR = 3;</code>
     */
    public static final int STATUS_CRC_ERROR_VALUE = 3;
    /**
     * <code>STATUS_TYPE_ERROR = 4;</code>
     */
    public static final int STATUS_TYPE_ERROR_VALUE = 4;
    /**
     * <code>STATUS_NOT_SUPPORTED = 5;</code>
     */
    public static final int STATUS_NOT_SUPPORTED_VALUE = 5;


    public final int getNumber() {
      return value;
    }

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static HisDataStatus forNumber(int value) {
      switch (value) {
        case 0: return STATUS_OK;
        case 1: return STATUS_INNER_ERROR;
        case 2: return STATUS_NV_ERROR;
        case 3: return STATUS_CRC_ERROR;
        case 4: return STATUS_TYPE_ERROR;
        case 5: return STATUS_NOT_SUPPORTED;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return HisDataOuterClass.getDescriptor().getEnumTypes().get(2);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:HisDataStatus)
  }

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

    /**
     * <code>required fixed32 start_seq = 1;</code>
     * @return Whether the startSeq field is set.
     */
    boolean hasStartSeq();
    /**
     * <code>required fixed32 start_seq = 1;</code>
     * @return The startSeq.
     */
    int getStartSeq();

    /**
     * <code>required fixed32 end_seq = 2;</code>
     * @return Whether the endSeq field is set.
     */
    boolean hasEndSeq();
    /**
     * <code>required fixed32 end_seq = 2;</code>
     * @return The endSeq.
     */
    int getEndSeq();
  }
  /**
   * Protobuf type {@code HisBlock}
   */
  public  static final class HisBlock extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisBlock)
      HisBlockOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisBlock.newBuilder() to construct.
    private HisBlock(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisBlock() {
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisBlock(
        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 13: {
              bitField0_ |= 0x00000001;
              startSeq_ = input.readFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              endSeq_ = input.readFixed32();
              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 HisDataOuterClass.internal_static_HisBlock_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisBlock_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisBlock.class, Builder.class);
    }

    private int bitField0_;
    public static final int START_SEQ_FIELD_NUMBER = 1;
    private int startSeq_;
    /**
     * <code>required fixed32 start_seq = 1;</code>
     * @return Whether the startSeq field is set.
     */
    public boolean hasStartSeq() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 start_seq = 1;</code>
     * @return The startSeq.
     */
    public int getStartSeq() {
      return startSeq_;
    }

    public static final int END_SEQ_FIELD_NUMBER = 2;
    private int endSeq_;
    /**
     * <code>required fixed32 end_seq = 2;</code>
     * @return Whether the endSeq field is set.
     */
    public boolean hasEndSeq() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 end_seq = 2;</code>
     * @return The endSeq.
     */
    public int getEndSeq() {
      return endSeq_;
    }

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

      if (!hasStartSeq()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEndSeq()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, startSeq_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, endSeq_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, startSeq_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, endSeq_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasStartSeq() != other.hasStartSeq()) return false;
      if (hasStartSeq()) {
        if (getStartSeq()
            != other.getStartSeq()) return false;
      }
      if (hasEndSeq() != other.hasEndSeq()) return false;
      if (hasEndSeq()) {
        if (getEndSeq()
            != other.getEndSeq()) 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 (hasStartSeq()) {
        hash = (37 * hash) + START_SEQ_FIELD_NUMBER;
        hash = (53 * hash) + getStartSeq();
      }
      if (hasEndSeq()) {
        hash = (37 * hash) + END_SEQ_FIELD_NUMBER;
        hash = (53 * hash) + getEndSeq();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisBlock_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisBlock.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisBlock.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();
        startSeq_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        endSeq_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

      @Override
      public HisBlock buildPartial() {
        HisBlock result = new HisBlock(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.startSeq_ = startSeq_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.endSeq_ = endSeq_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        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 HisBlock) {
          return mergeFrom((HisBlock)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisBlock other) {
        if (other == HisBlock.getDefaultInstance()) return this;
        if (other.hasStartSeq()) {
          setStartSeq(other.getStartSeq());
        }
        if (other.hasEndSeq()) {
          setEndSeq(other.getEndSeq());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasStartSeq()) {
          return false;
        }
        if (!hasEndSeq()) {
          return false;
        }
        return true;
      }

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

      private int startSeq_ ;
      /**
       * <code>required fixed32 start_seq = 1;</code>
       * @return Whether the startSeq field is set.
       */
      public boolean hasStartSeq() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 start_seq = 1;</code>
       * @return The startSeq.
       */
      public int getStartSeq() {
        return startSeq_;
      }
      /**
       * <code>required fixed32 start_seq = 1;</code>
       * @param value The startSeq to set.
       * @return This builder for chaining.
       */
      public Builder setStartSeq(int value) {
        bitField0_ |= 0x00000001;
        startSeq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 start_seq = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartSeq() {
        bitField0_ = (bitField0_ & ~0x00000001);
        startSeq_ = 0;
        onChanged();
        return this;
      }

      private int endSeq_ ;
      /**
       * <code>required fixed32 end_seq = 2;</code>
       * @return Whether the endSeq field is set.
       */
      public boolean hasEndSeq() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 end_seq = 2;</code>
       * @return The endSeq.
       */
      public int getEndSeq() {
        return endSeq_;
      }
      /**
       * <code>required fixed32 end_seq = 2;</code>
       * @param value The endSeq to set.
       * @return This builder for chaining.
       */
      public Builder setEndSeq(int value) {
        bitField0_ |= 0x00000002;
        endSeq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 end_seq = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndSeq() {
        bitField0_ = (bitField0_ & ~0x00000002);
        endSeq_ = 0;
        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:HisBlock)
    }

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

    public static HisBlock getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    HisDataType getType();
  }
  /**
   * Protobuf type {@code HisITSync}
   */
  public  static final class HisITSync extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisITSync)
      HisITSyncOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisITSync.newBuilder() to construct.
    private HisITSync(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisITSync() {
      type_ = 0;
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisITSync(
        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 8: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              HisDataType value = HisDataType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = rawValue;
              }
              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 HisDataOuterClass.internal_static_HisITSync_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisITSync_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisITSync.class, Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    public HisDataType getType() {
      @SuppressWarnings("deprecation")
      HisDataType result = HisDataType.valueOf(type_);
      return result == null ? HisDataType.HEALTH_DATA : result;
    }

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

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, type_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (type_ != other.type_) 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 (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisITSync_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisITSync.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisITSync.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();
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

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

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

      @Override
      public HisITSync buildPartial() {
        HisITSync result = new HisITSync(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        result.bitField0_ = to_bitField0_;
        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 HisITSync) {
          return mergeFrom((HisITSync)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisITSync other) {
        if (other == HisITSync.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {
          return false;
        }
        return true;
      }

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

      private int type_ = 0;
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return The type.
       */
      public HisDataType getType() {
        @SuppressWarnings("deprecation")
        HisDataType result = HisDataType.valueOf(type_);
        return result == null ? HisDataType.HEALTH_DATA : result;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(HisDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        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:HisITSync)
    }

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

    public static HisITSync getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    HisDataType getType();

    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    java.util.List<HisBlock>
        getBlockList();
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    HisBlock getBlock(int index);
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    int getBlockCount();
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    java.util.List<? extends HisBlockOrBuilder>
        getBlockOrBuilderList();
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    HisBlockOrBuilder getBlockOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code HisStartSync}
   */
  public  static final class HisStartSync extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisStartSync)
      HisStartSyncOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisStartSync.newBuilder() to construct.
    private HisStartSync(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisStartSync() {
      type_ = 0;
      block_ = java.util.Collections.emptyList();
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisStartSync(
        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 8: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              HisDataType value = HisDataType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = rawValue;
              }
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                block_ = new java.util.ArrayList<HisBlock>();
                mutable_bitField0_ |= 0x00000002;
              }
              block_.add(
                  input.readMessage(HisBlock.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_ & 0x00000002) != 0)) {
          block_ = java.util.Collections.unmodifiableList(block_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisDataOuterClass.internal_static_HisStartSync_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisStartSync_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisStartSync.class, Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    public HisDataType getType() {
      @SuppressWarnings("deprecation")
      HisDataType result = HisDataType.valueOf(type_);
      return result == null ? HisDataType.HEALTH_DATA : result;
    }

    public static final int BLOCK_FIELD_NUMBER = 2;
    private java.util.List<HisBlock> block_;
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    public java.util.List<HisBlock> getBlockList() {
      return block_;
    }
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    public java.util.List<? extends HisBlockOrBuilder>
        getBlockOrBuilderList() {
      return block_;
    }
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    public int getBlockCount() {
      return block_.size();
    }
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    public HisBlock getBlock(int index) {
      return block_.get(index);
    }
    /**
     * <code>repeated .HisBlock block = 2;</code>
     */
    public HisBlockOrBuilder getBlockOrBuilder(
        int index) {
      return block_.get(index);
    }

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

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getBlockCount(); i++) {
        if (!getBlock(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, type_);
      }
      for (int i = 0; i < block_.size(); i++) {
        output.writeMessage(2, block_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_);
      }
      for (int i = 0; i < block_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, block_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (type_ != other.type_) return false;
      }
      if (!getBlockList()
          .equals(other.getBlockList())) 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 (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
      }
      if (getBlockCount() > 0) {
        hash = (37 * hash) + BLOCK_FIELD_NUMBER;
        hash = (53 * hash) + getBlockList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisStartSync_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisStartSync.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisStartSync.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

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

      @Override
      public HisStartSync buildPartial() {
        HisStartSync result = new HisStartSync(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (blockBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            block_ = java.util.Collections.unmodifiableList(block_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.block_ = block_;
        } else {
          result.block_ = blockBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        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 HisStartSync) {
          return mergeFrom((HisStartSync)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisStartSync other) {
        if (other == HisStartSync.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (blockBuilder_ == null) {
          if (!other.block_.isEmpty()) {
            if (block_.isEmpty()) {
              block_ = other.block_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureBlockIsMutable();
              block_.addAll(other.block_);
            }
            onChanged();
          }
        } else {
          if (!other.block_.isEmpty()) {
            if (blockBuilder_.isEmpty()) {
              blockBuilder_.dispose();
              blockBuilder_ = null;
              block_ = other.block_;
              bitField0_ = (bitField0_ & ~0x00000002);
              blockBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getBlockFieldBuilder() : null;
            } else {
              blockBuilder_.addAllMessages(other.block_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {
          return false;
        }
        for (int i = 0; i < getBlockCount(); i++) {
          if (!getBlock(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

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

      private int type_ = 0;
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return The type.
       */
      public HisDataType getType() {
        @SuppressWarnings("deprecation")
        HisDataType result = HisDataType.valueOf(type_);
        return result == null ? HisDataType.HEALTH_DATA : result;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(HisDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        onChanged();
        return this;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          HisBlock, HisBlock.Builder, HisBlockOrBuilder> blockBuilder_;

      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public java.util.List<HisBlock> getBlockList() {
        if (blockBuilder_ == null) {
          return java.util.Collections.unmodifiableList(block_);
        } else {
          return blockBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public int getBlockCount() {
        if (blockBuilder_ == null) {
          return block_.size();
        } else {
          return blockBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public HisBlock getBlock(int index) {
        if (blockBuilder_ == null) {
          return block_.get(index);
        } else {
          return blockBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder setBlock(
          int index, HisBlock value) {
        if (blockBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBlockIsMutable();
          block_.set(index, value);
          onChanged();
        } else {
          blockBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder setBlock(
          int index, HisBlock.Builder builderForValue) {
        if (blockBuilder_ == null) {
          ensureBlockIsMutable();
          block_.set(index, builderForValue.build());
          onChanged();
        } else {
          blockBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder addBlock(HisBlock value) {
        if (blockBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBlockIsMutable();
          block_.add(value);
          onChanged();
        } else {
          blockBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder addBlock(
          int index, HisBlock value) {
        if (blockBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBlockIsMutable();
          block_.add(index, value);
          onChanged();
        } else {
          blockBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder addBlock(
          HisBlock.Builder builderForValue) {
        if (blockBuilder_ == null) {
          ensureBlockIsMutable();
          block_.add(builderForValue.build());
          onChanged();
        } else {
          blockBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder addBlock(
          int index, HisBlock.Builder builderForValue) {
        if (blockBuilder_ == null) {
          ensureBlockIsMutable();
          block_.add(index, builderForValue.build());
          onChanged();
        } else {
          blockBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder addAllBlock(
          Iterable<? extends HisBlock> values) {
        if (blockBuilder_ == null) {
          ensureBlockIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, block_);
          onChanged();
        } else {
          blockBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder clearBlock() {
        if (blockBuilder_ == null) {
          block_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          blockBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public Builder removeBlock(int index) {
        if (blockBuilder_ == null) {
          ensureBlockIsMutable();
          block_.remove(index);
          onChanged();
        } else {
          blockBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public HisBlock.Builder getBlockBuilder(
          int index) {
        return getBlockFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public HisBlockOrBuilder getBlockOrBuilder(
          int index) {
        if (blockBuilder_ == null) {
          return block_.get(index);  } else {
          return blockBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public java.util.List<? extends HisBlockOrBuilder>
           getBlockOrBuilderList() {
        if (blockBuilder_ != null) {
          return blockBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(block_);
        }
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public HisBlock.Builder addBlockBuilder() {
        return getBlockFieldBuilder().addBuilder(
            HisBlock.getDefaultInstance());
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public HisBlock.Builder addBlockBuilder(
          int index) {
        return getBlockFieldBuilder().addBuilder(
            index, HisBlock.getDefaultInstance());
      }
      /**
       * <code>repeated .HisBlock block = 2;</code>
       */
      public java.util.List<HisBlock.Builder>
           getBlockBuilderList() {
        return getBlockFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          HisBlock, HisBlock.Builder, HisBlockOrBuilder>
          getBlockFieldBuilder() {
        if (blockBuilder_ == null) {
          blockBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              HisBlock, HisBlock.Builder, HisBlockOrBuilder>(
                  block_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          block_ = null;
        }
        return blockBuilder_;
      }
      @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:HisStartSync)
    }

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

    public static HisStartSync getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    HisDataType getType();
  }
  /**
   * Protobuf type {@code HisStopSync}
   */
  public  static final class HisStopSync extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisStopSync)
      HisStopSyncOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisStopSync.newBuilder() to construct.
    private HisStopSync(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisStopSync() {
      type_ = 0;
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisStopSync(
        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 8: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              HisDataType value = HisDataType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = rawValue;
              }
              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 HisDataOuterClass.internal_static_HisStopSync_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisStopSync_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisStopSync.class, Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    public HisDataType getType() {
      @SuppressWarnings("deprecation")
      HisDataType result = HisDataType.valueOf(type_);
      return result == null ? HisDataType.HEALTH_DATA : result;
    }

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

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, type_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (type_ != other.type_) 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 (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisStopSync_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisStopSync.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisStopSync.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();
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

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

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

      @Override
      public HisStopSync buildPartial() {
        HisStopSync result = new HisStopSync(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        result.bitField0_ = to_bitField0_;
        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 HisStopSync) {
          return mergeFrom((HisStopSync)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisStopSync other) {
        if (other == HisStopSync.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {
          return false;
        }
        return true;
      }

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

      private int type_ = 0;
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return The type.
       */
      public HisDataType getType() {
        @SuppressWarnings("deprecation")
        HisDataType result = HisDataType.valueOf(type_);
        return result == null ? HisDataType.HEALTH_DATA : result;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(HisDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        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:HisStopSync)
    }

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

    public static HisStopSync getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return Whether the operation field is set.
     */
    boolean hasOperation();
    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return The operation.
     */
    HisOperation getOperation();

    /**
     * <code>optional .HisITSync it_sync = 2;</code>
     * @return Whether the itSync field is set.
     */
    boolean hasItSync();
    /**
     * <code>optional .HisITSync it_sync = 2;</code>
     * @return The itSync.
     */
    HisITSync getItSync();
    /**
     * <code>optional .HisITSync it_sync = 2;</code>
     */
    HisITSyncOrBuilder getItSyncOrBuilder();

    /**
     * <code>optional .HisStartSync start_sync = 3;</code>
     * @return Whether the startSync field is set.
     */
    boolean hasStartSync();
    /**
     * <code>optional .HisStartSync start_sync = 3;</code>
     * @return The startSync.
     */
    HisStartSync getStartSync();
    /**
     * <code>optional .HisStartSync start_sync = 3;</code>
     */
    HisStartSyncOrBuilder getStartSyncOrBuilder();

    /**
     * <code>optional .HisStopSync stop_sync = 4;</code>
     * @return Whether the stopSync field is set.
     */
    boolean hasStopSync();
    /**
     * <code>optional .HisStopSync stop_sync = 4;</code>
     * @return The stopSync.
     */
    HisStopSync getStopSync();
    /**
     * <code>optional .HisStopSync stop_sync = 4;</code>
     */
    HisStopSyncOrBuilder getStopSyncOrBuilder();

    public HisSubscriber.DataCase getDataCase();
  }
  /**
   * Protobuf type {@code HisSubscriber}
   */
  public  static final class HisSubscriber extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisSubscriber)
      HisSubscriberOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisSubscriber.newBuilder() to construct.
    private HisSubscriber(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisSubscriber() {
      operation_ = 0;
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisSubscriber(
        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 8: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              HisOperation value = HisOperation.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                operation_ = rawValue;
              }
              break;
            }
            case 18: {
              HisITSync.Builder subBuilder = null;
              if (dataCase_ == 2) {
                subBuilder = ((HisITSync) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisITSync.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisITSync) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 2;
              break;
            }
            case 26: {
              HisStartSync.Builder subBuilder = null;
              if (dataCase_ == 3) {
                subBuilder = ((HisStartSync) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisStartSync.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisStartSync) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 3;
              break;
            }
            case 34: {
              HisStopSync.Builder subBuilder = null;
              if (dataCase_ == 4) {
                subBuilder = ((HisStopSync) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisStopSync.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisStopSync) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 4;
              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 HisDataOuterClass.internal_static_HisSubscriber_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisSubscriber_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisSubscriber.class, Builder.class);
    }

    private int bitField0_;
    private int dataCase_ = 0;
    private Object data_;
    public enum DataCase
        implements com.google.protobuf.Internal.EnumLite,
            InternalOneOfEnum {
      IT_SYNC(2),
      START_SYNC(3),
      STOP_SYNC(4),
      DATA_NOT_SET(0);
      private final int value;
      private DataCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @Deprecated
      public static DataCase valueOf(int value) {
        return forNumber(value);
      }

      public static DataCase forNumber(int value) {
        switch (value) {
          case 2: return IT_SYNC;
          case 3: return START_SYNC;
          case 4: return STOP_SYNC;
          case 0: return DATA_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public DataCase
    getDataCase() {
      return DataCase.forNumber(
          dataCase_);
    }

    public static final int OPERATION_FIELD_NUMBER = 1;
    private int operation_;
    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return Whether the operation field is set.
     */
    public boolean hasOperation() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return The operation.
     */
    public HisOperation getOperation() {
      @SuppressWarnings("deprecation")
      HisOperation result = HisOperation.valueOf(operation_);
      return result == null ? HisOperation.IT_SYNC : result;
    }

    public static final int IT_SYNC_FIELD_NUMBER = 2;
    /**
     * <code>optional .HisITSync it_sync = 2;</code>
     * @return Whether the itSync field is set.
     */
    public boolean hasItSync() {
      return dataCase_ == 2;
    }
    /**
     * <code>optional .HisITSync it_sync = 2;</code>
     * @return The itSync.
     */
    public HisITSync getItSync() {
      if (dataCase_ == 2) {
         return (HisITSync) data_;
      }
      return HisITSync.getDefaultInstance();
    }
    /**
     * <code>optional .HisITSync it_sync = 2;</code>
     */
    public HisITSyncOrBuilder getItSyncOrBuilder() {
      if (dataCase_ == 2) {
         return (HisITSync) data_;
      }
      return HisITSync.getDefaultInstance();
    }

    public static final int START_SYNC_FIELD_NUMBER = 3;
    /**
     * <code>optional .HisStartSync start_sync = 3;</code>
     * @return Whether the startSync field is set.
     */
    public boolean hasStartSync() {
      return dataCase_ == 3;
    }
    /**
     * <code>optional .HisStartSync start_sync = 3;</code>
     * @return The startSync.
     */
    public HisStartSync getStartSync() {
      if (dataCase_ == 3) {
         return (HisStartSync) data_;
      }
      return HisStartSync.getDefaultInstance();
    }
    /**
     * <code>optional .HisStartSync start_sync = 3;</code>
     */
    public HisStartSyncOrBuilder getStartSyncOrBuilder() {
      if (dataCase_ == 3) {
         return (HisStartSync) data_;
      }
      return HisStartSync.getDefaultInstance();
    }

    public static final int STOP_SYNC_FIELD_NUMBER = 4;
    /**
     * <code>optional .HisStopSync stop_sync = 4;</code>
     * @return Whether the stopSync field is set.
     */
    public boolean hasStopSync() {
      return dataCase_ == 4;
    }
    /**
     * <code>optional .HisStopSync stop_sync = 4;</code>
     * @return The stopSync.
     */
    public HisStopSync getStopSync() {
      if (dataCase_ == 4) {
         return (HisStopSync) data_;
      }
      return HisStopSync.getDefaultInstance();
    }
    /**
     * <code>optional .HisStopSync stop_sync = 4;</code>
     */
    public HisStopSyncOrBuilder getStopSyncOrBuilder() {
      if (dataCase_ == 4) {
         return (HisStopSync) data_;
      }
      return HisStopSync.getDefaultInstance();
    }

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

      if (!hasOperation()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasItSync()) {
        if (!getItSync().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStartSync()) {
        if (!getStartSync().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStopSync()) {
        if (!getStopSync().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, operation_);
      }
      if (dataCase_ == 2) {
        output.writeMessage(2, (HisITSync) data_);
      }
      if (dataCase_ == 3) {
        output.writeMessage(3, (HisStartSync) data_);
      }
      if (dataCase_ == 4) {
        output.writeMessage(4, (HisStopSync) data_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, operation_);
      }
      if (dataCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (HisITSync) data_);
      }
      if (dataCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (HisStartSync) data_);
      }
      if (dataCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (HisStopSync) data_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasOperation() != other.hasOperation()) return false;
      if (hasOperation()) {
        if (operation_ != other.operation_) return false;
      }
      if (!getDataCase().equals(other.getDataCase())) return false;
      switch (dataCase_) {
        case 2:
          if (!getItSync()
              .equals(other.getItSync())) return false;
          break;
        case 3:
          if (!getStartSync()
              .equals(other.getStartSync())) return false;
          break;
        case 4:
          if (!getStopSync()
              .equals(other.getStopSync())) return false;
          break;
        case 0:
        default:
      }
      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 (hasOperation()) {
        hash = (37 * hash) + OPERATION_FIELD_NUMBER;
        hash = (53 * hash) + operation_;
      }
      switch (dataCase_) {
        case 2:
          hash = (37 * hash) + IT_SYNC_FIELD_NUMBER;
          hash = (53 * hash) + getItSync().hashCode();
          break;
        case 3:
          hash = (37 * hash) + START_SYNC_FIELD_NUMBER;
          hash = (53 * hash) + getStartSync().hashCode();
          break;
        case 4:
          hash = (37 * hash) + STOP_SYNC_FIELD_NUMBER;
          hash = (53 * hash) + getStopSync().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisSubscriber_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisSubscriber.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisSubscriber.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();
        operation_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        dataCase_ = 0;
        data_ = null;
        return this;
      }

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

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

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

      @Override
      public HisSubscriber buildPartial() {
        HisSubscriber result = new HisSubscriber(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.operation_ = operation_;
        if (dataCase_ == 2) {
          if (itSyncBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = itSyncBuilder_.build();
          }
        }
        if (dataCase_ == 3) {
          if (startSyncBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = startSyncBuilder_.build();
          }
        }
        if (dataCase_ == 4) {
          if (stopSyncBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = stopSyncBuilder_.build();
          }
        }
        result.bitField0_ = to_bitField0_;
        result.dataCase_ = dataCase_;
        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 HisSubscriber) {
          return mergeFrom((HisSubscriber)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisSubscriber other) {
        if (other == HisSubscriber.getDefaultInstance()) return this;
        if (other.hasOperation()) {
          setOperation(other.getOperation());
        }
        switch (other.getDataCase()) {
          case IT_SYNC: {
            mergeItSync(other.getItSync());
            break;
          }
          case START_SYNC: {
            mergeStartSync(other.getStartSync());
            break;
          }
          case STOP_SYNC: {
            mergeStopSync(other.getStopSync());
            break;
          }
          case DATA_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasOperation()) {
          return false;
        }
        if (hasItSync()) {
          if (!getItSync().isInitialized()) {
            return false;
          }
        }
        if (hasStartSync()) {
          if (!getStartSync().isInitialized()) {
            return false;
          }
        }
        if (hasStopSync()) {
          if (!getStopSync().isInitialized()) {
            return false;
          }
        }
        return true;
      }

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

      public Builder clearData() {
        dataCase_ = 0;
        data_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int operation_ = 0;
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @return Whether the operation field is set.
       */
      public boolean hasOperation() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @return The operation.
       */
      public HisOperation getOperation() {
        @SuppressWarnings("deprecation")
        HisOperation result = HisOperation.valueOf(operation_);
        return result == null ? HisOperation.IT_SYNC : result;
      }
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @param value The operation to set.
       * @return This builder for chaining.
       */
      public Builder setOperation(HisOperation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        operation_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperation() {
        bitField0_ = (bitField0_ & ~0x00000001);
        operation_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisITSync, HisITSync.Builder, HisITSyncOrBuilder> itSyncBuilder_;
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       * @return Whether the itSync field is set.
       */
      public boolean hasItSync() {
        return dataCase_ == 2;
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       * @return The itSync.
       */
      public HisITSync getItSync() {
        if (itSyncBuilder_ == null) {
          if (dataCase_ == 2) {
            return (HisITSync) data_;
          }
          return HisITSync.getDefaultInstance();
        } else {
          if (dataCase_ == 2) {
            return itSyncBuilder_.getMessage();
          }
          return HisITSync.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       */
      public Builder setItSync(HisITSync value) {
        if (itSyncBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          itSyncBuilder_.setMessage(value);
        }
        dataCase_ = 2;
        return this;
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       */
      public Builder setItSync(
          HisITSync.Builder builderForValue) {
        if (itSyncBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          itSyncBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 2;
        return this;
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       */
      public Builder mergeItSync(HisITSync value) {
        if (itSyncBuilder_ == null) {
          if (dataCase_ == 2 &&
              data_ != HisITSync.getDefaultInstance()) {
            data_ = HisITSync.newBuilder((HisITSync) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 2) {
            itSyncBuilder_.mergeFrom(value);
          }
          itSyncBuilder_.setMessage(value);
        }
        dataCase_ = 2;
        return this;
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       */
      public Builder clearItSync() {
        if (itSyncBuilder_ == null) {
          if (dataCase_ == 2) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 2) {
            dataCase_ = 0;
            data_ = null;
          }
          itSyncBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       */
      public HisITSync.Builder getItSyncBuilder() {
        return getItSyncFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       */
      public HisITSyncOrBuilder getItSyncOrBuilder() {
        if ((dataCase_ == 2) && (itSyncBuilder_ != null)) {
          return itSyncBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 2) {
            return (HisITSync) data_;
          }
          return HisITSync.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisITSync it_sync = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisITSync, HisITSync.Builder, HisITSyncOrBuilder>
          getItSyncFieldBuilder() {
        if (itSyncBuilder_ == null) {
          if (!(dataCase_ == 2)) {
            data_ = HisITSync.getDefaultInstance();
          }
          itSyncBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisITSync, HisITSync.Builder, HisITSyncOrBuilder>(
                  (HisITSync) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 2;
        onChanged();;
        return itSyncBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisStartSync, HisStartSync.Builder, HisStartSyncOrBuilder> startSyncBuilder_;
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       * @return Whether the startSync field is set.
       */
      public boolean hasStartSync() {
        return dataCase_ == 3;
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       * @return The startSync.
       */
      public HisStartSync getStartSync() {
        if (startSyncBuilder_ == null) {
          if (dataCase_ == 3) {
            return (HisStartSync) data_;
          }
          return HisStartSync.getDefaultInstance();
        } else {
          if (dataCase_ == 3) {
            return startSyncBuilder_.getMessage();
          }
          return HisStartSync.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       */
      public Builder setStartSync(HisStartSync value) {
        if (startSyncBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          startSyncBuilder_.setMessage(value);
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       */
      public Builder setStartSync(
          HisStartSync.Builder builderForValue) {
        if (startSyncBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          startSyncBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       */
      public Builder mergeStartSync(HisStartSync value) {
        if (startSyncBuilder_ == null) {
          if (dataCase_ == 3 &&
              data_ != HisStartSync.getDefaultInstance()) {
            data_ = HisStartSync.newBuilder((HisStartSync) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 3) {
            startSyncBuilder_.mergeFrom(value);
          }
          startSyncBuilder_.setMessage(value);
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       */
      public Builder clearStartSync() {
        if (startSyncBuilder_ == null) {
          if (dataCase_ == 3) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 3) {
            dataCase_ = 0;
            data_ = null;
          }
          startSyncBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       */
      public HisStartSync.Builder getStartSyncBuilder() {
        return getStartSyncFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       */
      public HisStartSyncOrBuilder getStartSyncOrBuilder() {
        if ((dataCase_ == 3) && (startSyncBuilder_ != null)) {
          return startSyncBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 3) {
            return (HisStartSync) data_;
          }
          return HisStartSync.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisStartSync start_sync = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisStartSync, HisStartSync.Builder, HisStartSyncOrBuilder>
          getStartSyncFieldBuilder() {
        if (startSyncBuilder_ == null) {
          if (!(dataCase_ == 3)) {
            data_ = HisStartSync.getDefaultInstance();
          }
          startSyncBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisStartSync, HisStartSync.Builder, HisStartSyncOrBuilder>(
                  (HisStartSync) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 3;
        onChanged();;
        return startSyncBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisStopSync, HisStopSync.Builder, HisStopSyncOrBuilder> stopSyncBuilder_;
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       * @return Whether the stopSync field is set.
       */
      public boolean hasStopSync() {
        return dataCase_ == 4;
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       * @return The stopSync.
       */
      public HisStopSync getStopSync() {
        if (stopSyncBuilder_ == null) {
          if (dataCase_ == 4) {
            return (HisStopSync) data_;
          }
          return HisStopSync.getDefaultInstance();
        } else {
          if (dataCase_ == 4) {
            return stopSyncBuilder_.getMessage();
          }
          return HisStopSync.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       */
      public Builder setStopSync(HisStopSync value) {
        if (stopSyncBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          stopSyncBuilder_.setMessage(value);
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       */
      public Builder setStopSync(
          HisStopSync.Builder builderForValue) {
        if (stopSyncBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          stopSyncBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       */
      public Builder mergeStopSync(HisStopSync value) {
        if (stopSyncBuilder_ == null) {
          if (dataCase_ == 4 &&
              data_ != HisStopSync.getDefaultInstance()) {
            data_ = HisStopSync.newBuilder((HisStopSync) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 4) {
            stopSyncBuilder_.mergeFrom(value);
          }
          stopSyncBuilder_.setMessage(value);
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       */
      public Builder clearStopSync() {
        if (stopSyncBuilder_ == null) {
          if (dataCase_ == 4) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 4) {
            dataCase_ = 0;
            data_ = null;
          }
          stopSyncBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       */
      public HisStopSync.Builder getStopSyncBuilder() {
        return getStopSyncFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       */
      public HisStopSyncOrBuilder getStopSyncOrBuilder() {
        if ((dataCase_ == 4) && (stopSyncBuilder_ != null)) {
          return stopSyncBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 4) {
            return (HisStopSync) data_;
          }
          return HisStopSync.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisStopSync stop_sync = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisStopSync, HisStopSync.Builder, HisStopSyncOrBuilder>
          getStopSyncFieldBuilder() {
        if (stopSyncBuilder_ == null) {
          if (!(dataCase_ == 4)) {
            data_ = HisStopSync.getDefaultInstance();
          }
          stopSyncBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisStopSync, HisStopSync.Builder, HisStopSyncOrBuilder>(
                  (HisStopSync) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 4;
        onChanged();;
        return stopSyncBuilder_;
      }
      @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:HisSubscriber)
    }

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

    public static HisSubscriber getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .RtTime time = 1;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>required .RtTime time = 1;</code>
     * @return The time.
     */
    RealtimeData.RtTime getTime();
    /**
     * <code>required .RtTime time = 1;</code>
     */
    RealtimeData.RtTimeOrBuilder getTimeOrBuilder();

    /**
     * <code>required fixed32 start_seq = 2;</code>
     * @return Whether the startSeq field is set.
     */
    boolean hasStartSeq();
    /**
     * <code>required fixed32 start_seq = 2;</code>
     * @return The startSeq.
     */
    int getStartSeq();

    /**
     * <code>required fixed32 end_seq = 3;</code>
     * @return Whether the endSeq field is set.
     */
    boolean hasEndSeq();
    /**
     * <code>required fixed32 end_seq = 3;</code>
     * @return The endSeq.
     */
    int getEndSeq();
  }
  /**
   * Protobuf type {@code HisIndex}
   */
  public  static final class HisIndex extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisIndex)
      HisIndexOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisIndex.newBuilder() to construct.
    private HisIndex(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisIndex() {
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisIndex(
        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: {
              RealtimeData.RtTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = time_.toBuilder();
              }
              time_ = input.readMessage(RealtimeData.RtTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(time_);
                time_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              startSeq_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              endSeq_ = input.readFixed32();
              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 HisDataOuterClass.internal_static_HisIndex_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisIndex_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisIndex.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_FIELD_NUMBER = 1;
    private RealtimeData.RtTime time_;
    /**
     * <code>required .RtTime time = 1;</code>
     * @return Whether the time field is set.
     */
    public boolean hasTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .RtTime time = 1;</code>
     * @return The time.
     */
    public RealtimeData.RtTime getTime() {
      return time_ == null ? RealtimeData.RtTime.getDefaultInstance() : time_;
    }
    /**
     * <code>required .RtTime time = 1;</code>
     */
    public RealtimeData.RtTimeOrBuilder getTimeOrBuilder() {
      return time_ == null ? RealtimeData.RtTime.getDefaultInstance() : time_;
    }

    public static final int START_SEQ_FIELD_NUMBER = 2;
    private int startSeq_;
    /**
     * <code>required fixed32 start_seq = 2;</code>
     * @return Whether the startSeq field is set.
     */
    public boolean hasStartSeq() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 start_seq = 2;</code>
     * @return The startSeq.
     */
    public int getStartSeq() {
      return startSeq_;
    }

    public static final int END_SEQ_FIELD_NUMBER = 3;
    private int endSeq_;
    /**
     * <code>required fixed32 end_seq = 3;</code>
     * @return Whether the endSeq field is set.
     */
    public boolean hasEndSeq() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 end_seq = 3;</code>
     * @return The endSeq.
     */
    public int getEndSeq() {
      return endSeq_;
    }

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

      if (!hasTime()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartSeq()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEndSeq()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTime().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getTime());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, startSeq_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, endSeq_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getTime());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, startSeq_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, endSeq_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTime() != other.hasTime()) return false;
      if (hasTime()) {
        if (!getTime()
            .equals(other.getTime())) return false;
      }
      if (hasStartSeq() != other.hasStartSeq()) return false;
      if (hasStartSeq()) {
        if (getStartSeq()
            != other.getStartSeq()) return false;
      }
      if (hasEndSeq() != other.hasEndSeq()) return false;
      if (hasEndSeq()) {
        if (getEndSeq()
            != other.getEndSeq()) 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 (hasTime()) {
        hash = (37 * hash) + TIME_FIELD_NUMBER;
        hash = (53 * hash) + getTime().hashCode();
      }
      if (hasStartSeq()) {
        hash = (37 * hash) + START_SEQ_FIELD_NUMBER;
        hash = (53 * hash) + getStartSeq();
      }
      if (hasEndSeq()) {
        hash = (37 * hash) + END_SEQ_FIELD_NUMBER;
        hash = (53 * hash) + getEndSeq();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisIndex_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisIndex.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisIndex.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeBuilder_ == null) {
          time_ = null;
        } else {
          timeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        startSeq_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        endSeq_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

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

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

      @Override
      public HisIndex buildPartial() {
        HisIndex result = new HisIndex(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (timeBuilder_ == null) {
            result.time_ = time_;
          } else {
            result.time_ = timeBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.startSeq_ = startSeq_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.endSeq_ = endSeq_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        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 HisIndex) {
          return mergeFrom((HisIndex)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisIndex other) {
        if (other == HisIndex.getDefaultInstance()) return this;
        if (other.hasTime()) {
          mergeTime(other.getTime());
        }
        if (other.hasStartSeq()) {
          setStartSeq(other.getStartSeq());
        }
        if (other.hasEndSeq()) {
          setEndSeq(other.getEndSeq());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTime()) {
          return false;
        }
        if (!hasStartSeq()) {
          return false;
        }
        if (!hasEndSeq()) {
          return false;
        }
        if (!getTime().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.RtTime time_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.RtTime, RealtimeData.RtTime.Builder, RealtimeData.RtTimeOrBuilder> timeBuilder_;
      /**
       * <code>required .RtTime time = 1;</code>
       * @return Whether the time field is set.
       */
      public boolean hasTime() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .RtTime time = 1;</code>
       * @return The time.
       */
      public RealtimeData.RtTime getTime() {
        if (timeBuilder_ == null) {
          return time_ == null ? RealtimeData.RtTime.getDefaultInstance() : time_;
        } else {
          return timeBuilder_.getMessage();
        }
      }
      /**
       * <code>required .RtTime time = 1;</code>
       */
      public Builder setTime(RealtimeData.RtTime value) {
        if (timeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          time_ = value;
          onChanged();
        } else {
          timeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .RtTime time = 1;</code>
       */
      public Builder setTime(
          RealtimeData.RtTime.Builder builderForValue) {
        if (timeBuilder_ == null) {
          time_ = builderForValue.build();
          onChanged();
        } else {
          timeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .RtTime time = 1;</code>
       */
      public Builder mergeTime(RealtimeData.RtTime value) {
        if (timeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              time_ != null &&
              time_ != RealtimeData.RtTime.getDefaultInstance()) {
            time_ =
              RealtimeData.RtTime.newBuilder(time_).mergeFrom(value).buildPartial();
          } else {
            time_ = value;
          }
          onChanged();
        } else {
          timeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .RtTime time = 1;</code>
       */
      public Builder clearTime() {
        if (timeBuilder_ == null) {
          time_ = null;
          onChanged();
        } else {
          timeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .RtTime time = 1;</code>
       */
      public RealtimeData.RtTime.Builder getTimeBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeFieldBuilder().getBuilder();
      }
      /**
       * <code>required .RtTime time = 1;</code>
       */
      public RealtimeData.RtTimeOrBuilder getTimeOrBuilder() {
        if (timeBuilder_ != null) {
          return timeBuilder_.getMessageOrBuilder();
        } else {
          return time_ == null ?
              RealtimeData.RtTime.getDefaultInstance() : time_;
        }
      }
      /**
       * <code>required .RtTime time = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.RtTime, RealtimeData.RtTime.Builder, RealtimeData.RtTimeOrBuilder>
          getTimeFieldBuilder() {
        if (timeBuilder_ == null) {
          timeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.RtTime, RealtimeData.RtTime.Builder, RealtimeData.RtTimeOrBuilder>(
                  getTime(),
                  getParentForChildren(),
                  isClean());
          time_ = null;
        }
        return timeBuilder_;
      }

      private int startSeq_ ;
      /**
       * <code>required fixed32 start_seq = 2;</code>
       * @return Whether the startSeq field is set.
       */
      public boolean hasStartSeq() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 start_seq = 2;</code>
       * @return The startSeq.
       */
      public int getStartSeq() {
        return startSeq_;
      }
      /**
       * <code>required fixed32 start_seq = 2;</code>
       * @param value The startSeq to set.
       * @return This builder for chaining.
       */
      public Builder setStartSeq(int value) {
        bitField0_ |= 0x00000002;
        startSeq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 start_seq = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartSeq() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startSeq_ = 0;
        onChanged();
        return this;
      }

      private int endSeq_ ;
      /**
       * <code>required fixed32 end_seq = 3;</code>
       * @return Whether the endSeq field is set.
       */
      public boolean hasEndSeq() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 end_seq = 3;</code>
       * @return The endSeq.
       */
      public int getEndSeq() {
        return endSeq_;
      }
      /**
       * <code>required fixed32 end_seq = 3;</code>
       * @param value The endSeq to set.
       * @return This builder for chaining.
       */
      public Builder setEndSeq(int value) {
        bitField0_ |= 0x00000004;
        endSeq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 end_seq = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndSeq() {
        bitField0_ = (bitField0_ & ~0x00000004);
        endSeq_ = 0;
        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:HisIndex)
    }

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

    public static HisIndex getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    java.util.List<HisIndex>
        getIndexList();
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    HisIndex getIndex(int index);
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    int getIndexCount();
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    java.util.List<? extends HisIndexOrBuilder>
        getIndexOrBuilderList();
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    HisIndexOrBuilder getIndexOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code HisIndexTable}
   */
  public  static final class HisIndexTable extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisIndexTable)
      HisIndexTableOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisIndexTable.newBuilder() to construct.
    private HisIndexTable(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisIndexTable() {
      index_ = java.util.Collections.emptyList();
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisIndexTable(
        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)) {
                index_ = new java.util.ArrayList<HisIndex>();
                mutable_bitField0_ |= 0x00000001;
              }
              index_.add(
                  input.readMessage(HisIndex.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)) {
          index_ = java.util.Collections.unmodifiableList(index_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisDataOuterClass.internal_static_HisIndexTable_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisIndexTable_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisIndexTable.class, Builder.class);
    }

    public static final int INDEX_FIELD_NUMBER = 1;
    private java.util.List<HisIndex> index_;
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    public java.util.List<HisIndex> getIndexList() {
      return index_;
    }
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    public java.util.List<? extends HisIndexOrBuilder>
        getIndexOrBuilderList() {
      return index_;
    }
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    public int getIndexCount() {
      return index_.size();
    }
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    public HisIndex getIndex(int index) {
      return index_.get(index);
    }
    /**
     * <code>repeated .HisIndex index = 1;</code>
     */
    public HisIndexOrBuilder getIndexOrBuilder(
        int index) {
      return index_.get(index);
    }

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

      for (int i = 0; i < getIndexCount(); i++) {
        if (!getIndex(i).isInitialized()) {
          memoizedIsInitialized = 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 < index_.size(); i++) {
        output.writeMessage(1, index_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

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

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

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

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisIndexTable_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisIndexTable.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisIndexTable.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

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

      @Override
      public HisIndexTable buildPartial() {
        HisIndexTable result = new HisIndexTable(this);
        int from_bitField0_ = bitField0_;
        if (indexBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            index_ = java.util.Collections.unmodifiableList(index_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.index_ = index_;
        } else {
          result.index_ = indexBuilder_.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 HisIndexTable) {
          return mergeFrom((HisIndexTable)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisIndexTable other) {
        if (other == HisIndexTable.getDefaultInstance()) return this;
        if (indexBuilder_ == null) {
          if (!other.index_.isEmpty()) {
            if (index_.isEmpty()) {
              index_ = other.index_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureIndexIsMutable();
              index_.addAll(other.index_);
            }
            onChanged();
          }
        } else {
          if (!other.index_.isEmpty()) {
            if (indexBuilder_.isEmpty()) {
              indexBuilder_.dispose();
              indexBuilder_ = null;
              index_ = other.index_;
              bitField0_ = (bitField0_ & ~0x00000001);
              indexBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIndexFieldBuilder() : null;
            } else {
              indexBuilder_.addAllMessages(other.index_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        for (int i = 0; i < getIndexCount(); i++) {
          if (!getIndex(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

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

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          HisIndex, HisIndex.Builder, HisIndexOrBuilder> indexBuilder_;

      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public java.util.List<HisIndex> getIndexList() {
        if (indexBuilder_ == null) {
          return java.util.Collections.unmodifiableList(index_);
        } else {
          return indexBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public int getIndexCount() {
        if (indexBuilder_ == null) {
          return index_.size();
        } else {
          return indexBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public HisIndex getIndex(int index) {
        if (indexBuilder_ == null) {
          return index_.get(index);
        } else {
          return indexBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder setIndex(
          int index, HisIndex value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.set(index, value);
          onChanged();
        } else {
          indexBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder setIndex(
          int index, HisIndex.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.set(index, builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder addIndex(HisIndex value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.add(value);
          onChanged();
        } else {
          indexBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder addIndex(
          int index, HisIndex value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.add(index, value);
          onChanged();
        } else {
          indexBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder addIndex(
          HisIndex.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.add(builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder addIndex(
          int index, HisIndex.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.add(index, builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder addAllIndex(
          Iterable<? extends HisIndex> values) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, index_);
          onChanged();
        } else {
          indexBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder clearIndex() {
        if (indexBuilder_ == null) {
          index_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          indexBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public Builder removeIndex(int index) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.remove(index);
          onChanged();
        } else {
          indexBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public HisIndex.Builder getIndexBuilder(
          int index) {
        return getIndexFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public HisIndexOrBuilder getIndexOrBuilder(
          int index) {
        if (indexBuilder_ == null) {
          return index_.get(index);  } else {
          return indexBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public java.util.List<? extends HisIndexOrBuilder>
           getIndexOrBuilderList() {
        if (indexBuilder_ != null) {
          return indexBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(index_);
        }
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public HisIndex.Builder addIndexBuilder() {
        return getIndexFieldBuilder().addBuilder(
            HisIndex.getDefaultInstance());
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public HisIndex.Builder addIndexBuilder(
          int index) {
        return getIndexFieldBuilder().addBuilder(
            index, HisIndex.getDefaultInstance());
      }
      /**
       * <code>repeated .HisIndex index = 1;</code>
       */
      public java.util.List<HisIndex.Builder>
           getIndexBuilderList() {
        return getIndexFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          HisIndex, HisIndex.Builder, HisIndexOrBuilder>
          getIndexFieldBuilder() {
        if (indexBuilder_ == null) {
          indexBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              HisIndex, HisIndex.Builder, HisIndexOrBuilder>(
                  index_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          index_ = null;
        }
        return indexBuilder_;
      }
      @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:HisIndexTable)
    }

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

    public static HisIndexTable getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required fixed32 seq = 1;</code>
     * @return Whether the seq field is set.
     */
    boolean hasSeq();
    /**
     * <code>required fixed32 seq = 1;</code>
     * @return The seq.
     */
    int getSeq();

    /**
     * <code>optional .HisDataStatus status = 2;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>optional .HisDataStatus status = 2;</code>
     * @return The status.
     */
    HisDataStatus getStatus();

    /**
     * <code>optional .HisDataHealth health = 3;</code>
     * @return Whether the health field is set.
     */
    boolean hasHealth();
    /**
     * <code>optional .HisDataHealth health = 3;</code>
     * @return The health.
     */
    HisHealthData.HisDataHealth getHealth();
    /**
     * <code>optional .HisDataHealth health = 3;</code>
     */
    HisHealthData.HisDataHealthOrBuilder getHealthOrBuilder();

    /**
     * <code>optional .HisDataGNSS gnss = 4;</code>
     * @return Whether the gnss field is set.
     */
    boolean hasGnss();
    /**
     * <code>optional .HisDataGNSS gnss = 4;</code>
     * @return The gnss.
     */
    HisGnssData.HisDataGNSS getGnss();
    /**
     * <code>optional .HisDataGNSS gnss = 4;</code>
     */
    HisGnssData.HisDataGNSSOrBuilder getGnssOrBuilder();

    /**
     * <code>optional .HisDataECG ecg = 5;</code>
     * @return Whether the ecg field is set.
     */
    boolean hasEcg();
    /**
     * <code>optional .HisDataECG ecg = 5;</code>
     * @return The ecg.
     */
    HisEcgData.HisDataECG getEcg();
    /**
     * <code>optional .HisDataECG ecg = 5;</code>
     */
    HisEcgData.HisDataECGOrBuilder getEcgOrBuilder();

    /**
     * <code>optional .HisDataPPG ppg = 6;</code>
     * @return Whether the ppg field is set.
     */
    boolean hasPpg();
    /**
     * <code>optional .HisDataPPG ppg = 6;</code>
     * @return The ppg.
     */
    HisPpgData.HisDataPPG getPpg();
    /**
     * <code>optional .HisDataPPG ppg = 6;</code>
     */
    HisPpgData.HisDataPPGOrBuilder getPpgOrBuilder();

    /**
     * <code>optional .HisDataRRI rri = 7;</code>
     * @return Whether the rri field is set.
     */
    boolean hasRri();
    /**
     * <code>optional .HisDataRRI rri = 7;</code>
     * @return The rri.
     */
    HisRriData.HisDataRRI getRri();
    /**
     * <code>optional .HisDataRRI rri = 7;</code>
     */
    HisRriData.HisDataRRIOrBuilder getRriOrBuilder();

    /**
     * <code>optional .HisDataMedic medic = 8;</code>
     * @return Whether the medic field is set.
     */
    boolean hasMedic();
    /**
     * <code>optional .HisDataMedic medic = 8;</code>
     * @return The medic.
     */
    HisMedicData.HisDataMedic getMedic();
    /**
     * <code>optional .HisDataMedic medic = 8;</code>
     */
    HisMedicData.HisDataMedicOrBuilder getMedicOrBuilder();

    /**
     * <code>optional .HisDataSpo2 spo2 = 9;</code>
     * @return Whether the spo2 field is set.
     */
    boolean hasSpo2();
    /**
     * <code>optional .HisDataSpo2 spo2 = 9;</code>
     * @return The spo2.
     */
    HisSpo2Data.HisDataSpo2 getSpo2();
    /**
     * <code>optional .HisDataSpo2 spo2 = 9;</code>
     */
    HisSpo2Data.HisDataSpo2OrBuilder getSpo2OrBuilder();

    /**
     * <code>optional .HisDataSwim swim = 10;</code>
     * @return Whether the swim field is set.
     */
    boolean hasSwim();
    /**
     * <code>optional .HisDataSwim swim = 10;</code>
     * @return The swim.
     */
    HisSwimData.HisDataSwim getSwim();
    /**
     * <code>optional .HisDataSwim swim = 10;</code>
     */
    HisSwimData.HisDataSwimOrBuilder getSwimOrBuilder();

    /**
     * <code>optional .HisDataTemperature temp = 11;</code>
     * @return Whether the temp field is set.
     */
    boolean hasTemp();
    /**
     * <code>optional .HisDataTemperature temp = 11;</code>
     * @return The temp.
     */
    HisTemperatureData.HisDataTemperature getTemp();
    /**
     * <code>optional .HisDataTemperature temp = 11;</code>
     */
    HisTemperatureData.HisDataTemperatureOrBuilder getTempOrBuilder();

    /**
     * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
     * @return Whether the healthencrypt field is set.
     */
    boolean hasHealthencrypt();
    /**
     * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
     * @return The healthencrypt.
     */
    HisEncryptHealthData.HisDataHealthEncrypt getHealthencrypt();
    /**
     * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
     */
    HisEncryptHealthData.HisDataHealthEncryptOrBuilder getHealthencryptOrBuilder();

    /**
     * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
     * @return Whether the ecgencrypt field is set.
     */
    boolean hasEcgencrypt();
    /**
     * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
     * @return The ecgencrypt.
     */
    HisEncryptEcgData.HisDataECGEncrypt getEcgencrypt();
    /**
     * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
     */
    HisEncryptEcgData.HisDataECGEncryptOrBuilder getEcgencryptOrBuilder();

    /**
     * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
     * @return Whether the ppgencrypt field is set.
     */
    boolean hasPpgencrypt();
    /**
     * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
     * @return The ppgencrypt.
     */
    HisEncryptPpgData.HisDataPPGEncrypt getPpgencrypt();
    /**
     * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
     */
    HisEncryptPpgData.HisDataPPGEncryptOrBuilder getPpgencryptOrBuilder();

    /**
     * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
     * @return Whether the rriencrypt field is set.
     */
    boolean hasRriencrypt();
    /**
     * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
     * @return The rriencrypt.
     */
    HisEncryptRriData.HisDataRRIEncrypt getRriencrypt();
    /**
     * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
     */
    HisEncryptRriData.HisDataRRIEncryptOrBuilder getRriencryptOrBuilder();

    /**
     * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
     * @return Whether the thirdPartyData field is set.
     */
    boolean hasThirdPartyData();
    /**
     * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
     * @return The thirdPartyData.
     */
    ThirdPartyHealthData.HisDataThirdParty getThirdPartyData();
    /**
     * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
     */
    ThirdPartyHealthData.HisDataThirdPartyOrBuilder getThirdPartyDataOrBuilder();

    /**
     * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
     * @return Whether the thirdPartyDataV2 field is set.
     */
    boolean hasThirdPartyDataV2();
    /**
     * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
     * @return The thirdPartyDataV2.
     */
    ThirdPartyHealthDataV2.HisDataThirdPartyV2 getThirdPartyDataV2();
    /**
     * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
     */
    ThirdPartyHealthDataV2.HisDataThirdPartyV2OrBuilder getThirdPartyDataV2OrBuilder();

    /**
     * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
     * @return Whether the aCCelerometerData field is set.
     */
    boolean hasACCelerometerData();
    /**
     * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
     * @return The aCCelerometerData.
     */
    ACCelerometerData.HisACCelerometer getACCelerometerData();
    /**
     * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
     */
    ACCelerometerData.HisACCelerometerOrBuilder getACCelerometerDataOrBuilder();

    /**
     * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
     * @return Whether the gyroscopeData field is set.
     */
    boolean hasGyroscopeData();
    /**
     * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
     * @return The gyroscopeData.
     */
    GyroscopeData.HisGyroscope getGyroscopeData();
    /**
     * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
     */
    GyroscopeData.HisGyroscopeOrBuilder getGyroscopeDataOrBuilder();

    /**
     * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
     * @return Whether the yYLPFE field is set.
     */
    boolean hasYYLPFE();
    /**
     * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
     * @return The yYLPFE.
     */
    HisYylpfeData.HisDataYYLPFE getYYLPFE();
    /**
     * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
     */
    HisYylpfeData.HisDataYYLPFEOrBuilder getYYLPFEOrBuilder();

    /**
     * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
     * @return Whether the multiLeadsECG field is set.
     */
    boolean hasMultiLeadsECG();
    /**
     * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
     * @return The multiLeadsECG.
     */
    HisMultiLeadsEcg.HisDataMultiLeadsECG getMultiLeadsECG();
    /**
     * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
     */
    HisMultiLeadsEcg.HisDataMultiLeadsECGOrBuilder getMultiLeadsECGOrBuilder();

    public HisData.DataCase getDataCase();
  }
  /**
   * Protobuf type {@code HisData}
   */
  public  static final class HisData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisData)
      HisDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisData.newBuilder() to construct.
    private HisData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisData() {
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisData(
        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 13: {
              bitField0_ |= 0x00000001;
              seq_ = input.readFixed32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              @SuppressWarnings("deprecation")
              HisDataStatus value = HisDataStatus.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                dataCase_ = 2;
                data_ = rawValue;
              }
              break;
            }
            case 26: {
              HisHealthData.HisDataHealth.Builder subBuilder = null;
              if (dataCase_ == 3) {
                subBuilder = ((HisHealthData.HisDataHealth) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisHealthData.HisDataHealth.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisHealthData.HisDataHealth) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 3;
              break;
            }
            case 34: {
              HisGnssData.HisDataGNSS.Builder subBuilder = null;
              if (dataCase_ == 4) {
                subBuilder = ((HisGnssData.HisDataGNSS) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisGnssData.HisDataGNSS.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisGnssData.HisDataGNSS) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 4;
              break;
            }
            case 42: {
              HisEcgData.HisDataECG.Builder subBuilder = null;
              if (dataCase_ == 5) {
                subBuilder = ((HisEcgData.HisDataECG) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisEcgData.HisDataECG.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisEcgData.HisDataECG) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 5;
              break;
            }
            case 50: {
              HisPpgData.HisDataPPG.Builder subBuilder = null;
              if (dataCase_ == 6) {
                subBuilder = ((HisPpgData.HisDataPPG) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisPpgData.HisDataPPG.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisPpgData.HisDataPPG) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 6;
              break;
            }
            case 58: {
              HisRriData.HisDataRRI.Builder subBuilder = null;
              if (dataCase_ == 7) {
                subBuilder = ((HisRriData.HisDataRRI) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisRriData.HisDataRRI.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisRriData.HisDataRRI) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 7;
              break;
            }
            case 66: {
              HisMedicData.HisDataMedic.Builder subBuilder = null;
              if (dataCase_ == 8) {
                subBuilder = ((HisMedicData.HisDataMedic) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisMedicData.HisDataMedic.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisMedicData.HisDataMedic) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 8;
              break;
            }
            case 74: {
              HisSpo2Data.HisDataSpo2.Builder subBuilder = null;
              if (dataCase_ == 9) {
                subBuilder = ((HisSpo2Data.HisDataSpo2) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisSpo2Data.HisDataSpo2.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisSpo2Data.HisDataSpo2) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 9;
              break;
            }
            case 82: {
              HisSwimData.HisDataSwim.Builder subBuilder = null;
              if (dataCase_ == 10) {
                subBuilder = ((HisSwimData.HisDataSwim) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisSwimData.HisDataSwim.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisSwimData.HisDataSwim) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 10;
              break;
            }
            case 90: {
              HisTemperatureData.HisDataTemperature.Builder subBuilder = null;
              if (dataCase_ == 11) {
                subBuilder = ((HisTemperatureData.HisDataTemperature) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisTemperatureData.HisDataTemperature.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisTemperatureData.HisDataTemperature) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 11;
              break;
            }
            case 98: {
              HisEncryptHealthData.HisDataHealthEncrypt.Builder subBuilder = null;
              if (dataCase_ == 12) {
                subBuilder = ((HisEncryptHealthData.HisDataHealthEncrypt) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisEncryptHealthData.HisDataHealthEncrypt.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisEncryptHealthData.HisDataHealthEncrypt) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 12;
              break;
            }
            case 106: {
              HisEncryptEcgData.HisDataECGEncrypt.Builder subBuilder = null;
              if (dataCase_ == 13) {
                subBuilder = ((HisEncryptEcgData.HisDataECGEncrypt) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisEncryptEcgData.HisDataECGEncrypt.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisEncryptEcgData.HisDataECGEncrypt) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 13;
              break;
            }
            case 114: {
              HisEncryptPpgData.HisDataPPGEncrypt.Builder subBuilder = null;
              if (dataCase_ == 14) {
                subBuilder = ((HisEncryptPpgData.HisDataPPGEncrypt) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisEncryptPpgData.HisDataPPGEncrypt.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisEncryptPpgData.HisDataPPGEncrypt) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 14;
              break;
            }
            case 122: {
              HisEncryptRriData.HisDataRRIEncrypt.Builder subBuilder = null;
              if (dataCase_ == 15) {
                subBuilder = ((HisEncryptRriData.HisDataRRIEncrypt) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisEncryptRriData.HisDataRRIEncrypt.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisEncryptRriData.HisDataRRIEncrypt) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 15;
              break;
            }
            case 130: {
              ThirdPartyHealthData.HisDataThirdParty.Builder subBuilder = null;
              if (dataCase_ == 16) {
                subBuilder = ((ThirdPartyHealthData.HisDataThirdParty) data_).toBuilder();
              }
              data_ =
                  input.readMessage(ThirdPartyHealthData.HisDataThirdParty.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((ThirdPartyHealthData.HisDataThirdParty) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 16;
              break;
            }
            case 138: {
              ThirdPartyHealthDataV2.HisDataThirdPartyV2.Builder subBuilder = null;
              if (dataCase_ == 17) {
                subBuilder = ((ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_).toBuilder();
              }
              data_ =
                  input.readMessage(ThirdPartyHealthDataV2.HisDataThirdPartyV2.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 17;
              break;
            }
            case 146: {
              ACCelerometerData.HisACCelerometer.Builder subBuilder = null;
              if (dataCase_ == 18) {
                subBuilder = ((ACCelerometerData.HisACCelerometer) data_).toBuilder();
              }
              data_ =
                  input.readMessage(ACCelerometerData.HisACCelerometer.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((ACCelerometerData.HisACCelerometer) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 18;
              break;
            }
            case 154: {
              GyroscopeData.HisGyroscope.Builder subBuilder = null;
              if (dataCase_ == 19) {
                subBuilder = ((GyroscopeData.HisGyroscope) data_).toBuilder();
              }
              data_ =
                  input.readMessage(GyroscopeData.HisGyroscope.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((GyroscopeData.HisGyroscope) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 19;
              break;
            }
            case 162: {
              HisYylpfeData.HisDataYYLPFE.Builder subBuilder = null;
              if (dataCase_ == 20) {
                subBuilder = ((HisYylpfeData.HisDataYYLPFE) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisYylpfeData.HisDataYYLPFE.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisYylpfeData.HisDataYYLPFE) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 20;
              break;
            }
            case 170: {
              HisMultiLeadsEcg.HisDataMultiLeadsECG.Builder subBuilder = null;
              if (dataCase_ == 21) {
                subBuilder = ((HisMultiLeadsEcg.HisDataMultiLeadsECG) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisMultiLeadsEcg.HisDataMultiLeadsECG.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisMultiLeadsEcg.HisDataMultiLeadsECG) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 21;
              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 HisDataOuterClass.internal_static_HisData_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisData.class, Builder.class);
    }

    private int bitField0_;
    private int dataCase_ = 0;
    private Object data_;
    public enum DataCase
        implements com.google.protobuf.Internal.EnumLite,
            InternalOneOfEnum {
      STATUS(2),
      HEALTH(3),
      GNSS(4),
      ECG(5),
      PPG(6),
      RRI(7),
      MEDIC(8),
      SPO2(9),
      SWIM(10),
      TEMP(11),
      HEALTHENCRYPT(12),
      ECGENCRYPT(13),
      PPGENCRYPT(14),
      RRIENCRYPT(15),
      THIRDPARTY_DATA(16),
      THIRDPARTY_DATA_V2(17),
      ACCELEROMETER_DATA(18),
      GYROSCOPE_DATA(19),
      YYLPFE(20),
      MULTILEADSECG(21),
      DATA_NOT_SET(0);
      private final int value;
      private DataCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @Deprecated
      public static DataCase valueOf(int value) {
        return forNumber(value);
      }

      public static DataCase forNumber(int value) {
        switch (value) {
          case 2: return STATUS;
          case 3: return HEALTH;
          case 4: return GNSS;
          case 5: return ECG;
          case 6: return PPG;
          case 7: return RRI;
          case 8: return MEDIC;
          case 9: return SPO2;
          case 10: return SWIM;
          case 11: return TEMP;
          case 12: return HEALTHENCRYPT;
          case 13: return ECGENCRYPT;
          case 14: return PPGENCRYPT;
          case 15: return RRIENCRYPT;
          case 16: return THIRDPARTY_DATA;
          case 17: return THIRDPARTY_DATA_V2;
          case 18: return ACCELEROMETER_DATA;
          case 19: return GYROSCOPE_DATA;
          case 20: return YYLPFE;
          case 21: return MULTILEADSECG;
          case 0: return DATA_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public DataCase
    getDataCase() {
      return DataCase.forNumber(
          dataCase_);
    }

    public static final int SEQ_FIELD_NUMBER = 1;
    private int seq_;
    /**
     * <code>required fixed32 seq = 1;</code>
     * @return Whether the seq field is set.
     */
    public boolean hasSeq() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 seq = 1;</code>
     * @return The seq.
     */
    public int getSeq() {
      return seq_;
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    /**
     * <code>optional .HisDataStatus status = 2;</code>
     * @return Whether the status field is set.
     */
    public boolean hasStatus() {
      return dataCase_ == 2;
    }
    /**
     * <code>optional .HisDataStatus status = 2;</code>
     * @return The status.
     */
    public HisDataStatus getStatus() {
      if (dataCase_ == 2) {
        @SuppressWarnings("deprecation")
        HisDataStatus result = HisDataStatus.valueOf(
            (Integer) data_);
        return result == null ? HisDataStatus.STATUS_OK : result;
      }
      return HisDataStatus.STATUS_OK;
    }

    public static final int HEALTH_FIELD_NUMBER = 3;
    /**
     * <code>optional .HisDataHealth health = 3;</code>
     * @return Whether the health field is set.
     */
    public boolean hasHealth() {
      return dataCase_ == 3;
    }
    /**
     * <code>optional .HisDataHealth health = 3;</code>
     * @return The health.
     */
    public HisHealthData.HisDataHealth getHealth() {
      if (dataCase_ == 3) {
         return (HisHealthData.HisDataHealth) data_;
      }
      return HisHealthData.HisDataHealth.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataHealth health = 3;</code>
     */
    public HisHealthData.HisDataHealthOrBuilder getHealthOrBuilder() {
      if (dataCase_ == 3) {
         return (HisHealthData.HisDataHealth) data_;
      }
      return HisHealthData.HisDataHealth.getDefaultInstance();
    }

    public static final int GNSS_FIELD_NUMBER = 4;
    /**
     * <code>optional .HisDataGNSS gnss = 4;</code>
     * @return Whether the gnss field is set.
     */
    public boolean hasGnss() {
      return dataCase_ == 4;
    }
    /**
     * <code>optional .HisDataGNSS gnss = 4;</code>
     * @return The gnss.
     */
    public HisGnssData.HisDataGNSS getGnss() {
      if (dataCase_ == 4) {
         return (HisGnssData.HisDataGNSS) data_;
      }
      return HisGnssData.HisDataGNSS.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataGNSS gnss = 4;</code>
     */
    public HisGnssData.HisDataGNSSOrBuilder getGnssOrBuilder() {
      if (dataCase_ == 4) {
         return (HisGnssData.HisDataGNSS) data_;
      }
      return HisGnssData.HisDataGNSS.getDefaultInstance();
    }

    public static final int ECG_FIELD_NUMBER = 5;
    /**
     * <code>optional .HisDataECG ecg = 5;</code>
     * @return Whether the ecg field is set.
     */
    public boolean hasEcg() {
      return dataCase_ == 5;
    }
    /**
     * <code>optional .HisDataECG ecg = 5;</code>
     * @return The ecg.
     */
    public HisEcgData.HisDataECG getEcg() {
      if (dataCase_ == 5) {
         return (HisEcgData.HisDataECG) data_;
      }
      return HisEcgData.HisDataECG.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataECG ecg = 5;</code>
     */
    public HisEcgData.HisDataECGOrBuilder getEcgOrBuilder() {
      if (dataCase_ == 5) {
         return (HisEcgData.HisDataECG) data_;
      }
      return HisEcgData.HisDataECG.getDefaultInstance();
    }

    public static final int PPG_FIELD_NUMBER = 6;
    /**
     * <code>optional .HisDataPPG ppg = 6;</code>
     * @return Whether the ppg field is set.
     */
    public boolean hasPpg() {
      return dataCase_ == 6;
    }
    /**
     * <code>optional .HisDataPPG ppg = 6;</code>
     * @return The ppg.
     */
    public HisPpgData.HisDataPPG getPpg() {
      if (dataCase_ == 6) {
         return (HisPpgData.HisDataPPG) data_;
      }
      return HisPpgData.HisDataPPG.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataPPG ppg = 6;</code>
     */
    public HisPpgData.HisDataPPGOrBuilder getPpgOrBuilder() {
      if (dataCase_ == 6) {
         return (HisPpgData.HisDataPPG) data_;
      }
      return HisPpgData.HisDataPPG.getDefaultInstance();
    }

    public static final int RRI_FIELD_NUMBER = 7;
    /**
     * <code>optional .HisDataRRI rri = 7;</code>
     * @return Whether the rri field is set.
     */
    public boolean hasRri() {
      return dataCase_ == 7;
    }
    /**
     * <code>optional .HisDataRRI rri = 7;</code>
     * @return The rri.
     */
    public HisRriData.HisDataRRI getRri() {
      if (dataCase_ == 7) {
         return (HisRriData.HisDataRRI) data_;
      }
      return HisRriData.HisDataRRI.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataRRI rri = 7;</code>
     */
    public HisRriData.HisDataRRIOrBuilder getRriOrBuilder() {
      if (dataCase_ == 7) {
         return (HisRriData.HisDataRRI) data_;
      }
      return HisRriData.HisDataRRI.getDefaultInstance();
    }

    public static final int MEDIC_FIELD_NUMBER = 8;
    /**
     * <code>optional .HisDataMedic medic = 8;</code>
     * @return Whether the medic field is set.
     */
    public boolean hasMedic() {
      return dataCase_ == 8;
    }
    /**
     * <code>optional .HisDataMedic medic = 8;</code>
     * @return The medic.
     */
    public HisMedicData.HisDataMedic getMedic() {
      if (dataCase_ == 8) {
         return (HisMedicData.HisDataMedic) data_;
      }
      return HisMedicData.HisDataMedic.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataMedic medic = 8;</code>
     */
    public HisMedicData.HisDataMedicOrBuilder getMedicOrBuilder() {
      if (dataCase_ == 8) {
         return (HisMedicData.HisDataMedic) data_;
      }
      return HisMedicData.HisDataMedic.getDefaultInstance();
    }

    public static final int SPO2_FIELD_NUMBER = 9;
    /**
     * <code>optional .HisDataSpo2 spo2 = 9;</code>
     * @return Whether the spo2 field is set.
     */
    public boolean hasSpo2() {
      return dataCase_ == 9;
    }
    /**
     * <code>optional .HisDataSpo2 spo2 = 9;</code>
     * @return The spo2.
     */
    public HisSpo2Data.HisDataSpo2 getSpo2() {
      if (dataCase_ == 9) {
         return (HisSpo2Data.HisDataSpo2) data_;
      }
      return HisSpo2Data.HisDataSpo2.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataSpo2 spo2 = 9;</code>
     */
    public HisSpo2Data.HisDataSpo2OrBuilder getSpo2OrBuilder() {
      if (dataCase_ == 9) {
         return (HisSpo2Data.HisDataSpo2) data_;
      }
      return HisSpo2Data.HisDataSpo2.getDefaultInstance();
    }

    public static final int SWIM_FIELD_NUMBER = 10;
    /**
     * <code>optional .HisDataSwim swim = 10;</code>
     * @return Whether the swim field is set.
     */
    public boolean hasSwim() {
      return dataCase_ == 10;
    }
    /**
     * <code>optional .HisDataSwim swim = 10;</code>
     * @return The swim.
     */
    public HisSwimData.HisDataSwim getSwim() {
      if (dataCase_ == 10) {
         return (HisSwimData.HisDataSwim) data_;
      }
      return HisSwimData.HisDataSwim.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataSwim swim = 10;</code>
     */
    public HisSwimData.HisDataSwimOrBuilder getSwimOrBuilder() {
      if (dataCase_ == 10) {
         return (HisSwimData.HisDataSwim) data_;
      }
      return HisSwimData.HisDataSwim.getDefaultInstance();
    }

    public static final int TEMP_FIELD_NUMBER = 11;
    /**
     * <code>optional .HisDataTemperature temp = 11;</code>
     * @return Whether the temp field is set.
     */
    public boolean hasTemp() {
      return dataCase_ == 11;
    }
    /**
     * <code>optional .HisDataTemperature temp = 11;</code>
     * @return The temp.
     */
    public HisTemperatureData.HisDataTemperature getTemp() {
      if (dataCase_ == 11) {
         return (HisTemperatureData.HisDataTemperature) data_;
      }
      return HisTemperatureData.HisDataTemperature.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataTemperature temp = 11;</code>
     */
    public HisTemperatureData.HisDataTemperatureOrBuilder getTempOrBuilder() {
      if (dataCase_ == 11) {
         return (HisTemperatureData.HisDataTemperature) data_;
      }
      return HisTemperatureData.HisDataTemperature.getDefaultInstance();
    }

    public static final int HEALTHENCRYPT_FIELD_NUMBER = 12;
    /**
     * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
     * @return Whether the healthencrypt field is set.
     */
    public boolean hasHealthencrypt() {
      return dataCase_ == 12;
    }
    /**
     * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
     * @return The healthencrypt.
     */
    public HisEncryptHealthData.HisDataHealthEncrypt getHealthencrypt() {
      if (dataCase_ == 12) {
         return (HisEncryptHealthData.HisDataHealthEncrypt) data_;
      }
      return HisEncryptHealthData.HisDataHealthEncrypt.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
     */
    public HisEncryptHealthData.HisDataHealthEncryptOrBuilder getHealthencryptOrBuilder() {
      if (dataCase_ == 12) {
         return (HisEncryptHealthData.HisDataHealthEncrypt) data_;
      }
      return HisEncryptHealthData.HisDataHealthEncrypt.getDefaultInstance();
    }

    public static final int ECGENCRYPT_FIELD_NUMBER = 13;
    /**
     * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
     * @return Whether the ecgencrypt field is set.
     */
    public boolean hasEcgencrypt() {
      return dataCase_ == 13;
    }
    /**
     * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
     * @return The ecgencrypt.
     */
    public HisEncryptEcgData.HisDataECGEncrypt getEcgencrypt() {
      if (dataCase_ == 13) {
         return (HisEncryptEcgData.HisDataECGEncrypt) data_;
      }
      return HisEncryptEcgData.HisDataECGEncrypt.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
     */
    public HisEncryptEcgData.HisDataECGEncryptOrBuilder getEcgencryptOrBuilder() {
      if (dataCase_ == 13) {
         return (HisEncryptEcgData.HisDataECGEncrypt) data_;
      }
      return HisEncryptEcgData.HisDataECGEncrypt.getDefaultInstance();
    }

    public static final int PPGENCRYPT_FIELD_NUMBER = 14;
    /**
     * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
     * @return Whether the ppgencrypt field is set.
     */
    public boolean hasPpgencrypt() {
      return dataCase_ == 14;
    }
    /**
     * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
     * @return The ppgencrypt.
     */
    public HisEncryptPpgData.HisDataPPGEncrypt getPpgencrypt() {
      if (dataCase_ == 14) {
         return (HisEncryptPpgData.HisDataPPGEncrypt) data_;
      }
      return HisEncryptPpgData.HisDataPPGEncrypt.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
     */
    public HisEncryptPpgData.HisDataPPGEncryptOrBuilder getPpgencryptOrBuilder() {
      if (dataCase_ == 14) {
         return (HisEncryptPpgData.HisDataPPGEncrypt) data_;
      }
      return HisEncryptPpgData.HisDataPPGEncrypt.getDefaultInstance();
    }

    public static final int RRIENCRYPT_FIELD_NUMBER = 15;
    /**
     * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
     * @return Whether the rriencrypt field is set.
     */
    public boolean hasRriencrypt() {
      return dataCase_ == 15;
    }
    /**
     * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
     * @return The rriencrypt.
     */
    public HisEncryptRriData.HisDataRRIEncrypt getRriencrypt() {
      if (dataCase_ == 15) {
         return (HisEncryptRriData.HisDataRRIEncrypt) data_;
      }
      return HisEncryptRriData.HisDataRRIEncrypt.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
     */
    public HisEncryptRriData.HisDataRRIEncryptOrBuilder getRriencryptOrBuilder() {
      if (dataCase_ == 15) {
         return (HisEncryptRriData.HisDataRRIEncrypt) data_;
      }
      return HisEncryptRriData.HisDataRRIEncrypt.getDefaultInstance();
    }

    public static final int THIRDPARTY_DATA_FIELD_NUMBER = 16;
    /**
     * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
     * @return Whether the thirdPartyData field is set.
     */
    public boolean hasThirdPartyData() {
      return dataCase_ == 16;
    }
    /**
     * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
     * @return The thirdPartyData.
     */
    public ThirdPartyHealthData.HisDataThirdParty getThirdPartyData() {
      if (dataCase_ == 16) {
         return (ThirdPartyHealthData.HisDataThirdParty) data_;
      }
      return ThirdPartyHealthData.HisDataThirdParty.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
     */
    public ThirdPartyHealthData.HisDataThirdPartyOrBuilder getThirdPartyDataOrBuilder() {
      if (dataCase_ == 16) {
         return (ThirdPartyHealthData.HisDataThirdParty) data_;
      }
      return ThirdPartyHealthData.HisDataThirdParty.getDefaultInstance();
    }

    public static final int THIRDPARTY_DATA_V2_FIELD_NUMBER = 17;
    /**
     * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
     * @return Whether the thirdPartyDataV2 field is set.
     */
    public boolean hasThirdPartyDataV2() {
      return dataCase_ == 17;
    }
    /**
     * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
     * @return The thirdPartyDataV2.
     */
    public ThirdPartyHealthDataV2.HisDataThirdPartyV2 getThirdPartyDataV2() {
      if (dataCase_ == 17) {
         return (ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_;
      }
      return ThirdPartyHealthDataV2.HisDataThirdPartyV2.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
     */
    public ThirdPartyHealthDataV2.HisDataThirdPartyV2OrBuilder getThirdPartyDataV2OrBuilder() {
      if (dataCase_ == 17) {
         return (ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_;
      }
      return ThirdPartyHealthDataV2.HisDataThirdPartyV2.getDefaultInstance();
    }

    public static final int ACCELEROMETER_DATA_FIELD_NUMBER = 18;
    /**
     * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
     * @return Whether the aCCelerometerData field is set.
     */
    public boolean hasACCelerometerData() {
      return dataCase_ == 18;
    }
    /**
     * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
     * @return The aCCelerometerData.
     */
    public ACCelerometerData.HisACCelerometer getACCelerometerData() {
      if (dataCase_ == 18) {
         return (ACCelerometerData.HisACCelerometer) data_;
      }
      return ACCelerometerData.HisACCelerometer.getDefaultInstance();
    }
    /**
     * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
     */
    public ACCelerometerData.HisACCelerometerOrBuilder getACCelerometerDataOrBuilder() {
      if (dataCase_ == 18) {
         return (ACCelerometerData.HisACCelerometer) data_;
      }
      return ACCelerometerData.HisACCelerometer.getDefaultInstance();
    }

    public static final int GYROSCOPE_DATA_FIELD_NUMBER = 19;
    /**
     * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
     * @return Whether the gyroscopeData field is set.
     */
    public boolean hasGyroscopeData() {
      return dataCase_ == 19;
    }
    /**
     * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
     * @return The gyroscopeData.
     */
    public GyroscopeData.HisGyroscope getGyroscopeData() {
      if (dataCase_ == 19) {
         return (GyroscopeData.HisGyroscope) data_;
      }
      return GyroscopeData.HisGyroscope.getDefaultInstance();
    }
    /**
     * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
     */
    public GyroscopeData.HisGyroscopeOrBuilder getGyroscopeDataOrBuilder() {
      if (dataCase_ == 19) {
         return (GyroscopeData.HisGyroscope) data_;
      }
      return GyroscopeData.HisGyroscope.getDefaultInstance();
    }

    public static final int YYLPFE_FIELD_NUMBER = 20;
    /**
     * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
     * @return Whether the yYLPFE field is set.
     */
    public boolean hasYYLPFE() {
      return dataCase_ == 20;
    }
    /**
     * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
     * @return The yYLPFE.
     */
    public HisYylpfeData.HisDataYYLPFE getYYLPFE() {
      if (dataCase_ == 20) {
         return (HisYylpfeData.HisDataYYLPFE) data_;
      }
      return HisYylpfeData.HisDataYYLPFE.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
     */
    public HisYylpfeData.HisDataYYLPFEOrBuilder getYYLPFEOrBuilder() {
      if (dataCase_ == 20) {
         return (HisYylpfeData.HisDataYYLPFE) data_;
      }
      return HisYylpfeData.HisDataYYLPFE.getDefaultInstance();
    }

    public static final int MULTILEADSECG_FIELD_NUMBER = 21;
    /**
     * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
     * @return Whether the multiLeadsECG field is set.
     */
    public boolean hasMultiLeadsECG() {
      return dataCase_ == 21;
    }
    /**
     * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
     * @return The multiLeadsECG.
     */
    public HisMultiLeadsEcg.HisDataMultiLeadsECG getMultiLeadsECG() {
      if (dataCase_ == 21) {
         return (HisMultiLeadsEcg.HisDataMultiLeadsECG) data_;
      }
      return HisMultiLeadsEcg.HisDataMultiLeadsECG.getDefaultInstance();
    }
    /**
     * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
     */
    public HisMultiLeadsEcg.HisDataMultiLeadsECGOrBuilder getMultiLeadsECGOrBuilder() {
      if (dataCase_ == 21) {
         return (HisMultiLeadsEcg.HisDataMultiLeadsECG) data_;
      }
      return HisMultiLeadsEcg.HisDataMultiLeadsECG.getDefaultInstance();
    }

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

      if (!hasSeq()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasHealth()) {
        if (!getHealth().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGnss()) {
        if (!getGnss().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEcg()) {
        if (!getEcg().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPpg()) {
        if (!getPpg().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRri()) {
        if (!getRri().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMedic()) {
        if (!getMedic().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSpo2()) {
        if (!getSpo2().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSwim()) {
        if (!getSwim().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTemp()) {
        if (!getTemp().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasHealthencrypt()) {
        if (!getHealthencrypt().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEcgencrypt()) {
        if (!getEcgencrypt().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPpgencrypt()) {
        if (!getPpgencrypt().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRriencrypt()) {
        if (!getRriencrypt().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasThirdPartyData()) {
        if (!getThirdPartyData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasThirdPartyDataV2()) {
        if (!getThirdPartyDataV2().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasACCelerometerData()) {
        if (!getACCelerometerData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGyroscopeData()) {
        if (!getGyroscopeData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasYYLPFE()) {
        if (!getYYLPFE().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMultiLeadsECG()) {
        if (!getMultiLeadsECG().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, seq_);
      }
      if (dataCase_ == 2) {
        output.writeEnum(2, ((Integer) data_));
      }
      if (dataCase_ == 3) {
        output.writeMessage(3, (HisHealthData.HisDataHealth) data_);
      }
      if (dataCase_ == 4) {
        output.writeMessage(4, (HisGnssData.HisDataGNSS) data_);
      }
      if (dataCase_ == 5) {
        output.writeMessage(5, (HisEcgData.HisDataECG) data_);
      }
      if (dataCase_ == 6) {
        output.writeMessage(6, (HisPpgData.HisDataPPG) data_);
      }
      if (dataCase_ == 7) {
        output.writeMessage(7, (HisRriData.HisDataRRI) data_);
      }
      if (dataCase_ == 8) {
        output.writeMessage(8, (HisMedicData.HisDataMedic) data_);
      }
      if (dataCase_ == 9) {
        output.writeMessage(9, (HisSpo2Data.HisDataSpo2) data_);
      }
      if (dataCase_ == 10) {
        output.writeMessage(10, (HisSwimData.HisDataSwim) data_);
      }
      if (dataCase_ == 11) {
        output.writeMessage(11, (HisTemperatureData.HisDataTemperature) data_);
      }
      if (dataCase_ == 12) {
        output.writeMessage(12, (HisEncryptHealthData.HisDataHealthEncrypt) data_);
      }
      if (dataCase_ == 13) {
        output.writeMessage(13, (HisEncryptEcgData.HisDataECGEncrypt) data_);
      }
      if (dataCase_ == 14) {
        output.writeMessage(14, (HisEncryptPpgData.HisDataPPGEncrypt) data_);
      }
      if (dataCase_ == 15) {
        output.writeMessage(15, (HisEncryptRriData.HisDataRRIEncrypt) data_);
      }
      if (dataCase_ == 16) {
        output.writeMessage(16, (ThirdPartyHealthData.HisDataThirdParty) data_);
      }
      if (dataCase_ == 17) {
        output.writeMessage(17, (ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_);
      }
      if (dataCase_ == 18) {
        output.writeMessage(18, (ACCelerometerData.HisACCelerometer) data_);
      }
      if (dataCase_ == 19) {
        output.writeMessage(19, (GyroscopeData.HisGyroscope) data_);
      }
      if (dataCase_ == 20) {
        output.writeMessage(20, (HisYylpfeData.HisDataYYLPFE) data_);
      }
      if (dataCase_ == 21) {
        output.writeMessage(21, (HisMultiLeadsEcg.HisDataMultiLeadsECG) data_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, seq_);
      }
      if (dataCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, ((Integer) data_));
      }
      if (dataCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (HisHealthData.HisDataHealth) data_);
      }
      if (dataCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (HisGnssData.HisDataGNSS) data_);
      }
      if (dataCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (HisEcgData.HisDataECG) data_);
      }
      if (dataCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (HisPpgData.HisDataPPG) data_);
      }
      if (dataCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (HisRriData.HisDataRRI) data_);
      }
      if (dataCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (HisMedicData.HisDataMedic) data_);
      }
      if (dataCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (HisSpo2Data.HisDataSpo2) data_);
      }
      if (dataCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (HisSwimData.HisDataSwim) data_);
      }
      if (dataCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (HisTemperatureData.HisDataTemperature) data_);
      }
      if (dataCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (HisEncryptHealthData.HisDataHealthEncrypt) data_);
      }
      if (dataCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (HisEncryptEcgData.HisDataECGEncrypt) data_);
      }
      if (dataCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (HisEncryptPpgData.HisDataPPGEncrypt) data_);
      }
      if (dataCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (HisEncryptRriData.HisDataRRIEncrypt) data_);
      }
      if (dataCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (ThirdPartyHealthData.HisDataThirdParty) data_);
      }
      if (dataCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_);
      }
      if (dataCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, (ACCelerometerData.HisACCelerometer) data_);
      }
      if (dataCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, (GyroscopeData.HisGyroscope) data_);
      }
      if (dataCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, (HisYylpfeData.HisDataYYLPFE) data_);
      }
      if (dataCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (HisMultiLeadsEcg.HisDataMultiLeadsECG) data_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasSeq() != other.hasSeq()) return false;
      if (hasSeq()) {
        if (getSeq()
            != other.getSeq()) return false;
      }
      if (!getDataCase().equals(other.getDataCase())) return false;
      switch (dataCase_) {
        case 2:
          if (!getStatus()
              .equals(other.getStatus())) return false;
          break;
        case 3:
          if (!getHealth()
              .equals(other.getHealth())) return false;
          break;
        case 4:
          if (!getGnss()
              .equals(other.getGnss())) return false;
          break;
        case 5:
          if (!getEcg()
              .equals(other.getEcg())) return false;
          break;
        case 6:
          if (!getPpg()
              .equals(other.getPpg())) return false;
          break;
        case 7:
          if (!getRri()
              .equals(other.getRri())) return false;
          break;
        case 8:
          if (!getMedic()
              .equals(other.getMedic())) return false;
          break;
        case 9:
          if (!getSpo2()
              .equals(other.getSpo2())) return false;
          break;
        case 10:
          if (!getSwim()
              .equals(other.getSwim())) return false;
          break;
        case 11:
          if (!getTemp()
              .equals(other.getTemp())) return false;
          break;
        case 12:
          if (!getHealthencrypt()
              .equals(other.getHealthencrypt())) return false;
          break;
        case 13:
          if (!getEcgencrypt()
              .equals(other.getEcgencrypt())) return false;
          break;
        case 14:
          if (!getPpgencrypt()
              .equals(other.getPpgencrypt())) return false;
          break;
        case 15:
          if (!getRriencrypt()
              .equals(other.getRriencrypt())) return false;
          break;
        case 16:
          if (!getThirdPartyData()
              .equals(other.getThirdPartyData())) return false;
          break;
        case 17:
          if (!getThirdPartyDataV2()
              .equals(other.getThirdPartyDataV2())) return false;
          break;
        case 18:
          if (!getACCelerometerData()
              .equals(other.getACCelerometerData())) return false;
          break;
        case 19:
          if (!getGyroscopeData()
              .equals(other.getGyroscopeData())) return false;
          break;
        case 20:
          if (!getYYLPFE()
              .equals(other.getYYLPFE())) return false;
          break;
        case 21:
          if (!getMultiLeadsECG()
              .equals(other.getMultiLeadsECG())) return false;
          break;
        case 0:
        default:
      }
      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 (hasSeq()) {
        hash = (37 * hash) + SEQ_FIELD_NUMBER;
        hash = (53 * hash) + getSeq();
      }
      switch (dataCase_) {
        case 2:
          hash = (37 * hash) + STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getStatus().getNumber();
          break;
        case 3:
          hash = (37 * hash) + HEALTH_FIELD_NUMBER;
          hash = (53 * hash) + getHealth().hashCode();
          break;
        case 4:
          hash = (37 * hash) + GNSS_FIELD_NUMBER;
          hash = (53 * hash) + getGnss().hashCode();
          break;
        case 5:
          hash = (37 * hash) + ECG_FIELD_NUMBER;
          hash = (53 * hash) + getEcg().hashCode();
          break;
        case 6:
          hash = (37 * hash) + PPG_FIELD_NUMBER;
          hash = (53 * hash) + getPpg().hashCode();
          break;
        case 7:
          hash = (37 * hash) + RRI_FIELD_NUMBER;
          hash = (53 * hash) + getRri().hashCode();
          break;
        case 8:
          hash = (37 * hash) + MEDIC_FIELD_NUMBER;
          hash = (53 * hash) + getMedic().hashCode();
          break;
        case 9:
          hash = (37 * hash) + SPO2_FIELD_NUMBER;
          hash = (53 * hash) + getSpo2().hashCode();
          break;
        case 10:
          hash = (37 * hash) + SWIM_FIELD_NUMBER;
          hash = (53 * hash) + getSwim().hashCode();
          break;
        case 11:
          hash = (37 * hash) + TEMP_FIELD_NUMBER;
          hash = (53 * hash) + getTemp().hashCode();
          break;
        case 12:
          hash = (37 * hash) + HEALTHENCRYPT_FIELD_NUMBER;
          hash = (53 * hash) + getHealthencrypt().hashCode();
          break;
        case 13:
          hash = (37 * hash) + ECGENCRYPT_FIELD_NUMBER;
          hash = (53 * hash) + getEcgencrypt().hashCode();
          break;
        case 14:
          hash = (37 * hash) + PPGENCRYPT_FIELD_NUMBER;
          hash = (53 * hash) + getPpgencrypt().hashCode();
          break;
        case 15:
          hash = (37 * hash) + RRIENCRYPT_FIELD_NUMBER;
          hash = (53 * hash) + getRriencrypt().hashCode();
          break;
        case 16:
          hash = (37 * hash) + THIRDPARTY_DATA_FIELD_NUMBER;
          hash = (53 * hash) + getThirdPartyData().hashCode();
          break;
        case 17:
          hash = (37 * hash) + THIRDPARTY_DATA_V2_FIELD_NUMBER;
          hash = (53 * hash) + getThirdPartyDataV2().hashCode();
          break;
        case 18:
          hash = (37 * hash) + ACCELEROMETER_DATA_FIELD_NUMBER;
          hash = (53 * hash) + getACCelerometerData().hashCode();
          break;
        case 19:
          hash = (37 * hash) + GYROSCOPE_DATA_FIELD_NUMBER;
          hash = (53 * hash) + getGyroscopeData().hashCode();
          break;
        case 20:
          hash = (37 * hash) + YYLPFE_FIELD_NUMBER;
          hash = (53 * hash) + getYYLPFE().hashCode();
          break;
        case 21:
          hash = (37 * hash) + MULTILEADSECG_FIELD_NUMBER;
          hash = (53 * hash) + getMultiLeadsECG().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisData.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisData.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();
        seq_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        dataCase_ = 0;
        data_ = null;
        return this;
      }

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

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

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

      @Override
      public HisData buildPartial() {
        HisData result = new HisData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.seq_ = seq_;
          to_bitField0_ |= 0x00000001;
        }
        if (dataCase_ == 2) {
          result.data_ = data_;
        }
        if (dataCase_ == 3) {
          if (healthBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = healthBuilder_.build();
          }
        }
        if (dataCase_ == 4) {
          if (gnssBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = gnssBuilder_.build();
          }
        }
        if (dataCase_ == 5) {
          if (ecgBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = ecgBuilder_.build();
          }
        }
        if (dataCase_ == 6) {
          if (ppgBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = ppgBuilder_.build();
          }
        }
        if (dataCase_ == 7) {
          if (rriBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = rriBuilder_.build();
          }
        }
        if (dataCase_ == 8) {
          if (medicBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = medicBuilder_.build();
          }
        }
        if (dataCase_ == 9) {
          if (spo2Builder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = spo2Builder_.build();
          }
        }
        if (dataCase_ == 10) {
          if (swimBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = swimBuilder_.build();
          }
        }
        if (dataCase_ == 11) {
          if (tempBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = tempBuilder_.build();
          }
        }
        if (dataCase_ == 12) {
          if (healthencryptBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = healthencryptBuilder_.build();
          }
        }
        if (dataCase_ == 13) {
          if (ecgencryptBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = ecgencryptBuilder_.build();
          }
        }
        if (dataCase_ == 14) {
          if (ppgencryptBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = ppgencryptBuilder_.build();
          }
        }
        if (dataCase_ == 15) {
          if (rriencryptBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = rriencryptBuilder_.build();
          }
        }
        if (dataCase_ == 16) {
          if (thirdPartyDataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = thirdPartyDataBuilder_.build();
          }
        }
        if (dataCase_ == 17) {
          if (thirdPartyDataV2Builder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = thirdPartyDataV2Builder_.build();
          }
        }
        if (dataCase_ == 18) {
          if (aCCelerometerDataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = aCCelerometerDataBuilder_.build();
          }
        }
        if (dataCase_ == 19) {
          if (gyroscopeDataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = gyroscopeDataBuilder_.build();
          }
        }
        if (dataCase_ == 20) {
          if (yYLPFEBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = yYLPFEBuilder_.build();
          }
        }
        if (dataCase_ == 21) {
          if (multiLeadsECGBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = multiLeadsECGBuilder_.build();
          }
        }
        result.bitField0_ = to_bitField0_;
        result.dataCase_ = dataCase_;
        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 HisData) {
          return mergeFrom((HisData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisData other) {
        if (other == HisData.getDefaultInstance()) return this;
        if (other.hasSeq()) {
          setSeq(other.getSeq());
        }
        switch (other.getDataCase()) {
          case STATUS: {
            setStatus(other.getStatus());
            break;
          }
          case HEALTH: {
            mergeHealth(other.getHealth());
            break;
          }
          case GNSS: {
            mergeGnss(other.getGnss());
            break;
          }
          case ECG: {
            mergeEcg(other.getEcg());
            break;
          }
          case PPG: {
            mergePpg(other.getPpg());
            break;
          }
          case RRI: {
            mergeRri(other.getRri());
            break;
          }
          case MEDIC: {
            mergeMedic(other.getMedic());
            break;
          }
          case SPO2: {
            mergeSpo2(other.getSpo2());
            break;
          }
          case SWIM: {
            mergeSwim(other.getSwim());
            break;
          }
          case TEMP: {
            mergeTemp(other.getTemp());
            break;
          }
          case HEALTHENCRYPT: {
            mergeHealthencrypt(other.getHealthencrypt());
            break;
          }
          case ECGENCRYPT: {
            mergeEcgencrypt(other.getEcgencrypt());
            break;
          }
          case PPGENCRYPT: {
            mergePpgencrypt(other.getPpgencrypt());
            break;
          }
          case RRIENCRYPT: {
            mergeRriencrypt(other.getRriencrypt());
            break;
          }
          case THIRDPARTY_DATA: {
            mergeThirdPartyData(other.getThirdPartyData());
            break;
          }
          case THIRDPARTY_DATA_V2: {
            mergeThirdPartyDataV2(other.getThirdPartyDataV2());
            break;
          }
          case ACCELEROMETER_DATA: {
            mergeACCelerometerData(other.getACCelerometerData());
            break;
          }
          case GYROSCOPE_DATA: {
            mergeGyroscopeData(other.getGyroscopeData());
            break;
          }
          case YYLPFE: {
            mergeYYLPFE(other.getYYLPFE());
            break;
          }
          case MULTILEADSECG: {
            mergeMultiLeadsECG(other.getMultiLeadsECG());
            break;
          }
          case DATA_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasSeq()) {
          return false;
        }
        if (hasHealth()) {
          if (!getHealth().isInitialized()) {
            return false;
          }
        }
        if (hasGnss()) {
          if (!getGnss().isInitialized()) {
            return false;
          }
        }
        if (hasEcg()) {
          if (!getEcg().isInitialized()) {
            return false;
          }
        }
        if (hasPpg()) {
          if (!getPpg().isInitialized()) {
            return false;
          }
        }
        if (hasRri()) {
          if (!getRri().isInitialized()) {
            return false;
          }
        }
        if (hasMedic()) {
          if (!getMedic().isInitialized()) {
            return false;
          }
        }
        if (hasSpo2()) {
          if (!getSpo2().isInitialized()) {
            return false;
          }
        }
        if (hasSwim()) {
          if (!getSwim().isInitialized()) {
            return false;
          }
        }
        if (hasTemp()) {
          if (!getTemp().isInitialized()) {
            return false;
          }
        }
        if (hasHealthencrypt()) {
          if (!getHealthencrypt().isInitialized()) {
            return false;
          }
        }
        if (hasEcgencrypt()) {
          if (!getEcgencrypt().isInitialized()) {
            return false;
          }
        }
        if (hasPpgencrypt()) {
          if (!getPpgencrypt().isInitialized()) {
            return false;
          }
        }
        if (hasRriencrypt()) {
          if (!getRriencrypt().isInitialized()) {
            return false;
          }
        }
        if (hasThirdPartyData()) {
          if (!getThirdPartyData().isInitialized()) {
            return false;
          }
        }
        if (hasThirdPartyDataV2()) {
          if (!getThirdPartyDataV2().isInitialized()) {
            return false;
          }
        }
        if (hasACCelerometerData()) {
          if (!getACCelerometerData().isInitialized()) {
            return false;
          }
        }
        if (hasGyroscopeData()) {
          if (!getGyroscopeData().isInitialized()) {
            return false;
          }
        }
        if (hasYYLPFE()) {
          if (!getYYLPFE().isInitialized()) {
            return false;
          }
        }
        if (hasMultiLeadsECG()) {
          if (!getMultiLeadsECG().isInitialized()) {
            return false;
          }
        }
        return true;
      }

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

      public Builder clearData() {
        dataCase_ = 0;
        data_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int seq_ ;
      /**
       * <code>required fixed32 seq = 1;</code>
       * @return Whether the seq field is set.
       */
      public boolean hasSeq() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 seq = 1;</code>
       * @return The seq.
       */
      public int getSeq() {
        return seq_;
      }
      /**
       * <code>required fixed32 seq = 1;</code>
       * @param value The seq to set.
       * @return This builder for chaining.
       */
      public Builder setSeq(int value) {
        bitField0_ |= 0x00000001;
        seq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 seq = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSeq() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seq_ = 0;
        onChanged();
        return this;
      }

      /**
       * <code>optional .HisDataStatus status = 2;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return dataCase_ == 2;
      }
      /**
       * <code>optional .HisDataStatus status = 2;</code>
       * @return The status.
       */
      public HisDataStatus getStatus() {
        if (dataCase_ == 2) {
          @SuppressWarnings("deprecation")
          HisDataStatus result = HisDataStatus.valueOf(
              (Integer) data_);
          return result == null ? HisDataStatus.STATUS_OK : result;
        }
        return HisDataStatus.STATUS_OK;
      }
      /**
       * <code>optional .HisDataStatus status = 2;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(HisDataStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dataCase_ = 2;
        data_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .HisDataStatus status = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        if (dataCase_ == 2) {
          dataCase_ = 0;
          data_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthData.HisDataHealth, HisHealthData.HisDataHealth.Builder, HisHealthData.HisDataHealthOrBuilder> healthBuilder_;
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       * @return Whether the health field is set.
       */
      public boolean hasHealth() {
        return dataCase_ == 3;
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       * @return The health.
       */
      public HisHealthData.HisDataHealth getHealth() {
        if (healthBuilder_ == null) {
          if (dataCase_ == 3) {
            return (HisHealthData.HisDataHealth) data_;
          }
          return HisHealthData.HisDataHealth.getDefaultInstance();
        } else {
          if (dataCase_ == 3) {
            return healthBuilder_.getMessage();
          }
          return HisHealthData.HisDataHealth.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       */
      public Builder setHealth(HisHealthData.HisDataHealth value) {
        if (healthBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          healthBuilder_.setMessage(value);
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       */
      public Builder setHealth(
          HisHealthData.HisDataHealth.Builder builderForValue) {
        if (healthBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          healthBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       */
      public Builder mergeHealth(HisHealthData.HisDataHealth value) {
        if (healthBuilder_ == null) {
          if (dataCase_ == 3 &&
              data_ != HisHealthData.HisDataHealth.getDefaultInstance()) {
            data_ = HisHealthData.HisDataHealth.newBuilder((HisHealthData.HisDataHealth) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 3) {
            healthBuilder_.mergeFrom(value);
          }
          healthBuilder_.setMessage(value);
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       */
      public Builder clearHealth() {
        if (healthBuilder_ == null) {
          if (dataCase_ == 3) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 3) {
            dataCase_ = 0;
            data_ = null;
          }
          healthBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       */
      public HisHealthData.HisDataHealth.Builder getHealthBuilder() {
        return getHealthFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       */
      public HisHealthData.HisDataHealthOrBuilder getHealthOrBuilder() {
        if ((dataCase_ == 3) && (healthBuilder_ != null)) {
          return healthBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 3) {
            return (HisHealthData.HisDataHealth) data_;
          }
          return HisHealthData.HisDataHealth.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataHealth health = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthData.HisDataHealth, HisHealthData.HisDataHealth.Builder, HisHealthData.HisDataHealthOrBuilder>
          getHealthFieldBuilder() {
        if (healthBuilder_ == null) {
          if (!(dataCase_ == 3)) {
            data_ = HisHealthData.HisDataHealth.getDefaultInstance();
          }
          healthBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthData.HisDataHealth, HisHealthData.HisDataHealth.Builder, HisHealthData.HisDataHealthOrBuilder>(
                  (HisHealthData.HisDataHealth) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 3;
        onChanged();;
        return healthBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisGnssData.HisDataGNSS, HisGnssData.HisDataGNSS.Builder, HisGnssData.HisDataGNSSOrBuilder> gnssBuilder_;
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       * @return Whether the gnss field is set.
       */
      public boolean hasGnss() {
        return dataCase_ == 4;
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       * @return The gnss.
       */
      public HisGnssData.HisDataGNSS getGnss() {
        if (gnssBuilder_ == null) {
          if (dataCase_ == 4) {
            return (HisGnssData.HisDataGNSS) data_;
          }
          return HisGnssData.HisDataGNSS.getDefaultInstance();
        } else {
          if (dataCase_ == 4) {
            return gnssBuilder_.getMessage();
          }
          return HisGnssData.HisDataGNSS.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       */
      public Builder setGnss(HisGnssData.HisDataGNSS value) {
        if (gnssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          gnssBuilder_.setMessage(value);
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       */
      public Builder setGnss(
          HisGnssData.HisDataGNSS.Builder builderForValue) {
        if (gnssBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          gnssBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       */
      public Builder mergeGnss(HisGnssData.HisDataGNSS value) {
        if (gnssBuilder_ == null) {
          if (dataCase_ == 4 &&
              data_ != HisGnssData.HisDataGNSS.getDefaultInstance()) {
            data_ = HisGnssData.HisDataGNSS.newBuilder((HisGnssData.HisDataGNSS) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 4) {
            gnssBuilder_.mergeFrom(value);
          }
          gnssBuilder_.setMessage(value);
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       */
      public Builder clearGnss() {
        if (gnssBuilder_ == null) {
          if (dataCase_ == 4) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 4) {
            dataCase_ = 0;
            data_ = null;
          }
          gnssBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       */
      public HisGnssData.HisDataGNSS.Builder getGnssBuilder() {
        return getGnssFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       */
      public HisGnssData.HisDataGNSSOrBuilder getGnssOrBuilder() {
        if ((dataCase_ == 4) && (gnssBuilder_ != null)) {
          return gnssBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 4) {
            return (HisGnssData.HisDataGNSS) data_;
          }
          return HisGnssData.HisDataGNSS.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataGNSS gnss = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisGnssData.HisDataGNSS, HisGnssData.HisDataGNSS.Builder, HisGnssData.HisDataGNSSOrBuilder>
          getGnssFieldBuilder() {
        if (gnssBuilder_ == null) {
          if (!(dataCase_ == 4)) {
            data_ = HisGnssData.HisDataGNSS.getDefaultInstance();
          }
          gnssBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisGnssData.HisDataGNSS, HisGnssData.HisDataGNSS.Builder, HisGnssData.HisDataGNSSOrBuilder>(
                  (HisGnssData.HisDataGNSS) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 4;
        onChanged();;
        return gnssBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisEcgData.HisDataECG, HisEcgData.HisDataECG.Builder, HisEcgData.HisDataECGOrBuilder> ecgBuilder_;
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       * @return Whether the ecg field is set.
       */
      public boolean hasEcg() {
        return dataCase_ == 5;
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       * @return The ecg.
       */
      public HisEcgData.HisDataECG getEcg() {
        if (ecgBuilder_ == null) {
          if (dataCase_ == 5) {
            return (HisEcgData.HisDataECG) data_;
          }
          return HisEcgData.HisDataECG.getDefaultInstance();
        } else {
          if (dataCase_ == 5) {
            return ecgBuilder_.getMessage();
          }
          return HisEcgData.HisDataECG.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       */
      public Builder setEcg(HisEcgData.HisDataECG value) {
        if (ecgBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          ecgBuilder_.setMessage(value);
        }
        dataCase_ = 5;
        return this;
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       */
      public Builder setEcg(
          HisEcgData.HisDataECG.Builder builderForValue) {
        if (ecgBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          ecgBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 5;
        return this;
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       */
      public Builder mergeEcg(HisEcgData.HisDataECG value) {
        if (ecgBuilder_ == null) {
          if (dataCase_ == 5 &&
              data_ != HisEcgData.HisDataECG.getDefaultInstance()) {
            data_ = HisEcgData.HisDataECG.newBuilder((HisEcgData.HisDataECG) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 5) {
            ecgBuilder_.mergeFrom(value);
          }
          ecgBuilder_.setMessage(value);
        }
        dataCase_ = 5;
        return this;
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       */
      public Builder clearEcg() {
        if (ecgBuilder_ == null) {
          if (dataCase_ == 5) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 5) {
            dataCase_ = 0;
            data_ = null;
          }
          ecgBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       */
      public HisEcgData.HisDataECG.Builder getEcgBuilder() {
        return getEcgFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       */
      public HisEcgData.HisDataECGOrBuilder getEcgOrBuilder() {
        if ((dataCase_ == 5) && (ecgBuilder_ != null)) {
          return ecgBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 5) {
            return (HisEcgData.HisDataECG) data_;
          }
          return HisEcgData.HisDataECG.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataECG ecg = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisEcgData.HisDataECG, HisEcgData.HisDataECG.Builder, HisEcgData.HisDataECGOrBuilder>
          getEcgFieldBuilder() {
        if (ecgBuilder_ == null) {
          if (!(dataCase_ == 5)) {
            data_ = HisEcgData.HisDataECG.getDefaultInstance();
          }
          ecgBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisEcgData.HisDataECG, HisEcgData.HisDataECG.Builder, HisEcgData.HisDataECGOrBuilder>(
                  (HisEcgData.HisDataECG) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 5;
        onChanged();;
        return ecgBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisPpgData.HisDataPPG, HisPpgData.HisDataPPG.Builder, HisPpgData.HisDataPPGOrBuilder> ppgBuilder_;
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       * @return Whether the ppg field is set.
       */
      public boolean hasPpg() {
        return dataCase_ == 6;
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       * @return The ppg.
       */
      public HisPpgData.HisDataPPG getPpg() {
        if (ppgBuilder_ == null) {
          if (dataCase_ == 6) {
            return (HisPpgData.HisDataPPG) data_;
          }
          return HisPpgData.HisDataPPG.getDefaultInstance();
        } else {
          if (dataCase_ == 6) {
            return ppgBuilder_.getMessage();
          }
          return HisPpgData.HisDataPPG.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       */
      public Builder setPpg(HisPpgData.HisDataPPG value) {
        if (ppgBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          ppgBuilder_.setMessage(value);
        }
        dataCase_ = 6;
        return this;
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       */
      public Builder setPpg(
          HisPpgData.HisDataPPG.Builder builderForValue) {
        if (ppgBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          ppgBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 6;
        return this;
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       */
      public Builder mergePpg(HisPpgData.HisDataPPG value) {
        if (ppgBuilder_ == null) {
          if (dataCase_ == 6 &&
              data_ != HisPpgData.HisDataPPG.getDefaultInstance()) {
            data_ = HisPpgData.HisDataPPG.newBuilder((HisPpgData.HisDataPPG) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 6) {
            ppgBuilder_.mergeFrom(value);
          }
          ppgBuilder_.setMessage(value);
        }
        dataCase_ = 6;
        return this;
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       */
      public Builder clearPpg() {
        if (ppgBuilder_ == null) {
          if (dataCase_ == 6) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 6) {
            dataCase_ = 0;
            data_ = null;
          }
          ppgBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       */
      public HisPpgData.HisDataPPG.Builder getPpgBuilder() {
        return getPpgFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       */
      public HisPpgData.HisDataPPGOrBuilder getPpgOrBuilder() {
        if ((dataCase_ == 6) && (ppgBuilder_ != null)) {
          return ppgBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 6) {
            return (HisPpgData.HisDataPPG) data_;
          }
          return HisPpgData.HisDataPPG.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataPPG ppg = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisPpgData.HisDataPPG, HisPpgData.HisDataPPG.Builder, HisPpgData.HisDataPPGOrBuilder>
          getPpgFieldBuilder() {
        if (ppgBuilder_ == null) {
          if (!(dataCase_ == 6)) {
            data_ = HisPpgData.HisDataPPG.getDefaultInstance();
          }
          ppgBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisPpgData.HisDataPPG, HisPpgData.HisDataPPG.Builder, HisPpgData.HisDataPPGOrBuilder>(
                  (HisPpgData.HisDataPPG) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 6;
        onChanged();;
        return ppgBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisRriData.HisDataRRI, HisRriData.HisDataRRI.Builder, HisRriData.HisDataRRIOrBuilder> rriBuilder_;
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       * @return Whether the rri field is set.
       */
      public boolean hasRri() {
        return dataCase_ == 7;
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       * @return The rri.
       */
      public HisRriData.HisDataRRI getRri() {
        if (rriBuilder_ == null) {
          if (dataCase_ == 7) {
            return (HisRriData.HisDataRRI) data_;
          }
          return HisRriData.HisDataRRI.getDefaultInstance();
        } else {
          if (dataCase_ == 7) {
            return rriBuilder_.getMessage();
          }
          return HisRriData.HisDataRRI.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       */
      public Builder setRri(HisRriData.HisDataRRI value) {
        if (rriBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          rriBuilder_.setMessage(value);
        }
        dataCase_ = 7;
        return this;
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       */
      public Builder setRri(
          HisRriData.HisDataRRI.Builder builderForValue) {
        if (rriBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          rriBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 7;
        return this;
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       */
      public Builder mergeRri(HisRriData.HisDataRRI value) {
        if (rriBuilder_ == null) {
          if (dataCase_ == 7 &&
              data_ != HisRriData.HisDataRRI.getDefaultInstance()) {
            data_ = HisRriData.HisDataRRI.newBuilder((HisRriData.HisDataRRI) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 7) {
            rriBuilder_.mergeFrom(value);
          }
          rriBuilder_.setMessage(value);
        }
        dataCase_ = 7;
        return this;
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       */
      public Builder clearRri() {
        if (rriBuilder_ == null) {
          if (dataCase_ == 7) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 7) {
            dataCase_ = 0;
            data_ = null;
          }
          rriBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       */
      public HisRriData.HisDataRRI.Builder getRriBuilder() {
        return getRriFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       */
      public HisRriData.HisDataRRIOrBuilder getRriOrBuilder() {
        if ((dataCase_ == 7) && (rriBuilder_ != null)) {
          return rriBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 7) {
            return (HisRriData.HisDataRRI) data_;
          }
          return HisRriData.HisDataRRI.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataRRI rri = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisRriData.HisDataRRI, HisRriData.HisDataRRI.Builder, HisRriData.HisDataRRIOrBuilder>
          getRriFieldBuilder() {
        if (rriBuilder_ == null) {
          if (!(dataCase_ == 7)) {
            data_ = HisRriData.HisDataRRI.getDefaultInstance();
          }
          rriBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisRriData.HisDataRRI, HisRriData.HisDataRRI.Builder, HisRriData.HisDataRRIOrBuilder>(
                  (HisRriData.HisDataRRI) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 7;
        onChanged();;
        return rriBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisMedicData.HisDataMedic, HisMedicData.HisDataMedic.Builder, HisMedicData.HisDataMedicOrBuilder> medicBuilder_;
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       * @return Whether the medic field is set.
       */
      public boolean hasMedic() {
        return dataCase_ == 8;
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       * @return The medic.
       */
      public HisMedicData.HisDataMedic getMedic() {
        if (medicBuilder_ == null) {
          if (dataCase_ == 8) {
            return (HisMedicData.HisDataMedic) data_;
          }
          return HisMedicData.HisDataMedic.getDefaultInstance();
        } else {
          if (dataCase_ == 8) {
            return medicBuilder_.getMessage();
          }
          return HisMedicData.HisDataMedic.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       */
      public Builder setMedic(HisMedicData.HisDataMedic value) {
        if (medicBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          medicBuilder_.setMessage(value);
        }
        dataCase_ = 8;
        return this;
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       */
      public Builder setMedic(
          HisMedicData.HisDataMedic.Builder builderForValue) {
        if (medicBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          medicBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 8;
        return this;
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       */
      public Builder mergeMedic(HisMedicData.HisDataMedic value) {
        if (medicBuilder_ == null) {
          if (dataCase_ == 8 &&
              data_ != HisMedicData.HisDataMedic.getDefaultInstance()) {
            data_ = HisMedicData.HisDataMedic.newBuilder((HisMedicData.HisDataMedic) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 8) {
            medicBuilder_.mergeFrom(value);
          }
          medicBuilder_.setMessage(value);
        }
        dataCase_ = 8;
        return this;
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       */
      public Builder clearMedic() {
        if (medicBuilder_ == null) {
          if (dataCase_ == 8) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 8) {
            dataCase_ = 0;
            data_ = null;
          }
          medicBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       */
      public HisMedicData.HisDataMedic.Builder getMedicBuilder() {
        return getMedicFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       */
      public HisMedicData.HisDataMedicOrBuilder getMedicOrBuilder() {
        if ((dataCase_ == 8) && (medicBuilder_ != null)) {
          return medicBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 8) {
            return (HisMedicData.HisDataMedic) data_;
          }
          return HisMedicData.HisDataMedic.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataMedic medic = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisMedicData.HisDataMedic, HisMedicData.HisDataMedic.Builder, HisMedicData.HisDataMedicOrBuilder>
          getMedicFieldBuilder() {
        if (medicBuilder_ == null) {
          if (!(dataCase_ == 8)) {
            data_ = HisMedicData.HisDataMedic.getDefaultInstance();
          }
          medicBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisMedicData.HisDataMedic, HisMedicData.HisDataMedic.Builder, HisMedicData.HisDataMedicOrBuilder>(
                  (HisMedicData.HisDataMedic) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 8;
        onChanged();;
        return medicBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisSpo2Data.HisDataSpo2, HisSpo2Data.HisDataSpo2.Builder, HisSpo2Data.HisDataSpo2OrBuilder> spo2Builder_;
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       * @return Whether the spo2 field is set.
       */
      public boolean hasSpo2() {
        return dataCase_ == 9;
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       * @return The spo2.
       */
      public HisSpo2Data.HisDataSpo2 getSpo2() {
        if (spo2Builder_ == null) {
          if (dataCase_ == 9) {
            return (HisSpo2Data.HisDataSpo2) data_;
          }
          return HisSpo2Data.HisDataSpo2.getDefaultInstance();
        } else {
          if (dataCase_ == 9) {
            return spo2Builder_.getMessage();
          }
          return HisSpo2Data.HisDataSpo2.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       */
      public Builder setSpo2(HisSpo2Data.HisDataSpo2 value) {
        if (spo2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          spo2Builder_.setMessage(value);
        }
        dataCase_ = 9;
        return this;
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       */
      public Builder setSpo2(
          HisSpo2Data.HisDataSpo2.Builder builderForValue) {
        if (spo2Builder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          spo2Builder_.setMessage(builderForValue.build());
        }
        dataCase_ = 9;
        return this;
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       */
      public Builder mergeSpo2(HisSpo2Data.HisDataSpo2 value) {
        if (spo2Builder_ == null) {
          if (dataCase_ == 9 &&
              data_ != HisSpo2Data.HisDataSpo2.getDefaultInstance()) {
            data_ = HisSpo2Data.HisDataSpo2.newBuilder((HisSpo2Data.HisDataSpo2) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 9) {
            spo2Builder_.mergeFrom(value);
          }
          spo2Builder_.setMessage(value);
        }
        dataCase_ = 9;
        return this;
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       */
      public Builder clearSpo2() {
        if (spo2Builder_ == null) {
          if (dataCase_ == 9) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 9) {
            dataCase_ = 0;
            data_ = null;
          }
          spo2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       */
      public HisSpo2Data.HisDataSpo2.Builder getSpo2Builder() {
        return getSpo2FieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       */
      public HisSpo2Data.HisDataSpo2OrBuilder getSpo2OrBuilder() {
        if ((dataCase_ == 9) && (spo2Builder_ != null)) {
          return spo2Builder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 9) {
            return (HisSpo2Data.HisDataSpo2) data_;
          }
          return HisSpo2Data.HisDataSpo2.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataSpo2 spo2 = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisSpo2Data.HisDataSpo2, HisSpo2Data.HisDataSpo2.Builder, HisSpo2Data.HisDataSpo2OrBuilder>
          getSpo2FieldBuilder() {
        if (spo2Builder_ == null) {
          if (!(dataCase_ == 9)) {
            data_ = HisSpo2Data.HisDataSpo2.getDefaultInstance();
          }
          spo2Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisSpo2Data.HisDataSpo2, HisSpo2Data.HisDataSpo2.Builder, HisSpo2Data.HisDataSpo2OrBuilder>(
                  (HisSpo2Data.HisDataSpo2) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 9;
        onChanged();;
        return spo2Builder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisSwimData.HisDataSwim, HisSwimData.HisDataSwim.Builder, HisSwimData.HisDataSwimOrBuilder> swimBuilder_;
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       * @return Whether the swim field is set.
       */
      public boolean hasSwim() {
        return dataCase_ == 10;
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       * @return The swim.
       */
      public HisSwimData.HisDataSwim getSwim() {
        if (swimBuilder_ == null) {
          if (dataCase_ == 10) {
            return (HisSwimData.HisDataSwim) data_;
          }
          return HisSwimData.HisDataSwim.getDefaultInstance();
        } else {
          if (dataCase_ == 10) {
            return swimBuilder_.getMessage();
          }
          return HisSwimData.HisDataSwim.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       */
      public Builder setSwim(HisSwimData.HisDataSwim value) {
        if (swimBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          swimBuilder_.setMessage(value);
        }
        dataCase_ = 10;
        return this;
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       */
      public Builder setSwim(
          HisSwimData.HisDataSwim.Builder builderForValue) {
        if (swimBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          swimBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 10;
        return this;
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       */
      public Builder mergeSwim(HisSwimData.HisDataSwim value) {
        if (swimBuilder_ == null) {
          if (dataCase_ == 10 &&
              data_ != HisSwimData.HisDataSwim.getDefaultInstance()) {
            data_ = HisSwimData.HisDataSwim.newBuilder((HisSwimData.HisDataSwim) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 10) {
            swimBuilder_.mergeFrom(value);
          }
          swimBuilder_.setMessage(value);
        }
        dataCase_ = 10;
        return this;
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       */
      public Builder clearSwim() {
        if (swimBuilder_ == null) {
          if (dataCase_ == 10) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 10) {
            dataCase_ = 0;
            data_ = null;
          }
          swimBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       */
      public HisSwimData.HisDataSwim.Builder getSwimBuilder() {
        return getSwimFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       */
      public HisSwimData.HisDataSwimOrBuilder getSwimOrBuilder() {
        if ((dataCase_ == 10) && (swimBuilder_ != null)) {
          return swimBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 10) {
            return (HisSwimData.HisDataSwim) data_;
          }
          return HisSwimData.HisDataSwim.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataSwim swim = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisSwimData.HisDataSwim, HisSwimData.HisDataSwim.Builder, HisSwimData.HisDataSwimOrBuilder>
          getSwimFieldBuilder() {
        if (swimBuilder_ == null) {
          if (!(dataCase_ == 10)) {
            data_ = HisSwimData.HisDataSwim.getDefaultInstance();
          }
          swimBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisSwimData.HisDataSwim, HisSwimData.HisDataSwim.Builder, HisSwimData.HisDataSwimOrBuilder>(
                  (HisSwimData.HisDataSwim) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 10;
        onChanged();;
        return swimBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisTemperatureData.HisDataTemperature, HisTemperatureData.HisDataTemperature.Builder, HisTemperatureData.HisDataTemperatureOrBuilder> tempBuilder_;
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       * @return Whether the temp field is set.
       */
      public boolean hasTemp() {
        return dataCase_ == 11;
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       * @return The temp.
       */
      public HisTemperatureData.HisDataTemperature getTemp() {
        if (tempBuilder_ == null) {
          if (dataCase_ == 11) {
            return (HisTemperatureData.HisDataTemperature) data_;
          }
          return HisTemperatureData.HisDataTemperature.getDefaultInstance();
        } else {
          if (dataCase_ == 11) {
            return tempBuilder_.getMessage();
          }
          return HisTemperatureData.HisDataTemperature.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       */
      public Builder setTemp(HisTemperatureData.HisDataTemperature value) {
        if (tempBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          tempBuilder_.setMessage(value);
        }
        dataCase_ = 11;
        return this;
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       */
      public Builder setTemp(
          HisTemperatureData.HisDataTemperature.Builder builderForValue) {
        if (tempBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          tempBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 11;
        return this;
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       */
      public Builder mergeTemp(HisTemperatureData.HisDataTemperature value) {
        if (tempBuilder_ == null) {
          if (dataCase_ == 11 &&
              data_ != HisTemperatureData.HisDataTemperature.getDefaultInstance()) {
            data_ = HisTemperatureData.HisDataTemperature.newBuilder((HisTemperatureData.HisDataTemperature) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 11) {
            tempBuilder_.mergeFrom(value);
          }
          tempBuilder_.setMessage(value);
        }
        dataCase_ = 11;
        return this;
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       */
      public Builder clearTemp() {
        if (tempBuilder_ == null) {
          if (dataCase_ == 11) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 11) {
            dataCase_ = 0;
            data_ = null;
          }
          tempBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       */
      public HisTemperatureData.HisDataTemperature.Builder getTempBuilder() {
        return getTempFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       */
      public HisTemperatureData.HisDataTemperatureOrBuilder getTempOrBuilder() {
        if ((dataCase_ == 11) && (tempBuilder_ != null)) {
          return tempBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 11) {
            return (HisTemperatureData.HisDataTemperature) data_;
          }
          return HisTemperatureData.HisDataTemperature.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataTemperature temp = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisTemperatureData.HisDataTemperature, HisTemperatureData.HisDataTemperature.Builder, HisTemperatureData.HisDataTemperatureOrBuilder>
          getTempFieldBuilder() {
        if (tempBuilder_ == null) {
          if (!(dataCase_ == 11)) {
            data_ = HisTemperatureData.HisDataTemperature.getDefaultInstance();
          }
          tempBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisTemperatureData.HisDataTemperature, HisTemperatureData.HisDataTemperature.Builder, HisTemperatureData.HisDataTemperatureOrBuilder>(
                  (HisTemperatureData.HisDataTemperature) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 11;
        onChanged();;
        return tempBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptHealthData.HisDataHealthEncrypt, HisEncryptHealthData.HisDataHealthEncrypt.Builder, HisEncryptHealthData.HisDataHealthEncryptOrBuilder> healthencryptBuilder_;
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       * @return Whether the healthencrypt field is set.
       */
      public boolean hasHealthencrypt() {
        return dataCase_ == 12;
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       * @return The healthencrypt.
       */
      public HisEncryptHealthData.HisDataHealthEncrypt getHealthencrypt() {
        if (healthencryptBuilder_ == null) {
          if (dataCase_ == 12) {
            return (HisEncryptHealthData.HisDataHealthEncrypt) data_;
          }
          return HisEncryptHealthData.HisDataHealthEncrypt.getDefaultInstance();
        } else {
          if (dataCase_ == 12) {
            return healthencryptBuilder_.getMessage();
          }
          return HisEncryptHealthData.HisDataHealthEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       */
      public Builder setHealthencrypt(HisEncryptHealthData.HisDataHealthEncrypt value) {
        if (healthencryptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          healthencryptBuilder_.setMessage(value);
        }
        dataCase_ = 12;
        return this;
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       */
      public Builder setHealthencrypt(
          HisEncryptHealthData.HisDataHealthEncrypt.Builder builderForValue) {
        if (healthencryptBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          healthencryptBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 12;
        return this;
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       */
      public Builder mergeHealthencrypt(HisEncryptHealthData.HisDataHealthEncrypt value) {
        if (healthencryptBuilder_ == null) {
          if (dataCase_ == 12 &&
              data_ != HisEncryptHealthData.HisDataHealthEncrypt.getDefaultInstance()) {
            data_ = HisEncryptHealthData.HisDataHealthEncrypt.newBuilder((HisEncryptHealthData.HisDataHealthEncrypt) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 12) {
            healthencryptBuilder_.mergeFrom(value);
          }
          healthencryptBuilder_.setMessage(value);
        }
        dataCase_ = 12;
        return this;
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       */
      public Builder clearHealthencrypt() {
        if (healthencryptBuilder_ == null) {
          if (dataCase_ == 12) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 12) {
            dataCase_ = 0;
            data_ = null;
          }
          healthencryptBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       */
      public HisEncryptHealthData.HisDataHealthEncrypt.Builder getHealthencryptBuilder() {
        return getHealthencryptFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       */
      public HisEncryptHealthData.HisDataHealthEncryptOrBuilder getHealthencryptOrBuilder() {
        if ((dataCase_ == 12) && (healthencryptBuilder_ != null)) {
          return healthencryptBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 12) {
            return (HisEncryptHealthData.HisDataHealthEncrypt) data_;
          }
          return HisEncryptHealthData.HisDataHealthEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataHealthEncrypt healthencrypt = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptHealthData.HisDataHealthEncrypt, HisEncryptHealthData.HisDataHealthEncrypt.Builder, HisEncryptHealthData.HisDataHealthEncryptOrBuilder>
          getHealthencryptFieldBuilder() {
        if (healthencryptBuilder_ == null) {
          if (!(dataCase_ == 12)) {
            data_ = HisEncryptHealthData.HisDataHealthEncrypt.getDefaultInstance();
          }
          healthencryptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisEncryptHealthData.HisDataHealthEncrypt, HisEncryptHealthData.HisDataHealthEncrypt.Builder, HisEncryptHealthData.HisDataHealthEncryptOrBuilder>(
                  (HisEncryptHealthData.HisDataHealthEncrypt) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 12;
        onChanged();;
        return healthencryptBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptEcgData.HisDataECGEncrypt, HisEncryptEcgData.HisDataECGEncrypt.Builder, HisEncryptEcgData.HisDataECGEncryptOrBuilder> ecgencryptBuilder_;
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       * @return Whether the ecgencrypt field is set.
       */
      public boolean hasEcgencrypt() {
        return dataCase_ == 13;
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       * @return The ecgencrypt.
       */
      public HisEncryptEcgData.HisDataECGEncrypt getEcgencrypt() {
        if (ecgencryptBuilder_ == null) {
          if (dataCase_ == 13) {
            return (HisEncryptEcgData.HisDataECGEncrypt) data_;
          }
          return HisEncryptEcgData.HisDataECGEncrypt.getDefaultInstance();
        } else {
          if (dataCase_ == 13) {
            return ecgencryptBuilder_.getMessage();
          }
          return HisEncryptEcgData.HisDataECGEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       */
      public Builder setEcgencrypt(HisEncryptEcgData.HisDataECGEncrypt value) {
        if (ecgencryptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          ecgencryptBuilder_.setMessage(value);
        }
        dataCase_ = 13;
        return this;
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       */
      public Builder setEcgencrypt(
          HisEncryptEcgData.HisDataECGEncrypt.Builder builderForValue) {
        if (ecgencryptBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          ecgencryptBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 13;
        return this;
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       */
      public Builder mergeEcgencrypt(HisEncryptEcgData.HisDataECGEncrypt value) {
        if (ecgencryptBuilder_ == null) {
          if (dataCase_ == 13 &&
              data_ != HisEncryptEcgData.HisDataECGEncrypt.getDefaultInstance()) {
            data_ = HisEncryptEcgData.HisDataECGEncrypt.newBuilder((HisEncryptEcgData.HisDataECGEncrypt) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 13) {
            ecgencryptBuilder_.mergeFrom(value);
          }
          ecgencryptBuilder_.setMessage(value);
        }
        dataCase_ = 13;
        return this;
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       */
      public Builder clearEcgencrypt() {
        if (ecgencryptBuilder_ == null) {
          if (dataCase_ == 13) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 13) {
            dataCase_ = 0;
            data_ = null;
          }
          ecgencryptBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       */
      public HisEncryptEcgData.HisDataECGEncrypt.Builder getEcgencryptBuilder() {
        return getEcgencryptFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       */
      public HisEncryptEcgData.HisDataECGEncryptOrBuilder getEcgencryptOrBuilder() {
        if ((dataCase_ == 13) && (ecgencryptBuilder_ != null)) {
          return ecgencryptBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 13) {
            return (HisEncryptEcgData.HisDataECGEncrypt) data_;
          }
          return HisEncryptEcgData.HisDataECGEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataECGEncrypt ecgencrypt = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptEcgData.HisDataECGEncrypt, HisEncryptEcgData.HisDataECGEncrypt.Builder, HisEncryptEcgData.HisDataECGEncryptOrBuilder>
          getEcgencryptFieldBuilder() {
        if (ecgencryptBuilder_ == null) {
          if (!(dataCase_ == 13)) {
            data_ = HisEncryptEcgData.HisDataECGEncrypt.getDefaultInstance();
          }
          ecgencryptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisEncryptEcgData.HisDataECGEncrypt, HisEncryptEcgData.HisDataECGEncrypt.Builder, HisEncryptEcgData.HisDataECGEncryptOrBuilder>(
                  (HisEncryptEcgData.HisDataECGEncrypt) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 13;
        onChanged();;
        return ecgencryptBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptPpgData.HisDataPPGEncrypt, HisEncryptPpgData.HisDataPPGEncrypt.Builder, HisEncryptPpgData.HisDataPPGEncryptOrBuilder> ppgencryptBuilder_;
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       * @return Whether the ppgencrypt field is set.
       */
      public boolean hasPpgencrypt() {
        return dataCase_ == 14;
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       * @return The ppgencrypt.
       */
      public HisEncryptPpgData.HisDataPPGEncrypt getPpgencrypt() {
        if (ppgencryptBuilder_ == null) {
          if (dataCase_ == 14) {
            return (HisEncryptPpgData.HisDataPPGEncrypt) data_;
          }
          return HisEncryptPpgData.HisDataPPGEncrypt.getDefaultInstance();
        } else {
          if (dataCase_ == 14) {
            return ppgencryptBuilder_.getMessage();
          }
          return HisEncryptPpgData.HisDataPPGEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       */
      public Builder setPpgencrypt(HisEncryptPpgData.HisDataPPGEncrypt value) {
        if (ppgencryptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          ppgencryptBuilder_.setMessage(value);
        }
        dataCase_ = 14;
        return this;
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       */
      public Builder setPpgencrypt(
          HisEncryptPpgData.HisDataPPGEncrypt.Builder builderForValue) {
        if (ppgencryptBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          ppgencryptBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 14;
        return this;
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       */
      public Builder mergePpgencrypt(HisEncryptPpgData.HisDataPPGEncrypt value) {
        if (ppgencryptBuilder_ == null) {
          if (dataCase_ == 14 &&
              data_ != HisEncryptPpgData.HisDataPPGEncrypt.getDefaultInstance()) {
            data_ = HisEncryptPpgData.HisDataPPGEncrypt.newBuilder((HisEncryptPpgData.HisDataPPGEncrypt) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 14) {
            ppgencryptBuilder_.mergeFrom(value);
          }
          ppgencryptBuilder_.setMessage(value);
        }
        dataCase_ = 14;
        return this;
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       */
      public Builder clearPpgencrypt() {
        if (ppgencryptBuilder_ == null) {
          if (dataCase_ == 14) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 14) {
            dataCase_ = 0;
            data_ = null;
          }
          ppgencryptBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       */
      public HisEncryptPpgData.HisDataPPGEncrypt.Builder getPpgencryptBuilder() {
        return getPpgencryptFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       */
      public HisEncryptPpgData.HisDataPPGEncryptOrBuilder getPpgencryptOrBuilder() {
        if ((dataCase_ == 14) && (ppgencryptBuilder_ != null)) {
          return ppgencryptBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 14) {
            return (HisEncryptPpgData.HisDataPPGEncrypt) data_;
          }
          return HisEncryptPpgData.HisDataPPGEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataPPGEncrypt ppgencrypt = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptPpgData.HisDataPPGEncrypt, HisEncryptPpgData.HisDataPPGEncrypt.Builder, HisEncryptPpgData.HisDataPPGEncryptOrBuilder>
          getPpgencryptFieldBuilder() {
        if (ppgencryptBuilder_ == null) {
          if (!(dataCase_ == 14)) {
            data_ = HisEncryptPpgData.HisDataPPGEncrypt.getDefaultInstance();
          }
          ppgencryptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisEncryptPpgData.HisDataPPGEncrypt, HisEncryptPpgData.HisDataPPGEncrypt.Builder, HisEncryptPpgData.HisDataPPGEncryptOrBuilder>(
                  (HisEncryptPpgData.HisDataPPGEncrypt) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 14;
        onChanged();;
        return ppgencryptBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptRriData.HisDataRRIEncrypt, HisEncryptRriData.HisDataRRIEncrypt.Builder, HisEncryptRriData.HisDataRRIEncryptOrBuilder> rriencryptBuilder_;
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       * @return Whether the rriencrypt field is set.
       */
      public boolean hasRriencrypt() {
        return dataCase_ == 15;
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       * @return The rriencrypt.
       */
      public HisEncryptRriData.HisDataRRIEncrypt getRriencrypt() {
        if (rriencryptBuilder_ == null) {
          if (dataCase_ == 15) {
            return (HisEncryptRriData.HisDataRRIEncrypt) data_;
          }
          return HisEncryptRriData.HisDataRRIEncrypt.getDefaultInstance();
        } else {
          if (dataCase_ == 15) {
            return rriencryptBuilder_.getMessage();
          }
          return HisEncryptRriData.HisDataRRIEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       */
      public Builder setRriencrypt(HisEncryptRriData.HisDataRRIEncrypt value) {
        if (rriencryptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          rriencryptBuilder_.setMessage(value);
        }
        dataCase_ = 15;
        return this;
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       */
      public Builder setRriencrypt(
          HisEncryptRriData.HisDataRRIEncrypt.Builder builderForValue) {
        if (rriencryptBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          rriencryptBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 15;
        return this;
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       */
      public Builder mergeRriencrypt(HisEncryptRriData.HisDataRRIEncrypt value) {
        if (rriencryptBuilder_ == null) {
          if (dataCase_ == 15 &&
              data_ != HisEncryptRriData.HisDataRRIEncrypt.getDefaultInstance()) {
            data_ = HisEncryptRriData.HisDataRRIEncrypt.newBuilder((HisEncryptRriData.HisDataRRIEncrypt) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 15) {
            rriencryptBuilder_.mergeFrom(value);
          }
          rriencryptBuilder_.setMessage(value);
        }
        dataCase_ = 15;
        return this;
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       */
      public Builder clearRriencrypt() {
        if (rriencryptBuilder_ == null) {
          if (dataCase_ == 15) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 15) {
            dataCase_ = 0;
            data_ = null;
          }
          rriencryptBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       */
      public HisEncryptRriData.HisDataRRIEncrypt.Builder getRriencryptBuilder() {
        return getRriencryptFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       */
      public HisEncryptRriData.HisDataRRIEncryptOrBuilder getRriencryptOrBuilder() {
        if ((dataCase_ == 15) && (rriencryptBuilder_ != null)) {
          return rriencryptBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 15) {
            return (HisEncryptRriData.HisDataRRIEncrypt) data_;
          }
          return HisEncryptRriData.HisDataRRIEncrypt.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataRRIEncrypt rriencrypt = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisEncryptRriData.HisDataRRIEncrypt, HisEncryptRriData.HisDataRRIEncrypt.Builder, HisEncryptRriData.HisDataRRIEncryptOrBuilder>
          getRriencryptFieldBuilder() {
        if (rriencryptBuilder_ == null) {
          if (!(dataCase_ == 15)) {
            data_ = HisEncryptRriData.HisDataRRIEncrypt.getDefaultInstance();
          }
          rriencryptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisEncryptRriData.HisDataRRIEncrypt, HisEncryptRriData.HisDataRRIEncrypt.Builder, HisEncryptRriData.HisDataRRIEncryptOrBuilder>(
                  (HisEncryptRriData.HisDataRRIEncrypt) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 15;
        onChanged();;
        return rriencryptBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ThirdPartyHealthData.HisDataThirdParty, ThirdPartyHealthData.HisDataThirdParty.Builder, ThirdPartyHealthData.HisDataThirdPartyOrBuilder> thirdPartyDataBuilder_;
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       * @return Whether the thirdPartyData field is set.
       */
      public boolean hasThirdPartyData() {
        return dataCase_ == 16;
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       * @return The thirdPartyData.
       */
      public ThirdPartyHealthData.HisDataThirdParty getThirdPartyData() {
        if (thirdPartyDataBuilder_ == null) {
          if (dataCase_ == 16) {
            return (ThirdPartyHealthData.HisDataThirdParty) data_;
          }
          return ThirdPartyHealthData.HisDataThirdParty.getDefaultInstance();
        } else {
          if (dataCase_ == 16) {
            return thirdPartyDataBuilder_.getMessage();
          }
          return ThirdPartyHealthData.HisDataThirdParty.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       */
      public Builder setThirdPartyData(ThirdPartyHealthData.HisDataThirdParty value) {
        if (thirdPartyDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          thirdPartyDataBuilder_.setMessage(value);
        }
        dataCase_ = 16;
        return this;
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       */
      public Builder setThirdPartyData(
          ThirdPartyHealthData.HisDataThirdParty.Builder builderForValue) {
        if (thirdPartyDataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          thirdPartyDataBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 16;
        return this;
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       */
      public Builder mergeThirdPartyData(ThirdPartyHealthData.HisDataThirdParty value) {
        if (thirdPartyDataBuilder_ == null) {
          if (dataCase_ == 16 &&
              data_ != ThirdPartyHealthData.HisDataThirdParty.getDefaultInstance()) {
            data_ = ThirdPartyHealthData.HisDataThirdParty.newBuilder((ThirdPartyHealthData.HisDataThirdParty) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 16) {
            thirdPartyDataBuilder_.mergeFrom(value);
          }
          thirdPartyDataBuilder_.setMessage(value);
        }
        dataCase_ = 16;
        return this;
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       */
      public Builder clearThirdPartyData() {
        if (thirdPartyDataBuilder_ == null) {
          if (dataCase_ == 16) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 16) {
            dataCase_ = 0;
            data_ = null;
          }
          thirdPartyDataBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       */
      public ThirdPartyHealthData.HisDataThirdParty.Builder getThirdPartyDataBuilder() {
        return getThirdPartyDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       */
      public ThirdPartyHealthData.HisDataThirdPartyOrBuilder getThirdPartyDataOrBuilder() {
        if ((dataCase_ == 16) && (thirdPartyDataBuilder_ != null)) {
          return thirdPartyDataBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 16) {
            return (ThirdPartyHealthData.HisDataThirdParty) data_;
          }
          return ThirdPartyHealthData.HisDataThirdParty.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataThirdParty ThirdParty_data = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ThirdPartyHealthData.HisDataThirdParty, ThirdPartyHealthData.HisDataThirdParty.Builder, ThirdPartyHealthData.HisDataThirdPartyOrBuilder>
          getThirdPartyDataFieldBuilder() {
        if (thirdPartyDataBuilder_ == null) {
          if (!(dataCase_ == 16)) {
            data_ = ThirdPartyHealthData.HisDataThirdParty.getDefaultInstance();
          }
          thirdPartyDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ThirdPartyHealthData.HisDataThirdParty, ThirdPartyHealthData.HisDataThirdParty.Builder, ThirdPartyHealthData.HisDataThirdPartyOrBuilder>(
                  (ThirdPartyHealthData.HisDataThirdParty) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 16;
        onChanged();;
        return thirdPartyDataBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ThirdPartyHealthDataV2.HisDataThirdPartyV2, ThirdPartyHealthDataV2.HisDataThirdPartyV2.Builder, ThirdPartyHealthDataV2.HisDataThirdPartyV2OrBuilder> thirdPartyDataV2Builder_;
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       * @return Whether the thirdPartyDataV2 field is set.
       */
      public boolean hasThirdPartyDataV2() {
        return dataCase_ == 17;
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       * @return The thirdPartyDataV2.
       */
      public ThirdPartyHealthDataV2.HisDataThirdPartyV2 getThirdPartyDataV2() {
        if (thirdPartyDataV2Builder_ == null) {
          if (dataCase_ == 17) {
            return (ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_;
          }
          return ThirdPartyHealthDataV2.HisDataThirdPartyV2.getDefaultInstance();
        } else {
          if (dataCase_ == 17) {
            return thirdPartyDataV2Builder_.getMessage();
          }
          return ThirdPartyHealthDataV2.HisDataThirdPartyV2.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       */
      public Builder setThirdPartyDataV2(ThirdPartyHealthDataV2.HisDataThirdPartyV2 value) {
        if (thirdPartyDataV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          thirdPartyDataV2Builder_.setMessage(value);
        }
        dataCase_ = 17;
        return this;
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       */
      public Builder setThirdPartyDataV2(
          ThirdPartyHealthDataV2.HisDataThirdPartyV2.Builder builderForValue) {
        if (thirdPartyDataV2Builder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          thirdPartyDataV2Builder_.setMessage(builderForValue.build());
        }
        dataCase_ = 17;
        return this;
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       */
      public Builder mergeThirdPartyDataV2(ThirdPartyHealthDataV2.HisDataThirdPartyV2 value) {
        if (thirdPartyDataV2Builder_ == null) {
          if (dataCase_ == 17 &&
              data_ != ThirdPartyHealthDataV2.HisDataThirdPartyV2.getDefaultInstance()) {
            data_ = ThirdPartyHealthDataV2.HisDataThirdPartyV2.newBuilder((ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 17) {
            thirdPartyDataV2Builder_.mergeFrom(value);
          }
          thirdPartyDataV2Builder_.setMessage(value);
        }
        dataCase_ = 17;
        return this;
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       */
      public Builder clearThirdPartyDataV2() {
        if (thirdPartyDataV2Builder_ == null) {
          if (dataCase_ == 17) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 17) {
            dataCase_ = 0;
            data_ = null;
          }
          thirdPartyDataV2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       */
      public ThirdPartyHealthDataV2.HisDataThirdPartyV2.Builder getThirdPartyDataV2Builder() {
        return getThirdPartyDataV2FieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       */
      public ThirdPartyHealthDataV2.HisDataThirdPartyV2OrBuilder getThirdPartyDataV2OrBuilder() {
        if ((dataCase_ == 17) && (thirdPartyDataV2Builder_ != null)) {
          return thirdPartyDataV2Builder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 17) {
            return (ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_;
          }
          return ThirdPartyHealthDataV2.HisDataThirdPartyV2.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataThirdPartyV2 ThirdParty_data_V2 = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ThirdPartyHealthDataV2.HisDataThirdPartyV2, ThirdPartyHealthDataV2.HisDataThirdPartyV2.Builder, ThirdPartyHealthDataV2.HisDataThirdPartyV2OrBuilder>
          getThirdPartyDataV2FieldBuilder() {
        if (thirdPartyDataV2Builder_ == null) {
          if (!(dataCase_ == 17)) {
            data_ = ThirdPartyHealthDataV2.HisDataThirdPartyV2.getDefaultInstance();
          }
          thirdPartyDataV2Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ThirdPartyHealthDataV2.HisDataThirdPartyV2, ThirdPartyHealthDataV2.HisDataThirdPartyV2.Builder, ThirdPartyHealthDataV2.HisDataThirdPartyV2OrBuilder>(
                  (ThirdPartyHealthDataV2.HisDataThirdPartyV2) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 17;
        onChanged();;
        return thirdPartyDataV2Builder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ACCelerometerData.HisACCelerometer, ACCelerometerData.HisACCelerometer.Builder, ACCelerometerData.HisACCelerometerOrBuilder> aCCelerometerDataBuilder_;
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       * @return Whether the aCCelerometerData field is set.
       */
      public boolean hasACCelerometerData() {
        return dataCase_ == 18;
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       * @return The aCCelerometerData.
       */
      public ACCelerometerData.HisACCelerometer getACCelerometerData() {
        if (aCCelerometerDataBuilder_ == null) {
          if (dataCase_ == 18) {
            return (ACCelerometerData.HisACCelerometer) data_;
          }
          return ACCelerometerData.HisACCelerometer.getDefaultInstance();
        } else {
          if (dataCase_ == 18) {
            return aCCelerometerDataBuilder_.getMessage();
          }
          return ACCelerometerData.HisACCelerometer.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       */
      public Builder setACCelerometerData(ACCelerometerData.HisACCelerometer value) {
        if (aCCelerometerDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          aCCelerometerDataBuilder_.setMessage(value);
        }
        dataCase_ = 18;
        return this;
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       */
      public Builder setACCelerometerData(
          ACCelerometerData.HisACCelerometer.Builder builderForValue) {
        if (aCCelerometerDataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          aCCelerometerDataBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 18;
        return this;
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       */
      public Builder mergeACCelerometerData(ACCelerometerData.HisACCelerometer value) {
        if (aCCelerometerDataBuilder_ == null) {
          if (dataCase_ == 18 &&
              data_ != ACCelerometerData.HisACCelerometer.getDefaultInstance()) {
            data_ = ACCelerometerData.HisACCelerometer.newBuilder((ACCelerometerData.HisACCelerometer) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 18) {
            aCCelerometerDataBuilder_.mergeFrom(value);
          }
          aCCelerometerDataBuilder_.setMessage(value);
        }
        dataCase_ = 18;
        return this;
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       */
      public Builder clearACCelerometerData() {
        if (aCCelerometerDataBuilder_ == null) {
          if (dataCase_ == 18) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 18) {
            dataCase_ = 0;
            data_ = null;
          }
          aCCelerometerDataBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       */
      public ACCelerometerData.HisACCelerometer.Builder getACCelerometerDataBuilder() {
        return getACCelerometerDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       */
      public ACCelerometerData.HisACCelerometerOrBuilder getACCelerometerDataOrBuilder() {
        if ((dataCase_ == 18) && (aCCelerometerDataBuilder_ != null)) {
          return aCCelerometerDataBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 18) {
            return (ACCelerometerData.HisACCelerometer) data_;
          }
          return ACCelerometerData.HisACCelerometer.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisACCelerometer ACCelerometer_data = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ACCelerometerData.HisACCelerometer, ACCelerometerData.HisACCelerometer.Builder, ACCelerometerData.HisACCelerometerOrBuilder>
          getACCelerometerDataFieldBuilder() {
        if (aCCelerometerDataBuilder_ == null) {
          if (!(dataCase_ == 18)) {
            data_ = ACCelerometerData.HisACCelerometer.getDefaultInstance();
          }
          aCCelerometerDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ACCelerometerData.HisACCelerometer, ACCelerometerData.HisACCelerometer.Builder, ACCelerometerData.HisACCelerometerOrBuilder>(
                  (ACCelerometerData.HisACCelerometer) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 18;
        onChanged();;
        return aCCelerometerDataBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          GyroscopeData.HisGyroscope, GyroscopeData.HisGyroscope.Builder, GyroscopeData.HisGyroscopeOrBuilder> gyroscopeDataBuilder_;
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       * @return Whether the gyroscopeData field is set.
       */
      public boolean hasGyroscopeData() {
        return dataCase_ == 19;
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       * @return The gyroscopeData.
       */
      public GyroscopeData.HisGyroscope getGyroscopeData() {
        if (gyroscopeDataBuilder_ == null) {
          if (dataCase_ == 19) {
            return (GyroscopeData.HisGyroscope) data_;
          }
          return GyroscopeData.HisGyroscope.getDefaultInstance();
        } else {
          if (dataCase_ == 19) {
            return gyroscopeDataBuilder_.getMessage();
          }
          return GyroscopeData.HisGyroscope.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       */
      public Builder setGyroscopeData(GyroscopeData.HisGyroscope value) {
        if (gyroscopeDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          gyroscopeDataBuilder_.setMessage(value);
        }
        dataCase_ = 19;
        return this;
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       */
      public Builder setGyroscopeData(
          GyroscopeData.HisGyroscope.Builder builderForValue) {
        if (gyroscopeDataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          gyroscopeDataBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 19;
        return this;
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       */
      public Builder mergeGyroscopeData(GyroscopeData.HisGyroscope value) {
        if (gyroscopeDataBuilder_ == null) {
          if (dataCase_ == 19 &&
              data_ != GyroscopeData.HisGyroscope.getDefaultInstance()) {
            data_ = GyroscopeData.HisGyroscope.newBuilder((GyroscopeData.HisGyroscope) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 19) {
            gyroscopeDataBuilder_.mergeFrom(value);
          }
          gyroscopeDataBuilder_.setMessage(value);
        }
        dataCase_ = 19;
        return this;
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       */
      public Builder clearGyroscopeData() {
        if (gyroscopeDataBuilder_ == null) {
          if (dataCase_ == 19) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 19) {
            dataCase_ = 0;
            data_ = null;
          }
          gyroscopeDataBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       */
      public GyroscopeData.HisGyroscope.Builder getGyroscopeDataBuilder() {
        return getGyroscopeDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       */
      public GyroscopeData.HisGyroscopeOrBuilder getGyroscopeDataOrBuilder() {
        if ((dataCase_ == 19) && (gyroscopeDataBuilder_ != null)) {
          return gyroscopeDataBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 19) {
            return (GyroscopeData.HisGyroscope) data_;
          }
          return GyroscopeData.HisGyroscope.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisGyroscope Gyroscope_data = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          GyroscopeData.HisGyroscope, GyroscopeData.HisGyroscope.Builder, GyroscopeData.HisGyroscopeOrBuilder>
          getGyroscopeDataFieldBuilder() {
        if (gyroscopeDataBuilder_ == null) {
          if (!(dataCase_ == 19)) {
            data_ = GyroscopeData.HisGyroscope.getDefaultInstance();
          }
          gyroscopeDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              GyroscopeData.HisGyroscope, GyroscopeData.HisGyroscope.Builder, GyroscopeData.HisGyroscopeOrBuilder>(
                  (GyroscopeData.HisGyroscope) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 19;
        onChanged();;
        return gyroscopeDataBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisYylpfeData.HisDataYYLPFE, HisYylpfeData.HisDataYYLPFE.Builder, HisYylpfeData.HisDataYYLPFEOrBuilder> yYLPFEBuilder_;
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       * @return Whether the yYLPFE field is set.
       */
      public boolean hasYYLPFE() {
        return dataCase_ == 20;
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       * @return The yYLPFE.
       */
      public HisYylpfeData.HisDataYYLPFE getYYLPFE() {
        if (yYLPFEBuilder_ == null) {
          if (dataCase_ == 20) {
            return (HisYylpfeData.HisDataYYLPFE) data_;
          }
          return HisYylpfeData.HisDataYYLPFE.getDefaultInstance();
        } else {
          if (dataCase_ == 20) {
            return yYLPFEBuilder_.getMessage();
          }
          return HisYylpfeData.HisDataYYLPFE.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       */
      public Builder setYYLPFE(HisYylpfeData.HisDataYYLPFE value) {
        if (yYLPFEBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          yYLPFEBuilder_.setMessage(value);
        }
        dataCase_ = 20;
        return this;
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       */
      public Builder setYYLPFE(
          HisYylpfeData.HisDataYYLPFE.Builder builderForValue) {
        if (yYLPFEBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          yYLPFEBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 20;
        return this;
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       */
      public Builder mergeYYLPFE(HisYylpfeData.HisDataYYLPFE value) {
        if (yYLPFEBuilder_ == null) {
          if (dataCase_ == 20 &&
              data_ != HisYylpfeData.HisDataYYLPFE.getDefaultInstance()) {
            data_ = HisYylpfeData.HisDataYYLPFE.newBuilder((HisYylpfeData.HisDataYYLPFE) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 20) {
            yYLPFEBuilder_.mergeFrom(value);
          }
          yYLPFEBuilder_.setMessage(value);
        }
        dataCase_ = 20;
        return this;
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       */
      public Builder clearYYLPFE() {
        if (yYLPFEBuilder_ == null) {
          if (dataCase_ == 20) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 20) {
            dataCase_ = 0;
            data_ = null;
          }
          yYLPFEBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       */
      public HisYylpfeData.HisDataYYLPFE.Builder getYYLPFEBuilder() {
        return getYYLPFEFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       */
      public HisYylpfeData.HisDataYYLPFEOrBuilder getYYLPFEOrBuilder() {
        if ((dataCase_ == 20) && (yYLPFEBuilder_ != null)) {
          return yYLPFEBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 20) {
            return (HisYylpfeData.HisDataYYLPFE) data_;
          }
          return HisYylpfeData.HisDataYYLPFE.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataYYLPFE YYLPFE = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisYylpfeData.HisDataYYLPFE, HisYylpfeData.HisDataYYLPFE.Builder, HisYylpfeData.HisDataYYLPFEOrBuilder>
          getYYLPFEFieldBuilder() {
        if (yYLPFEBuilder_ == null) {
          if (!(dataCase_ == 20)) {
            data_ = HisYylpfeData.HisDataYYLPFE.getDefaultInstance();
          }
          yYLPFEBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisYylpfeData.HisDataYYLPFE, HisYylpfeData.HisDataYYLPFE.Builder, HisYylpfeData.HisDataYYLPFEOrBuilder>(
                  (HisYylpfeData.HisDataYYLPFE) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 20;
        onChanged();;
        return yYLPFEBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisMultiLeadsEcg.HisDataMultiLeadsECG, HisMultiLeadsEcg.HisDataMultiLeadsECG.Builder, HisMultiLeadsEcg.HisDataMultiLeadsECGOrBuilder> multiLeadsECGBuilder_;
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       * @return Whether the multiLeadsECG field is set.
       */
      public boolean hasMultiLeadsECG() {
        return dataCase_ == 21;
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       * @return The multiLeadsECG.
       */
      public HisMultiLeadsEcg.HisDataMultiLeadsECG getMultiLeadsECG() {
        if (multiLeadsECGBuilder_ == null) {
          if (dataCase_ == 21) {
            return (HisMultiLeadsEcg.HisDataMultiLeadsECG) data_;
          }
          return HisMultiLeadsEcg.HisDataMultiLeadsECG.getDefaultInstance();
        } else {
          if (dataCase_ == 21) {
            return multiLeadsECGBuilder_.getMessage();
          }
          return HisMultiLeadsEcg.HisDataMultiLeadsECG.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       */
      public Builder setMultiLeadsECG(HisMultiLeadsEcg.HisDataMultiLeadsECG value) {
        if (multiLeadsECGBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          multiLeadsECGBuilder_.setMessage(value);
        }
        dataCase_ = 21;
        return this;
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       */
      public Builder setMultiLeadsECG(
          HisMultiLeadsEcg.HisDataMultiLeadsECG.Builder builderForValue) {
        if (multiLeadsECGBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          multiLeadsECGBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 21;
        return this;
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       */
      public Builder mergeMultiLeadsECG(HisMultiLeadsEcg.HisDataMultiLeadsECG value) {
        if (multiLeadsECGBuilder_ == null) {
          if (dataCase_ == 21 &&
              data_ != HisMultiLeadsEcg.HisDataMultiLeadsECG.getDefaultInstance()) {
            data_ = HisMultiLeadsEcg.HisDataMultiLeadsECG.newBuilder((HisMultiLeadsEcg.HisDataMultiLeadsECG) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 21) {
            multiLeadsECGBuilder_.mergeFrom(value);
          }
          multiLeadsECGBuilder_.setMessage(value);
        }
        dataCase_ = 21;
        return this;
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       */
      public Builder clearMultiLeadsECG() {
        if (multiLeadsECGBuilder_ == null) {
          if (dataCase_ == 21) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 21) {
            dataCase_ = 0;
            data_ = null;
          }
          multiLeadsECGBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       */
      public HisMultiLeadsEcg.HisDataMultiLeadsECG.Builder getMultiLeadsECGBuilder() {
        return getMultiLeadsECGFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       */
      public HisMultiLeadsEcg.HisDataMultiLeadsECGOrBuilder getMultiLeadsECGOrBuilder() {
        if ((dataCase_ == 21) && (multiLeadsECGBuilder_ != null)) {
          return multiLeadsECGBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 21) {
            return (HisMultiLeadsEcg.HisDataMultiLeadsECG) data_;
          }
          return HisMultiLeadsEcg.HisDataMultiLeadsECG.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisDataMultiLeadsECG MultiLeadsECG = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisMultiLeadsEcg.HisDataMultiLeadsECG, HisMultiLeadsEcg.HisDataMultiLeadsECG.Builder, HisMultiLeadsEcg.HisDataMultiLeadsECGOrBuilder>
          getMultiLeadsECGFieldBuilder() {
        if (multiLeadsECGBuilder_ == null) {
          if (!(dataCase_ == 21)) {
            data_ = HisMultiLeadsEcg.HisDataMultiLeadsECG.getDefaultInstance();
          }
          multiLeadsECGBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisMultiLeadsEcg.HisDataMultiLeadsECG, HisMultiLeadsEcg.HisDataMultiLeadsECG.Builder, HisMultiLeadsEcg.HisDataMultiLeadsECGOrBuilder>(
                  (HisMultiLeadsEcg.HisDataMultiLeadsECG) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 21;
        onChanged();;
        return multiLeadsECGBuilder_;
      }
      @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:HisData)
    }

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

    public static HisData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return Whether the operation field is set.
     */
    boolean hasOperation();
    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return The operation.
     */
    HisOperation getOperation();

    /**
     * <code>required bool ret = 2;</code>
     * @return Whether the ret field is set.
     */
    boolean hasRet();
    /**
     * <code>required bool ret = 2;</code>
     * @return The ret.
     */
    boolean getRet();
  }
  /**
   * Protobuf type {@code HisConfirm}
   */
  public  static final class HisConfirm extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisConfirm)
      HisConfirmOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisConfirm.newBuilder() to construct.
    private HisConfirm(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisConfirm() {
      operation_ = 0;
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisConfirm(
        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 8: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              HisOperation value = HisOperation.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                operation_ = rawValue;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              ret_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisDataOuterClass.internal_static_HisConfirm_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisConfirm_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisConfirm.class, Builder.class);
    }

    private int bitField0_;
    public static final int OPERATION_FIELD_NUMBER = 1;
    private int operation_;
    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return Whether the operation field is set.
     */
    public boolean hasOperation() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .HisOperation operation = 1;</code>
     * @return The operation.
     */
    public HisOperation getOperation() {
      @SuppressWarnings("deprecation")
      HisOperation result = HisOperation.valueOf(operation_);
      return result == null ? HisOperation.IT_SYNC : result;
    }

    public static final int RET_FIELD_NUMBER = 2;
    private boolean ret_;
    /**
     * <code>required bool ret = 2;</code>
     * @return Whether the ret field is set.
     */
    public boolean hasRet() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bool ret = 2;</code>
     * @return The ret.
     */
    public boolean getRet() {
      return ret_;
    }

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

      if (!hasOperation()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, operation_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, ret_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, operation_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, ret_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasOperation() != other.hasOperation()) return false;
      if (hasOperation()) {
        if (operation_ != other.operation_) return false;
      }
      if (hasRet() != other.hasRet()) return false;
      if (hasRet()) {
        if (getRet()
            != other.getRet()) 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 (hasOperation()) {
        hash = (37 * hash) + OPERATION_FIELD_NUMBER;
        hash = (53 * hash) + operation_;
      }
      if (hasRet()) {
        hash = (37 * hash) + RET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getRet());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisConfirm_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisConfirm.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisConfirm.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();
        operation_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        ret_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

      @Override
      public HisConfirm buildPartial() {
        HisConfirm result = new HisConfirm(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.operation_ = operation_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ret_ = ret_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        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 HisConfirm) {
          return mergeFrom((HisConfirm)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisConfirm other) {
        if (other == HisConfirm.getDefaultInstance()) return this;
        if (other.hasOperation()) {
          setOperation(other.getOperation());
        }
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasOperation()) {
          return false;
        }
        if (!hasRet()) {
          return false;
        }
        return true;
      }

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

      private int operation_ = 0;
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @return Whether the operation field is set.
       */
      public boolean hasOperation() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @return The operation.
       */
      public HisOperation getOperation() {
        @SuppressWarnings("deprecation")
        HisOperation result = HisOperation.valueOf(operation_);
        return result == null ? HisOperation.IT_SYNC : result;
      }
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @param value The operation to set.
       * @return This builder for chaining.
       */
      public Builder setOperation(HisOperation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        operation_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .HisOperation operation = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperation() {
        bitField0_ = (bitField0_ & ~0x00000001);
        operation_ = 0;
        onChanged();
        return this;
      }

      private boolean ret_ ;
      /**
       * <code>required bool ret = 2;</code>
       * @return Whether the ret field is set.
       */
      public boolean hasRet() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bool ret = 2;</code>
       * @return The ret.
       */
      public boolean getRet() {
        return ret_;
      }
      /**
       * <code>required bool ret = 2;</code>
       * @param value The ret to set.
       * @return This builder for chaining.
       */
      public Builder setRet(boolean value) {
        bitField0_ |= 0x00000002;
        ret_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool ret = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ret_ = false;
        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:HisConfirm)
    }

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

    public static HisConfirm getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    HisDataType getType();

    /**
     * <code>optional .HisConfirm confirm = 2;</code>
     * @return Whether the confirm field is set.
     */
    boolean hasConfirm();
    /**
     * <code>optional .HisConfirm confirm = 2;</code>
     * @return The confirm.
     */
    HisConfirm getConfirm();
    /**
     * <code>optional .HisConfirm confirm = 2;</code>
     */
    HisConfirmOrBuilder getConfirmOrBuilder();

    /**
     * <code>optional .HisIndexTable index_table = 3;</code>
     * @return Whether the indexTable field is set.
     */
    boolean hasIndexTable();
    /**
     * <code>optional .HisIndexTable index_table = 3;</code>
     * @return The indexTable.
     */
    HisIndexTable getIndexTable();
    /**
     * <code>optional .HisIndexTable index_table = 3;</code>
     */
    HisIndexTableOrBuilder getIndexTableOrBuilder();

    /**
     * <code>optional .HisData his_data = 4;</code>
     * @return Whether the hisData field is set.
     */
    boolean hasHisData();
    /**
     * <code>optional .HisData his_data = 4;</code>
     * @return The hisData.
     */
    HisData getHisData();
    /**
     * <code>optional .HisData his_data = 4;</code>
     */
    HisDataOrBuilder getHisDataOrBuilder();

    public HisNotification.DataCase getDataCase();
  }
  /**
   * Protobuf type {@code HisNotification}
   */
  public  static final class HisNotification extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisNotification)
      HisNotificationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisNotification.newBuilder() to construct.
    private HisNotification(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisNotification() {
      type_ = 0;
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisNotification(
        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 8: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              HisDataType value = HisDataType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = rawValue;
              }
              break;
            }
            case 18: {
              HisConfirm.Builder subBuilder = null;
              if (dataCase_ == 2) {
                subBuilder = ((HisConfirm) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisConfirm.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisConfirm) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 2;
              break;
            }
            case 26: {
              HisIndexTable.Builder subBuilder = null;
              if (dataCase_ == 3) {
                subBuilder = ((HisIndexTable) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisIndexTable.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisIndexTable) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 3;
              break;
            }
            case 34: {
              HisData.Builder subBuilder = null;
              if (dataCase_ == 4) {
                subBuilder = ((HisData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(HisData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((HisData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 4;
              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 HisDataOuterClass.internal_static_HisNotification_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisDataOuterClass.internal_static_HisNotification_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisNotification.class, Builder.class);
    }

    private int bitField0_;
    private int dataCase_ = 0;
    private Object data_;
    public enum DataCase
        implements com.google.protobuf.Internal.EnumLite,
            InternalOneOfEnum {
      CONFIRM(2),
      INDEX_TABLE(3),
      HIS_DATA(4),
      DATA_NOT_SET(0);
      private final int value;
      private DataCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @Deprecated
      public static DataCase valueOf(int value) {
        return forNumber(value);
      }

      public static DataCase forNumber(int value) {
        switch (value) {
          case 2: return CONFIRM;
          case 3: return INDEX_TABLE;
          case 4: return HIS_DATA;
          case 0: return DATA_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public DataCase
    getDataCase() {
      return DataCase.forNumber(
          dataCase_);
    }

    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return Whether the type field is set.
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .HisDataType type = 1;</code>
     * @return The type.
     */
    public HisDataType getType() {
      @SuppressWarnings("deprecation")
      HisDataType result = HisDataType.valueOf(type_);
      return result == null ? HisDataType.HEALTH_DATA : result;
    }

    public static final int CONFIRM_FIELD_NUMBER = 2;
    /**
     * <code>optional .HisConfirm confirm = 2;</code>
     * @return Whether the confirm field is set.
     */
    public boolean hasConfirm() {
      return dataCase_ == 2;
    }
    /**
     * <code>optional .HisConfirm confirm = 2;</code>
     * @return The confirm.
     */
    public HisConfirm getConfirm() {
      if (dataCase_ == 2) {
         return (HisConfirm) data_;
      }
      return HisConfirm.getDefaultInstance();
    }
    /**
     * <code>optional .HisConfirm confirm = 2;</code>
     */
    public HisConfirmOrBuilder getConfirmOrBuilder() {
      if (dataCase_ == 2) {
         return (HisConfirm) data_;
      }
      return HisConfirm.getDefaultInstance();
    }

    public static final int INDEX_TABLE_FIELD_NUMBER = 3;
    /**
     * <code>optional .HisIndexTable index_table = 3;</code>
     * @return Whether the indexTable field is set.
     */
    public boolean hasIndexTable() {
      return dataCase_ == 3;
    }
    /**
     * <code>optional .HisIndexTable index_table = 3;</code>
     * @return The indexTable.
     */
    public HisIndexTable getIndexTable() {
      if (dataCase_ == 3) {
         return (HisIndexTable) data_;
      }
      return HisIndexTable.getDefaultInstance();
    }
    /**
     * <code>optional .HisIndexTable index_table = 3;</code>
     */
    public HisIndexTableOrBuilder getIndexTableOrBuilder() {
      if (dataCase_ == 3) {
         return (HisIndexTable) data_;
      }
      return HisIndexTable.getDefaultInstance();
    }

    public static final int HIS_DATA_FIELD_NUMBER = 4;
    /**
     * <code>optional .HisData his_data = 4;</code>
     * @return Whether the hisData field is set.
     */
    public boolean hasHisData() {
      return dataCase_ == 4;
    }
    /**
     * <code>optional .HisData his_data = 4;</code>
     * @return The hisData.
     */
    public HisData getHisData() {
      if (dataCase_ == 4) {
         return (HisData) data_;
      }
      return HisData.getDefaultInstance();
    }
    /**
     * <code>optional .HisData his_data = 4;</code>
     */
    public HisDataOrBuilder getHisDataOrBuilder() {
      if (dataCase_ == 4) {
         return (HisData) data_;
      }
      return HisData.getDefaultInstance();
    }

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

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasConfirm()) {
        if (!getConfirm().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasIndexTable()) {
        if (!getIndexTable().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasHisData()) {
        if (!getHisData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, type_);
      }
      if (dataCase_ == 2) {
        output.writeMessage(2, (HisConfirm) data_);
      }
      if (dataCase_ == 3) {
        output.writeMessage(3, (HisIndexTable) data_);
      }
      if (dataCase_ == 4) {
        output.writeMessage(4, (HisData) data_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_);
      }
      if (dataCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (HisConfirm) data_);
      }
      if (dataCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (HisIndexTable) data_);
      }
      if (dataCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (HisData) data_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (type_ != other.type_) return false;
      }
      if (!getDataCase().equals(other.getDataCase())) return false;
      switch (dataCase_) {
        case 2:
          if (!getConfirm()
              .equals(other.getConfirm())) return false;
          break;
        case 3:
          if (!getIndexTable()
              .equals(other.getIndexTable())) return false;
          break;
        case 4:
          if (!getHisData()
              .equals(other.getHisData())) return false;
          break;
        case 0:
        default:
      }
      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 (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
      }
      switch (dataCase_) {
        case 2:
          hash = (37 * hash) + CONFIRM_FIELD_NUMBER;
          hash = (53 * hash) + getConfirm().hashCode();
          break;
        case 3:
          hash = (37 * hash) + INDEX_TABLE_FIELD_NUMBER;
          hash = (53 * hash) + getIndexTable().hashCode();
          break;
        case 4:
          hash = (37 * hash) + HIS_DATA_FIELD_NUMBER;
          hash = (53 * hash) + getHisData().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisDataOuterClass.internal_static_HisNotification_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisNotification.class, Builder.class);
      }

      // Construct using HisDataOuterClass.HisNotification.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();
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        dataCase_ = 0;
        data_ = null;
        return this;
      }

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

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

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

      @Override
      public HisNotification buildPartial() {
        HisNotification result = new HisNotification(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (dataCase_ == 2) {
          if (confirmBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = confirmBuilder_.build();
          }
        }
        if (dataCase_ == 3) {
          if (indexTableBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = indexTableBuilder_.build();
          }
        }
        if (dataCase_ == 4) {
          if (hisDataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = hisDataBuilder_.build();
          }
        }
        result.bitField0_ = to_bitField0_;
        result.dataCase_ = dataCase_;
        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 HisNotification) {
          return mergeFrom((HisNotification)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisNotification other) {
        if (other == HisNotification.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        switch (other.getDataCase()) {
          case CONFIRM: {
            mergeConfirm(other.getConfirm());
            break;
          }
          case INDEX_TABLE: {
            mergeIndexTable(other.getIndexTable());
            break;
          }
          case HIS_DATA: {
            mergeHisData(other.getHisData());
            break;
          }
          case DATA_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {
          return false;
        }
        if (hasConfirm()) {
          if (!getConfirm().isInitialized()) {
            return false;
          }
        }
        if (hasIndexTable()) {
          if (!getIndexTable().isInitialized()) {
            return false;
          }
        }
        if (hasHisData()) {
          if (!getHisData().isInitialized()) {
            return false;
          }
        }
        return true;
      }

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

      public Builder clearData() {
        dataCase_ = 0;
        data_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int type_ = 0;
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return The type.
       */
      public HisDataType getType() {
        @SuppressWarnings("deprecation")
        HisDataType result = HisDataType.valueOf(type_);
        return result == null ? HisDataType.HEALTH_DATA : result;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(HisDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .HisDataType type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisConfirm, HisConfirm.Builder, HisConfirmOrBuilder> confirmBuilder_;
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       * @return Whether the confirm field is set.
       */
      public boolean hasConfirm() {
        return dataCase_ == 2;
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       * @return The confirm.
       */
      public HisConfirm getConfirm() {
        if (confirmBuilder_ == null) {
          if (dataCase_ == 2) {
            return (HisConfirm) data_;
          }
          return HisConfirm.getDefaultInstance();
        } else {
          if (dataCase_ == 2) {
            return confirmBuilder_.getMessage();
          }
          return HisConfirm.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       */
      public Builder setConfirm(HisConfirm value) {
        if (confirmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          confirmBuilder_.setMessage(value);
        }
        dataCase_ = 2;
        return this;
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       */
      public Builder setConfirm(
          HisConfirm.Builder builderForValue) {
        if (confirmBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          confirmBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 2;
        return this;
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       */
      public Builder mergeConfirm(HisConfirm value) {
        if (confirmBuilder_ == null) {
          if (dataCase_ == 2 &&
              data_ != HisConfirm.getDefaultInstance()) {
            data_ = HisConfirm.newBuilder((HisConfirm) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 2) {
            confirmBuilder_.mergeFrom(value);
          }
          confirmBuilder_.setMessage(value);
        }
        dataCase_ = 2;
        return this;
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       */
      public Builder clearConfirm() {
        if (confirmBuilder_ == null) {
          if (dataCase_ == 2) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 2) {
            dataCase_ = 0;
            data_ = null;
          }
          confirmBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       */
      public HisConfirm.Builder getConfirmBuilder() {
        return getConfirmFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       */
      public HisConfirmOrBuilder getConfirmOrBuilder() {
        if ((dataCase_ == 2) && (confirmBuilder_ != null)) {
          return confirmBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 2) {
            return (HisConfirm) data_;
          }
          return HisConfirm.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisConfirm confirm = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisConfirm, HisConfirm.Builder, HisConfirmOrBuilder>
          getConfirmFieldBuilder() {
        if (confirmBuilder_ == null) {
          if (!(dataCase_ == 2)) {
            data_ = HisConfirm.getDefaultInstance();
          }
          confirmBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisConfirm, HisConfirm.Builder, HisConfirmOrBuilder>(
                  (HisConfirm) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 2;
        onChanged();;
        return confirmBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisIndexTable, HisIndexTable.Builder, HisIndexTableOrBuilder> indexTableBuilder_;
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       * @return Whether the indexTable field is set.
       */
      public boolean hasIndexTable() {
        return dataCase_ == 3;
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       * @return The indexTable.
       */
      public HisIndexTable getIndexTable() {
        if (indexTableBuilder_ == null) {
          if (dataCase_ == 3) {
            return (HisIndexTable) data_;
          }
          return HisIndexTable.getDefaultInstance();
        } else {
          if (dataCase_ == 3) {
            return indexTableBuilder_.getMessage();
          }
          return HisIndexTable.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       */
      public Builder setIndexTable(HisIndexTable value) {
        if (indexTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          indexTableBuilder_.setMessage(value);
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       */
      public Builder setIndexTable(
          HisIndexTable.Builder builderForValue) {
        if (indexTableBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          indexTableBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       */
      public Builder mergeIndexTable(HisIndexTable value) {
        if (indexTableBuilder_ == null) {
          if (dataCase_ == 3 &&
              data_ != HisIndexTable.getDefaultInstance()) {
            data_ = HisIndexTable.newBuilder((HisIndexTable) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 3) {
            indexTableBuilder_.mergeFrom(value);
          }
          indexTableBuilder_.setMessage(value);
        }
        dataCase_ = 3;
        return this;
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       */
      public Builder clearIndexTable() {
        if (indexTableBuilder_ == null) {
          if (dataCase_ == 3) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 3) {
            dataCase_ = 0;
            data_ = null;
          }
          indexTableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       */
      public HisIndexTable.Builder getIndexTableBuilder() {
        return getIndexTableFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       */
      public HisIndexTableOrBuilder getIndexTableOrBuilder() {
        if ((dataCase_ == 3) && (indexTableBuilder_ != null)) {
          return indexTableBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 3) {
            return (HisIndexTable) data_;
          }
          return HisIndexTable.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisIndexTable index_table = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisIndexTable, HisIndexTable.Builder, HisIndexTableOrBuilder>
          getIndexTableFieldBuilder() {
        if (indexTableBuilder_ == null) {
          if (!(dataCase_ == 3)) {
            data_ = HisIndexTable.getDefaultInstance();
          }
          indexTableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisIndexTable, HisIndexTable.Builder, HisIndexTableOrBuilder>(
                  (HisIndexTable) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 3;
        onChanged();;
        return indexTableBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          HisData, HisData.Builder, HisDataOrBuilder> hisDataBuilder_;
      /**
       * <code>optional .HisData his_data = 4;</code>
       * @return Whether the hisData field is set.
       */
      public boolean hasHisData() {
        return dataCase_ == 4;
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       * @return The hisData.
       */
      public HisData getHisData() {
        if (hisDataBuilder_ == null) {
          if (dataCase_ == 4) {
            return (HisData) data_;
          }
          return HisData.getDefaultInstance();
        } else {
          if (dataCase_ == 4) {
            return hisDataBuilder_.getMessage();
          }
          return HisData.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       */
      public Builder setHisData(HisData value) {
        if (hisDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          hisDataBuilder_.setMessage(value);
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       */
      public Builder setHisData(
          HisData.Builder builderForValue) {
        if (hisDataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          hisDataBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       */
      public Builder mergeHisData(HisData value) {
        if (hisDataBuilder_ == null) {
          if (dataCase_ == 4 &&
              data_ != HisData.getDefaultInstance()) {
            data_ = HisData.newBuilder((HisData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 4) {
            hisDataBuilder_.mergeFrom(value);
          }
          hisDataBuilder_.setMessage(value);
        }
        dataCase_ = 4;
        return this;
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       */
      public Builder clearHisData() {
        if (hisDataBuilder_ == null) {
          if (dataCase_ == 4) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 4) {
            dataCase_ = 0;
            data_ = null;
          }
          hisDataBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       */
      public HisData.Builder getHisDataBuilder() {
        return getHisDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       */
      public HisDataOrBuilder getHisDataOrBuilder() {
        if ((dataCase_ == 4) && (hisDataBuilder_ != null)) {
          return hisDataBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 4) {
            return (HisData) data_;
          }
          return HisData.getDefaultInstance();
        }
      }
      /**
       * <code>optional .HisData his_data = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisData, HisData.Builder, HisDataOrBuilder>
          getHisDataFieldBuilder() {
        if (hisDataBuilder_ == null) {
          if (!(dataCase_ == 4)) {
            data_ = HisData.getDefaultInstance();
          }
          hisDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisData, HisData.Builder, HisDataOrBuilder>(
                  (HisData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 4;
        onChanged();;
        return hisDataBuilder_;
      }
      @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:HisNotification)
    }

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

    public static HisNotification getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisBlock_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisBlock_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisITSync_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisITSync_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisStartSync_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisStartSync_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisStopSync_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisStopSync_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisSubscriber_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisSubscriber_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisIndex_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisIndex_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisIndexTable_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisIndexTable_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisData_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisConfirm_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisConfirm_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisNotification_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisNotification_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    String[] descriptorData = {
      "\n\016his_data.proto\032\023realtime_data.proto\032\025h" +
      "is_health_data.proto\032\023his_gnss_data.prot" +
      "o\032\022his_ecg_data.proto\032\022his_ppg_data.prot" +
      "o\032\022his_rri_data.proto\032\024his_medic_data.pr" +
      "oto\032\023his_spo2_data.proto\032\023his_swim_data." +
      "proto\032\032his_temperature_data.proto\032\035his_e" +
      "ncrypt_health_data.proto\032\032his_encrypt_ec" +
      "g_data.proto\032\032his_encrypt_ppg_data.proto" +
      "\032\032his_encrypt_rri_data.proto\032\034ThirdParty" +
      "_health_data.proto\032\037ThirdParty_health_da" +
      "ta_V2.proto\032\030ACCelerometer_data.proto\032\024G" +
      "yroscope_data.proto\032\025his_yylpfe_data.pro" +
      "to\032\031his_multi_leads_ecg.proto\".\n\010HisBloc" +
      "k\022\021\n\tstart_seq\030\001 \002(\007\022\017\n\007end_seq\030\002 \002(\007\"\'\n" +
      "\tHisITSync\022\032\n\004type\030\001 \002(\0162\014.HisDataType\"D" +
      "\n\014HisStartSync\022\032\n\004type\030\001 \002(\0162\014.HisDataTy" +
      "pe\022\030\n\005block\030\002 \003(\0132\t.HisBlock\")\n\013HisStopS" +
      "ync\022\032\n\004type\030\001 \002(\0162\014.HisDataType\"\240\001\n\rHisS" +
      "ubscriber\022 \n\toperation\030\001 \002(\0162\r.HisOperat" +
      "ion\022\035\n\007it_sync\030\002 \001(\0132\n.HisITSyncH\000\022#\n\nst" +
      "art_sync\030\003 \001(\0132\r.HisStartSyncH\000\022!\n\tstop_" +
      "sync\030\004 \001(\0132\014.HisStopSyncH\000B\006\n\004data\"E\n\010Hi" +
      "sIndex\022\025\n\004time\030\001 \002(\0132\007.RtTime\022\021\n\tstart_s" +
      "eq\030\002 \002(\007\022\017\n\007end_seq\030\003 \002(\007\")\n\rHisIndexTab" +
      "le\022\030\n\005index\030\001 \003(\0132\t.HisIndex\"\222\006\n\007HisData" +
      "\022\013\n\003seq\030\001 \002(\007\022 \n\006status\030\002 \001(\0162\016.HisDataS" +
      "tatusH\000\022 \n\006health\030\003 \001(\0132\016.HisDataHealthH" +
      "\000\022\034\n\004gnss\030\004 \001(\0132\014.HisDataGNSSH\000\022\032\n\003ecg\030\005" +
      " \001(\0132\013.HisDataECGH\000\022\032\n\003ppg\030\006 \001(\0132\013.HisDa" +
      "taPPGH\000\022\032\n\003rri\030\007 \001(\0132\013.HisDataRRIH\000\022\036\n\005m" +
      "edic\030\010 \001(\0132\r.HisDataMedicH\000\022\034\n\004spo2\030\t \001(" +
      "\0132\014.HisDataSpo2H\000\022\034\n\004swim\030\n \001(\0132\014.HisDat" +
      "aSwimH\000\022#\n\004temp\030\013 \001(\0132\023.HisDataTemperatu" +
      "reH\000\022.\n\rhealthencrypt\030\014 \001(\0132\025.HisDataHea" +
      "lthEncryptH\000\022(\n\necgencrypt\030\r \001(\0132\022.HisDa" +
      "taECGEncryptH\000\022(\n\nppgencrypt\030\016 \001(\0132\022.His" +
      "DataPPGEncryptH\000\022(\n\nrriencrypt\030\017 \001(\0132\022.H" +
      "isDataRRIEncryptH\000\022-\n\017ThirdParty_data\030\020 " +
      "\001(\0132\022.HisDataThirdPartyH\000\0222\n\022ThirdParty_" +
      "data_V2\030\021 \001(\0132\024.HisDataThirdPartyV2H\000\022/\n" +
      "\022ACCelerometer_data\030\022 \001(\0132\021.HisACCelerom" +
      "eterH\000\022\'\n\016Gyroscope_data\030\023 \001(\0132\r.HisGyro" +
      "scopeH\000\022 \n\006YYLPFE\030\024 \001(\0132\016.HisDataYYLPFEH" +
      "\000\022.\n\rMultiLeadsECG\030\025 \001(\0132\025.HisDataMultiL" +
      "eadsECGH\000B\006\n\004data\";\n\nHisConfirm\022 \n\topera" +
      "tion\030\001 \002(\0162\r.HisOperation\022\013\n\003ret\030\002 \002(\010\"\232" +
      "\001\n\017HisNotification\022\032\n\004type\030\001 \002(\0162\014.HisDa" +
      "taType\022\036\n\007confirm\030\002 \001(\0132\013.HisConfirmH\000\022%" +
      "\n\013index_table\030\003 \001(\0132\016.HisIndexTableH\000\022\034\n" +
      "\010his_data\030\004 \001(\0132\010.HisDataH\000B\006\n\004data*:\n\014H" +
      "isOperation\022\013\n\007IT_SYNC\020\000\022\016\n\nSTART_SYNC\020\001" +
      "\022\r\n\tSTOP_SYNC\020\002*\215\003\n\013HisDataType\022\017\n\013HEALT" +
      "H_DATA\020\000\022\r\n\tGNSS_DATA\020\001\022\014\n\010ECG_DATA\020\002\022\014\n" +
      "\010PPG_DATA\020\003\022\014\n\010RRI_DATA\020\004\022\016\n\nMEDIC_DATA\020" +
      "\005\022\r\n\tSPO2_DATA\020\006\022\r\n\tSWIM_DATA\020\007\022\024\n\020TEMPE" +
      "RATURE_DATA\020\010\022\027\n\023HEALTH_DATA_ENCRYPT\020\t\022\024" +
      "\n\020ECG_DATA_ENCRYPT\020\n\022\024\n\020PPG_DATA_ENCRYPT" +
      "\020\013\022\024\n\020RRI_DATA_ENCRYPT\020\014\022\021\n\rLONG_ECG_DAT" +
      "A\020\r\022\023\n\017THIRDPARTY_DATA\020\016\022\026\n\022THIRDPARTY_D" +
      "ATA_V2\020\017\022\022\n\016GYROSCOPE_DATA\020\020\022\026\n\022ACCELERO" +
      "METER_DATA\020\021\022\017\n\013YYLPFE_DATA\020\022\022\030\n\024MULTI_L" +
      "EADS_ECG_DATA\020\023*\222\001\n\rHisDataStatus\022\r\n\tSTA" +
      "TUS_OK\020\000\022\026\n\022STATUS_INNER_ERROR\020\001\022\023\n\017STAT" +
      "US_NV_ERROR\020\002\022\024\n\020STATUS_CRC_ERROR\020\003\022\025\n\021S" +
      "TATUS_TYPE_ERROR\020\004\022\030\n\024STATUS_NOT_SUPPORT" +
      "ED\020\005B\tZ\007./iwown"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          RealtimeData.getDescriptor(),
          HisHealthData.getDescriptor(),
          HisGnssData.getDescriptor(),
          HisEcgData.getDescriptor(),
          HisPpgData.getDescriptor(),
          HisRriData.getDescriptor(),
          HisMedicData.getDescriptor(),
          HisSpo2Data.getDescriptor(),
          HisSwimData.getDescriptor(),
          HisTemperatureData.getDescriptor(),
          HisEncryptHealthData.getDescriptor(),
          HisEncryptEcgData.getDescriptor(),
          HisEncryptPpgData.getDescriptor(),
          HisEncryptRriData.getDescriptor(),
          ThirdPartyHealthData.getDescriptor(),
          ThirdPartyHealthDataV2.getDescriptor(),
          ACCelerometerData.getDescriptor(),
          GyroscopeData.getDescriptor(),
          HisYylpfeData.getDescriptor(),
          HisMultiLeadsEcg.getDescriptor(),
        });
    internal_static_HisBlock_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_HisBlock_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisBlock_descriptor,
        new String[] { "StartSeq", "EndSeq", });
    internal_static_HisITSync_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_HisITSync_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisITSync_descriptor,
        new String[] { "Type", });
    internal_static_HisStartSync_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_HisStartSync_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisStartSync_descriptor,
        new String[] { "Type", "Block", });
    internal_static_HisStopSync_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_HisStopSync_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisStopSync_descriptor,
        new String[] { "Type", });
    internal_static_HisSubscriber_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_HisSubscriber_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisSubscriber_descriptor,
        new String[] { "Operation", "ItSync", "StartSync", "StopSync", "Data", });
    internal_static_HisIndex_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_HisIndex_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisIndex_descriptor,
        new String[] { "Time", "StartSeq", "EndSeq", });
    internal_static_HisIndexTable_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_HisIndexTable_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisIndexTable_descriptor,
        new String[] { "Index", });
    internal_static_HisData_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_HisData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisData_descriptor,
        new String[] { "Seq", "Status", "Health", "Gnss", "Ecg", "Ppg", "Rri", "Medic", "Spo2", "Swim", "Temp", "Healthencrypt", "Ecgencrypt", "Ppgencrypt", "Rriencrypt", "ThirdPartyData", "ThirdPartyDataV2", "ACCelerometerData", "GyroscopeData", "YYLPFE", "MultiLeadsECG", "Data", });
    internal_static_HisConfirm_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_HisConfirm_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisConfirm_descriptor,
        new String[] { "Operation", "Ret", });
    internal_static_HisNotification_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_HisNotification_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisNotification_descriptor,
        new String[] { "Type", "Confirm", "IndexTable", "HisData", "Data", });
    RealtimeData.getDescriptor();
    HisHealthData.getDescriptor();
    HisGnssData.getDescriptor();
    HisEcgData.getDescriptor();
    HisPpgData.getDescriptor();
    HisRriData.getDescriptor();
    HisMedicData.getDescriptor();
    HisSpo2Data.getDescriptor();
    HisSwimData.getDescriptor();
    HisTemperatureData.getDescriptor();
    HisEncryptHealthData.getDescriptor();
    HisEncryptEcgData.getDescriptor();
    HisEncryptPpgData.getDescriptor();
    HisEncryptRriData.getDescriptor();
    ThirdPartyHealthData.getDescriptor();
    ThirdPartyHealthDataV2.getDescriptor();
    ACCelerometerData.getDescriptor();
    GyroscopeData.getDescriptor();
    HisYylpfeData.getDescriptor();
    HisMultiLeadsEcg.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
