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

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

    /**
     * <code>required float longitude = 2;</code>
     * @return Whether the longitude field is set.
     */
    boolean hasLongitude();
    /**
     * <code>required float longitude = 2;</code>
     * @return The longitude.
     */
    float getLongitude();

    /**
     * <code>required float latitude = 3;</code>
     * @return Whether the latitude field is set.
     */
    boolean hasLatitude();
    /**
     * <code>required float latitude = 3;</code>
     * @return The latitude.
     */
    float getLatitude();

    /**
     * <code>required .GPSTYPE gps_type = 4;</code>
     * @return Whether the gpsType field is set.
     */
    boolean hasGpsType();
    /**
     * <code>required .GPSTYPE gps_type = 4;</code>
     * @return The gpsType.
     */
    Om0Command.GPSTYPE getGpsType();
  }
  /**
   * Protobuf type {@code SOSGNSSINFOV3}
   */
  public  static final class SOSGNSSINFOV3 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SOSGNSSINFOV3)
      SOSGNSSINFOV3OrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SOSGNSSINFOV3.newBuilder() to construct.
    private SOSGNSSINFOV3(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SOSGNSSINFOV3() {
      gpsType_ = 0;
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SOSGNSSINFOV3(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              longitude_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              latitude_ = input.readFloat();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              Om0Command.GPSTYPE value = Om0Command.GPSTYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                gpsType_ = 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 AlarmInfo.internal_static_SOSGNSSINFOV3_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_SOSGNSSINFOV3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              SOSGNSSINFOV3.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int LONGITUDE_FIELD_NUMBER = 2;
    private float longitude_;
    /**
     * <code>required float longitude = 2;</code>
     * @return Whether the longitude field is set.
     */
    public boolean hasLongitude() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required float longitude = 2;</code>
     * @return The longitude.
     */
    public float getLongitude() {
      return longitude_;
    }

    public static final int LATITUDE_FIELD_NUMBER = 3;
    private float latitude_;
    /**
     * <code>required float latitude = 3;</code>
     * @return Whether the latitude field is set.
     */
    public boolean hasLatitude() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required float latitude = 3;</code>
     * @return The latitude.
     */
    public float getLatitude() {
      return latitude_;
    }

    public static final int GPS_TYPE_FIELD_NUMBER = 4;
    private int gpsType_;
    /**
     * <code>required .GPSTYPE gps_type = 4;</code>
     * @return Whether the gpsType field is set.
     */
    public boolean hasGpsType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .GPSTYPE gps_type = 4;</code>
     * @return The gpsType.
     */
    public Om0Command.GPSTYPE getGpsType() {
      @SuppressWarnings("deprecation")
      Om0Command.GPSTYPE result = Om0Command.GPSTYPE.valueOf(gpsType_);
      return result == null ? Om0Command.GPSTYPE.NULL : result;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLongitude()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLatitude()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGpsType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFloat(2, longitude_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFloat(3, latitude_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(4, gpsType_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, longitude_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, latitude_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, gpsType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasLongitude() != other.hasLongitude()) return false;
      if (hasLongitude()) {
        if (Float.floatToIntBits(getLongitude())
            != Float.floatToIntBits(
                other.getLongitude())) return false;
      }
      if (hasLatitude() != other.hasLatitude()) return false;
      if (hasLatitude()) {
        if (Float.floatToIntBits(getLatitude())
            != Float.floatToIntBits(
                other.getLatitude())) return false;
      }
      if (hasGpsType() != other.hasGpsType()) return false;
      if (hasGpsType()) {
        if (gpsType_ != other.gpsType_) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasLongitude()) {
        hash = (37 * hash) + LONGITUDE_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getLongitude());
      }
      if (hasLatitude()) {
        hash = (37 * hash) + LATITUDE_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getLatitude());
      }
      if (hasGpsType()) {
        hash = (37 * hash) + GPS_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + gpsType_;
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_SOSGNSSINFOV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                SOSGNSSINFOV3.class, Builder.class);
      }

      // Construct using AlarmInfo.SOSGNSSINFOV3.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        longitude_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        latitude_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        gpsType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

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

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

      @Override
      public SOSGNSSINFOV3 buildPartial() {
        SOSGNSSINFOV3 result = new SOSGNSSINFOV3(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (timeStampBuilder_ == null) {
            result.timeStamp_ = timeStamp_;
          } else {
            result.timeStamp_ = timeStampBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.longitude_ = longitude_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.latitude_ = latitude_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.gpsType_ = gpsType_;
        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 SOSGNSSINFOV3) {
          return mergeFrom((SOSGNSSINFOV3)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(SOSGNSSINFOV3 other) {
        if (other == SOSGNSSINFOV3.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasLongitude()) {
          setLongitude(other.getLongitude());
        }
        if (other.hasLatitude()) {
          setLatitude(other.getLatitude());
        }
        if (other.hasGpsType()) {
          setGpsType(other.getGpsType());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!hasLongitude()) {
          return false;
        }
        if (!hasLatitude()) {
          return false;
        }
        if (!hasGpsType()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private float longitude_ ;
      /**
       * <code>required float longitude = 2;</code>
       * @return Whether the longitude field is set.
       */
      public boolean hasLongitude() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required float longitude = 2;</code>
       * @return The longitude.
       */
      public float getLongitude() {
        return longitude_;
      }
      /**
       * <code>required float longitude = 2;</code>
       * @param value The longitude to set.
       * @return This builder for chaining.
       */
      public Builder setLongitude(float value) {
        bitField0_ |= 0x00000002;
        longitude_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float longitude = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLongitude() {
        bitField0_ = (bitField0_ & ~0x00000002);
        longitude_ = 0F;
        onChanged();
        return this;
      }

      private float latitude_ ;
      /**
       * <code>required float latitude = 3;</code>
       * @return Whether the latitude field is set.
       */
      public boolean hasLatitude() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required float latitude = 3;</code>
       * @return The latitude.
       */
      public float getLatitude() {
        return latitude_;
      }
      /**
       * <code>required float latitude = 3;</code>
       * @param value The latitude to set.
       * @return This builder for chaining.
       */
      public Builder setLatitude(float value) {
        bitField0_ |= 0x00000004;
        latitude_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float latitude = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLatitude() {
        bitField0_ = (bitField0_ & ~0x00000004);
        latitude_ = 0F;
        onChanged();
        return this;
      }

      private int gpsType_ = 0;
      /**
       * <code>required .GPSTYPE gps_type = 4;</code>
       * @return Whether the gpsType field is set.
       */
      public boolean hasGpsType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .GPSTYPE gps_type = 4;</code>
       * @return The gpsType.
       */
      public Om0Command.GPSTYPE getGpsType() {
        @SuppressWarnings("deprecation")
        Om0Command.GPSTYPE result = Om0Command.GPSTYPE.valueOf(gpsType_);
        return result == null ? Om0Command.GPSTYPE.NULL : result;
      }
      /**
       * <code>required .GPSTYPE gps_type = 4;</code>
       * @param value The gpsType to set.
       * @return This builder for chaining.
       */
      public Builder setGpsType(Om0Command.GPSTYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        gpsType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .GPSTYPE gps_type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearGpsType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        gpsType_ = 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:SOSGNSSINFOV3)
    }

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

    public static SOSGNSSINFOV3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

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

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HrAlarmV3(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              hr_ = 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 AlarmInfo.internal_static_HrAlarmV3_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_HrAlarmV3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HrAlarmV3.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int HR_FIELD_NUMBER = 2;
    private int hr_;
    /**
     * <code>required fixed32 hr = 2;</code>
     * @return Whether the hr field is set.
     */
    public boolean hasHr() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 hr = 2;</code>
     * @return The hr.
     */
    public int getHr() {
      return hr_;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, hr_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, hr_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasHr() != other.hasHr()) return false;
      if (hasHr()) {
        if (getHr()
            != other.getHr()) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasHr()) {
        hash = (37 * hash) + HR_FIELD_NUMBER;
        hash = (53 * hash) + getHr();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_HrAlarmV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HrAlarmV3.class, Builder.class);
      }

      // Construct using AlarmInfo.HrAlarmV3.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        hr_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

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

      public Builder mergeFrom(HrAlarmV3 other) {
        if (other == HrAlarmV3.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasHr()) {
          setHr(other.getHr());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!hasHr()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private int hr_ ;
      /**
       * <code>required fixed32 hr = 2;</code>
       * @return Whether the hr field is set.
       */
      public boolean hasHr() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 hr = 2;</code>
       * @return The hr.
       */
      public int getHr() {
        return hr_;
      }
      /**
       * <code>required fixed32 hr = 2;</code>
       * @param value The hr to set.
       * @return This builder for chaining.
       */
      public Builder setHr(int value) {
        bitField0_ |= 0x00000002;
        hr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 hr = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearHr() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hr_ = 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:HrAlarmV3)
    }

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

    public static HrAlarmV3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

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

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Spo2AlarmV3(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              spo2_ = 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 AlarmInfo.internal_static_Spo2AlarmV3_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_Spo2AlarmV3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              Spo2AlarmV3.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int SPO2_FIELD_NUMBER = 2;
    private int spo2_;
    /**
     * <code>required fixed32 spo2 = 2;</code>
     * @return Whether the spo2 field is set.
     */
    public boolean hasSpo2() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 spo2 = 2;</code>
     * @return The spo2.
     */
    public int getSpo2() {
      return spo2_;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSpo2()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, spo2_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, spo2_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasSpo2() != other.hasSpo2()) return false;
      if (hasSpo2()) {
        if (getSpo2()
            != other.getSpo2()) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasSpo2()) {
        hash = (37 * hash) + SPO2_FIELD_NUMBER;
        hash = (53 * hash) + getSpo2();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_Spo2AlarmV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Spo2AlarmV3.class, Builder.class);
      }

      // Construct using AlarmInfo.Spo2AlarmV3.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        spo2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

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

      public Builder mergeFrom(Spo2AlarmV3 other) {
        if (other == Spo2AlarmV3.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasSpo2()) {
          setSpo2(other.getSpo2());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!hasSpo2()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private int spo2_ ;
      /**
       * <code>required fixed32 spo2 = 2;</code>
       * @return Whether the spo2 field is set.
       */
      public boolean hasSpo2() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 spo2 = 2;</code>
       * @return The spo2.
       */
      public int getSpo2() {
        return spo2_;
      }
      /**
       * <code>required fixed32 spo2 = 2;</code>
       * @param value The spo2 to set.
       * @return This builder for chaining.
       */
      public Builder setSpo2(int value) {
        bitField0_ |= 0x00000002;
        spo2_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 spo2 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpo2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        spo2_ = 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:Spo2AlarmV3)
    }

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

    public static Spo2AlarmV3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

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

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ThrombusAlarmV3(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              thrombusAlarm_ = 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 AlarmInfo.internal_static_ThrombusAlarmV3_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_ThrombusAlarmV3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ThrombusAlarmV3.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int THROMBUS_ALARM_FIELD_NUMBER = 2;
    private boolean thrombusAlarm_;
    /**
     * <code>required bool Thrombus_alarm = 2;</code>
     * @return Whether the thrombusAlarm field is set.
     */
    public boolean hasThrombusAlarm() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bool Thrombus_alarm = 2;</code>
     * @return The thrombusAlarm.
     */
    public boolean getThrombusAlarm() {
      return thrombusAlarm_;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasThrombusAlarm()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, thrombusAlarm_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, thrombusAlarm_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasThrombusAlarm() != other.hasThrombusAlarm()) return false;
      if (hasThrombusAlarm()) {
        if (getThrombusAlarm()
            != other.getThrombusAlarm()) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasThrombusAlarm()) {
        hash = (37 * hash) + THROMBUS_ALARM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getThrombusAlarm());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_ThrombusAlarmV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ThrombusAlarmV3.class, Builder.class);
      }

      // Construct using AlarmInfo.ThrombusAlarmV3.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        thrombusAlarm_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

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

      public Builder mergeFrom(ThrombusAlarmV3 other) {
        if (other == ThrombusAlarmV3.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasThrombusAlarm()) {
          setThrombusAlarm(other.getThrombusAlarm());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!hasThrombusAlarm()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private boolean thrombusAlarm_ ;
      /**
       * <code>required bool Thrombus_alarm = 2;</code>
       * @return Whether the thrombusAlarm field is set.
       */
      public boolean hasThrombusAlarm() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bool Thrombus_alarm = 2;</code>
       * @return The thrombusAlarm.
       */
      public boolean getThrombusAlarm() {
        return thrombusAlarm_;
      }
      /**
       * <code>required bool Thrombus_alarm = 2;</code>
       * @param value The thrombusAlarm to set.
       * @return This builder for chaining.
       */
      public Builder setThrombusAlarm(boolean value) {
        bitField0_ |= 0x00000002;
        thrombusAlarm_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool Thrombus_alarm = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearThrombusAlarm() {
        bitField0_ = (bitField0_ & ~0x00000002);
        thrombusAlarm_ = 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:ThrombusAlarmV3)
    }

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

    public static ThrombusAlarmV3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

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

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FallAlarmConfV3(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              fallAlarm_ = 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 AlarmInfo.internal_static_FallAlarmConfV3_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_FallAlarmConfV3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              FallAlarmConfV3.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int FALL_ALARM_FIELD_NUMBER = 2;
    private boolean fallAlarm_;
    /**
     * <code>required bool fall_alarm = 2;</code>
     * @return Whether the fallAlarm field is set.
     */
    public boolean hasFallAlarm() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bool fall_alarm = 2;</code>
     * @return The fallAlarm.
     */
    public boolean getFallAlarm() {
      return fallAlarm_;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFallAlarm()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, fallAlarm_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, fallAlarm_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasFallAlarm() != other.hasFallAlarm()) return false;
      if (hasFallAlarm()) {
        if (getFallAlarm()
            != other.getFallAlarm()) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasFallAlarm()) {
        hash = (37 * hash) + FALL_ALARM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getFallAlarm());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_FallAlarmConfV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                FallAlarmConfV3.class, Builder.class);
      }

      // Construct using AlarmInfo.FallAlarmConfV3.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        fallAlarm_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

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

      public Builder mergeFrom(FallAlarmConfV3 other) {
        if (other == FallAlarmConfV3.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasFallAlarm()) {
          setFallAlarm(other.getFallAlarm());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!hasFallAlarm()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private boolean fallAlarm_ ;
      /**
       * <code>required bool fall_alarm = 2;</code>
       * @return Whether the fallAlarm field is set.
       */
      public boolean hasFallAlarm() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bool fall_alarm = 2;</code>
       * @return The fallAlarm.
       */
      public boolean getFallAlarm() {
        return fallAlarm_;
      }
      /**
       * <code>required bool fall_alarm = 2;</code>
       * @param value The fallAlarm to set.
       * @return This builder for chaining.
       */
      public Builder setFallAlarm(boolean value) {
        bitField0_ |= 0x00000002;
        fallAlarm_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool fall_alarm = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFallAlarm() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fallAlarm_ = 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:FallAlarmConfV3)
    }

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

    public static FallAlarmConfV3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

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

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TemperatureConf(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              temperature_ = 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 AlarmInfo.internal_static_TemperatureConf_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_TemperatureConf_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              TemperatureConf.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int TEMPERATURE_FIELD_NUMBER = 2;
    private int temperature_;
    /**
     * <code>required fixed32 temperature = 2;</code>
     * @return Whether the temperature field is set.
     */
    public boolean hasTemperature() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 temperature = 2;</code>
     * @return The temperature.
     */
    public int getTemperature() {
      return temperature_;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTemperature()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, temperature_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, temperature_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasTemperature() != other.hasTemperature()) return false;
      if (hasTemperature()) {
        if (getTemperature()
            != other.getTemperature()) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasTemperature()) {
        hash = (37 * hash) + TEMPERATURE_FIELD_NUMBER;
        hash = (53 * hash) + getTemperature();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_TemperatureConf_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                TemperatureConf.class, Builder.class);
      }

      // Construct using AlarmInfo.TemperatureConf.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        temperature_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

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

      public Builder mergeFrom(TemperatureConf other) {
        if (other == TemperatureConf.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasTemperature()) {
          setTemperature(other.getTemperature());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!hasTemperature()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private int temperature_ ;
      /**
       * <code>required fixed32 temperature = 2;</code>
       * @return Whether the temperature field is set.
       */
      public boolean hasTemperature() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 temperature = 2;</code>
       * @return The temperature.
       */
      public int getTemperature() {
        return temperature_;
      }
      /**
       * <code>required fixed32 temperature = 2;</code>
       * @param value The temperature to set.
       * @return This builder for chaining.
       */
      public Builder setTemperature(int value) {
        bitField0_ |= 0x00000002;
        temperature_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 temperature = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemperature() {
        bitField0_ = (bitField0_ & ~0x00000002);
        temperature_ = 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:TemperatureConf)
    }

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

    public static TemperatureConf getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

    /**
     * <code>required fixed32 sbp = 2;</code>
     * @return Whether the sbp field is set.
     */
    boolean hasSbp();
    /**
     * <code>required fixed32 sbp = 2;</code>
     * @return The sbp.
     */
    int getSbp();

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

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BpConf(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              sbp_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              dbp_ = 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 AlarmInfo.internal_static_BpConf_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_BpConf_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              BpConf.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int SBP_FIELD_NUMBER = 2;
    private int sbp_;
    /**
     * <code>required fixed32 sbp = 2;</code>
     * @return Whether the sbp field is set.
     */
    public boolean hasSbp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 sbp = 2;</code>
     * @return The sbp.
     */
    public int getSbp() {
      return sbp_;
    }

    public static final int DBP_FIELD_NUMBER = 3;
    private int dbp_;
    /**
     * <code>required fixed32 dbp = 3;</code>
     * @return Whether the dbp field is set.
     */
    public boolean hasDbp() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 dbp = 3;</code>
     * @return The dbp.
     */
    public int getDbp() {
      return dbp_;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSbp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDbp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, sbp_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, dbp_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, sbp_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, dbp_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasSbp() != other.hasSbp()) return false;
      if (hasSbp()) {
        if (getSbp()
            != other.getSbp()) return false;
      }
      if (hasDbp() != other.hasDbp()) return false;
      if (hasDbp()) {
        if (getDbp()
            != other.getDbp()) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasSbp()) {
        hash = (37 * hash) + SBP_FIELD_NUMBER;
        hash = (53 * hash) + getSbp();
      }
      if (hasDbp()) {
        hash = (37 * hash) + DBP_FIELD_NUMBER;
        hash = (53 * hash) + getDbp();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_BpConf_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                BpConf.class, Builder.class);
      }

      // Construct using AlarmInfo.BpConf.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        sbp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        dbp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

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

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

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

      public Builder mergeFrom(BpConf other) {
        if (other == BpConf.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasSbp()) {
          setSbp(other.getSbp());
        }
        if (other.hasDbp()) {
          setDbp(other.getDbp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!hasSbp()) {
          return false;
        }
        if (!hasDbp()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        return true;
      }

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private int sbp_ ;
      /**
       * <code>required fixed32 sbp = 2;</code>
       * @return Whether the sbp field is set.
       */
      public boolean hasSbp() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 sbp = 2;</code>
       * @return The sbp.
       */
      public int getSbp() {
        return sbp_;
      }
      /**
       * <code>required fixed32 sbp = 2;</code>
       * @param value The sbp to set.
       * @return This builder for chaining.
       */
      public Builder setSbp(int value) {
        bitField0_ |= 0x00000002;
        sbp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 sbp = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSbp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sbp_ = 0;
        onChanged();
        return this;
      }

      private int dbp_ ;
      /**
       * <code>required fixed32 dbp = 3;</code>
       * @return Whether the dbp field is set.
       */
      public boolean hasDbp() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 dbp = 3;</code>
       * @return The dbp.
       */
      public int getDbp() {
        return dbp_;
      }
      /**
       * <code>required fixed32 dbp = 3;</code>
       * @param value The dbp to set.
       * @return This builder for chaining.
       */
      public Builder setDbp(int value) {
        bitField0_ |= 0x00000004;
        dbp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 dbp = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDbp() {
        bitField0_ = (bitField0_ & ~0x00000004);
        dbp_ = 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:BpConf)
    }

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

    public static BpConf getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();
  }
  /**
   * Protobuf type {@code SedentaryConf}
   */
  public  static final class SedentaryConf extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SedentaryConf)
      SedentaryConfOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SedentaryConf.newBuilder() to construct.
    private SedentaryConf(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SedentaryConf() {
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SedentaryConf(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              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 AlarmInfo.internal_static_SedentaryConf_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_SedentaryConf_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              SedentaryConf.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      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, getTimeStamp());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

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

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_SedentaryConf_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                SedentaryConf.class, Builder.class);
      }

      // Construct using AlarmInfo.SedentaryConf.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

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

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

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

      public Builder mergeFrom(SedentaryConf other) {
        if (other == SedentaryConf.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }
      @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:SedentaryConf)
    }

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

    public static SedentaryConf getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

    /**
     * <pre>
     *Not wearing status information warning report
     * </pre>
     *
     * <code>optional bool wearstate = 2;</code>
     * @return Whether the wearstate field is set.
     */
    boolean hasWearstate();
    /**
     * <pre>
     *Not wearing status information warning report
     * </pre>
     *
     * <code>optional bool wearstate = 2;</code>
     * @return The wearstate.
     */
    boolean getWearstate();

    /**
     * <pre>
     *sleep status information warning report
     * </pre>
     *
     * <code>optional bool sleepstate = 3;</code>
     * @return Whether the sleepstate field is set.
     */
    boolean hasSleepstate();
    /**
     * <pre>
     *sleep status information warning report
     * </pre>
     *
     * <code>optional bool sleepstate = 3;</code>
     * @return The sleepstate.
     */
    boolean getSleepstate();

    /**
     * <pre>
     *Low battery warning information reporting
     * </pre>
     *
     * <code>optional fixed32 lowpowerPercentage = 4;</code>
     * @return Whether the lowpowerPercentage field is set.
     */
    boolean hasLowpowerPercentage();
    /**
     * <pre>
     *Low battery warning information reporting
     * </pre>
     *
     * <code>optional fixed32 lowpowerPercentage = 4;</code>
     * @return The lowpowerPercentage.
     */
    int getLowpowerPercentage();

    /**
     * <pre>
     *Report shutdown information
     * </pre>
     *
     * <code>optional fixed32 poweroffPercentage = 5;</code>
     * @return Whether the poweroffPercentage field is set.
     */
    boolean hasPoweroffPercentage();
    /**
     * <pre>
     *Report shutdown information
     * </pre>
     *
     * <code>optional fixed32 poweroffPercentage = 5;</code>
     * @return The poweroffPercentage.
     */
    int getPoweroffPercentage();

    /**
     * <pre>
     *Unknown number blocking
     * </pre>
     *
     * <code>optional string intercept_number = 6;</code>
     * @return Whether the interceptNumber field is set.
     */
    boolean hasInterceptNumber();
    /**
     * <pre>
     *Unknown number blocking
     * </pre>
     *
     * <code>optional string intercept_number = 6;</code>
     * @return The interceptNumber.
     */
    String getInterceptNumber();
    /**
     * <pre>
     *Unknown number blocking
     * </pre>
     *
     * <code>optional string intercept_number = 6;</code>
     * @return The bytes for interceptNumber.
     */
    com.google.protobuf.ByteString
        getInterceptNumberBytes();
  }
  /**
   * Protobuf type {@code AlarminfoV3}
   */
  public  static final class AlarminfoV3 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AlarminfoV3)
      AlarminfoV3OrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AlarminfoV3.newBuilder() to construct.
    private AlarminfoV3(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AlarminfoV3() {
      interceptNumber_ = "";
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlarminfoV3(
        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.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              wearstate_ = input.readBool();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              sleepstate_ = input.readBool();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              lowpowerPercentage_ = input.readFixed32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              poweroffPercentage_ = input.readFixed32();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              interceptNumber_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return AlarmInfo.internal_static_AlarminfoV3_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_AlarminfoV3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              AlarminfoV3.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int WEARSTATE_FIELD_NUMBER = 2;
    private boolean wearstate_;
    /**
     * <pre>
     *Not wearing status information warning report
     * </pre>
     *
     * <code>optional bool wearstate = 2;</code>
     * @return Whether the wearstate field is set.
     */
    public boolean hasWearstate() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     *Not wearing status information warning report
     * </pre>
     *
     * <code>optional bool wearstate = 2;</code>
     * @return The wearstate.
     */
    public boolean getWearstate() {
      return wearstate_;
    }

    public static final int SLEEPSTATE_FIELD_NUMBER = 3;
    private boolean sleepstate_;
    /**
     * <pre>
     *sleep status information warning report
     * </pre>
     *
     * <code>optional bool sleepstate = 3;</code>
     * @return Whether the sleepstate field is set.
     */
    public boolean hasSleepstate() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     *sleep status information warning report
     * </pre>
     *
     * <code>optional bool sleepstate = 3;</code>
     * @return The sleepstate.
     */
    public boolean getSleepstate() {
      return sleepstate_;
    }

    public static final int LOWPOWERPERCENTAGE_FIELD_NUMBER = 4;
    private int lowpowerPercentage_;
    /**
     * <pre>
     *Low battery warning information reporting
     * </pre>
     *
     * <code>optional fixed32 lowpowerPercentage = 4;</code>
     * @return Whether the lowpowerPercentage field is set.
     */
    public boolean hasLowpowerPercentage() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     *Low battery warning information reporting
     * </pre>
     *
     * <code>optional fixed32 lowpowerPercentage = 4;</code>
     * @return The lowpowerPercentage.
     */
    public int getLowpowerPercentage() {
      return lowpowerPercentage_;
    }

    public static final int POWEROFFPERCENTAGE_FIELD_NUMBER = 5;
    private int poweroffPercentage_;
    /**
     * <pre>
     *Report shutdown information
     * </pre>
     *
     * <code>optional fixed32 poweroffPercentage = 5;</code>
     * @return Whether the poweroffPercentage field is set.
     */
    public boolean hasPoweroffPercentage() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     *Report shutdown information
     * </pre>
     *
     * <code>optional fixed32 poweroffPercentage = 5;</code>
     * @return The poweroffPercentage.
     */
    public int getPoweroffPercentage() {
      return poweroffPercentage_;
    }

    public static final int INTERCEPT_NUMBER_FIELD_NUMBER = 6;
    private volatile Object interceptNumber_;
    /**
     * <pre>
     *Unknown number blocking
     * </pre>
     *
     * <code>optional string intercept_number = 6;</code>
     * @return Whether the interceptNumber field is set.
     */
    public boolean hasInterceptNumber() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     *Unknown number blocking
     * </pre>
     *
     * <code>optional string intercept_number = 6;</code>
     * @return The interceptNumber.
     */
    public String getInterceptNumber() {
      Object ref = interceptNumber_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          interceptNumber_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *Unknown number blocking
     * </pre>
     *
     * <code>optional string intercept_number = 6;</code>
     * @return The bytes for interceptNumber.
     */
    public com.google.protobuf.ByteString
        getInterceptNumberBytes() {
      Object ref = interceptNumber_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        interceptNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, wearstate_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, sleepstate_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFixed32(4, lowpowerPercentage_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeFixed32(5, poweroffPercentage_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, interceptNumber_);
      }
      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, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, wearstate_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, sleepstate_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(4, lowpowerPercentage_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(5, poweroffPercentage_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, interceptNumber_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasWearstate() != other.hasWearstate()) return false;
      if (hasWearstate()) {
        if (getWearstate()
            != other.getWearstate()) return false;
      }
      if (hasSleepstate() != other.hasSleepstate()) return false;
      if (hasSleepstate()) {
        if (getSleepstate()
            != other.getSleepstate()) return false;
      }
      if (hasLowpowerPercentage() != other.hasLowpowerPercentage()) return false;
      if (hasLowpowerPercentage()) {
        if (getLowpowerPercentage()
            != other.getLowpowerPercentage()) return false;
      }
      if (hasPoweroffPercentage() != other.hasPoweroffPercentage()) return false;
      if (hasPoweroffPercentage()) {
        if (getPoweroffPercentage()
            != other.getPoweroffPercentage()) return false;
      }
      if (hasInterceptNumber() != other.hasInterceptNumber()) return false;
      if (hasInterceptNumber()) {
        if (!getInterceptNumber()
            .equals(other.getInterceptNumber())) 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 (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasWearstate()) {
        hash = (37 * hash) + WEARSTATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getWearstate());
      }
      if (hasSleepstate()) {
        hash = (37 * hash) + SLEEPSTATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSleepstate());
      }
      if (hasLowpowerPercentage()) {
        hash = (37 * hash) + LOWPOWERPERCENTAGE_FIELD_NUMBER;
        hash = (53 * hash) + getLowpowerPercentage();
      }
      if (hasPoweroffPercentage()) {
        hash = (37 * hash) + POWEROFFPERCENTAGE_FIELD_NUMBER;
        hash = (53 * hash) + getPoweroffPercentage();
      }
      if (hasInterceptNumber()) {
        hash = (37 * hash) + INTERCEPT_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getInterceptNumber().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_AlarminfoV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                AlarminfoV3.class, Builder.class);
      }

      // Construct using AlarmInfo.AlarminfoV3.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        wearstate_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        sleepstate_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        lowpowerPercentage_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        poweroffPercentage_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        interceptNumber_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

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

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

      @Override
      public AlarminfoV3 buildPartial() {
        AlarminfoV3 result = new AlarminfoV3(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (timeStampBuilder_ == null) {
            result.timeStamp_ = timeStamp_;
          } else {
            result.timeStamp_ = timeStampBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.wearstate_ = wearstate_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.sleepstate_ = sleepstate_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.lowpowerPercentage_ = lowpowerPercentage_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.poweroffPercentage_ = poweroffPercentage_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.interceptNumber_ = interceptNumber_;
        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 AlarminfoV3) {
          return mergeFrom((AlarminfoV3)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(AlarminfoV3 other) {
        if (other == AlarminfoV3.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasWearstate()) {
          setWearstate(other.getWearstate());
        }
        if (other.hasSleepstate()) {
          setSleepstate(other.getSleepstate());
        }
        if (other.hasLowpowerPercentage()) {
          setLowpowerPercentage(other.getLowpowerPercentage());
        }
        if (other.hasPoweroffPercentage()) {
          setPoweroffPercentage(other.getPoweroffPercentage());
        }
        if (other.hasInterceptNumber()) {
          bitField0_ |= 0x00000020;
          interceptNumber_ = other.interceptNumber_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private boolean wearstate_ ;
      /**
       * <pre>
       *Not wearing status information warning report
       * </pre>
       *
       * <code>optional bool wearstate = 2;</code>
       * @return Whether the wearstate field is set.
       */
      public boolean hasWearstate() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       *Not wearing status information warning report
       * </pre>
       *
       * <code>optional bool wearstate = 2;</code>
       * @return The wearstate.
       */
      public boolean getWearstate() {
        return wearstate_;
      }
      /**
       * <pre>
       *Not wearing status information warning report
       * </pre>
       *
       * <code>optional bool wearstate = 2;</code>
       * @param value The wearstate to set.
       * @return This builder for chaining.
       */
      public Builder setWearstate(boolean value) {
        bitField0_ |= 0x00000002;
        wearstate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *Not wearing status information warning report
       * </pre>
       *
       * <code>optional bool wearstate = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearWearstate() {
        bitField0_ = (bitField0_ & ~0x00000002);
        wearstate_ = false;
        onChanged();
        return this;
      }

      private boolean sleepstate_ ;
      /**
       * <pre>
       *sleep status information warning report
       * </pre>
       *
       * <code>optional bool sleepstate = 3;</code>
       * @return Whether the sleepstate field is set.
       */
      public boolean hasSleepstate() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       *sleep status information warning report
       * </pre>
       *
       * <code>optional bool sleepstate = 3;</code>
       * @return The sleepstate.
       */
      public boolean getSleepstate() {
        return sleepstate_;
      }
      /**
       * <pre>
       *sleep status information warning report
       * </pre>
       *
       * <code>optional bool sleepstate = 3;</code>
       * @param value The sleepstate to set.
       * @return This builder for chaining.
       */
      public Builder setSleepstate(boolean value) {
        bitField0_ |= 0x00000004;
        sleepstate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *sleep status information warning report
       * </pre>
       *
       * <code>optional bool sleepstate = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSleepstate() {
        bitField0_ = (bitField0_ & ~0x00000004);
        sleepstate_ = false;
        onChanged();
        return this;
      }

      private int lowpowerPercentage_ ;
      /**
       * <pre>
       *Low battery warning information reporting
       * </pre>
       *
       * <code>optional fixed32 lowpowerPercentage = 4;</code>
       * @return Whether the lowpowerPercentage field is set.
       */
      public boolean hasLowpowerPercentage() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       *Low battery warning information reporting
       * </pre>
       *
       * <code>optional fixed32 lowpowerPercentage = 4;</code>
       * @return The lowpowerPercentage.
       */
      public int getLowpowerPercentage() {
        return lowpowerPercentage_;
      }
      /**
       * <pre>
       *Low battery warning information reporting
       * </pre>
       *
       * <code>optional fixed32 lowpowerPercentage = 4;</code>
       * @param value The lowpowerPercentage to set.
       * @return This builder for chaining.
       */
      public Builder setLowpowerPercentage(int value) {
        bitField0_ |= 0x00000008;
        lowpowerPercentage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *Low battery warning information reporting
       * </pre>
       *
       * <code>optional fixed32 lowpowerPercentage = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLowpowerPercentage() {
        bitField0_ = (bitField0_ & ~0x00000008);
        lowpowerPercentage_ = 0;
        onChanged();
        return this;
      }

      private int poweroffPercentage_ ;
      /**
       * <pre>
       *Report shutdown information
       * </pre>
       *
       * <code>optional fixed32 poweroffPercentage = 5;</code>
       * @return Whether the poweroffPercentage field is set.
       */
      public boolean hasPoweroffPercentage() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       *Report shutdown information
       * </pre>
       *
       * <code>optional fixed32 poweroffPercentage = 5;</code>
       * @return The poweroffPercentage.
       */
      public int getPoweroffPercentage() {
        return poweroffPercentage_;
      }
      /**
       * <pre>
       *Report shutdown information
       * </pre>
       *
       * <code>optional fixed32 poweroffPercentage = 5;</code>
       * @param value The poweroffPercentage to set.
       * @return This builder for chaining.
       */
      public Builder setPoweroffPercentage(int value) {
        bitField0_ |= 0x00000010;
        poweroffPercentage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *Report shutdown information
       * </pre>
       *
       * <code>optional fixed32 poweroffPercentage = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPoweroffPercentage() {
        bitField0_ = (bitField0_ & ~0x00000010);
        poweroffPercentage_ = 0;
        onChanged();
        return this;
      }

      private Object interceptNumber_ = "";
      /**
       * <pre>
       *Unknown number blocking
       * </pre>
       *
       * <code>optional string intercept_number = 6;</code>
       * @return Whether the interceptNumber field is set.
       */
      public boolean hasInterceptNumber() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       *Unknown number blocking
       * </pre>
       *
       * <code>optional string intercept_number = 6;</code>
       * @return The interceptNumber.
       */
      public String getInterceptNumber() {
        Object ref = interceptNumber_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            interceptNumber_ = s;
          }
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <pre>
       *Unknown number blocking
       * </pre>
       *
       * <code>optional string intercept_number = 6;</code>
       * @return The bytes for interceptNumber.
       */
      public com.google.protobuf.ByteString
          getInterceptNumberBytes() {
        Object ref = interceptNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          interceptNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *Unknown number blocking
       * </pre>
       *
       * <code>optional string intercept_number = 6;</code>
       * @param value The interceptNumber to set.
       * @return This builder for chaining.
       */
      public Builder setInterceptNumber(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        interceptNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *Unknown number blocking
       * </pre>
       *
       * <code>optional string intercept_number = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearInterceptNumber() {
        bitField0_ = (bitField0_ & ~0x00000020);
        interceptNumber_ = getDefaultInstance().getInterceptNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *Unknown number blocking
       * </pre>
       *
       * <code>optional string intercept_number = 6;</code>
       * @param value The bytes for interceptNumber to set.
       * @return This builder for chaining.
       */
      public Builder setInterceptNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        interceptNumber_ = value;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:AlarminfoV3)
    }

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

    public static AlarminfoV3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    java.util.List<HrAlarmV3>
        getAlarmHrList();
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    HrAlarmV3 getAlarmHr(int index);
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    int getAlarmHrCount();
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    java.util.List<? extends HrAlarmV3OrBuilder>
        getAlarmHrOrBuilderList();
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    HrAlarmV3OrBuilder getAlarmHrOrBuilder(
        int index);

    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    java.util.List<Spo2AlarmV3>
        getAlarmSpo2List();
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    Spo2AlarmV3 getAlarmSpo2(int index);
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    int getAlarmSpo2Count();
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    java.util.List<? extends Spo2AlarmV3OrBuilder>
        getAlarmSpo2OrBuilderList();
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    Spo2AlarmV3OrBuilder getAlarmSpo2OrBuilder(
        int index);

    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    java.util.List<ThrombusAlarmV3>
        getAlarmThrombusList();
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    ThrombusAlarmV3 getAlarmThrombus(int index);
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    int getAlarmThrombusCount();
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    java.util.List<? extends ThrombusAlarmV3OrBuilder>
        getAlarmThrombusOrBuilderList();
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    ThrombusAlarmV3OrBuilder getAlarmThrombusOrBuilder(
        int index);

    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    java.util.List<FallAlarmConfV3>
        getAlarmFallList();
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    FallAlarmConfV3 getAlarmFall(int index);
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    int getAlarmFallCount();
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    java.util.List<? extends FallAlarmConfV3OrBuilder>
        getAlarmFallOrBuilderList();
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    FallAlarmConfV3OrBuilder getAlarmFallOrBuilder(
        int index);

    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    java.util.List<TemperatureConf>
        getAlarmTemperatureList();
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    TemperatureConf getAlarmTemperature(int index);
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    int getAlarmTemperatureCount();
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    java.util.List<? extends TemperatureConfOrBuilder>
        getAlarmTemperatureOrBuilderList();
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    TemperatureConfOrBuilder getAlarmTemperatureOrBuilder(
        int index);

    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    java.util.List<BpConf>
        getAlarmBpList();
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    BpConf getAlarmBp(int index);
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    int getAlarmBpCount();
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    java.util.List<? extends BpConfOrBuilder>
        getAlarmBpOrBuilderList();
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    BpConfOrBuilder getAlarmBpOrBuilder(
        int index);

    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    java.util.List<SOSGNSSINFOV3>
        getGnssinfoList();
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    SOSGNSSINFOV3 getGnssinfo(int index);
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    int getGnssinfoCount();
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    java.util.List<? extends SOSGNSSINFOV3OrBuilder>
        getGnssinfoOrBuilderList();
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    SOSGNSSINFOV3OrBuilder getGnssinfoOrBuilder(
        int index);

    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    java.util.List<SedentaryConf>
        getAlarmSedentaryList();
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    SedentaryConf getAlarmSedentary(int index);
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    int getAlarmSedentaryCount();
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    java.util.List<? extends SedentaryConfOrBuilder>
        getAlarmSedentaryOrBuilderList();
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    SedentaryConfOrBuilder getAlarmSedentaryOrBuilder(
        int index);

    /**
     * <code>optional .DateTime SOS_Notification_time = 9;</code>
     * @return Whether the sOSNotificationTime field is set.
     */
    boolean hasSOSNotificationTime();
    /**
     * <code>optional .DateTime SOS_Notification_time = 9;</code>
     * @return The sOSNotificationTime.
     */
    RealtimeData.DateTime getSOSNotificationTime();
    /**
     * <code>optional .DateTime SOS_Notification_time = 9;</code>
     */
    RealtimeData.DateTimeOrBuilder getSOSNotificationTimeOrBuilder();
  }
  /**
   * Protobuf type {@code HealthAlarmV3}
   */
  public  static final class HealthAlarmV3 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HealthAlarmV3)
      HealthAlarmV3OrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HealthAlarmV3.newBuilder() to construct.
    private HealthAlarmV3(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HealthAlarmV3() {
      alarmHr_ = java.util.Collections.emptyList();
      alarmSpo2_ = java.util.Collections.emptyList();
      alarmThrombus_ = java.util.Collections.emptyList();
      alarmFall_ = java.util.Collections.emptyList();
      alarmTemperature_ = java.util.Collections.emptyList();
      alarmBp_ = java.util.Collections.emptyList();
      gnssinfo_ = java.util.Collections.emptyList();
      alarmSedentary_ = java.util.Collections.emptyList();
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HealthAlarmV3(
        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)) {
                alarmHr_ = new java.util.ArrayList<HrAlarmV3>();
                mutable_bitField0_ |= 0x00000001;
              }
              alarmHr_.add(
                  input.readMessage(HrAlarmV3.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                alarmSpo2_ = new java.util.ArrayList<Spo2AlarmV3>();
                mutable_bitField0_ |= 0x00000002;
              }
              alarmSpo2_.add(
                  input.readMessage(Spo2AlarmV3.PARSER, extensionRegistry));
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                alarmThrombus_ = new java.util.ArrayList<ThrombusAlarmV3>();
                mutable_bitField0_ |= 0x00000004;
              }
              alarmThrombus_.add(
                  input.readMessage(ThrombusAlarmV3.PARSER, extensionRegistry));
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                alarmFall_ = new java.util.ArrayList<FallAlarmConfV3>();
                mutable_bitField0_ |= 0x00000008;
              }
              alarmFall_.add(
                  input.readMessage(FallAlarmConfV3.PARSER, extensionRegistry));
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                alarmTemperature_ = new java.util.ArrayList<TemperatureConf>();
                mutable_bitField0_ |= 0x00000010;
              }
              alarmTemperature_.add(
                  input.readMessage(TemperatureConf.PARSER, extensionRegistry));
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                alarmBp_ = new java.util.ArrayList<BpConf>();
                mutable_bitField0_ |= 0x00000020;
              }
              alarmBp_.add(
                  input.readMessage(BpConf.PARSER, extensionRegistry));
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) != 0)) {
                gnssinfo_ = new java.util.ArrayList<SOSGNSSINFOV3>();
                mutable_bitField0_ |= 0x00000040;
              }
              gnssinfo_.add(
                  input.readMessage(SOSGNSSINFOV3.PARSER, extensionRegistry));
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) != 0)) {
                alarmSedentary_ = new java.util.ArrayList<SedentaryConf>();
                mutable_bitField0_ |= 0x00000080;
              }
              alarmSedentary_.add(
                  input.readMessage(SedentaryConf.PARSER, extensionRegistry));
              break;
            }
            case 74: {
              RealtimeData.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = sOSNotificationTime_.toBuilder();
              }
              sOSNotificationTime_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sOSNotificationTime_);
                sOSNotificationTime_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              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)) {
          alarmHr_ = java.util.Collections.unmodifiableList(alarmHr_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          alarmSpo2_ = java.util.Collections.unmodifiableList(alarmSpo2_);
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          alarmThrombus_ = java.util.Collections.unmodifiableList(alarmThrombus_);
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          alarmFall_ = java.util.Collections.unmodifiableList(alarmFall_);
        }
        if (((mutable_bitField0_ & 0x00000010) != 0)) {
          alarmTemperature_ = java.util.Collections.unmodifiableList(alarmTemperature_);
        }
        if (((mutable_bitField0_ & 0x00000020) != 0)) {
          alarmBp_ = java.util.Collections.unmodifiableList(alarmBp_);
        }
        if (((mutable_bitField0_ & 0x00000040) != 0)) {
          gnssinfo_ = java.util.Collections.unmodifiableList(gnssinfo_);
        }
        if (((mutable_bitField0_ & 0x00000080) != 0)) {
          alarmSedentary_ = java.util.Collections.unmodifiableList(alarmSedentary_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return AlarmInfo.internal_static_HealthAlarmV3_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_HealthAlarmV3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HealthAlarmV3.class, Builder.class);
    }

    private int bitField0_;
    public static final int ALARM_HR_FIELD_NUMBER = 1;
    private java.util.List<HrAlarmV3> alarmHr_;
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    public java.util.List<HrAlarmV3> getAlarmHrList() {
      return alarmHr_;
    }
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    public java.util.List<? extends HrAlarmV3OrBuilder>
        getAlarmHrOrBuilderList() {
      return alarmHr_;
    }
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    public int getAlarmHrCount() {
      return alarmHr_.size();
    }
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    public HrAlarmV3 getAlarmHr(int index) {
      return alarmHr_.get(index);
    }
    /**
     * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
     */
    public HrAlarmV3OrBuilder getAlarmHrOrBuilder(
        int index) {
      return alarmHr_.get(index);
    }

    public static final int ALARM_SPO2_FIELD_NUMBER = 2;
    private java.util.List<Spo2AlarmV3> alarmSpo2_;
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    public java.util.List<Spo2AlarmV3> getAlarmSpo2List() {
      return alarmSpo2_;
    }
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    public java.util.List<? extends Spo2AlarmV3OrBuilder>
        getAlarmSpo2OrBuilderList() {
      return alarmSpo2_;
    }
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    public int getAlarmSpo2Count() {
      return alarmSpo2_.size();
    }
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    public Spo2AlarmV3 getAlarmSpo2(int index) {
      return alarmSpo2_.get(index);
    }
    /**
     * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
     */
    public Spo2AlarmV3OrBuilder getAlarmSpo2OrBuilder(
        int index) {
      return alarmSpo2_.get(index);
    }

    public static final int ALARM_THROMBUS_FIELD_NUMBER = 3;
    private java.util.List<ThrombusAlarmV3> alarmThrombus_;
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    public java.util.List<ThrombusAlarmV3> getAlarmThrombusList() {
      return alarmThrombus_;
    }
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    public java.util.List<? extends ThrombusAlarmV3OrBuilder>
        getAlarmThrombusOrBuilderList() {
      return alarmThrombus_;
    }
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    public int getAlarmThrombusCount() {
      return alarmThrombus_.size();
    }
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    public ThrombusAlarmV3 getAlarmThrombus(int index) {
      return alarmThrombus_.get(index);
    }
    /**
     * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
     */
    public ThrombusAlarmV3OrBuilder getAlarmThrombusOrBuilder(
        int index) {
      return alarmThrombus_.get(index);
    }

    public static final int ALARM_FALL_FIELD_NUMBER = 4;
    private java.util.List<FallAlarmConfV3> alarmFall_;
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    public java.util.List<FallAlarmConfV3> getAlarmFallList() {
      return alarmFall_;
    }
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    public java.util.List<? extends FallAlarmConfV3OrBuilder>
        getAlarmFallOrBuilderList() {
      return alarmFall_;
    }
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    public int getAlarmFallCount() {
      return alarmFall_.size();
    }
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    public FallAlarmConfV3 getAlarmFall(int index) {
      return alarmFall_.get(index);
    }
    /**
     * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
     */
    public FallAlarmConfV3OrBuilder getAlarmFallOrBuilder(
        int index) {
      return alarmFall_.get(index);
    }

    public static final int ALARM_TEMPERATURE_FIELD_NUMBER = 5;
    private java.util.List<TemperatureConf> alarmTemperature_;
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    public java.util.List<TemperatureConf> getAlarmTemperatureList() {
      return alarmTemperature_;
    }
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    public java.util.List<? extends TemperatureConfOrBuilder>
        getAlarmTemperatureOrBuilderList() {
      return alarmTemperature_;
    }
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    public int getAlarmTemperatureCount() {
      return alarmTemperature_.size();
    }
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    public TemperatureConf getAlarmTemperature(int index) {
      return alarmTemperature_.get(index);
    }
    /**
     * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
     */
    public TemperatureConfOrBuilder getAlarmTemperatureOrBuilder(
        int index) {
      return alarmTemperature_.get(index);
    }

    public static final int ALARM_BP_FIELD_NUMBER = 6;
    private java.util.List<BpConf> alarmBp_;
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    public java.util.List<BpConf> getAlarmBpList() {
      return alarmBp_;
    }
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    public java.util.List<? extends BpConfOrBuilder>
        getAlarmBpOrBuilderList() {
      return alarmBp_;
    }
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    public int getAlarmBpCount() {
      return alarmBp_.size();
    }
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    public BpConf getAlarmBp(int index) {
      return alarmBp_.get(index);
    }
    /**
     * <code>repeated .BpConf alarm_Bp = 6;</code>
     */
    public BpConfOrBuilder getAlarmBpOrBuilder(
        int index) {
      return alarmBp_.get(index);
    }

    public static final int GNSSINFO_FIELD_NUMBER = 7;
    private java.util.List<SOSGNSSINFOV3> gnssinfo_;
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    public java.util.List<SOSGNSSINFOV3> getGnssinfoList() {
      return gnssinfo_;
    }
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    public java.util.List<? extends SOSGNSSINFOV3OrBuilder>
        getGnssinfoOrBuilderList() {
      return gnssinfo_;
    }
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    public int getGnssinfoCount() {
      return gnssinfo_.size();
    }
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    public SOSGNSSINFOV3 getGnssinfo(int index) {
      return gnssinfo_.get(index);
    }
    /**
     * <pre>
     *SOS warning information reporting
     * </pre>
     *
     * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
     */
    public SOSGNSSINFOV3OrBuilder getGnssinfoOrBuilder(
        int index) {
      return gnssinfo_.get(index);
    }

    public static final int ALARM_SEDENTARY_FIELD_NUMBER = 8;
    private java.util.List<SedentaryConf> alarmSedentary_;
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    public java.util.List<SedentaryConf> getAlarmSedentaryList() {
      return alarmSedentary_;
    }
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    public java.util.List<? extends SedentaryConfOrBuilder>
        getAlarmSedentaryOrBuilderList() {
      return alarmSedentary_;
    }
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    public int getAlarmSedentaryCount() {
      return alarmSedentary_.size();
    }
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    public SedentaryConf getAlarmSedentary(int index) {
      return alarmSedentary_.get(index);
    }
    /**
     * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
     */
    public SedentaryConfOrBuilder getAlarmSedentaryOrBuilder(
        int index) {
      return alarmSedentary_.get(index);
    }

    public static final int SOS_NOTIFICATION_TIME_FIELD_NUMBER = 9;
    private RealtimeData.DateTime sOSNotificationTime_;
    /**
     * <code>optional .DateTime SOS_Notification_time = 9;</code>
     * @return Whether the sOSNotificationTime field is set.
     */
    public boolean hasSOSNotificationTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .DateTime SOS_Notification_time = 9;</code>
     * @return The sOSNotificationTime.
     */
    public RealtimeData.DateTime getSOSNotificationTime() {
      return sOSNotificationTime_ == null ? RealtimeData.DateTime.getDefaultInstance() : sOSNotificationTime_;
    }
    /**
     * <code>optional .DateTime SOS_Notification_time = 9;</code>
     */
    public RealtimeData.DateTimeOrBuilder getSOSNotificationTimeOrBuilder() {
      return sOSNotificationTime_ == null ? RealtimeData.DateTime.getDefaultInstance() : sOSNotificationTime_;
    }

    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 < getAlarmHrCount(); i++) {
        if (!getAlarmHr(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAlarmSpo2Count(); i++) {
        if (!getAlarmSpo2(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAlarmThrombusCount(); i++) {
        if (!getAlarmThrombus(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAlarmFallCount(); i++) {
        if (!getAlarmFall(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAlarmTemperatureCount(); i++) {
        if (!getAlarmTemperature(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAlarmBpCount(); i++) {
        if (!getAlarmBp(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getGnssinfoCount(); i++) {
        if (!getGnssinfo(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAlarmSedentaryCount(); i++) {
        if (!getAlarmSedentary(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSOSNotificationTime()) {
        if (!getSOSNotificationTime().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 < alarmHr_.size(); i++) {
        output.writeMessage(1, alarmHr_.get(i));
      }
      for (int i = 0; i < alarmSpo2_.size(); i++) {
        output.writeMessage(2, alarmSpo2_.get(i));
      }
      for (int i = 0; i < alarmThrombus_.size(); i++) {
        output.writeMessage(3, alarmThrombus_.get(i));
      }
      for (int i = 0; i < alarmFall_.size(); i++) {
        output.writeMessage(4, alarmFall_.get(i));
      }
      for (int i = 0; i < alarmTemperature_.size(); i++) {
        output.writeMessage(5, alarmTemperature_.get(i));
      }
      for (int i = 0; i < alarmBp_.size(); i++) {
        output.writeMessage(6, alarmBp_.get(i));
      }
      for (int i = 0; i < gnssinfo_.size(); i++) {
        output.writeMessage(7, gnssinfo_.get(i));
      }
      for (int i = 0; i < alarmSedentary_.size(); i++) {
        output.writeMessage(8, alarmSedentary_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(9, getSOSNotificationTime());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < alarmHr_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, alarmHr_.get(i));
      }
      for (int i = 0; i < alarmSpo2_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, alarmSpo2_.get(i));
      }
      for (int i = 0; i < alarmThrombus_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, alarmThrombus_.get(i));
      }
      for (int i = 0; i < alarmFall_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, alarmFall_.get(i));
      }
      for (int i = 0; i < alarmTemperature_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, alarmTemperature_.get(i));
      }
      for (int i = 0; i < alarmBp_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, alarmBp_.get(i));
      }
      for (int i = 0; i < gnssinfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, gnssinfo_.get(i));
      }
      for (int i = 0; i < alarmSedentary_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, alarmSedentary_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getSOSNotificationTime());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getAlarmHrList()
          .equals(other.getAlarmHrList())) return false;
      if (!getAlarmSpo2List()
          .equals(other.getAlarmSpo2List())) return false;
      if (!getAlarmThrombusList()
          .equals(other.getAlarmThrombusList())) return false;
      if (!getAlarmFallList()
          .equals(other.getAlarmFallList())) return false;
      if (!getAlarmTemperatureList()
          .equals(other.getAlarmTemperatureList())) return false;
      if (!getAlarmBpList()
          .equals(other.getAlarmBpList())) return false;
      if (!getGnssinfoList()
          .equals(other.getGnssinfoList())) return false;
      if (!getAlarmSedentaryList()
          .equals(other.getAlarmSedentaryList())) return false;
      if (hasSOSNotificationTime() != other.hasSOSNotificationTime()) return false;
      if (hasSOSNotificationTime()) {
        if (!getSOSNotificationTime()
            .equals(other.getSOSNotificationTime())) 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 (getAlarmHrCount() > 0) {
        hash = (37 * hash) + ALARM_HR_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmHrList().hashCode();
      }
      if (getAlarmSpo2Count() > 0) {
        hash = (37 * hash) + ALARM_SPO2_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmSpo2List().hashCode();
      }
      if (getAlarmThrombusCount() > 0) {
        hash = (37 * hash) + ALARM_THROMBUS_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmThrombusList().hashCode();
      }
      if (getAlarmFallCount() > 0) {
        hash = (37 * hash) + ALARM_FALL_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmFallList().hashCode();
      }
      if (getAlarmTemperatureCount() > 0) {
        hash = (37 * hash) + ALARM_TEMPERATURE_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmTemperatureList().hashCode();
      }
      if (getAlarmBpCount() > 0) {
        hash = (37 * hash) + ALARM_BP_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmBpList().hashCode();
      }
      if (getGnssinfoCount() > 0) {
        hash = (37 * hash) + GNSSINFO_FIELD_NUMBER;
        hash = (53 * hash) + getGnssinfoList().hashCode();
      }
      if (getAlarmSedentaryCount() > 0) {
        hash = (37 * hash) + ALARM_SEDENTARY_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmSedentaryList().hashCode();
      }
      if (hasSOSNotificationTime()) {
        hash = (37 * hash) + SOS_NOTIFICATION_TIME_FIELD_NUMBER;
        hash = (53 * hash) + getSOSNotificationTime().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_HealthAlarmV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HealthAlarmV3.class, Builder.class);
      }

      // Construct using AlarmInfo.HealthAlarmV3.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAlarmHrFieldBuilder();
          getAlarmSpo2FieldBuilder();
          getAlarmThrombusFieldBuilder();
          getAlarmFallFieldBuilder();
          getAlarmTemperatureFieldBuilder();
          getAlarmBpFieldBuilder();
          getGnssinfoFieldBuilder();
          getAlarmSedentaryFieldBuilder();
          getSOSNotificationTimeFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (alarmHrBuilder_ == null) {
          alarmHr_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          alarmHrBuilder_.clear();
        }
        if (alarmSpo2Builder_ == null) {
          alarmSpo2_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          alarmSpo2Builder_.clear();
        }
        if (alarmThrombusBuilder_ == null) {
          alarmThrombus_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          alarmThrombusBuilder_.clear();
        }
        if (alarmFallBuilder_ == null) {
          alarmFall_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          alarmFallBuilder_.clear();
        }
        if (alarmTemperatureBuilder_ == null) {
          alarmTemperature_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          alarmTemperatureBuilder_.clear();
        }
        if (alarmBpBuilder_ == null) {
          alarmBp_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          alarmBpBuilder_.clear();
        }
        if (gnssinfoBuilder_ == null) {
          gnssinfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          gnssinfoBuilder_.clear();
        }
        if (alarmSedentaryBuilder_ == null) {
          alarmSedentary_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          alarmSedentaryBuilder_.clear();
        }
        if (sOSNotificationTimeBuilder_ == null) {
          sOSNotificationTime_ = null;
        } else {
          sOSNotificationTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

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

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

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

      @Override
      public HealthAlarmV3 buildPartial() {
        HealthAlarmV3 result = new HealthAlarmV3(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (alarmHrBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            alarmHr_ = java.util.Collections.unmodifiableList(alarmHr_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.alarmHr_ = alarmHr_;
        } else {
          result.alarmHr_ = alarmHrBuilder_.build();
        }
        if (alarmSpo2Builder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            alarmSpo2_ = java.util.Collections.unmodifiableList(alarmSpo2_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.alarmSpo2_ = alarmSpo2_;
        } else {
          result.alarmSpo2_ = alarmSpo2Builder_.build();
        }
        if (alarmThrombusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            alarmThrombus_ = java.util.Collections.unmodifiableList(alarmThrombus_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.alarmThrombus_ = alarmThrombus_;
        } else {
          result.alarmThrombus_ = alarmThrombusBuilder_.build();
        }
        if (alarmFallBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            alarmFall_ = java.util.Collections.unmodifiableList(alarmFall_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.alarmFall_ = alarmFall_;
        } else {
          result.alarmFall_ = alarmFallBuilder_.build();
        }
        if (alarmTemperatureBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            alarmTemperature_ = java.util.Collections.unmodifiableList(alarmTemperature_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.alarmTemperature_ = alarmTemperature_;
        } else {
          result.alarmTemperature_ = alarmTemperatureBuilder_.build();
        }
        if (alarmBpBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            alarmBp_ = java.util.Collections.unmodifiableList(alarmBp_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.alarmBp_ = alarmBp_;
        } else {
          result.alarmBp_ = alarmBpBuilder_.build();
        }
        if (gnssinfoBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            gnssinfo_ = java.util.Collections.unmodifiableList(gnssinfo_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.gnssinfo_ = gnssinfo_;
        } else {
          result.gnssinfo_ = gnssinfoBuilder_.build();
        }
        if (alarmSedentaryBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0)) {
            alarmSedentary_ = java.util.Collections.unmodifiableList(alarmSedentary_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.alarmSedentary_ = alarmSedentary_;
        } else {
          result.alarmSedentary_ = alarmSedentaryBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          if (sOSNotificationTimeBuilder_ == null) {
            result.sOSNotificationTime_ = sOSNotificationTime_;
          } else {
            result.sOSNotificationTime_ = sOSNotificationTimeBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        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 HealthAlarmV3) {
          return mergeFrom((HealthAlarmV3)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HealthAlarmV3 other) {
        if (other == HealthAlarmV3.getDefaultInstance()) return this;
        if (alarmHrBuilder_ == null) {
          if (!other.alarmHr_.isEmpty()) {
            if (alarmHr_.isEmpty()) {
              alarmHr_ = other.alarmHr_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAlarmHrIsMutable();
              alarmHr_.addAll(other.alarmHr_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmHr_.isEmpty()) {
            if (alarmHrBuilder_.isEmpty()) {
              alarmHrBuilder_.dispose();
              alarmHrBuilder_ = null;
              alarmHr_ = other.alarmHr_;
              bitField0_ = (bitField0_ & ~0x00000001);
              alarmHrBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmHrFieldBuilder() : null;
            } else {
              alarmHrBuilder_.addAllMessages(other.alarmHr_);
            }
          }
        }
        if (alarmSpo2Builder_ == null) {
          if (!other.alarmSpo2_.isEmpty()) {
            if (alarmSpo2_.isEmpty()) {
              alarmSpo2_ = other.alarmSpo2_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureAlarmSpo2IsMutable();
              alarmSpo2_.addAll(other.alarmSpo2_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmSpo2_.isEmpty()) {
            if (alarmSpo2Builder_.isEmpty()) {
              alarmSpo2Builder_.dispose();
              alarmSpo2Builder_ = null;
              alarmSpo2_ = other.alarmSpo2_;
              bitField0_ = (bitField0_ & ~0x00000002);
              alarmSpo2Builder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmSpo2FieldBuilder() : null;
            } else {
              alarmSpo2Builder_.addAllMessages(other.alarmSpo2_);
            }
          }
        }
        if (alarmThrombusBuilder_ == null) {
          if (!other.alarmThrombus_.isEmpty()) {
            if (alarmThrombus_.isEmpty()) {
              alarmThrombus_ = other.alarmThrombus_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureAlarmThrombusIsMutable();
              alarmThrombus_.addAll(other.alarmThrombus_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmThrombus_.isEmpty()) {
            if (alarmThrombusBuilder_.isEmpty()) {
              alarmThrombusBuilder_.dispose();
              alarmThrombusBuilder_ = null;
              alarmThrombus_ = other.alarmThrombus_;
              bitField0_ = (bitField0_ & ~0x00000004);
              alarmThrombusBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmThrombusFieldBuilder() : null;
            } else {
              alarmThrombusBuilder_.addAllMessages(other.alarmThrombus_);
            }
          }
        }
        if (alarmFallBuilder_ == null) {
          if (!other.alarmFall_.isEmpty()) {
            if (alarmFall_.isEmpty()) {
              alarmFall_ = other.alarmFall_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureAlarmFallIsMutable();
              alarmFall_.addAll(other.alarmFall_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmFall_.isEmpty()) {
            if (alarmFallBuilder_.isEmpty()) {
              alarmFallBuilder_.dispose();
              alarmFallBuilder_ = null;
              alarmFall_ = other.alarmFall_;
              bitField0_ = (bitField0_ & ~0x00000008);
              alarmFallBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmFallFieldBuilder() : null;
            } else {
              alarmFallBuilder_.addAllMessages(other.alarmFall_);
            }
          }
        }
        if (alarmTemperatureBuilder_ == null) {
          if (!other.alarmTemperature_.isEmpty()) {
            if (alarmTemperature_.isEmpty()) {
              alarmTemperature_ = other.alarmTemperature_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureAlarmTemperatureIsMutable();
              alarmTemperature_.addAll(other.alarmTemperature_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmTemperature_.isEmpty()) {
            if (alarmTemperatureBuilder_.isEmpty()) {
              alarmTemperatureBuilder_.dispose();
              alarmTemperatureBuilder_ = null;
              alarmTemperature_ = other.alarmTemperature_;
              bitField0_ = (bitField0_ & ~0x00000010);
              alarmTemperatureBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmTemperatureFieldBuilder() : null;
            } else {
              alarmTemperatureBuilder_.addAllMessages(other.alarmTemperature_);
            }
          }
        }
        if (alarmBpBuilder_ == null) {
          if (!other.alarmBp_.isEmpty()) {
            if (alarmBp_.isEmpty()) {
              alarmBp_ = other.alarmBp_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureAlarmBpIsMutable();
              alarmBp_.addAll(other.alarmBp_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmBp_.isEmpty()) {
            if (alarmBpBuilder_.isEmpty()) {
              alarmBpBuilder_.dispose();
              alarmBpBuilder_ = null;
              alarmBp_ = other.alarmBp_;
              bitField0_ = (bitField0_ & ~0x00000020);
              alarmBpBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmBpFieldBuilder() : null;
            } else {
              alarmBpBuilder_.addAllMessages(other.alarmBp_);
            }
          }
        }
        if (gnssinfoBuilder_ == null) {
          if (!other.gnssinfo_.isEmpty()) {
            if (gnssinfo_.isEmpty()) {
              gnssinfo_ = other.gnssinfo_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureGnssinfoIsMutable();
              gnssinfo_.addAll(other.gnssinfo_);
            }
            onChanged();
          }
        } else {
          if (!other.gnssinfo_.isEmpty()) {
            if (gnssinfoBuilder_.isEmpty()) {
              gnssinfoBuilder_.dispose();
              gnssinfoBuilder_ = null;
              gnssinfo_ = other.gnssinfo_;
              bitField0_ = (bitField0_ & ~0x00000040);
              gnssinfoBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getGnssinfoFieldBuilder() : null;
            } else {
              gnssinfoBuilder_.addAllMessages(other.gnssinfo_);
            }
          }
        }
        if (alarmSedentaryBuilder_ == null) {
          if (!other.alarmSedentary_.isEmpty()) {
            if (alarmSedentary_.isEmpty()) {
              alarmSedentary_ = other.alarmSedentary_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureAlarmSedentaryIsMutable();
              alarmSedentary_.addAll(other.alarmSedentary_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmSedentary_.isEmpty()) {
            if (alarmSedentaryBuilder_.isEmpty()) {
              alarmSedentaryBuilder_.dispose();
              alarmSedentaryBuilder_ = null;
              alarmSedentary_ = other.alarmSedentary_;
              bitField0_ = (bitField0_ & ~0x00000080);
              alarmSedentaryBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmSedentaryFieldBuilder() : null;
            } else {
              alarmSedentaryBuilder_.addAllMessages(other.alarmSedentary_);
            }
          }
        }
        if (other.hasSOSNotificationTime()) {
          mergeSOSNotificationTime(other.getSOSNotificationTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        for (int i = 0; i < getAlarmHrCount(); i++) {
          if (!getAlarmHr(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getAlarmSpo2Count(); i++) {
          if (!getAlarmSpo2(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getAlarmThrombusCount(); i++) {
          if (!getAlarmThrombus(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getAlarmFallCount(); i++) {
          if (!getAlarmFall(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getAlarmTemperatureCount(); i++) {
          if (!getAlarmTemperature(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getAlarmBpCount(); i++) {
          if (!getAlarmBp(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getGnssinfoCount(); i++) {
          if (!getGnssinfo(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getAlarmSedentaryCount(); i++) {
          if (!getAlarmSedentary(i).isInitialized()) {
            return false;
          }
        }
        if (hasSOSNotificationTime()) {
          if (!getSOSNotificationTime().isInitialized()) {
            return false;
          }
        }
        return true;
      }

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

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          HrAlarmV3, HrAlarmV3.Builder, HrAlarmV3OrBuilder> alarmHrBuilder_;

      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public java.util.List<HrAlarmV3> getAlarmHrList() {
        if (alarmHrBuilder_ == null) {
          return java.util.Collections.unmodifiableList(alarmHr_);
        } else {
          return alarmHrBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public int getAlarmHrCount() {
        if (alarmHrBuilder_ == null) {
          return alarmHr_.size();
        } else {
          return alarmHrBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public HrAlarmV3 getAlarmHr(int index) {
        if (alarmHrBuilder_ == null) {
          return alarmHr_.get(index);
        } else {
          return alarmHrBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder setAlarmHr(
          int index, HrAlarmV3 value) {
        if (alarmHrBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmHrIsMutable();
          alarmHr_.set(index, value);
          onChanged();
        } else {
          alarmHrBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder setAlarmHr(
          int index, HrAlarmV3.Builder builderForValue) {
        if (alarmHrBuilder_ == null) {
          ensureAlarmHrIsMutable();
          alarmHr_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmHrBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder addAlarmHr(HrAlarmV3 value) {
        if (alarmHrBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmHrIsMutable();
          alarmHr_.add(value);
          onChanged();
        } else {
          alarmHrBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder addAlarmHr(
          int index, HrAlarmV3 value) {
        if (alarmHrBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmHrIsMutable();
          alarmHr_.add(index, value);
          onChanged();
        } else {
          alarmHrBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder addAlarmHr(
          HrAlarmV3.Builder builderForValue) {
        if (alarmHrBuilder_ == null) {
          ensureAlarmHrIsMutable();
          alarmHr_.add(builderForValue.build());
          onChanged();
        } else {
          alarmHrBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder addAlarmHr(
          int index, HrAlarmV3.Builder builderForValue) {
        if (alarmHrBuilder_ == null) {
          ensureAlarmHrIsMutable();
          alarmHr_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmHrBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder addAllAlarmHr(
          Iterable<? extends HrAlarmV3> values) {
        if (alarmHrBuilder_ == null) {
          ensureAlarmHrIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmHr_);
          onChanged();
        } else {
          alarmHrBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder clearAlarmHr() {
        if (alarmHrBuilder_ == null) {
          alarmHr_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          alarmHrBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public Builder removeAlarmHr(int index) {
        if (alarmHrBuilder_ == null) {
          ensureAlarmHrIsMutable();
          alarmHr_.remove(index);
          onChanged();
        } else {
          alarmHrBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public HrAlarmV3.Builder getAlarmHrBuilder(
          int index) {
        return getAlarmHrFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public HrAlarmV3OrBuilder getAlarmHrOrBuilder(
          int index) {
        if (alarmHrBuilder_ == null) {
          return alarmHr_.get(index);  } else {
          return alarmHrBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public java.util.List<? extends HrAlarmV3OrBuilder>
           getAlarmHrOrBuilderList() {
        if (alarmHrBuilder_ != null) {
          return alarmHrBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmHr_);
        }
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public HrAlarmV3.Builder addAlarmHrBuilder() {
        return getAlarmHrFieldBuilder().addBuilder(
            HrAlarmV3.getDefaultInstance());
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public HrAlarmV3.Builder addAlarmHrBuilder(
          int index) {
        return getAlarmHrFieldBuilder().addBuilder(
            index, HrAlarmV3.getDefaultInstance());
      }
      /**
       * <code>repeated .HrAlarmV3 alarm_hr = 1;</code>
       */
      public java.util.List<HrAlarmV3.Builder>
           getAlarmHrBuilderList() {
        return getAlarmHrFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          HrAlarmV3, HrAlarmV3.Builder, HrAlarmV3OrBuilder>
          getAlarmHrFieldBuilder() {
        if (alarmHrBuilder_ == null) {
          alarmHrBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              HrAlarmV3, HrAlarmV3.Builder, HrAlarmV3OrBuilder>(
                  alarmHr_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          alarmHr_ = null;
        }
        return alarmHrBuilder_;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          Spo2AlarmV3, Spo2AlarmV3.Builder, Spo2AlarmV3OrBuilder> alarmSpo2Builder_;

      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public java.util.List<Spo2AlarmV3> getAlarmSpo2List() {
        if (alarmSpo2Builder_ == null) {
          return java.util.Collections.unmodifiableList(alarmSpo2_);
        } else {
          return alarmSpo2Builder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public int getAlarmSpo2Count() {
        if (alarmSpo2Builder_ == null) {
          return alarmSpo2_.size();
        } else {
          return alarmSpo2Builder_.getCount();
        }
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Spo2AlarmV3 getAlarmSpo2(int index) {
        if (alarmSpo2Builder_ == null) {
          return alarmSpo2_.get(index);
        } else {
          return alarmSpo2Builder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder setAlarmSpo2(
          int index, Spo2AlarmV3 value) {
        if (alarmSpo2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmSpo2IsMutable();
          alarmSpo2_.set(index, value);
          onChanged();
        } else {
          alarmSpo2Builder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder setAlarmSpo2(
          int index, Spo2AlarmV3.Builder builderForValue) {
        if (alarmSpo2Builder_ == null) {
          ensureAlarmSpo2IsMutable();
          alarmSpo2_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmSpo2Builder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder addAlarmSpo2(Spo2AlarmV3 value) {
        if (alarmSpo2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmSpo2IsMutable();
          alarmSpo2_.add(value);
          onChanged();
        } else {
          alarmSpo2Builder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder addAlarmSpo2(
          int index, Spo2AlarmV3 value) {
        if (alarmSpo2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmSpo2IsMutable();
          alarmSpo2_.add(index, value);
          onChanged();
        } else {
          alarmSpo2Builder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder addAlarmSpo2(
          Spo2AlarmV3.Builder builderForValue) {
        if (alarmSpo2Builder_ == null) {
          ensureAlarmSpo2IsMutable();
          alarmSpo2_.add(builderForValue.build());
          onChanged();
        } else {
          alarmSpo2Builder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder addAlarmSpo2(
          int index, Spo2AlarmV3.Builder builderForValue) {
        if (alarmSpo2Builder_ == null) {
          ensureAlarmSpo2IsMutable();
          alarmSpo2_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmSpo2Builder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder addAllAlarmSpo2(
          Iterable<? extends Spo2AlarmV3> values) {
        if (alarmSpo2Builder_ == null) {
          ensureAlarmSpo2IsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmSpo2_);
          onChanged();
        } else {
          alarmSpo2Builder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder clearAlarmSpo2() {
        if (alarmSpo2Builder_ == null) {
          alarmSpo2_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          alarmSpo2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Builder removeAlarmSpo2(int index) {
        if (alarmSpo2Builder_ == null) {
          ensureAlarmSpo2IsMutable();
          alarmSpo2_.remove(index);
          onChanged();
        } else {
          alarmSpo2Builder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Spo2AlarmV3.Builder getAlarmSpo2Builder(
          int index) {
        return getAlarmSpo2FieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Spo2AlarmV3OrBuilder getAlarmSpo2OrBuilder(
          int index) {
        if (alarmSpo2Builder_ == null) {
          return alarmSpo2_.get(index);  } else {
          return alarmSpo2Builder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public java.util.List<? extends Spo2AlarmV3OrBuilder>
           getAlarmSpo2OrBuilderList() {
        if (alarmSpo2Builder_ != null) {
          return alarmSpo2Builder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmSpo2_);
        }
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Spo2AlarmV3.Builder addAlarmSpo2Builder() {
        return getAlarmSpo2FieldBuilder().addBuilder(
            Spo2AlarmV3.getDefaultInstance());
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public Spo2AlarmV3.Builder addAlarmSpo2Builder(
          int index) {
        return getAlarmSpo2FieldBuilder().addBuilder(
            index, Spo2AlarmV3.getDefaultInstance());
      }
      /**
       * <code>repeated .Spo2AlarmV3 alarm_spo2 = 2;</code>
       */
      public java.util.List<Spo2AlarmV3.Builder>
           getAlarmSpo2BuilderList() {
        return getAlarmSpo2FieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          Spo2AlarmV3, Spo2AlarmV3.Builder, Spo2AlarmV3OrBuilder>
          getAlarmSpo2FieldBuilder() {
        if (alarmSpo2Builder_ == null) {
          alarmSpo2Builder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              Spo2AlarmV3, Spo2AlarmV3.Builder, Spo2AlarmV3OrBuilder>(
                  alarmSpo2_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          alarmSpo2_ = null;
        }
        return alarmSpo2Builder_;
      }

      private java.util.List<ThrombusAlarmV3> alarmThrombus_ =
        java.util.Collections.emptyList();
      private void ensureAlarmThrombusIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          alarmThrombus_ = new java.util.ArrayList<ThrombusAlarmV3>(alarmThrombus_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ThrombusAlarmV3, ThrombusAlarmV3.Builder, ThrombusAlarmV3OrBuilder> alarmThrombusBuilder_;

      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public java.util.List<ThrombusAlarmV3> getAlarmThrombusList() {
        if (alarmThrombusBuilder_ == null) {
          return java.util.Collections.unmodifiableList(alarmThrombus_);
        } else {
          return alarmThrombusBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public int getAlarmThrombusCount() {
        if (alarmThrombusBuilder_ == null) {
          return alarmThrombus_.size();
        } else {
          return alarmThrombusBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public ThrombusAlarmV3 getAlarmThrombus(int index) {
        if (alarmThrombusBuilder_ == null) {
          return alarmThrombus_.get(index);
        } else {
          return alarmThrombusBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder setAlarmThrombus(
          int index, ThrombusAlarmV3 value) {
        if (alarmThrombusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmThrombusIsMutable();
          alarmThrombus_.set(index, value);
          onChanged();
        } else {
          alarmThrombusBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder setAlarmThrombus(
          int index, ThrombusAlarmV3.Builder builderForValue) {
        if (alarmThrombusBuilder_ == null) {
          ensureAlarmThrombusIsMutable();
          alarmThrombus_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmThrombusBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder addAlarmThrombus(ThrombusAlarmV3 value) {
        if (alarmThrombusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmThrombusIsMutable();
          alarmThrombus_.add(value);
          onChanged();
        } else {
          alarmThrombusBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder addAlarmThrombus(
          int index, ThrombusAlarmV3 value) {
        if (alarmThrombusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmThrombusIsMutable();
          alarmThrombus_.add(index, value);
          onChanged();
        } else {
          alarmThrombusBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder addAlarmThrombus(
          ThrombusAlarmV3.Builder builderForValue) {
        if (alarmThrombusBuilder_ == null) {
          ensureAlarmThrombusIsMutable();
          alarmThrombus_.add(builderForValue.build());
          onChanged();
        } else {
          alarmThrombusBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder addAlarmThrombus(
          int index, ThrombusAlarmV3.Builder builderForValue) {
        if (alarmThrombusBuilder_ == null) {
          ensureAlarmThrombusIsMutable();
          alarmThrombus_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmThrombusBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder addAllAlarmThrombus(
          Iterable<? extends ThrombusAlarmV3> values) {
        if (alarmThrombusBuilder_ == null) {
          ensureAlarmThrombusIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmThrombus_);
          onChanged();
        } else {
          alarmThrombusBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder clearAlarmThrombus() {
        if (alarmThrombusBuilder_ == null) {
          alarmThrombus_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          alarmThrombusBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public Builder removeAlarmThrombus(int index) {
        if (alarmThrombusBuilder_ == null) {
          ensureAlarmThrombusIsMutable();
          alarmThrombus_.remove(index);
          onChanged();
        } else {
          alarmThrombusBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public ThrombusAlarmV3.Builder getAlarmThrombusBuilder(
          int index) {
        return getAlarmThrombusFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public ThrombusAlarmV3OrBuilder getAlarmThrombusOrBuilder(
          int index) {
        if (alarmThrombusBuilder_ == null) {
          return alarmThrombus_.get(index);  } else {
          return alarmThrombusBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public java.util.List<? extends ThrombusAlarmV3OrBuilder>
           getAlarmThrombusOrBuilderList() {
        if (alarmThrombusBuilder_ != null) {
          return alarmThrombusBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmThrombus_);
        }
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public ThrombusAlarmV3.Builder addAlarmThrombusBuilder() {
        return getAlarmThrombusFieldBuilder().addBuilder(
            ThrombusAlarmV3.getDefaultInstance());
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public ThrombusAlarmV3.Builder addAlarmThrombusBuilder(
          int index) {
        return getAlarmThrombusFieldBuilder().addBuilder(
            index, ThrombusAlarmV3.getDefaultInstance());
      }
      /**
       * <code>repeated .ThrombusAlarmV3 alarm_Thrombus = 3;</code>
       */
      public java.util.List<ThrombusAlarmV3.Builder>
           getAlarmThrombusBuilderList() {
        return getAlarmThrombusFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ThrombusAlarmV3, ThrombusAlarmV3.Builder, ThrombusAlarmV3OrBuilder>
          getAlarmThrombusFieldBuilder() {
        if (alarmThrombusBuilder_ == null) {
          alarmThrombusBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ThrombusAlarmV3, ThrombusAlarmV3.Builder, ThrombusAlarmV3OrBuilder>(
                  alarmThrombus_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          alarmThrombus_ = null;
        }
        return alarmThrombusBuilder_;
      }

      private java.util.List<FallAlarmConfV3> alarmFall_ =
        java.util.Collections.emptyList();
      private void ensureAlarmFallIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          alarmFall_ = new java.util.ArrayList<FallAlarmConfV3>(alarmFall_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          FallAlarmConfV3, FallAlarmConfV3.Builder, FallAlarmConfV3OrBuilder> alarmFallBuilder_;

      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public java.util.List<FallAlarmConfV3> getAlarmFallList() {
        if (alarmFallBuilder_ == null) {
          return java.util.Collections.unmodifiableList(alarmFall_);
        } else {
          return alarmFallBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public int getAlarmFallCount() {
        if (alarmFallBuilder_ == null) {
          return alarmFall_.size();
        } else {
          return alarmFallBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public FallAlarmConfV3 getAlarmFall(int index) {
        if (alarmFallBuilder_ == null) {
          return alarmFall_.get(index);
        } else {
          return alarmFallBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder setAlarmFall(
          int index, FallAlarmConfV3 value) {
        if (alarmFallBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmFallIsMutable();
          alarmFall_.set(index, value);
          onChanged();
        } else {
          alarmFallBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder setAlarmFall(
          int index, FallAlarmConfV3.Builder builderForValue) {
        if (alarmFallBuilder_ == null) {
          ensureAlarmFallIsMutable();
          alarmFall_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmFallBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder addAlarmFall(FallAlarmConfV3 value) {
        if (alarmFallBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmFallIsMutable();
          alarmFall_.add(value);
          onChanged();
        } else {
          alarmFallBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder addAlarmFall(
          int index, FallAlarmConfV3 value) {
        if (alarmFallBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmFallIsMutable();
          alarmFall_.add(index, value);
          onChanged();
        } else {
          alarmFallBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder addAlarmFall(
          FallAlarmConfV3.Builder builderForValue) {
        if (alarmFallBuilder_ == null) {
          ensureAlarmFallIsMutable();
          alarmFall_.add(builderForValue.build());
          onChanged();
        } else {
          alarmFallBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder addAlarmFall(
          int index, FallAlarmConfV3.Builder builderForValue) {
        if (alarmFallBuilder_ == null) {
          ensureAlarmFallIsMutable();
          alarmFall_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmFallBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder addAllAlarmFall(
          Iterable<? extends FallAlarmConfV3> values) {
        if (alarmFallBuilder_ == null) {
          ensureAlarmFallIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmFall_);
          onChanged();
        } else {
          alarmFallBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder clearAlarmFall() {
        if (alarmFallBuilder_ == null) {
          alarmFall_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          alarmFallBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public Builder removeAlarmFall(int index) {
        if (alarmFallBuilder_ == null) {
          ensureAlarmFallIsMutable();
          alarmFall_.remove(index);
          onChanged();
        } else {
          alarmFallBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public FallAlarmConfV3.Builder getAlarmFallBuilder(
          int index) {
        return getAlarmFallFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public FallAlarmConfV3OrBuilder getAlarmFallOrBuilder(
          int index) {
        if (alarmFallBuilder_ == null) {
          return alarmFall_.get(index);  } else {
          return alarmFallBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public java.util.List<? extends FallAlarmConfV3OrBuilder>
           getAlarmFallOrBuilderList() {
        if (alarmFallBuilder_ != null) {
          return alarmFallBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmFall_);
        }
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public FallAlarmConfV3.Builder addAlarmFallBuilder() {
        return getAlarmFallFieldBuilder().addBuilder(
            FallAlarmConfV3.getDefaultInstance());
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public FallAlarmConfV3.Builder addAlarmFallBuilder(
          int index) {
        return getAlarmFallFieldBuilder().addBuilder(
            index, FallAlarmConfV3.getDefaultInstance());
      }
      /**
       * <code>repeated .FallAlarmConfV3 alarm_fall = 4;</code>
       */
      public java.util.List<FallAlarmConfV3.Builder>
           getAlarmFallBuilderList() {
        return getAlarmFallFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          FallAlarmConfV3, FallAlarmConfV3.Builder, FallAlarmConfV3OrBuilder>
          getAlarmFallFieldBuilder() {
        if (alarmFallBuilder_ == null) {
          alarmFallBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              FallAlarmConfV3, FallAlarmConfV3.Builder, FallAlarmConfV3OrBuilder>(
                  alarmFall_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          alarmFall_ = null;
        }
        return alarmFallBuilder_;
      }

      private java.util.List<TemperatureConf> alarmTemperature_ =
        java.util.Collections.emptyList();
      private void ensureAlarmTemperatureIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          alarmTemperature_ = new java.util.ArrayList<TemperatureConf>(alarmTemperature_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          TemperatureConf, TemperatureConf.Builder, TemperatureConfOrBuilder> alarmTemperatureBuilder_;

      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public java.util.List<TemperatureConf> getAlarmTemperatureList() {
        if (alarmTemperatureBuilder_ == null) {
          return java.util.Collections.unmodifiableList(alarmTemperature_);
        } else {
          return alarmTemperatureBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public int getAlarmTemperatureCount() {
        if (alarmTemperatureBuilder_ == null) {
          return alarmTemperature_.size();
        } else {
          return alarmTemperatureBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public TemperatureConf getAlarmTemperature(int index) {
        if (alarmTemperatureBuilder_ == null) {
          return alarmTemperature_.get(index);
        } else {
          return alarmTemperatureBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder setAlarmTemperature(
          int index, TemperatureConf value) {
        if (alarmTemperatureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmTemperatureIsMutable();
          alarmTemperature_.set(index, value);
          onChanged();
        } else {
          alarmTemperatureBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder setAlarmTemperature(
          int index, TemperatureConf.Builder builderForValue) {
        if (alarmTemperatureBuilder_ == null) {
          ensureAlarmTemperatureIsMutable();
          alarmTemperature_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmTemperatureBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder addAlarmTemperature(TemperatureConf value) {
        if (alarmTemperatureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmTemperatureIsMutable();
          alarmTemperature_.add(value);
          onChanged();
        } else {
          alarmTemperatureBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder addAlarmTemperature(
          int index, TemperatureConf value) {
        if (alarmTemperatureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmTemperatureIsMutable();
          alarmTemperature_.add(index, value);
          onChanged();
        } else {
          alarmTemperatureBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder addAlarmTemperature(
          TemperatureConf.Builder builderForValue) {
        if (alarmTemperatureBuilder_ == null) {
          ensureAlarmTemperatureIsMutable();
          alarmTemperature_.add(builderForValue.build());
          onChanged();
        } else {
          alarmTemperatureBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder addAlarmTemperature(
          int index, TemperatureConf.Builder builderForValue) {
        if (alarmTemperatureBuilder_ == null) {
          ensureAlarmTemperatureIsMutable();
          alarmTemperature_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmTemperatureBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder addAllAlarmTemperature(
          Iterable<? extends TemperatureConf> values) {
        if (alarmTemperatureBuilder_ == null) {
          ensureAlarmTemperatureIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmTemperature_);
          onChanged();
        } else {
          alarmTemperatureBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder clearAlarmTemperature() {
        if (alarmTemperatureBuilder_ == null) {
          alarmTemperature_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          alarmTemperatureBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public Builder removeAlarmTemperature(int index) {
        if (alarmTemperatureBuilder_ == null) {
          ensureAlarmTemperatureIsMutable();
          alarmTemperature_.remove(index);
          onChanged();
        } else {
          alarmTemperatureBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public TemperatureConf.Builder getAlarmTemperatureBuilder(
          int index) {
        return getAlarmTemperatureFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public TemperatureConfOrBuilder getAlarmTemperatureOrBuilder(
          int index) {
        if (alarmTemperatureBuilder_ == null) {
          return alarmTemperature_.get(index);  } else {
          return alarmTemperatureBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public java.util.List<? extends TemperatureConfOrBuilder>
           getAlarmTemperatureOrBuilderList() {
        if (alarmTemperatureBuilder_ != null) {
          return alarmTemperatureBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmTemperature_);
        }
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public TemperatureConf.Builder addAlarmTemperatureBuilder() {
        return getAlarmTemperatureFieldBuilder().addBuilder(
            TemperatureConf.getDefaultInstance());
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public TemperatureConf.Builder addAlarmTemperatureBuilder(
          int index) {
        return getAlarmTemperatureFieldBuilder().addBuilder(
            index, TemperatureConf.getDefaultInstance());
      }
      /**
       * <code>repeated .TemperatureConf alarm_Temperature = 5;</code>
       */
      public java.util.List<TemperatureConf.Builder>
           getAlarmTemperatureBuilderList() {
        return getAlarmTemperatureFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          TemperatureConf, TemperatureConf.Builder, TemperatureConfOrBuilder>
          getAlarmTemperatureFieldBuilder() {
        if (alarmTemperatureBuilder_ == null) {
          alarmTemperatureBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              TemperatureConf, TemperatureConf.Builder, TemperatureConfOrBuilder>(
                  alarmTemperature_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          alarmTemperature_ = null;
        }
        return alarmTemperatureBuilder_;
      }

      private java.util.List<BpConf> alarmBp_ =
        java.util.Collections.emptyList();
      private void ensureAlarmBpIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          alarmBp_ = new java.util.ArrayList<BpConf>(alarmBp_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          BpConf, BpConf.Builder, BpConfOrBuilder> alarmBpBuilder_;

      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public java.util.List<BpConf> getAlarmBpList() {
        if (alarmBpBuilder_ == null) {
          return java.util.Collections.unmodifiableList(alarmBp_);
        } else {
          return alarmBpBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public int getAlarmBpCount() {
        if (alarmBpBuilder_ == null) {
          return alarmBp_.size();
        } else {
          return alarmBpBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public BpConf getAlarmBp(int index) {
        if (alarmBpBuilder_ == null) {
          return alarmBp_.get(index);
        } else {
          return alarmBpBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder setAlarmBp(
          int index, BpConf value) {
        if (alarmBpBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmBpIsMutable();
          alarmBp_.set(index, value);
          onChanged();
        } else {
          alarmBpBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder setAlarmBp(
          int index, BpConf.Builder builderForValue) {
        if (alarmBpBuilder_ == null) {
          ensureAlarmBpIsMutable();
          alarmBp_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmBpBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder addAlarmBp(BpConf value) {
        if (alarmBpBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmBpIsMutable();
          alarmBp_.add(value);
          onChanged();
        } else {
          alarmBpBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder addAlarmBp(
          int index, BpConf value) {
        if (alarmBpBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmBpIsMutable();
          alarmBp_.add(index, value);
          onChanged();
        } else {
          alarmBpBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder addAlarmBp(
          BpConf.Builder builderForValue) {
        if (alarmBpBuilder_ == null) {
          ensureAlarmBpIsMutable();
          alarmBp_.add(builderForValue.build());
          onChanged();
        } else {
          alarmBpBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder addAlarmBp(
          int index, BpConf.Builder builderForValue) {
        if (alarmBpBuilder_ == null) {
          ensureAlarmBpIsMutable();
          alarmBp_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmBpBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder addAllAlarmBp(
          Iterable<? extends BpConf> values) {
        if (alarmBpBuilder_ == null) {
          ensureAlarmBpIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmBp_);
          onChanged();
        } else {
          alarmBpBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder clearAlarmBp() {
        if (alarmBpBuilder_ == null) {
          alarmBp_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          alarmBpBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public Builder removeAlarmBp(int index) {
        if (alarmBpBuilder_ == null) {
          ensureAlarmBpIsMutable();
          alarmBp_.remove(index);
          onChanged();
        } else {
          alarmBpBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public BpConf.Builder getAlarmBpBuilder(
          int index) {
        return getAlarmBpFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public BpConfOrBuilder getAlarmBpOrBuilder(
          int index) {
        if (alarmBpBuilder_ == null) {
          return alarmBp_.get(index);  } else {
          return alarmBpBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public java.util.List<? extends BpConfOrBuilder>
           getAlarmBpOrBuilderList() {
        if (alarmBpBuilder_ != null) {
          return alarmBpBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmBp_);
        }
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public BpConf.Builder addAlarmBpBuilder() {
        return getAlarmBpFieldBuilder().addBuilder(
            BpConf.getDefaultInstance());
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public BpConf.Builder addAlarmBpBuilder(
          int index) {
        return getAlarmBpFieldBuilder().addBuilder(
            index, BpConf.getDefaultInstance());
      }
      /**
       * <code>repeated .BpConf alarm_Bp = 6;</code>
       */
      public java.util.List<BpConf.Builder>
           getAlarmBpBuilderList() {
        return getAlarmBpFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          BpConf, BpConf.Builder, BpConfOrBuilder>
          getAlarmBpFieldBuilder() {
        if (alarmBpBuilder_ == null) {
          alarmBpBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              BpConf, BpConf.Builder, BpConfOrBuilder>(
                  alarmBp_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          alarmBp_ = null;
        }
        return alarmBpBuilder_;
      }

      private java.util.List<SOSGNSSINFOV3> gnssinfo_ =
        java.util.Collections.emptyList();
      private void ensureGnssinfoIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          gnssinfo_ = new java.util.ArrayList<SOSGNSSINFOV3>(gnssinfo_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          SOSGNSSINFOV3, SOSGNSSINFOV3.Builder, SOSGNSSINFOV3OrBuilder> gnssinfoBuilder_;

      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public java.util.List<SOSGNSSINFOV3> getGnssinfoList() {
        if (gnssinfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(gnssinfo_);
        } else {
          return gnssinfoBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public int getGnssinfoCount() {
        if (gnssinfoBuilder_ == null) {
          return gnssinfo_.size();
        } else {
          return gnssinfoBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public SOSGNSSINFOV3 getGnssinfo(int index) {
        if (gnssinfoBuilder_ == null) {
          return gnssinfo_.get(index);
        } else {
          return gnssinfoBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder setGnssinfo(
          int index, SOSGNSSINFOV3 value) {
        if (gnssinfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGnssinfoIsMutable();
          gnssinfo_.set(index, value);
          onChanged();
        } else {
          gnssinfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder setGnssinfo(
          int index, SOSGNSSINFOV3.Builder builderForValue) {
        if (gnssinfoBuilder_ == null) {
          ensureGnssinfoIsMutable();
          gnssinfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          gnssinfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder addGnssinfo(SOSGNSSINFOV3 value) {
        if (gnssinfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGnssinfoIsMutable();
          gnssinfo_.add(value);
          onChanged();
        } else {
          gnssinfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder addGnssinfo(
          int index, SOSGNSSINFOV3 value) {
        if (gnssinfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGnssinfoIsMutable();
          gnssinfo_.add(index, value);
          onChanged();
        } else {
          gnssinfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder addGnssinfo(
          SOSGNSSINFOV3.Builder builderForValue) {
        if (gnssinfoBuilder_ == null) {
          ensureGnssinfoIsMutable();
          gnssinfo_.add(builderForValue.build());
          onChanged();
        } else {
          gnssinfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder addGnssinfo(
          int index, SOSGNSSINFOV3.Builder builderForValue) {
        if (gnssinfoBuilder_ == null) {
          ensureGnssinfoIsMutable();
          gnssinfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          gnssinfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder addAllGnssinfo(
          Iterable<? extends SOSGNSSINFOV3> values) {
        if (gnssinfoBuilder_ == null) {
          ensureGnssinfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, gnssinfo_);
          onChanged();
        } else {
          gnssinfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder clearGnssinfo() {
        if (gnssinfoBuilder_ == null) {
          gnssinfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          gnssinfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public Builder removeGnssinfo(int index) {
        if (gnssinfoBuilder_ == null) {
          ensureGnssinfoIsMutable();
          gnssinfo_.remove(index);
          onChanged();
        } else {
          gnssinfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public SOSGNSSINFOV3.Builder getGnssinfoBuilder(
          int index) {
        return getGnssinfoFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public SOSGNSSINFOV3OrBuilder getGnssinfoOrBuilder(
          int index) {
        if (gnssinfoBuilder_ == null) {
          return gnssinfo_.get(index);  } else {
          return gnssinfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public java.util.List<? extends SOSGNSSINFOV3OrBuilder>
           getGnssinfoOrBuilderList() {
        if (gnssinfoBuilder_ != null) {
          return gnssinfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(gnssinfo_);
        }
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public SOSGNSSINFOV3.Builder addGnssinfoBuilder() {
        return getGnssinfoFieldBuilder().addBuilder(
            SOSGNSSINFOV3.getDefaultInstance());
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public SOSGNSSINFOV3.Builder addGnssinfoBuilder(
          int index) {
        return getGnssinfoFieldBuilder().addBuilder(
            index, SOSGNSSINFOV3.getDefaultInstance());
      }
      /**
       * <pre>
       *SOS warning information reporting
       * </pre>
       *
       * <code>repeated .SOSGNSSINFOV3 gnssinfo = 7;</code>
       */
      public java.util.List<SOSGNSSINFOV3.Builder>
           getGnssinfoBuilderList() {
        return getGnssinfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          SOSGNSSINFOV3, SOSGNSSINFOV3.Builder, SOSGNSSINFOV3OrBuilder>
          getGnssinfoFieldBuilder() {
        if (gnssinfoBuilder_ == null) {
          gnssinfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              SOSGNSSINFOV3, SOSGNSSINFOV3.Builder, SOSGNSSINFOV3OrBuilder>(
                  gnssinfo_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          gnssinfo_ = null;
        }
        return gnssinfoBuilder_;
      }

      private java.util.List<SedentaryConf> alarmSedentary_ =
        java.util.Collections.emptyList();
      private void ensureAlarmSedentaryIsMutable() {
        if (!((bitField0_ & 0x00000080) != 0)) {
          alarmSedentary_ = new java.util.ArrayList<SedentaryConf>(alarmSedentary_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          SedentaryConf, SedentaryConf.Builder, SedentaryConfOrBuilder> alarmSedentaryBuilder_;

      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public java.util.List<SedentaryConf> getAlarmSedentaryList() {
        if (alarmSedentaryBuilder_ == null) {
          return java.util.Collections.unmodifiableList(alarmSedentary_);
        } else {
          return alarmSedentaryBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public int getAlarmSedentaryCount() {
        if (alarmSedentaryBuilder_ == null) {
          return alarmSedentary_.size();
        } else {
          return alarmSedentaryBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public SedentaryConf getAlarmSedentary(int index) {
        if (alarmSedentaryBuilder_ == null) {
          return alarmSedentary_.get(index);
        } else {
          return alarmSedentaryBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder setAlarmSedentary(
          int index, SedentaryConf value) {
        if (alarmSedentaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmSedentaryIsMutable();
          alarmSedentary_.set(index, value);
          onChanged();
        } else {
          alarmSedentaryBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder setAlarmSedentary(
          int index, SedentaryConf.Builder builderForValue) {
        if (alarmSedentaryBuilder_ == null) {
          ensureAlarmSedentaryIsMutable();
          alarmSedentary_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmSedentaryBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder addAlarmSedentary(SedentaryConf value) {
        if (alarmSedentaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmSedentaryIsMutable();
          alarmSedentary_.add(value);
          onChanged();
        } else {
          alarmSedentaryBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder addAlarmSedentary(
          int index, SedentaryConf value) {
        if (alarmSedentaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmSedentaryIsMutable();
          alarmSedentary_.add(index, value);
          onChanged();
        } else {
          alarmSedentaryBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder addAlarmSedentary(
          SedentaryConf.Builder builderForValue) {
        if (alarmSedentaryBuilder_ == null) {
          ensureAlarmSedentaryIsMutable();
          alarmSedentary_.add(builderForValue.build());
          onChanged();
        } else {
          alarmSedentaryBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder addAlarmSedentary(
          int index, SedentaryConf.Builder builderForValue) {
        if (alarmSedentaryBuilder_ == null) {
          ensureAlarmSedentaryIsMutable();
          alarmSedentary_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmSedentaryBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder addAllAlarmSedentary(
          Iterable<? extends SedentaryConf> values) {
        if (alarmSedentaryBuilder_ == null) {
          ensureAlarmSedentaryIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmSedentary_);
          onChanged();
        } else {
          alarmSedentaryBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder clearAlarmSedentary() {
        if (alarmSedentaryBuilder_ == null) {
          alarmSedentary_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          alarmSedentaryBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public Builder removeAlarmSedentary(int index) {
        if (alarmSedentaryBuilder_ == null) {
          ensureAlarmSedentaryIsMutable();
          alarmSedentary_.remove(index);
          onChanged();
        } else {
          alarmSedentaryBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public SedentaryConf.Builder getAlarmSedentaryBuilder(
          int index) {
        return getAlarmSedentaryFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public SedentaryConfOrBuilder getAlarmSedentaryOrBuilder(
          int index) {
        if (alarmSedentaryBuilder_ == null) {
          return alarmSedentary_.get(index);  } else {
          return alarmSedentaryBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public java.util.List<? extends SedentaryConfOrBuilder>
           getAlarmSedentaryOrBuilderList() {
        if (alarmSedentaryBuilder_ != null) {
          return alarmSedentaryBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmSedentary_);
        }
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public SedentaryConf.Builder addAlarmSedentaryBuilder() {
        return getAlarmSedentaryFieldBuilder().addBuilder(
            SedentaryConf.getDefaultInstance());
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public SedentaryConf.Builder addAlarmSedentaryBuilder(
          int index) {
        return getAlarmSedentaryFieldBuilder().addBuilder(
            index, SedentaryConf.getDefaultInstance());
      }
      /**
       * <code>repeated .SedentaryConf alarm_Sedentary = 8;</code>
       */
      public java.util.List<SedentaryConf.Builder>
           getAlarmSedentaryBuilderList() {
        return getAlarmSedentaryFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          SedentaryConf, SedentaryConf.Builder, SedentaryConfOrBuilder>
          getAlarmSedentaryFieldBuilder() {
        if (alarmSedentaryBuilder_ == null) {
          alarmSedentaryBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              SedentaryConf, SedentaryConf.Builder, SedentaryConfOrBuilder>(
                  alarmSedentary_,
                  ((bitField0_ & 0x00000080) != 0),
                  getParentForChildren(),
                  isClean());
          alarmSedentary_ = null;
        }
        return alarmSedentaryBuilder_;
      }

      private RealtimeData.DateTime sOSNotificationTime_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> sOSNotificationTimeBuilder_;
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       * @return Whether the sOSNotificationTime field is set.
       */
      public boolean hasSOSNotificationTime() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       * @return The sOSNotificationTime.
       */
      public RealtimeData.DateTime getSOSNotificationTime() {
        if (sOSNotificationTimeBuilder_ == null) {
          return sOSNotificationTime_ == null ? RealtimeData.DateTime.getDefaultInstance() : sOSNotificationTime_;
        } else {
          return sOSNotificationTimeBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       */
      public Builder setSOSNotificationTime(RealtimeData.DateTime value) {
        if (sOSNotificationTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sOSNotificationTime_ = value;
          onChanged();
        } else {
          sOSNotificationTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       */
      public Builder setSOSNotificationTime(
          RealtimeData.DateTime.Builder builderForValue) {
        if (sOSNotificationTimeBuilder_ == null) {
          sOSNotificationTime_ = builderForValue.build();
          onChanged();
        } else {
          sOSNotificationTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       */
      public Builder mergeSOSNotificationTime(RealtimeData.DateTime value) {
        if (sOSNotificationTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
              sOSNotificationTime_ != null &&
              sOSNotificationTime_ != RealtimeData.DateTime.getDefaultInstance()) {
            sOSNotificationTime_ =
              RealtimeData.DateTime.newBuilder(sOSNotificationTime_).mergeFrom(value).buildPartial();
          } else {
            sOSNotificationTime_ = value;
          }
          onChanged();
        } else {
          sOSNotificationTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       */
      public Builder clearSOSNotificationTime() {
        if (sOSNotificationTimeBuilder_ == null) {
          sOSNotificationTime_ = null;
          onChanged();
        } else {
          sOSNotificationTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       */
      public RealtimeData.DateTime.Builder getSOSNotificationTimeBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getSOSNotificationTimeFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       */
      public RealtimeData.DateTimeOrBuilder getSOSNotificationTimeOrBuilder() {
        if (sOSNotificationTimeBuilder_ != null) {
          return sOSNotificationTimeBuilder_.getMessageOrBuilder();
        } else {
          return sOSNotificationTime_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : sOSNotificationTime_;
        }
      }
      /**
       * <code>optional .DateTime SOS_Notification_time = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getSOSNotificationTimeFieldBuilder() {
        if (sOSNotificationTimeBuilder_ == null) {
          sOSNotificationTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getSOSNotificationTime(),
                  getParentForChildren(),
                  isClean());
          sOSNotificationTime_ = null;
        }
        return sOSNotificationTimeBuilder_;
      }
      @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:HealthAlarmV3)
    }

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

    public static HealthAlarmV3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
     * @return Whether the alarminfo field is set.
     */
    boolean hasAlarminfo();
    /**
     * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
     * @return The alarminfo.
     */
    AlarminfoV3 getAlarminfo();
    /**
     * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
     */
    AlarminfoV3OrBuilder getAlarminfoOrBuilder();

    /**
     * <code>optional .HealthAlarmV3 alarm = 2;</code>
     * @return Whether the alarm field is set.
     */
    boolean hasAlarm();
    /**
     * <code>optional .HealthAlarmV3 alarm = 2;</code>
     * @return The alarm.
     */
    HealthAlarmV3 getAlarm();
    /**
     * <code>optional .HealthAlarmV3 alarm = 2;</code>
     */
    HealthAlarmV3OrBuilder getAlarmOrBuilder();
  }
  /**
   * Protobuf type {@code Alarm_infokConfirm}
   */
  public  static final class Alarm_infokConfirm extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Alarm_infokConfirm)
      Alarm_infokConfirmOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Alarm_infokConfirm.newBuilder() to construct.
    private Alarm_infokConfirm(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Alarm_infokConfirm() {
    }

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

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Alarm_infokConfirm(
        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: {
              AlarminfoV3.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = alarminfo_.toBuilder();
              }
              alarminfo_ = input.readMessage(AlarminfoV3.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(alarminfo_);
                alarminfo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              HealthAlarmV3.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = alarm_.toBuilder();
              }
              alarm_ = input.readMessage(HealthAlarmV3.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(alarm_);
                alarm_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              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 AlarmInfo.internal_static_Alarm_infokConfirm_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return AlarmInfo.internal_static_Alarm_infokConfirm_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              Alarm_infokConfirm.class, Builder.class);
    }

    private int bitField0_;
    public static final int ALARMINFO_FIELD_NUMBER = 1;
    private AlarminfoV3 alarminfo_;
    /**
     * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
     * @return Whether the alarminfo field is set.
     */
    public boolean hasAlarminfo() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
     * @return The alarminfo.
     */
    public AlarminfoV3 getAlarminfo() {
      return alarminfo_ == null ? AlarminfoV3.getDefaultInstance() : alarminfo_;
    }
    /**
     * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
     */
    public AlarminfoV3OrBuilder getAlarminfoOrBuilder() {
      return alarminfo_ == null ? AlarminfoV3.getDefaultInstance() : alarminfo_;
    }

    public static final int ALARM_FIELD_NUMBER = 2;
    private HealthAlarmV3 alarm_;
    /**
     * <code>optional .HealthAlarmV3 alarm = 2;</code>
     * @return Whether the alarm field is set.
     */
    public boolean hasAlarm() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .HealthAlarmV3 alarm = 2;</code>
     * @return The alarm.
     */
    public HealthAlarmV3 getAlarm() {
      return alarm_ == null ? HealthAlarmV3.getDefaultInstance() : alarm_;
    }
    /**
     * <code>optional .HealthAlarmV3 alarm = 2;</code>
     */
    public HealthAlarmV3OrBuilder getAlarmOrBuilder() {
      return alarm_ == null ? HealthAlarmV3.getDefaultInstance() : alarm_;
    }

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

      if (hasAlarminfo()) {
        if (!getAlarminfo().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAlarm()) {
        if (!getAlarm().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, getAlarminfo());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getAlarm());
      }
      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, getAlarminfo());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getAlarm());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasAlarminfo() != other.hasAlarminfo()) return false;
      if (hasAlarminfo()) {
        if (!getAlarminfo()
            .equals(other.getAlarminfo())) return false;
      }
      if (hasAlarm() != other.hasAlarm()) return false;
      if (hasAlarm()) {
        if (!getAlarm()
            .equals(other.getAlarm())) 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 (hasAlarminfo()) {
        hash = (37 * hash) + ALARMINFO_FIELD_NUMBER;
        hash = (53 * hash) + getAlarminfo().hashCode();
      }
      if (hasAlarm()) {
        hash = (37 * hash) + ALARM_FIELD_NUMBER;
        hash = (53 * hash) + getAlarm().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return AlarmInfo.internal_static_Alarm_infokConfirm_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Alarm_infokConfirm.class, Builder.class);
      }

      // Construct using AlarmInfo.Alarm_infokConfirm.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAlarminfoFieldBuilder();
          getAlarmFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (alarminfoBuilder_ == null) {
          alarminfo_ = null;
        } else {
          alarminfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (alarmBuilder_ == null) {
          alarm_ = null;
        } else {
          alarmBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

      @Override
      public Alarm_infokConfirm buildPartial() {
        Alarm_infokConfirm result = new Alarm_infokConfirm(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (alarminfoBuilder_ == null) {
            result.alarminfo_ = alarminfo_;
          } else {
            result.alarminfo_ = alarminfoBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (alarmBuilder_ == null) {
            result.alarm_ = alarm_;
          } else {
            result.alarm_ = alarmBuilder_.build();
          }
          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 Alarm_infokConfirm) {
          return mergeFrom((Alarm_infokConfirm)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(Alarm_infokConfirm other) {
        if (other == Alarm_infokConfirm.getDefaultInstance()) return this;
        if (other.hasAlarminfo()) {
          mergeAlarminfo(other.getAlarminfo());
        }
        if (other.hasAlarm()) {
          mergeAlarm(other.getAlarm());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (hasAlarminfo()) {
          if (!getAlarminfo().isInitialized()) {
            return false;
          }
        }
        if (hasAlarm()) {
          if (!getAlarm().isInitialized()) {
            return false;
          }
        }
        return true;
      }

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

      private AlarminfoV3 alarminfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          AlarminfoV3, AlarminfoV3.Builder, AlarminfoV3OrBuilder> alarminfoBuilder_;
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       * @return Whether the alarminfo field is set.
       */
      public boolean hasAlarminfo() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       * @return The alarminfo.
       */
      public AlarminfoV3 getAlarminfo() {
        if (alarminfoBuilder_ == null) {
          return alarminfo_ == null ? AlarminfoV3.getDefaultInstance() : alarminfo_;
        } else {
          return alarminfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       */
      public Builder setAlarminfo(AlarminfoV3 value) {
        if (alarminfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          alarminfo_ = value;
          onChanged();
        } else {
          alarminfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       */
      public Builder setAlarminfo(
          AlarminfoV3.Builder builderForValue) {
        if (alarminfoBuilder_ == null) {
          alarminfo_ = builderForValue.build();
          onChanged();
        } else {
          alarminfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       */
      public Builder mergeAlarminfo(AlarminfoV3 value) {
        if (alarminfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              alarminfo_ != null &&
              alarminfo_ != AlarminfoV3.getDefaultInstance()) {
            alarminfo_ =
              AlarminfoV3.newBuilder(alarminfo_).mergeFrom(value).buildPartial();
          } else {
            alarminfo_ = value;
          }
          onChanged();
        } else {
          alarminfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       */
      public Builder clearAlarminfo() {
        if (alarminfoBuilder_ == null) {
          alarminfo_ = null;
          onChanged();
        } else {
          alarminfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       */
      public AlarminfoV3.Builder getAlarminfoBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getAlarminfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       */
      public AlarminfoV3OrBuilder getAlarminfoOrBuilder() {
        if (alarminfoBuilder_ != null) {
          return alarminfoBuilder_.getMessageOrBuilder();
        } else {
          return alarminfo_ == null ?
              AlarminfoV3.getDefaultInstance() : alarminfo_;
        }
      }
      /**
       * <code>optional .AlarminfoV3 Alarminfo = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          AlarminfoV3, AlarminfoV3.Builder, AlarminfoV3OrBuilder>
          getAlarminfoFieldBuilder() {
        if (alarminfoBuilder_ == null) {
          alarminfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              AlarminfoV3, AlarminfoV3.Builder, AlarminfoV3OrBuilder>(
                  getAlarminfo(),
                  getParentForChildren(),
                  isClean());
          alarminfo_ = null;
        }
        return alarminfoBuilder_;
      }

      private HealthAlarmV3 alarm_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HealthAlarmV3, HealthAlarmV3.Builder, HealthAlarmV3OrBuilder> alarmBuilder_;
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       * @return Whether the alarm field is set.
       */
      public boolean hasAlarm() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       * @return The alarm.
       */
      public HealthAlarmV3 getAlarm() {
        if (alarmBuilder_ == null) {
          return alarm_ == null ? HealthAlarmV3.getDefaultInstance() : alarm_;
        } else {
          return alarmBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       */
      public Builder setAlarm(HealthAlarmV3 value) {
        if (alarmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          alarm_ = value;
          onChanged();
        } else {
          alarmBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       */
      public Builder setAlarm(
          HealthAlarmV3.Builder builderForValue) {
        if (alarmBuilder_ == null) {
          alarm_ = builderForValue.build();
          onChanged();
        } else {
          alarmBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       */
      public Builder mergeAlarm(HealthAlarmV3 value) {
        if (alarmBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              alarm_ != null &&
              alarm_ != HealthAlarmV3.getDefaultInstance()) {
            alarm_ =
              HealthAlarmV3.newBuilder(alarm_).mergeFrom(value).buildPartial();
          } else {
            alarm_ = value;
          }
          onChanged();
        } else {
          alarmBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       */
      public Builder clearAlarm() {
        if (alarmBuilder_ == null) {
          alarm_ = null;
          onChanged();
        } else {
          alarmBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       */
      public HealthAlarmV3.Builder getAlarmBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getAlarmFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       */
      public HealthAlarmV3OrBuilder getAlarmOrBuilder() {
        if (alarmBuilder_ != null) {
          return alarmBuilder_.getMessageOrBuilder();
        } else {
          return alarm_ == null ?
              HealthAlarmV3.getDefaultInstance() : alarm_;
        }
      }
      /**
       * <code>optional .HealthAlarmV3 alarm = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HealthAlarmV3, HealthAlarmV3.Builder, HealthAlarmV3OrBuilder>
          getAlarmFieldBuilder() {
        if (alarmBuilder_ == null) {
          alarmBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HealthAlarmV3, HealthAlarmV3.Builder, HealthAlarmV3OrBuilder>(
                  getAlarm(),
                  getParentForChildren(),
                  isClean());
          alarm_ = null;
        }
        return alarmBuilder_;
      }
      @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:Alarm_infokConfirm)
    }

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

    public static Alarm_infokConfirm getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SOSGNSSINFOV3_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SOSGNSSINFOV3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HrAlarmV3_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HrAlarmV3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Spo2AlarmV3_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Spo2AlarmV3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ThrombusAlarmV3_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ThrombusAlarmV3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_FallAlarmConfV3_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_FallAlarmConfV3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TemperatureConf_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TemperatureConf_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_BpConf_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_BpConf_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SedentaryConf_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SedentaryConf_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AlarminfoV3_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AlarminfoV3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HealthAlarmV3_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HealthAlarmV3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Alarm_infokConfirm_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Alarm_infokConfirm_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    String[] descriptorData = {
      "\n\020Alarm_info.proto\032\023realtime_data.proto\032" +
      "\021om0_command.proto\"o\n\rSOSGNSSINFOV3\022\035\n\nt" +
      "ime_stamp\030\001 \002(\0132\t.DateTime\022\021\n\tlongitude\030" +
      "\002 \002(\002\022\020\n\010latitude\030\003 \002(\002\022\032\n\010gps_type\030\004 \002(" +
      "\0162\010.GPSTYPE\"6\n\tHrAlarmV3\022\035\n\ntime_stamp\030\001" +
      " \002(\0132\t.DateTime\022\n\n\002hr\030\002 \002(\007\":\n\013Spo2Alarm" +
      "V3\022\035\n\ntime_stamp\030\001 \002(\0132\t.DateTime\022\014\n\004spo" +
      "2\030\002 \002(\007\"H\n\017ThrombusAlarmV3\022\035\n\ntime_stamp" +
      "\030\001 \002(\0132\t.DateTime\022\026\n\016Thrombus_alarm\030\002 \002(" +
      "\010\"D\n\017FallAlarmConfV3\022\035\n\ntime_stamp\030\001 \002(\013" +
      "2\t.DateTime\022\022\n\nfall_alarm\030\002 \002(\010\"E\n\017Tempe" +
      "ratureConf\022\035\n\ntime_stamp\030\001 \002(\0132\t.DateTim" +
      "e\022\023\n\013temperature\030\002 \002(\007\"A\n\006BpConf\022\035\n\ntime" +
      "_stamp\030\001 \002(\0132\t.DateTime\022\013\n\003sbp\030\002 \002(\007\022\013\n\003" +
      "dbp\030\003 \002(\007\".\n\rSedentaryConf\022\035\n\ntime_stamp" +
      "\030\001 \002(\0132\t.DateTime\"\245\001\n\013AlarminfoV3\022\035\n\ntim" +
      "e_stamp\030\001 \002(\0132\t.DateTime\022\021\n\twearstate\030\002 " +
      "\001(\010\022\022\n\nsleepstate\030\003 \001(\010\022\032\n\022lowpowerPerce" +
      "ntage\030\004 \001(\007\022\032\n\022poweroffPercentage\030\005 \001(\007\022" +
      "\030\n\020intercept_number\030\006 \001(\t\"\334\002\n\rHealthAlar" +
      "mV3\022\034\n\010alarm_hr\030\001 \003(\0132\n.HrAlarmV3\022 \n\nala" +
      "rm_spo2\030\002 \003(\0132\014.Spo2AlarmV3\022(\n\016alarm_Thr" +
      "ombus\030\003 \003(\0132\020.ThrombusAlarmV3\022$\n\nalarm_f" +
      "all\030\004 \003(\0132\020.FallAlarmConfV3\022+\n\021alarm_Tem" +
      "perature\030\005 \003(\0132\020.TemperatureConf\022\031\n\010alar" +
      "m_Bp\030\006 \003(\0132\007.BpConf\022 \n\010gnssinfo\030\007 \003(\0132\016." +
      "SOSGNSSINFOV3\022\'\n\017alarm_Sedentary\030\010 \003(\0132\016" +
      ".SedentaryConf\022(\n\025SOS_Notification_time\030" +
      "\t \001(\0132\t.DateTime\"T\n\022Alarm_infokConfirm\022\037" +
      "\n\tAlarminfo\030\001 \001(\0132\014.AlarminfoV3\022\035\n\005alarm" +
      "\030\002 \001(\0132\016.HealthAlarmV3B\tZ\007./iwown"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          RealtimeData.getDescriptor(),
          Om0Command.getDescriptor(),
        });
    internal_static_SOSGNSSINFOV3_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_SOSGNSSINFOV3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SOSGNSSINFOV3_descriptor,
        new String[] { "TimeStamp", "Longitude", "Latitude", "GpsType", });
    internal_static_HrAlarmV3_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_HrAlarmV3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HrAlarmV3_descriptor,
        new String[] { "TimeStamp", "Hr", });
    internal_static_Spo2AlarmV3_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_Spo2AlarmV3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Spo2AlarmV3_descriptor,
        new String[] { "TimeStamp", "Spo2", });
    internal_static_ThrombusAlarmV3_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_ThrombusAlarmV3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ThrombusAlarmV3_descriptor,
        new String[] { "TimeStamp", "ThrombusAlarm", });
    internal_static_FallAlarmConfV3_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_FallAlarmConfV3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_FallAlarmConfV3_descriptor,
        new String[] { "TimeStamp", "FallAlarm", });
    internal_static_TemperatureConf_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_TemperatureConf_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TemperatureConf_descriptor,
        new String[] { "TimeStamp", "Temperature", });
    internal_static_BpConf_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_BpConf_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_BpConf_descriptor,
        new String[] { "TimeStamp", "Sbp", "Dbp", });
    internal_static_SedentaryConf_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_SedentaryConf_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SedentaryConf_descriptor,
        new String[] { "TimeStamp", });
    internal_static_AlarminfoV3_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_AlarminfoV3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AlarminfoV3_descriptor,
        new String[] { "TimeStamp", "Wearstate", "Sleepstate", "LowpowerPercentage", "PoweroffPercentage", "InterceptNumber", });
    internal_static_HealthAlarmV3_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_HealthAlarmV3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HealthAlarmV3_descriptor,
        new String[] { "AlarmHr", "AlarmSpo2", "AlarmThrombus", "AlarmFall", "AlarmTemperature", "AlarmBp", "Gnssinfo", "AlarmSedentary", "SOSNotificationTime", });
    internal_static_Alarm_infokConfirm_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_Alarm_infokConfirm_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Alarm_infokConfirm_descriptor,
        new String[] { "Alarminfo", "Alarm", });
    RealtimeData.getDescriptor();
    Om0Command.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
