// Generated by the protocol buffer compiler.  DO NOT EDIT!
// Source file unittest_lite.proto

import Foundation
import ProtocolBuffers


public extension ProtobufUnittest{}

public func == (lhs: ProtobufUnittest.TestAllTypesLite, rhs: ProtobufUnittest.TestAllTypesLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasOptionalInt32 == rhs.hasOptionalInt32) && (!lhs.hasOptionalInt32 || lhs.optionalInt32 == rhs.optionalInt32)
  fieldCheck = fieldCheck && (lhs.hasOptionalInt64 == rhs.hasOptionalInt64) && (!lhs.hasOptionalInt64 || lhs.optionalInt64 == rhs.optionalInt64)
  fieldCheck = fieldCheck && (lhs.hasOptionalUint32 == rhs.hasOptionalUint32) && (!lhs.hasOptionalUint32 || lhs.optionalUint32 == rhs.optionalUint32)
  fieldCheck = fieldCheck && (lhs.hasOptionalUint64 == rhs.hasOptionalUint64) && (!lhs.hasOptionalUint64 || lhs.optionalUint64 == rhs.optionalUint64)
  fieldCheck = fieldCheck && (lhs.hasOptionalSint32 == rhs.hasOptionalSint32) && (!lhs.hasOptionalSint32 || lhs.optionalSint32 == rhs.optionalSint32)
  fieldCheck = fieldCheck && (lhs.hasOptionalSint64 == rhs.hasOptionalSint64) && (!lhs.hasOptionalSint64 || lhs.optionalSint64 == rhs.optionalSint64)
  fieldCheck = fieldCheck && (lhs.hasOptionalFixed32 == rhs.hasOptionalFixed32) && (!lhs.hasOptionalFixed32 || lhs.optionalFixed32 == rhs.optionalFixed32)
  fieldCheck = fieldCheck && (lhs.hasOptionalFixed64 == rhs.hasOptionalFixed64) && (!lhs.hasOptionalFixed64 || lhs.optionalFixed64 == rhs.optionalFixed64)
  fieldCheck = fieldCheck && (lhs.hasOptionalSfixed32 == rhs.hasOptionalSfixed32) && (!lhs.hasOptionalSfixed32 || lhs.optionalSfixed32 == rhs.optionalSfixed32)
  fieldCheck = fieldCheck && (lhs.hasOptionalSfixed64 == rhs.hasOptionalSfixed64) && (!lhs.hasOptionalSfixed64 || lhs.optionalSfixed64 == rhs.optionalSfixed64)
  fieldCheck = fieldCheck && (lhs.hasOptionalFloat == rhs.hasOptionalFloat) && (!lhs.hasOptionalFloat || lhs.optionalFloat == rhs.optionalFloat)
  fieldCheck = fieldCheck && (lhs.hasOptionalDouble == rhs.hasOptionalDouble) && (!lhs.hasOptionalDouble || lhs.optionalDouble == rhs.optionalDouble)
  fieldCheck = fieldCheck && (lhs.hasOptionalBool == rhs.hasOptionalBool) && (!lhs.hasOptionalBool || lhs.optionalBool == rhs.optionalBool)
  fieldCheck = fieldCheck && (lhs.hasOptionalString == rhs.hasOptionalString) && (!lhs.hasOptionalString || lhs.optionalString == rhs.optionalString)
  fieldCheck = fieldCheck && (lhs.hasOptionalBytes == rhs.hasOptionalBytes) && (!lhs.hasOptionalBytes || lhs.optionalBytes == rhs.optionalBytes)
  fieldCheck = fieldCheck && (lhs.hasOptionalGroup == rhs.hasOptionalGroup) && (!lhs.hasOptionalGroup || lhs.optionalGroup == rhs.optionalGroup)
  fieldCheck = fieldCheck && (lhs.hasOptionalNestedMessage == rhs.hasOptionalNestedMessage) && (!lhs.hasOptionalNestedMessage || lhs.optionalNestedMessage == rhs.optionalNestedMessage)
  fieldCheck = fieldCheck && (lhs.hasOptionalForeignMessage == rhs.hasOptionalForeignMessage) && (!lhs.hasOptionalForeignMessage || lhs.optionalForeignMessage == rhs.optionalForeignMessage)
  fieldCheck = fieldCheck && (lhs.hasOptionalImportMessage == rhs.hasOptionalImportMessage) && (!lhs.hasOptionalImportMessage || lhs.optionalImportMessage == rhs.optionalImportMessage)
  fieldCheck = fieldCheck && (lhs.hasOptionalNestedEnum == rhs.hasOptionalNestedEnum) && (!lhs.hasOptionalNestedEnum || lhs.optionalNestedEnum == rhs.optionalNestedEnum)
  fieldCheck = fieldCheck && (lhs.hasOptionalForeignEnum == rhs.hasOptionalForeignEnum) && (!lhs.hasOptionalForeignEnum || lhs.optionalForeignEnum == rhs.optionalForeignEnum)
  fieldCheck = fieldCheck && (lhs.hasOptionalImportEnum == rhs.hasOptionalImportEnum) && (!lhs.hasOptionalImportEnum || lhs.optionalImportEnum == rhs.optionalImportEnum)
  fieldCheck = fieldCheck && (lhs.hasOptionalStringPiece == rhs.hasOptionalStringPiece) && (!lhs.hasOptionalStringPiece || lhs.optionalStringPiece == rhs.optionalStringPiece)
  fieldCheck = fieldCheck && (lhs.hasOptionalCord == rhs.hasOptionalCord) && (!lhs.hasOptionalCord || lhs.optionalCord == rhs.optionalCord)
  fieldCheck = fieldCheck && (lhs.hasOptionalPublicImportMessage == rhs.hasOptionalPublicImportMessage) && (!lhs.hasOptionalPublicImportMessage || lhs.optionalPublicImportMessage == rhs.optionalPublicImportMessage)
  fieldCheck = fieldCheck && (lhs.hasOptionalLazyMessage == rhs.hasOptionalLazyMessage) && (!lhs.hasOptionalLazyMessage || lhs.optionalLazyMessage == rhs.optionalLazyMessage)
  fieldCheck = fieldCheck && (lhs.repeatedInt32 == rhs.repeatedInt32)
  fieldCheck = fieldCheck && (lhs.repeatedInt64 == rhs.repeatedInt64)
  fieldCheck = fieldCheck && (lhs.repeatedUint32 == rhs.repeatedUint32)
  fieldCheck = fieldCheck && (lhs.repeatedUint64 == rhs.repeatedUint64)
  fieldCheck = fieldCheck && (lhs.repeatedSint32 == rhs.repeatedSint32)
  fieldCheck = fieldCheck && (lhs.repeatedSint64 == rhs.repeatedSint64)
  fieldCheck = fieldCheck && (lhs.repeatedFixed32 == rhs.repeatedFixed32)
  fieldCheck = fieldCheck && (lhs.repeatedFixed64 == rhs.repeatedFixed64)
  fieldCheck = fieldCheck && (lhs.repeatedSfixed32 == rhs.repeatedSfixed32)
  fieldCheck = fieldCheck && (lhs.repeatedSfixed64 == rhs.repeatedSfixed64)
  fieldCheck = fieldCheck && (lhs.repeatedFloat == rhs.repeatedFloat)
  fieldCheck = fieldCheck && (lhs.repeatedDouble == rhs.repeatedDouble)
  fieldCheck = fieldCheck && (lhs.repeatedBool == rhs.repeatedBool)
  fieldCheck = fieldCheck && (lhs.repeatedString == rhs.repeatedString)
  fieldCheck = fieldCheck && (lhs.repeatedBytes == rhs.repeatedBytes)
  fieldCheck = fieldCheck && (lhs.repeatedGroup == rhs.repeatedGroup)
  fieldCheck = fieldCheck && (lhs.repeatedNestedMessage == rhs.repeatedNestedMessage)
  fieldCheck = fieldCheck && (lhs.repeatedForeignMessage == rhs.repeatedForeignMessage)
  fieldCheck = fieldCheck && (lhs.repeatedImportMessage == rhs.repeatedImportMessage)
  fieldCheck = fieldCheck && (lhs.repeatedNestedEnum == rhs.repeatedNestedEnum)
  fieldCheck = fieldCheck && (lhs.repeatedForeignEnum == rhs.repeatedForeignEnum)
  fieldCheck = fieldCheck && (lhs.repeatedImportEnum == rhs.repeatedImportEnum)
  fieldCheck = fieldCheck && (lhs.repeatedStringPiece == rhs.repeatedStringPiece)
  fieldCheck = fieldCheck && (lhs.repeatedCord == rhs.repeatedCord)
  fieldCheck = fieldCheck && (lhs.repeatedLazyMessage == rhs.repeatedLazyMessage)
  fieldCheck = fieldCheck && (lhs.hasDefaultInt32 == rhs.hasDefaultInt32) && (!lhs.hasDefaultInt32 || lhs.defaultInt32 == rhs.defaultInt32)
  fieldCheck = fieldCheck && (lhs.hasDefaultInt64 == rhs.hasDefaultInt64) && (!lhs.hasDefaultInt64 || lhs.defaultInt64 == rhs.defaultInt64)
  fieldCheck = fieldCheck && (lhs.hasDefaultUint32 == rhs.hasDefaultUint32) && (!lhs.hasDefaultUint32 || lhs.defaultUint32 == rhs.defaultUint32)
  fieldCheck = fieldCheck && (lhs.hasDefaultUint64 == rhs.hasDefaultUint64) && (!lhs.hasDefaultUint64 || lhs.defaultUint64 == rhs.defaultUint64)
  fieldCheck = fieldCheck && (lhs.hasDefaultSint32 == rhs.hasDefaultSint32) && (!lhs.hasDefaultSint32 || lhs.defaultSint32 == rhs.defaultSint32)
  fieldCheck = fieldCheck && (lhs.hasDefaultSint64 == rhs.hasDefaultSint64) && (!lhs.hasDefaultSint64 || lhs.defaultSint64 == rhs.defaultSint64)
  fieldCheck = fieldCheck && (lhs.hasDefaultFixed32 == rhs.hasDefaultFixed32) && (!lhs.hasDefaultFixed32 || lhs.defaultFixed32 == rhs.defaultFixed32)
  fieldCheck = fieldCheck && (lhs.hasDefaultFixed64 == rhs.hasDefaultFixed64) && (!lhs.hasDefaultFixed64 || lhs.defaultFixed64 == rhs.defaultFixed64)
  fieldCheck = fieldCheck && (lhs.hasDefaultSfixed32 == rhs.hasDefaultSfixed32) && (!lhs.hasDefaultSfixed32 || lhs.defaultSfixed32 == rhs.defaultSfixed32)
  fieldCheck = fieldCheck && (lhs.hasDefaultSfixed64 == rhs.hasDefaultSfixed64) && (!lhs.hasDefaultSfixed64 || lhs.defaultSfixed64 == rhs.defaultSfixed64)
  fieldCheck = fieldCheck && (lhs.hasDefaultFloat == rhs.hasDefaultFloat) && (!lhs.hasDefaultFloat || lhs.defaultFloat == rhs.defaultFloat)
  fieldCheck = fieldCheck && (lhs.hasDefaultDouble == rhs.hasDefaultDouble) && (!lhs.hasDefaultDouble || lhs.defaultDouble == rhs.defaultDouble)
  fieldCheck = fieldCheck && (lhs.hasDefaultBool == rhs.hasDefaultBool) && (!lhs.hasDefaultBool || lhs.defaultBool == rhs.defaultBool)
  fieldCheck = fieldCheck && (lhs.hasDefaultString == rhs.hasDefaultString) && (!lhs.hasDefaultString || lhs.defaultString == rhs.defaultString)
  fieldCheck = fieldCheck && (lhs.hasDefaultBytes == rhs.hasDefaultBytes) && (!lhs.hasDefaultBytes || lhs.defaultBytes == rhs.defaultBytes)
  fieldCheck = fieldCheck && (lhs.hasDefaultNestedEnum == rhs.hasDefaultNestedEnum) && (!lhs.hasDefaultNestedEnum || lhs.defaultNestedEnum == rhs.defaultNestedEnum)
  fieldCheck = fieldCheck && (lhs.hasDefaultForeignEnum == rhs.hasDefaultForeignEnum) && (!lhs.hasDefaultForeignEnum || lhs.defaultForeignEnum == rhs.defaultForeignEnum)
  fieldCheck = fieldCheck && (lhs.hasDefaultImportEnum == rhs.hasDefaultImportEnum) && (!lhs.hasDefaultImportEnum || lhs.defaultImportEnum == rhs.defaultImportEnum)
  fieldCheck = fieldCheck && (lhs.hasDefaultStringPiece == rhs.hasDefaultStringPiece) && (!lhs.hasDefaultStringPiece || lhs.defaultStringPiece == rhs.defaultStringPiece)
  fieldCheck = fieldCheck && (lhs.hasDefaultCord == rhs.hasDefaultCord) && (!lhs.hasDefaultCord || lhs.defaultCord == rhs.defaultCord)
  fieldCheck = fieldCheck && (lhs.hasOneofUint32 == rhs.hasOneofUint32) && (!lhs.hasOneofUint32 || lhs.oneofUint32 == rhs.oneofUint32)
  fieldCheck = fieldCheck && (lhs.hasOneofNestedMessage == rhs.hasOneofNestedMessage) && (!lhs.hasOneofNestedMessage || lhs.oneofNestedMessage == rhs.oneofNestedMessage)
  fieldCheck = fieldCheck && (lhs.hasOneofString == rhs.hasOneofString) && (!lhs.hasOneofString || lhs.oneofString == rhs.oneofString)
  fieldCheck = fieldCheck && (lhs.hasOneofBytes == rhs.hasOneofBytes) && (!lhs.hasOneofBytes || lhs.oneofBytes == rhs.oneofBytes)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestAllTypesLite.NestedMessage, rhs: ProtobufUnittest.TestAllTypesLite.NestedMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasBb == rhs.hasBb) && (!lhs.hasBb || lhs.bb == rhs.bb)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestAllTypesLite.OptionalGroup, rhs: ProtobufUnittest.TestAllTypesLite.OptionalGroup) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasA == rhs.hasA) && (!lhs.hasA || lhs.a == rhs.a)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestAllTypesLite.RepeatedGroup, rhs: ProtobufUnittest.TestAllTypesLite.RepeatedGroup) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasA == rhs.hasA) && (!lhs.hasA || lhs.a == rhs.a)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.ForeignMessageLite, rhs: ProtobufUnittest.ForeignMessageLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasC == rhs.hasC) && (!lhs.hasC || lhs.c == rhs.c)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestPackedTypesLite, rhs: ProtobufUnittest.TestPackedTypesLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.packedInt32 == rhs.packedInt32)
  fieldCheck = fieldCheck && (lhs.packedInt64 == rhs.packedInt64)
  fieldCheck = fieldCheck && (lhs.packedUint32 == rhs.packedUint32)
  fieldCheck = fieldCheck && (lhs.packedUint64 == rhs.packedUint64)
  fieldCheck = fieldCheck && (lhs.packedSint32 == rhs.packedSint32)
  fieldCheck = fieldCheck && (lhs.packedSint64 == rhs.packedSint64)
  fieldCheck = fieldCheck && (lhs.packedFixed32 == rhs.packedFixed32)
  fieldCheck = fieldCheck && (lhs.packedFixed64 == rhs.packedFixed64)
  fieldCheck = fieldCheck && (lhs.packedSfixed32 == rhs.packedSfixed32)
  fieldCheck = fieldCheck && (lhs.packedSfixed64 == rhs.packedSfixed64)
  fieldCheck = fieldCheck && (lhs.packedFloat == rhs.packedFloat)
  fieldCheck = fieldCheck && (lhs.packedDouble == rhs.packedDouble)
  fieldCheck = fieldCheck && (lhs.packedBool == rhs.packedBool)
  fieldCheck = fieldCheck && (lhs.packedEnum == rhs.packedEnum)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestAllExtensionsLite, rhs: ProtobufUnittest.TestAllExtensionsLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && lhs.isEqualExtensionsInOther(otherMessage: rhs, startInclusive:Int32(1), endExclusive:Int32(536870912))
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.OptionalGroupExtensionLite, rhs: ProtobufUnittest.OptionalGroupExtensionLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasA == rhs.hasA) && (!lhs.hasA || lhs.a == rhs.a)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.RepeatedGroupExtensionLite, rhs: ProtobufUnittest.RepeatedGroupExtensionLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasA == rhs.hasA) && (!lhs.hasA || lhs.a == rhs.a)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestPackedExtensionsLite, rhs: ProtobufUnittest.TestPackedExtensionsLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && lhs.isEqualExtensionsInOther(otherMessage: rhs, startInclusive:Int32(1), endExclusive:Int32(536870912))
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestNestedExtensionLite, rhs: ProtobufUnittest.TestNestedExtensionLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestDeprecatedLite, rhs: ProtobufUnittest.TestDeprecatedLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasDeprecatedField == rhs.hasDeprecatedField) && (!lhs.hasDeprecatedField || lhs.deprecatedField == rhs.deprecatedField)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestParsingMergeLite, rhs: ProtobufUnittest.TestParsingMergeLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasRequiredAllTypes == rhs.hasRequiredAllTypes) && (!lhs.hasRequiredAllTypes || lhs.requiredAllTypes == rhs.requiredAllTypes)
  fieldCheck = fieldCheck && (lhs.hasOptionalAllTypes == rhs.hasOptionalAllTypes) && (!lhs.hasOptionalAllTypes || lhs.optionalAllTypes == rhs.optionalAllTypes)
  fieldCheck = fieldCheck && (lhs.repeatedAllTypes == rhs.repeatedAllTypes)
  fieldCheck = fieldCheck && (lhs.hasOptionalGroup == rhs.hasOptionalGroup) && (!lhs.hasOptionalGroup || lhs.optionalGroup == rhs.optionalGroup)
  fieldCheck = fieldCheck && (lhs.repeatedGroup == rhs.repeatedGroup)
  fieldCheck = fieldCheck && lhs.isEqualExtensionsInOther(otherMessage: rhs, startInclusive:Int32(1000), endExclusive:Int32(536870912))
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator, rhs: ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.field1 == rhs.field1)
  fieldCheck = fieldCheck && (lhs.field2 == rhs.field2)
  fieldCheck = fieldCheck && (lhs.field3 == rhs.field3)
  fieldCheck = fieldCheck && (lhs.group1 == rhs.group1)
  fieldCheck = fieldCheck && (lhs.group2 == rhs.group2)
  fieldCheck = fieldCheck && (lhs.ext1 == rhs.ext1)
  fieldCheck = fieldCheck && (lhs.ext2 == rhs.ext2)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1, rhs: ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasField1 == rhs.hasField1) && (!lhs.hasField1 || lhs.field1 == rhs.field1)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2, rhs: ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasField1 == rhs.hasField1) && (!lhs.hasField1 || lhs.field1 == rhs.field1)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestParsingMergeLite.OptionalGroup, rhs: ProtobufUnittest.TestParsingMergeLite.OptionalGroup) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasOptionalGroupAllTypes == rhs.hasOptionalGroupAllTypes) && (!lhs.hasOptionalGroupAllTypes || lhs.optionalGroupAllTypes == rhs.optionalGroupAllTypes)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestParsingMergeLite.RepeatedGroup, rhs: ProtobufUnittest.TestParsingMergeLite.RepeatedGroup) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasRepeatedGroupAllTypes == rhs.hasRepeatedGroupAllTypes) && (!lhs.hasRepeatedGroupAllTypes || lhs.repeatedGroupAllTypes == rhs.repeatedGroupAllTypes)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestEmptyMessageLite, rhs: ProtobufUnittest.TestEmptyMessageLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: ProtobufUnittest.TestEmptyMessageWithExtensionsLite, rhs: ProtobufUnittest.TestEmptyMessageWithExtensionsLite) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && lhs.isEqualExtensionsInOther(otherMessage: rhs, startInclusive:Int32(1), endExclusive:Int32(536870912))
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

// Singular
public var UnittestLiteRootoptionalInt32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalInt32ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalInt64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalInt64ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalUint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalUint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalUint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalUint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalSint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalSint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalFixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalFixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalFixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalFixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalSfixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSfixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalSfixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSfixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalFloatExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalFloatExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalDoubleExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalDoubleExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalBoolExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalBoolExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalStringExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalStringExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalBytesExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalBytesExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalGroupExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalGroupExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalNestedMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalNestedMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalForeignMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalForeignMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalImportMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalImportMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalNestedEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalNestedEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalForeignEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalForeignEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalImportEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalImportEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalStringPieceExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalStringPieceExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalCordExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalCordExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalPublicImportMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalPublicImportMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootoptionalLazyMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalLazyMessageExtensionLiteStatic
   }
}
// Repeated
public var UnittestLiteRootrepeatedInt32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedInt32ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedInt64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedInt64ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedUint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedUint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedUint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedUint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedSint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedSint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedFixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedFixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedFixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedFixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedSfixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSfixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedSfixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSfixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedFloatExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedFloatExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedDoubleExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedDoubleExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedBoolExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedBoolExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedStringExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedStringExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedBytesExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedBytesExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedGroupExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedGroupExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedNestedMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedNestedMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedForeignMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedForeignMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedImportMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedImportMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedNestedEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedNestedEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedForeignEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedForeignEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedImportEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedImportEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedStringPieceExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedStringPieceExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedCordExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedCordExtensionLiteStatic
   }
}
public var UnittestLiteRootrepeatedLazyMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedLazyMessageExtensionLiteStatic
   }
}
// Singular with defaults
public var UnittestLiteRootdefaultInt32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultInt32ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultInt64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultInt64ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultUint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultUint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultUint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultUint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultSint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultSint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultFixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultFixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultFixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultFixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultSfixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSfixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultSfixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSfixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultFloatExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultFloatExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultDoubleExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultDoubleExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultBoolExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultBoolExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultStringExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultStringExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultBytesExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultBytesExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultNestedEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultNestedEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultForeignEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultForeignEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultImportEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultImportEnumExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultStringPieceExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultStringPieceExtensionLiteStatic
   }
}
public var UnittestLiteRootdefaultCordExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultCordExtensionLiteStatic
   }
}
// For oneof test
public var UnittestLiteRootoneofUint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofUint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootoneofNestedMessageExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofNestedMessageExtensionLiteStatic
   }
}
public var UnittestLiteRootoneofStringExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofStringExtensionLiteStatic
   }
}
public var UnittestLiteRootoneofBytesExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofBytesExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedInt32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedInt32ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedInt64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedInt64ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedUint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedUint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedUint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedUint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedSint32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSint32ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedSint64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSint64ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedFixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedFixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedFixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedFixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedSfixed32ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSfixed32ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedSfixed64ExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSfixed64ExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedFloatExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedFloatExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedDoubleExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedDoubleExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedBoolExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedBoolExtensionLiteStatic
   }
}
public var UnittestLiteRootpackedEnumExtensionLite:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedEnumExtensionLiteStatic
   }
}
public var TestNestedExtensionLitenestedExtension:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.TestNestedExtensionLitenestedExtensionStatic
   }
}
public var TestParsingMergeLiteoptionalExt:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.TestParsingMergeLiteoptionalExtStatic
   }
}
public var TestParsingMergeLiterepeatedExt:ConcreateExtensionField {
   get {
       return ProtobufUnittest.UnittestLiteRoot.sharedInstance.TestParsingMergeLiterepeatedExtStatic
   }
}
public extension ProtobufUnittest {
  public struct UnittestLiteRoot {
    public static var sharedInstance : UnittestLiteRoot {
     struct Static {
         static let instance : UnittestLiteRoot = UnittestLiteRoot()
     }
     return Static.instance
    }
    var UnittestLiteRootoptionalInt32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalInt64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalUint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalUint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalSint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalSint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalFixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalFixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalSfixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalSfixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalFloatExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalDoubleExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalBoolExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalStringExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalBytesExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalGroupExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalNestedMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalForeignMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalImportMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalNestedEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalForeignEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalImportEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalStringPieceExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalCordExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalPublicImportMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoptionalLazyMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedInt32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedInt64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedUint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedUint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedSint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedSint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedFixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedFixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedSfixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedSfixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedFloatExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedDoubleExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedBoolExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedStringExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedBytesExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedGroupExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedNestedMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedForeignMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedImportMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedNestedEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedForeignEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedImportEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedStringPieceExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedCordExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootrepeatedLazyMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultInt32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultInt64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultUint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultUint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultSint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultSint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultFixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultFixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultSfixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultSfixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultFloatExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultDoubleExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultBoolExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultStringExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultBytesExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultNestedEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultForeignEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultImportEnumExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultStringPieceExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootdefaultCordExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoneofUint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoneofNestedMessageExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoneofStringExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootoneofBytesExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedInt32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedInt64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedUint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedUint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedSint32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedSint64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedFixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedFixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedSfixed32ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedSfixed64ExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedFloatExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedDoubleExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedBoolExtensionLiteStatic:ConcreateExtensionField
    var UnittestLiteRootpackedEnumExtensionLiteStatic:ConcreateExtensionField
    var TestNestedExtensionLitenestedExtensionStatic:ConcreateExtensionField
    var TestParsingMergeLiteoptionalExtStatic:ConcreateExtensionField
    var TestParsingMergeLiterepeatedExtStatic:ConcreateExtensionField
    public var extensionRegistry:ExtensionRegistry

