content: // Protocol Buffers - Google's data interchange format
  // Copyright 2008 Google Inc.  All rights reserved.
  // https://developers.google.com/protocol-buffers/
  //
  // Redistribution and use in source and binary forms, with or without
  // modification, are permitted provided that the following conditions are
  // met:
  //
  //     * Redistributions of source code must retain the above copyright
  // notice, this list of conditions and the following disclaimer.
  //     * Redistributions in binary form must reproduce the above
  // copyright notice, this list of conditions and the following disclaimer
  // in the documentation and/or other materials provided with the
  // distribution.
  //     * Neither the name of Google Inc. nor the names of its
  // contributors may be used to endorse or promote products derived from
  // this software without specific prior written permission.
  //
  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  package com.google.protobuf;
  
  import static com.google.protobuf.UnittestLite.defaultBoolExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultBytesExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultCordExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultDoubleExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultFixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultFixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultFloatExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultForeignEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultImportEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultInt32ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultInt64ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultNestedEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultSfixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultSfixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultSint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultSint64ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultStringExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultStringPieceExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultUint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.defaultUint64ExtensionLite;
  import static com.google.protobuf.UnittestLite.oneofBytesExtensionLite;
  import static com.google.protobuf.UnittestLite.oneofNestedMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.oneofStringExtensionLite;
  import static com.google.protobuf.UnittestLite.oneofUint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalBoolExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalBytesExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalCordExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalDoubleExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalFixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalFixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalFloatExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalForeignEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalForeignMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalGroupExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalImportEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalImportMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalInt32ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalInt64ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalLazyMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalNestedEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalNestedMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalPublicImportMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalSfixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalSfixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalSint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalSint64ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalStringExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalStringPieceExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalUint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.optionalUint64ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedBoolExtensionLite;
  import static com.google.protobuf.UnittestLite.packedDoubleExtensionLite;
  import static com.google.protobuf.UnittestLite.packedEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.packedFixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedFixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedFloatExtensionLite;
  import static com.google.protobuf.UnittestLite.packedInt32ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedInt64ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedSfixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedSfixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedSint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedSint64ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedUint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.packedUint64ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedBoolExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedBytesExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedCordExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedDoubleExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedFixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedFixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedFloatExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedForeignEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedForeignMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedGroupExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedImportEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedImportMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedInt32ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedInt64ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedLazyMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedNestedEnumExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedNestedMessageExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedSfixed32ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedSfixed64ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedSint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedSint64ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedStringExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedStringPieceExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedUint32ExtensionLite;
  import static com.google.protobuf.UnittestLite.repeatedUint64ExtensionLite;
  
  import com.google.protobuf.UnittestImportLite.ImportEnumLite;
  import com.google.protobuf.UnittestImportLite.ImportMessageLite;
  import com.google.protobuf.UnittestImportPublicLite.PublicImportMessageLite;
  import com.google.protobuf.UnittestLite.ForeignEnumLite;
  import com.google.protobuf.UnittestLite.ForeignMessageLite;
  import com.google.protobuf.UnittestLite.OptionalGroup_extension_lite;
  import com.google.protobuf.UnittestLite.RepeatedGroup_extension_lite;
  import com.google.protobuf.UnittestLite.TestAllExtensionsLite;
  import com.google.protobuf.UnittestLite.TestAllTypesLite;
  import com.google.protobuf.UnittestLite.TestPackedExtensionsLite;
  
  /**
   * Contains methods for setting fields of {@code TestAllTypesLite}, {@code TestAllExtensionsLite},
   * and {@code TestPackedExtensionsLite}. This is analogous to the functionality in TestUtil.java but
   * does not depend on the presence of any non-lite protos.
   *
   * <p>This code is not to be used outside of {@code com.google.protobuf} and subpackages.
   */
  public final class TestUtilLite {
    private TestUtilLite() {}
  
    /** Helper to convert a String to ByteString. */
    static ByteString toBytes(String str) {
      return ByteString.copyFrom(str.getBytes(Internal.UTF_8));
    }
  
    /**
     * Get a {@code TestAllTypesLite.Builder} with all fields set as they would be by {@link
     * #setAllFields(TestAllTypesLite.Builder)}.
     */
    public static TestAllTypesLite.Builder getAllLiteSetBuilder() {
      TestAllTypesLite.Builder builder = TestAllTypesLite.newBuilder();
      setAllFields(builder);
      return builder;
    }
  
    /**
     * Get a {@code TestAllExtensionsLite} with all fields set as they would be by {@link
     * #setAllExtensions(TestAllExtensionsLite.Builder)}.
     */
    public static TestAllExtensionsLite getAllLiteExtensionsSet() {
      TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.newBuilder();
      setAllExtensions(builder);
      return builder.build();
    }
  
    public static TestPackedExtensionsLite getLitePackedExtensionsSet() {
      TestPackedExtensionsLite.Builder builder = TestPackedExtensionsLite.newBuilder();
      setPackedExtensions(builder);
      return builder.build();
    }
  
    /** Set every field of {@code builder} to the values expected by {@code assertAllFieldsSet()}. */
    public static void setAllFields(TestAllTypesLite.Builder builder) {
      builder.setOptionalInt32(101);
      builder.setOptionalInt64(102);
      builder.setOptionalUint32(103);
      builder.setOptionalUint64(104);
      builder.setOptionalSint32(105);
      builder.setOptionalSint64(106);
      builder.setOptionalFixed32(107);
      builder.setOptionalFixed64(108);
      builder.setOptionalSfixed32(109);
      builder.setOptionalSfixed64(110);
      builder.setOptionalFloat(111);
      builder.setOptionalDouble(112);
      builder.setOptionalBool(true);
      builder.setOptionalString("115");
      builder.setOptionalBytes(toBytes("116"));
  
      builder.setOptionalGroup(TestAllTypesLite.OptionalGroup.newBuilder().setA(117).build());
      builder.setOptionalNestedMessage(
          TestAllTypesLite.NestedMessage.newBuilder().setBb(118).build());
      builder.setOptionalForeignMessage(ForeignMessageLite.newBuilder().setC(119).build());
      builder.setOptionalImportMessage(ImportMessageLite.newBuilder().setD(120).build());
      builder.setOptionalPublicImportMessage(PublicImportMessageLite.newBuilder().setE(126).build());
      builder.setOptionalLazyMessage(TestAllTypesLite.NestedMessage.newBuilder().setBb(127).build());
  
      builder.setOptionalNestedEnum(TestAllTypesLite.NestedEnum.BAZ);
      builder.setOptionalForeignEnum(ForeignEnumLite.FOREIGN_LITE_BAZ);
      builder.setOptionalImportEnum(ImportEnumLite.IMPORT_LITE_BAZ);
  
      builder.setOptionalStringPiece("124");
      builder.setOptionalCord("125");
  
      // -----------------------------------------------------------------
  
      builder.addRepeatedInt32(201);
      builder.addRepeatedInt64(202);
      builder.addRepeatedUint32(203);
      builder.addRepeatedUint64(204);
      builder.addRepeatedSint32(205);
      builder.addRepeatedSint64(206);
      builder.addRepeatedFixed32(207);
      builder.addRepeatedFixed64(208);
      builder.addRepeatedSfixed32(209);
      builder.addRepeatedSfixed64(210);
      builder.addRepeatedFloat(211);
      builder.addRepeatedDouble(212);
      builder.addRepeatedBool(true);
      builder.addRepeatedString("215");
      builder.addRepeatedBytes(toBytes("216"));
  
      builder.addRepeatedGroup(TestAllTypesLite.RepeatedGroup.newBuilder().setA(217).build());
      builder.addRepeatedNestedMessage(
          TestAllTypesLite.NestedMessage.newBuilder().setBb(218).build());
      builder.addRepeatedForeignMessage(ForeignMessageLite.newBuilder().setC(219).build());
      builder.addRepeatedImportMessage(ImportMessageLite.newBuilder().setD(220).build());
      builder.addRepeatedLazyMessage(TestAllTypesLite.NestedMessage.newBuilder().setBb(227).build());
  
      builder.addRepeatedNestedEnum(TestAllTypesLite.NestedEnum.BAR);
      builder.addRepeatedForeignEnum(ForeignEnumLite.FOREIGN_LITE_BAR);
      builder.addRepeatedImportEnum(ImportEnumLite.IMPORT_LITE_BAR);
  
      builder.addRepeatedStringPiece("224");
      builder.addRepeatedCord("225");
  
      // Add a second one of each field.
      builder.addRepeatedInt32(301);
      builder.addRepeatedInt64(302);
      builder.addRepeatedUint32(303);
      builder.addRepeatedUint64(304);
      builder.addRepeatedSint32(305);
      builder.addRepeatedSint64(306);
      builder.addRepeatedFixed32(307);
      builder.addRepeatedFixed64(308);
      builder.addRepeatedSfixed32(309);
      builder.addRepeatedSfixed64(310);
      builder.addRepeatedFloat(311);
      builder.addRepeatedDouble(312);
      builder.addRepeatedBool(false);
      builder.addRepeatedString("315");
      builder.addRepeatedBytes(toBytes("316"));
  
      builder.addRepeatedGroup(TestAllTypesLite.RepeatedGroup.newBuilder().setA(317).build());
      builder.addRepeatedNestedMessage(
          TestAllTypesLite.NestedMessage.newBuilder().setBb(318).build());
      builder.addRepeatedForeignMessage(ForeignMessageLite.newBuilder().setC(319).build());
      builder.addRepeatedImportMessage(ImportMessageLite.newBuilder().setD(320).build());
      builder.addRepeatedLazyMessage(TestAllTypesLite.NestedMessage.newBuilder().setBb(327).build());
  
      builder.addRepeatedNestedEnum(TestAllTypesLite.NestedEnum.BAZ);
      builder.addRepeatedForeignEnum(ForeignEnumLite.FOREIGN_LITE_BAZ);
      builder.addRepeatedImportEnum(ImportEnumLite.IMPORT_LITE_BAZ);
  
      builder.addRepeatedStringPiece("324");
      builder.addRepeatedCord("325");
  
      // -----------------------------------------------------------------
  
      builder.setDefaultInt32(401);
      builder.setDefaultInt64(402);
      builder.setDefaultUint32(403);
      builder.setDefaultUint64(404);
      builder.setDefaultSint32(405);
      builder.setDefaultSint64(406);
      builder.setDefaultFixed32(407);
      builder.setDefaultFixed64(408);
      builder.setDefaultSfixed32(409);
      builder.setDefaultSfixed64(410);
      builder.setDefaultFloat(411);
      builder.setDefaultDouble(412);
      builder.setDefaultBool(false);
      builder.setDefaultString("415");
      builder.setDefaultBytes(toBytes("416"));
  
      builder.setDefaultNestedEnum(TestAllTypesLite.NestedEnum.FOO);
      builder.setDefaultForeignEnum(ForeignEnumLite.FOREIGN_LITE_FOO);
      builder.setDefaultImportEnum(ImportEnumLite.IMPORT_LITE_FOO);
  
      builder.setDefaultStringPiece("424");
      builder.setDefaultCord("425");
  
      builder.setOneofUint32(601);
      builder.setOneofNestedMessage(TestAllTypesLite.NestedMessage.newBuilder().setBb(602).build());
      builder.setOneofString("603");
      builder.setOneofBytes(toBytes("604"));
    }
  
    /**
     * Get an unmodifiable {@link ExtensionRegistryLite} containing all the extensions of {@code
     * TestAllExtensionsLite}.
     */
    public static ExtensionRegistryLite getExtensionRegistryLite() {
      ExtensionRegistryLite registry = ExtensionRegistryLite.newInstance();
      registerAllExtensionsLite(registry);
      return registry.getUnmodifiable();
    }
  
    /**
     * Register all of {@code TestAllExtensionsLite}'s extensions with the given {@link
     * ExtensionRegistryLite}.
     */
    public static void registerAllExtensionsLite(ExtensionRegistryLite registry) {
      UnittestLite.registerAllExtensions(registry);
    }
  
    // ===================================================================
    // Lite extensions
  
    /**
     * Set every field of {@code message} to the values expected by {@code assertAllExtensionsSet()}.
     */
    public static void setAllExtensions(TestAllExtensionsLite.Builder message) {
      message.setExtension(optionalInt32ExtensionLite, 101);
      message.setExtension(optionalInt64ExtensionLite, 102L);
      message.setExtension(optionalUint32ExtensionLite, 103);
      message.setExtension(optionalUint64ExtensionLite, 104L);
      message.setExtension(optionalSint32ExtensionLite, 105);
      message.setExtension(optionalSint64ExtensionLite, 106L);
      message.setExtension(optionalFixed32ExtensionLite, 107);
      message.setExtension(optionalFixed64ExtensionLite, 108L);
      message.setExtension(optionalSfixed32ExtensionLite, 109);
      message.setExtension(optionalSfixed64ExtensionLite, 110L);
      message.setExtension(optionalFloatExtensionLite, 111F);
      message.setExtension(optionalDoubleExtensionLite, 112D);
      message.setExtension(optionalBoolExtensionLite, true);
      message.setExtension(optionalStringExtensionLite, "115");
      message.setExtension(optionalBytesExtensionLite, toBytes("116"));
  
      message.setExtension(
          optionalGroupExtensionLite, OptionalGroup_extension_lite.newBuilder().setA(117).build());
      message.setExtension(
          optionalNestedMessageExtensionLite,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(118).build());
      message.setExtension(
          optionalForeignMessageExtensionLite, ForeignMessageLite.newBuilder().setC(119).build());
      message.setExtension(
          optionalImportMessageExtensionLite, ImportMessageLite.newBuilder().setD(120).build());
      message.setExtension(
          optionalPublicImportMessageExtensionLite,
          PublicImportMessageLite.newBuilder().setE(126).build());
      message.setExtension(
          optionalLazyMessageExtensionLite,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(127).build());
  
      message.setExtension(optionalNestedEnumExtensionLite, TestAllTypesLite.NestedEnum.BAZ);
      message.setExtension(optionalForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ);
      message.setExtension(optionalImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ);
  
      message.setExtension(optionalStringPieceExtensionLite, "124");
      message.setExtension(optionalCordExtensionLite, "125");
  
      // -----------------------------------------------------------------
  
      message.addExtension(repeatedInt32ExtensionLite, 201);
      message.addExtension(repeatedInt64ExtensionLite, 202L);
      message.addExtension(repeatedUint32ExtensionLite, 203);
      message.addExtension(repeatedUint64ExtensionLite, 204L);
      message.addExtension(repeatedSint32ExtensionLite, 205);
      message.addExtension(repeatedSint64ExtensionLite, 206L);
      message.addExtension(repeatedFixed32ExtensionLite, 207);
      message.addExtension(repeatedFixed64ExtensionLite, 208L);
      message.addExtension(repeatedSfixed32ExtensionLite, 209);
      message.addExtension(repeatedSfixed64ExtensionLite, 210L);
      message.addExtension(repeatedFloatExtensionLite, 211F);
      message.addExtension(repeatedDoubleExtensionLite, 212D);
      message.addExtension(repeatedBoolExtensionLite, true);
      message.addExtension(repeatedStringExtensionLite, "215");
      message.addExtension(repeatedBytesExtensionLite, toBytes("216"));
  
      message.addExtension(
          repeatedGroupExtensionLite, RepeatedGroup_extension_lite.newBuilder().setA(217).build());
      message.addExtension(
          repeatedNestedMessageExtensionLite,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(218).build());
      message.addExtension(
          repeatedForeignMessageExtensionLite, ForeignMessageLite.newBuilder().setC(219).build());
      message.addExtension(
          repeatedImportMessageExtensionLite, ImportMessageLite.newBuilder().setD(220).build());
      message.addExtension(
          repeatedLazyMessageExtensionLite,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(227).build());
  
      message.addExtension(repeatedNestedEnumExtensionLite, TestAllTypesLite.NestedEnum.BAR);
      message.addExtension(repeatedForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAR);
      message.addExtension(repeatedImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAR);
  
      message.addExtension(repeatedStringPieceExtensionLite, "224");
      message.addExtension(repeatedCordExtensionLite, "225");
  
      // Add a second one of each field.
      message.addExtension(repeatedInt32ExtensionLite, 301);
      message.addExtension(repeatedInt64ExtensionLite, 302L);
      message.addExtension(repeatedUint32ExtensionLite, 303);
      message.addExtension(repeatedUint64ExtensionLite, 304L);
      message.addExtension(repeatedSint32ExtensionLite, 305);
      message.addExtension(repeatedSint64ExtensionLite, 306L);
      message.addExtension(repeatedFixed32ExtensionLite, 307);
      message.addExtension(repeatedFixed64ExtensionLite, 308L);
      message.addExtension(repeatedSfixed32ExtensionLite, 309);
      message.addExtension(repeatedSfixed64ExtensionLite, 310L);
      message.addExtension(repeatedFloatExtensionLite, 311F);
      message.addExtension(repeatedDoubleExtensionLite, 312D);
      message.addExtension(repeatedBoolExtensionLite, false);
      message.addExtension(repeatedStringExtensionLite, "315");
      message.addExtension(repeatedBytesExtensionLite, toBytes("316"));
  
      message.addExtension(
          repeatedGroupExtensionLite, RepeatedGroup_extension_lite.newBuilder().setA(317).build());
      message.addExtension(
          repeatedNestedMessageExtensionLite,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(318).build());
      message.addExtension(
          repeatedForeignMessageExtensionLite, ForeignMessageLite.newBuilder().setC(319).build());
      message.addExtension(
          repeatedImportMessageExtensionLite, ImportMessageLite.newBuilder().setD(320).build());
      message.addExtension(
          repeatedLazyMessageExtensionLite,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(327).build());
  
      message.addExtension(repeatedNestedEnumExtensionLite, TestAllTypesLite.NestedEnum.BAZ);
      message.addExtension(repeatedForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ);
      message.addExtension(repeatedImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ);
  
      message.addExtension(repeatedStringPieceExtensionLite, "324");
      message.addExtension(repeatedCordExtensionLite, "325");
  
      // -----------------------------------------------------------------
  
      message.setExtension(defaultInt32ExtensionLite, 401);
      message.setExtension(defaultInt64ExtensionLite, 402L);
      message.setExtension(defaultUint32ExtensionLite, 403);
      message.setExtension(defaultUint64ExtensionLite, 404L);
      message.setExtension(defaultSint32ExtensionLite, 405);
      message.setExtension(defaultSint64ExtensionLite, 406L);
      message.setExtension(defaultFixed32ExtensionLite, 407);
      message.setExtension(defaultFixed64ExtensionLite, 408L);
      message.setExtension(defaultSfixed32ExtensionLite, 409);
      message.setExtension(defaultSfixed64ExtensionLite, 410L);
      message.setExtension(defaultFloatExtensionLite, 411F);
      message.setExtension(defaultDoubleExtensionLite, 412D);
      message.setExtension(defaultBoolExtensionLite, false);
      message.setExtension(defaultStringExtensionLite, "415");
      message.setExtension(defaultBytesExtensionLite, toBytes("416"));
  
      message.setExtension(defaultNestedEnumExtensionLite, TestAllTypesLite.NestedEnum.FOO);
      message.setExtension(defaultForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_FOO);
      message.setExtension(defaultImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_FOO);
  
      message.setExtension(defaultStringPieceExtensionLite, "424");
      message.setExtension(defaultCordExtensionLite, "425");
  
      message.setExtension(oneofUint32ExtensionLite, 601);
      message.setExtension(
          oneofNestedMessageExtensionLite,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(602).build());
      message.setExtension(oneofStringExtensionLite, "603");
      message.setExtension(oneofBytesExtensionLite, toBytes("604"));
    }
  
    // -------------------------------------------------------------------
  
    /**
     * Modify the repeated extensions of {@code message} to contain the values expected by {@code
     * assertRepeatedExtensionsModified()}.
     */
    public static void modifyRepeatedExtensions(TestAllExtensionsLite.Builder message) {
      message.setExtension(repeatedInt32ExtensionLite, 1, 501);
      message.setExtension(repeatedInt64ExtensionLite, 1, 502L);
      message.setExtension(repeatedUint32ExtensionLite, 1, 503);
      message.setExtension(repeatedUint64ExtensionLite, 1, 504L);
      message.setExtension(repeatedSint32ExtensionLite, 1, 505);
      message.setExtension(repeatedSint64ExtensionLite, 1, 506L);
      message.setExtension(repeatedFixed32ExtensionLite, 1, 507);
      message.setExtension(repeatedFixed64ExtensionLite, 1, 508L);
      message.setExtension(repeatedSfixed32ExtensionLite, 1, 509);
      message.setExtension(repeatedSfixed64ExtensionLite, 1, 510L);
      message.setExtension(repeatedFloatExtensionLite, 1, 511F);
      message.setExtension(repeatedDoubleExtensionLite, 1, 512D);
      message.setExtension(repeatedBoolExtensionLite, 1, true);
      message.setExtension(repeatedStringExtensionLite, 1, "515");
      message.setExtension(repeatedBytesExtensionLite, 1, toBytes("516"));
  
      message.setExtension(
          repeatedGroupExtensionLite, 1, RepeatedGroup_extension_lite.newBuilder().setA(517).build());
      message.setExtension(
          repeatedNestedMessageExtensionLite,
          1,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(518).build());
      message.setExtension(
          repeatedForeignMessageExtensionLite, 1, ForeignMessageLite.newBuilder().setC(519).build());
      message.setExtension(
          repeatedImportMessageExtensionLite, 1, ImportMessageLite.newBuilder().setD(520).build());
      message.setExtension(
          repeatedLazyMessageExtensionLite,
          1,
          TestAllTypesLite.NestedMessage.newBuilder().setBb(527).build());
  
      message.setExtension(repeatedNestedEnumExtensionLite, 1, TestAllTypesLite.NestedEnum.FOO);
      message.setExtension(repeatedForeignEnumExtensionLite, 1, ForeignEnumLite.FOREIGN_LITE_FOO);
      message.setExtension(repeatedImportEnumExtensionLite, 1, ImportEnumLite.IMPORT_LITE_FOO);
  
      message.setExtension(repeatedStringPieceExtensionLite, 1, "524");
      message.setExtension(repeatedCordExtensionLite, 1, "525");
    }
  
    public static void setPackedExtensions(TestPackedExtensionsLite.Builder message) {
      message.addExtension(packedInt32ExtensionLite, 601);
      message.addExtension(packedInt64ExtensionLite, 602L);
      message.addExtension(packedUint32ExtensionLite, 603);
      message.addExtension(packedUint64ExtensionLite, 604L);
      message.addExtension(packedSint32ExtensionLite, 605);
      message.addExtension(packedSint64ExtensionLite, 606L);
      message.addExtension(packedFixed32ExtensionLite, 607);
      message.addExtension(packedFixed64ExtensionLite, 608L);
      message.addExtension(packedSfixed32ExtensionLite, 609);
      message.addExtension(packedSfixed64ExtensionLite, 610L);
      message.addExtension(packedFloatExtensionLite, 611F);
      message.addExtension(packedDoubleExtensionLite, 612D);
      message.addExtension(packedBoolExtensionLite, true);
      message.addExtension(packedEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAR);
      // Add a second one of each field.
      message.addExtension(packedInt32ExtensionLite, 701);
      message.addExtension(packedInt64ExtensionLite, 702L);
      message.addExtension(packedUint32ExtensionLite, 703);
      message.addExtension(packedUint64ExtensionLite, 704L);
      message.addExtension(packedSint32ExtensionLite, 705);
      message.addExtension(packedSint64ExtensionLite, 706L);
      message.addExtension(packedFixed32ExtensionLite, 707);
      message.addExtension(packedFixed64ExtensionLite, 708L);
      message.addExtension(packedSfixed32ExtensionLite, 709);
      message.addExtension(packedSfixed64ExtensionLite, 710L);
      message.addExtension(packedFloatExtensionLite, 711F);
      message.addExtension(packedDoubleExtensionLite, 712D);
      message.addExtension(packedBoolExtensionLite, false);
      message.addExtension(packedEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ);
    }
  }
  