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

package com.fca.uconnect.global;

public final class GlobalUconnectExtProvision {
  private GlobalUconnectExtProvision() {}
  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 InitiateProvisioningPushOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.InitiateProvisioningPush)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */
    int getParametersCount();
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */
    boolean containsParameters(
        java.lang.String key);
    /**
     * Use {@link #getParametersMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getParameters();
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getParametersMap();
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    java.lang.String getParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    java.lang.String getParametersOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   **
   * This message is to initiate a New Registration from SDP.
   *&lt;div class=exmsg-main&gt;
   * &lt;h4&gt;InitiateProvisioningPush Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1488743306361
   * 		messageId: 2
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.initiateProvisioningPush]
   * 		 {
   * 		 }
   * 		}
   *  &lt;/code&gt;
   * &lt;/div&gt;
   *&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.InitiateProvisioningPush}
   */
  public  static final class InitiateProvisioningPush extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.InitiateProvisioningPush)
      InitiateProvisioningPushOrBuilder {
    // Use InitiateProvisioningPush.newBuilder() to construct.
    private InitiateProvisioningPush(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InitiateProvisioningPush() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private InitiateProvisioningPush(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                parameters_ = com.google.protobuf.MapField.newMapField(
                    ParametersDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              parameters__ = input.readMessage(
                  ParametersDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              parameters_.getMutableMap().put(
                  parameters__.getKey(), parameters__.getValue());
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_InitiateProvisioningPush_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetParameters();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_InitiateProvisioningPush_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush.class, com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush.Builder.class);
    }

    public static final int PARAMETERS_FIELD_NUMBER = 1;
    private static final class ParametersDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_InitiateProvisioningPush_ParametersEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> parameters_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetParameters() {
      if (parameters_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            ParametersDefaultEntryHolder.defaultEntry);
      }
      return parameters_;
    }

    public int getParametersCount() {
      return internalGetParameters().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    public boolean containsParameters(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetParameters().getMap().containsKey(key);
    }
    /**
     * Use {@link #getParametersMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getParameters() {
      return getParametersMap();
    }
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getParametersMap() {
      return internalGetParameters().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    public java.lang.String getParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetParameters().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    public java.lang.String getParametersOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetParameters().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetParameters(),
          ParametersDefaultEntryHolder.defaultEntry,
          1);
    }

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

      size = 0;
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetParameters().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        parameters__ = ParametersDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, parameters__);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush other = (com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush) obj;

      boolean result = true;
      result = result && internalGetParameters().equals(
          other.internalGetParameters());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetParameters().getMap().isEmpty()) {
        hash = (37 * hash) + PARAMETERS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetParameters().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message is to initiate a New Registration from SDP.
     *&lt;div class=exmsg-main&gt;
     * &lt;h4&gt;InitiateProvisioningPush Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1488743306361
     * 		messageId: 2
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.initiateProvisioningPush]
     * 		 {
     * 		 }
     * 		}
     *  &lt;/code&gt;
     * &lt;/div&gt;
     *&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.InitiateProvisioningPush}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.InitiateProvisioningPush)
        com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPushOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_InitiateProvisioningPush_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_InitiateProvisioningPush_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush.class, com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        internalGetMutableParameters().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_InitiateProvisioningPush_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush result = new com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush(this);
        int from_bitField0_ = bitField0_;
        result.parameters_ = internalGetParameters();
        result.parameters_.makeImmutable();
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush.getDefaultInstance()) return this;
        internalGetMutableParameters().mergeFrom(
            other.internalGetParameters());
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> parameters_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetParameters() {
        if (parameters_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              ParametersDefaultEntryHolder.defaultEntry);
        }
        return parameters_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableParameters() {
        onChanged();;
        if (parameters_ == null) {
          parameters_ = com.google.protobuf.MapField.newMapField(
              ParametersDefaultEntryHolder.defaultEntry);
        }
        if (!parameters_.isMutable()) {
          parameters_ = parameters_.copy();
        }
        return parameters_;
      }

      public int getParametersCount() {
        return internalGetParameters().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public boolean containsParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetParameters().getMap().containsKey(key);
      }
      /**
       * Use {@link #getParametersMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getParameters() {
        return getParametersMap();
      }
      /**
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getParametersMap() {
        return internalGetParameters().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public java.lang.String getParametersOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetParameters().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public java.lang.String getParametersOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetParameters().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearParameters() {
        internalGetMutableParameters().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public Builder removeParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableParameters().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableParameters() {
        return internalGetMutableParameters().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */
      public Builder putParameters(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableParameters().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public Builder putAllParameters(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableParameters().getMutableMap()
            .putAll(values);
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.InitiateProvisioningPush)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.InitiateProvisioningPush)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.InitiateProvisioningPush getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProvisioningRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ProvisioningRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    java.lang.String getVehicleId();
    /**
     * <pre>
     *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    com.google.protobuf.ByteString
        getVehicleIdBytes();

    /**
     * <pre>
     * Device device = 2;
     * </pre>
     *
     * <code>bytes DrmHash = 5;</code>
     */
    com.google.protobuf.ByteString getDrmHash();

    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */
    int getAdditionalModemParamsCount();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */
    boolean containsAdditionalModemParams(
        java.lang.String key);
    /**
     * Use {@link #getAdditionalModemParamsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalModemParams();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalModemParamsMap();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    java.lang.String getAdditionalModemParamsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    java.lang.String getAdditionalModemParamsOrThrow(
        java.lang.String key);

    /**
     * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
     */
    int getReasonValue();
    /**
     * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum getReason();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.ProvisioningRequest}
   */
  public  static final class ProvisioningRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ProvisioningRequest)
      ProvisioningRequestOrBuilder {
    // Use ProvisioningRequest.newBuilder() to construct.
    private ProvisioningRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProvisioningRequest() {
      vehicleId_ = "";
      drmHash_ = com.google.protobuf.ByteString.EMPTY;
      reason_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ProvisioningRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              vehicleId_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                additionalModemParams_ = com.google.protobuf.MapField.newMapField(
                    AdditionalModemParamsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000004;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              additionalModemParams__ = input.readMessage(
                  AdditionalModemParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              additionalModemParams_.getMutableMap().put(
                  additionalModemParams__.getKey(), additionalModemParams__.getValue());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();

              reason_ = rawValue;
              break;
            }
            case 42: {

              drmHash_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningRequest_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 3:
          return internalGetAdditionalModemParams();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ProvisioningRequest.ReasonEnum}
     */
    public enum ReasonEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; IGNITION_CYCLE_CHECK
       * </pre>
       *
       * <code>IGNITION_CYCLE_CHECK = 0;</code>
       */
      IGNITION_CYCLE_CHECK(0),
      /**
       * <pre>
       *&#47; TBM_FLASH
       * </pre>
       *
       * <code>TBM_FLASH = 1;</code>
       */
      TBM_FLASH(1),
      /**
       * <pre>
       *&#47; HU_FLASH
       * </pre>
       *
       * <code>HU_FLASH = 2;</code>
       */
      HU_FLASH(2),
      /**
       * <pre>
       *&#47; ON_DEMAND
       * </pre>
       *
       * <code>ON_DEMAND = 3;</code>
       */
      ON_DEMAND(3),
      /**
       * <pre>
       *&#47; MISDN_MISMATCH
       * </pre>
       *
       * <code>MISDN_MISMATCH = 4;</code>
       */
      MISDN_MISMATCH(4),
      /**
       * <pre>
       *&#47; DISCREPENCY_CHECK
       * </pre>
       *
       * <code>DISCREPENCY_CHECK = 5;</code>
       */
      DISCREPENCY_CHECK(5),
      /**
       * <pre>
       *&#47; SOFTWARE_REFRESH
       * </pre>
       *
       * <code>SOFTWARE_REFRESH = 6;</code>
       */
      SOFTWARE_REFRESH(6),
      /**
       * <pre>
       *&#47; HU_SWAP
       * </pre>
       *
       * <code>HU_SWAP = 7;</code>
       */
      HU_SWAP(7),
      /**
       * <pre>
       *&#47;TBM_SWAP
       * </pre>
       *
       * <code>TBM_SWAP = 8;</code>
       */
      TBM_SWAP(8),
      /**
       * <pre>
       *&#47; ENROLLMENT
       * </pre>
       *
       * <code>ENROLLMENT = 9;</code>
       */
      ENROLLMENT(9),
      /**
       * <pre>
       *&#47;
       * </pre>
       *
       * <code>RETURN_TO_NEW = 10;</code>
       */
      RETURN_TO_NEW(10),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; IGNITION_CYCLE_CHECK
       * </pre>
       *
       * <code>IGNITION_CYCLE_CHECK = 0;</code>
       */
      public static final int IGNITION_CYCLE_CHECK_VALUE = 0;
      /**
       * <pre>
       *&#47; TBM_FLASH
       * </pre>
       *
       * <code>TBM_FLASH = 1;</code>
       */
      public static final int TBM_FLASH_VALUE = 1;
      /**
       * <pre>
       *&#47; HU_FLASH
       * </pre>
       *
       * <code>HU_FLASH = 2;</code>
       */
      public static final int HU_FLASH_VALUE = 2;
      /**
       * <pre>
       *&#47; ON_DEMAND
       * </pre>
       *
       * <code>ON_DEMAND = 3;</code>
       */
      public static final int ON_DEMAND_VALUE = 3;
      /**
       * <pre>
       *&#47; MISDN_MISMATCH
       * </pre>
       *
       * <code>MISDN_MISMATCH = 4;</code>
       */
      public static final int MISDN_MISMATCH_VALUE = 4;
      /**
       * <pre>
       *&#47; DISCREPENCY_CHECK
       * </pre>
       *
       * <code>DISCREPENCY_CHECK = 5;</code>
       */
      public static final int DISCREPENCY_CHECK_VALUE = 5;
      /**
       * <pre>
       *&#47; SOFTWARE_REFRESH
       * </pre>
       *
       * <code>SOFTWARE_REFRESH = 6;</code>
       */
      public static final int SOFTWARE_REFRESH_VALUE = 6;
      /**
       * <pre>
       *&#47; HU_SWAP
       * </pre>
       *
       * <code>HU_SWAP = 7;</code>
       */
      public static final int HU_SWAP_VALUE = 7;
      /**
       * <pre>
       *&#47;TBM_SWAP
       * </pre>
       *
       * <code>TBM_SWAP = 8;</code>
       */
      public static final int TBM_SWAP_VALUE = 8;
      /**
       * <pre>
       *&#47; ENROLLMENT
       * </pre>
       *
       * <code>ENROLLMENT = 9;</code>
       */
      public static final int ENROLLMENT_VALUE = 9;
      /**
       * <pre>
       *&#47;
       * </pre>
       *
       * <code>RETURN_TO_NEW = 10;</code>
       */
      public static final int RETURN_TO_NEW_VALUE = 10;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ReasonEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ReasonEnum forNumber(int value) {
        switch (value) {
          case 0: return IGNITION_CYCLE_CHECK;
          case 1: return TBM_FLASH;
          case 2: return HU_FLASH;
          case 3: return ON_DEMAND;
          case 4: return MISDN_MISMATCH;
          case 5: return DISCREPENCY_CHECK;
          case 6: return SOFTWARE_REFRESH;
          case 7: return HU_SWAP;
          case 8: return TBM_SWAP;
          case 9: return ENROLLMENT;
          case 10: return RETURN_TO_NEW;
          default: return null;
        }
      }

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ProvisioningRequest.ReasonEnum)
    }

    private int bitField0_;
    public static final int VEHICLEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object vehicleId_;
    /**
     * <pre>
     *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    public java.lang.String getVehicleId() {
      java.lang.Object ref = vehicleId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vehicleId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    public com.google.protobuf.ByteString
        getVehicleIdBytes() {
      java.lang.Object ref = vehicleId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vehicleId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DRMHASH_FIELD_NUMBER = 5;
    private com.google.protobuf.ByteString drmHash_;
    /**
     * <pre>
     * Device device = 2;
     * </pre>
     *
     * <code>bytes DrmHash = 5;</code>
     */
    public com.google.protobuf.ByteString getDrmHash() {
      return drmHash_;
    }

    public static final int ADDITIONALMODEMPARAMS_FIELD_NUMBER = 3;
    private static final class AdditionalModemParamsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningRequest_AdditionalModemParamsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> additionalModemParams_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetAdditionalModemParams() {
      if (additionalModemParams_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AdditionalModemParamsDefaultEntryHolder.defaultEntry);
      }
      return additionalModemParams_;
    }

    public int getAdditionalModemParamsCount() {
      return internalGetAdditionalModemParams().getMap().size();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    public boolean containsAdditionalModemParams(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetAdditionalModemParams().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAdditionalModemParamsMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParams() {
      return getAdditionalModemParamsMap();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParamsMap() {
      return internalGetAdditionalModemParams().getMap();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    public java.lang.String getAdditionalModemParamsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAdditionalModemParams().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    public java.lang.String getAdditionalModemParamsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAdditionalModemParams().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int REASON_FIELD_NUMBER = 4;
    private int reason_;
    /**
     * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
     */
    public int getReasonValue() {
      return reason_;
    }
    /**
     * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum getReason() {
      com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum.valueOf(reason_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum.UNRECOGNIZED : result;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getVehicleIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, vehicleId_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetAdditionalModemParams(),
          AdditionalModemParamsDefaultEntryHolder.defaultEntry,
          3);
      if (reason_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum.IGNITION_CYCLE_CHECK.getNumber()) {
        output.writeEnum(4, reason_);
      }
      if (!drmHash_.isEmpty()) {
        output.writeBytes(5, drmHash_);
      }
    }

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

      size = 0;
      if (!getVehicleIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, vehicleId_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetAdditionalModemParams().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        additionalModemParams__ = AdditionalModemParamsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, additionalModemParams__);
      }
      if (reason_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum.IGNITION_CYCLE_CHECK.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, reason_);
      }
      if (!drmHash_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, drmHash_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest other = (com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest) obj;

      boolean result = true;
      result = result && getVehicleId()
          .equals(other.getVehicleId());
      result = result && getDrmHash()
          .equals(other.getDrmHash());
      result = result && internalGetAdditionalModemParams().equals(
          other.internalGetAdditionalModemParams());
      result = result && reason_ == other.reason_;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VEHICLEID_FIELD_NUMBER;
      hash = (53 * hash) + getVehicleId().hashCode();
      hash = (37 * hash) + DRMHASH_FIELD_NUMBER;
      hash = (53 * hash) + getDrmHash().hashCode();
      if (!internalGetAdditionalModemParams().getMap().isEmpty()) {
        hash = (37 * hash) + ADDITIONALMODEMPARAMS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAdditionalModemParams().hashCode();
      }
      hash = (37 * hash) + REASON_FIELD_NUMBER;
      hash = (53 * hash) + reason_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ProvisioningRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ProvisioningRequest)
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningRequest_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 3:
            return internalGetAdditionalModemParams();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 3:
            return internalGetMutableAdditionalModemParams();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        drmHash_ = com.google.protobuf.ByteString.EMPTY;

        internalGetMutableAdditionalModemParams().clear();
        reason_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest result = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.vehicleId_ = vehicleId_;
        result.drmHash_ = drmHash_;
        result.additionalModemParams_ = internalGetAdditionalModemParams();
        result.additionalModemParams_.makeImmutable();
        result.reason_ = reason_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.getDefaultInstance()) return this;
        if (!other.getVehicleId().isEmpty()) {
          vehicleId_ = other.vehicleId_;
          onChanged();
        }
        if (other.getDrmHash() != com.google.protobuf.ByteString.EMPTY) {
          setDrmHash(other.getDrmHash());
        }
        internalGetMutableAdditionalModemParams().mergeFrom(
            other.internalGetAdditionalModemParams());
        if (other.reason_ != 0) {
          setReasonValue(other.getReasonValue());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object vehicleId_ = "";
      /**
       * <pre>
       *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public java.lang.String getVehicleId() {
        java.lang.Object ref = vehicleId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vehicleId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public com.google.protobuf.ByteString
          getVehicleIdBytes() {
        java.lang.Object ref = vehicleId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vehicleId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public Builder setVehicleId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        vehicleId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public Builder clearVehicleId() {
        
        vehicleId_ = getDefaultInstance().getVehicleId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public Builder setVehicleIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        vehicleId_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString drmHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * Device device = 2;
       * </pre>
       *
       * <code>bytes DrmHash = 5;</code>
       */
      public com.google.protobuf.ByteString getDrmHash() {
        return drmHash_;
      }
      /**
       * <pre>
       * Device device = 2;
       * </pre>
       *
       * <code>bytes DrmHash = 5;</code>
       */
      public Builder setDrmHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        drmHash_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Device device = 2;
       * </pre>
       *
       * <code>bytes DrmHash = 5;</code>
       */
      public Builder clearDrmHash() {
        
        drmHash_ = getDefaultInstance().getDrmHash();
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> additionalModemParams_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetAdditionalModemParams() {
        if (additionalModemParams_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AdditionalModemParamsDefaultEntryHolder.defaultEntry);
        }
        return additionalModemParams_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableAdditionalModemParams() {
        onChanged();;
        if (additionalModemParams_ == null) {
          additionalModemParams_ = com.google.protobuf.MapField.newMapField(
              AdditionalModemParamsDefaultEntryHolder.defaultEntry);
        }
        if (!additionalModemParams_.isMutable()) {
          additionalModemParams_ = additionalModemParams_.copy();
        }
        return additionalModemParams_;
      }

      public int getAdditionalModemParamsCount() {
        return internalGetAdditionalModemParams().getMap().size();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public boolean containsAdditionalModemParams(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetAdditionalModemParams().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAdditionalModemParamsMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParams() {
        return getAdditionalModemParamsMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParamsMap() {
        return internalGetAdditionalModemParams().getMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public java.lang.String getAdditionalModemParamsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAdditionalModemParams().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public java.lang.String getAdditionalModemParamsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAdditionalModemParams().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearAdditionalModemParams() {
        internalGetMutableAdditionalModemParams().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public Builder removeAdditionalModemParams(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAdditionalModemParams().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableAdditionalModemParams() {
        return internalGetMutableAdditionalModemParams().getMutableMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */
      public Builder putAdditionalModemParams(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAdditionalModemParams().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public Builder putAllAdditionalModemParams(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableAdditionalModemParams().getMutableMap()
            .putAll(values);
        return this;
      }

      private int reason_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
       */
      public int getReasonValue() {
        return reason_;
      }
      /**
       * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
       */
      public Builder setReasonValue(int value) {
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum getReason() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum.valueOf(reason_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
       */
      public Builder setReason(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest.ReasonEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        reason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;</code>
       */
      public Builder clearReason() {
        
        reason_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ProvisioningRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProvisioningResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ProvisioningResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
     */
    int getResponseEnumValue();
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum getResponseEnum();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * <pre>
   **
   * This message is sent as response to ProvisionRequest.
   *&lt;div class=exmsg-main&gt;
   *  &lt;h4&gt;ProvisioningResponse Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1488746450628
   * 		messageId: 101
   * 		correlationId: 301
   * 		messages
   * 		{
   * 		 provisioningResponse
   * 		 {
   * 			responseEnum: SUCCESS
   * 		 }
   * 		}
   *  &lt;/code&gt;
   * &lt;/div&gt;
   *&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ProvisioningResponse}
   */
  public  static final class ProvisioningResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ProvisioningResponse)
      ProvisioningResponseOrBuilder {
    // Use ProvisioningResponse.newBuilder() to construct.
    private ProvisioningResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProvisioningResponse() {
      responseEnum_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ProvisioningResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              responseEnum_ = rawValue;
              break;
            }
            case 16: {

              isTransient_ = input.readBool();
              break;
            }
            case 24: {

              failureReasonCode_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ProvisioningResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Response successful for provisioning.
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; Response failure for provisioning.
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      FAILURE(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Response successful for provisioning.
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; Response failure for provisioning.
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      public static final int FAILURE_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return FAILURE;
          default: return null;
        }
      }

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ProvisioningResponse.ResponseEnum)
    }

    public static final int RESPONSEENUM_FIELD_NUMBER = 1;
    private int responseEnum_;
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
     */
    public int getResponseEnumValue() {
      return responseEnum_;
    }
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum getResponseEnum() {
      com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum.valueOf(responseEnum_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum.UNRECOGNIZED : result;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 2;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 3;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (responseEnum_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(1, responseEnum_);
      }
      if (isTransient_ != false) {
        output.writeBool(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(3, failureReasonCode_);
      }
    }

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

      size = 0;
      if (responseEnum_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, responseEnum_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, failureReasonCode_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse other = (com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse) obj;

      boolean result = true;
      result = result && responseEnum_ == other.responseEnum_;
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSEENUM_FIELD_NUMBER;
      hash = (53 * hash) + responseEnum_;
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message is sent as response to ProvisionRequest.
     *&lt;div class=exmsg-main&gt;
     *  &lt;h4&gt;ProvisioningResponse Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1488746450628
     * 		messageId: 101
     * 		correlationId: 301
     * 		messages
     * 		{
     * 		 provisioningResponse
     * 		 {
     * 			responseEnum: SUCCESS
     * 		 }
     * 		}
     *  &lt;/code&gt;
     * &lt;/div&gt;
     *&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ProvisioningResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ProvisioningResponse)
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        responseEnum_ = 0;

        isTransient_ = false;

        failureReasonCode_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningResponse_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse result = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse(this);
        result.responseEnum_ = responseEnum_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.getDefaultInstance()) return this;
        if (other.responseEnum_ != 0) {
          setResponseEnumValue(other.getResponseEnumValue());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private int responseEnum_ = 0;
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
       */
      public int getResponseEnumValue() {
        return responseEnum_;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
       */
      public Builder setResponseEnumValue(int value) {
        responseEnum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum getResponseEnum() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum.valueOf(responseEnum_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
       */
      public Builder setResponseEnum(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        responseEnum_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;</code>
       */
      public Builder clearResponseEnum() {
        
        responseEnum_ = 0;
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ProvisioningResponse)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningResponse)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProvisioningPushOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ProvisioningPush)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47;Added Params to support APAC
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
     */
    boolean hasServiceSubscription();
    /**
     * <pre>
     *&#47;Added Params to support APAC
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo getServiceSubscription();
    /**
     * <pre>
     *&#47;Added Params to support APAC
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfoOrBuilder getServiceSubscriptionOrBuilder();

    /**
     * <pre>
     *&#47; DRM content to support provisioning applications.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
     */
    boolean hasDrm();
    /**
     * <pre>
     *&#47; DRM content to support provisioning applications.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDRM.DRM getDrm();
    /**
     * <pre>
     *&#47; DRM content to support provisioning applications.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDRM.DRMOrBuilder getDrmOrBuilder();

    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int64 timestamp = 3;</code>
     */
    long getTimestamp();

    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 messageId = 4;</code>
     */
    int getMessageId();

    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 signatureId = 5;</code>
     */
    int getSignatureId();

    /**
     * <pre>
     *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
     */
    boolean hasBimdPSK();
    /**
     * <pre>
     *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo getBimdPSK();
    /**
     * <pre>
     *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfoOrBuilder getBimdPSKOrBuilder();
  }
  /**
   * <pre>
   **
   * This is for asynchronously pushing the provisioning with services  and/or BIMDPSKInfo.
   *&lt;div class=exmsg-main&gt;
   * &lt;h4&gt;ProvisioningPush Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1488828296489
   * 		messageId: 102
   *		correlationId: 301
   * 		messages
   * 		{
   * 		provisioningPush
   * 		 {
   * 		   drm
   *         {
   *           drmFile:"fgnbooe8y73nfmlsi0iufnjej876reef=="
   * 		   }
   * 		 }
   * 		}
   * &lt;/code&gt;
   * &lt;/div&gt;
   *&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ProvisioningPush}
   */
  public  static final class ProvisioningPush extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ProvisioningPush)
      ProvisioningPushOrBuilder {
    // Use ProvisioningPush.newBuilder() to construct.
    private ProvisioningPush(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProvisioningPush() {
      timestamp_ = 0L;
      messageId_ = 0;
      signatureId_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ProvisioningPush(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder subBuilder = null;
              if (serviceSubscription_ != null) {
                subBuilder = serviceSubscription_.toBuilder();
              }
              serviceSubscription_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(serviceSubscription_);
                serviceSubscription_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.fca.uconnect.global.GlobalUconnectDRM.DRM.Builder subBuilder = null;
              if (drm_ != null) {
                subBuilder = drm_.toBuilder();
              }
              drm_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectDRM.DRM.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(drm_);
                drm_ = subBuilder.buildPartial();
              }

              break;
            }
            case 24: {

              timestamp_ = input.readInt64();
              break;
            }
            case 32: {

              messageId_ = input.readInt32();
              break;
            }
            case 40: {

              signatureId_ = input.readInt32();
              break;
            }
            case 50: {
              com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder subBuilder = null;
              if (bimdPSK_ != null) {
                subBuilder = bimdPSK_.toBuilder();
              }
              bimdPSK_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(bimdPSK_);
                bimdPSK_ = subBuilder.buildPartial();
              }

              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPush_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPush_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush.Builder.class);
    }

    public static final int SERVICESUBSCRIPTION_FIELD_NUMBER = 1;
    private com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo serviceSubscription_;
    /**
     * <pre>
     *&#47;Added Params to support APAC
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
     */
    public boolean hasServiceSubscription() {
      return serviceSubscription_ != null;
    }
    /**
     * <pre>
     *&#47;Added Params to support APAC
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo getServiceSubscription() {
      return serviceSubscription_ == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.getDefaultInstance() : serviceSubscription_;
    }
    /**
     * <pre>
     *&#47;Added Params to support APAC
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfoOrBuilder getServiceSubscriptionOrBuilder() {
      return getServiceSubscription();
    }

    public static final int DRM_FIELD_NUMBER = 2;
    private com.fca.uconnect.global.GlobalUconnectDRM.DRM drm_;
    /**
     * <pre>
     *&#47; DRM content to support provisioning applications.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
     */
    public boolean hasDrm() {
      return drm_ != null;
    }
    /**
     * <pre>
     *&#47; DRM content to support provisioning applications.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDRM.DRM getDrm() {
      return drm_ == null ? com.fca.uconnect.global.GlobalUconnectDRM.DRM.getDefaultInstance() : drm_;
    }
    /**
     * <pre>
     *&#47; DRM content to support provisioning applications.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDRM.DRMOrBuilder getDrmOrBuilder() {
      return getDrm();
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 3;
    private long timestamp_;
    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int64 timestamp = 3;</code>
     */
    public long getTimestamp() {
      return timestamp_;
    }

    public static final int MESSAGEID_FIELD_NUMBER = 4;
    private int messageId_;
    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 messageId = 4;</code>
     */
    public int getMessageId() {
      return messageId_;
    }

    public static final int SIGNATUREID_FIELD_NUMBER = 5;
    private int signatureId_;
    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 signatureId = 5;</code>
     */
    public int getSignatureId() {
      return signatureId_;
    }

    public static final int BIMDPSK_FIELD_NUMBER = 6;
    private com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo bimdPSK_;
    /**
     * <pre>
     *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
     */
    public boolean hasBimdPSK() {
      return bimdPSK_ != null;
    }
    /**
     * <pre>
     *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo getBimdPSK() {
      return bimdPSK_ == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.getDefaultInstance() : bimdPSK_;
    }
    /**
     * <pre>
     *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfoOrBuilder getBimdPSKOrBuilder() {
      return getBimdPSK();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (serviceSubscription_ != null) {
        output.writeMessage(1, getServiceSubscription());
      }
      if (drm_ != null) {
        output.writeMessage(2, getDrm());
      }
      if (timestamp_ != 0L) {
        output.writeInt64(3, timestamp_);
      }
      if (messageId_ != 0) {
        output.writeInt32(4, messageId_);
      }
      if (signatureId_ != 0) {
        output.writeInt32(5, signatureId_);
      }
      if (bimdPSK_ != null) {
        output.writeMessage(6, getBimdPSK());
      }
    }

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

      size = 0;
      if (serviceSubscription_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getServiceSubscription());
      }
      if (drm_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getDrm());
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, timestamp_);
      }
      if (messageId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, messageId_);
      }
      if (signatureId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, signatureId_);
      }
      if (bimdPSK_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getBimdPSK());
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush other = (com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush) obj;

      boolean result = true;
      result = result && (hasServiceSubscription() == other.hasServiceSubscription());
      if (hasServiceSubscription()) {
        result = result && getServiceSubscription()
            .equals(other.getServiceSubscription());
      }
      result = result && (hasDrm() == other.hasDrm());
      if (hasDrm()) {
        result = result && getDrm()
            .equals(other.getDrm());
      }
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && (getMessageId()
          == other.getMessageId());
      result = result && (getSignatureId()
          == other.getSignatureId());
      result = result && (hasBimdPSK() == other.hasBimdPSK());
      if (hasBimdPSK()) {
        result = result && getBimdPSK()
            .equals(other.getBimdPSK());
      }
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasServiceSubscription()) {
        hash = (37 * hash) + SERVICESUBSCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getServiceSubscription().hashCode();
      }
      if (hasDrm()) {
        hash = (37 * hash) + DRM_FIELD_NUMBER;
        hash = (53 * hash) + getDrm().hashCode();
      }
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (37 * hash) + MESSAGEID_FIELD_NUMBER;
      hash = (53 * hash) + getMessageId();
      hash = (37 * hash) + SIGNATUREID_FIELD_NUMBER;
      hash = (53 * hash) + getSignatureId();
      if (hasBimdPSK()) {
        hash = (37 * hash) + BIMDPSK_FIELD_NUMBER;
        hash = (53 * hash) + getBimdPSK().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This is for asynchronously pushing the provisioning with services  and/or BIMDPSKInfo.
     *&lt;div class=exmsg-main&gt;
     * &lt;h4&gt;ProvisioningPush Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1488828296489
     * 		messageId: 102
     *		correlationId: 301
     * 		messages
     * 		{
     * 		provisioningPush
     * 		 {
     * 		   drm
     *         {
     *           drmFile:"fgnbooe8y73nfmlsi0iufnjej876reef=="
     * 		   }
     * 		 }
     * 		}
     * &lt;/code&gt;
     * &lt;/div&gt;
     *&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ProvisioningPush}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ProvisioningPush)
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPush_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPush_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (serviceSubscriptionBuilder_ == null) {
          serviceSubscription_ = null;
        } else {
          serviceSubscription_ = null;
          serviceSubscriptionBuilder_ = null;
        }
        if (drmBuilder_ == null) {
          drm_ = null;
        } else {
          drm_ = null;
          drmBuilder_ = null;
        }
        timestamp_ = 0L;

        messageId_ = 0;

        signatureId_ = 0;

        if (bimdPSKBuilder_ == null) {
          bimdPSK_ = null;
        } else {
          bimdPSK_ = null;
          bimdPSKBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPush_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush result = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush(this);
        if (serviceSubscriptionBuilder_ == null) {
          result.serviceSubscription_ = serviceSubscription_;
        } else {
          result.serviceSubscription_ = serviceSubscriptionBuilder_.build();
        }
        if (drmBuilder_ == null) {
          result.drm_ = drm_;
        } else {
          result.drm_ = drmBuilder_.build();
        }
        result.timestamp_ = timestamp_;
        result.messageId_ = messageId_;
        result.signatureId_ = signatureId_;
        if (bimdPSKBuilder_ == null) {
          result.bimdPSK_ = bimdPSK_;
        } else {
          result.bimdPSK_ = bimdPSKBuilder_.build();
        }
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush.getDefaultInstance()) return this;
        if (other.hasServiceSubscription()) {
          mergeServiceSubscription(other.getServiceSubscription());
        }
        if (other.hasDrm()) {
          mergeDrm(other.getDrm());
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        if (other.getMessageId() != 0) {
          setMessageId(other.getMessageId());
        }
        if (other.getSignatureId() != 0) {
          setSignatureId(other.getSignatureId());
        }
        if (other.hasBimdPSK()) {
          mergeBimdPSK(other.getBimdPSK());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo serviceSubscription_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfoOrBuilder> serviceSubscriptionBuilder_;
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public boolean hasServiceSubscription() {
        return serviceSubscriptionBuilder_ != null || serviceSubscription_ != null;
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo getServiceSubscription() {
        if (serviceSubscriptionBuilder_ == null) {
          return serviceSubscription_ == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.getDefaultInstance() : serviceSubscription_;
        } else {
          return serviceSubscriptionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public Builder setServiceSubscription(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo value) {
        if (serviceSubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          serviceSubscription_ = value;
          onChanged();
        } else {
          serviceSubscriptionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public Builder setServiceSubscription(
          com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder builderForValue) {
        if (serviceSubscriptionBuilder_ == null) {
          serviceSubscription_ = builderForValue.build();
          onChanged();
        } else {
          serviceSubscriptionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public Builder mergeServiceSubscription(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo value) {
        if (serviceSubscriptionBuilder_ == null) {
          if (serviceSubscription_ != null) {
            serviceSubscription_ =
              com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.newBuilder(serviceSubscription_).mergeFrom(value).buildPartial();
          } else {
            serviceSubscription_ = value;
          }
          onChanged();
        } else {
          serviceSubscriptionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public Builder clearServiceSubscription() {
        if (serviceSubscriptionBuilder_ == null) {
          serviceSubscription_ = null;
          onChanged();
        } else {
          serviceSubscription_ = null;
          serviceSubscriptionBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder getServiceSubscriptionBuilder() {
        
        onChanged();
        return getServiceSubscriptionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfoOrBuilder getServiceSubscriptionOrBuilder() {
        if (serviceSubscriptionBuilder_ != null) {
          return serviceSubscriptionBuilder_.getMessageOrBuilder();
        } else {
          return serviceSubscription_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.getDefaultInstance() : serviceSubscription_;
        }
      }
      /**
       * <pre>
       *&#47;Added Params to support APAC
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfoOrBuilder> 
          getServiceSubscriptionFieldBuilder() {
        if (serviceSubscriptionBuilder_ == null) {
          serviceSubscriptionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfoOrBuilder>(
                  getServiceSubscription(),
                  getParentForChildren(),
                  isClean());
          serviceSubscription_ = null;
        }
        return serviceSubscriptionBuilder_;
      }

      private com.fca.uconnect.global.GlobalUconnectDRM.DRM drm_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectDRM.DRM, com.fca.uconnect.global.GlobalUconnectDRM.DRM.Builder, com.fca.uconnect.global.GlobalUconnectDRM.DRMOrBuilder> drmBuilder_;
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public boolean hasDrm() {
        return drmBuilder_ != null || drm_ != null;
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDRM.DRM getDrm() {
        if (drmBuilder_ == null) {
          return drm_ == null ? com.fca.uconnect.global.GlobalUconnectDRM.DRM.getDefaultInstance() : drm_;
        } else {
          return drmBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public Builder setDrm(com.fca.uconnect.global.GlobalUconnectDRM.DRM value) {
        if (drmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          drm_ = value;
          onChanged();
        } else {
          drmBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public Builder setDrm(
          com.fca.uconnect.global.GlobalUconnectDRM.DRM.Builder builderForValue) {
        if (drmBuilder_ == null) {
          drm_ = builderForValue.build();
          onChanged();
        } else {
          drmBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public Builder mergeDrm(com.fca.uconnect.global.GlobalUconnectDRM.DRM value) {
        if (drmBuilder_ == null) {
          if (drm_ != null) {
            drm_ =
              com.fca.uconnect.global.GlobalUconnectDRM.DRM.newBuilder(drm_).mergeFrom(value).buildPartial();
          } else {
            drm_ = value;
          }
          onChanged();
        } else {
          drmBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public Builder clearDrm() {
        if (drmBuilder_ == null) {
          drm_ = null;
          onChanged();
        } else {
          drm_ = null;
          drmBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDRM.DRM.Builder getDrmBuilder() {
        
        onChanged();
        return getDrmFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDRM.DRMOrBuilder getDrmOrBuilder() {
        if (drmBuilder_ != null) {
          return drmBuilder_.getMessageOrBuilder();
        } else {
          return drm_ == null ?
              com.fca.uconnect.global.GlobalUconnectDRM.DRM.getDefaultInstance() : drm_;
        }
      }
      /**
       * <pre>
       *&#47; DRM content to support provisioning applications.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.DRM drm = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectDRM.DRM, com.fca.uconnect.global.GlobalUconnectDRM.DRM.Builder, com.fca.uconnect.global.GlobalUconnectDRM.DRMOrBuilder> 
          getDrmFieldBuilder() {
        if (drmBuilder_ == null) {
          drmBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectDRM.DRM, com.fca.uconnect.global.GlobalUconnectDRM.DRM.Builder, com.fca.uconnect.global.GlobalUconnectDRM.DRMOrBuilder>(
                  getDrm(),
                  getParentForChildren(),
                  isClean());
          drm_ = null;
        }
        return drmBuilder_;
      }

      private long timestamp_ ;
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int64 timestamp = 3;</code>
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int64 timestamp = 3;</code>
       */
      public Builder setTimestamp(long value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int64 timestamp = 3;</code>
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0L;
        onChanged();
        return this;
      }

      private int messageId_ ;
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 messageId = 4;</code>
       */
      public int getMessageId() {
        return messageId_;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 messageId = 4;</code>
       */
      public Builder setMessageId(int value) {
        
        messageId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 messageId = 4;</code>
       */
      public Builder clearMessageId() {
        
        messageId_ = 0;
        onChanged();
        return this;
      }

      private int signatureId_ ;
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 signatureId = 5;</code>
       */
      public int getSignatureId() {
        return signatureId_;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 signatureId = 5;</code>
       */
      public Builder setSignatureId(int value) {
        
        signatureId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 signatureId = 5;</code>
       */
      public Builder clearSignatureId() {
        
        signatureId_ = 0;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo bimdPSK_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfoOrBuilder> bimdPSKBuilder_;
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public boolean hasBimdPSK() {
        return bimdPSKBuilder_ != null || bimdPSK_ != null;
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo getBimdPSK() {
        if (bimdPSKBuilder_ == null) {
          return bimdPSK_ == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.getDefaultInstance() : bimdPSK_;
        } else {
          return bimdPSKBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public Builder setBimdPSK(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo value) {
        if (bimdPSKBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          bimdPSK_ = value;
          onChanged();
        } else {
          bimdPSKBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public Builder setBimdPSK(
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder builderForValue) {
        if (bimdPSKBuilder_ == null) {
          bimdPSK_ = builderForValue.build();
          onChanged();
        } else {
          bimdPSKBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public Builder mergeBimdPSK(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo value) {
        if (bimdPSKBuilder_ == null) {
          if (bimdPSK_ != null) {
            bimdPSK_ =
              com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.newBuilder(bimdPSK_).mergeFrom(value).buildPartial();
          } else {
            bimdPSK_ = value;
          }
          onChanged();
        } else {
          bimdPSKBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public Builder clearBimdPSK() {
        if (bimdPSKBuilder_ == null) {
          bimdPSK_ = null;
          onChanged();
        } else {
          bimdPSK_ = null;
          bimdPSKBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder getBimdPSKBuilder() {
        
        onChanged();
        return getBimdPSKFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfoOrBuilder getBimdPSKOrBuilder() {
        if (bimdPSKBuilder_ != null) {
          return bimdPSKBuilder_.getMessageOrBuilder();
        } else {
          return bimdPSK_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.getDefaultInstance() : bimdPSK_;
        }
      }
      /**
       * <pre>
       *&#47;Provides TLS-PSK Tokens for secure connection with Mobile Devices.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfoOrBuilder> 
          getBimdPSKFieldBuilder() {
        if (bimdPSKBuilder_ == null) {
          bimdPSKBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfoOrBuilder>(
                  getBimdPSK(),
                  getParentForChildren(),
                  isClean());
          bimdPSK_ = null;
        }
        return bimdPSKBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ProvisioningPush)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningPush)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPush getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProvisioningPushAckOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ProvisioningPushAck)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
     */
    int getResponseValue();
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * <pre>
   **
   * This message is to acknowledge ProvisioningPush message .
   *&lt;div class=exmsg-main&gt;
   * &lt;h4&gt;ProvisioningPushAck Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1488828296500
   * 		messageId: 302
   *		correlationId: 102
   * 		messages
   * 		{
   * 			provisioningPushAck
   * 		 {
   * 		   response:SUCCESS
   * 		 }
   * 		}
   * &lt;/code&gt;
   * &lt;/div&gt;
   *&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ProvisioningPushAck}
   */
  public  static final class ProvisioningPushAck extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ProvisioningPushAck)
      ProvisioningPushAckOrBuilder {
    // Use ProvisioningPushAck.newBuilder() to construct.
    private ProvisioningPushAck(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProvisioningPushAck() {
      response_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ProvisioningPushAck(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
            case 16: {

              isTransient_ = input.readBool();
              break;
            }
            case 24: {

              failureReasonCode_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPushAck_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPushAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum}
     */
    public enum ProvisioningPushResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <code>FAILURE = 1;</code>
       */
      FAILURE(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <code>FAILURE = 1;</code>
       */
      public static final int FAILURE_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ProvisioningPushResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ProvisioningPushResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return FAILURE;
          default: return null;
        }
      }

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum)
    }

    public static final int RESPONSE_FIELD_NUMBER = 1;
    private int response_;
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum.UNRECOGNIZED : result;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 2;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 3;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(1, response_);
      }
      if (isTransient_ != false) {
        output.writeBool(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(3, failureReasonCode_);
      }
    }

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

      size = 0;
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, response_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, failureReasonCode_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck other = (com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck) obj;

      boolean result = true;
      result = result && response_ == other.response_;
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message is to acknowledge ProvisioningPush message .
     *&lt;div class=exmsg-main&gt;
     * &lt;h4&gt;ProvisioningPushAck Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1488828296500
     * 		messageId: 302
     *		correlationId: 102
     * 		messages
     * 		{
     * 			provisioningPushAck
     * 		 {
     * 		   response:SUCCESS
     * 		 }
     * 		}
     * &lt;/code&gt;
     * &lt;/div&gt;
     *&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ProvisioningPushAck}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ProvisioningPushAck)
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAckOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPushAck_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPushAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        response_ = 0;

        isTransient_ = false;

        failureReasonCode_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ProvisioningPushAck_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck result = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck(this);
        result.response_ = response_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.getDefaultInstance()) return this;
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private int response_ = 0;
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck.ProvisioningPushResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ProvisioningPushAck)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningPushAck)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.ProvisioningPushAck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ServiceDescriptionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ServiceDescription)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; The type of service being provisioned/activated
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
     */
    int getServiceTypeValue();
    /**
     * <pre>
     *&#47; The type of service being provisioned/activated
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum getServiceType();

    /**
     * <pre>
     *&#47; The service being provisioned/activated is considered active from the time this message is received until the expire time, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
     * </pre>
     *
     * <code>int64 expireTime = 2;</code>
     */
    long getExpireTime();

    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */
    int getAdditionalParametersCount();
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */
    boolean containsAdditionalParameters(
        java.lang.String key);
    /**
     * Use {@link #getAdditionalParametersMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalParameters();
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalParametersMap();
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */

    java.lang.String getAdditionalParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */

    java.lang.String getAdditionalParametersOrThrow(
        java.lang.String key);

    /**
     * <pre>
     *&#47; This is to define whether service is Active/InActive.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
     */
    int getStatusValue();
    /**
     * <pre>
     *&#47; This is to define whether service is Active/InActive.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status getStatus();

    /**
     * <pre>
     *&#47; Service version number 
     * </pre>
     *
     * <code>int32 version = 5;</code>
     */
    int getVersion();

    /**
     * <pre>
     *&#47; Content ID
     * </pre>
     *
     * <code>int32 contentId = 6;</code>
     */
    int getContentId();

    /**
     * <pre>
     *&#47; Application ID
     * </pre>
     *
     * <code>string appIdentifier = 7;</code>
     */
    java.lang.String getAppIdentifier();
    /**
     * <pre>
     *&#47; Application ID
     * </pre>
     *
     * <code>string appIdentifier = 7;</code>
     */
    com.google.protobuf.ByteString
        getAppIdentifierBytes();

    /**
     * <pre>
     *&#47; App Launcher Mask (auto start, manual)
     * </pre>
     *
     * <code>int32 appLauncherMask = 8;</code>
     */
    int getAppLauncherMask();

    /**
     * <pre>
     *&#47; Installer type 
     * </pre>
     *
     * <code>string installerType = 9;</code>
     */
    java.lang.String getInstallerType();
    /**
     * <pre>
     *&#47; Installer type 
     * </pre>
     *
     * <code>string installerType = 9;</code>
     */
    com.google.protobuf.ByteString
        getInstallerTypeBytes();

    /**
     * <pre>
     *&#47; Account DN 
     * </pre>
     *
     * <code>string accountDN = 10;</code>
     */
    java.lang.String getAccountDN();
    /**
     * <pre>
     *&#47; Account DN 
     * </pre>
     *
     * <code>string accountDN = 10;</code>
     */
    com.google.protobuf.ByteString
        getAccountDNBytes();

    /**
     * <pre>
     *&#47; fileLength
     * </pre>
     *
     * <code>int32 fileLength = 11;</code>
     */
    int getFileLength();

    /**
     * <pre>
     *&#47; Checksum data
     * </pre>
     *
     * <code>int32 fileChecksum = 12;</code>
     */
    int getFileChecksum();

    /**
     * <pre>
     *&#47; Feature Mask
     * </pre>
     *
     * <code>string featureMask = 13;</code>
     */
    java.lang.String getFeatureMask();
    /**
     * <pre>
     *&#47; Feature Mask
     * </pre>
     *
     * <code>string featureMask = 13;</code>
     */
    com.google.protobuf.ByteString
        getFeatureMaskBytes();

    /**
     * <pre>
     *&#47; DRM expiration Time Begin
     * </pre>
     *
     * <code>int64 expirexTimeSpanBegiTimeSpanBegin = 14;</code>
     */
    long getExpirexTimeSpanBegiTimeSpanBegin();

    /**
     * <pre>
     *&#47; DRM  Time Span End
     * </pre>
     *
     * <code>int64 expireTimeSpanEnd = 15;</code>
     */
    long getExpireTimeSpanEnd();

    /**
     * <pre>
     *&#47;Email ID
     * </pre>
     *
     * <code>string emailId = 16;</code>
     */
    java.lang.String getEmailId();
    /**
     * <pre>
     *&#47;Email ID
     * </pre>
     *
     * <code>string emailId = 16;</code>
     */
    com.google.protobuf.ByteString
        getEmailIdBytes();
  }
  /**
   * <pre>
   *&#47;&#42;*
   ** This Message represents the Service name and expiration time that Service is going to expire
   **&#47;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ServiceDescription}
   */
  public  static final class ServiceDescription extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ServiceDescription)
      ServiceDescriptionOrBuilder {
    // Use ServiceDescription.newBuilder() to construct.
    private ServiceDescription(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ServiceDescription() {
      serviceType_ = 0;
      expireTime_ = 0L;
      status_ = 0;
      version_ = 0;
      contentId_ = 0;
      appIdentifier_ = "";
      appLauncherMask_ = 0;
      installerType_ = "";
      accountDN_ = "";
      fileLength_ = 0;
      fileChecksum_ = 0;
      featureMask_ = "";
      expirexTimeSpanBegiTimeSpanBegin_ = 0L;
      expireTimeSpanEnd_ = 0L;
      emailId_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ServiceDescription(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              serviceType_ = rawValue;
              break;
            }
            case 16: {

              expireTime_ = input.readInt64();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                additionalParameters_ = com.google.protobuf.MapField.newMapField(
                    AdditionalParametersDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000004;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              additionalParameters__ = input.readMessage(
                  AdditionalParametersDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              additionalParameters_.getMutableMap().put(
                  additionalParameters__.getKey(), additionalParameters__.getValue());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();

              status_ = rawValue;
              break;
            }
            case 40: {

              version_ = input.readInt32();
              break;
            }
            case 48: {

              contentId_ = input.readInt32();
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();

              appIdentifier_ = s;
              break;
            }
            case 64: {

              appLauncherMask_ = input.readInt32();
              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();

              installerType_ = s;
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();

              accountDN_ = s;
              break;
            }
            case 88: {

              fileLength_ = input.readInt32();
              break;
            }
            case 96: {

              fileChecksum_ = input.readInt32();
              break;
            }
            case 106: {
              java.lang.String s = input.readStringRequireUtf8();

              featureMask_ = s;
              break;
            }
            case 112: {

              expirexTimeSpanBegiTimeSpanBegin_ = input.readInt64();
              break;
            }
            case 120: {

              expireTimeSpanEnd_ = input.readInt64();
              break;
            }
            case 130: {
              java.lang.String s = input.readStringRequireUtf8();

              emailId_ = s;
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceDescription_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 3:
          return internalGetAdditionalParameters();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceDescription_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum}
     */
    public enum ServiceTypeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Wifi service.
       * </pre>
       *
       * <code>WIFIHOTSPOT = 0;</code>
       */
      WIFIHOTSPOT(0),
      /**
       * <pre>
       *&#47; Emergency Call service.
       * </pre>
       *
       * <code>ECALL = 1;</code>
       */
      ECALL(1),
      /**
       * <pre>
       *&#47;Road side assistance service.
       * </pre>
       *
       * <code>ROADSIDEASSIST = 2;</code>
       */
      ROADSIDEASSIST(2),
      /**
       * <pre>
       *&#47; This service notifies when Theft alarm is enabled.
       * </pre>
       *
       * <code>THEFTALARMNOTIFICATION = 3;</code>
       */
      THEFTALARMNOTIFICATION(3),
      /**
       * <pre>
       *&#47; This is for stolen vehicle assistance.
       * </pre>
       *
       * <code>STOLENVEHICLEASSIST = 4;</code>
       */
      STOLENVEHICLEASSIST(4),
      /**
       * <pre>
       *&#47; This is for sending destination location to car.
       * </pre>
       *
       * <code>SENDDESTINATIONTOCAR = 5;</code>
       */
      SENDDESTINATIONTOCAR(5),
      /**
       * <pre>
       *&#47; This service finds vehicle location.
       * </pre>
       *
       * <code>VEHICLEFINDER = 6;</code>
       */
      VEHICLEFINDER(6),
      /**
       * <pre>
       *&#47; This service enables Remote Door Lock/Unlock opertions.
       * </pre>
       *
       * <code>REMOTEDOORCONTROL = 7;</code>
       */
      REMOTEDOORCONTROL(7),
      /**
       * <pre>
       *&#47; This service enables Remote Start/Stop opertions.
       * </pre>
       *
       * <code>REMOTEENGINESTART = 8;</code>
       */
      REMOTEENGINESTART(8),
      /**
       * <pre>
       *&#47; This service enables Remote Horn and lights opertions.
       * </pre>
       *
       * <code>REMOTEHORNANDFLASH = 9;</code>
       */
      REMOTEHORNANDFLASH(9),
      /**
       * <pre>
       *&#47;This Service enables Radio Presets.
       * </pre>
       *
       * <code>RADIOPRESETS = 10;</code>
       */
      RADIOPRESETS(10),
      /**
       * <pre>
       *&#47;This service enables to favorite Songs/bands/Teams.
       * </pre>
       *
       * <code>MUSICFAVORITES = 11;</code>
       */
      MUSICFAVORITES(11),
      /**
       * <pre>
       *&#47;This service enables Temperature settings.
       * </pre>
       *
       * <code>TEMPERATURE = 12;</code>
       */
      TEMPERATURE(12),
      /**
       * <pre>
       *&#47;This service enables Heating or cooling Seats.
       * </pre>
       *
       * <code>HEATEDCOOLEDSEATS = 13;</code>
       */
      HEATEDCOOLEDSEATS(13),
      /**
       * <pre>
       *&#47;This service enables Heating Steering Wheel.
       * </pre>
       *
       * <code>HEATEDSTEERINGWHEEL = 14;</code>
       */
      HEATEDSTEERINGWHEEL(14),
      /**
       * <pre>
       *&#47; Connected Vehicle Service
       * </pre>
       *
       * <code>CONNECTEDVEHICLE = 15;</code>
       */
      CONNECTEDVEHICLE(15),
      /**
       * <pre>
       *&#47; This service enables SQDF
       * </pre>
       *
       * <code>SQDF = 16;</code>
       */
      SQDF(16),
      /**
       * <pre>
       *&#47; This service enables Fleet Telematics 
       * </pre>
       *
       * <code>FTM = 17;</code>
       */
      FTM(17),
      /**
       * <pre>
       *&#47;This service represents PHEV Data.
       * </pre>
       *
       * <code>EVDATACHN = 18;</code>
       */
      EVDATACHN(18),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Wifi service.
       * </pre>
       *
       * <code>WIFIHOTSPOT = 0;</code>
       */
      public static final int WIFIHOTSPOT_VALUE = 0;
      /**
       * <pre>
       *&#47; Emergency Call service.
       * </pre>
       *
       * <code>ECALL = 1;</code>
       */
      public static final int ECALL_VALUE = 1;
      /**
       * <pre>
       *&#47;Road side assistance service.
       * </pre>
       *
       * <code>ROADSIDEASSIST = 2;</code>
       */
      public static final int ROADSIDEASSIST_VALUE = 2;
      /**
       * <pre>
       *&#47; This service notifies when Theft alarm is enabled.
       * </pre>
       *
       * <code>THEFTALARMNOTIFICATION = 3;</code>
       */
      public static final int THEFTALARMNOTIFICATION_VALUE = 3;
      /**
       * <pre>
       *&#47; This is for stolen vehicle assistance.
       * </pre>
       *
       * <code>STOLENVEHICLEASSIST = 4;</code>
       */
      public static final int STOLENVEHICLEASSIST_VALUE = 4;
      /**
       * <pre>
       *&#47; This is for sending destination location to car.
       * </pre>
       *
       * <code>SENDDESTINATIONTOCAR = 5;</code>
       */
      public static final int SENDDESTINATIONTOCAR_VALUE = 5;
      /**
       * <pre>
       *&#47; This service finds vehicle location.
       * </pre>
       *
       * <code>VEHICLEFINDER = 6;</code>
       */
      public static final int VEHICLEFINDER_VALUE = 6;
      /**
       * <pre>
       *&#47; This service enables Remote Door Lock/Unlock opertions.
       * </pre>
       *
       * <code>REMOTEDOORCONTROL = 7;</code>
       */
      public static final int REMOTEDOORCONTROL_VALUE = 7;
      /**
       * <pre>
       *&#47; This service enables Remote Start/Stop opertions.
       * </pre>
       *
       * <code>REMOTEENGINESTART = 8;</code>
       */
      public static final int REMOTEENGINESTART_VALUE = 8;
      /**
       * <pre>
       *&#47; This service enables Remote Horn and lights opertions.
       * </pre>
       *
       * <code>REMOTEHORNANDFLASH = 9;</code>
       */
      public static final int REMOTEHORNANDFLASH_VALUE = 9;
      /**
       * <pre>
       *&#47;This Service enables Radio Presets.
       * </pre>
       *
       * <code>RADIOPRESETS = 10;</code>
       */
      public static final int RADIOPRESETS_VALUE = 10;
      /**
       * <pre>
       *&#47;This service enables to favorite Songs/bands/Teams.
       * </pre>
       *
       * <code>MUSICFAVORITES = 11;</code>
       */
      public static final int MUSICFAVORITES_VALUE = 11;
      /**
       * <pre>
       *&#47;This service enables Temperature settings.
       * </pre>
       *
       * <code>TEMPERATURE = 12;</code>
       */
      public static final int TEMPERATURE_VALUE = 12;
      /**
       * <pre>
       *&#47;This service enables Heating or cooling Seats.
       * </pre>
       *
       * <code>HEATEDCOOLEDSEATS = 13;</code>
       */
      public static final int HEATEDCOOLEDSEATS_VALUE = 13;
      /**
       * <pre>
       *&#47;This service enables Heating Steering Wheel.
       * </pre>
       *
       * <code>HEATEDSTEERINGWHEEL = 14;</code>
       */
      public static final int HEATEDSTEERINGWHEEL_VALUE = 14;
      /**
       * <pre>
       *&#47; Connected Vehicle Service
       * </pre>
       *
       * <code>CONNECTEDVEHICLE = 15;</code>
       */
      public static final int CONNECTEDVEHICLE_VALUE = 15;
      /**
       * <pre>
       *&#47; This service enables SQDF
       * </pre>
       *
       * <code>SQDF = 16;</code>
       */
      public static final int SQDF_VALUE = 16;
      /**
       * <pre>
       *&#47; This service enables Fleet Telematics 
       * </pre>
       *
       * <code>FTM = 17;</code>
       */
      public static final int FTM_VALUE = 17;
      /**
       * <pre>
       *&#47;This service represents PHEV Data.
       * </pre>
       *
       * <code>EVDATACHN = 18;</code>
       */
      public static final int EVDATACHN_VALUE = 18;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ServiceTypeEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ServiceTypeEnum forNumber(int value) {
        switch (value) {
          case 0: return WIFIHOTSPOT;
          case 1: return ECALL;
          case 2: return ROADSIDEASSIST;
          case 3: return THEFTALARMNOTIFICATION;
          case 4: return STOLENVEHICLEASSIST;
          case 5: return SENDDESTINATIONTOCAR;
          case 6: return VEHICLEFINDER;
          case 7: return REMOTEDOORCONTROL;
          case 8: return REMOTEENGINESTART;
          case 9: return REMOTEHORNANDFLASH;
          case 10: return RADIOPRESETS;
          case 11: return MUSICFAVORITES;
          case 12: return TEMPERATURE;
          case 13: return HEATEDCOOLEDSEATS;
          case 14: return HEATEDSTEERINGWHEEL;
          case 15: return CONNECTEDVEHICLE;
          case 16: return SQDF;
          case 17: return FTM;
          case 18: return EVDATACHN;
          default: return null;
        }
      }

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ServiceDescription.Status}
     */
    public enum Status
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47;Service is not active.
       * </pre>
       *
       * <code>INACTIVE = 0;</code>
       */
      INACTIVE(0),
      /**
       * <pre>
       *&#47;Service is active.
       * </pre>
       *
       * <code>ACTIVE = 1;</code>
       */
      ACTIVE(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47;Service is not active.
       * </pre>
       *
       * <code>INACTIVE = 0;</code>
       */
      public static final int INACTIVE_VALUE = 0;
      /**
       * <pre>
       *&#47;Service is active.
       * </pre>
       *
       * <code>ACTIVE = 1;</code>
       */
      public static final int ACTIVE_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Status valueOf(int value) {
        return forNumber(value);
      }

      public static Status forNumber(int value) {
        switch (value) {
          case 0: return INACTIVE;
          case 1: return ACTIVE;
          default: return null;
        }
      }

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ServiceDescription.Status)
    }

    private int bitField0_;
    public static final int SERVICETYPE_FIELD_NUMBER = 1;
    private int serviceType_;
    /**
     * <pre>
     *&#47; The type of service being provisioned/activated
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
     */
    public int getServiceTypeValue() {
      return serviceType_;
    }
    /**
     * <pre>
     *&#47; The type of service being provisioned/activated
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum getServiceType() {
      com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum.valueOf(serviceType_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum.UNRECOGNIZED : result;
    }

    public static final int EXPIRETIME_FIELD_NUMBER = 2;
    private long expireTime_;
    /**
     * <pre>
     *&#47; The service being provisioned/activated is considered active from the time this message is received until the expire time, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
     * </pre>
     *
     * <code>int64 expireTime = 2;</code>
     */
    public long getExpireTime() {
      return expireTime_;
    }

    public static final int ADDITIONALPARAMETERS_FIELD_NUMBER = 3;
    private static final class AdditionalParametersDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceDescription_AdditionalParametersEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> additionalParameters_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetAdditionalParameters() {
      if (additionalParameters_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AdditionalParametersDefaultEntryHolder.defaultEntry);
      }
      return additionalParameters_;
    }

    public int getAdditionalParametersCount() {
      return internalGetAdditionalParameters().getMap().size();
    }
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */

    public boolean containsAdditionalParameters(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetAdditionalParameters().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAdditionalParametersMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getAdditionalParameters() {
      return getAdditionalParametersMap();
    }
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getAdditionalParametersMap() {
      return internalGetAdditionalParameters().getMap();
    }
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */

    public java.lang.String getAdditionalParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAdditionalParameters().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
     */

    public java.lang.String getAdditionalParametersOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAdditionalParameters().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int STATUS_FIELD_NUMBER = 4;
    private int status_;
    /**
     * <pre>
     *&#47; This is to define whether service is Active/InActive.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
     */
    public int getStatusValue() {
      return status_;
    }
    /**
     * <pre>
     *&#47; This is to define whether service is Active/InActive.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status getStatus() {
      com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status result = com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status.valueOf(status_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status.UNRECOGNIZED : result;
    }

    public static final int VERSION_FIELD_NUMBER = 5;
    private int version_;
    /**
     * <pre>
     *&#47; Service version number 
     * </pre>
     *
     * <code>int32 version = 5;</code>
     */
    public int getVersion() {
      return version_;
    }

    public static final int CONTENTID_FIELD_NUMBER = 6;
    private int contentId_;
    /**
     * <pre>
     *&#47; Content ID
     * </pre>
     *
     * <code>int32 contentId = 6;</code>
     */
    public int getContentId() {
      return contentId_;
    }

    public static final int APPIDENTIFIER_FIELD_NUMBER = 7;
    private volatile java.lang.Object appIdentifier_;
    /**
     * <pre>
     *&#47; Application ID
     * </pre>
     *
     * <code>string appIdentifier = 7;</code>
     */
    public java.lang.String getAppIdentifier() {
      java.lang.Object ref = appIdentifier_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        appIdentifier_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Application ID
     * </pre>
     *
     * <code>string appIdentifier = 7;</code>
     */
    public com.google.protobuf.ByteString
        getAppIdentifierBytes() {
      java.lang.Object ref = appIdentifier_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        appIdentifier_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int APPLAUNCHERMASK_FIELD_NUMBER = 8;
    private int appLauncherMask_;
    /**
     * <pre>
     *&#47; App Launcher Mask (auto start, manual)
     * </pre>
     *
     * <code>int32 appLauncherMask = 8;</code>
     */
    public int getAppLauncherMask() {
      return appLauncherMask_;
    }

    public static final int INSTALLERTYPE_FIELD_NUMBER = 9;
    private volatile java.lang.Object installerType_;
    /**
     * <pre>
     *&#47; Installer type 
     * </pre>
     *
     * <code>string installerType = 9;</code>
     */
    public java.lang.String getInstallerType() {
      java.lang.Object ref = installerType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        installerType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Installer type 
     * </pre>
     *
     * <code>string installerType = 9;</code>
     */
    public com.google.protobuf.ByteString
        getInstallerTypeBytes() {
      java.lang.Object ref = installerType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        installerType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACCOUNTDN_FIELD_NUMBER = 10;
    private volatile java.lang.Object accountDN_;
    /**
     * <pre>
     *&#47; Account DN 
     * </pre>
     *
     * <code>string accountDN = 10;</code>
     */
    public java.lang.String getAccountDN() {
      java.lang.Object ref = accountDN_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        accountDN_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Account DN 
     * </pre>
     *
     * <code>string accountDN = 10;</code>
     */
    public com.google.protobuf.ByteString
        getAccountDNBytes() {
      java.lang.Object ref = accountDN_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accountDN_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FILELENGTH_FIELD_NUMBER = 11;
    private int fileLength_;
    /**
     * <pre>
     *&#47; fileLength
     * </pre>
     *
     * <code>int32 fileLength = 11;</code>
     */
    public int getFileLength() {
      return fileLength_;
    }

    public static final int FILECHECKSUM_FIELD_NUMBER = 12;
    private int fileChecksum_;
    /**
     * <pre>
     *&#47; Checksum data
     * </pre>
     *
     * <code>int32 fileChecksum = 12;</code>
     */
    public int getFileChecksum() {
      return fileChecksum_;
    }

    public static final int FEATUREMASK_FIELD_NUMBER = 13;
    private volatile java.lang.Object featureMask_;
    /**
     * <pre>
     *&#47; Feature Mask
     * </pre>
     *
     * <code>string featureMask = 13;</code>
     */
    public java.lang.String getFeatureMask() {
      java.lang.Object ref = featureMask_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        featureMask_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Feature Mask
     * </pre>
     *
     * <code>string featureMask = 13;</code>
     */
    public com.google.protobuf.ByteString
        getFeatureMaskBytes() {
      java.lang.Object ref = featureMask_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        featureMask_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXPIREXTIMESPANBEGITIMESPANBEGIN_FIELD_NUMBER = 14;
    private long expirexTimeSpanBegiTimeSpanBegin_;
    /**
     * <pre>
     *&#47; DRM expiration Time Begin
     * </pre>
     *
     * <code>int64 expirexTimeSpanBegiTimeSpanBegin = 14;</code>
     */
    public long getExpirexTimeSpanBegiTimeSpanBegin() {
      return expirexTimeSpanBegiTimeSpanBegin_;
    }

    public static final int EXPIRETIMESPANEND_FIELD_NUMBER = 15;
    private long expireTimeSpanEnd_;
    /**
     * <pre>
     *&#47; DRM  Time Span End
     * </pre>
     *
     * <code>int64 expireTimeSpanEnd = 15;</code>
     */
    public long getExpireTimeSpanEnd() {
      return expireTimeSpanEnd_;
    }

    public static final int EMAILID_FIELD_NUMBER = 16;
    private volatile java.lang.Object emailId_;
    /**
     * <pre>
     *&#47;Email ID
     * </pre>
     *
     * <code>string emailId = 16;</code>
     */
    public java.lang.String getEmailId() {
      java.lang.Object ref = emailId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        emailId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47;Email ID
     * </pre>
     *
     * <code>string emailId = 16;</code>
     */
    public com.google.protobuf.ByteString
        getEmailIdBytes() {
      java.lang.Object ref = emailId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        emailId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (serviceType_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum.WIFIHOTSPOT.getNumber()) {
        output.writeEnum(1, serviceType_);
      }
      if (expireTime_ != 0L) {
        output.writeInt64(2, expireTime_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetAdditionalParameters(),
          AdditionalParametersDefaultEntryHolder.defaultEntry,
          3);
      if (status_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status.INACTIVE.getNumber()) {
        output.writeEnum(4, status_);
      }
      if (version_ != 0) {
        output.writeInt32(5, version_);
      }
      if (contentId_ != 0) {
        output.writeInt32(6, contentId_);
      }
      if (!getAppIdentifierBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, appIdentifier_);
      }
      if (appLauncherMask_ != 0) {
        output.writeInt32(8, appLauncherMask_);
      }
      if (!getInstallerTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, installerType_);
      }
      if (!getAccountDNBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, accountDN_);
      }
      if (fileLength_ != 0) {
        output.writeInt32(11, fileLength_);
      }
      if (fileChecksum_ != 0) {
        output.writeInt32(12, fileChecksum_);
      }
      if (!getFeatureMaskBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, featureMask_);
      }
      if (expirexTimeSpanBegiTimeSpanBegin_ != 0L) {
        output.writeInt64(14, expirexTimeSpanBegiTimeSpanBegin_);
      }
      if (expireTimeSpanEnd_ != 0L) {
        output.writeInt64(15, expireTimeSpanEnd_);
      }
      if (!getEmailIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, emailId_);
      }
    }

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

      size = 0;
      if (serviceType_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum.WIFIHOTSPOT.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, serviceType_);
      }
      if (expireTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, expireTime_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetAdditionalParameters().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        additionalParameters__ = AdditionalParametersDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, additionalParameters__);
      }
      if (status_ != com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status.INACTIVE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, status_);
      }
      if (version_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, version_);
      }
      if (contentId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, contentId_);
      }
      if (!getAppIdentifierBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, appIdentifier_);
      }
      if (appLauncherMask_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, appLauncherMask_);
      }
      if (!getInstallerTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, installerType_);
      }
      if (!getAccountDNBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, accountDN_);
      }
      if (fileLength_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(11, fileLength_);
      }
      if (fileChecksum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, fileChecksum_);
      }
      if (!getFeatureMaskBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, featureMask_);
      }
      if (expirexTimeSpanBegiTimeSpanBegin_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(14, expirexTimeSpanBegiTimeSpanBegin_);
      }
      if (expireTimeSpanEnd_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(15, expireTimeSpanEnd_);
      }
      if (!getEmailIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, emailId_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription other = (com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription) obj;

      boolean result = true;
      result = result && serviceType_ == other.serviceType_;
      result = result && (getExpireTime()
          == other.getExpireTime());
      result = result && internalGetAdditionalParameters().equals(
          other.internalGetAdditionalParameters());
      result = result && status_ == other.status_;
      result = result && (getVersion()
          == other.getVersion());
      result = result && (getContentId()
          == other.getContentId());
      result = result && getAppIdentifier()
          .equals(other.getAppIdentifier());
      result = result && (getAppLauncherMask()
          == other.getAppLauncherMask());
      result = result && getInstallerType()
          .equals(other.getInstallerType());
      result = result && getAccountDN()
          .equals(other.getAccountDN());
      result = result && (getFileLength()
          == other.getFileLength());
      result = result && (getFileChecksum()
          == other.getFileChecksum());
      result = result && getFeatureMask()
          .equals(other.getFeatureMask());
      result = result && (getExpirexTimeSpanBegiTimeSpanBegin()
          == other.getExpirexTimeSpanBegiTimeSpanBegin());
      result = result && (getExpireTimeSpanEnd()
          == other.getExpireTimeSpanEnd());
      result = result && getEmailId()
          .equals(other.getEmailId());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SERVICETYPE_FIELD_NUMBER;
      hash = (53 * hash) + serviceType_;
      hash = (37 * hash) + EXPIRETIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getExpireTime());
      if (!internalGetAdditionalParameters().getMap().isEmpty()) {
        hash = (37 * hash) + ADDITIONALPARAMETERS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAdditionalParameters().hashCode();
      }
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion();
      hash = (37 * hash) + CONTENTID_FIELD_NUMBER;
      hash = (53 * hash) + getContentId();
      hash = (37 * hash) + APPIDENTIFIER_FIELD_NUMBER;
      hash = (53 * hash) + getAppIdentifier().hashCode();
      hash = (37 * hash) + APPLAUNCHERMASK_FIELD_NUMBER;
      hash = (53 * hash) + getAppLauncherMask();
      hash = (37 * hash) + INSTALLERTYPE_FIELD_NUMBER;
      hash = (53 * hash) + getInstallerType().hashCode();
      hash = (37 * hash) + ACCOUNTDN_FIELD_NUMBER;
      hash = (53 * hash) + getAccountDN().hashCode();
      hash = (37 * hash) + FILELENGTH_FIELD_NUMBER;
      hash = (53 * hash) + getFileLength();
      hash = (37 * hash) + FILECHECKSUM_FIELD_NUMBER;
      hash = (53 * hash) + getFileChecksum();
      hash = (37 * hash) + FEATUREMASK_FIELD_NUMBER;
      hash = (53 * hash) + getFeatureMask().hashCode();
      hash = (37 * hash) + EXPIREXTIMESPANBEGITIMESPANBEGIN_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getExpirexTimeSpanBegiTimeSpanBegin());
      hash = (37 * hash) + EXPIRETIMESPANEND_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getExpireTimeSpanEnd());
      hash = (37 * hash) + EMAILID_FIELD_NUMBER;
      hash = (53 * hash) + getEmailId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *&#47;&#42;*
     ** This Message represents the Service name and expiration time that Service is going to expire
     **&#47;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ServiceDescription}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ServiceDescription)
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceDescription_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 3:
            return internalGetAdditionalParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 3:
            return internalGetMutableAdditionalParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceDescription_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        serviceType_ = 0;

        expireTime_ = 0L;

        internalGetMutableAdditionalParameters().clear();
        status_ = 0;

        version_ = 0;

        contentId_ = 0;

        appIdentifier_ = "";

        appLauncherMask_ = 0;

        installerType_ = "";

        accountDN_ = "";

        fileLength_ = 0;

        fileChecksum_ = 0;

        featureMask_ = "";

        expirexTimeSpanBegiTimeSpanBegin_ = 0L;

        expireTimeSpanEnd_ = 0L;

        emailId_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceDescription_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription result = new com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.serviceType_ = serviceType_;
        result.expireTime_ = expireTime_;
        result.additionalParameters_ = internalGetAdditionalParameters();
        result.additionalParameters_.makeImmutable();
        result.status_ = status_;
        result.version_ = version_;
        result.contentId_ = contentId_;
        result.appIdentifier_ = appIdentifier_;
        result.appLauncherMask_ = appLauncherMask_;
        result.installerType_ = installerType_;
        result.accountDN_ = accountDN_;
        result.fileLength_ = fileLength_;
        result.fileChecksum_ = fileChecksum_;
        result.featureMask_ = featureMask_;
        result.expirexTimeSpanBegiTimeSpanBegin_ = expirexTimeSpanBegiTimeSpanBegin_;
        result.expireTimeSpanEnd_ = expireTimeSpanEnd_;
        result.emailId_ = emailId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.getDefaultInstance()) return this;
        if (other.serviceType_ != 0) {
          setServiceTypeValue(other.getServiceTypeValue());
        }
        if (other.getExpireTime() != 0L) {
          setExpireTime(other.getExpireTime());
        }
        internalGetMutableAdditionalParameters().mergeFrom(
            other.internalGetAdditionalParameters());
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (other.getVersion() != 0) {
          setVersion(other.getVersion());
        }
        if (other.getContentId() != 0) {
          setContentId(other.getContentId());
        }
        if (!other.getAppIdentifier().isEmpty()) {
          appIdentifier_ = other.appIdentifier_;
          onChanged();
        }
        if (other.getAppLauncherMask() != 0) {
          setAppLauncherMask(other.getAppLauncherMask());
        }
        if (!other.getInstallerType().isEmpty()) {
          installerType_ = other.installerType_;
          onChanged();
        }
        if (!other.getAccountDN().isEmpty()) {
          accountDN_ = other.accountDN_;
          onChanged();
        }
        if (other.getFileLength() != 0) {
          setFileLength(other.getFileLength());
        }
        if (other.getFileChecksum() != 0) {
          setFileChecksum(other.getFileChecksum());
        }
        if (!other.getFeatureMask().isEmpty()) {
          featureMask_ = other.featureMask_;
          onChanged();
        }
        if (other.getExpirexTimeSpanBegiTimeSpanBegin() != 0L) {
          setExpirexTimeSpanBegiTimeSpanBegin(other.getExpirexTimeSpanBegiTimeSpanBegin());
        }
        if (other.getExpireTimeSpanEnd() != 0L) {
          setExpireTimeSpanEnd(other.getExpireTimeSpanEnd());
        }
        if (!other.getEmailId().isEmpty()) {
          emailId_ = other.emailId_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private int serviceType_ = 0;
      /**
       * <pre>
       *&#47; The type of service being provisioned/activated
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
       */
      public int getServiceTypeValue() {
        return serviceType_;
      }
      /**
       * <pre>
       *&#47; The type of service being provisioned/activated
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
       */
      public Builder setServiceTypeValue(int value) {
        serviceType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; The type of service being provisioned/activated
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum getServiceType() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum.valueOf(serviceType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; The type of service being provisioned/activated
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
       */
      public Builder setServiceType(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.ServiceTypeEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        serviceType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; The type of service being provisioned/activated
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;</code>
       */
      public Builder clearServiceType() {
        
        serviceType_ = 0;
        onChanged();
        return this;
      }

      private long expireTime_ ;
      /**
       * <pre>
       *&#47; The service being provisioned/activated is considered active from the time this message is received until the expire time, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
       * </pre>
       *
       * <code>int64 expireTime = 2;</code>
       */
      public long getExpireTime() {
        return expireTime_;
      }
      /**
       * <pre>
       *&#47; The service being provisioned/activated is considered active from the time this message is received until the expire time, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
       * </pre>
       *
       * <code>int64 expireTime = 2;</code>
       */
      public Builder setExpireTime(long value) {
        
        expireTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; The service being provisioned/activated is considered active from the time this message is received until the expire time, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
       * </pre>
       *
       * <code>int64 expireTime = 2;</code>
       */
      public Builder clearExpireTime() {
        
        expireTime_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> additionalParameters_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetAdditionalParameters() {
        if (additionalParameters_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AdditionalParametersDefaultEntryHolder.defaultEntry);
        }
        return additionalParameters_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableAdditionalParameters() {
        onChanged();;
        if (additionalParameters_ == null) {
          additionalParameters_ = com.google.protobuf.MapField.newMapField(
              AdditionalParametersDefaultEntryHolder.defaultEntry);
        }
        if (!additionalParameters_.isMutable()) {
          additionalParameters_ = additionalParameters_.copy();
        }
        return additionalParameters_;
      }

      public int getAdditionalParametersCount() {
        return internalGetAdditionalParameters().getMap().size();
      }
      /**
       * <pre>
       *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
       */

      public boolean containsAdditionalParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetAdditionalParameters().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAdditionalParametersMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getAdditionalParameters() {
        return getAdditionalParametersMap();
      }
      /**
       * <pre>
       *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getAdditionalParametersMap() {
        return internalGetAdditionalParameters().getMap();
      }
      /**
       * <pre>
       *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
       */

      public java.lang.String getAdditionalParametersOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAdditionalParameters().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
       */

      public java.lang.String getAdditionalParametersOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAdditionalParameters().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearAdditionalParameters() {
        internalGetMutableAdditionalParameters().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
       */

      public Builder removeAdditionalParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAdditionalParameters().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableAdditionalParameters() {
        return internalGetMutableAdditionalParameters().getMutableMap();
      }
      /**
       * <pre>
       *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
       */
      public Builder putAdditionalParameters(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAdditionalParameters().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       *&#47;This is for Configuration Parameters as a key-value pair like Call Center number,Server URL.
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalParameters = 3;</code>
       */

      public Builder putAllAdditionalParameters(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableAdditionalParameters().getMutableMap()
            .putAll(values);
        return this;
      }

      private int status_ = 0;
      /**
       * <pre>
       *&#47; This is to define whether service is Active/InActive.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
       */
      public int getStatusValue() {
        return status_;
      }
      /**
       * <pre>
       *&#47; This is to define whether service is Active/InActive.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
       */
      public Builder setStatusValue(int value) {
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; This is to define whether service is Active/InActive.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status getStatus() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status result = com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status.valueOf(status_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; This is to define whether service is Active/InActive.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
       */
      public Builder setStatus(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; This is to define whether service is Active/InActive.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ServiceDescription.Status status = 4;</code>
       */
      public Builder clearStatus() {
        
        status_ = 0;
        onChanged();
        return this;
      }

      private int version_ ;
      /**
       * <pre>
       *&#47; Service version number 
       * </pre>
       *
       * <code>int32 version = 5;</code>
       */
      public int getVersion() {
        return version_;
      }
      /**
       * <pre>
       *&#47; Service version number 
       * </pre>
       *
       * <code>int32 version = 5;</code>
       */
      public Builder setVersion(int value) {
        
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Service version number 
       * </pre>
       *
       * <code>int32 version = 5;</code>
       */
      public Builder clearVersion() {
        
        version_ = 0;
        onChanged();
        return this;
      }

      private int contentId_ ;
      /**
       * <pre>
       *&#47; Content ID
       * </pre>
       *
       * <code>int32 contentId = 6;</code>
       */
      public int getContentId() {
        return contentId_;
      }
      /**
       * <pre>
       *&#47; Content ID
       * </pre>
       *
       * <code>int32 contentId = 6;</code>
       */
      public Builder setContentId(int value) {
        
        contentId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Content ID
       * </pre>
       *
       * <code>int32 contentId = 6;</code>
       */
      public Builder clearContentId() {
        
        contentId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object appIdentifier_ = "";
      /**
       * <pre>
       *&#47; Application ID
       * </pre>
       *
       * <code>string appIdentifier = 7;</code>
       */
      public java.lang.String getAppIdentifier() {
        java.lang.Object ref = appIdentifier_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          appIdentifier_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Application ID
       * </pre>
       *
       * <code>string appIdentifier = 7;</code>
       */
      public com.google.protobuf.ByteString
          getAppIdentifierBytes() {
        java.lang.Object ref = appIdentifier_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          appIdentifier_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Application ID
       * </pre>
       *
       * <code>string appIdentifier = 7;</code>
       */
      public Builder setAppIdentifier(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        appIdentifier_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Application ID
       * </pre>
       *
       * <code>string appIdentifier = 7;</code>
       */
      public Builder clearAppIdentifier() {
        
        appIdentifier_ = getDefaultInstance().getAppIdentifier();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Application ID
       * </pre>
       *
       * <code>string appIdentifier = 7;</code>
       */
      public Builder setAppIdentifierBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        appIdentifier_ = value;
        onChanged();
        return this;
      }

      private int appLauncherMask_ ;
      /**
       * <pre>
       *&#47; App Launcher Mask (auto start, manual)
       * </pre>
       *
       * <code>int32 appLauncherMask = 8;</code>
       */
      public int getAppLauncherMask() {
        return appLauncherMask_;
      }
      /**
       * <pre>
       *&#47; App Launcher Mask (auto start, manual)
       * </pre>
       *
       * <code>int32 appLauncherMask = 8;</code>
       */
      public Builder setAppLauncherMask(int value) {
        
        appLauncherMask_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; App Launcher Mask (auto start, manual)
       * </pre>
       *
       * <code>int32 appLauncherMask = 8;</code>
       */
      public Builder clearAppLauncherMask() {
        
        appLauncherMask_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object installerType_ = "";
      /**
       * <pre>
       *&#47; Installer type 
       * </pre>
       *
       * <code>string installerType = 9;</code>
       */
      public java.lang.String getInstallerType() {
        java.lang.Object ref = installerType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          installerType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Installer type 
       * </pre>
       *
       * <code>string installerType = 9;</code>
       */
      public com.google.protobuf.ByteString
          getInstallerTypeBytes() {
        java.lang.Object ref = installerType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          installerType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Installer type 
       * </pre>
       *
       * <code>string installerType = 9;</code>
       */
      public Builder setInstallerType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        installerType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Installer type 
       * </pre>
       *
       * <code>string installerType = 9;</code>
       */
      public Builder clearInstallerType() {
        
        installerType_ = getDefaultInstance().getInstallerType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Installer type 
       * </pre>
       *
       * <code>string installerType = 9;</code>
       */
      public Builder setInstallerTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        installerType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object accountDN_ = "";
      /**
       * <pre>
       *&#47; Account DN 
       * </pre>
       *
       * <code>string accountDN = 10;</code>
       */
      public java.lang.String getAccountDN() {
        java.lang.Object ref = accountDN_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accountDN_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Account DN 
       * </pre>
       *
       * <code>string accountDN = 10;</code>
       */
      public com.google.protobuf.ByteString
          getAccountDNBytes() {
        java.lang.Object ref = accountDN_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accountDN_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Account DN 
       * </pre>
       *
       * <code>string accountDN = 10;</code>
       */
      public Builder setAccountDN(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        accountDN_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Account DN 
       * </pre>
       *
       * <code>string accountDN = 10;</code>
       */
      public Builder clearAccountDN() {
        
        accountDN_ = getDefaultInstance().getAccountDN();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Account DN 
       * </pre>
       *
       * <code>string accountDN = 10;</code>
       */
      public Builder setAccountDNBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        accountDN_ = value;
        onChanged();
        return this;
      }

      private int fileLength_ ;
      /**
       * <pre>
       *&#47; fileLength
       * </pre>
       *
       * <code>int32 fileLength = 11;</code>
       */
      public int getFileLength() {
        return fileLength_;
      }
      /**
       * <pre>
       *&#47; fileLength
       * </pre>
       *
       * <code>int32 fileLength = 11;</code>
       */
      public Builder setFileLength(int value) {
        
        fileLength_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; fileLength
       * </pre>
       *
       * <code>int32 fileLength = 11;</code>
       */
      public Builder clearFileLength() {
        
        fileLength_ = 0;
        onChanged();
        return this;
      }

      private int fileChecksum_ ;
      /**
       * <pre>
       *&#47; Checksum data
       * </pre>
       *
       * <code>int32 fileChecksum = 12;</code>
       */
      public int getFileChecksum() {
        return fileChecksum_;
      }
      /**
       * <pre>
       *&#47; Checksum data
       * </pre>
       *
       * <code>int32 fileChecksum = 12;</code>
       */
      public Builder setFileChecksum(int value) {
        
        fileChecksum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Checksum data
       * </pre>
       *
       * <code>int32 fileChecksum = 12;</code>
       */
      public Builder clearFileChecksum() {
        
        fileChecksum_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object featureMask_ = "";
      /**
       * <pre>
       *&#47; Feature Mask
       * </pre>
       *
       * <code>string featureMask = 13;</code>
       */
      public java.lang.String getFeatureMask() {
        java.lang.Object ref = featureMask_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          featureMask_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Feature Mask
       * </pre>
       *
       * <code>string featureMask = 13;</code>
       */
      public com.google.protobuf.ByteString
          getFeatureMaskBytes() {
        java.lang.Object ref = featureMask_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          featureMask_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Feature Mask
       * </pre>
       *
       * <code>string featureMask = 13;</code>
       */
      public Builder setFeatureMask(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        featureMask_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Feature Mask
       * </pre>
       *
       * <code>string featureMask = 13;</code>
       */
      public Builder clearFeatureMask() {
        
        featureMask_ = getDefaultInstance().getFeatureMask();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Feature Mask
       * </pre>
       *
       * <code>string featureMask = 13;</code>
       */
      public Builder setFeatureMaskBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        featureMask_ = value;
        onChanged();
        return this;
      }

      private long expirexTimeSpanBegiTimeSpanBegin_ ;
      /**
       * <pre>
       *&#47; DRM expiration Time Begin
       * </pre>
       *
       * <code>int64 expirexTimeSpanBegiTimeSpanBegin = 14;</code>
       */
      public long getExpirexTimeSpanBegiTimeSpanBegin() {
        return expirexTimeSpanBegiTimeSpanBegin_;
      }
      /**
       * <pre>
       *&#47; DRM expiration Time Begin
       * </pre>
       *
       * <code>int64 expirexTimeSpanBegiTimeSpanBegin = 14;</code>
       */
      public Builder setExpirexTimeSpanBegiTimeSpanBegin(long value) {
        
        expirexTimeSpanBegiTimeSpanBegin_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; DRM expiration Time Begin
       * </pre>
       *
       * <code>int64 expirexTimeSpanBegiTimeSpanBegin = 14;</code>
       */
      public Builder clearExpirexTimeSpanBegiTimeSpanBegin() {
        
        expirexTimeSpanBegiTimeSpanBegin_ = 0L;
        onChanged();
        return this;
      }

      private long expireTimeSpanEnd_ ;
      /**
       * <pre>
       *&#47; DRM  Time Span End
       * </pre>
       *
       * <code>int64 expireTimeSpanEnd = 15;</code>
       */
      public long getExpireTimeSpanEnd() {
        return expireTimeSpanEnd_;
      }
      /**
       * <pre>
       *&#47; DRM  Time Span End
       * </pre>
       *
       * <code>int64 expireTimeSpanEnd = 15;</code>
       */
      public Builder setExpireTimeSpanEnd(long value) {
        
        expireTimeSpanEnd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; DRM  Time Span End
       * </pre>
       *
       * <code>int64 expireTimeSpanEnd = 15;</code>
       */
      public Builder clearExpireTimeSpanEnd() {
        
        expireTimeSpanEnd_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object emailId_ = "";
      /**
       * <pre>
       *&#47;Email ID
       * </pre>
       *
       * <code>string emailId = 16;</code>
       */
      public java.lang.String getEmailId() {
        java.lang.Object ref = emailId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          emailId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47;Email ID
       * </pre>
       *
       * <code>string emailId = 16;</code>
       */
      public com.google.protobuf.ByteString
          getEmailIdBytes() {
        java.lang.Object ref = emailId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          emailId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47;Email ID
       * </pre>
       *
       * <code>string emailId = 16;</code>
       */
      public Builder setEmailId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        emailId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Email ID
       * </pre>
       *
       * <code>string emailId = 16;</code>
       */
      public Builder clearEmailId() {
        
        emailId_ = getDefaultInstance().getEmailId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Email ID
       * </pre>
       *
       * <code>string emailId = 16;</code>
       */
      public Builder setEmailIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        emailId_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ServiceDescription)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ServiceDescription)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ServiceSubscriptionInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ServiceSubscriptionInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription> 
        getServicesList();
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription getServices(int index);
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    int getServicesCount();
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder> 
        getServicesOrBuilderList();
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder getServicesOrBuilder(
        int index);
  }
  /**
   * <pre>
   **
   * This Message represents the list of Services that User can or may subscribed to.
   * This message may be sent with an ProvisioningResponse or can be asynchronously at any time from the SDP.
   *&lt;div class=exmsg-main&gt;
   *  &lt;h4&gt;ServiceSubscriptionInfo  Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1488746451561
   *		messageId: 4
   *		messages
   *		{
   *		 [com.fca.uconnect.global.serviceSubscriptionInfo]
   *		 {
   *			services
   *			{
   *			  serviceType: ECALL
   *			  expireTime: 1234567890
   *			}
   *			services
   *			{
   *			  serviceType: REMOTEENGINESTART
   *			  expireTime: 1234567890
   *			}
   *		 }
   *	   }
   *   &lt;/code&gt;
   * &lt;/div&gt;&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ServiceSubscriptionInfo}
   */
  public  static final class ServiceSubscriptionInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ServiceSubscriptionInfo)
      ServiceSubscriptionInfoOrBuilder {
    // Use ServiceSubscriptionInfo.newBuilder() to construct.
    private ServiceSubscriptionInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ServiceSubscriptionInfo() {
      services_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ServiceSubscriptionInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                services_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription>();
                mutable_bitField0_ |= 0x00000001;
              }
              services_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          services_ = java.util.Collections.unmodifiableList(services_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder.class);
    }

    public static final int SERVICES_FIELD_NUMBER = 1;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription> services_;
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription> getServicesList() {
      return services_;
    }
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder> 
        getServicesOrBuilderList() {
      return services_;
    }
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    public int getServicesCount() {
      return services_.size();
    }
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription getServices(int index) {
      return services_.get(index);
    }
    /**
     * <pre>
     *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder getServicesOrBuilder(
        int index) {
      return services_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo other = (com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo) obj;

      boolean result = true;
      result = result && getServicesList()
          .equals(other.getServicesList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getServicesCount() > 0) {
        hash = (37 * hash) + SERVICES_FIELD_NUMBER;
        hash = (53 * hash) + getServicesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This Message represents the list of Services that User can or may subscribed to.
     * This message may be sent with an ProvisioningResponse or can be asynchronously at any time from the SDP.
     *&lt;div class=exmsg-main&gt;
     *  &lt;h4&gt;ServiceSubscriptionInfo  Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1488746451561
     *		messageId: 4
     *		messages
     *		{
     *		 [com.fca.uconnect.global.serviceSubscriptionInfo]
     *		 {
     *			services
     *			{
     *			  serviceType: ECALL
     *			  expireTime: 1234567890
     *			}
     *			services
     *			{
     *			  serviceType: REMOTEENGINESTART
     *			  expireTime: 1234567890
     *			}
     *		 }
     *	   }
     *   &lt;/code&gt;
     * &lt;/div&gt;&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ServiceSubscriptionInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ServiceSubscriptionInfo)
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.class, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo result = new com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo(this);
        int from_bitField0_ = bitField0_;
        if (servicesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            services_ = java.util.Collections.unmodifiableList(services_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.services_ = services_;
        } else {
          result.services_ = servicesBuilder_.build();
        }
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo.getDefaultInstance()) return this;
        if (servicesBuilder_ == null) {
          if (!other.services_.isEmpty()) {
            if (services_.isEmpty()) {
              services_ = other.services_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureServicesIsMutable();
              services_.addAll(other.services_);
            }
            onChanged();
          }
        } else {
          if (!other.services_.isEmpty()) {
            if (servicesBuilder_.isEmpty()) {
              servicesBuilder_.dispose();
              servicesBuilder_ = null;
              services_ = other.services_;
              bitField0_ = (bitField0_ & ~0x00000001);
              servicesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getServicesFieldBuilder() : null;
            } else {
              servicesBuilder_.addAllMessages(other.services_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription> services_ =
        java.util.Collections.emptyList();
      private void ensureServicesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          services_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription>(services_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder> servicesBuilder_;

      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription> getServicesList() {
        if (servicesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(services_);
        } else {
          return servicesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public int getServicesCount() {
        if (servicesBuilder_ == null) {
          return services_.size();
        } else {
          return servicesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription getServices(int index) {
        if (servicesBuilder_ == null) {
          return services_.get(index);
        } else {
          return servicesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder setServices(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription value) {
        if (servicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServicesIsMutable();
          services_.set(index, value);
          onChanged();
        } else {
          servicesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder setServices(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder builderForValue) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.set(index, builderForValue.build());
          onChanged();
        } else {
          servicesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder addServices(com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription value) {
        if (servicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServicesIsMutable();
          services_.add(value);
          onChanged();
        } else {
          servicesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder addServices(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription value) {
        if (servicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServicesIsMutable();
          services_.add(index, value);
          onChanged();
        } else {
          servicesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder addServices(
          com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder builderForValue) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.add(builderForValue.build());
          onChanged();
        } else {
          servicesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder addServices(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder builderForValue) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.add(index, builderForValue.build());
          onChanged();
        } else {
          servicesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder addAllServices(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription> values) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, services_);
          onChanged();
        } else {
          servicesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder clearServices() {
        if (servicesBuilder_ == null) {
          services_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          servicesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public Builder removeServices(int index) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.remove(index);
          onChanged();
        } else {
          servicesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder getServicesBuilder(
          int index) {
        return getServicesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder getServicesOrBuilder(
          int index) {
        if (servicesBuilder_ == null) {
          return services_.get(index);  } else {
          return servicesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder> 
           getServicesOrBuilderList() {
        if (servicesBuilder_ != null) {
          return servicesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(services_);
        }
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder addServicesBuilder() {
        return getServicesFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder addServicesBuilder(
          int index) {
        return getServicesFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ServiceDescription services = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder> 
           getServicesBuilderList() {
        return getServicesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder> 
          getServicesFieldBuilder() {
        if (servicesBuilder_ == null) {
          servicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescription.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceDescriptionOrBuilder>(
                  services_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          services_ = null;
        }
        return servicesBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ServiceSubscriptionInfo)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ServiceSubscriptionInfo)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.ServiceSubscriptionInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BIMDPSKInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.BIMDPSKInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK> 
        getDeviceKeysList();
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK getDeviceKeys(int index);
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    int getDeviceKeysCount();
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder> 
        getDeviceKeysOrBuilderList();
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder getDeviceKeysOrBuilder(
        int index);
  }
  /**
   * <pre>
   *&#47;This is for Authentication
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.BIMDPSKInfo}
   */
  public  static final class BIMDPSKInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.BIMDPSKInfo)
      BIMDPSKInfoOrBuilder {
    // Use BIMDPSKInfo.newBuilder() to construct.
    private BIMDPSKInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BIMDPSKInfo() {
      deviceKeys_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private BIMDPSKInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                deviceKeys_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK>();
                mutable_bitField0_ |= 0x00000001;
              }
              deviceKeys_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          deviceKeys_ = java.util.Collections.unmodifiableList(deviceKeys_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.class, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder.class);
    }

    public interface BIMDPSKOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47;Device id for Mobile.
       * </pre>
       *
       * <code>string mobileDeviceId = 1;</code>
       */
      java.lang.String getMobileDeviceId();
      /**
       * <pre>
       *&#47;Device id for Mobile.
       * </pre>
       *
       * <code>string mobileDeviceId = 1;</code>
       */
      com.google.protobuf.ByteString
          getMobileDeviceIdBytes();

      /**
       * <pre>
       *&#47; Repeated keys.
       * </pre>
       *
       * <code>bytes preSharedKey = 2;</code>
       */
      com.google.protobuf.ByteString getPreSharedKey();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK}
     */
    public  static final class BIMDPSK extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK)
        BIMDPSKOrBuilder {
      // Use BIMDPSK.newBuilder() to construct.
      private BIMDPSK(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private BIMDPSK() {
        mobileDeviceId_ = "";
        preSharedKey_ = com.google.protobuf.ByteString.EMPTY;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private BIMDPSK(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

                mobileDeviceId_ = s;
                break;
              }
              case 18: {

                preSharedKey_ = input.readBytes();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.class, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder.class);
      }

      public static final int MOBILEDEVICEID_FIELD_NUMBER = 1;
      private volatile java.lang.Object mobileDeviceId_;
      /**
       * <pre>
       *&#47;Device id for Mobile.
       * </pre>
       *
       * <code>string mobileDeviceId = 1;</code>
       */
      public java.lang.String getMobileDeviceId() {
        java.lang.Object ref = mobileDeviceId_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mobileDeviceId_ = s;
          return s;
        }
      }
      /**
       * <pre>
       *&#47;Device id for Mobile.
       * </pre>
       *
       * <code>string mobileDeviceId = 1;</code>
       */
      public com.google.protobuf.ByteString
          getMobileDeviceIdBytes() {
        java.lang.Object ref = mobileDeviceId_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mobileDeviceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int PRESHAREDKEY_FIELD_NUMBER = 2;
      private com.google.protobuf.ByteString preSharedKey_;
      /**
       * <pre>
       *&#47; Repeated keys.
       * </pre>
       *
       * <code>bytes preSharedKey = 2;</code>
       */
      public com.google.protobuf.ByteString getPreSharedKey() {
        return preSharedKey_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getMobileDeviceIdBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, mobileDeviceId_);
        }
        if (!preSharedKey_.isEmpty()) {
          output.writeBytes(2, preSharedKey_);
        }
      }

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

        size = 0;
        if (!getMobileDeviceIdBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, mobileDeviceId_);
        }
        if (!preSharedKey_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, preSharedKey_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK other = (com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK) obj;

        boolean result = true;
        result = result && getMobileDeviceId()
            .equals(other.getMobileDeviceId());
        result = result && getPreSharedKey()
            .equals(other.getPreSharedKey());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + MOBILEDEVICEID_FIELD_NUMBER;
        hash = (53 * hash) + getMobileDeviceId().hashCode();
        hash = (37 * hash) + PRESHAREDKEY_FIELD_NUMBER;
        hash = (53 * hash) + getPreSharedKey().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK)
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.class, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

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

          preSharedKey_ = com.google.protobuf.ByteString.EMPTY;

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_descriptor;
        }

        public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.getDefaultInstance();
        }

        public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK build() {
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK result = new com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK(this);
          result.mobileDeviceId_ = mobileDeviceId_;
          result.preSharedKey_ = preSharedKey_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.getDefaultInstance()) return this;
          if (!other.getMobileDeviceId().isEmpty()) {
            mobileDeviceId_ = other.mobileDeviceId_;
            onChanged();
          }
          if (other.getPreSharedKey() != com.google.protobuf.ByteString.EMPTY) {
            setPreSharedKey(other.getPreSharedKey());
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

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

        private java.lang.Object mobileDeviceId_ = "";
        /**
         * <pre>
         *&#47;Device id for Mobile.
         * </pre>
         *
         * <code>string mobileDeviceId = 1;</code>
         */
        public java.lang.String getMobileDeviceId() {
          java.lang.Object ref = mobileDeviceId_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            mobileDeviceId_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47;Device id for Mobile.
         * </pre>
         *
         * <code>string mobileDeviceId = 1;</code>
         */
        public com.google.protobuf.ByteString
            getMobileDeviceIdBytes() {
          java.lang.Object ref = mobileDeviceId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            mobileDeviceId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47;Device id for Mobile.
         * </pre>
         *
         * <code>string mobileDeviceId = 1;</code>
         */
        public Builder setMobileDeviceId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          mobileDeviceId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;Device id for Mobile.
         * </pre>
         *
         * <code>string mobileDeviceId = 1;</code>
         */
        public Builder clearMobileDeviceId() {
          
          mobileDeviceId_ = getDefaultInstance().getMobileDeviceId();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;Device id for Mobile.
         * </pre>
         *
         * <code>string mobileDeviceId = 1;</code>
         */
        public Builder setMobileDeviceIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          mobileDeviceId_ = value;
          onChanged();
          return this;
        }

        private com.google.protobuf.ByteString preSharedKey_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <pre>
         *&#47; Repeated keys.
         * </pre>
         *
         * <code>bytes preSharedKey = 2;</code>
         */
        public com.google.protobuf.ByteString getPreSharedKey() {
          return preSharedKey_;
        }
        /**
         * <pre>
         *&#47; Repeated keys.
         * </pre>
         *
         * <code>bytes preSharedKey = 2;</code>
         */
        public Builder setPreSharedKey(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          preSharedKey_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Repeated keys.
         * </pre>
         *
         * <code>bytes preSharedKey = 2;</code>
         */
        public Builder clearPreSharedKey() {
          
          preSharedKey_ = getDefaultInstance().getPreSharedKey();
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


        // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK)
      }

      // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK)
      private static final com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK();
      }

      public static com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int DEVICEKEYS_FIELD_NUMBER = 1;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK> deviceKeys_;
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK> getDeviceKeysList() {
      return deviceKeys_;
    }
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder> 
        getDeviceKeysOrBuilderList() {
      return deviceKeys_;
    }
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    public int getDeviceKeysCount() {
      return deviceKeys_.size();
    }
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK getDeviceKeys(int index) {
      return deviceKeys_.get(index);
    }
    /**
     * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder getDeviceKeysOrBuilder(
        int index) {
      return deviceKeys_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo other = (com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo) obj;

      boolean result = true;
      result = result && getDeviceKeysList()
          .equals(other.getDeviceKeysList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getDeviceKeysCount() > 0) {
        hash = (37 * hash) + DEVICEKEYS_FIELD_NUMBER;
        hash = (53 * hash) + getDeviceKeysList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *&#47;This is for Authentication
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.BIMDPSKInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.BIMDPSKInfo)
        com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.class, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.internal_static_com_fca_uconnect_global_BIMDPSKInfo_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo build() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo result = new com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo(this);
        int from_bitField0_ = bitField0_;
        if (deviceKeysBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            deviceKeys_ = java.util.Collections.unmodifiableList(deviceKeys_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.deviceKeys_ = deviceKeys_;
        } else {
          result.deviceKeys_ = deviceKeysBuilder_.build();
        }
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.getDefaultInstance()) return this;
        if (deviceKeysBuilder_ == null) {
          if (!other.deviceKeys_.isEmpty()) {
            if (deviceKeys_.isEmpty()) {
              deviceKeys_ = other.deviceKeys_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureDeviceKeysIsMutable();
              deviceKeys_.addAll(other.deviceKeys_);
            }
            onChanged();
          }
        } else {
          if (!other.deviceKeys_.isEmpty()) {
            if (deviceKeysBuilder_.isEmpty()) {
              deviceKeysBuilder_.dispose();
              deviceKeysBuilder_ = null;
              deviceKeys_ = other.deviceKeys_;
              bitField0_ = (bitField0_ & ~0x00000001);
              deviceKeysBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDeviceKeysFieldBuilder() : null;
            } else {
              deviceKeysBuilder_.addAllMessages(other.deviceKeys_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK> deviceKeys_ =
        java.util.Collections.emptyList();
      private void ensureDeviceKeysIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          deviceKeys_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK>(deviceKeys_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder> deviceKeysBuilder_;

      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK> getDeviceKeysList() {
        if (deviceKeysBuilder_ == null) {
          return java.util.Collections.unmodifiableList(deviceKeys_);
        } else {
          return deviceKeysBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public int getDeviceKeysCount() {
        if (deviceKeysBuilder_ == null) {
          return deviceKeys_.size();
        } else {
          return deviceKeysBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK getDeviceKeys(int index) {
        if (deviceKeysBuilder_ == null) {
          return deviceKeys_.get(index);
        } else {
          return deviceKeysBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder setDeviceKeys(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK value) {
        if (deviceKeysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeviceKeysIsMutable();
          deviceKeys_.set(index, value);
          onChanged();
        } else {
          deviceKeysBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder setDeviceKeys(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder builderForValue) {
        if (deviceKeysBuilder_ == null) {
          ensureDeviceKeysIsMutable();
          deviceKeys_.set(index, builderForValue.build());
          onChanged();
        } else {
          deviceKeysBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder addDeviceKeys(com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK value) {
        if (deviceKeysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeviceKeysIsMutable();
          deviceKeys_.add(value);
          onChanged();
        } else {
          deviceKeysBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder addDeviceKeys(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK value) {
        if (deviceKeysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeviceKeysIsMutable();
          deviceKeys_.add(index, value);
          onChanged();
        } else {
          deviceKeysBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder addDeviceKeys(
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder builderForValue) {
        if (deviceKeysBuilder_ == null) {
          ensureDeviceKeysIsMutable();
          deviceKeys_.add(builderForValue.build());
          onChanged();
        } else {
          deviceKeysBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder addDeviceKeys(
          int index, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder builderForValue) {
        if (deviceKeysBuilder_ == null) {
          ensureDeviceKeysIsMutable();
          deviceKeys_.add(index, builderForValue.build());
          onChanged();
        } else {
          deviceKeysBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder addAllDeviceKeys(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK> values) {
        if (deviceKeysBuilder_ == null) {
          ensureDeviceKeysIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, deviceKeys_);
          onChanged();
        } else {
          deviceKeysBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder clearDeviceKeys() {
        if (deviceKeysBuilder_ == null) {
          deviceKeys_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          deviceKeysBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public Builder removeDeviceKeys(int index) {
        if (deviceKeysBuilder_ == null) {
          ensureDeviceKeysIsMutable();
          deviceKeys_.remove(index);
          onChanged();
        } else {
          deviceKeysBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder getDeviceKeysBuilder(
          int index) {
        return getDeviceKeysFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder getDeviceKeysOrBuilder(
          int index) {
        if (deviceKeysBuilder_ == null) {
          return deviceKeys_.get(index);  } else {
          return deviceKeysBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder> 
           getDeviceKeysOrBuilderList() {
        if (deviceKeysBuilder_ != null) {
          return deviceKeysBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(deviceKeys_);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder addDeviceKeysBuilder() {
        return getDeviceKeysFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.getDefaultInstance());
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder addDeviceKeysBuilder(
          int index) {
        return getDeviceKeysFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.getDefaultInstance());
      }
      /**
       * <code>repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder> 
           getDeviceKeysBuilderList() {
        return getDeviceKeysFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder> 
          getDeviceKeysFieldBuilder() {
        if (deviceKeysBuilder_ == null) {
          deviceKeysBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSK.Builder, com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo.BIMDPSKOrBuilder>(
                  deviceKeys_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          deviceKeys_ = null;
        }
        return deviceKeysBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.BIMDPSKInfo)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.BIMDPSKInfo)
    private static final com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtProvision.BIMDPSKInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_InitiateProvisioningPush_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_InitiateProvisioningPush_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_InitiateProvisioningPush_ParametersEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_InitiateProvisioningPush_ParametersEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ProvisioningRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ProvisioningRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ProvisioningRequest_AdditionalModemParamsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ProvisioningRequest_AdditionalModemParamsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ProvisioningResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ProvisioningResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ProvisioningPush_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ProvisioningPush_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ProvisioningPushAck_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ProvisioningPushAck_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ServiceDescription_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ServiceDescription_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ServiceDescription_AdditionalParametersEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ServiceDescription_AdditionalParametersEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_BIMDPSKInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_BIMDPSKInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n#Global_Uconnect_Ext_Provision.proto\022\027c" +
      "om.fca.uconnect.global\032\034Global_Uconnect_" +
      "Device.proto\032\031Global_Uconnect_DRM.proto\"" +
      "\244\001\n\030InitiateProvisioningPush\022U\n\nparamete" +
      "rs\030\001 \003(\0132A.com.fca.uconnect.global.Initi" +
      "ateProvisioningPush.ParametersEntry\0321\n\017P" +
      "arametersEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001" +
      "(\t:\0028\001\"\374\003\n\023ProvisioningRequest\022\021\n\tvehicl" +
      "eId\030\001 \001(\t\022\017\n\007DrmHash\030\005 \001(\014\022f\n\025additional" +
      "ModemParams\030\003 \003(\0132G.com.fca.uconnect.glo",
      "bal.ProvisioningRequest.AdditionalModemP" +
      "aramsEntry\022G\n\006reason\030\004 \001(\01627.com.fca.uco" +
      "nnect.global.ProvisioningRequest.ReasonE" +
      "num\032<\n\032AdditionalModemParamsEntry\022\013\n\003key" +
      "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\321\001\n\nReasonEnum" +
      "\022\030\n\024IGNITION_CYCLE_CHECK\020\000\022\r\n\tTBM_FLASH\020" +
      "\001\022\014\n\010HU_FLASH\020\002\022\r\n\tON_DEMAND\020\003\022\022\n\016MISDN_" +
      "MISMATCH\020\004\022\025\n\021DISCREPENCY_CHECK\020\005\022\024\n\020SOF" +
      "TWARE_REFRESH\020\006\022\013\n\007HU_SWAP\020\007\022\014\n\010TBM_SWAP" +
      "\020\010\022\016\n\nENROLLMENT\020\t\022\021\n\rRETURN_TO_NEW\020\n\"\302\001",
      "\n\024ProvisioningResponse\022P\n\014responseEnum\030\001" +
      " \001(\0162:.com.fca.uconnect.global.Provision" +
      "ingResponse.ResponseEnum\022\023\n\013isTransient\030" +
      "\002 \001(\010\022\031\n\021failureReasonCode\030\003 \001(\005\"(\n\014Resp" +
      "onseEnum\022\013\n\007SUCCESS\020\000\022\013\n\007FAILURE\020\001\"\376\001\n\020P" +
      "rovisioningPush\022M\n\023serviceSubscription\030\001" +
      " \001(\01320.com.fca.uconnect.global.ServiceSu" +
      "bscriptionInfo\022)\n\003drm\030\002 \001(\0132\034.com.fca.uc" +
      "onnect.global.DRM\022\021\n\ttimestamp\030\003 \001(\003\022\021\n\t" +
      "messageId\030\004 \001(\005\022\023\n\013signatureId\030\005 \001(\005\0225\n\007",
      "bimdPSK\030\006 \001(\0132$.com.fca.uconnect.global." +
      "BIMDPSKInfo\"\334\001\n\023ProvisioningPushAck\022[\n\010r" +
      "esponse\030\001 \001(\0162I.com.fca.uconnect.global." +
      "ProvisioningPushAck.ProvisioningPushResp" +
      "onseEnum\022\023\n\013isTransient\030\002 \001(\010\022\031\n\021failure" +
      "ReasonCode\030\003 \001(\005\"8\n\034ProvisioningPushResp" +
      "onseEnum\022\013\n\007SUCCESS\020\000\022\013\n\007FAILURE\020\001\"\242\010\n\022S" +
      "erviceDescription\022P\n\013serviceType\030\001 \001(\0162;" +
      ".com.fca.uconnect.global.ServiceDescript" +
      "ion.ServiceTypeEnum\022\022\n\nexpireTime\030\002 \001(\003\022",
      "c\n\024additionalParameters\030\003 \003(\0132E.com.fca." +
      "uconnect.global.ServiceDescription.Addit" +
      "ionalParametersEntry\022B\n\006status\030\004 \001(\01622.c" +
      "om.fca.uconnect.global.ServiceDescriptio" +
      "n.Status\022\017\n\007version\030\005 \001(\005\022\021\n\tcontentId\030\006" +
      " \001(\005\022\025\n\rappIdentifier\030\007 \001(\t\022\027\n\017appLaunch" +
      "erMask\030\010 \001(\005\022\025\n\rinstallerType\030\t \001(\t\022\021\n\ta" +
      "ccountDN\030\n \001(\t\022\022\n\nfileLength\030\013 \001(\005\022\024\n\014fi" +
      "leChecksum\030\014 \001(\005\022\023\n\013featureMask\030\r \001(\t\022(\n" +
      " expirexTimeSpanBegiTimeSpanBegin\030\016 \001(\003\022",
      "\031\n\021expireTimeSpanEnd\030\017 \001(\003\022\017\n\007emailId\030\020 " +
      "\001(\t\032;\n\031AdditionalParametersEntry\022\013\n\003key\030" +
      "\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\210\003\n\017ServiceType" +
      "Enum\022\017\n\013WIFIHOTSPOT\020\000\022\t\n\005ECALL\020\001\022\022\n\016ROAD" +
      "SIDEASSIST\020\002\022\032\n\026THEFTALARMNOTIFICATION\020\003" +
      "\022\027\n\023STOLENVEHICLEASSIST\020\004\022\030\n\024SENDDESTINA" +
      "TIONTOCAR\020\005\022\021\n\rVEHICLEFINDER\020\006\022\025\n\021REMOTE" +
      "DOORCONTROL\020\007\022\025\n\021REMOTEENGINESTART\020\010\022\026\n\022" +
      "REMOTEHORNANDFLASH\020\t\022\020\n\014RADIOPRESETS\020\n\022\022" +
      "\n\016MUSICFAVORITES\020\013\022\017\n\013TEMPERATURE\020\014\022\025\n\021H",
      "EATEDCOOLEDSEATS\020\r\022\027\n\023HEATEDSTEERINGWHEE" +
      "L\020\016\022\024\n\020CONNECTEDVEHICLE\020\017\022\010\n\004SQDF\020\020\022\007\n\003F" +
      "TM\020\021\022\r\n\tEVDATACHN\020\022\"\"\n\006Status\022\014\n\010INACTIV" +
      "E\020\000\022\n\n\006ACTIVE\020\001\"X\n\027ServiceSubscriptionIn" +
      "fo\022=\n\010services\030\001 \003(\0132+.com.fca.uconnect." +
      "global.ServiceDescription\"\210\001\n\013BIMDPSKInf" +
      "o\022@\n\ndeviceKeys\030\001 \003(\0132,.com.fca.uconnect" +
      ".global.BIMDPSKInfo.BIMDPSK\0327\n\007BIMDPSK\022\026" +
      "\n\016mobileDeviceId\030\001 \001(\t\022\024\n\014preSharedKey\030\002" +
      " \001(\014P\000P\001b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor(),
          com.fca.uconnect.global.GlobalUconnectDRM.getDescriptor(),
        }, assigner);
    internal_static_com_fca_uconnect_global_InitiateProvisioningPush_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_InitiateProvisioningPush_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_InitiateProvisioningPush_descriptor,
        new java.lang.String[] { "Parameters", });
    internal_static_com_fca_uconnect_global_InitiateProvisioningPush_ParametersEntry_descriptor =
      internal_static_com_fca_uconnect_global_InitiateProvisioningPush_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_InitiateProvisioningPush_ParametersEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_InitiateProvisioningPush_ParametersEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_fca_uconnect_global_ProvisioningRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_ProvisioningRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ProvisioningRequest_descriptor,
        new java.lang.String[] { "VehicleId", "DrmHash", "AdditionalModemParams", "Reason", });
    internal_static_com_fca_uconnect_global_ProvisioningRequest_AdditionalModemParamsEntry_descriptor =
      internal_static_com_fca_uconnect_global_ProvisioningRequest_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_ProvisioningRequest_AdditionalModemParamsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ProvisioningRequest_AdditionalModemParamsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_fca_uconnect_global_ProvisioningResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_ProvisioningResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ProvisioningResponse_descriptor,
        new java.lang.String[] { "ResponseEnum", "IsTransient", "FailureReasonCode", });
    internal_static_com_fca_uconnect_global_ProvisioningPush_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_ProvisioningPush_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ProvisioningPush_descriptor,
        new java.lang.String[] { "ServiceSubscription", "Drm", "Timestamp", "MessageId", "SignatureId", "BimdPSK", });
    internal_static_com_fca_uconnect_global_ProvisioningPushAck_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_fca_uconnect_global_ProvisioningPushAck_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ProvisioningPushAck_descriptor,
        new java.lang.String[] { "Response", "IsTransient", "FailureReasonCode", });
    internal_static_com_fca_uconnect_global_ServiceDescription_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_fca_uconnect_global_ServiceDescription_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ServiceDescription_descriptor,
        new java.lang.String[] { "ServiceType", "ExpireTime", "AdditionalParameters", "Status", "Version", "ContentId", "AppIdentifier", "AppLauncherMask", "InstallerType", "AccountDN", "FileLength", "FileChecksum", "FeatureMask", "ExpirexTimeSpanBegiTimeSpanBegin", "ExpireTimeSpanEnd", "EmailId", });
    internal_static_com_fca_uconnect_global_ServiceDescription_AdditionalParametersEntry_descriptor =
      internal_static_com_fca_uconnect_global_ServiceDescription_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_ServiceDescription_AdditionalParametersEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ServiceDescription_AdditionalParametersEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ServiceSubscriptionInfo_descriptor,
        new java.lang.String[] { "Services", });
    internal_static_com_fca_uconnect_global_BIMDPSKInfo_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_com_fca_uconnect_global_BIMDPSKInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_BIMDPSKInfo_descriptor,
        new java.lang.String[] { "DeviceKeys", });
    internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_descriptor =
      internal_static_com_fca_uconnect_global_BIMDPSKInfo_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_BIMDPSKInfo_BIMDPSK_descriptor,
        new java.lang.String[] { "MobileDeviceId", "PreSharedKey", });
    com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor();
    com.fca.uconnect.global.GlobalUconnectDRM.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