    init() {
      UnittestLiteRootoptionalInt32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 1, defaultValue:Int32(0), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalInt64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 2, defaultValue:Int64(0), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalUint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 3, defaultValue:UInt32(0), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalUint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 4, defaultValue:UInt64(0), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalSint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 5, defaultValue:Int32(0), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalSint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 6, defaultValue:Int64(0), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalFixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 7, defaultValue:UInt32(0), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalFixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 8, defaultValue:UInt64(0), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalSfixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 9, defaultValue:Int32(0), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalSfixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 10, defaultValue:Int64(0), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalFloatExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFloat, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 11, defaultValue:Float(0), messageOrGroupClass:Float.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalDoubleExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeDouble, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 12, defaultValue:Double(0), messageOrGroupClass:Double.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalBoolExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBool, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 13, defaultValue:false, messageOrGroupClass:Bool.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalStringExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 14, defaultValue:"", messageOrGroupClass:String.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalBytesExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBytes, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 15, defaultValue:Data(), messageOrGroupClass:Data.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalGroupExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeGroup, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 16, defaultValue:ProtobufUnittest.OptionalGroupExtensionLite(), messageOrGroupClass:ProtobufUnittest.OptionalGroupExtensionLite.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalNestedMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 18, defaultValue:ProtobufUnittest.TestAllTypesLite.NestedMessage(), messageOrGroupClass:ProtobufUnittest.TestAllTypesLite.NestedMessage.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalForeignMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 19, defaultValue:ProtobufUnittest.ForeignMessageLite(), messageOrGroupClass:ProtobufUnittest.ForeignMessageLite.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalImportMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 20, defaultValue:ProtobufUnittestImport.ImportMessageLite(), messageOrGroupClass:ProtobufUnittestImport.ImportMessageLite.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalNestedEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 21, defaultValue:ProtobufUnittest.TestAllTypesLite.NestedEnum.foo.rawValue, messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalForeignEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 22, defaultValue:ProtobufUnittest.ForeignEnumLite.foreignLiteFoo.rawValue, messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalImportEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 23, defaultValue:ProtobufUnittestImport.ImportEnumLite.importLiteFoo.rawValue, messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalStringPieceExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 24, defaultValue:"", messageOrGroupClass:String.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalCordExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 25, defaultValue:"", messageOrGroupClass:String.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalPublicImportMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 26, defaultValue:ProtobufUnittestImport.PublicImportMessageLite(), messageOrGroupClass:ProtobufUnittestImport.PublicImportMessageLite.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoptionalLazyMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 27, defaultValue:ProtobufUnittest.TestAllTypesLite.NestedMessage(), messageOrGroupClass:ProtobufUnittest.TestAllTypesLite.NestedMessage.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedInt32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 31, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedInt64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 32, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedUint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 33, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedUint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 34, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedSint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 35, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedSint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 36, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedFixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 37, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedFixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 38, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedSfixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 39, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedSfixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 40, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedFloatExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFloat, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 41, defaultValue:Array<Float>(), messageOrGroupClass:Float.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedDoubleExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeDouble, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 42, defaultValue:Array<Double>(), messageOrGroupClass:Double.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedBoolExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBool, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 43, defaultValue:Array<Bool>(), messageOrGroupClass:Bool.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedStringExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 44, defaultValue:Array<String>(), messageOrGroupClass:String.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedBytesExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBytes, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 45, defaultValue:Array<Data>(), messageOrGroupClass:Data.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedGroupExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeGroup, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 46, defaultValue:Array<GeneratedMessage>(), messageOrGroupClass:ProtobufUnittest.RepeatedGroupExtensionLite.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedNestedMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 48, defaultValue:Array<GeneratedMessage>(), messageOrGroupClass:ProtobufUnittest.TestAllTypesLite.NestedMessage.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedForeignMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 49, defaultValue:Array<GeneratedMessage>(), messageOrGroupClass:ProtobufUnittest.ForeignMessageLite.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedImportMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 50, defaultValue:Array<GeneratedMessage>(), messageOrGroupClass:ProtobufUnittestImport.ImportMessageLite.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedNestedEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 51, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedForeignEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 52, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedImportEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 53, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedStringPieceExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 54, defaultValue:Array<String>(), messageOrGroupClass:String.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedCordExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 55, defaultValue:Array<String>(), messageOrGroupClass:String.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootrepeatedLazyMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 57, defaultValue:Array<GeneratedMessage>(), messageOrGroupClass:ProtobufUnittest.TestAllTypesLite.NestedMessage.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultInt32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 61, defaultValue:Int32(41), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultInt64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 62, defaultValue:Int64(42), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultUint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 63, defaultValue:UInt32(43), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultUint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 64, defaultValue:UInt64(44), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultSint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 65, defaultValue:Int32(-45), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultSint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 66, defaultValue:Int64(46), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultFixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 67, defaultValue:UInt32(47), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultFixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 68, defaultValue:UInt64(48), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultSfixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 69, defaultValue:Int32(49), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultSfixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed64, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 70, defaultValue:Int64(-50), messageOrGroupClass:Int64.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultFloatExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFloat, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 71, defaultValue:Float(51.5), messageOrGroupClass:Float.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultDoubleExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeDouble, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 72, defaultValue:Double(52000), messageOrGroupClass:Double.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultBoolExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBool, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 73, defaultValue:true, messageOrGroupClass:Bool.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultStringExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 74, defaultValue:"hello", messageOrGroupClass:String.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultBytesExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBytes, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 75, defaultValue:Data(bytes:([UInt8]() + "world".utf8), count:5), messageOrGroupClass:Data.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultNestedEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 81, defaultValue:ProtobufUnittest.TestAllTypesLite.NestedEnum.bar.rawValue, messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultForeignEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 82, defaultValue:ProtobufUnittest.ForeignEnumLite.foreignLiteBar.rawValue, messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultImportEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 83, defaultValue:ProtobufUnittestImport.ImportEnumLite.importLiteBar.rawValue, messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultStringPieceExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 84, defaultValue:"abc", messageOrGroupClass:String.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootdefaultCordExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 85, defaultValue:"123", messageOrGroupClass:String.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoneofUint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 111, defaultValue:UInt32(0), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoneofNestedMessageExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 112, defaultValue:ProtobufUnittest.TestAllTypesLite.NestedMessage(), messageOrGroupClass:ProtobufUnittest.TestAllTypesLite.NestedMessage.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoneofStringExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeString, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 113, defaultValue:"", messageOrGroupClass:String.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootoneofBytesExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBytes, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 114, defaultValue:Data(), messageOrGroupClass:Data.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      UnittestLiteRootpackedInt32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt32, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 90, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedInt64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt64, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 91, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedUint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt32, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 92, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedUint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeUInt64, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 93, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedSint32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt32, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 94, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedSint64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSInt64, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 95, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedFixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed32, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 96, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedFixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFixed64, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 97, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedSfixed32ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed32, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 98, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedSfixed64ExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeSFixed64, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 99, defaultValue:Array<Int64>(), messageOrGroupClass:Int64.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedFloatExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeFloat, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 100, defaultValue:Array<Float>(), messageOrGroupClass:Float.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedDoubleExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeDouble, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 101, defaultValue:Array<Double>(), messageOrGroupClass:Double.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedBoolExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeBool, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 102, defaultValue:Array<Bool>(), messageOrGroupClass:Bool.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      UnittestLiteRootpackedEnumExtensionLiteStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeEnum, extendedClass:ProtobufUnittest.TestPackedExtensionsLite.self, fieldNumber: 103, defaultValue:Array<Int32>(), messageOrGroupClass:Int32.self, isRepeated:true, isPacked:true, isMessageSetWireFormat:false)
      TestNestedExtensionLitenestedExtensionStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeInt32, extendedClass:ProtobufUnittest.TestAllExtensionsLite.self, fieldNumber: 12345, defaultValue:Int32(0), messageOrGroupClass:Int32.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      TestParsingMergeLiteoptionalExtStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestParsingMergeLite.self, fieldNumber: 1000, defaultValue:ProtobufUnittest.TestAllTypesLite(), messageOrGroupClass:ProtobufUnittest.TestAllTypesLite.self, isRepeated:false, isPacked:false, isMessageSetWireFormat:false)
      TestParsingMergeLiterepeatedExtStatic = ConcreateExtensionField(type:ExtensionType.extensionTypeMessage, extendedClass:ProtobufUnittest.TestParsingMergeLite.self, fieldNumber: 1001, defaultValue:Array<GeneratedMessage>(), messageOrGroupClass:ProtobufUnittest.TestAllTypesLite.self, isRepeated:true, isPacked:false, isMessageSetWireFormat:false)
      extensionRegistry = ExtensionRegistry()
      registerAllExtensions(registry: extensionRegistry)
      ProtobufUnittestImport.UnittestImportLiteRoot.sharedInstance.registerAllExtensions(registry: extensionRegistry)
    }
    public func registerAllExtensions(registry:ExtensionRegistry) {
      registry.addExtension(extensions: UnittestLiteRootoptionalInt32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalInt64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalUint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalUint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalSint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalSint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalFixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalFixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalSfixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalSfixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalFloatExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalDoubleExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalBoolExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalStringExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalBytesExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalGroupExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalNestedMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalForeignMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalImportMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalNestedEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalForeignEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalImportEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalStringPieceExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalCordExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalPublicImportMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoptionalLazyMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedInt32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedInt64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedUint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedUint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedSint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedSint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedFixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedFixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedSfixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedSfixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedFloatExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedDoubleExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedBoolExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedStringExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedBytesExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedGroupExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedNestedMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedForeignMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedImportMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedNestedEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedForeignEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedImportEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedStringPieceExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedCordExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootrepeatedLazyMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultInt32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultInt64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultUint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultUint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultSint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultSint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultFixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultFixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultSfixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultSfixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultFloatExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultDoubleExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultBoolExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultStringExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultBytesExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultNestedEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultForeignEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultImportEnumExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultStringPieceExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootdefaultCordExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoneofUint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoneofNestedMessageExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoneofStringExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootoneofBytesExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedInt32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedInt64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedUint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedUint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedSint32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedSint64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedFixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedFixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedSfixed32ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedSfixed64ExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedFloatExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedDoubleExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedBoolExtensionLiteStatic)
      registry.addExtension(extensions: UnittestLiteRootpackedEnumExtensionLiteStatic)
      registry.addExtension(extensions: TestNestedExtensionLitenestedExtensionStatic)
      registry.addExtension(extensions: TestParsingMergeLiteoptionalExtStatic)
      registry.addExtension(extensions: TestParsingMergeLiterepeatedExtStatic)
    }
    public static func optionalInt32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalInt32ExtensionLiteStatic
    }
    public static func optionalInt64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalInt64ExtensionLiteStatic
    }
    public static func optionalUint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalUint32ExtensionLiteStatic
    }
    public static func optionalUint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalUint64ExtensionLiteStatic
    }
    public static func optionalSint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSint32ExtensionLiteStatic
    }
    public static func optionalSint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSint64ExtensionLiteStatic
    }
    public static func optionalFixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalFixed32ExtensionLiteStatic
    }
    public static func optionalFixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalFixed64ExtensionLiteStatic
    }
    public static func optionalSfixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSfixed32ExtensionLiteStatic
    }
    public static func optionalSfixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalSfixed64ExtensionLiteStatic
    }
    public static func optionalFloatExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalFloatExtensionLiteStatic
    }
    public static func optionalDoubleExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalDoubleExtensionLiteStatic
    }
    public static func optionalBoolExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalBoolExtensionLiteStatic
    }
    public static func optionalStringExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalStringExtensionLiteStatic
    }
    public static func optionalBytesExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalBytesExtensionLiteStatic
    }
    public static func optionalGroupExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalGroupExtensionLiteStatic
    }
    public static func optionalNestedMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalNestedMessageExtensionLiteStatic
    }
    public static func optionalForeignMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalForeignMessageExtensionLiteStatic
    }
    public static func optionalImportMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalImportMessageExtensionLiteStatic
    }
    public static func optionalNestedEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalNestedEnumExtensionLiteStatic
    }
    public static func optionalForeignEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalForeignEnumExtensionLiteStatic
    }
    public static func optionalImportEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalImportEnumExtensionLiteStatic
    }
    public static func optionalStringPieceExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalStringPieceExtensionLiteStatic
    }
    public static func optionalCordExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalCordExtensionLiteStatic
    }
    public static func optionalPublicImportMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalPublicImportMessageExtensionLiteStatic
    }
    public static func optionalLazyMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoptionalLazyMessageExtensionLiteStatic
    }
    public static func repeatedInt32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedInt32ExtensionLiteStatic
    }
    public static func repeatedInt64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedInt64ExtensionLiteStatic
    }
    public static func repeatedUint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedUint32ExtensionLiteStatic
    }
    public static func repeatedUint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedUint64ExtensionLiteStatic
    }
    public static func repeatedSint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSint32ExtensionLiteStatic
    }
    public static func repeatedSint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSint64ExtensionLiteStatic
    }
    public static func repeatedFixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedFixed32ExtensionLiteStatic
    }
    public static func repeatedFixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedFixed64ExtensionLiteStatic
    }
    public static func repeatedSfixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSfixed32ExtensionLiteStatic
    }
    public static func repeatedSfixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedSfixed64ExtensionLiteStatic
    }
    public static func repeatedFloatExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedFloatExtensionLiteStatic
    }
    public static func repeatedDoubleExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedDoubleExtensionLiteStatic
    }
    public static func repeatedBoolExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedBoolExtensionLiteStatic
    }
    public static func repeatedStringExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedStringExtensionLiteStatic
    }
    public static func repeatedBytesExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedBytesExtensionLiteStatic
    }
    public static func repeatedGroupExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedGroupExtensionLiteStatic
    }
    public static func repeatedNestedMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedNestedMessageExtensionLiteStatic
    }
    public static func repeatedForeignMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedForeignMessageExtensionLiteStatic
    }
    public static func repeatedImportMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedImportMessageExtensionLiteStatic
    }
    public static func repeatedNestedEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedNestedEnumExtensionLiteStatic
    }
    public static func repeatedForeignEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedForeignEnumExtensionLiteStatic
    }
    public static func repeatedImportEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedImportEnumExtensionLiteStatic
    }
    public static func repeatedStringPieceExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedStringPieceExtensionLiteStatic
    }
    public static func repeatedCordExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedCordExtensionLiteStatic
    }
    public static func repeatedLazyMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootrepeatedLazyMessageExtensionLiteStatic
    }
    public static func defaultInt32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultInt32ExtensionLiteStatic
    }
    public static func defaultInt64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultInt64ExtensionLiteStatic
    }
    public static func defaultUint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultUint32ExtensionLiteStatic
    }
    public static func defaultUint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultUint64ExtensionLiteStatic
    }
    public static func defaultSint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSint32ExtensionLiteStatic
    }
    public static func defaultSint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSint64ExtensionLiteStatic
    }
    public static func defaultFixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultFixed32ExtensionLiteStatic
    }
    public static func defaultFixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultFixed64ExtensionLiteStatic
    }
    public static func defaultSfixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSfixed32ExtensionLiteStatic
    }
    public static func defaultSfixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultSfixed64ExtensionLiteStatic
    }
    public static func defaultFloatExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultFloatExtensionLiteStatic
    }
    public static func defaultDoubleExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultDoubleExtensionLiteStatic
    }
    public static func defaultBoolExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultBoolExtensionLiteStatic
    }
    public static func defaultStringExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultStringExtensionLiteStatic
    }
    public static func defaultBytesExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultBytesExtensionLiteStatic
    }
    public static func defaultNestedEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultNestedEnumExtensionLiteStatic
    }
    public static func defaultForeignEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultForeignEnumExtensionLiteStatic
    }
    public static func defaultImportEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultImportEnumExtensionLiteStatic
    }
    public static func defaultStringPieceExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultStringPieceExtensionLiteStatic
    }
    public static func defaultCordExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootdefaultCordExtensionLiteStatic
    }
    public static func oneofUint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofUint32ExtensionLiteStatic
    }
    public static func oneofNestedMessageExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofNestedMessageExtensionLiteStatic
    }
    public static func oneofStringExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofStringExtensionLiteStatic
    }
    public static func oneofBytesExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootoneofBytesExtensionLiteStatic
    }
    public static func packedInt32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedInt32ExtensionLiteStatic
    }
    public static func packedInt64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedInt64ExtensionLiteStatic
    }
    public static func packedUint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedUint32ExtensionLiteStatic
    }
    public static func packedUint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedUint64ExtensionLiteStatic
    }
    public static func packedSint32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSint32ExtensionLiteStatic
    }
    public static func packedSint64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSint64ExtensionLiteStatic
    }
    public static func packedFixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedFixed32ExtensionLiteStatic
    }
    public static func packedFixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedFixed64ExtensionLiteStatic
    }
    public static func packedSfixed32ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSfixed32ExtensionLiteStatic
    }
    public static func packedSfixed64ExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedSfixed64ExtensionLiteStatic
    }
    public static func packedFloatExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedFloatExtensionLiteStatic
    }
    public static func packedDoubleExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedDoubleExtensionLiteStatic
    }
    public static func packedBoolExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedBoolExtensionLiteStatic
    }
    public static func packedEnumExtensionLite() -> ConcreateExtensionField {
         return UnittestLiteRoot.sharedInstance.UnittestLiteRootpackedEnumExtensionLiteStatic
    }
  }



  //Enum type declaration start 

  public enum ForeignEnumLite:Int32, CustomDebugStringConvertible, CustomStringConvertible {
    case foreignLiteFoo = 4
    case foreignLiteBar = 5
    case foreignLiteBaz = 6

    public var debugDescription:String { return getDescription() }
    public var description:String { return getDescription() }
    private func getDescription() -> String { 
      switch self {
      case .foreignLiteFoo: return ".foreignLiteFoo"
      case .foreignLiteBar: return ".foreignLiteBar"
      case .foreignLiteBaz: return ".foreignLiteBaz"
      }
    }
  }

  //Enum type declaration end 

  // Same as TestAllTypes but with the lite runtime.
  final public class TestAllTypesLite : GeneratedMessage {


    //Nested type declaration start

      final public class NestedMessage : GeneratedMessage {
        public fileprivate(set) var bb:Int32 = Int32(0)

        public fileprivate(set) var hasBb:Bool = false
        required public init() {
             super.init()
        }
        override public func isInitialized() -> Bool {
         return true
        }
        override public func writeTo(codedOutputStream:CodedOutputStream) throws {
          if hasBb {
            try codedOutputStream.writeInt32(fieldNumber:1, value:bb)
          }
          try unknownFields.writeTo(codedOutputStream:codedOutputStream)
        }
        override public func serializedSize() -> Int32 {
          var serialize_size:Int32 = memoizedSerializedSize
          if serialize_size != -1 {
           return serialize_size
          }

          serialize_size = 0
          if hasBb {
            serialize_size += bb.computeInt32Size(fieldNumber: 1)
          }
          serialize_size += unknownFields.serializedSize()
          memoizedSerializedSize = serialize_size
          return serialize_size
        }
        public class func getBuilder() -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
          return ProtobufUnittest.TestAllTypesLite.NestedMessage.classBuilder() as! ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder
        }
        public func getBuilder() -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
          return classBuilder() as! ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder
        }
        public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
        }
        public override func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
        }
        public func toBuilder() throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
          return try ProtobufUnittest.TestAllTypesLite.NestedMessage.builderWithPrototype(prototype: self)
        }
        public class func builderWithPrototype(prototype:ProtobufUnittest.TestAllTypesLite.NestedMessage) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
          return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeFrom(other: prototype)
        }
        override public func getDescription(indent:String) throws -> String {
          var output:String = ""
          if hasBb {
            output += "\(indent) bb: \(bb) \n"
          }
          output += unknownFields.getDescription(indent: indent)
          return output
        }
        override public var hashValue:Int {
            get {
                var hashCode:Int = 7
                if hasBb {
                   hashCode = (hashCode &* 31) &+ bb.hashValue
                }
                hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                return hashCode
            }
        }


        //Meta information declaration start

        override public class func className() -> String {
            return "ProtobufUnittest.TestAllTypesLite.NestedMessage"
        }
        override public func className() -> String {
            return "ProtobufUnittest.TestAllTypesLite.NestedMessage"
        }
        //Meta information declaration end

        final public class Builder : GeneratedMessageBuilder {
          private var builderResult:ProtobufUnittest.TestAllTypesLite.NestedMessage = ProtobufUnittest.TestAllTypesLite.NestedMessage()
          public func getMessage() -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
              return builderResult
          }

          required override public init () {
             super.init()
          }
          public var hasBb:Bool {
               get {
                    return builderResult.hasBb
               }
          }
          public var bb:Int32 {
               get {
                    return builderResult.bb
               }
               set (value) {
                   builderResult.hasBb = true
                   builderResult.bb = value
               }
          }
          public func setBb(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
            self.bb = value
            return self
          }
          public func clearBb() -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder{
               builderResult.hasBb = false
               builderResult.bb = Int32(0)
               return self
          }
          override public var internalGetResult:GeneratedMessage {
               get {
                  return builderResult
               }
          }
          public override func clear() -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
            builderResult = ProtobufUnittest.TestAllTypesLite.NestedMessage()
            return self
          }
          public override func clone() throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
            return try ProtobufUnittest.TestAllTypesLite.NestedMessage.builderWithPrototype(prototype: builderResult)
          }
          public override func build() throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
               try checkInitialized()
               return buildPartial()
          }
          public func buildPartial() -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
            let returnMe:ProtobufUnittest.TestAllTypesLite.NestedMessage = builderResult
            return returnMe
          }
          public func mergeFrom(other:ProtobufUnittest.TestAllTypesLite.NestedMessage) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
            if other == ProtobufUnittest.TestAllTypesLite.NestedMessage() {
             return self
            }
            if other.hasBb {
                 bb = other.bb
            }
            _ = try merge(unknownField: other.unknownFields)
            return self
          }
          public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
               return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
          }
          public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
            let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
            while (true) {
              let protobufTag = try codedInputStream.readTag()
              switch protobufTag {
              case 0: 
                self.unknownFields = try unknownFieldsBuilder.build()
                return self

              case 8:
                bb = try codedInputStream.readInt32()

              default:
                if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                   unknownFields = try unknownFieldsBuilder.build()
                   return self
                }
              }
            }
          }
        }

      }

    //Nested type declaration end



    //Nested type declaration start

      final public class OptionalGroup : GeneratedMessage {
        public fileprivate(set) var a:Int32 = Int32(0)

        public fileprivate(set) var hasA:Bool = false
        required public init() {
             super.init()
        }
        override public func isInitialized() -> Bool {
         return true
        }
        override public func writeTo(codedOutputStream:CodedOutputStream) throws {
          if hasA {
            try codedOutputStream.writeInt32(fieldNumber:17, value:a)
          }
          try unknownFields.writeTo(codedOutputStream:codedOutputStream)
        }
        override public func serializedSize() -> Int32 {
          var serialize_size:Int32 = memoizedSerializedSize
          if serialize_size != -1 {
           return serialize_size
          }

          serialize_size = 0
          if hasA {
            serialize_size += a.computeInt32Size(fieldNumber: 17)
          }
          serialize_size += unknownFields.serializedSize()
          memoizedSerializedSize = serialize_size
          return serialize_size
        }
        public class func getBuilder() -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
          return ProtobufUnittest.TestAllTypesLite.OptionalGroup.classBuilder() as! ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder
        }
        public func getBuilder() -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
          return classBuilder() as! ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder
        }
        public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder()
        }
        public override func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder()
        }
        public func toBuilder() throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
          return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.builderWithPrototype(prototype: self)
        }
        public class func builderWithPrototype(prototype:ProtobufUnittest.TestAllTypesLite.OptionalGroup) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
          return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeFrom(other: prototype)
        }
        override public func getDescription(indent:String) throws -> String {
          var output:String = ""
          if hasA {
            output += "\(indent) a: \(a) \n"
          }
          output += unknownFields.getDescription(indent: indent)
          return output
        }
        override public var hashValue:Int {
            get {
                var hashCode:Int = 7
                if hasA {
                   hashCode = (hashCode &* 31) &+ a.hashValue
                }
                hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                return hashCode
            }
        }


        //Meta information declaration start

        override public class func className() -> String {
            return "ProtobufUnittest.TestAllTypesLite.OptionalGroup"
        }
        override public func className() -> String {
            return "ProtobufUnittest.TestAllTypesLite.OptionalGroup"
        }
        //Meta information declaration end

        final public class Builder : GeneratedMessageBuilder {
          private var builderResult:ProtobufUnittest.TestAllTypesLite.OptionalGroup = ProtobufUnittest.TestAllTypesLite.OptionalGroup()
          public func getMessage() -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
              return builderResult
          }

          required override public init () {
             super.init()
          }
          public var hasA:Bool {
               get {
                    return builderResult.hasA
               }
          }
          public var a:Int32 {
               get {
                    return builderResult.a
               }
               set (value) {
                   builderResult.hasA = true
                   builderResult.a = value
               }
          }
          public func setA(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
            self.a = value
            return self
          }
          public func clearA() -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder{
               builderResult.hasA = false
               builderResult.a = Int32(0)
               return self
          }
          override public var internalGetResult:GeneratedMessage {
               get {
                  return builderResult
               }
          }
          public override func clear() -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
            builderResult = ProtobufUnittest.TestAllTypesLite.OptionalGroup()
            return self
          }
          public override func clone() throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
            return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.builderWithPrototype(prototype: builderResult)
          }
          public override func build() throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
               try checkInitialized()
               return buildPartial()
          }
          public func buildPartial() -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
            let returnMe:ProtobufUnittest.TestAllTypesLite.OptionalGroup = builderResult
            return returnMe
          }
          public func mergeFrom(other:ProtobufUnittest.TestAllTypesLite.OptionalGroup) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
            if other == ProtobufUnittest.TestAllTypesLite.OptionalGroup() {
             return self
            }
            if other.hasA {
                 a = other.a
            }
            _ = try merge(unknownField: other.unknownFields)
            return self
          }
          public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
               return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
          }
          public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
            let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
            while (true) {
              let protobufTag = try codedInputStream.readTag()
              switch protobufTag {
              case 0: 
                self.unknownFields = try unknownFieldsBuilder.build()
                return self

              case 136:
                a = try codedInputStream.readInt32()

              default:
                if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                   unknownFields = try unknownFieldsBuilder.build()
                   return self
                }
              }
            }
          }
        }

      }

    //Nested type declaration end



    //Nested type declaration start

      final public class RepeatedGroup : GeneratedMessage {
        public fileprivate(set) var a:Int32 = Int32(0)

        public fileprivate(set) var hasA:Bool = false
        required public init() {
             super.init()
        }
        override public func isInitialized() -> Bool {
         return true
        }
        override public func writeTo(codedOutputStream:CodedOutputStream) throws {
          if hasA {
            try codedOutputStream.writeInt32(fieldNumber:47, value:a)
          }
          try unknownFields.writeTo(codedOutputStream:codedOutputStream)
        }
        override public func serializedSize() -> Int32 {
          var serialize_size:Int32 = memoizedSerializedSize
          if serialize_size != -1 {
           return serialize_size
          }

          serialize_size = 0
          if hasA {
            serialize_size += a.computeInt32Size(fieldNumber: 47)
          }
          serialize_size += unknownFields.serializedSize()
          memoizedSerializedSize = serialize_size
          return serialize_size
        }
        public class func getBuilder() -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
          return ProtobufUnittest.TestAllTypesLite.RepeatedGroup.classBuilder() as! ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder
        }
        public func getBuilder() -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
          return classBuilder() as! ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder
        }
        public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder()
        }
        public override func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder()
        }
        public func toBuilder() throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
          return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.builderWithPrototype(prototype: self)
        }
        public class func builderWithPrototype(prototype:ProtobufUnittest.TestAllTypesLite.RepeatedGroup) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
          return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeFrom(other: prototype)
        }
        override public func getDescription(indent:String) throws -> String {
          var output:String = ""
          if hasA {
            output += "\(indent) a: \(a) \n"
          }
          output += unknownFields.getDescription(indent: indent)
          return output
        }
        override public var hashValue:Int {
            get {
                var hashCode:Int = 7
                if hasA {
                   hashCode = (hashCode &* 31) &+ a.hashValue
                }
                hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                return hashCode
            }
        }


        //Meta information declaration start

        override public class func className() -> String {
            return "ProtobufUnittest.TestAllTypesLite.RepeatedGroup"
        }
        override public func className() -> String {
            return "ProtobufUnittest.TestAllTypesLite.RepeatedGroup"
        }
        //Meta information declaration end

        final public class Builder : GeneratedMessageBuilder {
          private var builderResult:ProtobufUnittest.TestAllTypesLite.RepeatedGroup = ProtobufUnittest.TestAllTypesLite.RepeatedGroup()
          public func getMessage() -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
              return builderResult
          }

          required override public init () {
             super.init()
          }
          public var hasA:Bool {
               get {
                    return builderResult.hasA
               }
          }
          public var a:Int32 {
               get {
                    return builderResult.a
               }
               set (value) {
                   builderResult.hasA = true
                   builderResult.a = value
               }
          }
          public func setA(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
            self.a = value
            return self
          }
          public func clearA() -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder{
               builderResult.hasA = false
               builderResult.a = Int32(0)
               return self
          }
          override public var internalGetResult:GeneratedMessage {
               get {
                  return builderResult
               }
          }
          public override func clear() -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
            builderResult = ProtobufUnittest.TestAllTypesLite.RepeatedGroup()
            return self
          }
          public override func clone() throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
            return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.builderWithPrototype(prototype: builderResult)
          }
          public override func build() throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
               try checkInitialized()
               return buildPartial()
          }
          public func buildPartial() -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
            let returnMe:ProtobufUnittest.TestAllTypesLite.RepeatedGroup = builderResult
            return returnMe
          }
          public func mergeFrom(other:ProtobufUnittest.TestAllTypesLite.RepeatedGroup) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
            if other == ProtobufUnittest.TestAllTypesLite.RepeatedGroup() {
             return self
            }
            if other.hasA {
                 a = other.a
            }
            _ = try merge(unknownField: other.unknownFields)
            return self
          }
          public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
               return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
          }
          public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder {
            let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
            while (true) {
              let protobufTag = try codedInputStream.readTag()
              switch protobufTag {
              case 0: 
                self.unknownFields = try unknownFieldsBuilder.build()
                return self

              case 376:
                a = try codedInputStream.readInt32()

              default:
                if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                   unknownFields = try unknownFieldsBuilder.build()
                   return self
                }
              }
            }
          }
        }

      }

    //Nested type declaration end



    //OneOf declaration start

    // For oneof test
    public enum OneofField {
      case OneofFieldOneOfNotSet

      public func checkOneOfIsSet() -> Bool {
           switch self {
           case .OneofFieldOneOfNotSet:
                return false
           default:
                return true
           }
      }
      case OneofUint32(UInt32)

      public static func getOneofUint32(_ value:OneofField) -> UInt32? {
           switch value {
           case .OneofUint32(let enumValue):
                return enumValue
           default:
                return nil
           }
      }
      case OneofNestedMessage(ProtobufUnittest.TestAllTypesLite.NestedMessage)

      public static func getOneofNestedMessage(_ value:OneofField) -> ProtobufUnittest.TestAllTypesLite.NestedMessage? {
           switch value {
           case .OneofNestedMessage(let enumValue):
                return enumValue
           default:
                return nil
           }
      }
      case OneofString(String)

      public static func getOneofString(_ value:OneofField) -> String? {
           switch value {
           case .OneofString(let enumValue):
                return enumValue
           default:
                return nil
           }
      }
      case OneofBytes(Data)

      public static func getOneofBytes(_ value:OneofField) -> Data? {
           switch value {
           case .OneofBytes(let enumValue):
                return enumValue
           default:
                return nil
           }
      }
    }
    //OneOf declaration end

    private var storageOneofField:TestAllTypesLite.OneofField =  TestAllTypesLite.OneofField.OneofFieldOneOfNotSet


      //Enum type declaration start 

      public enum NestedEnum:Int32, CustomDebugStringConvertible, CustomStringConvertible {
        case foo = 1
        case bar = 2
        case baz = 3

        public var debugDescription:String { return getDescription() }
        public var description:String { return getDescription() }
        private func getDescription() -> String { 
          switch self {
          case .foo: return ".foo"
          case .bar: return ".bar"
          case .baz: return ".baz"
          }
        }
      }

      //Enum type declaration end 

    // Singular
    public fileprivate(set) var optionalInt32:Int32 = Int32(0)

    public fileprivate(set) var hasOptionalInt32:Bool = false
    public fileprivate(set) var optionalInt64:Int64 = Int64(0)

    public fileprivate(set) var hasOptionalInt64:Bool = false
    public fileprivate(set) var optionalUint32:UInt32 = UInt32(0)

    public fileprivate(set) var hasOptionalUint32:Bool = false
    public fileprivate(set) var optionalUint64:UInt64 = UInt64(0)

    public fileprivate(set) var hasOptionalUint64:Bool = false
    public fileprivate(set) var optionalSint32:Int32 = Int32(0)

    public fileprivate(set) var hasOptionalSint32:Bool = false
    public fileprivate(set) var optionalSint64:Int64 = Int64(0)

    public fileprivate(set) var hasOptionalSint64:Bool = false
    public fileprivate(set) var optionalFixed32:UInt32 = UInt32(0)

    public fileprivate(set) var hasOptionalFixed32:Bool = false
    public fileprivate(set) var optionalFixed64:UInt64 = UInt64(0)

    public fileprivate(set) var hasOptionalFixed64:Bool = false
    public fileprivate(set) var optionalSfixed32:Int32 = Int32(0)

    public fileprivate(set) var hasOptionalSfixed32:Bool = false
    public fileprivate(set) var optionalSfixed64:Int64 = Int64(0)

    public fileprivate(set) var hasOptionalSfixed64:Bool = false
    public fileprivate(set) var optionalFloat:Float = Float(0)

    public fileprivate(set) var hasOptionalFloat:Bool = false
    public fileprivate(set) var optionalDouble:Double = Double(0)

    public fileprivate(set) var hasOptionalDouble:Bool = false
    public fileprivate(set) var optionalBool:Bool = false

    public fileprivate(set) var hasOptionalBool:Bool = false
    public fileprivate(set) var optionalString:String = ""

    public fileprivate(set) var hasOptionalString:Bool = false
    public fileprivate(set) var optionalBytes:Data = Data()

    public fileprivate(set) var hasOptionalBytes:Bool = false
    public fileprivate(set) var optionalGroup:ProtobufUnittest.TestAllTypesLite.OptionalGroup!
    public fileprivate(set) var hasOptionalGroup:Bool = false
    public fileprivate(set) var optionalNestedMessage:ProtobufUnittest.TestAllTypesLite.NestedMessage!
    public fileprivate(set) var hasOptionalNestedMessage:Bool = false
    public fileprivate(set) var optionalForeignMessage:ProtobufUnittest.ForeignMessageLite!
    public fileprivate(set) var hasOptionalForeignMessage:Bool = false
    public fileprivate(set) var optionalImportMessage:ProtobufUnittestImport.ImportMessageLite!
    public fileprivate(set) var hasOptionalImportMessage:Bool = false
    public fileprivate(set) var optionalNestedEnum:ProtobufUnittest.TestAllTypesLite.NestedEnum = ProtobufUnittest.TestAllTypesLite.NestedEnum.foo
    public fileprivate(set) var hasOptionalNestedEnum:Bool = false
    public fileprivate(set) var optionalForeignEnum:ProtobufUnittest.ForeignEnumLite = ProtobufUnittest.ForeignEnumLite.foreignLiteFoo
    public fileprivate(set) var hasOptionalForeignEnum:Bool = false
    public fileprivate(set) var optionalImportEnum:ProtobufUnittestImport.ImportEnumLite = ProtobufUnittestImport.ImportEnumLite.importLiteFoo
    public fileprivate(set) var hasOptionalImportEnum:Bool = false
    public fileprivate(set) var optionalStringPiece:String = ""

    public fileprivate(set) var hasOptionalStringPiece:Bool = false
    public fileprivate(set) var optionalCord:String = ""

    public fileprivate(set) var hasOptionalCord:Bool = false
    public fileprivate(set) var optionalPublicImportMessage:ProtobufUnittestImport.PublicImportMessageLite!
    public fileprivate(set) var hasOptionalPublicImportMessage:Bool = false
    public fileprivate(set) var optionalLazyMessage:ProtobufUnittest.TestAllTypesLite.NestedMessage!
    public fileprivate(set) var hasOptionalLazyMessage:Bool = false
    // Repeated
    public fileprivate(set) var repeatedInt32:Array<Int32> = Array<Int32>()
    public fileprivate(set) var repeatedInt64:Array<Int64> = Array<Int64>()
    public fileprivate(set) var repeatedUint32:Array<UInt32> = Array<UInt32>()
    public fileprivate(set) var repeatedUint64:Array<UInt64> = Array<UInt64>()
    public fileprivate(set) var repeatedSint32:Array<Int32> = Array<Int32>()
    public fileprivate(set) var repeatedSint64:Array<Int64> = Array<Int64>()
    public fileprivate(set) var repeatedFixed32:Array<UInt32> = Array<UInt32>()
    public fileprivate(set) var repeatedFixed64:Array<UInt64> = Array<UInt64>()
    public fileprivate(set) var repeatedSfixed32:Array<Int32> = Array<Int32>()
    public fileprivate(set) var repeatedSfixed64:Array<Int64> = Array<Int64>()
    public fileprivate(set) var repeatedFloat:Array<Float> = Array<Float>()
    public fileprivate(set) var repeatedDouble:Array<Double> = Array<Double>()
    public fileprivate(set) var repeatedBool:Array<Bool> = Array<Bool>()
    public fileprivate(set) var repeatedString:Array<String> = Array<String>()
    public fileprivate(set) var repeatedBytes:Array<Data> = Array<Data>()
    public fileprivate(set) var repeatedGroup:Array<ProtobufUnittest.TestAllTypesLite.RepeatedGroup> = Array<ProtobufUnittest.TestAllTypesLite.RepeatedGroup>()
    public fileprivate(set) var repeatedNestedMessage:Array<ProtobufUnittest.TestAllTypesLite.NestedMessage> = Array<ProtobufUnittest.TestAllTypesLite.NestedMessage>()
    public fileprivate(set) var repeatedForeignMessage:Array<ProtobufUnittest.ForeignMessageLite> = Array<ProtobufUnittest.ForeignMessageLite>()
    public fileprivate(set) var repeatedImportMessage:Array<ProtobufUnittestImport.ImportMessageLite> = Array<ProtobufUnittestImport.ImportMessageLite>()
    private var repeatedNestedEnumMemoizedSerializedSize:Int32 = 0
    public fileprivate(set) var repeatedNestedEnum:Array<ProtobufUnittest.TestAllTypesLite.NestedEnum> = Array<ProtobufUnittest.TestAllTypesLite.NestedEnum>()
    private var repeatedForeignEnumMemoizedSerializedSize:Int32 = 0
    public fileprivate(set) var repeatedForeignEnum:Array<ProtobufUnittest.ForeignEnumLite> = Array<ProtobufUnittest.ForeignEnumLite>()
    private var repeatedImportEnumMemoizedSerializedSize:Int32 = 0
    public fileprivate(set) var repeatedImportEnum:Array<ProtobufUnittestImport.ImportEnumLite> = Array<ProtobufUnittestImport.ImportEnumLite>()
    public fileprivate(set) var repeatedStringPiece:Array<String> = Array<String>()
    public fileprivate(set) var repeatedCord:Array<String> = Array<String>()
    public fileprivate(set) var repeatedLazyMessage:Array<ProtobufUnittest.TestAllTypesLite.NestedMessage> = Array<ProtobufUnittest.TestAllTypesLite.NestedMessage>()
    // Singular with defaults
    public fileprivate(set) var defaultInt32:Int32 = Int32(41)

    public fileprivate(set) var hasDefaultInt32:Bool = false
    public fileprivate(set) var defaultInt64:Int64 = Int64(42)

    public fileprivate(set) var hasDefaultInt64:Bool = false
    public fileprivate(set) var defaultUint32:UInt32 = UInt32(43)

    public fileprivate(set) var hasDefaultUint32:Bool = false
    public fileprivate(set) var defaultUint64:UInt64 = UInt64(44)

    public fileprivate(set) var hasDefaultUint64:Bool = false
    public fileprivate(set) var defaultSint32:Int32 = Int32(-45)

    public fileprivate(set) var hasDefaultSint32:Bool = false
    public fileprivate(set) var defaultSint64:Int64 = Int64(46)

    public fileprivate(set) var hasDefaultSint64:Bool = false
    public fileprivate(set) var defaultFixed32:UInt32 = UInt32(47)

    public fileprivate(set) var hasDefaultFixed32:Bool = false
    public fileprivate(set) var defaultFixed64:UInt64 = UInt64(48)

    public fileprivate(set) var hasDefaultFixed64:Bool = false
    public fileprivate(set) var defaultSfixed32:Int32 = Int32(49)

    public fileprivate(set) var hasDefaultSfixed32:Bool = false
    public fileprivate(set) var defaultSfixed64:Int64 = Int64(-50)

    public fileprivate(set) var hasDefaultSfixed64:Bool = false
    public fileprivate(set) var defaultFloat:Float = Float(51.5)

    public fileprivate(set) var hasDefaultFloat:Bool = false
    public fileprivate(set) var defaultDouble:Double = Double(52000)

    public fileprivate(set) var hasDefaultDouble:Bool = false
    public fileprivate(set) var defaultBool:Bool = true

    public fileprivate(set) var hasDefaultBool:Bool = false
    public fileprivate(set) var defaultString:String = "hello"

    public fileprivate(set) var hasDefaultString:Bool = false
    public fileprivate(set) var defaultBytes:Data = Data(bytes:([UInt8]() + "world".utf8), count:5)

    public fileprivate(set) var hasDefaultBytes:Bool = false
    public fileprivate(set) var defaultNestedEnum:ProtobufUnittest.TestAllTypesLite.NestedEnum = ProtobufUnittest.TestAllTypesLite.NestedEnum.bar
    public fileprivate(set) var hasDefaultNestedEnum:Bool = false
    public fileprivate(set) var defaultForeignEnum:ProtobufUnittest.ForeignEnumLite = ProtobufUnittest.ForeignEnumLite.foreignLiteBar
    public fileprivate(set) var hasDefaultForeignEnum:Bool = false
    public fileprivate(set) var defaultImportEnum:ProtobufUnittestImport.ImportEnumLite = ProtobufUnittestImport.ImportEnumLite.importLiteBar
    public fileprivate(set) var hasDefaultImportEnum:Bool = false
    public fileprivate(set) var defaultStringPiece:String = "abc"

    public fileprivate(set) var hasDefaultStringPiece:Bool = false
    public fileprivate(set) var defaultCord:String = "123"

    public fileprivate(set) var hasDefaultCord:Bool = false
    public fileprivate(set) var oneofUint32:UInt32!{
         get {
              return TestAllTypesLite.OneofField.getOneofUint32(storageOneofField)
         }
         set (newValue) {
              storageOneofField = TestAllTypesLite.OneofField.OneofUint32(newValue)
         }
    }
    public fileprivate(set) var hasOneofUint32:Bool {
          get {
               if TestAllTypesLite.OneofField.getOneofUint32(storageOneofField) == nil {
                   return false
               }
               return true
          }
          set(newValue) {}
    }
    public fileprivate(set) var oneofNestedMessage:ProtobufUnittest.TestAllTypesLite.NestedMessage!{
         get {
              return TestAllTypesLite.OneofField.getOneofNestedMessage(storageOneofField)
         }
         set (newValue) {
              storageOneofField = TestAllTypesLite.OneofField.OneofNestedMessage(newValue)
         }
    }
    public fileprivate(set) var hasOneofNestedMessage:Bool {
          get {
               if TestAllTypesLite.OneofField.getOneofNestedMessage(storageOneofField) == nil {
                   return false
               }
               return true
          }
          set(newValue) {}
    }
    public fileprivate(set) var oneofString:String!{
         get {
              return TestAllTypesLite.OneofField.getOneofString(storageOneofField)
         }
         set (newValue) {
              storageOneofField = TestAllTypesLite.OneofField.OneofString(newValue)
         }
    }
    public fileprivate(set) var hasOneofString:Bool {
          get {
               if TestAllTypesLite.OneofField.getOneofString(storageOneofField) == nil {
                   return false
               }
               return true
          }
          set(newValue) {}
    }
    public fileprivate(set) var oneofBytes:Data!{
         get {
              return TestAllTypesLite.OneofField.getOneofBytes(storageOneofField)
         }
         set (newValue) {
              storageOneofField = TestAllTypesLite.OneofField.OneofBytes(newValue)
         }
    }
    public fileprivate(set) var hasOneofBytes:Bool {
          get {
               if TestAllTypesLite.OneofField.getOneofBytes(storageOneofField) == nil {
                   return false
               }
               return true
          }
          set(newValue) {}
    }
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      if hasOptionalInt32 {
        try codedOutputStream.writeInt32(fieldNumber:1, value:optionalInt32)
      }
      if hasOptionalInt64 {
        try codedOutputStream.writeInt64(fieldNumber:2, value:optionalInt64)
      }
      if hasOptionalUint32 {
        try codedOutputStream.writeUInt32(fieldNumber:3, value:optionalUint32)
      }
      if hasOptionalUint64 {
        try codedOutputStream.writeUInt64(fieldNumber:4, value:optionalUint64)
      }
      if hasOptionalSint32 {
        try codedOutputStream.writeSInt32(fieldNumber:5, value:optionalSint32)
      }
      if hasOptionalSint64 {
        try codedOutputStream.writeSInt64(fieldNumber:6, value:optionalSint64)
      }
      if hasOptionalFixed32 {
        try codedOutputStream.writeFixed32(fieldNumber:7, value:optionalFixed32)
      }
      if hasOptionalFixed64 {
        try codedOutputStream.writeFixed64(fieldNumber:8, value:optionalFixed64)
      }
      if hasOptionalSfixed32 {
        try codedOutputStream.writeSFixed32(fieldNumber:9, value:optionalSfixed32)
      }
      if hasOptionalSfixed64 {
        try codedOutputStream.writeSFixed64(fieldNumber:10, value:optionalSfixed64)
      }
      if hasOptionalFloat {
        try codedOutputStream.writeFloat(fieldNumber:11, value:optionalFloat)
      }
      if hasOptionalDouble {
        try codedOutputStream.writeDouble(fieldNumber:12, value:optionalDouble)
      }
      if hasOptionalBool {
        try codedOutputStream.writeBool(fieldNumber:13, value:optionalBool)
      }
      if hasOptionalString {
        try codedOutputStream.writeString(fieldNumber:14, value:optionalString)
      }
      if hasOptionalBytes {
        try codedOutputStream.writeData(fieldNumber:15, value:optionalBytes)
      }
      if hasOptionalGroup {
        try codedOutputStream.writeGroup(fieldNumber:16, value:optionalGroup)
      }
      if hasOptionalNestedMessage {
        try codedOutputStream.writeMessage(fieldNumber:18, value:optionalNestedMessage)
      }
      if hasOptionalForeignMessage {
        try codedOutputStream.writeMessage(fieldNumber:19, value:optionalForeignMessage)
      }
      if hasOptionalImportMessage {
        try codedOutputStream.writeMessage(fieldNumber:20, value:optionalImportMessage)
      }
      if hasOptionalNestedEnum {
        try codedOutputStream.writeEnum(fieldNumber:21, value:optionalNestedEnum.rawValue)
      }
      if hasOptionalForeignEnum {
        try codedOutputStream.writeEnum(fieldNumber:22, value:optionalForeignEnum.rawValue)
      }
      if hasOptionalImportEnum {
        try codedOutputStream.writeEnum(fieldNumber:23, value:optionalImportEnum.rawValue)
      }
      if hasOptionalStringPiece {
        try codedOutputStream.writeString(fieldNumber:24, value:optionalStringPiece)
      }
      if hasOptionalCord {
        try codedOutputStream.writeString(fieldNumber:25, value:optionalCord)
      }
      if hasOptionalPublicImportMessage {
        try codedOutputStream.writeMessage(fieldNumber:26, value:optionalPublicImportMessage)
      }
      if hasOptionalLazyMessage {
        try codedOutputStream.writeMessage(fieldNumber:27, value:optionalLazyMessage)
      }
      if !repeatedInt32.isEmpty {
        for oneValuerepeatedInt32 in repeatedInt32 {
          try codedOutputStream.writeInt32(fieldNumber:31, value:oneValuerepeatedInt32)
        }
      }
      if !repeatedInt64.isEmpty {
        for oneValuerepeatedInt64 in repeatedInt64 {
          try codedOutputStream.writeInt64(fieldNumber:32, value:oneValuerepeatedInt64)
        }
      }
      if !repeatedUint32.isEmpty {
        for oneValuerepeatedUint32 in repeatedUint32 {
          try codedOutputStream.writeUInt32(fieldNumber:33, value:oneValuerepeatedUint32)
        }
      }
      if !repeatedUint64.isEmpty {
        for oneValuerepeatedUint64 in repeatedUint64 {
          try codedOutputStream.writeUInt64(fieldNumber:34, value:oneValuerepeatedUint64)
        }
      }
      if !repeatedSint32.isEmpty {
        for oneValuerepeatedSint32 in repeatedSint32 {
          try codedOutputStream.writeSInt32(fieldNumber:35, value:oneValuerepeatedSint32)
        }
      }
      if !repeatedSint64.isEmpty {
        for oneValuerepeatedSint64 in repeatedSint64 {
          try codedOutputStream.writeSInt64(fieldNumber:36, value:oneValuerepeatedSint64)
        }
      }
      if !repeatedFixed32.isEmpty {
        for oneValuerepeatedFixed32 in repeatedFixed32 {
          try codedOutputStream.writeFixed32(fieldNumber:37, value:oneValuerepeatedFixed32)
        }
      }
      if !repeatedFixed64.isEmpty {
        for oneValuerepeatedFixed64 in repeatedFixed64 {
          try codedOutputStream.writeFixed64(fieldNumber:38, value:oneValuerepeatedFixed64)
        }
      }
      if !repeatedSfixed32.isEmpty {
        for oneValuerepeatedSfixed32 in repeatedSfixed32 {
          try codedOutputStream.writeSFixed32(fieldNumber:39, value:oneValuerepeatedSfixed32)
        }
      }
      if !repeatedSfixed64.isEmpty {
        for oneValuerepeatedSfixed64 in repeatedSfixed64 {
          try codedOutputStream.writeSFixed64(fieldNumber:40, value:oneValuerepeatedSfixed64)
        }
      }
      if !repeatedFloat.isEmpty {
        for oneValuerepeatedFloat in repeatedFloat {
          try codedOutputStream.writeFloat(fieldNumber:41, value:oneValuerepeatedFloat)
        }
      }
      if !repeatedDouble.isEmpty {
        for oneValuerepeatedDouble in repeatedDouble {
          try codedOutputStream.writeDouble(fieldNumber:42, value:oneValuerepeatedDouble)
        }
      }
      if !repeatedBool.isEmpty {
        for oneValuerepeatedBool in repeatedBool {
          try codedOutputStream.writeBool(fieldNumber:43, value:oneValuerepeatedBool)
        }
      }
      if !repeatedString.isEmpty {
        for oneValuerepeatedString in repeatedString {
          try codedOutputStream.writeString(fieldNumber:44, value:oneValuerepeatedString)
        }
      }
      if !repeatedBytes.isEmpty {
        for oneValuerepeatedBytes in repeatedBytes {
          try codedOutputStream.writeData(fieldNumber:45, value:oneValuerepeatedBytes)
        }
      }
      for oneElementrepeatedGroup in repeatedGroup {
          try codedOutputStream.writeGroup(fieldNumber:46, value:oneElementrepeatedGroup)
      }
      for oneElementrepeatedNestedMessage in repeatedNestedMessage {
          try codedOutputStream.writeMessage(fieldNumber:48, value:oneElementrepeatedNestedMessage)
      }
      for oneElementrepeatedForeignMessage in repeatedForeignMessage {
          try codedOutputStream.writeMessage(fieldNumber:49, value:oneElementrepeatedForeignMessage)
      }
      for oneElementrepeatedImportMessage in repeatedImportMessage {
          try codedOutputStream.writeMessage(fieldNumber:50, value:oneElementrepeatedImportMessage)
      }
      for oneValueOfrepeatedNestedEnum in repeatedNestedEnum {
          try codedOutputStream.writeEnum(fieldNumber:51, value:oneValueOfrepeatedNestedEnum.rawValue)
      }
      for oneValueOfrepeatedForeignEnum in repeatedForeignEnum {
          try codedOutputStream.writeEnum(fieldNumber:52, value:oneValueOfrepeatedForeignEnum.rawValue)
      }
      for oneValueOfrepeatedImportEnum in repeatedImportEnum {
          try codedOutputStream.writeEnum(fieldNumber:53, value:oneValueOfrepeatedImportEnum.rawValue)
      }
      if !repeatedStringPiece.isEmpty {
        for oneValuerepeatedStringPiece in repeatedStringPiece {
          try codedOutputStream.writeString(fieldNumber:54, value:oneValuerepeatedStringPiece)
        }
      }
      if !repeatedCord.isEmpty {
        for oneValuerepeatedCord in repeatedCord {
          try codedOutputStream.writeString(fieldNumber:55, value:oneValuerepeatedCord)
        }
      }
      for oneElementrepeatedLazyMessage in repeatedLazyMessage {
          try codedOutputStream.writeMessage(fieldNumber:57, value:oneElementrepeatedLazyMessage)
      }
      if hasDefaultInt32 {
        try codedOutputStream.writeInt32(fieldNumber:61, value:defaultInt32)
      }
      if hasDefaultInt64 {
        try codedOutputStream.writeInt64(fieldNumber:62, value:defaultInt64)
      }
      if hasDefaultUint32 {
        try codedOutputStream.writeUInt32(fieldNumber:63, value:defaultUint32)
      }
      if hasDefaultUint64 {
        try codedOutputStream.writeUInt64(fieldNumber:64, value:defaultUint64)
      }
      if hasDefaultSint32 {
        try codedOutputStream.writeSInt32(fieldNumber:65, value:defaultSint32)
      }
      if hasDefaultSint64 {
        try codedOutputStream.writeSInt64(fieldNumber:66, value:defaultSint64)
      }
      if hasDefaultFixed32 {
        try codedOutputStream.writeFixed32(fieldNumber:67, value:defaultFixed32)
      }
      if hasDefaultFixed64 {
        try codedOutputStream.writeFixed64(fieldNumber:68, value:defaultFixed64)
      }
      if hasDefaultSfixed32 {
        try codedOutputStream.writeSFixed32(fieldNumber:69, value:defaultSfixed32)
      }
      if hasDefaultSfixed64 {
        try codedOutputStream.writeSFixed64(fieldNumber:70, value:defaultSfixed64)
      }
      if hasDefaultFloat {
        try codedOutputStream.writeFloat(fieldNumber:71, value:defaultFloat)
      }
      if hasDefaultDouble {
        try codedOutputStream.writeDouble(fieldNumber:72, value:defaultDouble)
      }
      if hasDefaultBool {
        try codedOutputStream.writeBool(fieldNumber:73, value:defaultBool)
      }
      if hasDefaultString {
        try codedOutputStream.writeString(fieldNumber:74, value:defaultString)
      }
      if hasDefaultBytes {
        try codedOutputStream.writeData(fieldNumber:75, value:defaultBytes)
      }
      if hasDefaultNestedEnum {
        try codedOutputStream.writeEnum(fieldNumber:81, value:defaultNestedEnum.rawValue)
      }
      if hasDefaultForeignEnum {
        try codedOutputStream.writeEnum(fieldNumber:82, value:defaultForeignEnum.rawValue)
      }
      if hasDefaultImportEnum {
        try codedOutputStream.writeEnum(fieldNumber:83, value:defaultImportEnum.rawValue)
      }
      if hasDefaultStringPiece {
        try codedOutputStream.writeString(fieldNumber:84, value:defaultStringPiece)
      }
      if hasDefaultCord {
        try codedOutputStream.writeString(fieldNumber:85, value:defaultCord)
      }
      if hasOneofUint32 {
        try codedOutputStream.writeUInt32(fieldNumber:111, value:oneofUint32)
      }
      if hasOneofNestedMessage {
        try codedOutputStream.writeMessage(fieldNumber:112, value:oneofNestedMessage)
      }
      if hasOneofString {
        try codedOutputStream.writeString(fieldNumber:113, value:oneofString)
      }
      if hasOneofBytes {
        try codedOutputStream.writeData(fieldNumber:114, value:oneofBytes)
      }
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasOptionalInt32 {
        serialize_size += optionalInt32.computeInt32Size(fieldNumber: 1)
      }
      if hasOptionalInt64 {
        serialize_size += optionalInt64.computeInt64Size(fieldNumber: 2)
      }
      if hasOptionalUint32 {
        serialize_size += optionalUint32.computeUInt32Size(fieldNumber: 3)
      }
      if hasOptionalUint64 {
        serialize_size += optionalUint64.computeUInt64Size(fieldNumber: 4)
      }
      if hasOptionalSint32 {
        serialize_size += optionalSint32.computeSInt32Size(fieldNumber: 5)
      }
      if hasOptionalSint64 {
        serialize_size += optionalSint64.computeSInt64Size(fieldNumber: 6)
      }
      if hasOptionalFixed32 {
        serialize_size += optionalFixed32.computeFixed32Size(fieldNumber: 7)
      }
      if hasOptionalFixed64 {
        serialize_size += optionalFixed64.computeFixed64Size(fieldNumber: 8)
      }
      if hasOptionalSfixed32 {
        serialize_size += optionalSfixed32.computeSFixed32Size(fieldNumber: 9)
      }
      if hasOptionalSfixed64 {
        serialize_size += optionalSfixed64.computeSFixed64Size(fieldNumber: 10)
      }
      if hasOptionalFloat {
        serialize_size += optionalFloat.computeFloatSize(fieldNumber: 11)
      }
      if hasOptionalDouble {
        serialize_size += optionalDouble.computeDoubleSize(fieldNumber: 12)
      }
      if hasOptionalBool {
        serialize_size += optionalBool.computeBoolSize(fieldNumber: 13)
      }
      if hasOptionalString {
        serialize_size += optionalString.computeStringSize(fieldNumber: 14)
      }
      if hasOptionalBytes {
        serialize_size += optionalBytes.computeDataSize(fieldNumber: 15)
      }
      if hasOptionalGroup {
          if let varSizeoptionalGroup = optionalGroup?.computeGroupSize(fieldNumber: 16) {
              serialize_size += varSizeoptionalGroup
          }
      }
      if hasOptionalNestedMessage {
          if let varSizeoptionalNestedMessage = optionalNestedMessage?.computeMessageSize(fieldNumber: 18) {
              serialize_size += varSizeoptionalNestedMessage
          }
      }
      if hasOptionalForeignMessage {
          if let varSizeoptionalForeignMessage = optionalForeignMessage?.computeMessageSize(fieldNumber: 19) {
              serialize_size += varSizeoptionalForeignMessage
          }
      }
      if hasOptionalImportMessage {
          if let varSizeoptionalImportMessage = optionalImportMessage?.computeMessageSize(fieldNumber: 20) {
              serialize_size += varSizeoptionalImportMessage
          }
      }
      if (hasOptionalNestedEnum) {
        serialize_size += optionalNestedEnum.rawValue.computeEnumSize(fieldNumber: 21)
      }
      if (hasOptionalForeignEnum) {
        serialize_size += optionalForeignEnum.rawValue.computeEnumSize(fieldNumber: 22)
      }
      if (hasOptionalImportEnum) {
        serialize_size += optionalImportEnum.rawValue.computeEnumSize(fieldNumber: 23)
      }
      if hasOptionalStringPiece {
        serialize_size += optionalStringPiece.computeStringSize(fieldNumber: 24)
      }
      if hasOptionalCord {
        serialize_size += optionalCord.computeStringSize(fieldNumber: 25)
      }
      if hasOptionalPublicImportMessage {
          if let varSizeoptionalPublicImportMessage = optionalPublicImportMessage?.computeMessageSize(fieldNumber: 26) {
              serialize_size += varSizeoptionalPublicImportMessage
          }
      }
      if hasOptionalLazyMessage {
          if let varSizeoptionalLazyMessage = optionalLazyMessage?.computeMessageSize(fieldNumber: 27) {
              serialize_size += varSizeoptionalLazyMessage
          }
      }
      var dataSizeRepeatedInt32:Int32 = 0
      for oneValuerepeatedInt32 in repeatedInt32 {
          dataSizeRepeatedInt32 += oneValuerepeatedInt32.computeInt32SizeNoTag()
      }
      serialize_size += dataSizeRepeatedInt32
      serialize_size += 2 * Int32(repeatedInt32.count)
      var dataSizeRepeatedInt64:Int32 = 0
      for oneValuerepeatedInt64 in repeatedInt64 {
          dataSizeRepeatedInt64 += oneValuerepeatedInt64.computeInt64SizeNoTag()
      }
      serialize_size += dataSizeRepeatedInt64
      serialize_size += 2 * Int32(repeatedInt64.count)
      var dataSizeRepeatedUint32:Int32 = 0
      for oneValuerepeatedUint32 in repeatedUint32 {
          dataSizeRepeatedUint32 += oneValuerepeatedUint32.computeUInt32SizeNoTag()
      }
      serialize_size += dataSizeRepeatedUint32
      serialize_size += 2 * Int32(repeatedUint32.count)
      var dataSizeRepeatedUint64:Int32 = 0
      for oneValuerepeatedUint64 in repeatedUint64 {
          dataSizeRepeatedUint64 += oneValuerepeatedUint64.computeUInt64SizeNoTag()
      }
      serialize_size += dataSizeRepeatedUint64
      serialize_size += 2 * Int32(repeatedUint64.count)
      var dataSizeRepeatedSint32:Int32 = 0
      for oneValuerepeatedSint32 in repeatedSint32 {
          dataSizeRepeatedSint32 += oneValuerepeatedSint32.computeSInt32SizeNoTag()
      }
      serialize_size += dataSizeRepeatedSint32
      serialize_size += 2 * Int32(repeatedSint32.count)
      var dataSizeRepeatedSint64:Int32 = 0
      for oneValuerepeatedSint64 in repeatedSint64 {
          dataSizeRepeatedSint64 += oneValuerepeatedSint64.computeSInt64SizeNoTag()
      }
      serialize_size += dataSizeRepeatedSint64
      serialize_size += 2 * Int32(repeatedSint64.count)
      var dataSizeRepeatedFixed32:Int32 = 0
      dataSizeRepeatedFixed32 = 4 * Int32(repeatedFixed32.count)
      serialize_size += dataSizeRepeatedFixed32
      serialize_size += 2 * Int32(repeatedFixed32.count)
      var dataSizeRepeatedFixed64:Int32 = 0
      dataSizeRepeatedFixed64 = 8 * Int32(repeatedFixed64.count)
      serialize_size += dataSizeRepeatedFixed64
      serialize_size += 2 * Int32(repeatedFixed64.count)
      var dataSizeRepeatedSfixed32:Int32 = 0
      dataSizeRepeatedSfixed32 = 4 * Int32(repeatedSfixed32.count)
      serialize_size += dataSizeRepeatedSfixed32
      serialize_size += 2 * Int32(repeatedSfixed32.count)
      var dataSizeRepeatedSfixed64:Int32 = 0
      dataSizeRepeatedSfixed64 = 8 * Int32(repeatedSfixed64.count)
      serialize_size += dataSizeRepeatedSfixed64
      serialize_size += 2 * Int32(repeatedSfixed64.count)
      var dataSizeRepeatedFloat:Int32 = 0
      dataSizeRepeatedFloat = 4 * Int32(repeatedFloat.count)
      serialize_size += dataSizeRepeatedFloat
      serialize_size += 2 * Int32(repeatedFloat.count)
      var dataSizeRepeatedDouble:Int32 = 0
      dataSizeRepeatedDouble = 8 * Int32(repeatedDouble.count)
      serialize_size += dataSizeRepeatedDouble
      serialize_size += 2 * Int32(repeatedDouble.count)
      var dataSizeRepeatedBool:Int32 = 0
      dataSizeRepeatedBool = 1 * Int32(repeatedBool.count)
      serialize_size += dataSizeRepeatedBool
      serialize_size += 2 * Int32(repeatedBool.count)
      var dataSizeRepeatedString:Int32 = 0
      for oneValuerepeatedString in repeatedString {
          dataSizeRepeatedString += oneValuerepeatedString.computeStringSizeNoTag()
      }
      serialize_size += dataSizeRepeatedString
      serialize_size += 2 * Int32(repeatedString.count)
      var dataSizeRepeatedBytes:Int32 = 0
      for oneValuerepeatedBytes in repeatedBytes {
          dataSizeRepeatedBytes += oneValuerepeatedBytes.computeDataSizeNoTag()
      }
      serialize_size += dataSizeRepeatedBytes
      serialize_size += 2 * Int32(repeatedBytes.count)
      for oneElementrepeatedGroup in repeatedGroup {
          serialize_size += oneElementrepeatedGroup.computeGroupSize(fieldNumber: 46)
      }
      for oneElementrepeatedNestedMessage in repeatedNestedMessage {
          serialize_size += oneElementrepeatedNestedMessage.computeMessageSize(fieldNumber: 48)
      }
      for oneElementrepeatedForeignMessage in repeatedForeignMessage {
          serialize_size += oneElementrepeatedForeignMessage.computeMessageSize(fieldNumber: 49)
      }
      for oneElementrepeatedImportMessage in repeatedImportMessage {
          serialize_size += oneElementrepeatedImportMessage.computeMessageSize(fieldNumber: 50)
      }
      var dataSizerepeatedNestedEnum:Int32 = 0
      for oneValueOfrepeatedNestedEnum in repeatedNestedEnum {
          dataSizerepeatedNestedEnum += oneValueOfrepeatedNestedEnum.rawValue.computeEnumSizeNoTag()
      }
      serialize_size += dataSizerepeatedNestedEnum
      serialize_size += (2 * Int32(repeatedNestedEnum.count))
      var dataSizerepeatedForeignEnum:Int32 = 0
      for oneValueOfrepeatedForeignEnum in repeatedForeignEnum {
          dataSizerepeatedForeignEnum += oneValueOfrepeatedForeignEnum.rawValue.computeEnumSizeNoTag()
      }
      serialize_size += dataSizerepeatedForeignEnum
      serialize_size += (2 * Int32(repeatedForeignEnum.count))
      var dataSizerepeatedImportEnum:Int32 = 0
      for oneValueOfrepeatedImportEnum in repeatedImportEnum {
          dataSizerepeatedImportEnum += oneValueOfrepeatedImportEnum.rawValue.computeEnumSizeNoTag()
      }
      serialize_size += dataSizerepeatedImportEnum
      serialize_size += (2 * Int32(repeatedImportEnum.count))
      var dataSizeRepeatedStringPiece:Int32 = 0
      for oneValuerepeatedStringPiece in repeatedStringPiece {
          dataSizeRepeatedStringPiece += oneValuerepeatedStringPiece.computeStringSizeNoTag()
      }
      serialize_size += dataSizeRepeatedStringPiece
      serialize_size += 2 * Int32(repeatedStringPiece.count)
      var dataSizeRepeatedCord:Int32 = 0
      for oneValuerepeatedCord in repeatedCord {
          dataSizeRepeatedCord += oneValuerepeatedCord.computeStringSizeNoTag()
      }
      serialize_size += dataSizeRepeatedCord
      serialize_size += 2 * Int32(repeatedCord.count)
      for oneElementrepeatedLazyMessage in repeatedLazyMessage {
          serialize_size += oneElementrepeatedLazyMessage.computeMessageSize(fieldNumber: 57)
      }
      if hasDefaultInt32 {
        serialize_size += defaultInt32.computeInt32Size(fieldNumber: 61)
      }
      if hasDefaultInt64 {
        serialize_size += defaultInt64.computeInt64Size(fieldNumber: 62)
      }
      if hasDefaultUint32 {
        serialize_size += defaultUint32.computeUInt32Size(fieldNumber: 63)
      }
      if hasDefaultUint64 {
        serialize_size += defaultUint64.computeUInt64Size(fieldNumber: 64)
      }
      if hasDefaultSint32 {
        serialize_size += defaultSint32.computeSInt32Size(fieldNumber: 65)
      }
      if hasDefaultSint64 {
        serialize_size += defaultSint64.computeSInt64Size(fieldNumber: 66)
      }
      if hasDefaultFixed32 {
        serialize_size += defaultFixed32.computeFixed32Size(fieldNumber: 67)
      }
      if hasDefaultFixed64 {
        serialize_size += defaultFixed64.computeFixed64Size(fieldNumber: 68)
      }
      if hasDefaultSfixed32 {
        serialize_size += defaultSfixed32.computeSFixed32Size(fieldNumber: 69)
      }
      if hasDefaultSfixed64 {
        serialize_size += defaultSfixed64.computeSFixed64Size(fieldNumber: 70)
      }
      if hasDefaultFloat {
        serialize_size += defaultFloat.computeFloatSize(fieldNumber: 71)
      }
      if hasDefaultDouble {
        serialize_size += defaultDouble.computeDoubleSize(fieldNumber: 72)
      }
      if hasDefaultBool {
        serialize_size += defaultBool.computeBoolSize(fieldNumber: 73)
      }
      if hasDefaultString {
        serialize_size += defaultString.computeStringSize(fieldNumber: 74)
      }
      if hasDefaultBytes {
        serialize_size += defaultBytes.computeDataSize(fieldNumber: 75)
      }
      if (hasDefaultNestedEnum) {
        serialize_size += defaultNestedEnum.rawValue.computeEnumSize(fieldNumber: 81)
      }
      if (hasDefaultForeignEnum) {
        serialize_size += defaultForeignEnum.rawValue.computeEnumSize(fieldNumber: 82)
      }
      if (hasDefaultImportEnum) {
        serialize_size += defaultImportEnum.rawValue.computeEnumSize(fieldNumber: 83)
      }
      if hasDefaultStringPiece {
        serialize_size += defaultStringPiece.computeStringSize(fieldNumber: 84)
      }
      if hasDefaultCord {
        serialize_size += defaultCord.computeStringSize(fieldNumber: 85)
      }
      if hasOneofUint32 {
        serialize_size += oneofUint32.computeUInt32Size(fieldNumber: 111)
      }
      if hasOneofNestedMessage {
          if let varSizeoneofNestedMessage = oneofNestedMessage?.computeMessageSize(fieldNumber: 112) {
              serialize_size += varSizeoneofNestedMessage
          }
      }
      if hasOneofString {
        serialize_size += oneofString.computeStringSize(fieldNumber: 113)
      }
      if hasOneofBytes {
        serialize_size += oneofBytes.computeDataSize(fieldNumber: 114)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestAllTypesLite.Builder {
      return ProtobufUnittest.TestAllTypesLite.classBuilder() as! ProtobufUnittest.TestAllTypesLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestAllTypesLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestAllTypesLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestAllTypesLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestAllTypesLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestAllTypesLite.Builder {
      return try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
      return try ProtobufUnittest.TestAllTypesLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      if hasOptionalInt32 {
        output += "\(indent) optionalInt32: \(optionalInt32) \n"
      }
      if hasOptionalInt64 {
        output += "\(indent) optionalInt64: \(optionalInt64) \n"
      }
      if hasOptionalUint32 {
        output += "\(indent) optionalUint32: \(optionalUint32) \n"
      }
      if hasOptionalUint64 {
        output += "\(indent) optionalUint64: \(optionalUint64) \n"
      }
      if hasOptionalSint32 {
        output += "\(indent) optionalSint32: \(optionalSint32) \n"
      }
      if hasOptionalSint64 {
        output += "\(indent) optionalSint64: \(optionalSint64) \n"
      }
      if hasOptionalFixed32 {
        output += "\(indent) optionalFixed32: \(optionalFixed32) \n"
      }
      if hasOptionalFixed64 {
        output += "\(indent) optionalFixed64: \(optionalFixed64) \n"
      }
      if hasOptionalSfixed32 {
        output += "\(indent) optionalSfixed32: \(optionalSfixed32) \n"
      }
      if hasOptionalSfixed64 {
        output += "\(indent) optionalSfixed64: \(optionalSfixed64) \n"
      }
      if hasOptionalFloat {
        output += "\(indent) optionalFloat: \(optionalFloat) \n"
      }
      if hasOptionalDouble {
        output += "\(indent) optionalDouble: \(optionalDouble) \n"
      }
      if hasOptionalBool {
        output += "\(indent) optionalBool: \(optionalBool) \n"
      }
      if hasOptionalString {
        output += "\(indent) optionalString: \(optionalString) \n"
      }
      if hasOptionalBytes {
        output += "\(indent) optionalBytes: \(optionalBytes) \n"
      }
      if hasOptionalGroup {
        output += "\(indent) optionalGroup {\n"
        if let outDescOptionalGroup = optionalGroup {
          output += try outDescOptionalGroup.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if hasOptionalNestedMessage {
        output += "\(indent) optionalNestedMessage {\n"
        if let outDescOptionalNestedMessage = optionalNestedMessage {
          output += try outDescOptionalNestedMessage.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if hasOptionalForeignMessage {
        output += "\(indent) optionalForeignMessage {\n"
        if let outDescOptionalForeignMessage = optionalForeignMessage {
          output += try outDescOptionalForeignMessage.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if hasOptionalImportMessage {
        output += "\(indent) optionalImportMessage {\n"
        if let outDescOptionalImportMessage = optionalImportMessage {
          output += try outDescOptionalImportMessage.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if (hasOptionalNestedEnum) {
        output += "\(indent) optionalNestedEnum: \(optionalNestedEnum.description)\n"
      }
      if (hasOptionalForeignEnum) {
        output += "\(indent) optionalForeignEnum: \(optionalForeignEnum.description)\n"
      }
      if (hasOptionalImportEnum) {
        output += "\(indent) optionalImportEnum: \(optionalImportEnum.description)\n"
      }
      if hasOptionalStringPiece {
        output += "\(indent) optionalStringPiece: \(optionalStringPiece) \n"
      }
      if hasOptionalCord {
        output += "\(indent) optionalCord: \(optionalCord) \n"
      }
      if hasOptionalPublicImportMessage {
        output += "\(indent) optionalPublicImportMessage {\n"
        if let outDescOptionalPublicImportMessage = optionalPublicImportMessage {
          output += try outDescOptionalPublicImportMessage.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if hasOptionalLazyMessage {
        output += "\(indent) optionalLazyMessage {\n"
        if let outDescOptionalLazyMessage = optionalLazyMessage {
          output += try outDescOptionalLazyMessage.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      var repeatedInt32ElementIndex:Int = 0
      for oneValuerepeatedInt32 in repeatedInt32  {
          output += "\(indent) repeatedInt32[\(repeatedInt32ElementIndex)]: \(oneValuerepeatedInt32)\n"
          repeatedInt32ElementIndex += 1
      }
      var repeatedInt64ElementIndex:Int = 0
      for oneValuerepeatedInt64 in repeatedInt64  {
          output += "\(indent) repeatedInt64[\(repeatedInt64ElementIndex)]: \(oneValuerepeatedInt64)\n"
          repeatedInt64ElementIndex += 1
      }
      var repeatedUint32ElementIndex:Int = 0
      for oneValuerepeatedUint32 in repeatedUint32  {
          output += "\(indent) repeatedUint32[\(repeatedUint32ElementIndex)]: \(oneValuerepeatedUint32)\n"
          repeatedUint32ElementIndex += 1
      }
      var repeatedUint64ElementIndex:Int = 0
      for oneValuerepeatedUint64 in repeatedUint64  {
          output += "\(indent) repeatedUint64[\(repeatedUint64ElementIndex)]: \(oneValuerepeatedUint64)\n"
          repeatedUint64ElementIndex += 1
      }
      var repeatedSint32ElementIndex:Int = 0
      for oneValuerepeatedSint32 in repeatedSint32  {
          output += "\(indent) repeatedSint32[\(repeatedSint32ElementIndex)]: \(oneValuerepeatedSint32)\n"
          repeatedSint32ElementIndex += 1
      }
      var repeatedSint64ElementIndex:Int = 0
      for oneValuerepeatedSint64 in repeatedSint64  {
          output += "\(indent) repeatedSint64[\(repeatedSint64ElementIndex)]: \(oneValuerepeatedSint64)\n"
          repeatedSint64ElementIndex += 1
      }
      var repeatedFixed32ElementIndex:Int = 0
      for oneValuerepeatedFixed32 in repeatedFixed32  {
          output += "\(indent) repeatedFixed32[\(repeatedFixed32ElementIndex)]: \(oneValuerepeatedFixed32)\n"
          repeatedFixed32ElementIndex += 1
      }
      var repeatedFixed64ElementIndex:Int = 0
      for oneValuerepeatedFixed64 in repeatedFixed64  {
          output += "\(indent) repeatedFixed64[\(repeatedFixed64ElementIndex)]: \(oneValuerepeatedFixed64)\n"
          repeatedFixed64ElementIndex += 1
      }
      var repeatedSfixed32ElementIndex:Int = 0
      for oneValuerepeatedSfixed32 in repeatedSfixed32  {
          output += "\(indent) repeatedSfixed32[\(repeatedSfixed32ElementIndex)]: \(oneValuerepeatedSfixed32)\n"
          repeatedSfixed32ElementIndex += 1
      }
      var repeatedSfixed64ElementIndex:Int = 0
      for oneValuerepeatedSfixed64 in repeatedSfixed64  {
          output += "\(indent) repeatedSfixed64[\(repeatedSfixed64ElementIndex)]: \(oneValuerepeatedSfixed64)\n"
          repeatedSfixed64ElementIndex += 1
      }
      var repeatedFloatElementIndex:Int = 0
      for oneValuerepeatedFloat in repeatedFloat  {
          output += "\(indent) repeatedFloat[\(repeatedFloatElementIndex)]: \(oneValuerepeatedFloat)\n"
          repeatedFloatElementIndex += 1
      }
      var repeatedDoubleElementIndex:Int = 0
      for oneValuerepeatedDouble in repeatedDouble  {
          output += "\(indent) repeatedDouble[\(repeatedDoubleElementIndex)]: \(oneValuerepeatedDouble)\n"
          repeatedDoubleElementIndex += 1
      }
      var repeatedBoolElementIndex:Int = 0
      for oneValuerepeatedBool in repeatedBool  {
          output += "\(indent) repeatedBool[\(repeatedBoolElementIndex)]: \(oneValuerepeatedBool)\n"
          repeatedBoolElementIndex += 1
      }
      var repeatedStringElementIndex:Int = 0
      for oneValuerepeatedString in repeatedString  {
          output += "\(indent) repeatedString[\(repeatedStringElementIndex)]: \(oneValuerepeatedString)\n"
          repeatedStringElementIndex += 1
      }
      var repeatedBytesElementIndex:Int = 0
      for oneValuerepeatedBytes in repeatedBytes  {
          output += "\(indent) repeatedBytes[\(repeatedBytesElementIndex)]: \(oneValuerepeatedBytes)\n"
          repeatedBytesElementIndex += 1
      }
      var repeatedGroupElementIndex:Int = 0
      for oneElementrepeatedGroup in repeatedGroup {
          output += "\(indent) repeatedGroup[\(repeatedGroupElementIndex)] {\n"
          output += try oneElementrepeatedGroup.getDescription(indent:"\(indent)  ")
          output += "\(indent)}\n"
          repeatedGroupElementIndex += 1
      }
      var repeatedNestedMessageElementIndex:Int = 0
      for oneElementrepeatedNestedMessage in repeatedNestedMessage {
          output += "\(indent) repeatedNestedMessage[\(repeatedNestedMessageElementIndex)] {\n"
          output += try oneElementrepeatedNestedMessage.getDescription(indent:"\(indent)  ")
          output += "\(indent)}\n"
          repeatedNestedMessageElementIndex += 1
      }
      var repeatedForeignMessageElementIndex:Int = 0
      for oneElementrepeatedForeignMessage in repeatedForeignMessage {
          output += "\(indent) repeatedForeignMessage[\(repeatedForeignMessageElementIndex)] {\n"
          output += try oneElementrepeatedForeignMessage.getDescription(indent:"\(indent)  ")
          output += "\(indent)}\n"
          repeatedForeignMessageElementIndex += 1
      }
      var repeatedImportMessageElementIndex:Int = 0
      for oneElementrepeatedImportMessage in repeatedImportMessage {
          output += "\(indent) repeatedImportMessage[\(repeatedImportMessageElementIndex)] {\n"
          output += try oneElementrepeatedImportMessage.getDescription(indent:"\(indent)  ")
          output += "\(indent)}\n"
          repeatedImportMessageElementIndex += 1
      }
      var repeatedNestedEnumElementIndex:Int = 0
      for oneValueOfrepeatedNestedEnum in repeatedNestedEnum {
          output += "\(indent) repeatedNestedEnum[\(repeatedNestedEnumElementIndex)]: \(oneValueOfrepeatedNestedEnum.description)\n"
          repeatedNestedEnumElementIndex += 1
      }
      var repeatedForeignEnumElementIndex:Int = 0
      for oneValueOfrepeatedForeignEnum in repeatedForeignEnum {
          output += "\(indent) repeatedForeignEnum[\(repeatedForeignEnumElementIndex)]: \(oneValueOfrepeatedForeignEnum.description)\n"
          repeatedForeignEnumElementIndex += 1
      }
      var repeatedImportEnumElementIndex:Int = 0
      for oneValueOfrepeatedImportEnum in repeatedImportEnum {
          output += "\(indent) repeatedImportEnum[\(repeatedImportEnumElementIndex)]: \(oneValueOfrepeatedImportEnum.description)\n"
          repeatedImportEnumElementIndex += 1
      }
      var repeatedStringPieceElementIndex:Int = 0
      for oneValuerepeatedStringPiece in repeatedStringPiece  {
          output += "\(indent) repeatedStringPiece[\(repeatedStringPieceElementIndex)]: \(oneValuerepeatedStringPiece)\n"
          repeatedStringPieceElementIndex += 1
      }
      var repeatedCordElementIndex:Int = 0
      for oneValuerepeatedCord in repeatedCord  {
          output += "\(indent) repeatedCord[\(repeatedCordElementIndex)]: \(oneValuerepeatedCord)\n"
          repeatedCordElementIndex += 1
      }
      var repeatedLazyMessageElementIndex:Int = 0
      for oneElementrepeatedLazyMessage in repeatedLazyMessage {
          output += "\(indent) repeatedLazyMessage[\(repeatedLazyMessageElementIndex)] {\n"
          output += try oneElementrepeatedLazyMessage.getDescription(indent:"\(indent)  ")
          output += "\(indent)}\n"
          repeatedLazyMessageElementIndex += 1
      }
      if hasDefaultInt32 {
        output += "\(indent) defaultInt32: \(defaultInt32) \n"
      }
      if hasDefaultInt64 {
        output += "\(indent) defaultInt64: \(defaultInt64) \n"
      }
      if hasDefaultUint32 {
        output += "\(indent) defaultUint32: \(defaultUint32) \n"
      }
      if hasDefaultUint64 {
        output += "\(indent) defaultUint64: \(defaultUint64) \n"
      }
      if hasDefaultSint32 {
        output += "\(indent) defaultSint32: \(defaultSint32) \n"
      }
      if hasDefaultSint64 {
        output += "\(indent) defaultSint64: \(defaultSint64) \n"
      }
      if hasDefaultFixed32 {
        output += "\(indent) defaultFixed32: \(defaultFixed32) \n"
      }
      if hasDefaultFixed64 {
        output += "\(indent) defaultFixed64: \(defaultFixed64) \n"
      }
      if hasDefaultSfixed32 {
        output += "\(indent) defaultSfixed32: \(defaultSfixed32) \n"
      }
      if hasDefaultSfixed64 {
        output += "\(indent) defaultSfixed64: \(defaultSfixed64) \n"
      }
      if hasDefaultFloat {
        output += "\(indent) defaultFloat: \(defaultFloat) \n"
      }
      if hasDefaultDouble {
        output += "\(indent) defaultDouble: \(defaultDouble) \n"
      }
      if hasDefaultBool {
        output += "\(indent) defaultBool: \(defaultBool) \n"
      }
      if hasDefaultString {
        output += "\(indent) defaultString: \(defaultString) \n"
      }
      if hasDefaultBytes {
        output += "\(indent) defaultBytes: \(defaultBytes) \n"
      }
      if (hasDefaultNestedEnum) {
        output += "\(indent) defaultNestedEnum: \(defaultNestedEnum.description)\n"
      }
      if (hasDefaultForeignEnum) {
        output += "\(indent) defaultForeignEnum: \(defaultForeignEnum.description)\n"
      }
      if (hasDefaultImportEnum) {
        output += "\(indent) defaultImportEnum: \(defaultImportEnum.description)\n"
      }
      if hasDefaultStringPiece {
        output += "\(indent) defaultStringPiece: \(defaultStringPiece) \n"
      }
      if hasDefaultCord {
        output += "\(indent) defaultCord: \(defaultCord) \n"
      }
      if hasOneofUint32 {
        output += "\(indent) oneofUint32: \(oneofUint32) \n"
      }
      if hasOneofNestedMessage {
        output += "\(indent) oneofNestedMessage {\n"
        if let outDescOneofNestedMessage = oneofNestedMessage {
          output += try outDescOneofNestedMessage.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if hasOneofString {
        output += "\(indent) oneofString: \(oneofString) \n"
      }
      if hasOneofBytes {
        output += "\(indent) oneofBytes: \(oneofBytes) \n"
      }
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasOptionalInt32 {
               hashCode = (hashCode &* 31) &+ optionalInt32.hashValue
            }
            if hasOptionalInt64 {
               hashCode = (hashCode &* 31) &+ optionalInt64.hashValue
            }
            if hasOptionalUint32 {
               hashCode = (hashCode &* 31) &+ optionalUint32.hashValue
            }
            if hasOptionalUint64 {
               hashCode = (hashCode &* 31) &+ optionalUint64.hashValue
            }
            if hasOptionalSint32 {
               hashCode = (hashCode &* 31) &+ optionalSint32.hashValue
            }
            if hasOptionalSint64 {
               hashCode = (hashCode &* 31) &+ optionalSint64.hashValue
            }
            if hasOptionalFixed32 {
               hashCode = (hashCode &* 31) &+ optionalFixed32.hashValue
            }
            if hasOptionalFixed64 {
               hashCode = (hashCode &* 31) &+ optionalFixed64.hashValue
            }
            if hasOptionalSfixed32 {
               hashCode = (hashCode &* 31) &+ optionalSfixed32.hashValue
            }
            if hasOptionalSfixed64 {
               hashCode = (hashCode &* 31) &+ optionalSfixed64.hashValue
            }
            if hasOptionalFloat {
               hashCode = (hashCode &* 31) &+ optionalFloat.hashValue
            }
            if hasOptionalDouble {
               hashCode = (hashCode &* 31) &+ optionalDouble.hashValue
            }
            if hasOptionalBool {
               hashCode = (hashCode &* 31) &+ optionalBool.hashValue
            }
            if hasOptionalString {
               hashCode = (hashCode &* 31) &+ optionalString.hashValue
            }
            if hasOptionalBytes {
               hashCode = (hashCode &* 31) &+ optionalBytes.hashValue
            }
            if hasOptionalGroup {
                if let hashValueoptionalGroup = optionalGroup?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalGroup
                }
            }
            if hasOptionalNestedMessage {
                if let hashValueoptionalNestedMessage = optionalNestedMessage?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalNestedMessage
                }
            }
            if hasOptionalForeignMessage {
                if let hashValueoptionalForeignMessage = optionalForeignMessage?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalForeignMessage
                }
            }
            if hasOptionalImportMessage {
                if let hashValueoptionalImportMessage = optionalImportMessage?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalImportMessage
                }
            }
            if hasOptionalNestedEnum {
               hashCode = (hashCode &* 31) &+ Int(optionalNestedEnum.rawValue)
            }
            if hasOptionalForeignEnum {
               hashCode = (hashCode &* 31) &+ Int(optionalForeignEnum.rawValue)
            }
            if hasOptionalImportEnum {
               hashCode = (hashCode &* 31) &+ Int(optionalImportEnum.rawValue)
            }
            if hasOptionalStringPiece {
               hashCode = (hashCode &* 31) &+ optionalStringPiece.hashValue
            }
            if hasOptionalCord {
               hashCode = (hashCode &* 31) &+ optionalCord.hashValue
            }
            if hasOptionalPublicImportMessage {
                if let hashValueoptionalPublicImportMessage = optionalPublicImportMessage?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalPublicImportMessage
                }
            }
            if hasOptionalLazyMessage {
                if let hashValueoptionalLazyMessage = optionalLazyMessage?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalLazyMessage
                }
            }
            for oneValuerepeatedInt32 in repeatedInt32 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedInt32.hashValue
            }
            for oneValuerepeatedInt64 in repeatedInt64 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedInt64.hashValue
            }
            for oneValuerepeatedUint32 in repeatedUint32 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedUint32.hashValue
            }
            for oneValuerepeatedUint64 in repeatedUint64 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedUint64.hashValue
            }
            for oneValuerepeatedSint32 in repeatedSint32 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedSint32.hashValue
            }
            for oneValuerepeatedSint64 in repeatedSint64 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedSint64.hashValue
            }
            for oneValuerepeatedFixed32 in repeatedFixed32 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedFixed32.hashValue
            }
            for oneValuerepeatedFixed64 in repeatedFixed64 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedFixed64.hashValue
            }
            for oneValuerepeatedSfixed32 in repeatedSfixed32 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedSfixed32.hashValue
            }
            for oneValuerepeatedSfixed64 in repeatedSfixed64 {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedSfixed64.hashValue
            }
            for oneValuerepeatedFloat in repeatedFloat {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedFloat.hashValue
            }
            for oneValuerepeatedDouble in repeatedDouble {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedDouble.hashValue
            }
            for oneValuerepeatedBool in repeatedBool {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedBool.hashValue
            }
            for oneValuerepeatedString in repeatedString {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedString.hashValue
            }
            for oneValuerepeatedBytes in repeatedBytes {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedBytes.hashValue
            }
            for oneElementrepeatedGroup in repeatedGroup {
                hashCode = (hashCode &* 31) &+ oneElementrepeatedGroup.hashValue
            }
            for oneElementrepeatedNestedMessage in repeatedNestedMessage {
                hashCode = (hashCode &* 31) &+ oneElementrepeatedNestedMessage.hashValue
            }
            for oneElementrepeatedForeignMessage in repeatedForeignMessage {
                hashCode = (hashCode &* 31) &+ oneElementrepeatedForeignMessage.hashValue
            }
            for oneElementrepeatedImportMessage in repeatedImportMessage {
                hashCode = (hashCode &* 31) &+ oneElementrepeatedImportMessage.hashValue
            }
            for oneValueOfrepeatedNestedEnum in repeatedNestedEnum {
                hashCode = (hashCode &* 31) &+ Int(oneValueOfrepeatedNestedEnum.rawValue)
            }
            for oneValueOfrepeatedForeignEnum in repeatedForeignEnum {
                hashCode = (hashCode &* 31) &+ Int(oneValueOfrepeatedForeignEnum.rawValue)
            }
            for oneValueOfrepeatedImportEnum in repeatedImportEnum {
                hashCode = (hashCode &* 31) &+ Int(oneValueOfrepeatedImportEnum.rawValue)
            }
            for oneValuerepeatedStringPiece in repeatedStringPiece {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedStringPiece.hashValue
            }
            for oneValuerepeatedCord in repeatedCord {
                hashCode = (hashCode &* 31) &+ oneValuerepeatedCord.hashValue
            }
            for oneElementrepeatedLazyMessage in repeatedLazyMessage {
                hashCode = (hashCode &* 31) &+ oneElementrepeatedLazyMessage.hashValue
            }
            if hasDefaultInt32 {
               hashCode = (hashCode &* 31) &+ defaultInt32.hashValue
            }
            if hasDefaultInt64 {
               hashCode = (hashCode &* 31) &+ defaultInt64.hashValue
            }
            if hasDefaultUint32 {
               hashCode = (hashCode &* 31) &+ defaultUint32.hashValue
            }
            if hasDefaultUint64 {
               hashCode = (hashCode &* 31) &+ defaultUint64.hashValue
            }
            if hasDefaultSint32 {
               hashCode = (hashCode &* 31) &+ defaultSint32.hashValue
            }
            if hasDefaultSint64 {
               hashCode = (hashCode &* 31) &+ defaultSint64.hashValue
            }
            if hasDefaultFixed32 {
               hashCode = (hashCode &* 31) &+ defaultFixed32.hashValue
            }
            if hasDefaultFixed64 {
               hashCode = (hashCode &* 31) &+ defaultFixed64.hashValue
            }
            if hasDefaultSfixed32 {
               hashCode = (hashCode &* 31) &+ defaultSfixed32.hashValue
            }
            if hasDefaultSfixed64 {
               hashCode = (hashCode &* 31) &+ defaultSfixed64.hashValue
            }
            if hasDefaultFloat {
               hashCode = (hashCode &* 31) &+ defaultFloat.hashValue
            }
            if hasDefaultDouble {
               hashCode = (hashCode &* 31) &+ defaultDouble.hashValue
            }
            if hasDefaultBool {
               hashCode = (hashCode &* 31) &+ defaultBool.hashValue
            }
            if hasDefaultString {
               hashCode = (hashCode &* 31) &+ defaultString.hashValue
            }
            if hasDefaultBytes {
               hashCode = (hashCode &* 31) &+ defaultBytes.hashValue
            }
            if hasDefaultNestedEnum {
               hashCode = (hashCode &* 31) &+ Int(defaultNestedEnum.rawValue)
            }
            if hasDefaultForeignEnum {
               hashCode = (hashCode &* 31) &+ Int(defaultForeignEnum.rawValue)
            }
            if hasDefaultImportEnum {
               hashCode = (hashCode &* 31) &+ Int(defaultImportEnum.rawValue)
            }
            if hasDefaultStringPiece {
               hashCode = (hashCode &* 31) &+ defaultStringPiece.hashValue
            }
            if hasDefaultCord {
               hashCode = (hashCode &* 31) &+ defaultCord.hashValue
            }
            if hasOneofUint32 {
               hashCode = (hashCode &* 31) &+ oneofUint32.hashValue
            }
            if hasOneofNestedMessage {
                if let hashValueoneofNestedMessage = oneofNestedMessage?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoneofNestedMessage
                }
            }
            if hasOneofString {
               hashCode = (hashCode &* 31) &+ oneofString.hashValue
            }
            if hasOneofBytes {
               hashCode = (hashCode &* 31) &+ oneofBytes.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestAllTypesLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestAllTypesLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.TestAllTypesLite = ProtobufUnittest.TestAllTypesLite()
      public func getMessage() -> ProtobufUnittest.TestAllTypesLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasOptionalInt32:Bool {
           get {
                return builderResult.hasOptionalInt32
           }
      }
      public var optionalInt32:Int32 {
           get {
                return builderResult.optionalInt32
           }
           set (value) {
               builderResult.hasOptionalInt32 = true
               builderResult.optionalInt32 = value
           }
      }
      public func setOptionalInt32(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalInt32 = value
        return self
      }
      public func clearOptionalInt32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalInt32 = false
           builderResult.optionalInt32 = Int32(0)
           return self
      }
      public var hasOptionalInt64:Bool {
           get {
                return builderResult.hasOptionalInt64
           }
      }
      public var optionalInt64:Int64 {
           get {
                return builderResult.optionalInt64
           }
           set (value) {
               builderResult.hasOptionalInt64 = true
               builderResult.optionalInt64 = value
           }
      }
      public func setOptionalInt64(_ value:Int64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalInt64 = value
        return self
      }
      public func clearOptionalInt64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalInt64 = false
           builderResult.optionalInt64 = Int64(0)
           return self
      }
      public var hasOptionalUint32:Bool {
           get {
                return builderResult.hasOptionalUint32
           }
      }
      public var optionalUint32:UInt32 {
           get {
                return builderResult.optionalUint32
           }
           set (value) {
               builderResult.hasOptionalUint32 = true
               builderResult.optionalUint32 = value
           }
      }
      public func setOptionalUint32(_ value:UInt32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalUint32 = value
        return self
      }
      public func clearOptionalUint32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalUint32 = false
           builderResult.optionalUint32 = UInt32(0)
           return self
      }
      public var hasOptionalUint64:Bool {
           get {
                return builderResult.hasOptionalUint64
           }
      }
      public var optionalUint64:UInt64 {
           get {
                return builderResult.optionalUint64
           }
           set (value) {
               builderResult.hasOptionalUint64 = true
               builderResult.optionalUint64 = value
           }
      }
      public func setOptionalUint64(_ value:UInt64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalUint64 = value
        return self
      }
      public func clearOptionalUint64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalUint64 = false
           builderResult.optionalUint64 = UInt64(0)
           return self
      }
      public var hasOptionalSint32:Bool {
           get {
                return builderResult.hasOptionalSint32
           }
      }
      public var optionalSint32:Int32 {
           get {
                return builderResult.optionalSint32
           }
           set (value) {
               builderResult.hasOptionalSint32 = true
               builderResult.optionalSint32 = value
           }
      }
      public func setOptionalSint32(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalSint32 = value
        return self
      }
      public func clearOptionalSint32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalSint32 = false
           builderResult.optionalSint32 = Int32(0)
           return self
      }
      public var hasOptionalSint64:Bool {
           get {
                return builderResult.hasOptionalSint64
           }
      }
      public var optionalSint64:Int64 {
           get {
                return builderResult.optionalSint64
           }
           set (value) {
               builderResult.hasOptionalSint64 = true
               builderResult.optionalSint64 = value
           }
      }
      public func setOptionalSint64(_ value:Int64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalSint64 = value
        return self
      }
      public func clearOptionalSint64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalSint64 = false
           builderResult.optionalSint64 = Int64(0)
           return self
      }
      public var hasOptionalFixed32:Bool {
           get {
                return builderResult.hasOptionalFixed32
           }
      }
      public var optionalFixed32:UInt32 {
           get {
                return builderResult.optionalFixed32
           }
           set (value) {
               builderResult.hasOptionalFixed32 = true
               builderResult.optionalFixed32 = value
           }
      }
      public func setOptionalFixed32(_ value:UInt32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalFixed32 = value
        return self
      }
      public func clearOptionalFixed32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalFixed32 = false
           builderResult.optionalFixed32 = UInt32(0)
           return self
      }
      public var hasOptionalFixed64:Bool {
           get {
                return builderResult.hasOptionalFixed64
           }
      }
      public var optionalFixed64:UInt64 {
           get {
                return builderResult.optionalFixed64
           }
           set (value) {
               builderResult.hasOptionalFixed64 = true
               builderResult.optionalFixed64 = value
           }
      }
      public func setOptionalFixed64(_ value:UInt64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalFixed64 = value
        return self
      }
      public func clearOptionalFixed64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalFixed64 = false
           builderResult.optionalFixed64 = UInt64(0)
           return self
      }
      public var hasOptionalSfixed32:Bool {
           get {
                return builderResult.hasOptionalSfixed32
           }
      }
      public var optionalSfixed32:Int32 {
           get {
                return builderResult.optionalSfixed32
           }
           set (value) {
               builderResult.hasOptionalSfixed32 = true
               builderResult.optionalSfixed32 = value
           }
      }
      public func setOptionalSfixed32(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalSfixed32 = value
        return self
      }
      public func clearOptionalSfixed32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalSfixed32 = false
           builderResult.optionalSfixed32 = Int32(0)
           return self
      }
      public var hasOptionalSfixed64:Bool {
           get {
                return builderResult.hasOptionalSfixed64
           }
      }
      public var optionalSfixed64:Int64 {
           get {
                return builderResult.optionalSfixed64
           }
           set (value) {
               builderResult.hasOptionalSfixed64 = true
               builderResult.optionalSfixed64 = value
           }
      }
      public func setOptionalSfixed64(_ value:Int64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalSfixed64 = value
        return self
      }
      public func clearOptionalSfixed64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalSfixed64 = false
           builderResult.optionalSfixed64 = Int64(0)
           return self
      }
      public var hasOptionalFloat:Bool {
           get {
                return builderResult.hasOptionalFloat
           }
      }
      public var optionalFloat:Float {
           get {
                return builderResult.optionalFloat
           }
           set (value) {
               builderResult.hasOptionalFloat = true
               builderResult.optionalFloat = value
           }
      }
      public func setOptionalFloat(_ value:Float) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalFloat = value
        return self
      }
      public func clearOptionalFloat() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalFloat = false
           builderResult.optionalFloat = Float(0)
           return self
      }
      public var hasOptionalDouble:Bool {
           get {
                return builderResult.hasOptionalDouble
           }
      }
      public var optionalDouble:Double {
           get {
                return builderResult.optionalDouble
           }
           set (value) {
               builderResult.hasOptionalDouble = true
               builderResult.optionalDouble = value
           }
      }
      public func setOptionalDouble(_ value:Double) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalDouble = value
        return self
      }
      public func clearOptionalDouble() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalDouble = false
           builderResult.optionalDouble = Double(0)
           return self
      }
      public var hasOptionalBool:Bool {
           get {
                return builderResult.hasOptionalBool
           }
      }
      public var optionalBool:Bool {
           get {
                return builderResult.optionalBool
           }
           set (value) {
               builderResult.hasOptionalBool = true
               builderResult.optionalBool = value
           }
      }
      public func setOptionalBool(_ value:Bool) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalBool = value
        return self
      }
      public func clearOptionalBool() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalBool = false
           builderResult.optionalBool = false
           return self
      }
      public var hasOptionalString:Bool {
           get {
                return builderResult.hasOptionalString
           }
      }
      public var optionalString:String {
           get {
                return builderResult.optionalString
           }
           set (value) {
               builderResult.hasOptionalString = true
               builderResult.optionalString = value
           }
      }
      public func setOptionalString(_ value:String) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalString = value
        return self
      }
      public func clearOptionalString() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalString = false
           builderResult.optionalString = ""
           return self
      }
      public var hasOptionalBytes:Bool {
           get {
                return builderResult.hasOptionalBytes
           }
      }
      public var optionalBytes:Data {
           get {
                return builderResult.optionalBytes
           }
           set (value) {
               builderResult.hasOptionalBytes = true
               builderResult.optionalBytes = value
           }
      }
      public func setOptionalBytes(_ value:Data) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalBytes = value
        return self
      }
      public func clearOptionalBytes() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalBytes = false
           builderResult.optionalBytes = Data()
           return self
      }
      public var hasOptionalGroup:Bool {
           get {
               return builderResult.hasOptionalGroup
           }
      }
      public var optionalGroup:ProtobufUnittest.TestAllTypesLite.OptionalGroup! {
           get {
               if optionalGroupBuilder_ != nil {
                  builderResult.optionalGroup = optionalGroupBuilder_.getMessage()
               }
               return builderResult.optionalGroup
           }
           set (value) {
               builderResult.hasOptionalGroup = true
               builderResult.optionalGroup = value
           }
      }
      private var optionalGroupBuilder_:ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder! {
           didSet {
              builderResult.hasOptionalGroup = true
           }
      }
      public func getOptionalGroupBuilder() -> ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder {
        if optionalGroupBuilder_ == nil {
           optionalGroupBuilder_ = ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder()
           builderResult.optionalGroup = optionalGroupBuilder_.getMessage()
           if optionalGroup != nil {
              _ = try! optionalGroupBuilder_.mergeFrom(other: optionalGroup)
           }
        }
        return optionalGroupBuilder_
      }
      public func setOptionalGroup(_ value:ProtobufUnittest.TestAllTypesLite.OptionalGroup!) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalGroup = value
        return self
      }
      public func mergeOptionalGroup(value:ProtobufUnittest.TestAllTypesLite.OptionalGroup) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if builderResult.hasOptionalGroup {
          builderResult.optionalGroup = try ProtobufUnittest.TestAllTypesLite.OptionalGroup.builderWithPrototype(prototype: builderResult.optionalGroup).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalGroup = value
        }
        builderResult.hasOptionalGroup = true
        return self
      }
      public func clearOptionalGroup() -> ProtobufUnittest.TestAllTypesLite.Builder {
        optionalGroupBuilder_ = nil
        builderResult.hasOptionalGroup = false
        builderResult.optionalGroup = nil
        return self
      }
      public var hasOptionalNestedMessage:Bool {
           get {
               return builderResult.hasOptionalNestedMessage
           }
      }
      public var optionalNestedMessage:ProtobufUnittest.TestAllTypesLite.NestedMessage! {
           get {
               if optionalNestedMessageBuilder_ != nil {
                  builderResult.optionalNestedMessage = optionalNestedMessageBuilder_.getMessage()
               }
               return builderResult.optionalNestedMessage
           }
           set (value) {
               builderResult.hasOptionalNestedMessage = true
               builderResult.optionalNestedMessage = value
           }
      }
      private var optionalNestedMessageBuilder_:ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder! {
           didSet {
              builderResult.hasOptionalNestedMessage = true
           }
      }
      public func getOptionalNestedMessageBuilder() -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
        if optionalNestedMessageBuilder_ == nil {
           optionalNestedMessageBuilder_ = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
           builderResult.optionalNestedMessage = optionalNestedMessageBuilder_.getMessage()
           if optionalNestedMessage != nil {
              _ = try! optionalNestedMessageBuilder_.mergeFrom(other: optionalNestedMessage)
           }
        }
        return optionalNestedMessageBuilder_
      }
      public func setOptionalNestedMessage(_ value:ProtobufUnittest.TestAllTypesLite.NestedMessage!) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalNestedMessage = value
        return self
      }
      public func mergeOptionalNestedMessage(value:ProtobufUnittest.TestAllTypesLite.NestedMessage) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if builderResult.hasOptionalNestedMessage {
          builderResult.optionalNestedMessage = try ProtobufUnittest.TestAllTypesLite.NestedMessage.builderWithPrototype(prototype: builderResult.optionalNestedMessage).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalNestedMessage = value
        }
        builderResult.hasOptionalNestedMessage = true
        return self
      }
      public func clearOptionalNestedMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        optionalNestedMessageBuilder_ = nil
        builderResult.hasOptionalNestedMessage = false
        builderResult.optionalNestedMessage = nil
        return self
      }
      public var hasOptionalForeignMessage:Bool {
           get {
               return builderResult.hasOptionalForeignMessage
           }
      }
      public var optionalForeignMessage:ProtobufUnittest.ForeignMessageLite! {
           get {
               if optionalForeignMessageBuilder_ != nil {
                  builderResult.optionalForeignMessage = optionalForeignMessageBuilder_.getMessage()
               }
               return builderResult.optionalForeignMessage
           }
           set (value) {
               builderResult.hasOptionalForeignMessage = true
               builderResult.optionalForeignMessage = value
           }
      }
      private var optionalForeignMessageBuilder_:ProtobufUnittest.ForeignMessageLite.Builder! {
           didSet {
              builderResult.hasOptionalForeignMessage = true
           }
      }
      public func getOptionalForeignMessageBuilder() -> ProtobufUnittest.ForeignMessageLite.Builder {
        if optionalForeignMessageBuilder_ == nil {
           optionalForeignMessageBuilder_ = ProtobufUnittest.ForeignMessageLite.Builder()
           builderResult.optionalForeignMessage = optionalForeignMessageBuilder_.getMessage()
           if optionalForeignMessage != nil {
              _ = try! optionalForeignMessageBuilder_.mergeFrom(other: optionalForeignMessage)
           }
        }
        return optionalForeignMessageBuilder_
      }
      public func setOptionalForeignMessage(_ value:ProtobufUnittest.ForeignMessageLite!) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalForeignMessage = value
        return self
      }
      public func mergeOptionalForeignMessage(value:ProtobufUnittest.ForeignMessageLite) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if builderResult.hasOptionalForeignMessage {
          builderResult.optionalForeignMessage = try ProtobufUnittest.ForeignMessageLite.builderWithPrototype(prototype: builderResult.optionalForeignMessage).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalForeignMessage = value
        }
        builderResult.hasOptionalForeignMessage = true
        return self
      }
      public func clearOptionalForeignMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        optionalForeignMessageBuilder_ = nil
        builderResult.hasOptionalForeignMessage = false
        builderResult.optionalForeignMessage = nil
        return self
      }
      public var hasOptionalImportMessage:Bool {
           get {
               return builderResult.hasOptionalImportMessage
           }
      }
      public var optionalImportMessage:ProtobufUnittestImport.ImportMessageLite! {
           get {
               if optionalImportMessageBuilder_ != nil {
                  builderResult.optionalImportMessage = optionalImportMessageBuilder_.getMessage()
               }
               return builderResult.optionalImportMessage
           }
           set (value) {
               builderResult.hasOptionalImportMessage = true
               builderResult.optionalImportMessage = value
           }
      }
      private var optionalImportMessageBuilder_:ProtobufUnittestImport.ImportMessageLite.Builder! {
           didSet {
              builderResult.hasOptionalImportMessage = true
           }
      }
      public func getOptionalImportMessageBuilder() -> ProtobufUnittestImport.ImportMessageLite.Builder {
        if optionalImportMessageBuilder_ == nil {
           optionalImportMessageBuilder_ = ProtobufUnittestImport.ImportMessageLite.Builder()
           builderResult.optionalImportMessage = optionalImportMessageBuilder_.getMessage()
           if optionalImportMessage != nil {
              _ = try! optionalImportMessageBuilder_.mergeFrom(other: optionalImportMessage)
           }
        }
        return optionalImportMessageBuilder_
      }
      public func setOptionalImportMessage(_ value:ProtobufUnittestImport.ImportMessageLite!) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalImportMessage = value
        return self
      }
      public func mergeOptionalImportMessage(value:ProtobufUnittestImport.ImportMessageLite) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if builderResult.hasOptionalImportMessage {
          builderResult.optionalImportMessage = try ProtobufUnittestImport.ImportMessageLite.builderWithPrototype(prototype: builderResult.optionalImportMessage).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalImportMessage = value
        }
        builderResult.hasOptionalImportMessage = true
        return self
      }
      public func clearOptionalImportMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        optionalImportMessageBuilder_ = nil
        builderResult.hasOptionalImportMessage = false
        builderResult.optionalImportMessage = nil
        return self
      }
        public var hasOptionalNestedEnum:Bool{
            get {
                return builderResult.hasOptionalNestedEnum
            }
        }
        public var optionalNestedEnum:ProtobufUnittest.TestAllTypesLite.NestedEnum {
            get {
                return builderResult.optionalNestedEnum
            }
            set (value) {
                builderResult.hasOptionalNestedEnum = true
                builderResult.optionalNestedEnum = value
            }
        }
        public func setOptionalNestedEnum(_ value:ProtobufUnittest.TestAllTypesLite.NestedEnum) -> ProtobufUnittest.TestAllTypesLite.Builder {
          self.optionalNestedEnum = value
          return self
        }
        public func clearOptionalNestedEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
           builderResult.hasOptionalNestedEnum = false
           builderResult.optionalNestedEnum = .foo
           return self
        }
        public var hasOptionalForeignEnum:Bool{
            get {
                return builderResult.hasOptionalForeignEnum
            }
        }
        public var optionalForeignEnum:ProtobufUnittest.ForeignEnumLite {
            get {
                return builderResult.optionalForeignEnum
            }
            set (value) {
                builderResult.hasOptionalForeignEnum = true
                builderResult.optionalForeignEnum = value
            }
        }
        public func setOptionalForeignEnum(_ value:ProtobufUnittest.ForeignEnumLite) -> ProtobufUnittest.TestAllTypesLite.Builder {
          self.optionalForeignEnum = value
          return self
        }
        public func clearOptionalForeignEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
           builderResult.hasOptionalForeignEnum = false
           builderResult.optionalForeignEnum = .foreignLiteFoo
           return self
        }
        public var hasOptionalImportEnum:Bool{
            get {
                return builderResult.hasOptionalImportEnum
            }
        }
        public var optionalImportEnum:ProtobufUnittestImport.ImportEnumLite {
            get {
                return builderResult.optionalImportEnum
            }
            set (value) {
                builderResult.hasOptionalImportEnum = true
                builderResult.optionalImportEnum = value
            }
        }
        public func setOptionalImportEnum(_ value:ProtobufUnittestImport.ImportEnumLite) -> ProtobufUnittest.TestAllTypesLite.Builder {
          self.optionalImportEnum = value
          return self
        }
        public func clearOptionalImportEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
           builderResult.hasOptionalImportEnum = false
           builderResult.optionalImportEnum = .importLiteFoo
           return self
        }
      public var hasOptionalStringPiece:Bool {
           get {
                return builderResult.hasOptionalStringPiece
           }
      }
      public var optionalStringPiece:String {
           get {
                return builderResult.optionalStringPiece
           }
           set (value) {
               builderResult.hasOptionalStringPiece = true
               builderResult.optionalStringPiece = value
           }
      }
      public func setOptionalStringPiece(_ value:String) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalStringPiece = value
        return self
      }
      public func clearOptionalStringPiece() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalStringPiece = false
           builderResult.optionalStringPiece = ""
           return self
      }
      public var hasOptionalCord:Bool {
           get {
                return builderResult.hasOptionalCord
           }
      }
      public var optionalCord:String {
           get {
                return builderResult.optionalCord
           }
           set (value) {
               builderResult.hasOptionalCord = true
               builderResult.optionalCord = value
           }
      }
      public func setOptionalCord(_ value:String) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalCord = value
        return self
      }
      public func clearOptionalCord() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOptionalCord = false
           builderResult.optionalCord = ""
           return self
      }
      public var hasOptionalPublicImportMessage:Bool {
           get {
               return builderResult.hasOptionalPublicImportMessage
           }
      }
      public var optionalPublicImportMessage:ProtobufUnittestImport.PublicImportMessageLite! {
           get {
               if optionalPublicImportMessageBuilder_ != nil {
                  builderResult.optionalPublicImportMessage = optionalPublicImportMessageBuilder_.getMessage()
               }
               return builderResult.optionalPublicImportMessage
           }
           set (value) {
               builderResult.hasOptionalPublicImportMessage = true
               builderResult.optionalPublicImportMessage = value
           }
      }
      private var optionalPublicImportMessageBuilder_:ProtobufUnittestImport.PublicImportMessageLite.Builder! {
           didSet {
              builderResult.hasOptionalPublicImportMessage = true
           }
      }
      public func getOptionalPublicImportMessageBuilder() -> ProtobufUnittestImport.PublicImportMessageLite.Builder {
        if optionalPublicImportMessageBuilder_ == nil {
           optionalPublicImportMessageBuilder_ = ProtobufUnittestImport.PublicImportMessageLite.Builder()
           builderResult.optionalPublicImportMessage = optionalPublicImportMessageBuilder_.getMessage()
           if optionalPublicImportMessage != nil {
              _ = try! optionalPublicImportMessageBuilder_.mergeFrom(other: optionalPublicImportMessage)
           }
        }
        return optionalPublicImportMessageBuilder_
      }
      public func setOptionalPublicImportMessage(_ value:ProtobufUnittestImport.PublicImportMessageLite!) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalPublicImportMessage = value
        return self
      }
      public func mergeOptionalPublicImportMessage(value:ProtobufUnittestImport.PublicImportMessageLite) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if builderResult.hasOptionalPublicImportMessage {
          builderResult.optionalPublicImportMessage = try ProtobufUnittestImport.PublicImportMessageLite.builderWithPrototype(prototype: builderResult.optionalPublicImportMessage).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalPublicImportMessage = value
        }
        builderResult.hasOptionalPublicImportMessage = true
        return self
      }
      public func clearOptionalPublicImportMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        optionalPublicImportMessageBuilder_ = nil
        builderResult.hasOptionalPublicImportMessage = false
        builderResult.optionalPublicImportMessage = nil
        return self
      }
      public var hasOptionalLazyMessage:Bool {
           get {
               return builderResult.hasOptionalLazyMessage
           }
      }
      public var optionalLazyMessage:ProtobufUnittest.TestAllTypesLite.NestedMessage! {
           get {
               if optionalLazyMessageBuilder_ != nil {
                  builderResult.optionalLazyMessage = optionalLazyMessageBuilder_.getMessage()
               }
               return builderResult.optionalLazyMessage
           }
           set (value) {
               builderResult.hasOptionalLazyMessage = true
               builderResult.optionalLazyMessage = value
           }
      }
      private var optionalLazyMessageBuilder_:ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder! {
           didSet {
              builderResult.hasOptionalLazyMessage = true
           }
      }
      public func getOptionalLazyMessageBuilder() -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
        if optionalLazyMessageBuilder_ == nil {
           optionalLazyMessageBuilder_ = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
           builderResult.optionalLazyMessage = optionalLazyMessageBuilder_.getMessage()
           if optionalLazyMessage != nil {
              _ = try! optionalLazyMessageBuilder_.mergeFrom(other: optionalLazyMessage)
           }
        }
        return optionalLazyMessageBuilder_
      }
      public func setOptionalLazyMessage(_ value:ProtobufUnittest.TestAllTypesLite.NestedMessage!) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.optionalLazyMessage = value
        return self
      }
      public func mergeOptionalLazyMessage(value:ProtobufUnittest.TestAllTypesLite.NestedMessage) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if builderResult.hasOptionalLazyMessage {
          builderResult.optionalLazyMessage = try ProtobufUnittest.TestAllTypesLite.NestedMessage.builderWithPrototype(prototype: builderResult.optionalLazyMessage).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalLazyMessage = value
        }
        builderResult.hasOptionalLazyMessage = true
        return self
      }
      public func clearOptionalLazyMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        optionalLazyMessageBuilder_ = nil
        builderResult.hasOptionalLazyMessage = false
        builderResult.optionalLazyMessage = nil
        return self
      }
      public var repeatedInt32:Array<Int32> {
           get {
               return builderResult.repeatedInt32
           }
           set (array) {
               builderResult.repeatedInt32 = array
           }
      }
      public func setRepeatedInt32(_ value:Array<Int32>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedInt32 = value
        return self
      }
      public func clearRepeatedInt32() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedInt32.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedInt64:Array<Int64> {
           get {
               return builderResult.repeatedInt64
           }
           set (array) {
               builderResult.repeatedInt64 = array
           }
      }
      public func setRepeatedInt64(_ value:Array<Int64>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedInt64 = value
        return self
      }
      public func clearRepeatedInt64() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedInt64.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedUint32:Array<UInt32> {
           get {
               return builderResult.repeatedUint32
           }
           set (array) {
               builderResult.repeatedUint32 = array
           }
      }
      public func setRepeatedUint32(_ value:Array<UInt32>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedUint32 = value
        return self
      }
      public func clearRepeatedUint32() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedUint32.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedUint64:Array<UInt64> {
           get {
               return builderResult.repeatedUint64
           }
           set (array) {
               builderResult.repeatedUint64 = array
           }
      }
      public func setRepeatedUint64(_ value:Array<UInt64>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedUint64 = value
        return self
      }
      public func clearRepeatedUint64() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedUint64.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedSint32:Array<Int32> {
           get {
               return builderResult.repeatedSint32
           }
           set (array) {
               builderResult.repeatedSint32 = array
           }
      }
      public func setRepeatedSint32(_ value:Array<Int32>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedSint32 = value
        return self
      }
      public func clearRepeatedSint32() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedSint32.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedSint64:Array<Int64> {
           get {
               return builderResult.repeatedSint64
           }
           set (array) {
               builderResult.repeatedSint64 = array
           }
      }
      public func setRepeatedSint64(_ value:Array<Int64>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedSint64 = value
        return self
      }
      public func clearRepeatedSint64() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedSint64.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedFixed32:Array<UInt32> {
           get {
               return builderResult.repeatedFixed32
           }
           set (array) {
               builderResult.repeatedFixed32 = array
           }
      }
      public func setRepeatedFixed32(_ value:Array<UInt32>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedFixed32 = value
        return self
      }
      public func clearRepeatedFixed32() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedFixed32.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedFixed64:Array<UInt64> {
           get {
               return builderResult.repeatedFixed64
           }
           set (array) {
               builderResult.repeatedFixed64 = array
           }
      }
      public func setRepeatedFixed64(_ value:Array<UInt64>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedFixed64 = value
        return self
      }
      public func clearRepeatedFixed64() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedFixed64.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedSfixed32:Array<Int32> {
           get {
               return builderResult.repeatedSfixed32
           }
           set (array) {
               builderResult.repeatedSfixed32 = array
           }
      }
      public func setRepeatedSfixed32(_ value:Array<Int32>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedSfixed32 = value
        return self
      }
      public func clearRepeatedSfixed32() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedSfixed32.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedSfixed64:Array<Int64> {
           get {
               return builderResult.repeatedSfixed64
           }
           set (array) {
               builderResult.repeatedSfixed64 = array
           }
      }
      public func setRepeatedSfixed64(_ value:Array<Int64>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedSfixed64 = value
        return self
      }
      public func clearRepeatedSfixed64() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedSfixed64.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedFloat:Array<Float> {
           get {
               return builderResult.repeatedFloat
           }
           set (array) {
               builderResult.repeatedFloat = array
           }
      }
      public func setRepeatedFloat(_ value:Array<Float>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedFloat = value
        return self
      }
      public func clearRepeatedFloat() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedFloat.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedDouble:Array<Double> {
           get {
               return builderResult.repeatedDouble
           }
           set (array) {
               builderResult.repeatedDouble = array
           }
      }
      public func setRepeatedDouble(_ value:Array<Double>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedDouble = value
        return self
      }
      public func clearRepeatedDouble() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedDouble.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedBool:Array<Bool> {
           get {
               return builderResult.repeatedBool
           }
           set (array) {
               builderResult.repeatedBool = array
           }
      }
      public func setRepeatedBool(_ value:Array<Bool>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedBool = value
        return self
      }
      public func clearRepeatedBool() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedBool.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedString:Array<String> {
           get {
               return builderResult.repeatedString
           }
           set (array) {
               builderResult.repeatedString = array
           }
      }
      public func setRepeatedString(_ value:Array<String>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedString = value
        return self
      }
      public func clearRepeatedString() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedString.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedBytes:Array<Data> {
           get {
               return builderResult.repeatedBytes
           }
           set (array) {
               builderResult.repeatedBytes = array
           }
      }
      public func setRepeatedBytes(_ value:Array<Data>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedBytes = value
        return self
      }
      public func clearRepeatedBytes() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedBytes.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedGroup:Array<ProtobufUnittest.TestAllTypesLite.RepeatedGroup> {
           get {
               return builderResult.repeatedGroup
           }
           set (value) {
               builderResult.repeatedGroup = value
           }
      }
      public func setRepeatedGroup(_ value:Array<ProtobufUnittest.TestAllTypesLite.RepeatedGroup>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedGroup = value
        return self
      }
      public func clearRepeatedGroup() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedGroup.removeAll(keepingCapacity: false)
        return self
      }
      public var repeatedNestedMessage:Array<ProtobufUnittest.TestAllTypesLite.NestedMessage> {
           get {
               return builderResult.repeatedNestedMessage
           }
           set (value) {
               builderResult.repeatedNestedMessage = value
           }
      }
      public func setRepeatedNestedMessage(_ value:Array<ProtobufUnittest.TestAllTypesLite.NestedMessage>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedNestedMessage = value
        return self
      }
      public func clearRepeatedNestedMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedNestedMessage.removeAll(keepingCapacity: false)
        return self
      }
      public var repeatedForeignMessage:Array<ProtobufUnittest.ForeignMessageLite> {
           get {
               return builderResult.repeatedForeignMessage
           }
           set (value) {
               builderResult.repeatedForeignMessage = value
           }
      }
      public func setRepeatedForeignMessage(_ value:Array<ProtobufUnittest.ForeignMessageLite>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedForeignMessage = value
        return self
      }
      public func clearRepeatedForeignMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedForeignMessage.removeAll(keepingCapacity: false)
        return self
      }
      public var repeatedImportMessage:Array<ProtobufUnittestImport.ImportMessageLite> {
           get {
               return builderResult.repeatedImportMessage
           }
           set (value) {
               builderResult.repeatedImportMessage = value
           }
      }
      public func setRepeatedImportMessage(_ value:Array<ProtobufUnittestImport.ImportMessageLite>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedImportMessage = value
        return self
      }
      public func clearRepeatedImportMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedImportMessage.removeAll(keepingCapacity: false)
        return self
      }
      public var repeatedNestedEnum:Array<ProtobufUnittest.TestAllTypesLite.NestedEnum> {
          get {
              return builderResult.repeatedNestedEnum
          }
          set (value) {
              builderResult.repeatedNestedEnum = value
          }
      }
      public func setRepeatedNestedEnum(_ value:Array<ProtobufUnittest.TestAllTypesLite.NestedEnum>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedNestedEnum = value
        return self
      }
      public func clearRepeatedNestedEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedNestedEnum.removeAll(keepingCapacity: false)
        return self
      }
      public var repeatedForeignEnum:Array<ProtobufUnittest.ForeignEnumLite> {
          get {
              return builderResult.repeatedForeignEnum
          }
          set (value) {
              builderResult.repeatedForeignEnum = value
          }
      }
      public func setRepeatedForeignEnum(_ value:Array<ProtobufUnittest.ForeignEnumLite>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedForeignEnum = value
        return self
      }
      public func clearRepeatedForeignEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedForeignEnum.removeAll(keepingCapacity: false)
        return self
      }
      public var repeatedImportEnum:Array<ProtobufUnittestImport.ImportEnumLite> {
          get {
              return builderResult.repeatedImportEnum
          }
          set (value) {
              builderResult.repeatedImportEnum = value
          }
      }
      public func setRepeatedImportEnum(_ value:Array<ProtobufUnittestImport.ImportEnumLite>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedImportEnum = value
        return self
      }
      public func clearRepeatedImportEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedImportEnum.removeAll(keepingCapacity: false)
        return self
      }
      public var repeatedStringPiece:Array<String> {
           get {
               return builderResult.repeatedStringPiece
           }
           set (array) {
               builderResult.repeatedStringPiece = array
           }
      }
      public func setRepeatedStringPiece(_ value:Array<String>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedStringPiece = value
        return self
      }
      public func clearRepeatedStringPiece() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedStringPiece.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedCord:Array<String> {
           get {
               return builderResult.repeatedCord
           }
           set (array) {
               builderResult.repeatedCord = array
           }
      }
      public func setRepeatedCord(_ value:Array<String>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedCord = value
        return self
      }
      public func clearRepeatedCord() -> ProtobufUnittest.TestAllTypesLite.Builder {
         builderResult.repeatedCord.removeAll(keepingCapacity: false)
         return self
      }
      public var repeatedLazyMessage:Array<ProtobufUnittest.TestAllTypesLite.NestedMessage> {
           get {
               return builderResult.repeatedLazyMessage
           }
           set (value) {
               builderResult.repeatedLazyMessage = value
           }
      }
      public func setRepeatedLazyMessage(_ value:Array<ProtobufUnittest.TestAllTypesLite.NestedMessage>) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.repeatedLazyMessage = value
        return self
      }
      public func clearRepeatedLazyMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult.repeatedLazyMessage.removeAll(keepingCapacity: false)
        return self
      }
      public var hasDefaultInt32:Bool {
           get {
                return builderResult.hasDefaultInt32
           }
      }
      public var defaultInt32:Int32 {
           get {
                return builderResult.defaultInt32
           }
           set (value) {
               builderResult.hasDefaultInt32 = true
               builderResult.defaultInt32 = value
           }
      }
      public func setDefaultInt32(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultInt32 = value
        return self
      }
      public func clearDefaultInt32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultInt32 = false
           builderResult.defaultInt32 = Int32(41)
           return self
      }
      public var hasDefaultInt64:Bool {
           get {
                return builderResult.hasDefaultInt64
           }
      }
      public var defaultInt64:Int64 {
           get {
                return builderResult.defaultInt64
           }
           set (value) {
               builderResult.hasDefaultInt64 = true
               builderResult.defaultInt64 = value
           }
      }
      public func setDefaultInt64(_ value:Int64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultInt64 = value
        return self
      }
      public func clearDefaultInt64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultInt64 = false
           builderResult.defaultInt64 = Int64(42)
           return self
      }
      public var hasDefaultUint32:Bool {
           get {
                return builderResult.hasDefaultUint32
           }
      }
      public var defaultUint32:UInt32 {
           get {
                return builderResult.defaultUint32
           }
           set (value) {
               builderResult.hasDefaultUint32 = true
               builderResult.defaultUint32 = value
           }
      }
      public func setDefaultUint32(_ value:UInt32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultUint32 = value
        return self
      }
      public func clearDefaultUint32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultUint32 = false
           builderResult.defaultUint32 = UInt32(43)
           return self
      }
      public var hasDefaultUint64:Bool {
           get {
                return builderResult.hasDefaultUint64
           }
      }
      public var defaultUint64:UInt64 {
           get {
                return builderResult.defaultUint64
           }
           set (value) {
               builderResult.hasDefaultUint64 = true
               builderResult.defaultUint64 = value
           }
      }
      public func setDefaultUint64(_ value:UInt64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultUint64 = value
        return self
      }
      public func clearDefaultUint64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultUint64 = false
           builderResult.defaultUint64 = UInt64(44)
           return self
      }
      public var hasDefaultSint32:Bool {
           get {
                return builderResult.hasDefaultSint32
           }
      }
      public var defaultSint32:Int32 {
           get {
                return builderResult.defaultSint32
           }
           set (value) {
               builderResult.hasDefaultSint32 = true
               builderResult.defaultSint32 = value
           }
      }
      public func setDefaultSint32(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultSint32 = value
        return self
      }
      public func clearDefaultSint32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultSint32 = false
           builderResult.defaultSint32 = Int32(-45)
           return self
      }
      public var hasDefaultSint64:Bool {
           get {
                return builderResult.hasDefaultSint64
           }
      }
      public var defaultSint64:Int64 {
           get {
                return builderResult.defaultSint64
           }
           set (value) {
               builderResult.hasDefaultSint64 = true
               builderResult.defaultSint64 = value
           }
      }
      public func setDefaultSint64(_ value:Int64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultSint64 = value
        return self
      }
      public func clearDefaultSint64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultSint64 = false
           builderResult.defaultSint64 = Int64(46)
           return self
      }
      public var hasDefaultFixed32:Bool {
           get {
                return builderResult.hasDefaultFixed32
           }
      }
      public var defaultFixed32:UInt32 {
           get {
                return builderResult.defaultFixed32
           }
           set (value) {
               builderResult.hasDefaultFixed32 = true
               builderResult.defaultFixed32 = value
           }
      }
      public func setDefaultFixed32(_ value:UInt32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultFixed32 = value
        return self
      }
      public func clearDefaultFixed32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultFixed32 = false
           builderResult.defaultFixed32 = UInt32(47)
           return self
      }
      public var hasDefaultFixed64:Bool {
           get {
                return builderResult.hasDefaultFixed64
           }
      }
      public var defaultFixed64:UInt64 {
           get {
                return builderResult.defaultFixed64
           }
           set (value) {
               builderResult.hasDefaultFixed64 = true
               builderResult.defaultFixed64 = value
           }
      }
      public func setDefaultFixed64(_ value:UInt64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultFixed64 = value
        return self
      }
      public func clearDefaultFixed64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultFixed64 = false
           builderResult.defaultFixed64 = UInt64(48)
           return self
      }
      public var hasDefaultSfixed32:Bool {
           get {
                return builderResult.hasDefaultSfixed32
           }
      }
      public var defaultSfixed32:Int32 {
           get {
                return builderResult.defaultSfixed32
           }
           set (value) {
               builderResult.hasDefaultSfixed32 = true
               builderResult.defaultSfixed32 = value
           }
      }
      public func setDefaultSfixed32(_ value:Int32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultSfixed32 = value
        return self
      }
      public func clearDefaultSfixed32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultSfixed32 = false
           builderResult.defaultSfixed32 = Int32(49)
           return self
      }
      public var hasDefaultSfixed64:Bool {
           get {
                return builderResult.hasDefaultSfixed64
           }
      }
      public var defaultSfixed64:Int64 {
           get {
                return builderResult.defaultSfixed64
           }
           set (value) {
               builderResult.hasDefaultSfixed64 = true
               builderResult.defaultSfixed64 = value
           }
      }
      public func setDefaultSfixed64(_ value:Int64) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultSfixed64 = value
        return self
      }
      public func clearDefaultSfixed64() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultSfixed64 = false
           builderResult.defaultSfixed64 = Int64(-50)
           return self
      }
      public var hasDefaultFloat:Bool {
           get {
                return builderResult.hasDefaultFloat
           }
      }
      public var defaultFloat:Float {
           get {
                return builderResult.defaultFloat
           }
           set (value) {
               builderResult.hasDefaultFloat = true
               builderResult.defaultFloat = value
           }
      }
      public func setDefaultFloat(_ value:Float) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultFloat = value
        return self
      }
      public func clearDefaultFloat() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultFloat = false
           builderResult.defaultFloat = Float(51.5)
           return self
      }
      public var hasDefaultDouble:Bool {
           get {
                return builderResult.hasDefaultDouble
           }
      }
      public var defaultDouble:Double {
           get {
                return builderResult.defaultDouble
           }
           set (value) {
               builderResult.hasDefaultDouble = true
               builderResult.defaultDouble = value
           }
      }
      public func setDefaultDouble(_ value:Double) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultDouble = value
        return self
      }
      public func clearDefaultDouble() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultDouble = false
           builderResult.defaultDouble = Double(52000)
           return self
      }
      public var hasDefaultBool:Bool {
           get {
                return builderResult.hasDefaultBool
           }
      }
      public var defaultBool:Bool {
           get {
                return builderResult.defaultBool
           }
           set (value) {
               builderResult.hasDefaultBool = true
               builderResult.defaultBool = value
           }
      }
      public func setDefaultBool(_ value:Bool) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultBool = value
        return self
      }
      public func clearDefaultBool() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultBool = false
           builderResult.defaultBool = true
           return self
      }
      public var hasDefaultString:Bool {
           get {
                return builderResult.hasDefaultString
           }
      }
      public var defaultString:String {
           get {
                return builderResult.defaultString
           }
           set (value) {
               builderResult.hasDefaultString = true
               builderResult.defaultString = value
           }
      }
      public func setDefaultString(_ value:String) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultString = value
        return self
      }
      public func clearDefaultString() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultString = false
           builderResult.defaultString = "hello"
           return self
      }
      public var hasDefaultBytes:Bool {
           get {
                return builderResult.hasDefaultBytes
           }
      }
      public var defaultBytes:Data {
           get {
                return builderResult.defaultBytes
           }
           set (value) {
               builderResult.hasDefaultBytes = true
               builderResult.defaultBytes = value
           }
      }
      public func setDefaultBytes(_ value:Data) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultBytes = value
        return self
      }
      public func clearDefaultBytes() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultBytes = false
           builderResult.defaultBytes = Data(bytes:([UInt8]() + "world".utf8), count:5)
           return self
      }
        public var hasDefaultNestedEnum:Bool{
            get {
                return builderResult.hasDefaultNestedEnum
            }
        }
        public var defaultNestedEnum:ProtobufUnittest.TestAllTypesLite.NestedEnum {
            get {
                return builderResult.defaultNestedEnum
            }
            set (value) {
                builderResult.hasDefaultNestedEnum = true
                builderResult.defaultNestedEnum = value
            }
        }
        public func setDefaultNestedEnum(_ value:ProtobufUnittest.TestAllTypesLite.NestedEnum) -> ProtobufUnittest.TestAllTypesLite.Builder {
          self.defaultNestedEnum = value
          return self
        }
        public func clearDefaultNestedEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
           builderResult.hasDefaultNestedEnum = false
           builderResult.defaultNestedEnum = .bar
           return self
        }
        public var hasDefaultForeignEnum:Bool{
            get {
                return builderResult.hasDefaultForeignEnum
            }
        }
        public var defaultForeignEnum:ProtobufUnittest.ForeignEnumLite {
            get {
                return builderResult.defaultForeignEnum
            }
            set (value) {
                builderResult.hasDefaultForeignEnum = true
                builderResult.defaultForeignEnum = value
            }
        }
        public func setDefaultForeignEnum(_ value:ProtobufUnittest.ForeignEnumLite) -> ProtobufUnittest.TestAllTypesLite.Builder {
          self.defaultForeignEnum = value
          return self
        }
        public func clearDefaultForeignEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
           builderResult.hasDefaultForeignEnum = false
           builderResult.defaultForeignEnum = .foreignLiteBar
           return self
        }
        public var hasDefaultImportEnum:Bool{
            get {
                return builderResult.hasDefaultImportEnum
            }
        }
        public var defaultImportEnum:ProtobufUnittestImport.ImportEnumLite {
            get {
                return builderResult.defaultImportEnum
            }
            set (value) {
                builderResult.hasDefaultImportEnum = true
                builderResult.defaultImportEnum = value
            }
        }
        public func setDefaultImportEnum(_ value:ProtobufUnittestImport.ImportEnumLite) -> ProtobufUnittest.TestAllTypesLite.Builder {
          self.defaultImportEnum = value
          return self
        }
        public func clearDefaultImportEnum() -> ProtobufUnittest.TestAllTypesLite.Builder {
           builderResult.hasDefaultImportEnum = false
           builderResult.defaultImportEnum = .importLiteBar
           return self
        }
      public var hasDefaultStringPiece:Bool {
           get {
                return builderResult.hasDefaultStringPiece
           }
      }
      public var defaultStringPiece:String {
           get {
                return builderResult.defaultStringPiece
           }
           set (value) {
               builderResult.hasDefaultStringPiece = true
               builderResult.defaultStringPiece = value
           }
      }
      public func setDefaultStringPiece(_ value:String) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultStringPiece = value
        return self
      }
      public func clearDefaultStringPiece() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultStringPiece = false
           builderResult.defaultStringPiece = "abc"
           return self
      }
      public var hasDefaultCord:Bool {
           get {
                return builderResult.hasDefaultCord
           }
      }
      public var defaultCord:String {
           get {
                return builderResult.defaultCord
           }
           set (value) {
               builderResult.hasDefaultCord = true
               builderResult.defaultCord = value
           }
      }
      public func setDefaultCord(_ value:String) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.defaultCord = value
        return self
      }
      public func clearDefaultCord() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasDefaultCord = false
           builderResult.defaultCord = "123"
           return self
      }
      public var hasOneofUint32:Bool {
           get {
                return builderResult.hasOneofUint32
           }
      }
      public var oneofUint32:UInt32 {
           get {
                return builderResult.oneofUint32
           }
           set (value) {
               builderResult.hasOneofUint32 = true
               builderResult.oneofUint32 = value
           }
      }
      public func setOneofUint32(_ value:UInt32) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.oneofUint32 = value
        return self
      }
      public func clearOneofUint32() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOneofUint32 = false
           builderResult.oneofUint32 = UInt32(0)
           return self
      }
      public var hasOneofNestedMessage:Bool {
           get {
               return builderResult.hasOneofNestedMessage
           }
      }
      public var oneofNestedMessage:ProtobufUnittest.TestAllTypesLite.NestedMessage! {
           get {
               if oneofNestedMessageBuilder_ != nil {
                  builderResult.oneofNestedMessage = oneofNestedMessageBuilder_.getMessage()
               }
               return builderResult.oneofNestedMessage
           }
           set (value) {
               builderResult.hasOneofNestedMessage = true
               builderResult.oneofNestedMessage = value
           }
      }
      private var oneofNestedMessageBuilder_:ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder! {
           didSet {
              builderResult.hasOneofNestedMessage = true
           }
      }
      public func getOneofNestedMessageBuilder() -> ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder {
        if oneofNestedMessageBuilder_ == nil {
           oneofNestedMessageBuilder_ = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
           builderResult.oneofNestedMessage = oneofNestedMessageBuilder_.getMessage()
           if oneofNestedMessage != nil {
              _ = try! oneofNestedMessageBuilder_.mergeFrom(other: oneofNestedMessage)
           }
        }
        return oneofNestedMessageBuilder_
      }
      public func setOneofNestedMessage(_ value:ProtobufUnittest.TestAllTypesLite.NestedMessage!) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.oneofNestedMessage = value
        return self
      }
      public func mergeOneofNestedMessage(value:ProtobufUnittest.TestAllTypesLite.NestedMessage) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if builderResult.hasOneofNestedMessage {
          builderResult.oneofNestedMessage = try ProtobufUnittest.TestAllTypesLite.NestedMessage.builderWithPrototype(prototype: builderResult.oneofNestedMessage).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.oneofNestedMessage = value
        }
        builderResult.hasOneofNestedMessage = true
        return self
      }
      public func clearOneofNestedMessage() -> ProtobufUnittest.TestAllTypesLite.Builder {
        oneofNestedMessageBuilder_ = nil
        builderResult.hasOneofNestedMessage = false
        builderResult.oneofNestedMessage = nil
        return self
      }
      public var hasOneofString:Bool {
           get {
                return builderResult.hasOneofString
           }
      }
      public var oneofString:String {
           get {
                return builderResult.oneofString
           }
           set (value) {
               builderResult.hasOneofString = true
               builderResult.oneofString = value
           }
      }
      public func setOneofString(_ value:String) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.oneofString = value
        return self
      }
      public func clearOneofString() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOneofString = false
           builderResult.oneofString = ""
           return self
      }
      public var hasOneofBytes:Bool {
           get {
                return builderResult.hasOneofBytes
           }
      }
      public var oneofBytes:Data {
           get {
                return builderResult.oneofBytes
           }
           set (value) {
               builderResult.hasOneofBytes = true
               builderResult.oneofBytes = value
           }
      }
      public func setOneofBytes(_ value:Data) -> ProtobufUnittest.TestAllTypesLite.Builder {
        self.oneofBytes = value
        return self
      }
      public func clearOneofBytes() -> ProtobufUnittest.TestAllTypesLite.Builder{
           builderResult.hasOneofBytes = false
           builderResult.oneofBytes = Data()
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestAllTypesLite.Builder {
        builderResult = ProtobufUnittest.TestAllTypesLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        return try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestAllTypesLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestAllTypesLite {
        let returnMe:ProtobufUnittest.TestAllTypesLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        if other == ProtobufUnittest.TestAllTypesLite() {
         return self
        }
        if other.hasOptionalInt32 {
             optionalInt32 = other.optionalInt32
        }
        if other.hasOptionalInt64 {
             optionalInt64 = other.optionalInt64
        }
        if other.hasOptionalUint32 {
             optionalUint32 = other.optionalUint32
        }
        if other.hasOptionalUint64 {
             optionalUint64 = other.optionalUint64
        }
        if other.hasOptionalSint32 {
             optionalSint32 = other.optionalSint32
        }
        if other.hasOptionalSint64 {
             optionalSint64 = other.optionalSint64
        }
        if other.hasOptionalFixed32 {
             optionalFixed32 = other.optionalFixed32
        }
        if other.hasOptionalFixed64 {
             optionalFixed64 = other.optionalFixed64
        }
        if other.hasOptionalSfixed32 {
             optionalSfixed32 = other.optionalSfixed32
        }
        if other.hasOptionalSfixed64 {
             optionalSfixed64 = other.optionalSfixed64
        }
        if other.hasOptionalFloat {
             optionalFloat = other.optionalFloat
        }
        if other.hasOptionalDouble {
             optionalDouble = other.optionalDouble
        }
        if other.hasOptionalBool {
             optionalBool = other.optionalBool
        }
        if other.hasOptionalString {
             optionalString = other.optionalString
        }
        if other.hasOptionalBytes {
             optionalBytes = other.optionalBytes
        }
        if other.hasOptionalGroup {
            _ = try mergeOptionalGroup(value: other.optionalGroup)
        }
        if other.hasOptionalNestedMessage {
            _ = try mergeOptionalNestedMessage(value: other.optionalNestedMessage)
        }
        if other.hasOptionalForeignMessage {
            _ = try mergeOptionalForeignMessage(value: other.optionalForeignMessage)
        }
        if other.hasOptionalImportMessage {
            _ = try mergeOptionalImportMessage(value: other.optionalImportMessage)
        }
        if other.hasOptionalNestedEnum {
             optionalNestedEnum = other.optionalNestedEnum
        }
        if other.hasOptionalForeignEnum {
             optionalForeignEnum = other.optionalForeignEnum
        }
        if other.hasOptionalImportEnum {
             optionalImportEnum = other.optionalImportEnum
        }
        if other.hasOptionalStringPiece {
             optionalStringPiece = other.optionalStringPiece
        }
        if other.hasOptionalCord {
             optionalCord = other.optionalCord
        }
        if other.hasOptionalPublicImportMessage {
            _ = try mergeOptionalPublicImportMessage(value: other.optionalPublicImportMessage)
        }
        if other.hasOptionalLazyMessage {
            _ = try mergeOptionalLazyMessage(value: other.optionalLazyMessage)
        }
        if !other.repeatedInt32.isEmpty {
            builderResult.repeatedInt32 += other.repeatedInt32
        }
        if !other.repeatedInt64.isEmpty {
            builderResult.repeatedInt64 += other.repeatedInt64
        }
        if !other.repeatedUint32.isEmpty {
            builderResult.repeatedUint32 += other.repeatedUint32
        }
        if !other.repeatedUint64.isEmpty {
            builderResult.repeatedUint64 += other.repeatedUint64
        }
        if !other.repeatedSint32.isEmpty {
            builderResult.repeatedSint32 += other.repeatedSint32
        }
        if !other.repeatedSint64.isEmpty {
            builderResult.repeatedSint64 += other.repeatedSint64
        }
        if !other.repeatedFixed32.isEmpty {
            builderResult.repeatedFixed32 += other.repeatedFixed32
        }
        if !other.repeatedFixed64.isEmpty {
            builderResult.repeatedFixed64 += other.repeatedFixed64
        }
        if !other.repeatedSfixed32.isEmpty {
            builderResult.repeatedSfixed32 += other.repeatedSfixed32
        }
        if !other.repeatedSfixed64.isEmpty {
            builderResult.repeatedSfixed64 += other.repeatedSfixed64
        }
        if !other.repeatedFloat.isEmpty {
            builderResult.repeatedFloat += other.repeatedFloat
        }
        if !other.repeatedDouble.isEmpty {
            builderResult.repeatedDouble += other.repeatedDouble
        }
        if !other.repeatedBool.isEmpty {
            builderResult.repeatedBool += other.repeatedBool
        }
        if !other.repeatedString.isEmpty {
            builderResult.repeatedString += other.repeatedString
        }
        if !other.repeatedBytes.isEmpty {
            builderResult.repeatedBytes += other.repeatedBytes
        }
        if !other.repeatedGroup.isEmpty  {
           builderResult.repeatedGroup += other.repeatedGroup
        }
        if !other.repeatedNestedMessage.isEmpty  {
           builderResult.repeatedNestedMessage += other.repeatedNestedMessage
        }
        if !other.repeatedForeignMessage.isEmpty  {
           builderResult.repeatedForeignMessage += other.repeatedForeignMessage
        }
        if !other.repeatedImportMessage.isEmpty  {
           builderResult.repeatedImportMessage += other.repeatedImportMessage
        }
        if !other.repeatedNestedEnum.isEmpty {
           builderResult.repeatedNestedEnum += other.repeatedNestedEnum
        }
        if !other.repeatedForeignEnum.isEmpty {
           builderResult.repeatedForeignEnum += other.repeatedForeignEnum
        }
        if !other.repeatedImportEnum.isEmpty {
           builderResult.repeatedImportEnum += other.repeatedImportEnum
        }
        if !other.repeatedStringPiece.isEmpty {
            builderResult.repeatedStringPiece += other.repeatedStringPiece
        }
        if !other.repeatedCord.isEmpty {
            builderResult.repeatedCord += other.repeatedCord
        }
        if !other.repeatedLazyMessage.isEmpty  {
           builderResult.repeatedLazyMessage += other.repeatedLazyMessage
        }
        if other.hasDefaultInt32 {
             defaultInt32 = other.defaultInt32
        }
        if other.hasDefaultInt64 {
             defaultInt64 = other.defaultInt64
        }
        if other.hasDefaultUint32 {
             defaultUint32 = other.defaultUint32
        }
        if other.hasDefaultUint64 {
             defaultUint64 = other.defaultUint64
        }
        if other.hasDefaultSint32 {
             defaultSint32 = other.defaultSint32
        }
        if other.hasDefaultSint64 {
             defaultSint64 = other.defaultSint64
        }
        if other.hasDefaultFixed32 {
             defaultFixed32 = other.defaultFixed32
        }
        if other.hasDefaultFixed64 {
             defaultFixed64 = other.defaultFixed64
        }
        if other.hasDefaultSfixed32 {
             defaultSfixed32 = other.defaultSfixed32
        }
        if other.hasDefaultSfixed64 {
             defaultSfixed64 = other.defaultSfixed64
        }
        if other.hasDefaultFloat {
             defaultFloat = other.defaultFloat
        }
        if other.hasDefaultDouble {
             defaultDouble = other.defaultDouble
        }
        if other.hasDefaultBool {
             defaultBool = other.defaultBool
        }
        if other.hasDefaultString {
             defaultString = other.defaultString
        }
        if other.hasDefaultBytes {
             defaultBytes = other.defaultBytes
        }
        if other.hasDefaultNestedEnum {
             defaultNestedEnum = other.defaultNestedEnum
        }
        if other.hasDefaultForeignEnum {
             defaultForeignEnum = other.defaultForeignEnum
        }
        if other.hasDefaultImportEnum {
             defaultImportEnum = other.defaultImportEnum
        }
        if other.hasDefaultStringPiece {
             defaultStringPiece = other.defaultStringPiece
        }
        if other.hasDefaultCord {
             defaultCord = other.defaultCord
        }
        if other.hasOneofUint32 {
             oneofUint32 = other.oneofUint32
        }
        if other.hasOneofNestedMessage {
            _ = try mergeOneofNestedMessage(value: other.oneofNestedMessage)
        }
        if other.hasOneofString {
             oneofString = other.oneofString
        }
        if other.hasOneofBytes {
             oneofBytes = other.oneofBytes
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            optionalInt32 = try codedInputStream.readInt32()

          case 16:
            optionalInt64 = try codedInputStream.readInt64()

          case 24:
            optionalUint32 = try codedInputStream.readUInt32()

          case 32:
            optionalUint64 = try codedInputStream.readUInt64()

          case 40:
            optionalSint32 = try codedInputStream.readSInt32()

          case 48:
            optionalSint64 = try codedInputStream.readSInt64()

          case 61:
            optionalFixed32 = try codedInputStream.readFixed32()

          case 65:
            optionalFixed64 = try codedInputStream.readFixed64()

          case 77:
            optionalSfixed32 = try codedInputStream.readSFixed32()

          case 81:
            optionalSfixed64 = try codedInputStream.readSFixed64()

          case 93:
            optionalFloat = try codedInputStream.readFloat()

          case 97:
            optionalDouble = try codedInputStream.readDouble()

          case 104:
            optionalBool = try codedInputStream.readBool()

          case 114:
            optionalString = try codedInputStream.readString()

          case 122:
            optionalBytes = try codedInputStream.readData()

          case 131:
            let subBuilder:ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder = ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder()
            if hasOptionalGroup {
             _ = try subBuilder.mergeFrom(other: optionalGroup)
            }
            try codedInputStream.readGroup(fieldNumber:16, builder:subBuilder, extensionRegistry:extensionRegistry)
            optionalGroup = subBuilder.buildPartial()

          case 146:
            let subBuilder:ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
            if hasOptionalNestedMessage {
             _ = try subBuilder.mergeFrom(other: optionalNestedMessage)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            optionalNestedMessage = subBuilder.buildPartial()

          case 154:
            let subBuilder:ProtobufUnittest.ForeignMessageLite.Builder = ProtobufUnittest.ForeignMessageLite.Builder()
            if hasOptionalForeignMessage {
             _ = try subBuilder.mergeFrom(other: optionalForeignMessage)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            optionalForeignMessage = subBuilder.buildPartial()

          case 162:
            let subBuilder:ProtobufUnittestImport.ImportMessageLite.Builder = ProtobufUnittestImport.ImportMessageLite.Builder()
            if hasOptionalImportMessage {
             _ = try subBuilder.mergeFrom(other: optionalImportMessage)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            optionalImportMessage = subBuilder.buildPartial()

          case 168:
            let valueIntoptionalNestedEnum = try codedInputStream.readEnum()
            if let enumsoptionalNestedEnum = ProtobufUnittest.TestAllTypesLite.NestedEnum(rawValue:valueIntoptionalNestedEnum){
                 optionalNestedEnum = enumsoptionalNestedEnum
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 21, value:Int64(valueIntoptionalNestedEnum))
            }

          case 176:
            let valueIntoptionalForeignEnum = try codedInputStream.readEnum()
            if let enumsoptionalForeignEnum = ProtobufUnittest.ForeignEnumLite(rawValue:valueIntoptionalForeignEnum){
                 optionalForeignEnum = enumsoptionalForeignEnum
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 22, value:Int64(valueIntoptionalForeignEnum))
            }

          case 184:
            let valueIntoptionalImportEnum = try codedInputStream.readEnum()
            if let enumsoptionalImportEnum = ProtobufUnittestImport.ImportEnumLite(rawValue:valueIntoptionalImportEnum){
                 optionalImportEnum = enumsoptionalImportEnum
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 23, value:Int64(valueIntoptionalImportEnum))
            }

          case 194:
            optionalStringPiece = try codedInputStream.readString()

          case 202:
            optionalCord = try codedInputStream.readString()

          case 210:
            let subBuilder:ProtobufUnittestImport.PublicImportMessageLite.Builder = ProtobufUnittestImport.PublicImportMessageLite.Builder()
            if hasOptionalPublicImportMessage {
             _ = try subBuilder.mergeFrom(other: optionalPublicImportMessage)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            optionalPublicImportMessage = subBuilder.buildPartial()

          case 218:
            let subBuilder:ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
            if hasOptionalLazyMessage {
             _ = try subBuilder.mergeFrom(other: optionalLazyMessage)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            optionalLazyMessage = subBuilder.buildPartial()

          case 248:
            repeatedInt32 += [try codedInputStream.readInt32()]

          case 256:
            repeatedInt64 += [try codedInputStream.readInt64()]

          case 264:
            repeatedUint32 += [try codedInputStream.readUInt32()]

          case 272:
            repeatedUint64 += [try codedInputStream.readUInt64()]

          case 280:
            repeatedSint32 += [try codedInputStream.readSInt32()]

          case 288:
            repeatedSint64 += [try codedInputStream.readSInt64()]

          case 301:
            repeatedFixed32 += [try codedInputStream.readFixed32()]

          case 305:
            repeatedFixed64 += [try codedInputStream.readFixed64()]

          case 317:
            repeatedSfixed32 += [try codedInputStream.readSFixed32()]

          case 321:
            repeatedSfixed64 += [try codedInputStream.readSFixed64()]

          case 333:
            repeatedFloat += [try codedInputStream.readFloat()]

          case 337:
            repeatedDouble += [try codedInputStream.readDouble()]

          case 344:
            repeatedBool += [try codedInputStream.readBool()]

          case 354:
            repeatedString += [try codedInputStream.readString()]

          case 362:
            repeatedBytes += [try codedInputStream.readData()]

          case 371:
            let subBuilder = ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder()
            try codedInputStream.readGroup(fieldNumber:46,builder:subBuilder,extensionRegistry:extensionRegistry)
            repeatedGroup.append(subBuilder.buildPartial())

          case 386:
            let subBuilder = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
            try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
            repeatedNestedMessage.append(subBuilder.buildPartial())

          case 394:
            let subBuilder = ProtobufUnittest.ForeignMessageLite.Builder()
            try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
            repeatedForeignMessage.append(subBuilder.buildPartial())

          case 402:
            let subBuilder = ProtobufUnittestImport.ImportMessageLite.Builder()
            try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
            repeatedImportMessage.append(subBuilder.buildPartial())

          case 408:
            let valueIntrepeatedNestedEnum = try codedInputStream.readEnum()
            if let enumsrepeatedNestedEnum = ProtobufUnittest.TestAllTypesLite.NestedEnum(rawValue:valueIntrepeatedNestedEnum) {
                 builderResult.repeatedNestedEnum += [enumsrepeatedNestedEnum]
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 51, value:Int64(valueIntrepeatedNestedEnum))
            }

          case 416:
            let valueIntrepeatedForeignEnum = try codedInputStream.readEnum()
            if let enumsrepeatedForeignEnum = ProtobufUnittest.ForeignEnumLite(rawValue:valueIntrepeatedForeignEnum) {
                 builderResult.repeatedForeignEnum += [enumsrepeatedForeignEnum]
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 52, value:Int64(valueIntrepeatedForeignEnum))
            }

          case 424:
            let valueIntrepeatedImportEnum = try codedInputStream.readEnum()
            if let enumsrepeatedImportEnum = ProtobufUnittestImport.ImportEnumLite(rawValue:valueIntrepeatedImportEnum) {
                 builderResult.repeatedImportEnum += [enumsrepeatedImportEnum]
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 53, value:Int64(valueIntrepeatedImportEnum))
            }

          case 434:
            repeatedStringPiece += [try codedInputStream.readString()]

          case 442:
            repeatedCord += [try codedInputStream.readString()]

          case 458:
            let subBuilder = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
            try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
            repeatedLazyMessage.append(subBuilder.buildPartial())

          case 488:
            defaultInt32 = try codedInputStream.readInt32()

          case 496:
            defaultInt64 = try codedInputStream.readInt64()

          case 504:
            defaultUint32 = try codedInputStream.readUInt32()

          case 512:
            defaultUint64 = try codedInputStream.readUInt64()

          case 520:
            defaultSint32 = try codedInputStream.readSInt32()

          case 528:
            defaultSint64 = try codedInputStream.readSInt64()

          case 541:
            defaultFixed32 = try codedInputStream.readFixed32()

          case 545:
            defaultFixed64 = try codedInputStream.readFixed64()

          case 557:
            defaultSfixed32 = try codedInputStream.readSFixed32()

          case 561:
            defaultSfixed64 = try codedInputStream.readSFixed64()

          case 573:
            defaultFloat = try codedInputStream.readFloat()

          case 577:
            defaultDouble = try codedInputStream.readDouble()

          case 584:
            defaultBool = try codedInputStream.readBool()

          case 594:
            defaultString = try codedInputStream.readString()

          case 602:
            defaultBytes = try codedInputStream.readData()

          case 648:
            let valueIntdefaultNestedEnum = try codedInputStream.readEnum()
            if let enumsdefaultNestedEnum = ProtobufUnittest.TestAllTypesLite.NestedEnum(rawValue:valueIntdefaultNestedEnum){
                 defaultNestedEnum = enumsdefaultNestedEnum
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 81, value:Int64(valueIntdefaultNestedEnum))
            }

          case 656:
            let valueIntdefaultForeignEnum = try codedInputStream.readEnum()
            if let enumsdefaultForeignEnum = ProtobufUnittest.ForeignEnumLite(rawValue:valueIntdefaultForeignEnum){
                 defaultForeignEnum = enumsdefaultForeignEnum
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 82, value:Int64(valueIntdefaultForeignEnum))
            }

          case 664:
            let valueIntdefaultImportEnum = try codedInputStream.readEnum()
            if let enumsdefaultImportEnum = ProtobufUnittestImport.ImportEnumLite(rawValue:valueIntdefaultImportEnum){
                 defaultImportEnum = enumsdefaultImportEnum
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 83, value:Int64(valueIntdefaultImportEnum))
            }

          case 674:
            defaultStringPiece = try codedInputStream.readString()

          case 682:
            defaultCord = try codedInputStream.readString()

          case 888:
            oneofUint32 = try codedInputStream.readUInt32()

          case 898:
            let subBuilder:ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder = ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder()
            if hasOneofNestedMessage {
             _ = try subBuilder.mergeFrom(other: oneofNestedMessage)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            oneofNestedMessage = subBuilder.buildPartial()

          case 906:
            oneofString = try codedInputStream.readString()

          case 914:
            oneofBytes = try codedInputStream.readData()

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  final public class ForeignMessageLite : GeneratedMessage {
    public fileprivate(set) var c:Int32 = Int32(0)

    public fileprivate(set) var hasC:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      if hasC {
        try codedOutputStream.writeInt32(fieldNumber:1, value:c)
      }
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasC {
        serialize_size += c.computeInt32Size(fieldNumber: 1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.ForeignMessageLite.Builder {
      return ProtobufUnittest.ForeignMessageLite.classBuilder() as! ProtobufUnittest.ForeignMessageLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.ForeignMessageLite.Builder {
      return classBuilder() as! ProtobufUnittest.ForeignMessageLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.ForeignMessageLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.ForeignMessageLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.ForeignMessageLite.Builder {
      return try ProtobufUnittest.ForeignMessageLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.ForeignMessageLite) throws -> ProtobufUnittest.ForeignMessageLite.Builder {
      return try ProtobufUnittest.ForeignMessageLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      if hasC {
        output += "\(indent) c: \(c) \n"
      }
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasC {
               hashCode = (hashCode &* 31) &+ c.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.ForeignMessageLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.ForeignMessageLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.ForeignMessageLite = ProtobufUnittest.ForeignMessageLite()
      public func getMessage() -> ProtobufUnittest.ForeignMessageLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasC:Bool {
           get {
                return builderResult.hasC
           }
      }
      public var c:Int32 {
           get {
                return builderResult.c
           }
           set (value) {
               builderResult.hasC = true
               builderResult.c = value
           }
      }
      public func setC(_ value:Int32) -> ProtobufUnittest.ForeignMessageLite.Builder {
        self.c = value
        return self
      }
      public func clearC() -> ProtobufUnittest.ForeignMessageLite.Builder{
           builderResult.hasC = false
           builderResult.c = Int32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.ForeignMessageLite.Builder {
        builderResult = ProtobufUnittest.ForeignMessageLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.ForeignMessageLite.Builder {
        return try ProtobufUnittest.ForeignMessageLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.ForeignMessageLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.ForeignMessageLite {
        let returnMe:ProtobufUnittest.ForeignMessageLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.ForeignMessageLite) throws -> ProtobufUnittest.ForeignMessageLite.Builder {
        if other == ProtobufUnittest.ForeignMessageLite() {
         return self
        }
        if other.hasC {
             c = other.c
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.ForeignMessageLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.ForeignMessageLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            c = try codedInputStream.readInt32()

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  final public class TestPackedTypesLite : GeneratedMessage {
    public fileprivate(set) var packedInt32:Array<Int32> = Array<Int32>()
    private var packedInt32MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedInt64:Array<Int64> = Array<Int64>()
    private var packedInt64MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedUint32:Array<UInt32> = Array<UInt32>()
    private var packedUint32MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedUint64:Array<UInt64> = Array<UInt64>()
    private var packedUint64MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedSint32:Array<Int32> = Array<Int32>()
    private var packedSint32MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedSint64:Array<Int64> = Array<Int64>()
    private var packedSint64MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedFixed32:Array<UInt32> = Array<UInt32>()
    private var packedFixed32MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedFixed64:Array<UInt64> = Array<UInt64>()
    private var packedFixed64MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedSfixed32:Array<Int32> = Array<Int32>()
    private var packedSfixed32MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedSfixed64:Array<Int64> = Array<Int64>()
    private var packedSfixed64MemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedFloat:Array<Float> = Array<Float>()
    private var packedFloatMemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedDouble:Array<Double> = Array<Double>()
    private var packedDoubleMemoizedSerializedSize:Int32 = -1
    public fileprivate(set) var packedBool:Array<Bool> = Array<Bool>()
    private var packedBoolMemoizedSerializedSize:Int32 = -1
    private var packedEnumMemoizedSerializedSize:Int32 = 0
    public fileprivate(set) var packedEnum:Array<ProtobufUnittest.ForeignEnumLite> = Array<ProtobufUnittest.ForeignEnumLite>()
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      if !packedInt32.isEmpty {
        try codedOutputStream.writeRawVarint32(value:722)
        try codedOutputStream.writeRawVarint32(value:packedInt32MemoizedSerializedSize)
        for oneValuepackedInt32 in packedInt32 {
          try codedOutputStream.writeInt32NoTag(value:oneValuepackedInt32)
        }
      }
      if !packedInt64.isEmpty {
        try codedOutputStream.writeRawVarint32(value:730)
        try codedOutputStream.writeRawVarint32(value:packedInt64MemoizedSerializedSize)
        for oneValuepackedInt64 in packedInt64 {
          try codedOutputStream.writeInt64NoTag(value:oneValuepackedInt64)
        }
      }
      if !packedUint32.isEmpty {
        try codedOutputStream.writeRawVarint32(value:738)
        try codedOutputStream.writeRawVarint32(value:packedUint32MemoizedSerializedSize)
        for oneValuepackedUint32 in packedUint32 {
          try codedOutputStream.writeUInt32NoTag(value:oneValuepackedUint32)
        }
      }
      if !packedUint64.isEmpty {
        try codedOutputStream.writeRawVarint32(value:746)
        try codedOutputStream.writeRawVarint32(value:packedUint64MemoizedSerializedSize)
        for oneValuepackedUint64 in packedUint64 {
          try codedOutputStream.writeUInt64NoTag(value:oneValuepackedUint64)
        }
      }
      if !packedSint32.isEmpty {
        try codedOutputStream.writeRawVarint32(value:754)
        try codedOutputStream.writeRawVarint32(value:packedSint32MemoizedSerializedSize)
        for oneValuepackedSint32 in packedSint32 {
          try codedOutputStream.writeSInt32NoTag(value:oneValuepackedSint32)
        }
      }
      if !packedSint64.isEmpty {
        try codedOutputStream.writeRawVarint32(value:762)
        try codedOutputStream.writeRawVarint32(value:packedSint64MemoizedSerializedSize)
        for oneValuepackedSint64 in packedSint64 {
          try codedOutputStream.writeSInt64NoTag(value:oneValuepackedSint64)
        }
      }
      if !packedFixed32.isEmpty {
        try codedOutputStream.writeRawVarint32(value:770)
        try codedOutputStream.writeRawVarint32(value:packedFixed32MemoizedSerializedSize)
        for oneValuepackedFixed32 in packedFixed32 {
          try codedOutputStream.writeFixed32NoTag(value:oneValuepackedFixed32)
        }
      }
      if !packedFixed64.isEmpty {
        try codedOutputStream.writeRawVarint32(value:778)
        try codedOutputStream.writeRawVarint32(value:packedFixed64MemoizedSerializedSize)
        for oneValuepackedFixed64 in packedFixed64 {
          try codedOutputStream.writeFixed64NoTag(value:oneValuepackedFixed64)
        }
      }
      if !packedSfixed32.isEmpty {
        try codedOutputStream.writeRawVarint32(value:786)
        try codedOutputStream.writeRawVarint32(value:packedSfixed32MemoizedSerializedSize)
        for oneValuepackedSfixed32 in packedSfixed32 {
          try codedOutputStream.writeSFixed32NoTag(value:oneValuepackedSfixed32)
        }
      }
      if !packedSfixed64.isEmpty {
        try codedOutputStream.writeRawVarint32(value:794)
        try codedOutputStream.writeRawVarint32(value:packedSfixed64MemoizedSerializedSize)
        for oneValuepackedSfixed64 in packedSfixed64 {
          try codedOutputStream.writeSFixed64NoTag(value:oneValuepackedSfixed64)
        }
      }
      if !packedFloat.isEmpty {
        try codedOutputStream.writeRawVarint32(value:802)
        try codedOutputStream.writeRawVarint32(value:packedFloatMemoizedSerializedSize)
        for oneValuepackedFloat in packedFloat {
          try codedOutputStream.writeFloatNoTag(value:oneValuepackedFloat)
        }
      }
      if !packedDouble.isEmpty {
        try codedOutputStream.writeRawVarint32(value:810)
        try codedOutputStream.writeRawVarint32(value:packedDoubleMemoizedSerializedSize)
        for oneValuepackedDouble in packedDouble {
          try codedOutputStream.writeDoubleNoTag(value:oneValuepackedDouble)
        }
      }
      if !packedBool.isEmpty {
        try codedOutputStream.writeRawVarint32(value:818)
        try codedOutputStream.writeRawVarint32(value:packedBoolMemoizedSerializedSize)
        for oneValuepackedBool in packedBool {
          try codedOutputStream.writeBoolNoTag(value:oneValuepackedBool)
        }
      }
      if !packedEnum.isEmpty {
        try codedOutputStream.writeRawVarint32(value:826)
        try codedOutputStream.writeRawVarint32(value:packedEnumMemoizedSerializedSize)
      }
      for oneValueOfpackedEnum in packedEnum {
          try codedOutputStream.writeEnumNoTag(value:oneValueOfpackedEnum.rawValue)
      }
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      var dataSizePackedInt32:Int32 = 0
      for oneValuepackedInt32 in packedInt32 {
          dataSizePackedInt32 += oneValuepackedInt32.computeInt32SizeNoTag()
      }
      serialize_size += dataSizePackedInt32
      if !packedInt32.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedInt32.computeInt32SizeNoTag()
      }
      packedInt32MemoizedSerializedSize = dataSizePackedInt32
      var dataSizePackedInt64:Int32 = 0
      for oneValuepackedInt64 in packedInt64 {
          dataSizePackedInt64 += oneValuepackedInt64.computeInt64SizeNoTag()
      }
      serialize_size += dataSizePackedInt64
      if !packedInt64.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedInt64.computeInt32SizeNoTag()
      }
      packedInt64MemoizedSerializedSize = dataSizePackedInt64
      var dataSizePackedUint32:Int32 = 0
      for oneValuepackedUint32 in packedUint32 {
          dataSizePackedUint32 += oneValuepackedUint32.computeUInt32SizeNoTag()
      }
      serialize_size += dataSizePackedUint32
      if !packedUint32.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedUint32.computeInt32SizeNoTag()
      }
      packedUint32MemoizedSerializedSize = dataSizePackedUint32
      var dataSizePackedUint64:Int32 = 0
      for oneValuepackedUint64 in packedUint64 {
          dataSizePackedUint64 += oneValuepackedUint64.computeUInt64SizeNoTag()
      }
      serialize_size += dataSizePackedUint64
      if !packedUint64.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedUint64.computeInt32SizeNoTag()
      }
      packedUint64MemoizedSerializedSize = dataSizePackedUint64
      var dataSizePackedSint32:Int32 = 0
      for oneValuepackedSint32 in packedSint32 {
          dataSizePackedSint32 += oneValuepackedSint32.computeSInt32SizeNoTag()
      }
      serialize_size += dataSizePackedSint32
      if !packedSint32.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedSint32.computeInt32SizeNoTag()
      }
      packedSint32MemoizedSerializedSize = dataSizePackedSint32
      var dataSizePackedSint64:Int32 = 0
      for oneValuepackedSint64 in packedSint64 {
          dataSizePackedSint64 += oneValuepackedSint64.computeSInt64SizeNoTag()
      }
      serialize_size += dataSizePackedSint64
      if !packedSint64.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedSint64.computeInt32SizeNoTag()
      }
      packedSint64MemoizedSerializedSize = dataSizePackedSint64
      var dataSizePackedFixed32:Int32 = 0
      dataSizePackedFixed32 = 4 * Int32(packedFixed32.count)
      serialize_size += dataSizePackedFixed32
      if !packedFixed32.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedFixed32.computeInt32SizeNoTag()
      }
      packedFixed32MemoizedSerializedSize = dataSizePackedFixed32
      var dataSizePackedFixed64:Int32 = 0
      dataSizePackedFixed64 = 8 * Int32(packedFixed64.count)
      serialize_size += dataSizePackedFixed64
      if !packedFixed64.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedFixed64.computeInt32SizeNoTag()
      }
      packedFixed64MemoizedSerializedSize = dataSizePackedFixed64
      var dataSizePackedSfixed32:Int32 = 0
      dataSizePackedSfixed32 = 4 * Int32(packedSfixed32.count)
      serialize_size += dataSizePackedSfixed32
      if !packedSfixed32.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedSfixed32.computeInt32SizeNoTag()
      }
      packedSfixed32MemoizedSerializedSize = dataSizePackedSfixed32
      var dataSizePackedSfixed64:Int32 = 0
      dataSizePackedSfixed64 = 8 * Int32(packedSfixed64.count)
      serialize_size += dataSizePackedSfixed64
      if !packedSfixed64.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedSfixed64.computeInt32SizeNoTag()
      }
      packedSfixed64MemoizedSerializedSize = dataSizePackedSfixed64
      var dataSizePackedFloat:Int32 = 0
      dataSizePackedFloat = 4 * Int32(packedFloat.count)
      serialize_size += dataSizePackedFloat
      if !packedFloat.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedFloat.computeInt32SizeNoTag()
      }
      packedFloatMemoizedSerializedSize = dataSizePackedFloat
      var dataSizePackedDouble:Int32 = 0
      dataSizePackedDouble = 8 * Int32(packedDouble.count)
      serialize_size += dataSizePackedDouble
      if !packedDouble.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedDouble.computeInt32SizeNoTag()
      }
      packedDoubleMemoizedSerializedSize = dataSizePackedDouble
      var dataSizePackedBool:Int32 = 0
      dataSizePackedBool = 1 * Int32(packedBool.count)
      serialize_size += dataSizePackedBool
      if !packedBool.isEmpty {
        serialize_size += 2
        serialize_size += dataSizePackedBool.computeInt32SizeNoTag()
      }
      packedBoolMemoizedSerializedSize = dataSizePackedBool
      var dataSizepackedEnum:Int32 = 0
      for oneValueOfpackedEnum in packedEnum {
          dataSizepackedEnum += oneValueOfpackedEnum.rawValue.computeEnumSizeNoTag()
      }
      serialize_size += dataSizepackedEnum
      if !packedEnum.isEmpty {
        serialize_size += 2
        serialize_size += dataSizepackedEnum.computeRawVarint32Size()
      }
      packedEnumMemoizedSerializedSize = dataSizepackedEnum
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestPackedTypesLite.Builder {
      return ProtobufUnittest.TestPackedTypesLite.classBuilder() as! ProtobufUnittest.TestPackedTypesLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestPackedTypesLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestPackedTypesLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestPackedTypesLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestPackedTypesLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestPackedTypesLite.Builder {
      return try ProtobufUnittest.TestPackedTypesLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestPackedTypesLite) throws -> ProtobufUnittest.TestPackedTypesLite.Builder {
      return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      var packedInt32ElementIndex:Int = 0
      for oneValuepackedInt32 in packedInt32  {
          output += "\(indent) packedInt32[\(packedInt32ElementIndex)]: \(oneValuepackedInt32)\n"
          packedInt32ElementIndex += 1
      }
      var packedInt64ElementIndex:Int = 0
      for oneValuepackedInt64 in packedInt64  {
          output += "\(indent) packedInt64[\(packedInt64ElementIndex)]: \(oneValuepackedInt64)\n"
          packedInt64ElementIndex += 1
      }
      var packedUint32ElementIndex:Int = 0
      for oneValuepackedUint32 in packedUint32  {
          output += "\(indent) packedUint32[\(packedUint32ElementIndex)]: \(oneValuepackedUint32)\n"
          packedUint32ElementIndex += 1
      }
      var packedUint64ElementIndex:Int = 0
      for oneValuepackedUint64 in packedUint64  {
          output += "\(indent) packedUint64[\(packedUint64ElementIndex)]: \(oneValuepackedUint64)\n"
          packedUint64ElementIndex += 1
      }
      var packedSint32ElementIndex:Int = 0
      for oneValuepackedSint32 in packedSint32  {
          output += "\(indent) packedSint32[\(packedSint32ElementIndex)]: \(oneValuepackedSint32)\n"
          packedSint32ElementIndex += 1
      }
      var packedSint64ElementIndex:Int = 0
      for oneValuepackedSint64 in packedSint64  {
          output += "\(indent) packedSint64[\(packedSint64ElementIndex)]: \(oneValuepackedSint64)\n"
          packedSint64ElementIndex += 1
      }
      var packedFixed32ElementIndex:Int = 0
      for oneValuepackedFixed32 in packedFixed32  {
          output += "\(indent) packedFixed32[\(packedFixed32ElementIndex)]: \(oneValuepackedFixed32)\n"
          packedFixed32ElementIndex += 1
      }
      var packedFixed64ElementIndex:Int = 0
      for oneValuepackedFixed64 in packedFixed64  {
          output += "\(indent) packedFixed64[\(packedFixed64ElementIndex)]: \(oneValuepackedFixed64)\n"
          packedFixed64ElementIndex += 1
      }
      var packedSfixed32ElementIndex:Int = 0
      for oneValuepackedSfixed32 in packedSfixed32  {
          output += "\(indent) packedSfixed32[\(packedSfixed32ElementIndex)]: \(oneValuepackedSfixed32)\n"
          packedSfixed32ElementIndex += 1
      }
      var packedSfixed64ElementIndex:Int = 0
      for oneValuepackedSfixed64 in packedSfixed64  {
          output += "\(indent) packedSfixed64[\(packedSfixed64ElementIndex)]: \(oneValuepackedSfixed64)\n"
          packedSfixed64ElementIndex += 1
      }
      var packedFloatElementIndex:Int = 0
      for oneValuepackedFloat in packedFloat  {
          output += "\(indent) packedFloat[\(packedFloatElementIndex)]: \(oneValuepackedFloat)\n"
          packedFloatElementIndex += 1
      }
      var packedDoubleElementIndex:Int = 0
      for oneValuepackedDouble in packedDouble  {
          output += "\(indent) packedDouble[\(packedDoubleElementIndex)]: \(oneValuepackedDouble)\n"
          packedDoubleElementIndex += 1
      }
      var packedBoolElementIndex:Int = 0
      for oneValuepackedBool in packedBool  {
          output += "\(indent) packedBool[\(packedBoolElementIndex)]: \(oneValuepackedBool)\n"
          packedBoolElementIndex += 1
      }
      var packedEnumElementIndex:Int = 0
      for oneValueOfpackedEnum in packedEnum {
          output += "\(indent) packedEnum[\(packedEnumElementIndex)]: \(oneValueOfpackedEnum.description)\n"
          packedEnumElementIndex += 1
      }
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            for oneValuepackedInt32 in packedInt32 {
                hashCode = (hashCode &* 31) &+ oneValuepackedInt32.hashValue
            }
            for oneValuepackedInt64 in packedInt64 {
                hashCode = (hashCode &* 31) &+ oneValuepackedInt64.hashValue
            }
            for oneValuepackedUint32 in packedUint32 {
                hashCode = (hashCode &* 31) &+ oneValuepackedUint32.hashValue
            }
            for oneValuepackedUint64 in packedUint64 {
                hashCode = (hashCode &* 31) &+ oneValuepackedUint64.hashValue
            }
            for oneValuepackedSint32 in packedSint32 {
                hashCode = (hashCode &* 31) &+ oneValuepackedSint32.hashValue
            }
            for oneValuepackedSint64 in packedSint64 {
                hashCode = (hashCode &* 31) &+ oneValuepackedSint64.hashValue
            }
            for oneValuepackedFixed32 in packedFixed32 {
                hashCode = (hashCode &* 31) &+ oneValuepackedFixed32.hashValue
            }
            for oneValuepackedFixed64 in packedFixed64 {
                hashCode = (hashCode &* 31) &+ oneValuepackedFixed64.hashValue
            }
            for oneValuepackedSfixed32 in packedSfixed32 {
                hashCode = (hashCode &* 31) &+ oneValuepackedSfixed32.hashValue
            }
            for oneValuepackedSfixed64 in packedSfixed64 {
                hashCode = (hashCode &* 31) &+ oneValuepackedSfixed64.hashValue
            }
            for oneValuepackedFloat in packedFloat {
                hashCode = (hashCode &* 31) &+ oneValuepackedFloat.hashValue
            }
            for oneValuepackedDouble in packedDouble {
                hashCode = (hashCode &* 31) &+ oneValuepackedDouble.hashValue
            }
            for oneValuepackedBool in packedBool {
                hashCode = (hashCode &* 31) &+ oneValuepackedBool.hashValue
            }
            for oneValueOfpackedEnum in packedEnum {
                hashCode = (hashCode &* 31) &+ Int(oneValueOfpackedEnum.rawValue)
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestPackedTypesLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestPackedTypesLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.TestPackedTypesLite = ProtobufUnittest.TestPackedTypesLite()
      public func getMessage() -> ProtobufUnittest.TestPackedTypesLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var packedInt32:Array<Int32> {
           get {
               return builderResult.packedInt32
           }
           set (array) {
               builderResult.packedInt32 = array
           }
      }
      public func setPackedInt32(_ value:Array<Int32>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedInt32 = value
        return self
      }
      public func clearPackedInt32() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedInt32.removeAll(keepingCapacity: false)
         return self
      }
      public var packedInt64:Array<Int64> {
           get {
               return builderResult.packedInt64
           }
           set (array) {
               builderResult.packedInt64 = array
           }
      }
      public func setPackedInt64(_ value:Array<Int64>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedInt64 = value
        return self
      }
      public func clearPackedInt64() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedInt64.removeAll(keepingCapacity: false)
         return self
      }
      public var packedUint32:Array<UInt32> {
           get {
               return builderResult.packedUint32
           }
           set (array) {
               builderResult.packedUint32 = array
           }
      }
      public func setPackedUint32(_ value:Array<UInt32>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedUint32 = value
        return self
      }
      public func clearPackedUint32() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedUint32.removeAll(keepingCapacity: false)
         return self
      }
      public var packedUint64:Array<UInt64> {
           get {
               return builderResult.packedUint64
           }
           set (array) {
               builderResult.packedUint64 = array
           }
      }
      public func setPackedUint64(_ value:Array<UInt64>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedUint64 = value
        return self
      }
      public func clearPackedUint64() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedUint64.removeAll(keepingCapacity: false)
         return self
      }
      public var packedSint32:Array<Int32> {
           get {
               return builderResult.packedSint32
           }
           set (array) {
               builderResult.packedSint32 = array
           }
      }
      public func setPackedSint32(_ value:Array<Int32>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedSint32 = value
        return self
      }
      public func clearPackedSint32() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedSint32.removeAll(keepingCapacity: false)
         return self
      }
      public var packedSint64:Array<Int64> {
           get {
               return builderResult.packedSint64
           }
           set (array) {
               builderResult.packedSint64 = array
           }
      }
      public func setPackedSint64(_ value:Array<Int64>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedSint64 = value
        return self
      }
      public func clearPackedSint64() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedSint64.removeAll(keepingCapacity: false)
         return self
      }
      public var packedFixed32:Array<UInt32> {
           get {
               return builderResult.packedFixed32
           }
           set (array) {
               builderResult.packedFixed32 = array
           }
      }
      public func setPackedFixed32(_ value:Array<UInt32>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedFixed32 = value
        return self
      }
      public func clearPackedFixed32() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedFixed32.removeAll(keepingCapacity: false)
         return self
      }
      public var packedFixed64:Array<UInt64> {
           get {
               return builderResult.packedFixed64
           }
           set (array) {
               builderResult.packedFixed64 = array
           }
      }
      public func setPackedFixed64(_ value:Array<UInt64>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedFixed64 = value
        return self
      }
      public func clearPackedFixed64() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedFixed64.removeAll(keepingCapacity: false)
         return self
      }
      public var packedSfixed32:Array<Int32> {
           get {
               return builderResult.packedSfixed32
           }
           set (array) {
               builderResult.packedSfixed32 = array
           }
      }
      public func setPackedSfixed32(_ value:Array<Int32>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedSfixed32 = value
        return self
      }
      public func clearPackedSfixed32() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedSfixed32.removeAll(keepingCapacity: false)
         return self
      }
      public var packedSfixed64:Array<Int64> {
           get {
               return builderResult.packedSfixed64
           }
           set (array) {
               builderResult.packedSfixed64 = array
           }
      }
      public func setPackedSfixed64(_ value:Array<Int64>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedSfixed64 = value
        return self
      }
      public func clearPackedSfixed64() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedSfixed64.removeAll(keepingCapacity: false)
         return self
      }
      public var packedFloat:Array<Float> {
           get {
               return builderResult.packedFloat
           }
           set (array) {
               builderResult.packedFloat = array
           }
      }
      public func setPackedFloat(_ value:Array<Float>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedFloat = value
        return self
      }
      public func clearPackedFloat() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedFloat.removeAll(keepingCapacity: false)
         return self
      }
      public var packedDouble:Array<Double> {
           get {
               return builderResult.packedDouble
           }
           set (array) {
               builderResult.packedDouble = array
           }
      }
      public func setPackedDouble(_ value:Array<Double>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedDouble = value
        return self
      }
      public func clearPackedDouble() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedDouble.removeAll(keepingCapacity: false)
         return self
      }
      public var packedBool:Array<Bool> {
           get {
               return builderResult.packedBool
           }
           set (array) {
               builderResult.packedBool = array
           }
      }
      public func setPackedBool(_ value:Array<Bool>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedBool = value
        return self
      }
      public func clearPackedBool() -> ProtobufUnittest.TestPackedTypesLite.Builder {
         builderResult.packedBool.removeAll(keepingCapacity: false)
         return self
      }
      public var packedEnum:Array<ProtobufUnittest.ForeignEnumLite> {
          get {
              return builderResult.packedEnum
          }
          set (value) {
              builderResult.packedEnum = value
          }
      }
      public func setPackedEnum(_ value:Array<ProtobufUnittest.ForeignEnumLite>) -> ProtobufUnittest.TestPackedTypesLite.Builder {
        self.packedEnum = value
        return self
      }
      public func clearPackedEnum() -> ProtobufUnittest.TestPackedTypesLite.Builder {
        builderResult.packedEnum.removeAll(keepingCapacity: false)
        return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestPackedTypesLite.Builder {
        builderResult = ProtobufUnittest.TestPackedTypesLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestPackedTypesLite.Builder {
        return try ProtobufUnittest.TestPackedTypesLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestPackedTypesLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestPackedTypesLite {
        let returnMe:ProtobufUnittest.TestPackedTypesLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestPackedTypesLite) throws -> ProtobufUnittest.TestPackedTypesLite.Builder {
        if other == ProtobufUnittest.TestPackedTypesLite() {
         return self
        }
        if !other.packedInt32.isEmpty {
            builderResult.packedInt32 += other.packedInt32
        }
        if !other.packedInt64.isEmpty {
            builderResult.packedInt64 += other.packedInt64
        }
        if !other.packedUint32.isEmpty {
            builderResult.packedUint32 += other.packedUint32
        }
        if !other.packedUint64.isEmpty {
            builderResult.packedUint64 += other.packedUint64
        }
        if !other.packedSint32.isEmpty {
            builderResult.packedSint32 += other.packedSint32
        }
        if !other.packedSint64.isEmpty {
            builderResult.packedSint64 += other.packedSint64
        }
        if !other.packedFixed32.isEmpty {
            builderResult.packedFixed32 += other.packedFixed32
        }
        if !other.packedFixed64.isEmpty {
            builderResult.packedFixed64 += other.packedFixed64
        }
        if !other.packedSfixed32.isEmpty {
            builderResult.packedSfixed32 += other.packedSfixed32
        }
        if !other.packedSfixed64.isEmpty {
            builderResult.packedSfixed64 += other.packedSfixed64
        }
        if !other.packedFloat.isEmpty {
            builderResult.packedFloat += other.packedFloat
        }
        if !other.packedDouble.isEmpty {
            builderResult.packedDouble += other.packedDouble
        }
        if !other.packedBool.isEmpty {
            builderResult.packedBool += other.packedBool
        }
        if !other.packedEnum.isEmpty {
           builderResult.packedEnum += other.packedEnum
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestPackedTypesLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedTypesLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 722:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedInt32 += [try codedInputStream.readInt32()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 730:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedInt64 += [try codedInputStream.readInt64()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 738:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedUint32 += [try codedInputStream.readUInt32()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 746:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedUint64 += [try codedInputStream.readUInt64()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 754:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedSint32 += [try codedInputStream.readSInt32()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 762:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedSint64 += [try codedInputStream.readSInt64()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 770:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedFixed32 += [try codedInputStream.readFixed32()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 778:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedFixed64 += [try codedInputStream.readFixed64()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 786:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedSfixed32 += [try codedInputStream.readSFixed32()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 794:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedSfixed64 += [try codedInputStream.readSFixed64()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 802:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedFloat += [try codedInputStream.readFloat()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 810:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedDouble += [try codedInputStream.readDouble()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 818:
            let length = try codedInputStream.readRawVarint32()
            let limit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while (codedInputStream.bytesUntilLimit() > 0) {
              builderResult.packedBool += [try codedInputStream.readBool()]
            }
            codedInputStream.popLimit(oldLimit: limit)

          case 826:
            let length = try codedInputStream.readRawVarint32()
            let oldLimit = try codedInputStream.pushLimit(byteLimit: Int(length))
            while codedInputStream.bytesUntilLimit() > 0 {
            let valueIntpackedEnum = try codedInputStream.readEnum()
            if let enumspackedEnum = ProtobufUnittest.ForeignEnumLite(rawValue:valueIntpackedEnum) {
                 builderResult.packedEnum += [enumspackedEnum]
            } else {
                 _ = try unknownFieldsBuilder.mergeVarintField(number: 103, value:Int64(valueIntpackedEnum))
            }
            }
            codedInputStream.popLimit(oldLimit: Int(oldLimit))

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  final public class TestAllExtensionsLite : ExtendableMessage {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
      if !extensionsAreInitialized() {
       return false
      }
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      try writeExtensionsTo(codedOutputStream: codedOutputStream, startInclusive:Int32(1), endExclusive:Int32(536870912))
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += extensionsSerializedSize()
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestAllExtensionsLite.Builder {
      return ProtobufUnittest.TestAllExtensionsLite.classBuilder() as! ProtobufUnittest.TestAllExtensionsLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestAllExtensionsLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestAllExtensionsLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestAllExtensionsLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestAllExtensionsLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestAllExtensionsLite.Builder {
      return try ProtobufUnittest.TestAllExtensionsLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestAllExtensionsLite) throws -> ProtobufUnittest.TestAllExtensionsLite.Builder {
      return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      output += try getExtensionDescription(startInclusive: Int32(1), endExclusive:Int32(536870912), indent:indent)
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+ Int(hashExtensionsFrom(startInclusive: Int32(1), endExclusive:Int32(536870912)))
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestAllExtensionsLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestAllExtensionsLite"
    }
    //Meta information declaration end

    final public class Builder : ExtendableMessageBuilder {
      private var builderResult:ProtobufUnittest.TestAllExtensionsLite = ProtobufUnittest.TestAllExtensionsLite()
      public func getMessage() -> ProtobufUnittest.TestAllExtensionsLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:ExtendableMessage {
           get {
               return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestAllExtensionsLite.Builder {
        builderResult = ProtobufUnittest.TestAllExtensionsLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestAllExtensionsLite.Builder {
        return try ProtobufUnittest.TestAllExtensionsLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestAllExtensionsLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestAllExtensionsLite {
        let returnMe:ProtobufUnittest.TestAllExtensionsLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestAllExtensionsLite) throws -> ProtobufUnittest.TestAllExtensionsLite.Builder {
        if other == ProtobufUnittest.TestAllExtensionsLite() {
         return self
        }
        _ = try mergeExtensionFields(other: other)
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllExtensionsLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllExtensionsLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  final public class OptionalGroupExtensionLite : GeneratedMessage {
    public fileprivate(set) var a:Int32 = Int32(0)

    public fileprivate(set) var hasA:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      if hasA {
        try codedOutputStream.writeInt32(fieldNumber:17, value:a)
      }
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasA {
        serialize_size += a.computeInt32Size(fieldNumber: 17)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
      return ProtobufUnittest.OptionalGroupExtensionLite.classBuilder() as! ProtobufUnittest.OptionalGroupExtensionLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
      return classBuilder() as! ProtobufUnittest.OptionalGroupExtensionLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.OptionalGroupExtensionLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.OptionalGroupExtensionLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
      return try ProtobufUnittest.OptionalGroupExtensionLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.OptionalGroupExtensionLite) throws -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
      return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      if hasA {
        output += "\(indent) a: \(a) \n"
      }
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasA {
               hashCode = (hashCode &* 31) &+ a.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.OptionalGroupExtensionLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.OptionalGroupExtensionLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.OptionalGroupExtensionLite = ProtobufUnittest.OptionalGroupExtensionLite()
      public func getMessage() -> ProtobufUnittest.OptionalGroupExtensionLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasA:Bool {
           get {
                return builderResult.hasA
           }
      }
      public var a:Int32 {
           get {
                return builderResult.a
           }
           set (value) {
               builderResult.hasA = true
               builderResult.a = value
           }
      }
      public func setA(_ value:Int32) -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
        self.a = value
        return self
      }
      public func clearA() -> ProtobufUnittest.OptionalGroupExtensionLite.Builder{
           builderResult.hasA = false
           builderResult.a = Int32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
        builderResult = ProtobufUnittest.OptionalGroupExtensionLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
        return try ProtobufUnittest.OptionalGroupExtensionLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.OptionalGroupExtensionLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.OptionalGroupExtensionLite {
        let returnMe:ProtobufUnittest.OptionalGroupExtensionLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.OptionalGroupExtensionLite) throws -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
        if other == ProtobufUnittest.OptionalGroupExtensionLite() {
         return self
        }
        if other.hasA {
             a = other.a
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.OptionalGroupExtensionLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 136:
            a = try codedInputStream.readInt32()

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  final public class RepeatedGroupExtensionLite : GeneratedMessage {
    public fileprivate(set) var a:Int32 = Int32(0)

    public fileprivate(set) var hasA:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      if hasA {
        try codedOutputStream.writeInt32(fieldNumber:47, value:a)
      }
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasA {
        serialize_size += a.computeInt32Size(fieldNumber: 47)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
      return ProtobufUnittest.RepeatedGroupExtensionLite.classBuilder() as! ProtobufUnittest.RepeatedGroupExtensionLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
      return classBuilder() as! ProtobufUnittest.RepeatedGroupExtensionLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.RepeatedGroupExtensionLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.RepeatedGroupExtensionLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
      return try ProtobufUnittest.RepeatedGroupExtensionLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.RepeatedGroupExtensionLite) throws -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
      return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      if hasA {
        output += "\(indent) a: \(a) \n"
      }
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasA {
               hashCode = (hashCode &* 31) &+ a.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.RepeatedGroupExtensionLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.RepeatedGroupExtensionLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.RepeatedGroupExtensionLite = ProtobufUnittest.RepeatedGroupExtensionLite()
      public func getMessage() -> ProtobufUnittest.RepeatedGroupExtensionLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasA:Bool {
           get {
                return builderResult.hasA
           }
      }
      public var a:Int32 {
           get {
                return builderResult.a
           }
           set (value) {
               builderResult.hasA = true
               builderResult.a = value
           }
      }
      public func setA(_ value:Int32) -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
        self.a = value
        return self
      }
      public func clearA() -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder{
           builderResult.hasA = false
           builderResult.a = Int32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
        builderResult = ProtobufUnittest.RepeatedGroupExtensionLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
        return try ProtobufUnittest.RepeatedGroupExtensionLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.RepeatedGroupExtensionLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.RepeatedGroupExtensionLite {
        let returnMe:ProtobufUnittest.RepeatedGroupExtensionLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.RepeatedGroupExtensionLite) throws -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
        if other == ProtobufUnittest.RepeatedGroupExtensionLite() {
         return self
        }
        if other.hasA {
             a = other.a
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.RepeatedGroupExtensionLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 376:
            a = try codedInputStream.readInt32()

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  final public class TestPackedExtensionsLite : ExtendableMessage {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
      if !extensionsAreInitialized() {
       return false
      }
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      try writeExtensionsTo(codedOutputStream: codedOutputStream, startInclusive:Int32(1), endExclusive:Int32(536870912))
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += extensionsSerializedSize()
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
      return ProtobufUnittest.TestPackedExtensionsLite.classBuilder() as! ProtobufUnittest.TestPackedExtensionsLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestPackedExtensionsLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestPackedExtensionsLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestPackedExtensionsLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
      return try ProtobufUnittest.TestPackedExtensionsLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestPackedExtensionsLite) throws -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
      return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      output += try getExtensionDescription(startInclusive: Int32(1), endExclusive:Int32(536870912), indent:indent)
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+ Int(hashExtensionsFrom(startInclusive: Int32(1), endExclusive:Int32(536870912)))
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestPackedExtensionsLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestPackedExtensionsLite"
    }
    //Meta information declaration end

    final public class Builder : ExtendableMessageBuilder {
      private var builderResult:ProtobufUnittest.TestPackedExtensionsLite = ProtobufUnittest.TestPackedExtensionsLite()
      public func getMessage() -> ProtobufUnittest.TestPackedExtensionsLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:ExtendableMessage {
           get {
               return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
        builderResult = ProtobufUnittest.TestPackedExtensionsLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
        return try ProtobufUnittest.TestPackedExtensionsLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestPackedExtensionsLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestPackedExtensionsLite {
        let returnMe:ProtobufUnittest.TestPackedExtensionsLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestPackedExtensionsLite) throws -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
        if other == ProtobufUnittest.TestPackedExtensionsLite() {
         return self
        }
        _ = try mergeExtensionFields(other: other)
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedExtensionsLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  final public class TestNestedExtensionLite : GeneratedMessage {
    public class func nestedExtension() -> ConcreateExtensionField {
         return TestNestedExtensionLitenestedExtension
    }
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestNestedExtensionLite.Builder {
      return ProtobufUnittest.TestNestedExtensionLite.classBuilder() as! ProtobufUnittest.TestNestedExtensionLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestNestedExtensionLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestNestedExtensionLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestNestedExtensionLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestNestedExtensionLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestNestedExtensionLite.Builder {
      return try ProtobufUnittest.TestNestedExtensionLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestNestedExtensionLite) throws -> ProtobufUnittest.TestNestedExtensionLite.Builder {
      return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestNestedExtensionLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestNestedExtensionLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.TestNestedExtensionLite = ProtobufUnittest.TestNestedExtensionLite()
      public func getMessage() -> ProtobufUnittest.TestNestedExtensionLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestNestedExtensionLite.Builder {
        builderResult = ProtobufUnittest.TestNestedExtensionLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestNestedExtensionLite.Builder {
        return try ProtobufUnittest.TestNestedExtensionLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestNestedExtensionLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestNestedExtensionLite {
        let returnMe:ProtobufUnittest.TestNestedExtensionLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestNestedExtensionLite) throws -> ProtobufUnittest.TestNestedExtensionLite.Builder {
        if other == ProtobufUnittest.TestNestedExtensionLite() {
         return self
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestNestedExtensionLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestNestedExtensionLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  // Test that deprecated fields work.  We only verify that they compile (at one
  // point this failed).
  final public class TestDeprecatedLite : GeneratedMessage {
    @available(*, deprecated:0.1, message:"The field is marked as \"Deprecated\"")
    public fileprivate(set) var deprecatedField:Int32 = Int32(0)

    public fileprivate(set) var hasDeprecatedField:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      if hasDeprecatedField {
        try codedOutputStream.writeInt32(fieldNumber:1, value:deprecatedField)
      }
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasDeprecatedField {
        serialize_size += deprecatedField.computeInt32Size(fieldNumber: 1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestDeprecatedLite.Builder {
      return ProtobufUnittest.TestDeprecatedLite.classBuilder() as! ProtobufUnittest.TestDeprecatedLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestDeprecatedLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestDeprecatedLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestDeprecatedLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestDeprecatedLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestDeprecatedLite.Builder {
      return try ProtobufUnittest.TestDeprecatedLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestDeprecatedLite) throws -> ProtobufUnittest.TestDeprecatedLite.Builder {
      return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      if hasDeprecatedField {
        output += "\(indent) deprecatedField: \(deprecatedField) \n"
      }
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasDeprecatedField {
               hashCode = (hashCode &* 31) &+ deprecatedField.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestDeprecatedLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestDeprecatedLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.TestDeprecatedLite = ProtobufUnittest.TestDeprecatedLite()
      public func getMessage() -> ProtobufUnittest.TestDeprecatedLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasDeprecatedField:Bool {
           get {
                return builderResult.hasDeprecatedField
           }
      }
      public var deprecatedField:Int32 {
           get {
                return builderResult.deprecatedField
           }
           set (value) {
               builderResult.hasDeprecatedField = true
               builderResult.deprecatedField = value
           }
      }
      public func setDeprecatedField(_ value:Int32) -> ProtobufUnittest.TestDeprecatedLite.Builder {
        self.deprecatedField = value
        return self
      }
      public func clearDeprecatedField() -> ProtobufUnittest.TestDeprecatedLite.Builder{
           builderResult.hasDeprecatedField = false
           builderResult.deprecatedField = Int32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestDeprecatedLite.Builder {
        builderResult = ProtobufUnittest.TestDeprecatedLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestDeprecatedLite.Builder {
        return try ProtobufUnittest.TestDeprecatedLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestDeprecatedLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestDeprecatedLite {
        let returnMe:ProtobufUnittest.TestDeprecatedLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestDeprecatedLite) throws -> ProtobufUnittest.TestDeprecatedLite.Builder {
        if other == ProtobufUnittest.TestDeprecatedLite() {
         return self
        }
        if other.hasDeprecatedField {
             deprecatedField = other.deprecatedField
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestDeprecatedLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestDeprecatedLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            deprecatedField = try codedInputStream.readInt32()

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  // See the comments of the same type in unittest.proto.
  final public class TestParsingMergeLite : ExtendableMessage {


    //Nested type declaration start

      final public class RepeatedFieldsGenerator : GeneratedMessage {


        //Nested type declaration start

          final public class Group1 : GeneratedMessage {
            public fileprivate(set) var field1:ProtobufUnittest.TestAllTypesLite!
            public fileprivate(set) var hasField1:Bool = false
            required public init() {
                 super.init()
            }
            override public func isInitialized() -> Bool {
             return true
            }
            override public func writeTo(codedOutputStream:CodedOutputStream) throws {
              if hasField1 {
                try codedOutputStream.writeMessage(fieldNumber:11, value:field1)
              }
              try unknownFields.writeTo(codedOutputStream:codedOutputStream)
            }
            override public func serializedSize() -> Int32 {
              var serialize_size:Int32 = memoizedSerializedSize
              if serialize_size != -1 {
               return serialize_size
              }

              serialize_size = 0
              if hasField1 {
                  if let varSizefield1 = field1?.computeMessageSize(fieldNumber: 11) {
                      serialize_size += varSizefield1
                  }
              }
              serialize_size += unknownFields.serializedSize()
              memoizedSerializedSize = serialize_size
              return serialize_size
            }
            public class func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
              return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder
            }
            public func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
              return classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder
            }
            public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
              return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder()
            }
            public override func classBuilder() -> ProtocolBuffersMessageBuilder {
              return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder()
            }
            public func toBuilder() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
              return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.builderWithPrototype(prototype: self)
            }
            public class func builderWithPrototype(prototype:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
              return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeFrom(other: prototype)
            }
            override public func getDescription(indent:String) throws -> String {
              var output:String = ""
              if hasField1 {
                output += "\(indent) field1 {\n"
                if let outDescField1 = field1 {
                  output += try outDescField1.getDescription(indent:"\(indent)  ")
                }
                output += "\(indent) }\n"
              }
              output += unknownFields.getDescription(indent: indent)
              return output
            }
            override public var hashValue:Int {
                get {
                    var hashCode:Int = 7
                    if hasField1 {
                        if let hashValuefield1 = field1?.hashValue {
                            hashCode = (hashCode &* 31) &+ hashValuefield1
                        }
                    }
                    hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                    return hashCode
                }
            }


            //Meta information declaration start

            override public class func className() -> String {
                return "ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1"
            }
            override public func className() -> String {
                return "ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1"
            }
            //Meta information declaration end

            final public class Builder : GeneratedMessageBuilder {
              private var builderResult:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1()
              public func getMessage() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
                  return builderResult
              }

              required override public init () {
                 super.init()
              }
              public var hasField1:Bool {
                   get {
                       return builderResult.hasField1
                   }
              }
              public var field1:ProtobufUnittest.TestAllTypesLite! {
                   get {
                       if field1Builder_ != nil {
                          builderResult.field1 = field1Builder_.getMessage()
                       }
                       return builderResult.field1
                   }
                   set (value) {
                       builderResult.hasField1 = true
                       builderResult.field1 = value
                   }
              }
              private var field1Builder_:ProtobufUnittest.TestAllTypesLite.Builder! {
                   didSet {
                      builderResult.hasField1 = true
                   }
              }
              public func getField1Builder() -> ProtobufUnittest.TestAllTypesLite.Builder {
                if field1Builder_ == nil {
                   field1Builder_ = ProtobufUnittest.TestAllTypesLite.Builder()
                   builderResult.field1 = field1Builder_.getMessage()
                   if field1 != nil {
                      _ = try! field1Builder_.mergeFrom(other: field1)
                   }
                }
                return field1Builder_
              }
              public func setField1(_ value:ProtobufUnittest.TestAllTypesLite!) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                self.field1 = value
                return self
              }
              public func mergeField1(value:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                if builderResult.hasField1 {
                  builderResult.field1 = try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: builderResult.field1).mergeFrom(other: value).buildPartial()
                } else {
                  builderResult.field1 = value
                }
                builderResult.hasField1 = true
                return self
              }
              public func clearField1() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                field1Builder_ = nil
                builderResult.hasField1 = false
                builderResult.field1 = nil
                return self
              }
              override public var internalGetResult:GeneratedMessage {
                   get {
                      return builderResult
                   }
              }
              public override func clear() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                builderResult = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1()
                return self
              }
              public override func clone() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.builderWithPrototype(prototype: builderResult)
              }
              public override func build() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
                   try checkInitialized()
                   return buildPartial()
              }
              public func buildPartial() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
                let returnMe:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 = builderResult
                return returnMe
              }
              public func mergeFrom(other:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                if other == ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1() {
                 return self
                }
                if other.hasField1 {
                    _ = try mergeField1(value: other.field1)
                }
                _ = try merge(unknownField: other.unknownFields)
                return self
              }
              public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                   return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
              }
              public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder {
                let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
                while (true) {
                  let protobufTag = try codedInputStream.readTag()
                  switch protobufTag {
                  case 0: 
                    self.unknownFields = try unknownFieldsBuilder.build()
                    return self

                  case 90:
                    let subBuilder:ProtobufUnittest.TestAllTypesLite.Builder = ProtobufUnittest.TestAllTypesLite.Builder()
                    if hasField1 {
                     _ = try subBuilder.mergeFrom(other: field1)
                    }
                    try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
                    field1 = subBuilder.buildPartial()

                  default:
                    if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                       unknownFields = try unknownFieldsBuilder.build()
                       return self
                    }
                  }
                }
              }
            }

          }

        //Nested type declaration end



        //Nested type declaration start

          final public class Group2 : GeneratedMessage {
            public fileprivate(set) var field1:ProtobufUnittest.TestAllTypesLite!
            public fileprivate(set) var hasField1:Bool = false
            required public init() {
                 super.init()
            }
            override public func isInitialized() -> Bool {
             return true
            }
            override public func writeTo(codedOutputStream:CodedOutputStream) throws {
              if hasField1 {
                try codedOutputStream.writeMessage(fieldNumber:21, value:field1)
              }
              try unknownFields.writeTo(codedOutputStream:codedOutputStream)
            }
            override public func serializedSize() -> Int32 {
              var serialize_size:Int32 = memoizedSerializedSize
              if serialize_size != -1 {
               return serialize_size
              }

              serialize_size = 0
              if hasField1 {
                  if let varSizefield1 = field1?.computeMessageSize(fieldNumber: 21) {
                      serialize_size += varSizefield1
                  }
              }
              serialize_size += unknownFields.serializedSize()
              memoizedSerializedSize = serialize_size
              return serialize_size
            }
            public class func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
              return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder
            }
            public func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
              return classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder
            }
            public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
              return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder()
            }
            public override func classBuilder() -> ProtocolBuffersMessageBuilder {
              return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder()
            }
            public func toBuilder() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
              return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.builderWithPrototype(prototype: self)
            }
            public class func builderWithPrototype(prototype:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
              return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeFrom(other: prototype)
            }
            override public func getDescription(indent:String) throws -> String {
              var output:String = ""
              if hasField1 {
                output += "\(indent) field1 {\n"
                if let outDescField1 = field1 {
                  output += try outDescField1.getDescription(indent:"\(indent)  ")
                }
                output += "\(indent) }\n"
              }
              output += unknownFields.getDescription(indent: indent)
              return output
            }
            override public var hashValue:Int {
                get {
                    var hashCode:Int = 7
                    if hasField1 {
                        if let hashValuefield1 = field1?.hashValue {
                            hashCode = (hashCode &* 31) &+ hashValuefield1
                        }
                    }
                    hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                    return hashCode
                }
            }


            //Meta information declaration start

            override public class func className() -> String {
                return "ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2"
            }
            override public func className() -> String {
                return "ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2"
            }
            //Meta information declaration end

            final public class Builder : GeneratedMessageBuilder {
              private var builderResult:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2()
              public func getMessage() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
                  return builderResult
              }

              required override public init () {
                 super.init()
              }
              public var hasField1:Bool {
                   get {
                       return builderResult.hasField1
                   }
              }
              public var field1:ProtobufUnittest.TestAllTypesLite! {
                   get {
                       if field1Builder_ != nil {
                          builderResult.field1 = field1Builder_.getMessage()
                       }
                       return builderResult.field1
                   }
                   set (value) {
                       builderResult.hasField1 = true
                       builderResult.field1 = value
                   }
              }
              private var field1Builder_:ProtobufUnittest.TestAllTypesLite.Builder! {
                   didSet {
                      builderResult.hasField1 = true
                   }
              }
              public func getField1Builder() -> ProtobufUnittest.TestAllTypesLite.Builder {
                if field1Builder_ == nil {
                   field1Builder_ = ProtobufUnittest.TestAllTypesLite.Builder()
                   builderResult.field1 = field1Builder_.getMessage()
                   if field1 != nil {
                      _ = try! field1Builder_.mergeFrom(other: field1)
                   }
                }
                return field1Builder_
              }
              public func setField1(_ value:ProtobufUnittest.TestAllTypesLite!) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                self.field1 = value
                return self
              }
              public func mergeField1(value:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                if builderResult.hasField1 {
                  builderResult.field1 = try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: builderResult.field1).mergeFrom(other: value).buildPartial()
                } else {
                  builderResult.field1 = value
                }
                builderResult.hasField1 = true
                return self
              }
              public func clearField1() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                field1Builder_ = nil
                builderResult.hasField1 = false
                builderResult.field1 = nil
                return self
              }
              override public var internalGetResult:GeneratedMessage {
                   get {
                      return builderResult
                   }
              }
              public override func clear() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                builderResult = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2()
                return self
              }
              public override func clone() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.builderWithPrototype(prototype: builderResult)
              }
              public override func build() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
                   try checkInitialized()
                   return buildPartial()
              }
              public func buildPartial() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
                let returnMe:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 = builderResult
                return returnMe
              }
              public func mergeFrom(other:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                if other == ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2() {
                 return self
                }
                if other.hasField1 {
                    _ = try mergeField1(value: other.field1)
                }
                _ = try merge(unknownField: other.unknownFields)
                return self
              }
              public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                   return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
              }
              public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder {
                let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
                while (true) {
                  let protobufTag = try codedInputStream.readTag()
                  switch protobufTag {
                  case 0: 
                    self.unknownFields = try unknownFieldsBuilder.build()
                    return self

                  case 170:
                    let subBuilder:ProtobufUnittest.TestAllTypesLite.Builder = ProtobufUnittest.TestAllTypesLite.Builder()
                    if hasField1 {
                     _ = try subBuilder.mergeFrom(other: field1)
                    }
                    try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
                    field1 = subBuilder.buildPartial()

                  default:
                    if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                       unknownFields = try unknownFieldsBuilder.build()
                       return self
                    }
                  }
                }
              }
            }

          }

        //Nested type declaration end

        public fileprivate(set) var field1:Array<ProtobufUnittest.TestAllTypesLite> = Array<ProtobufUnittest.TestAllTypesLite>()
        public fileprivate(set) var field2:Array<ProtobufUnittest.TestAllTypesLite> = Array<ProtobufUnittest.TestAllTypesLite>()
        public fileprivate(set) var field3:Array<ProtobufUnittest.TestAllTypesLite> = Array<ProtobufUnittest.TestAllTypesLite>()
        public fileprivate(set) var group1:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1> = Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1>()
        public fileprivate(set) var group2:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2> = Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2>()
        public fileprivate(set) var ext1:Array<ProtobufUnittest.TestAllTypesLite> = Array<ProtobufUnittest.TestAllTypesLite>()
        public fileprivate(set) var ext2:Array<ProtobufUnittest.TestAllTypesLite> = Array<ProtobufUnittest.TestAllTypesLite>()
        required public init() {
             super.init()
        }
        override public func isInitialized() -> Bool {
         return true
        }
        override public func writeTo(codedOutputStream:CodedOutputStream) throws {
          for oneElementfield1 in field1 {
              try codedOutputStream.writeMessage(fieldNumber:1, value:oneElementfield1)
          }
          for oneElementfield2 in field2 {
              try codedOutputStream.writeMessage(fieldNumber:2, value:oneElementfield2)
          }
          for oneElementfield3 in field3 {
              try codedOutputStream.writeMessage(fieldNumber:3, value:oneElementfield3)
          }
          for oneElementgroup1 in group1 {
              try codedOutputStream.writeGroup(fieldNumber:10, value:oneElementgroup1)
          }
          for oneElementgroup2 in group2 {
              try codedOutputStream.writeGroup(fieldNumber:20, value:oneElementgroup2)
          }
          for oneElementext1 in ext1 {
              try codedOutputStream.writeMessage(fieldNumber:1000, value:oneElementext1)
          }
          for oneElementext2 in ext2 {
              try codedOutputStream.writeMessage(fieldNumber:1001, value:oneElementext2)
          }
          try unknownFields.writeTo(codedOutputStream:codedOutputStream)
        }
        override public func serializedSize() -> Int32 {
          var serialize_size:Int32 = memoizedSerializedSize
          if serialize_size != -1 {
           return serialize_size
          }

          serialize_size = 0
          for oneElementfield1 in field1 {
              serialize_size += oneElementfield1.computeMessageSize(fieldNumber: 1)
          }
          for oneElementfield2 in field2 {
              serialize_size += oneElementfield2.computeMessageSize(fieldNumber: 2)
          }
          for oneElementfield3 in field3 {
              serialize_size += oneElementfield3.computeMessageSize(fieldNumber: 3)
          }
          for oneElementgroup1 in group1 {
              serialize_size += oneElementgroup1.computeGroupSize(fieldNumber: 10)
          }
          for oneElementgroup2 in group2 {
              serialize_size += oneElementgroup2.computeGroupSize(fieldNumber: 20)
          }
          for oneElementext1 in ext1 {
              serialize_size += oneElementext1.computeMessageSize(fieldNumber: 1000)
          }
          for oneElementext2 in ext2 {
              serialize_size += oneElementext2.computeMessageSize(fieldNumber: 1001)
          }
          serialize_size += unknownFields.serializedSize()
          memoizedSerializedSize = serialize_size
          return serialize_size
        }
        public class func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
          return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder
        }
        public func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
          return classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder
        }
        public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder()
        }
        public override func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder()
        }
        public func toBuilder() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
          return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.builderWithPrototype(prototype: self)
        }
        public class func builderWithPrototype(prototype:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
          return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeFrom(other: prototype)
        }
        override public func getDescription(indent:String) throws -> String {
          var output:String = ""
          var field1ElementIndex:Int = 0
          for oneElementfield1 in field1 {
              output += "\(indent) field1[\(field1ElementIndex)] {\n"
              output += try oneElementfield1.getDescription(indent:"\(indent)  ")
              output += "\(indent)}\n"
              field1ElementIndex += 1
          }
          var field2ElementIndex:Int = 0
          for oneElementfield2 in field2 {
              output += "\(indent) field2[\(field2ElementIndex)] {\n"
              output += try oneElementfield2.getDescription(indent:"\(indent)  ")
              output += "\(indent)}\n"
              field2ElementIndex += 1
          }
          var field3ElementIndex:Int = 0
          for oneElementfield3 in field3 {
              output += "\(indent) field3[\(field3ElementIndex)] {\n"
              output += try oneElementfield3.getDescription(indent:"\(indent)  ")
              output += "\(indent)}\n"
              field3ElementIndex += 1
          }
          var group1ElementIndex:Int = 0
          for oneElementgroup1 in group1 {
              output += "\(indent) group1[\(group1ElementIndex)] {\n"
              output += try oneElementgroup1.getDescription(indent:"\(indent)  ")
              output += "\(indent)}\n"
              group1ElementIndex += 1
          }
          var group2ElementIndex:Int = 0
          for oneElementgroup2 in group2 {
              output += "\(indent) group2[\(group2ElementIndex)] {\n"
              output += try oneElementgroup2.getDescription(indent:"\(indent)  ")
              output += "\(indent)}\n"
              group2ElementIndex += 1
          }
          var ext1ElementIndex:Int = 0
          for oneElementext1 in ext1 {
              output += "\(indent) ext1[\(ext1ElementIndex)] {\n"
              output += try oneElementext1.getDescription(indent:"\(indent)  ")
              output += "\(indent)}\n"
              ext1ElementIndex += 1
          }
          var ext2ElementIndex:Int = 0
          for oneElementext2 in ext2 {
              output += "\(indent) ext2[\(ext2ElementIndex)] {\n"
              output += try oneElementext2.getDescription(indent:"\(indent)  ")
              output += "\(indent)}\n"
              ext2ElementIndex += 1
          }
          output += unknownFields.getDescription(indent: indent)
          return output
        }
        override public var hashValue:Int {
            get {
                var hashCode:Int = 7
                for oneElementfield1 in field1 {
                    hashCode = (hashCode &* 31) &+ oneElementfield1.hashValue
                }
                for oneElementfield2 in field2 {
                    hashCode = (hashCode &* 31) &+ oneElementfield2.hashValue
                }
                for oneElementfield3 in field3 {
                    hashCode = (hashCode &* 31) &+ oneElementfield3.hashValue
                }
                for oneElementgroup1 in group1 {
                    hashCode = (hashCode &* 31) &+ oneElementgroup1.hashValue
                }
                for oneElementgroup2 in group2 {
                    hashCode = (hashCode &* 31) &+ oneElementgroup2.hashValue
                }
                for oneElementext1 in ext1 {
                    hashCode = (hashCode &* 31) &+ oneElementext1.hashValue
                }
                for oneElementext2 in ext2 {
                    hashCode = (hashCode &* 31) &+ oneElementext2.hashValue
                }
                hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                return hashCode
            }
        }


        //Meta information declaration start

        override public class func className() -> String {
            return "ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator"
        }
        override public func className() -> String {
            return "ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator"
        }
        //Meta information declaration end

        final public class Builder : GeneratedMessageBuilder {
          private var builderResult:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator()
          public func getMessage() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
              return builderResult
          }

          required override public init () {
             super.init()
          }
          public var field1:Array<ProtobufUnittest.TestAllTypesLite> {
               get {
                   return builderResult.field1
               }
               set (value) {
                   builderResult.field1 = value
               }
          }
          public func setField1(_ value:Array<ProtobufUnittest.TestAllTypesLite>) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            self.field1 = value
            return self
          }
          public func clearField1() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult.field1.removeAll(keepingCapacity: false)
            return self
          }
          public var field2:Array<ProtobufUnittest.TestAllTypesLite> {
               get {
                   return builderResult.field2
               }
               set (value) {
                   builderResult.field2 = value
               }
          }
          public func setField2(_ value:Array<ProtobufUnittest.TestAllTypesLite>) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            self.field2 = value
            return self
          }
          public func clearField2() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult.field2.removeAll(keepingCapacity: false)
            return self
          }
          public var field3:Array<ProtobufUnittest.TestAllTypesLite> {
               get {
                   return builderResult.field3
               }
               set (value) {
                   builderResult.field3 = value
               }
          }
          public func setField3(_ value:Array<ProtobufUnittest.TestAllTypesLite>) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            self.field3 = value
            return self
          }
          public func clearField3() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult.field3.removeAll(keepingCapacity: false)
            return self
          }
          public var group1:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1> {
               get {
                   return builderResult.group1
               }
               set (value) {
                   builderResult.group1 = value
               }
          }
          public func setGroup1(_ value:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1>) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            self.group1 = value
            return self
          }
          public func clearGroup1() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult.group1.removeAll(keepingCapacity: false)
            return self
          }
          public var group2:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2> {
               get {
                   return builderResult.group2
               }
               set (value) {
                   builderResult.group2 = value
               }
          }
          public func setGroup2(_ value:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2>) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            self.group2 = value
            return self
          }
          public func clearGroup2() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult.group2.removeAll(keepingCapacity: false)
            return self
          }
          public var ext1:Array<ProtobufUnittest.TestAllTypesLite> {
               get {
                   return builderResult.ext1
               }
               set (value) {
                   builderResult.ext1 = value
               }
          }
          public func setExt1(_ value:Array<ProtobufUnittest.TestAllTypesLite>) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            self.ext1 = value
            return self
          }
          public func clearExt1() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult.ext1.removeAll(keepingCapacity: false)
            return self
          }
          public var ext2:Array<ProtobufUnittest.TestAllTypesLite> {
               get {
                   return builderResult.ext2
               }
               set (value) {
                   builderResult.ext2 = value
               }
          }
          public func setExt2(_ value:Array<ProtobufUnittest.TestAllTypesLite>) -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            self.ext2 = value
            return self
          }
          public func clearExt2() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult.ext2.removeAll(keepingCapacity: false)
            return self
          }
          override public var internalGetResult:GeneratedMessage {
               get {
                  return builderResult
               }
          }
          public override func clear() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            builderResult = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator()
            return self
          }
          public override func clone() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.builderWithPrototype(prototype: builderResult)
          }
          public override func build() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
               try checkInitialized()
               return buildPartial()
          }
          public func buildPartial() -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
            let returnMe:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator = builderResult
            return returnMe
          }
          public func mergeFrom(other:ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            if other == ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator() {
             return self
            }
            if !other.field1.isEmpty  {
               builderResult.field1 += other.field1
            }
            if !other.field2.isEmpty  {
               builderResult.field2 += other.field2
            }
            if !other.field3.isEmpty  {
               builderResult.field3 += other.field3
            }
            if !other.group1.isEmpty  {
               builderResult.group1 += other.group1
            }
            if !other.group2.isEmpty  {
               builderResult.group2 += other.group2
            }
            if !other.ext1.isEmpty  {
               builderResult.ext1 += other.ext1
            }
            if !other.ext2.isEmpty  {
               builderResult.ext2 += other.ext2
            }
            _ = try merge(unknownField: other.unknownFields)
            return self
          }
          public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
               return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
          }
          public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder {
            let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
            while (true) {
              let protobufTag = try codedInputStream.readTag()
              switch protobufTag {
              case 0: 
                self.unknownFields = try unknownFieldsBuilder.build()
                return self

              case 10:
                let subBuilder = ProtobufUnittest.TestAllTypesLite.Builder()
                try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
                field1.append(subBuilder.buildPartial())

              case 18:
                let subBuilder = ProtobufUnittest.TestAllTypesLite.Builder()
                try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
                field2.append(subBuilder.buildPartial())

              case 26:
                let subBuilder = ProtobufUnittest.TestAllTypesLite.Builder()
                try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
                field3.append(subBuilder.buildPartial())

              case 83:
                let subBuilder = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder()
                try codedInputStream.readGroup(fieldNumber:10,builder:subBuilder,extensionRegistry:extensionRegistry)
                group1.append(subBuilder.buildPartial())

              case 163:
                let subBuilder = ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder()
                try codedInputStream.readGroup(fieldNumber:20,builder:subBuilder,extensionRegistry:extensionRegistry)
                group2.append(subBuilder.buildPartial())

              case 8002:
                let subBuilder = ProtobufUnittest.TestAllTypesLite.Builder()
                try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
                ext1.append(subBuilder.buildPartial())

              case 8010:
                let subBuilder = ProtobufUnittest.TestAllTypesLite.Builder()
                try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
                ext2.append(subBuilder.buildPartial())

              default:
                if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                   unknownFields = try unknownFieldsBuilder.build()
                   return self
                }
              }
            }
          }
        }

      }

    //Nested type declaration end



    //Nested type declaration start

      final public class OptionalGroup : GeneratedMessage {
        public fileprivate(set) var optionalGroupAllTypes:ProtobufUnittest.TestAllTypesLite!
        public fileprivate(set) var hasOptionalGroupAllTypes:Bool = false
        required public init() {
             super.init()
        }
        override public func isInitialized() -> Bool {
         return true
        }
        override public func writeTo(codedOutputStream:CodedOutputStream) throws {
          if hasOptionalGroupAllTypes {
            try codedOutputStream.writeMessage(fieldNumber:11, value:optionalGroupAllTypes)
          }
          try unknownFields.writeTo(codedOutputStream:codedOutputStream)
        }
        override public func serializedSize() -> Int32 {
          var serialize_size:Int32 = memoizedSerializedSize
          if serialize_size != -1 {
           return serialize_size
          }

          serialize_size = 0
          if hasOptionalGroupAllTypes {
              if let varSizeoptionalGroupAllTypes = optionalGroupAllTypes?.computeMessageSize(fieldNumber: 11) {
                  serialize_size += varSizeoptionalGroupAllTypes
              }
          }
          serialize_size += unknownFields.serializedSize()
          memoizedSerializedSize = serialize_size
          return serialize_size
        }
        public class func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
          return ProtobufUnittest.TestParsingMergeLite.OptionalGroup.classBuilder() as! ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder
        }
        public func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
          return classBuilder() as! ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder
        }
        public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder()
        }
        public override func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder()
        }
        public func toBuilder() throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
          return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.builderWithPrototype(prototype: self)
        }
        public class func builderWithPrototype(prototype:ProtobufUnittest.TestParsingMergeLite.OptionalGroup) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
          return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeFrom(other: prototype)
        }
        override public func getDescription(indent:String) throws -> String {
          var output:String = ""
          if hasOptionalGroupAllTypes {
            output += "\(indent) optionalGroupAllTypes {\n"
            if let outDescOptionalGroupAllTypes = optionalGroupAllTypes {
              output += try outDescOptionalGroupAllTypes.getDescription(indent:"\(indent)  ")
            }
            output += "\(indent) }\n"
          }
          output += unknownFields.getDescription(indent: indent)
          return output
        }
        override public var hashValue:Int {
            get {
                var hashCode:Int = 7
                if hasOptionalGroupAllTypes {
                    if let hashValueoptionalGroupAllTypes = optionalGroupAllTypes?.hashValue {
                        hashCode = (hashCode &* 31) &+ hashValueoptionalGroupAllTypes
                    }
                }
                hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                return hashCode
            }
        }


        //Meta information declaration start

        override public class func className() -> String {
            return "ProtobufUnittest.TestParsingMergeLite.OptionalGroup"
        }
        override public func className() -> String {
            return "ProtobufUnittest.TestParsingMergeLite.OptionalGroup"
        }
        //Meta information declaration end

        final public class Builder : GeneratedMessageBuilder {
          private var builderResult:ProtobufUnittest.TestParsingMergeLite.OptionalGroup = ProtobufUnittest.TestParsingMergeLite.OptionalGroup()
          public func getMessage() -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
              return builderResult
          }

          required override public init () {
             super.init()
          }
          public var hasOptionalGroupAllTypes:Bool {
               get {
                   return builderResult.hasOptionalGroupAllTypes
               }
          }
          public var optionalGroupAllTypes:ProtobufUnittest.TestAllTypesLite! {
               get {
                   if optionalGroupAllTypesBuilder_ != nil {
                      builderResult.optionalGroupAllTypes = optionalGroupAllTypesBuilder_.getMessage()
                   }
                   return builderResult.optionalGroupAllTypes
               }
               set (value) {
                   builderResult.hasOptionalGroupAllTypes = true
                   builderResult.optionalGroupAllTypes = value
               }
          }
          private var optionalGroupAllTypesBuilder_:ProtobufUnittest.TestAllTypesLite.Builder! {
               didSet {
                  builderResult.hasOptionalGroupAllTypes = true
               }
          }
          public func getOptionalGroupAllTypesBuilder() -> ProtobufUnittest.TestAllTypesLite.Builder {
            if optionalGroupAllTypesBuilder_ == nil {
               optionalGroupAllTypesBuilder_ = ProtobufUnittest.TestAllTypesLite.Builder()
               builderResult.optionalGroupAllTypes = optionalGroupAllTypesBuilder_.getMessage()
               if optionalGroupAllTypes != nil {
                  _ = try! optionalGroupAllTypesBuilder_.mergeFrom(other: optionalGroupAllTypes)
               }
            }
            return optionalGroupAllTypesBuilder_
          }
          public func setOptionalGroupAllTypes(_ value:ProtobufUnittest.TestAllTypesLite!) -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
            self.optionalGroupAllTypes = value
            return self
          }
          public func mergeOptionalGroupAllTypes(value:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
            if builderResult.hasOptionalGroupAllTypes {
              builderResult.optionalGroupAllTypes = try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: builderResult.optionalGroupAllTypes).mergeFrom(other: value).buildPartial()
            } else {
              builderResult.optionalGroupAllTypes = value
            }
            builderResult.hasOptionalGroupAllTypes = true
            return self
          }
          public func clearOptionalGroupAllTypes() -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
            optionalGroupAllTypesBuilder_ = nil
            builderResult.hasOptionalGroupAllTypes = false
            builderResult.optionalGroupAllTypes = nil
            return self
          }
          override public var internalGetResult:GeneratedMessage {
               get {
                  return builderResult
               }
          }
          public override func clear() -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
            builderResult = ProtobufUnittest.TestParsingMergeLite.OptionalGroup()
            return self
          }
          public override func clone() throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
            return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.builderWithPrototype(prototype: builderResult)
          }
          public override func build() throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
               try checkInitialized()
               return buildPartial()
          }
          public func buildPartial() -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
            let returnMe:ProtobufUnittest.TestParsingMergeLite.OptionalGroup = builderResult
            return returnMe
          }
          public func mergeFrom(other:ProtobufUnittest.TestParsingMergeLite.OptionalGroup) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
            if other == ProtobufUnittest.TestParsingMergeLite.OptionalGroup() {
             return self
            }
            if other.hasOptionalGroupAllTypes {
                _ = try mergeOptionalGroupAllTypes(value: other.optionalGroupAllTypes)
            }
            _ = try merge(unknownField: other.unknownFields)
            return self
          }
          public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
               return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
          }
          public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
            let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
            while (true) {
              let protobufTag = try codedInputStream.readTag()
              switch protobufTag {
              case 0: 
                self.unknownFields = try unknownFieldsBuilder.build()
                return self

              case 90:
                let subBuilder:ProtobufUnittest.TestAllTypesLite.Builder = ProtobufUnittest.TestAllTypesLite.Builder()
                if hasOptionalGroupAllTypes {
                 _ = try subBuilder.mergeFrom(other: optionalGroupAllTypes)
                }
                try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
                optionalGroupAllTypes = subBuilder.buildPartial()

              default:
                if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                   unknownFields = try unknownFieldsBuilder.build()
                   return self
                }
              }
            }
          }
        }

      }

    //Nested type declaration end



    //Nested type declaration start

      final public class RepeatedGroup : GeneratedMessage {
        public fileprivate(set) var repeatedGroupAllTypes:ProtobufUnittest.TestAllTypesLite!
        public fileprivate(set) var hasRepeatedGroupAllTypes:Bool = false
        required public init() {
             super.init()
        }
        override public func isInitialized() -> Bool {
         return true
        }
        override public func writeTo(codedOutputStream:CodedOutputStream) throws {
          if hasRepeatedGroupAllTypes {
            try codedOutputStream.writeMessage(fieldNumber:21, value:repeatedGroupAllTypes)
          }
          try unknownFields.writeTo(codedOutputStream:codedOutputStream)
        }
        override public func serializedSize() -> Int32 {
          var serialize_size:Int32 = memoizedSerializedSize
          if serialize_size != -1 {
           return serialize_size
          }

          serialize_size = 0
          if hasRepeatedGroupAllTypes {
              if let varSizerepeatedGroupAllTypes = repeatedGroupAllTypes?.computeMessageSize(fieldNumber: 21) {
                  serialize_size += varSizerepeatedGroupAllTypes
              }
          }
          serialize_size += unknownFields.serializedSize()
          memoizedSerializedSize = serialize_size
          return serialize_size
        }
        public class func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
          return ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder
        }
        public func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
          return classBuilder() as! ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder
        }
        public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder()
        }
        public override func classBuilder() -> ProtocolBuffersMessageBuilder {
          return ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder()
        }
        public func toBuilder() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
          return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.builderWithPrototype(prototype: self)
        }
        public class func builderWithPrototype(prototype:ProtobufUnittest.TestParsingMergeLite.RepeatedGroup) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
          return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeFrom(other: prototype)
        }
        override public func getDescription(indent:String) throws -> String {
          var output:String = ""
          if hasRepeatedGroupAllTypes {
            output += "\(indent) repeatedGroupAllTypes {\n"
            if let outDescRepeatedGroupAllTypes = repeatedGroupAllTypes {
              output += try outDescRepeatedGroupAllTypes.getDescription(indent:"\(indent)  ")
            }
            output += "\(indent) }\n"
          }
          output += unknownFields.getDescription(indent: indent)
          return output
        }
        override public var hashValue:Int {
            get {
                var hashCode:Int = 7
                if hasRepeatedGroupAllTypes {
                    if let hashValuerepeatedGroupAllTypes = repeatedGroupAllTypes?.hashValue {
                        hashCode = (hashCode &* 31) &+ hashValuerepeatedGroupAllTypes
                    }
                }
                hashCode = (hashCode &* 31) &+  unknownFields.hashValue
                return hashCode
            }
        }


        //Meta information declaration start

        override public class func className() -> String {
            return "ProtobufUnittest.TestParsingMergeLite.RepeatedGroup"
        }
        override public func className() -> String {
            return "ProtobufUnittest.TestParsingMergeLite.RepeatedGroup"
        }
        //Meta information declaration end

        final public class Builder : GeneratedMessageBuilder {
          private var builderResult:ProtobufUnittest.TestParsingMergeLite.RepeatedGroup = ProtobufUnittest.TestParsingMergeLite.RepeatedGroup()
          public func getMessage() -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
              return builderResult
          }

          required override public init () {
             super.init()
          }
          public var hasRepeatedGroupAllTypes:Bool {
               get {
                   return builderResult.hasRepeatedGroupAllTypes
               }
          }
          public var repeatedGroupAllTypes:ProtobufUnittest.TestAllTypesLite! {
               get {
                   if repeatedGroupAllTypesBuilder_ != nil {
                      builderResult.repeatedGroupAllTypes = repeatedGroupAllTypesBuilder_.getMessage()
                   }
                   return builderResult.repeatedGroupAllTypes
               }
               set (value) {
                   builderResult.hasRepeatedGroupAllTypes = true
                   builderResult.repeatedGroupAllTypes = value
               }
          }
          private var repeatedGroupAllTypesBuilder_:ProtobufUnittest.TestAllTypesLite.Builder! {
               didSet {
                  builderResult.hasRepeatedGroupAllTypes = true
               }
          }
          public func getRepeatedGroupAllTypesBuilder() -> ProtobufUnittest.TestAllTypesLite.Builder {
            if repeatedGroupAllTypesBuilder_ == nil {
               repeatedGroupAllTypesBuilder_ = ProtobufUnittest.TestAllTypesLite.Builder()
               builderResult.repeatedGroupAllTypes = repeatedGroupAllTypesBuilder_.getMessage()
               if repeatedGroupAllTypes != nil {
                  _ = try! repeatedGroupAllTypesBuilder_.mergeFrom(other: repeatedGroupAllTypes)
               }
            }
            return repeatedGroupAllTypesBuilder_
          }
          public func setRepeatedGroupAllTypes(_ value:ProtobufUnittest.TestAllTypesLite!) -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
            self.repeatedGroupAllTypes = value
            return self
          }
          public func mergeRepeatedGroupAllTypes(value:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
            if builderResult.hasRepeatedGroupAllTypes {
              builderResult.repeatedGroupAllTypes = try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: builderResult.repeatedGroupAllTypes).mergeFrom(other: value).buildPartial()
            } else {
              builderResult.repeatedGroupAllTypes = value
            }
            builderResult.hasRepeatedGroupAllTypes = true
            return self
          }
          public func clearRepeatedGroupAllTypes() -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
            repeatedGroupAllTypesBuilder_ = nil
            builderResult.hasRepeatedGroupAllTypes = false
            builderResult.repeatedGroupAllTypes = nil
            return self
          }
          override public var internalGetResult:GeneratedMessage {
               get {
                  return builderResult
               }
          }
          public override func clear() -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
            builderResult = ProtobufUnittest.TestParsingMergeLite.RepeatedGroup()
            return self
          }
          public override func clone() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
            return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.builderWithPrototype(prototype: builderResult)
          }
          public override func build() throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
               try checkInitialized()
               return buildPartial()
          }
          public func buildPartial() -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
            let returnMe:ProtobufUnittest.TestParsingMergeLite.RepeatedGroup = builderResult
            return returnMe
          }
          public func mergeFrom(other:ProtobufUnittest.TestParsingMergeLite.RepeatedGroup) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
            if other == ProtobufUnittest.TestParsingMergeLite.RepeatedGroup() {
             return self
            }
            if other.hasRepeatedGroupAllTypes {
                _ = try mergeRepeatedGroupAllTypes(value: other.repeatedGroupAllTypes)
            }
            _ = try merge(unknownField: other.unknownFields)
            return self
          }
          public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
               return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
          }
          public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder {
            let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
            while (true) {
              let protobufTag = try codedInputStream.readTag()
              switch protobufTag {
              case 0: 
                self.unknownFields = try unknownFieldsBuilder.build()
                return self

              case 170:
                let subBuilder:ProtobufUnittest.TestAllTypesLite.Builder = ProtobufUnittest.TestAllTypesLite.Builder()
                if hasRepeatedGroupAllTypes {
                 _ = try subBuilder.mergeFrom(other: repeatedGroupAllTypes)
                }
                try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
                repeatedGroupAllTypes = subBuilder.buildPartial()

              default:
                if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
                   unknownFields = try unknownFieldsBuilder.build()
                   return self
                }
              }
            }
          }
        }

      }

    //Nested type declaration end

    public fileprivate(set) var requiredAllTypes:ProtobufUnittest.TestAllTypesLite!
    public fileprivate(set) var hasRequiredAllTypes:Bool = false
    public fileprivate(set) var optionalAllTypes:ProtobufUnittest.TestAllTypesLite!
    public fileprivate(set) var hasOptionalAllTypes:Bool = false
    public fileprivate(set) var repeatedAllTypes:Array<ProtobufUnittest.TestAllTypesLite> = Array<ProtobufUnittest.TestAllTypesLite>()
    public fileprivate(set) var optionalGroup:ProtobufUnittest.TestParsingMergeLite.OptionalGroup!
    public fileprivate(set) var hasOptionalGroup:Bool = false
    public fileprivate(set) var repeatedGroup:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedGroup> = Array<ProtobufUnittest.TestParsingMergeLite.RepeatedGroup>()
    public class func optionalExt() -> ConcreateExtensionField {
         return TestParsingMergeLiteoptionalExt
    }
    public class func repeatedExt() -> ConcreateExtensionField {
         return TestParsingMergeLiterepeatedExt
    }
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
      if !hasRequiredAllTypes {
        return false
      }
      if !extensionsAreInitialized() {
       return false
      }
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      if hasRequiredAllTypes {
        try codedOutputStream.writeMessage(fieldNumber:1, value:requiredAllTypes)
      }
      if hasOptionalAllTypes {
        try codedOutputStream.writeMessage(fieldNumber:2, value:optionalAllTypes)
      }
      for oneElementrepeatedAllTypes in repeatedAllTypes {
          try codedOutputStream.writeMessage(fieldNumber:3, value:oneElementrepeatedAllTypes)
      }
      if hasOptionalGroup {
        try codedOutputStream.writeGroup(fieldNumber:10, value:optionalGroup)
      }
      for oneElementrepeatedGroup in repeatedGroup {
          try codedOutputStream.writeGroup(fieldNumber:20, value:oneElementrepeatedGroup)
      }
      try writeExtensionsTo(codedOutputStream: codedOutputStream, startInclusive:Int32(1000), endExclusive:Int32(536870912))
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasRequiredAllTypes {
          if let varSizerequiredAllTypes = requiredAllTypes?.computeMessageSize(fieldNumber: 1) {
              serialize_size += varSizerequiredAllTypes
          }
      }
      if hasOptionalAllTypes {
          if let varSizeoptionalAllTypes = optionalAllTypes?.computeMessageSize(fieldNumber: 2) {
              serialize_size += varSizeoptionalAllTypes
          }
      }
      for oneElementrepeatedAllTypes in repeatedAllTypes {
          serialize_size += oneElementrepeatedAllTypes.computeMessageSize(fieldNumber: 3)
      }
      if hasOptionalGroup {
          if let varSizeoptionalGroup = optionalGroup?.computeGroupSize(fieldNumber: 10) {
              serialize_size += varSizeoptionalGroup
          }
      }
      for oneElementrepeatedGroup in repeatedGroup {
          serialize_size += oneElementrepeatedGroup.computeGroupSize(fieldNumber: 20)
      }
      serialize_size += extensionsSerializedSize()
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.Builder {
      return ProtobufUnittest.TestParsingMergeLite.classBuilder() as! ProtobufUnittest.TestParsingMergeLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestParsingMergeLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestParsingMergeLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestParsingMergeLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestParsingMergeLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
      return try ProtobufUnittest.TestParsingMergeLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestParsingMergeLite) throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
      return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      if hasRequiredAllTypes {
        output += "\(indent) requiredAllTypes {\n"
        if let outDescRequiredAllTypes = requiredAllTypes {
          output += try outDescRequiredAllTypes.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if hasOptionalAllTypes {
        output += "\(indent) optionalAllTypes {\n"
        if let outDescOptionalAllTypes = optionalAllTypes {
          output += try outDescOptionalAllTypes.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      var repeatedAllTypesElementIndex:Int = 0
      for oneElementrepeatedAllTypes in repeatedAllTypes {
          output += "\(indent) repeatedAllTypes[\(repeatedAllTypesElementIndex)] {\n"
          output += try oneElementrepeatedAllTypes.getDescription(indent:"\(indent)  ")
          output += "\(indent)}\n"
          repeatedAllTypesElementIndex += 1
      }
      if hasOptionalGroup {
        output += "\(indent) optionalGroup {\n"
        if let outDescOptionalGroup = optionalGroup {
          output += try outDescOptionalGroup.getDescription(indent:"\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      var repeatedGroupElementIndex:Int = 0
      for oneElementrepeatedGroup in repeatedGroup {
          output += "\(indent) repeatedGroup[\(repeatedGroupElementIndex)] {\n"
          output += try oneElementrepeatedGroup.getDescription(indent:"\(indent)  ")
          output += "\(indent)}\n"
          repeatedGroupElementIndex += 1
      }
      output += try getExtensionDescription(startInclusive: Int32(1000), endExclusive:Int32(536870912), indent:indent)
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasRequiredAllTypes {
                if let hashValuerequiredAllTypes = requiredAllTypes?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValuerequiredAllTypes
                }
            }
            if hasOptionalAllTypes {
                if let hashValueoptionalAllTypes = optionalAllTypes?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalAllTypes
                }
            }
            for oneElementrepeatedAllTypes in repeatedAllTypes {
                hashCode = (hashCode &* 31) &+ oneElementrepeatedAllTypes.hashValue
            }
            if hasOptionalGroup {
                if let hashValueoptionalGroup = optionalGroup?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueoptionalGroup
                }
            }
            for oneElementrepeatedGroup in repeatedGroup {
                hashCode = (hashCode &* 31) &+ oneElementrepeatedGroup.hashValue
            }
            hashCode = (hashCode &* 31) &+ Int(hashExtensionsFrom(startInclusive: Int32(1000), endExclusive:Int32(536870912)))
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestParsingMergeLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestParsingMergeLite"
    }
    //Meta information declaration end

    final public class Builder : ExtendableMessageBuilder {
      private var builderResult:ProtobufUnittest.TestParsingMergeLite = ProtobufUnittest.TestParsingMergeLite()
      public func getMessage() -> ProtobufUnittest.TestParsingMergeLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasRequiredAllTypes:Bool {
           get {
               return builderResult.hasRequiredAllTypes
           }
      }
      public var requiredAllTypes:ProtobufUnittest.TestAllTypesLite! {
           get {
               if requiredAllTypesBuilder_ != nil {
                  builderResult.requiredAllTypes = requiredAllTypesBuilder_.getMessage()
               }
               return builderResult.requiredAllTypes
           }
           set (value) {
               builderResult.hasRequiredAllTypes = true
               builderResult.requiredAllTypes = value
           }
      }
      private var requiredAllTypesBuilder_:ProtobufUnittest.TestAllTypesLite.Builder! {
           didSet {
              builderResult.hasRequiredAllTypes = true
           }
      }
      public func getRequiredAllTypesBuilder() -> ProtobufUnittest.TestAllTypesLite.Builder {
        if requiredAllTypesBuilder_ == nil {
           requiredAllTypesBuilder_ = ProtobufUnittest.TestAllTypesLite.Builder()
           builderResult.requiredAllTypes = requiredAllTypesBuilder_.getMessage()
           if requiredAllTypes != nil {
              _ = try! requiredAllTypesBuilder_.mergeFrom(other: requiredAllTypes)
           }
        }
        return requiredAllTypesBuilder_
      }
      public func setRequiredAllTypes(_ value:ProtobufUnittest.TestAllTypesLite!) -> ProtobufUnittest.TestParsingMergeLite.Builder {
        self.requiredAllTypes = value
        return self
      }
      public func mergeRequiredAllTypes(value:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
        if builderResult.hasRequiredAllTypes {
          builderResult.requiredAllTypes = try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: builderResult.requiredAllTypes).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.requiredAllTypes = value
        }
        builderResult.hasRequiredAllTypes = true
        return self
      }
      public func clearRequiredAllTypes() -> ProtobufUnittest.TestParsingMergeLite.Builder {
        requiredAllTypesBuilder_ = nil
        builderResult.hasRequiredAllTypes = false
        builderResult.requiredAllTypes = nil
        return self
      }
      public var hasOptionalAllTypes:Bool {
           get {
               return builderResult.hasOptionalAllTypes
           }
      }
      public var optionalAllTypes:ProtobufUnittest.TestAllTypesLite! {
           get {
               if optionalAllTypesBuilder_ != nil {
                  builderResult.optionalAllTypes = optionalAllTypesBuilder_.getMessage()
               }
               return builderResult.optionalAllTypes
           }
           set (value) {
               builderResult.hasOptionalAllTypes = true
               builderResult.optionalAllTypes = value
           }
      }
      private var optionalAllTypesBuilder_:ProtobufUnittest.TestAllTypesLite.Builder! {
           didSet {
              builderResult.hasOptionalAllTypes = true
           }
      }
      public func getOptionalAllTypesBuilder() -> ProtobufUnittest.TestAllTypesLite.Builder {
        if optionalAllTypesBuilder_ == nil {
           optionalAllTypesBuilder_ = ProtobufUnittest.TestAllTypesLite.Builder()
           builderResult.optionalAllTypes = optionalAllTypesBuilder_.getMessage()
           if optionalAllTypes != nil {
              _ = try! optionalAllTypesBuilder_.mergeFrom(other: optionalAllTypes)
           }
        }
        return optionalAllTypesBuilder_
      }
      public func setOptionalAllTypes(_ value:ProtobufUnittest.TestAllTypesLite!) -> ProtobufUnittest.TestParsingMergeLite.Builder {
        self.optionalAllTypes = value
        return self
      }
      public func mergeOptionalAllTypes(value:ProtobufUnittest.TestAllTypesLite) throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
        if builderResult.hasOptionalAllTypes {
          builderResult.optionalAllTypes = try ProtobufUnittest.TestAllTypesLite.builderWithPrototype(prototype: builderResult.optionalAllTypes).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalAllTypes = value
        }
        builderResult.hasOptionalAllTypes = true
        return self
      }
      public func clearOptionalAllTypes() -> ProtobufUnittest.TestParsingMergeLite.Builder {
        optionalAllTypesBuilder_ = nil
        builderResult.hasOptionalAllTypes = false
        builderResult.optionalAllTypes = nil
        return self
      }
      public var repeatedAllTypes:Array<ProtobufUnittest.TestAllTypesLite> {
           get {
               return builderResult.repeatedAllTypes
           }
           set (value) {
               builderResult.repeatedAllTypes = value
           }
      }
      public func setRepeatedAllTypes(_ value:Array<ProtobufUnittest.TestAllTypesLite>) -> ProtobufUnittest.TestParsingMergeLite.Builder {
        self.repeatedAllTypes = value
        return self
      }
      public func clearRepeatedAllTypes() -> ProtobufUnittest.TestParsingMergeLite.Builder {
        builderResult.repeatedAllTypes.removeAll(keepingCapacity: false)
        return self
      }
      public var hasOptionalGroup:Bool {
           get {
               return builderResult.hasOptionalGroup
           }
      }
      public var optionalGroup:ProtobufUnittest.TestParsingMergeLite.OptionalGroup! {
           get {
               if optionalGroupBuilder_ != nil {
                  builderResult.optionalGroup = optionalGroupBuilder_.getMessage()
               }
               return builderResult.optionalGroup
           }
           set (value) {
               builderResult.hasOptionalGroup = true
               builderResult.optionalGroup = value
           }
      }
      private var optionalGroupBuilder_:ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder! {
           didSet {
              builderResult.hasOptionalGroup = true
           }
      }
      public func getOptionalGroupBuilder() -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder {
        if optionalGroupBuilder_ == nil {
           optionalGroupBuilder_ = ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder()
           builderResult.optionalGroup = optionalGroupBuilder_.getMessage()
           if optionalGroup != nil {
              _ = try! optionalGroupBuilder_.mergeFrom(other: optionalGroup)
           }
        }
        return optionalGroupBuilder_
      }
      public func setOptionalGroup(_ value:ProtobufUnittest.TestParsingMergeLite.OptionalGroup!) -> ProtobufUnittest.TestParsingMergeLite.Builder {
        self.optionalGroup = value
        return self
      }
      public func mergeOptionalGroup(value:ProtobufUnittest.TestParsingMergeLite.OptionalGroup) throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
        if builderResult.hasOptionalGroup {
          builderResult.optionalGroup = try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.builderWithPrototype(prototype: builderResult.optionalGroup).mergeFrom(other: value).buildPartial()
        } else {
          builderResult.optionalGroup = value
        }
        builderResult.hasOptionalGroup = true
        return self
      }
      public func clearOptionalGroup() -> ProtobufUnittest.TestParsingMergeLite.Builder {
        optionalGroupBuilder_ = nil
        builderResult.hasOptionalGroup = false
        builderResult.optionalGroup = nil
        return self
      }
      public var repeatedGroup:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedGroup> {
           get {
               return builderResult.repeatedGroup
           }
           set (value) {
               builderResult.repeatedGroup = value
           }
      }
      public func setRepeatedGroup(_ value:Array<ProtobufUnittest.TestParsingMergeLite.RepeatedGroup>) -> ProtobufUnittest.TestParsingMergeLite.Builder {
        self.repeatedGroup = value
        return self
      }
      public func clearRepeatedGroup() -> ProtobufUnittest.TestParsingMergeLite.Builder {
        builderResult.repeatedGroup.removeAll(keepingCapacity: false)
        return self
      }
      override public var internalGetResult:ExtendableMessage {
           get {
               return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestParsingMergeLite.Builder {
        builderResult = ProtobufUnittest.TestParsingMergeLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
        return try ProtobufUnittest.TestParsingMergeLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestParsingMergeLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestParsingMergeLite {
        let returnMe:ProtobufUnittest.TestParsingMergeLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestParsingMergeLite) throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
        if other == ProtobufUnittest.TestParsingMergeLite() {
         return self
        }
        if other.hasRequiredAllTypes {
            _ = try mergeRequiredAllTypes(value: other.requiredAllTypes)
        }
        if other.hasOptionalAllTypes {
            _ = try mergeOptionalAllTypes(value: other.optionalAllTypes)
        }
        if !other.repeatedAllTypes.isEmpty  {
           builderResult.repeatedAllTypes += other.repeatedAllTypes
        }
        if other.hasOptionalGroup {
            _ = try mergeOptionalGroup(value: other.optionalGroup)
        }
        if !other.repeatedGroup.isEmpty  {
           builderResult.repeatedGroup += other.repeatedGroup
        }
        _ = try mergeExtensionFields(other: other)
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            let subBuilder:ProtobufUnittest.TestAllTypesLite.Builder = ProtobufUnittest.TestAllTypesLite.Builder()
            if hasRequiredAllTypes {
             _ = try subBuilder.mergeFrom(other: requiredAllTypes)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            requiredAllTypes = subBuilder.buildPartial()

          case 18:
            let subBuilder:ProtobufUnittest.TestAllTypesLite.Builder = ProtobufUnittest.TestAllTypesLite.Builder()
            if hasOptionalAllTypes {
             _ = try subBuilder.mergeFrom(other: optionalAllTypes)
            }
            try codedInputStream.readMessage(builder: subBuilder, extensionRegistry:extensionRegistry)
            optionalAllTypes = subBuilder.buildPartial()

          case 26:
            let subBuilder = ProtobufUnittest.TestAllTypesLite.Builder()
            try codedInputStream.readMessage(builder: subBuilder,extensionRegistry:extensionRegistry)
            repeatedAllTypes.append(subBuilder.buildPartial())

          case 83:
            let subBuilder:ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder = ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder()
            if hasOptionalGroup {
             _ = try subBuilder.mergeFrom(other: optionalGroup)
            }
            try codedInputStream.readGroup(fieldNumber:10, builder:subBuilder, extensionRegistry:extensionRegistry)
            optionalGroup = subBuilder.buildPartial()

          case 163:
            let subBuilder = ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder()
            try codedInputStream.readGroup(fieldNumber:20,builder:subBuilder,extensionRegistry:extensionRegistry)
            repeatedGroup.append(subBuilder.buildPartial())

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  // TestEmptyMessageLite is used to test unknown fields support in lite mode.
  final public class TestEmptyMessageLite : GeneratedMessage {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestEmptyMessageLite.Builder {
      return ProtobufUnittest.TestEmptyMessageLite.classBuilder() as! ProtobufUnittest.TestEmptyMessageLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestEmptyMessageLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestEmptyMessageLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestEmptyMessageLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestEmptyMessageLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestEmptyMessageLite.Builder {
      return try ProtobufUnittest.TestEmptyMessageLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestEmptyMessageLite) throws -> ProtobufUnittest.TestEmptyMessageLite.Builder {
      return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestEmptyMessageLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestEmptyMessageLite"
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:ProtobufUnittest.TestEmptyMessageLite = ProtobufUnittest.TestEmptyMessageLite()
      public func getMessage() -> ProtobufUnittest.TestEmptyMessageLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestEmptyMessageLite.Builder {
        builderResult = ProtobufUnittest.TestEmptyMessageLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestEmptyMessageLite.Builder {
        return try ProtobufUnittest.TestEmptyMessageLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestEmptyMessageLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestEmptyMessageLite {
        let returnMe:ProtobufUnittest.TestEmptyMessageLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestEmptyMessageLite) throws -> ProtobufUnittest.TestEmptyMessageLite.Builder {
        if other == ProtobufUnittest.TestEmptyMessageLite() {
         return self
        }
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestEmptyMessageLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

  // Like above, but declare all field numbers as potential extensions.  No
  // actual extensions should ever be defined for this type.
  final public class TestEmptyMessageWithExtensionsLite : ExtendableMessage {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
      if !extensionsAreInitialized() {
       return false
      }
     return true
    }
    override public func writeTo(codedOutputStream:CodedOutputStream) throws {
      try writeExtensionsTo(codedOutputStream: codedOutputStream, startInclusive:Int32(1), endExclusive:Int32(536870912))
      try unknownFields.writeTo(codedOutputStream:codedOutputStream)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += extensionsSerializedSize()
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func getBuilder() -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
      return ProtobufUnittest.TestEmptyMessageWithExtensionsLite.classBuilder() as! ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder
    }
    public func getBuilder() -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
      return classBuilder() as! ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder
    }
    public override class func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder()
    }
    public override func classBuilder() -> ProtocolBuffersMessageBuilder {
      return ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder()
    }
    public func toBuilder() throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
      return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.builderWithPrototype(prototype: self)
    }
    public class func builderWithPrototype(prototype:ProtobufUnittest.TestEmptyMessageWithExtensionsLite) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
      return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeFrom(other: prototype)
    }
    override public func getDescription(indent:String) throws -> String {
      var output:String = ""
      output += try getExtensionDescription(startInclusive: Int32(1), endExclusive:Int32(536870912), indent:indent)
      output += unknownFields.getDescription(indent: indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+ Int(hashExtensionsFrom(startInclusive: Int32(1), endExclusive:Int32(536870912)))
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "ProtobufUnittest.TestEmptyMessageWithExtensionsLite"
    }
    override public func className() -> String {
        return "ProtobufUnittest.TestEmptyMessageWithExtensionsLite"
    }
    //Meta information declaration end

    final public class Builder : ExtendableMessageBuilder {
      private var builderResult:ProtobufUnittest.TestEmptyMessageWithExtensionsLite = ProtobufUnittest.TestEmptyMessageWithExtensionsLite()
      public func getMessage() -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:ExtendableMessage {
           get {
               return builderResult
           }
      }
      public override func clear() -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
        builderResult = ProtobufUnittest.TestEmptyMessageWithExtensionsLite()
        return self
      }
      public override func clone() throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
        return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.builderWithPrototype(prototype: builderResult)
      }
      public override func build() throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
        let returnMe:ProtobufUnittest.TestEmptyMessageWithExtensionsLite = builderResult
        return returnMe
      }
      public func mergeFrom(other:ProtobufUnittest.TestEmptyMessageWithExtensionsLite) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
        if other == ProtobufUnittest.TestEmptyMessageWithExtensionsLite() {
         return self
        }
        _ = try mergeExtensionFields(other: other)
        _ = try merge(unknownField: other.unknownFields)
        return self
      }
      public override func mergeFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
           return try mergeFrom(codedInputStream: codedInputStream, extensionRegistry:ExtensionRegistry())
      }
      public override func mergeFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(copyFrom: self.unknownFields)
        while (true) {
          let protobufTag = try codedInputStream.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parse(codedInputStream:codedInputStream, unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
    }

  }

}
extension ProtobufUnittest.TestAllTypesLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestAllTypesLite> {
    var mergedArray = Array<ProtobufUnittest.TestAllTypesLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite? {
    return try ProtobufUnittest.TestAllTypesLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestAllTypesLite {
    return try ProtobufUnittest.TestAllTypesLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite {
    return try ProtobufUnittest.TestAllTypesLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite {
    return try ProtobufUnittest.TestAllTypesLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite {
    return try ProtobufUnittest.TestAllTypesLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite {
    return try ProtobufUnittest.TestAllTypesLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite {
    return try ProtobufUnittest.TestAllTypesLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestAllTypesLite.NestedMessage: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestAllTypesLite.NestedMessage> {
    var mergedArray = Array<ProtobufUnittest.TestAllTypesLite.NestedMessage>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage? {
    return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
    return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
    return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
    return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
    return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
    return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.NestedMessage {
    return try ProtobufUnittest.TestAllTypesLite.NestedMessage.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestAllTypesLite.OptionalGroup: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestAllTypesLite.OptionalGroup> {
    var mergedArray = Array<ProtobufUnittest.TestAllTypesLite.OptionalGroup>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup? {
    return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
    return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
    return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
    return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
    return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
    return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.OptionalGroup {
    return try ProtobufUnittest.TestAllTypesLite.OptionalGroup.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestAllTypesLite.RepeatedGroup: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestAllTypesLite.RepeatedGroup> {
    var mergedArray = Array<ProtobufUnittest.TestAllTypesLite.RepeatedGroup>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup? {
    return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
    return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
    return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
    return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
    return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
    return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllTypesLite.RepeatedGroup {
    return try ProtobufUnittest.TestAllTypesLite.RepeatedGroup.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.ForeignMessageLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.ForeignMessageLite> {
    var mergedArray = Array<ProtobufUnittest.ForeignMessageLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.ForeignMessageLite? {
    return try ProtobufUnittest.ForeignMessageLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.ForeignMessageLite {
    return try ProtobufUnittest.ForeignMessageLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.ForeignMessageLite {
    return try ProtobufUnittest.ForeignMessageLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.ForeignMessageLite {
    return try ProtobufUnittest.ForeignMessageLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.ForeignMessageLite {
    return try ProtobufUnittest.ForeignMessageLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.ForeignMessageLite {
    return try ProtobufUnittest.ForeignMessageLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.ForeignMessageLite {
    return try ProtobufUnittest.ForeignMessageLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestPackedTypesLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestPackedTypesLite> {
    var mergedArray = Array<ProtobufUnittest.TestPackedTypesLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestPackedTypesLite? {
    return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestPackedTypesLite {
    return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedTypesLite {
    return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestPackedTypesLite {
    return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedTypesLite {
    return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestPackedTypesLite {
    return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedTypesLite {
    return try ProtobufUnittest.TestPackedTypesLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestAllExtensionsLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestAllExtensionsLite> {
    var mergedArray = Array<ProtobufUnittest.TestAllExtensionsLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllExtensionsLite? {
    return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestAllExtensionsLite {
    return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllExtensionsLite {
    return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestAllExtensionsLite {
    return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllExtensionsLite {
    return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestAllExtensionsLite {
    return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestAllExtensionsLite {
    return try ProtobufUnittest.TestAllExtensionsLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.OptionalGroupExtensionLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.OptionalGroupExtensionLite> {
    var mergedArray = Array<ProtobufUnittest.OptionalGroupExtensionLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.OptionalGroupExtensionLite? {
    return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.OptionalGroupExtensionLite {
    return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.OptionalGroupExtensionLite {
    return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.OptionalGroupExtensionLite {
    return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.OptionalGroupExtensionLite {
    return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.OptionalGroupExtensionLite {
    return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.OptionalGroupExtensionLite {
    return try ProtobufUnittest.OptionalGroupExtensionLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.RepeatedGroupExtensionLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.RepeatedGroupExtensionLite> {
    var mergedArray = Array<ProtobufUnittest.RepeatedGroupExtensionLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.RepeatedGroupExtensionLite? {
    return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.RepeatedGroupExtensionLite {
    return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.RepeatedGroupExtensionLite {
    return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.RepeatedGroupExtensionLite {
    return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.RepeatedGroupExtensionLite {
    return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.RepeatedGroupExtensionLite {
    return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.RepeatedGroupExtensionLite {
    return try ProtobufUnittest.RepeatedGroupExtensionLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestPackedExtensionsLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestPackedExtensionsLite> {
    var mergedArray = Array<ProtobufUnittest.TestPackedExtensionsLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestPackedExtensionsLite? {
    return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestPackedExtensionsLite {
    return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedExtensionsLite {
    return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestPackedExtensionsLite {
    return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedExtensionsLite {
    return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestPackedExtensionsLite {
    return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestPackedExtensionsLite {
    return try ProtobufUnittest.TestPackedExtensionsLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestNestedExtensionLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestNestedExtensionLite> {
    var mergedArray = Array<ProtobufUnittest.TestNestedExtensionLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestNestedExtensionLite? {
    return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestNestedExtensionLite {
    return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestNestedExtensionLite {
    return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestNestedExtensionLite {
    return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestNestedExtensionLite {
    return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestNestedExtensionLite {
    return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestNestedExtensionLite {
    return try ProtobufUnittest.TestNestedExtensionLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestDeprecatedLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestDeprecatedLite> {
    var mergedArray = Array<ProtobufUnittest.TestDeprecatedLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestDeprecatedLite? {
    return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestDeprecatedLite {
    return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestDeprecatedLite {
    return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestDeprecatedLite {
    return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestDeprecatedLite {
    return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestDeprecatedLite {
    return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestDeprecatedLite {
    return try ProtobufUnittest.TestDeprecatedLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestParsingMergeLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestParsingMergeLite> {
    var mergedArray = Array<ProtobufUnittest.TestParsingMergeLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite? {
    return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestParsingMergeLite {
    return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite {
    return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite {
    return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite {
    return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite {
    return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite {
    return try ProtobufUnittest.TestParsingMergeLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator> {
    var mergedArray = Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator? {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1> {
    var mergedArray = Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1? {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2> {
    var mergedArray = Array<ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2? {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestParsingMergeLite.OptionalGroup: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestParsingMergeLite.OptionalGroup> {
    var mergedArray = Array<ProtobufUnittest.TestParsingMergeLite.OptionalGroup>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup? {
    return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
    return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
    return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
    return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
    return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
    return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.OptionalGroup {
    return try ProtobufUnittest.TestParsingMergeLite.OptionalGroup.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestParsingMergeLite.RepeatedGroup: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestParsingMergeLite.RepeatedGroup> {
    var mergedArray = Array<ProtobufUnittest.TestParsingMergeLite.RepeatedGroup>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup? {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestParsingMergeLite.RepeatedGroup {
    return try ProtobufUnittest.TestParsingMergeLite.RepeatedGroup.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestEmptyMessageLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestEmptyMessageLite> {
    var mergedArray = Array<ProtobufUnittest.TestEmptyMessageLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestEmptyMessageLite? {
    return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestEmptyMessageLite {
    return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageLite {
    return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestEmptyMessageLite {
    return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageLite {
    return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestEmptyMessageLite {
    return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageLite {
    return try ProtobufUnittest.TestEmptyMessageLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}
extension ProtobufUnittest.TestEmptyMessageWithExtensionsLite: GeneratedMessageProtocol {
  public class func parseArrayDelimitedFrom(inputStream:InputStream) throws -> Array<ProtobufUnittest.TestEmptyMessageWithExtensionsLite> {
    var mergedArray = Array<ProtobufUnittest.TestEmptyMessageWithExtensionsLite>()
    while let value = try parseDelimitedFrom(inputStream: inputStream) {
      mergedArray += [value]
    }
    return mergedArray
  }
  public class func parseDelimitedFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite? {
    return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeDelimitedFrom(inputStream:inputStream)?.build()
  }
  public class func parseFrom(data:Data) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
    return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeFrom(data: data, extensionRegistry:ProtobufUnittest.UnittestLiteRoot.sharedInstance.extensionRegistry).build()
  }
  public class func parseFrom(data:Data, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
    return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeFrom(data: data, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(inputStream:InputStream) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
    return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeFrom(inputStream: inputStream).build()
  }
  public class func parseFrom(inputStream:InputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
    return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeFrom(inputStream: inputStream, extensionRegistry:extensionRegistry).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
    return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeFrom(codedInputStream: codedInputStream).build()
  }
  public class func parseFrom(codedInputStream:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> ProtobufUnittest.TestEmptyMessageWithExtensionsLite {
    return try ProtobufUnittest.TestEmptyMessageWithExtensionsLite.Builder().mergeFrom(codedInputStream: codedInputStream, extensionRegistry:extensionRegistry).build()
  }
}

// @@protoc_insertion_point(global_scope)
