One-off patch to convert Unix line endings to Windows ones for generated source. Currently not sure why they ended up as Unix line endings after Git to Mercurial conversion, but we may need to tweak some repository settings.
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
index bf5274f..9c3b2ec 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
@@ -1,1455 +1,1455 @@
-// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd.  DO NOT EDIT!
-
-using pb = global::Google.ProtocolBuffers;
-using pbc = global::Google.ProtocolBuffers.Collections;
-using pbd = global::Google.ProtocolBuffers.Descriptors;
-using scg = global::System.Collections.Generic;
-namespace Google.ProtocolBuffers.TestProtos {
-  
-  public static partial class UnitTestMessageSetProtoFile {
-  
-    #region Extension registration
-    public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
-      registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.MessageSetExtension);
-      registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.MessageSetExtension);
-    }
-    #endregion
-    #region Static variables
-    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSet__Descriptor;
-    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSet, global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder> internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable;
-    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor;
-    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer, global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Builder> internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable;
-    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor;
-    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Builder> internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable;
-    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor;
-    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Builder> internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable;
-    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet__Descriptor;
-    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Builder> internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable;
-    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor;
-    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder> internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable;
-    #endregion
-    #region Descriptor
-    public static pbd::FileDescriptor Descriptor {
-      get { return descriptor; }
-    }
-    private static pbd::FileDescriptor descriptor;
-    
-    static UnitTestMessageSetProtoFile() {
-      byte[] descriptorData = global::System.Convert.FromBase64String(
-          "CiNnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfbXNldC5wcm90bxIRcHJvdG9i" + 
-          "dWZfdW5pdHRlc3QaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5w" + 
-          "cm90byIeCg5UZXN0TWVzc2FnZVNldCoICAQQgICAgAI6AggBIlEKF1Rlc3RN" + 
-          "ZXNzYWdlU2V0Q29udGFpbmVyEjYKC21lc3NhZ2Vfc2V0GAEgASgLMiEucHJv" + 
-          "dG9idWZfdW5pdHRlc3QuVGVzdE1lc3NhZ2VTZXQilgEKGFRlc3RNZXNzYWdl" + 
-          "U2V0RXh0ZW5zaW9uMRIJCgFpGA8gASgFMm8KFW1lc3NhZ2Vfc2V0X2V4dGVu" + 
-          "c2lvbhIhLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNZXNzYWdlU2V0GLCmXiAB" + 
-          "KAsyKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWVzc2FnZVNldEV4dGVuc2lv" + 
-          "bjEimAEKGFRlc3RNZXNzYWdlU2V0RXh0ZW5zaW9uMhILCgNzdHIYGSABKAky" + 
-          "bwoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEiEucHJvdG9idWZfdW5pdHRlc3Qu" + 
-          "VGVzdE1lc3NhZ2VTZXQY+bteIAEoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRl" + 
-          "c3RNZXNzYWdlU2V0RXh0ZW5zaW9uMiJuCg1SYXdNZXNzYWdlU2V0EjMKBGl0" + 
-          "ZW0YASADKAoyJS5wcm90b2J1Zl91bml0dGVzdC5SYXdNZXNzYWdlU2V0Lkl0" + 
-          "ZW0aKAoESXRlbRIPCgd0eXBlX2lkGAIgAigFEg8KB21lc3NhZ2UYAyACKAxC" + 
-          "RUgBwj5ACiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3MSG1Vu" + 
-          "aXRUZXN0TWVzc2FnZVNldFByb3RvRmlsZQ==");
-      pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
-        descriptor = root;
-        internal__static_protobuf_unittest_TestMessageSet__Descriptor = Descriptor.MessageTypes[0];
-        internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable = 
-            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSet, global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder>(internal__static_protobuf_unittest_TestMessageSet__Descriptor,
-                new string[] { });
-        internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor = Descriptor.MessageTypes[1];
-        internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable = 
-            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer, global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Builder>(internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor,
-                new string[] { "MessageSet", });
-        internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor = Descriptor.MessageTypes[2];
-        internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable = 
-            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Builder>(internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor,
-                new string[] { "I", });
-        global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.MessageSetExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Descriptor.Extensions[0]);
-        internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor = Descriptor.MessageTypes[3];
-        internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable = 
-            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Builder>(internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor,
-                new string[] { "Str", });
-        global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.MessageSetExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Descriptor.Extensions[0]);
-        internal__static_protobuf_unittest_RawMessageSet__Descriptor = Descriptor.MessageTypes[4];
-        internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable = 
-            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Builder>(internal__static_protobuf_unittest_RawMessageSet__Descriptor,
-                new string[] { "Item", });
-        internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor = internal__static_protobuf_unittest_RawMessageSet__Descriptor.NestedTypes[0];
-        internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable = 
-            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder>(internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor,
-                new string[] { "TypeId", "Message", });
-        pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
-        RegisterAllExtensions(registry);
-        global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
-        return registry;
-      };
-      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
-          new pbd::FileDescriptor[] {
-          global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor, 
-          }, assigner);
-    }
-    #endregion
-    
-  }
-  #region Messages
-  public sealed partial class TestMessageSet : pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder> {
-    private static readonly TestMessageSet defaultInstance = new Builder().BuildPartial();
-    public static TestMessageSet DefaultInstance {
-      get { return defaultInstance; }
-    }
-    
-    public override TestMessageSet DefaultInstanceForType {
-      get { return defaultInstance; }
-    }
-    
-    protected override TestMessageSet ThisMessage {
-      get { return this; }
-    }
-    
-    public static pbd::MessageDescriptor Descriptor {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSet__Descriptor; }
-    }
-    
-    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSet, TestMessageSet.Builder> InternalFieldAccessors {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable; }
-    }
-    
-    public override bool IsInitialized {
-      get {
-        if (!ExtensionsAreInitialized) return false;
-        return true;
-      }
-    }
-    
-    public override void WriteTo(pb::CodedOutputStream output) {
-      int size = SerializedSize;
-      pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
-      extensionWriter.WriteUntil(536870912, output);
-      UnknownFields.WriteAsMessageSetTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public override int SerializedSize {
-      get {
-        int size = memoizedSerializedSize;
-        if (size != -1) return size;
-        
-        size = 0;
-        size += ExtensionsSerializedSize;
-        size += UnknownFields.SerializedSizeAsMessageSet;
-        memoizedSerializedSize = size;
-        return size;
-      }
-    }
-    
-    public static TestMessageSet ParseFrom(pb::ByteString data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSet ParseFrom(byte[] data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSet ParseFrom(global::System.IO.Stream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSet ParseDelimitedFrom(global::System.IO.Stream input) {
-      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
-    }
-    public static TestMessageSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
-    }
-    public static TestMessageSet ParseFrom(pb::CodedInputStream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSet ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static Builder CreateBuilder() { return new Builder(); }
-    public override Builder ToBuilder() { return CreateBuilder(this); }
-    public override Builder CreateBuilderForType() { return new Builder(); }
-    public static Builder CreateBuilder(TestMessageSet prototype) {
-      return (Builder) new Builder().MergeFrom(prototype);
-    }
-    
-    public sealed partial class Builder : pb::ExtendableBuilder<TestMessageSet, Builder> {
-      protected override Builder ThisBuilder {
-        get { return this; }
-      }
-      public Builder() {}
-      
-      TestMessageSet result = new TestMessageSet();
-      
-      protected override TestMessageSet MessageBeingBuilt {
-        get { return result; }
-      }
-      
-      public override Builder Clear() {
-        result = new TestMessageSet();
-        return this;
-      }
-      
-      public override Builder Clone() {
-        return new Builder().MergeFrom(result);
-      }
-      
-      public override pbd::MessageDescriptor DescriptorForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Descriptor; }
-      }
-      
-      public override TestMessageSet DefaultInstanceForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance; }
-      }
-      
-      public override TestMessageSet BuildPartial() {
-        if (result == null) {
-          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
-        }
-        TestMessageSet returnMe = result;
-        result = null;
-        return returnMe;
-      }
-      
-      public override Builder MergeFrom(pb::IMessage other) {
-        if (other is TestMessageSet) {
-          return MergeFrom((TestMessageSet) other);
-        } else {
-          base.MergeFrom(other);
-          return this;
-        }
-      }
-      
-      public override Builder MergeFrom(TestMessageSet other) {
-        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance) return this;
-          this.MergeExtensionFields(other);
-        this.MergeUnknownFields(other.UnknownFields);
-        return this;
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input) {
-        return MergeFrom(input, pb::ExtensionRegistry.Empty);
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-        pb::UnknownFieldSet.Builder unknownFields = null;
-        while (true) {
-          uint tag = input.ReadTag();
-          switch (tag) {
-            case 0: {
-              if (unknownFields != null) {
-                this.UnknownFields = unknownFields.Build();
-              }
-              return this;
-            }
-            default: {
-              if (pb::WireFormat.IsEndGroupTag(tag)) {
-                if (unknownFields != null) {
-                  this.UnknownFields = unknownFields.Build();
-                }
-                return this;
-              }
-              if (unknownFields == null) {
-                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
-              }
-              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
-              break;
-            }
-          }
-        }
-      }
-      
-    }
-    static TestMessageSet() {
-      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);
-    }
-  }
-  
-  public sealed partial class TestMessageSetContainer : pb::GeneratedMessage<TestMessageSetContainer, TestMessageSetContainer.Builder> {
-    private static readonly TestMessageSetContainer defaultInstance = new Builder().BuildPartial();
-    public static TestMessageSetContainer DefaultInstance {
-      get { return defaultInstance; }
-    }
-    
-    public override TestMessageSetContainer DefaultInstanceForType {
-      get { return defaultInstance; }
-    }
-    
-    protected override TestMessageSetContainer ThisMessage {
-      get { return this; }
-    }
-    
-    public static pbd::MessageDescriptor Descriptor {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor; }
-    }
-    
-    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetContainer, TestMessageSetContainer.Builder> InternalFieldAccessors {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable; }
-    }
-    
-    public const int MessageSetFieldNumber = 1;
-    private bool hasMessageSet;
-    private global::Google.ProtocolBuffers.TestProtos.TestMessageSet messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance;
-    public bool HasMessageSet {
-      get { return hasMessageSet; }
-    }
-    public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {
-      get { return messageSet_; }
-    }
-    
-    public override bool IsInitialized {
-      get {
-        return true;
-      }
-    }
-    
-    public override void WriteTo(pb::CodedOutputStream output) {
-      int size = SerializedSize;
-      if (HasMessageSet) {
-        output.WriteMessage(1, MessageSet);
-      }
-      UnknownFields.WriteTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public override int SerializedSize {
-      get {
-        int size = memoizedSerializedSize;
-        if (size != -1) return size;
-        
-        size = 0;
-        if (HasMessageSet) {
-          size += pb::CodedOutputStream.ComputeMessageSize(1, MessageSet);
-        }
-        size += UnknownFields.SerializedSize;
-        memoizedSerializedSize = size;
-        return size;
-      }
-    }
-    
-    public static TestMessageSetContainer ParseFrom(pb::ByteString data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseFrom(byte[] data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseFrom(global::System.IO.Stream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseDelimitedFrom(global::System.IO.Stream input) {
-      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseFrom(pb::CodedInputStream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSetContainer ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static Builder CreateBuilder() { return new Builder(); }
-    public override Builder ToBuilder() { return CreateBuilder(this); }
-    public override Builder CreateBuilderForType() { return new Builder(); }
-    public static Builder CreateBuilder(TestMessageSetContainer prototype) {
-      return (Builder) new Builder().MergeFrom(prototype);
-    }
-    
-    public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetContainer, Builder> {
-      protected override Builder ThisBuilder {
-        get { return this; }
-      }
-      public Builder() {}
-      
-      TestMessageSetContainer result = new TestMessageSetContainer();
-      
-      protected override TestMessageSetContainer MessageBeingBuilt {
-        get { return result; }
-      }
-      
-      public override Builder Clear() {
-        result = new TestMessageSetContainer();
-        return this;
-      }
-      
-      public override Builder Clone() {
-        return new Builder().MergeFrom(result);
-      }
-      
-      public override pbd::MessageDescriptor DescriptorForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Descriptor; }
-      }
-      
-      public override TestMessageSetContainer DefaultInstanceForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.DefaultInstance; }
-      }
-      
-      public override TestMessageSetContainer BuildPartial() {
-        if (result == null) {
-          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
-        }
-        TestMessageSetContainer returnMe = result;
-        result = null;
-        return returnMe;
-      }
-      
-      public override Builder MergeFrom(pb::IMessage other) {
-        if (other is TestMessageSetContainer) {
-          return MergeFrom((TestMessageSetContainer) other);
-        } else {
-          base.MergeFrom(other);
-          return this;
-        }
-      }
-      
-      public override Builder MergeFrom(TestMessageSetContainer other) {
-        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.DefaultInstance) return this;
-        if (other.HasMessageSet) {
-          MergeMessageSet(other.MessageSet);
-        }
-        this.MergeUnknownFields(other.UnknownFields);
-        return this;
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input) {
-        return MergeFrom(input, pb::ExtensionRegistry.Empty);
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-        pb::UnknownFieldSet.Builder unknownFields = null;
-        while (true) {
-          uint tag = input.ReadTag();
-          switch (tag) {
-            case 0: {
-              if (unknownFields != null) {
-                this.UnknownFields = unknownFields.Build();
-              }
-              return this;
-            }
-            default: {
-              if (pb::WireFormat.IsEndGroupTag(tag)) {
-                if (unknownFields != null) {
-                  this.UnknownFields = unknownFields.Build();
-                }
-                return this;
-              }
-              if (unknownFields == null) {
-                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
-              }
-              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
-              break;
-            }
-            case 10: {
-              global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder();
-              if (HasMessageSet) {
-                subBuilder.MergeFrom(MessageSet);
-              }
-              input.ReadMessage(subBuilder, extensionRegistry);
-              MessageSet = subBuilder.BuildPartial();
-              break;
-            }
-          }
-        }
-      }
-      
-      
-      public bool HasMessageSet {
-       get { return result.HasMessageSet; }
-      }
-      public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {
-        get { return result.MessageSet; }
-        set { SetMessageSet(value); }
-      }
-      public Builder SetMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet value) {
-        pb::ThrowHelper.ThrowIfNull(value, "value");
-        result.hasMessageSet = true;
-        result.messageSet_ = value;
-        return this;
-      }
-      public Builder SetMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder builderForValue) {
-        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
-        result.hasMessageSet = true;
-        result.messageSet_ = builderForValue.Build();
-        return this;
-      }
-      public Builder MergeMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet value) {
-        pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasMessageSet &&
-            result.messageSet_ != global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance) {
-            result.messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder(result.messageSet_).MergeFrom(value).BuildPartial();
-        } else {
-          result.messageSet_ = value;
-        }
-        result.hasMessageSet = true;
-        return this;
-      }
-      public Builder ClearMessageSet() {
-        result.hasMessageSet = false;
-        result.messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance;
-        return this;
-      }
-    }
-    static TestMessageSetContainer() {
-      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);
-    }
-  }
-  
-  public sealed partial class TestMessageSetExtension1 : pb::GeneratedMessage<TestMessageSetExtension1, TestMessageSetExtension1.Builder> {
-    private static readonly TestMessageSetExtension1 defaultInstance = new Builder().BuildPartial();
-    public static TestMessageSetExtension1 DefaultInstance {
-      get { return defaultInstance; }
-    }
-    
-    public override TestMessageSetExtension1 DefaultInstanceForType {
-      get { return defaultInstance; }
-    }
-    
-    protected override TestMessageSetExtension1 ThisMessage {
-      get { return this; }
-    }
-    
-    public static pbd::MessageDescriptor Descriptor {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor; }
-    }
-    
-    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetExtension1, TestMessageSetExtension1.Builder> InternalFieldAccessors {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable; }
-    }
-    
-    public const int MessageSetExtensionFieldNumber = 1545008;
-    public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1> MessageSetExtension;
-    public const int IFieldNumber = 15;
-    private bool hasI;
-    private int i_ = 0;
-    public bool HasI {
-      get { return hasI; }
-    }
-    public int I {
-      get { return i_; }
-    }
-    
-    public override bool IsInitialized {
-      get {
-        return true;
-      }
-    }
-    
-    public override void WriteTo(pb::CodedOutputStream output) {
-      int size = SerializedSize;
-      if (HasI) {
-        output.WriteInt32(15, I);
-      }
-      UnknownFields.WriteTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public override int SerializedSize {
-      get {
-        int size = memoizedSerializedSize;
-        if (size != -1) return size;
-        
-        size = 0;
-        if (HasI) {
-          size += pb::CodedOutputStream.ComputeInt32Size(15, I);
-        }
-        size += UnknownFields.SerializedSize;
-        memoizedSerializedSize = size;
-        return size;
-      }
-    }
-    
-    public static TestMessageSetExtension1 ParseFrom(pb::ByteString data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseFrom(byte[] data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseFrom(global::System.IO.Stream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseDelimitedFrom(global::System.IO.Stream input) {
-      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseFrom(pb::CodedInputStream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSetExtension1 ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static Builder CreateBuilder() { return new Builder(); }
-    public override Builder ToBuilder() { return CreateBuilder(this); }
-    public override Builder CreateBuilderForType() { return new Builder(); }
-    public static Builder CreateBuilder(TestMessageSetExtension1 prototype) {
-      return (Builder) new Builder().MergeFrom(prototype);
-    }
-    
-    public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension1, Builder> {
-      protected override Builder ThisBuilder {
-        get { return this; }
-      }
-      public Builder() {}
-      
-      TestMessageSetExtension1 result = new TestMessageSetExtension1();
-      
-      protected override TestMessageSetExtension1 MessageBeingBuilt {
-        get { return result; }
-      }
-      
-      public override Builder Clear() {
-        result = new TestMessageSetExtension1();
-        return this;
-      }
-      
-      public override Builder Clone() {
-        return new Builder().MergeFrom(result);
-      }
-      
-      public override pbd::MessageDescriptor DescriptorForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Descriptor; }
-      }
-      
-      public override TestMessageSetExtension1 DefaultInstanceForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.DefaultInstance; }
-      }
-      
-      public override TestMessageSetExtension1 BuildPartial() {
-        if (result == null) {
-          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
-        }
-        TestMessageSetExtension1 returnMe = result;
-        result = null;
-        return returnMe;
-      }
-      
-      public override Builder MergeFrom(pb::IMessage other) {
-        if (other is TestMessageSetExtension1) {
-          return MergeFrom((TestMessageSetExtension1) other);
-        } else {
-          base.MergeFrom(other);
-          return this;
-        }
-      }
-      
-      public override Builder MergeFrom(TestMessageSetExtension1 other) {
-        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.DefaultInstance) return this;
-        if (other.HasI) {
-          I = other.I;
-        }
-        this.MergeUnknownFields(other.UnknownFields);
-        return this;
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input) {
-        return MergeFrom(input, pb::ExtensionRegistry.Empty);
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-        pb::UnknownFieldSet.Builder unknownFields = null;
-        while (true) {
-          uint tag = input.ReadTag();
-          switch (tag) {
-            case 0: {
-              if (unknownFields != null) {
-                this.UnknownFields = unknownFields.Build();
-              }
-              return this;
-            }
-            default: {
-              if (pb::WireFormat.IsEndGroupTag(tag)) {
-                if (unknownFields != null) {
-                  this.UnknownFields = unknownFields.Build();
-                }
-                return this;
-              }
-              if (unknownFields == null) {
-                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
-              }
-              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
-              break;
-            }
-            case 120: {
-              I = input.ReadInt32();
-              break;
-            }
-          }
-        }
-      }
-      
-      
-      public bool HasI {
-        get { return result.HasI; }
-      }
-      public int I {
-        get { return result.I; }
-        set { SetI(value); }
-      }
-      public Builder SetI(int value) {
-        result.hasI = true;
-        result.i_ = value;
-        return this;
-      }
-      public Builder ClearI() {
-        result.hasI = false;
-        result.i_ = 0;
-        return this;
-      }
-    }
-    static TestMessageSetExtension1() {
-      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);
-    }
-  }
-  
-  public sealed partial class TestMessageSetExtension2 : pb::GeneratedMessage<TestMessageSetExtension2, TestMessageSetExtension2.Builder> {
-    private static readonly TestMessageSetExtension2 defaultInstance = new Builder().BuildPartial();
-    public static TestMessageSetExtension2 DefaultInstance {
-      get { return defaultInstance; }
-    }
-    
-    public override TestMessageSetExtension2 DefaultInstanceForType {
-      get { return defaultInstance; }
-    }
-    
-    protected override TestMessageSetExtension2 ThisMessage {
-      get { return this; }
-    }
-    
-    public static pbd::MessageDescriptor Descriptor {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor; }
-    }
-    
-    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetExtension2, TestMessageSetExtension2.Builder> InternalFieldAccessors {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable; }
-    }
-    
-    public const int MessageSetExtensionFieldNumber = 1547769;
-    public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2> MessageSetExtension;
-    public const int StrFieldNumber = 25;
-    private bool hasStr;
-    private string str_ = "";
-    public bool HasStr {
-      get { return hasStr; }
-    }
-    public string Str {
-      get { return str_; }
-    }
-    
-    public override bool IsInitialized {
-      get {
-        return true;
-      }
-    }
-    
-    public override void WriteTo(pb::CodedOutputStream output) {
-      int size = SerializedSize;
-      if (HasStr) {
-        output.WriteString(25, Str);
-      }
-      UnknownFields.WriteTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public override int SerializedSize {
-      get {
-        int size = memoizedSerializedSize;
-        if (size != -1) return size;
-        
-        size = 0;
-        if (HasStr) {
-          size += pb::CodedOutputStream.ComputeStringSize(25, Str);
-        }
-        size += UnknownFields.SerializedSize;
-        memoizedSerializedSize = size;
-        return size;
-      }
-    }
-    
-    public static TestMessageSetExtension2 ParseFrom(pb::ByteString data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseFrom(byte[] data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseFrom(global::System.IO.Stream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseDelimitedFrom(global::System.IO.Stream input) {
-      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseFrom(pb::CodedInputStream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static TestMessageSetExtension2 ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static Builder CreateBuilder() { return new Builder(); }
-    public override Builder ToBuilder() { return CreateBuilder(this); }
-    public override Builder CreateBuilderForType() { return new Builder(); }
-    public static Builder CreateBuilder(TestMessageSetExtension2 prototype) {
-      return (Builder) new Builder().MergeFrom(prototype);
-    }
-    
-    public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension2, Builder> {
-      protected override Builder ThisBuilder {
-        get { return this; }
-      }
-      public Builder() {}
-      
-      TestMessageSetExtension2 result = new TestMessageSetExtension2();
-      
-      protected override TestMessageSetExtension2 MessageBeingBuilt {
-        get { return result; }
-      }
-      
-      public override Builder Clear() {
-        result = new TestMessageSetExtension2();
-        return this;
-      }
-      
-      public override Builder Clone() {
-        return new Builder().MergeFrom(result);
-      }
-      
-      public override pbd::MessageDescriptor DescriptorForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Descriptor; }
-      }
-      
-      public override TestMessageSetExtension2 DefaultInstanceForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.DefaultInstance; }
-      }
-      
-      public override TestMessageSetExtension2 BuildPartial() {
-        if (result == null) {
-          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
-        }
-        TestMessageSetExtension2 returnMe = result;
-        result = null;
-        return returnMe;
-      }
-      
-      public override Builder MergeFrom(pb::IMessage other) {
-        if (other is TestMessageSetExtension2) {
-          return MergeFrom((TestMessageSetExtension2) other);
-        } else {
-          base.MergeFrom(other);
-          return this;
-        }
-      }
-      
-      public override Builder MergeFrom(TestMessageSetExtension2 other) {
-        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.DefaultInstance) return this;
-        if (other.HasStr) {
-          Str = other.Str;
-        }
-        this.MergeUnknownFields(other.UnknownFields);
-        return this;
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input) {
-        return MergeFrom(input, pb::ExtensionRegistry.Empty);
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-        pb::UnknownFieldSet.Builder unknownFields = null;
-        while (true) {
-          uint tag = input.ReadTag();
-          switch (tag) {
-            case 0: {
-              if (unknownFields != null) {
-                this.UnknownFields = unknownFields.Build();
-              }
-              return this;
-            }
-            default: {
-              if (pb::WireFormat.IsEndGroupTag(tag)) {
-                if (unknownFields != null) {
-                  this.UnknownFields = unknownFields.Build();
-                }
-                return this;
-              }
-              if (unknownFields == null) {
-                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
-              }
-              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
-              break;
-            }
-            case 202: {
-              Str = input.ReadString();
-              break;
-            }
-          }
-        }
-      }
-      
-      
-      public bool HasStr {
-        get { return result.HasStr; }
-      }
-      public string Str {
-        get { return result.Str; }
-        set { SetStr(value); }
-      }
-      public Builder SetStr(string value) {
-        pb::ThrowHelper.ThrowIfNull(value, "value");
-        result.hasStr = true;
-        result.str_ = value;
-        return this;
-      }
-      public Builder ClearStr() {
-        result.hasStr = false;
-        result.str_ = "";
-        return this;
-      }
-    }
-    static TestMessageSetExtension2() {
-      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);
-    }
-  }
-  
-  public sealed partial class RawMessageSet : pb::GeneratedMessage<RawMessageSet, RawMessageSet.Builder> {
-    private static readonly RawMessageSet defaultInstance = new Builder().BuildPartial();
-    public static RawMessageSet DefaultInstance {
-      get { return defaultInstance; }
-    }
-    
-    public override RawMessageSet DefaultInstanceForType {
-      get { return defaultInstance; }
-    }
-    
-    protected override RawMessageSet ThisMessage {
-      get { return this; }
-    }
-    
-    public static pbd::MessageDescriptor Descriptor {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet__Descriptor; }
-    }
-    
-    protected override pb::FieldAccess.FieldAccessorTable<RawMessageSet, RawMessageSet.Builder> InternalFieldAccessors {
-      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable; }
-    }
-    
-    #region Nested types
-    public static class Types {
-      public sealed partial class Item : pb::GeneratedMessage<Item, Item.Builder> {
-        private static readonly Item defaultInstance = new Builder().BuildPartial();
-        public static Item DefaultInstance {
-          get { return defaultInstance; }
-        }
-        
-        public override Item DefaultInstanceForType {
-          get { return defaultInstance; }
-        }
-        
-        protected override Item ThisMessage {
-          get { return this; }
-        }
-        
-        public static pbd::MessageDescriptor Descriptor {
-          get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor; }
-        }
-        
-        protected override pb::FieldAccess.FieldAccessorTable<Item, Item.Builder> InternalFieldAccessors {
-          get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable; }
-        }
-        
-        public const int TypeIdFieldNumber = 2;
-        private bool hasTypeId;
-        private int typeId_ = 0;
-        public bool HasTypeId {
-          get { return hasTypeId; }
-        }
-        public int TypeId {
-          get { return typeId_; }
-        }
-        
-        public const int MessageFieldNumber = 3;
-        private bool hasMessage;
-        private pb::ByteString message_ = pb::ByteString.Empty;
-        public bool HasMessage {
-          get { return hasMessage; }
-        }
-        public pb::ByteString Message {
-          get { return message_; }
-        }
-        
-        public override bool IsInitialized {
-          get {
-            if (!hasTypeId) return false;
-            if (!hasMessage) return false;
-            return true;
-          }
-        }
-        
-        public override void WriteTo(pb::CodedOutputStream output) {
-          int size = SerializedSize;
-          if (HasTypeId) {
-            output.WriteInt32(2, TypeId);
-          }
-          if (HasMessage) {
-            output.WriteBytes(3, Message);
-          }
-          UnknownFields.WriteTo(output);
-        }
-        
-        private int memoizedSerializedSize = -1;
-        public override int SerializedSize {
-          get {
-            int size = memoizedSerializedSize;
-            if (size != -1) return size;
-            
-            size = 0;
-            if (HasTypeId) {
-              size += pb::CodedOutputStream.ComputeInt32Size(2, TypeId);
-            }
-            if (HasMessage) {
-              size += pb::CodedOutputStream.ComputeBytesSize(3, Message);
-            }
-            size += UnknownFields.SerializedSize;
-            memoizedSerializedSize = size;
-            return size;
-          }
-        }
-        
-        public static Item ParseFrom(pb::ByteString data) {
-          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-        }
-        public static Item ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
-          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-        }
-        public static Item ParseFrom(byte[] data) {
-          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-        }
-        public static Item ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
-          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-        }
-        public static Item ParseFrom(global::System.IO.Stream input) {
-          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-        }
-        public static Item ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-        }
-        public static Item ParseDelimitedFrom(global::System.IO.Stream input) {
-          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
-        }
-        public static Item ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
-        }
-        public static Item ParseFrom(pb::CodedInputStream input) {
-          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-        }
-        public static Item ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-        }
-        public static Builder CreateBuilder() { return new Builder(); }
-        public override Builder ToBuilder() { return CreateBuilder(this); }
-        public override Builder CreateBuilderForType() { return new Builder(); }
-        public static Builder CreateBuilder(Item prototype) {
-          return (Builder) new Builder().MergeFrom(prototype);
-        }
-        
-        public sealed partial class Builder : pb::GeneratedBuilder<Item, Builder> {
-          protected override Builder ThisBuilder {
-            get { return this; }
-          }
-          public Builder() {}
-          
-          Item result = new Item();
-          
-          protected override Item MessageBeingBuilt {
-            get { return result; }
-          }
-          
-          public override Builder Clear() {
-            result = new Item();
-            return this;
-          }
-          
-          public override Builder Clone() {
-            return new Builder().MergeFrom(result);
-          }
-          
-          public override pbd::MessageDescriptor DescriptorForType {
-            get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Descriptor; }
-          }
-          
-          public override Item DefaultInstanceForType {
-            get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.DefaultInstance; }
-          }
-          
-          public override Item BuildPartial() {
-            if (result == null) {
-              throw new global::System.InvalidOperationException("build() has already been called on this Builder");
-            }
-            Item returnMe = result;
-            result = null;
-            return returnMe;
-          }
-          
-          public override Builder MergeFrom(pb::IMessage other) {
-            if (other is Item) {
-              return MergeFrom((Item) other);
-            } else {
-              base.MergeFrom(other);
-              return this;
-            }
-          }
-          
-          public override Builder MergeFrom(Item other) {
-            if (other == global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.DefaultInstance) return this;
-            if (other.HasTypeId) {
-              TypeId = other.TypeId;
-            }
-            if (other.HasMessage) {
-              Message = other.Message;
-            }
-            this.MergeUnknownFields(other.UnknownFields);
-            return this;
-          }
-          
-          public override Builder MergeFrom(pb::CodedInputStream input) {
-            return MergeFrom(input, pb::ExtensionRegistry.Empty);
-          }
-          
-          public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-            pb::UnknownFieldSet.Builder unknownFields = null;
-            while (true) {
-              uint tag = input.ReadTag();
-              switch (tag) {
-                case 0: {
-                  if (unknownFields != null) {
-                    this.UnknownFields = unknownFields.Build();
-                  }
-                  return this;
-                }
-                default: {
-                  if (pb::WireFormat.IsEndGroupTag(tag)) {
-                    if (unknownFields != null) {
-                      this.UnknownFields = unknownFields.Build();
-                    }
-                    return this;
-                  }
-                  if (unknownFields == null) {
-                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
-                  }
-                  ParseUnknownField(input, unknownFields, extensionRegistry, tag);
-                  break;
-                }
-                case 16: {
-                  TypeId = input.ReadInt32();
-                  break;
-                }
-                case 26: {
-                  Message = input.ReadBytes();
-                  break;
-                }
-              }
-            }
-          }
-          
-          
-          public bool HasTypeId {
-            get { return result.HasTypeId; }
-          }
-          public int TypeId {
-            get { return result.TypeId; }
-            set { SetTypeId(value); }
-          }
-          public Builder SetTypeId(int value) {
-            result.hasTypeId = true;
-            result.typeId_ = value;
-            return this;
-          }
-          public Builder ClearTypeId() {
-            result.hasTypeId = false;
-            result.typeId_ = 0;
-            return this;
-          }
-          
-          public bool HasMessage {
-            get { return result.HasMessage; }
-          }
-          public pb::ByteString Message {
-            get { return result.Message; }
-            set { SetMessage(value); }
-          }
-          public Builder SetMessage(pb::ByteString value) {
-            pb::ThrowHelper.ThrowIfNull(value, "value");
-            result.hasMessage = true;
-            result.message_ = value;
-            return this;
-          }
-          public Builder ClearMessage() {
-            result.hasMessage = false;
-            result.message_ = pb::ByteString.Empty;
-            return this;
-          }
-        }
-        static Item() {
-          object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);
-        }
-      }
-      
-    }
-    #endregion
-    
-    public const int ItemFieldNumber = 1;
-    private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> item_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item>();
-    public scg::IList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> ItemList {
-      get { return item_; }
-    }
-    public int ItemCount {
-      get { return item_.Count; }
-    }
-    public global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item GetItem(int index) {
-      return item_[index];
-    }
-    
-    public override bool IsInitialized {
-      get {
-        return true;
-      }
-    }
-    
-    public override void WriteTo(pb::CodedOutputStream output) {
-      int size = SerializedSize;
-      foreach (global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item element in ItemList) {
-        output.WriteGroup(1, element);
-      }
-      UnknownFields.WriteTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public override int SerializedSize {
-      get {
-        int size = memoizedSerializedSize;
-        if (size != -1) return size;
-        
-        size = 0;
-        foreach (global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item element in ItemList) {
-          size += pb::CodedOutputStream.ComputeGroupSize(1, element);
-        }
-        size += UnknownFields.SerializedSize;
-        memoizedSerializedSize = size;
-        return size;
-      }
-    }
-    
-    public static RawMessageSet ParseFrom(pb::ByteString data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static RawMessageSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static RawMessageSet ParseFrom(byte[] data) {
-      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
-    }
-    public static RawMessageSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
-    }
-    public static RawMessageSet ParseFrom(global::System.IO.Stream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static RawMessageSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static RawMessageSet ParseDelimitedFrom(global::System.IO.Stream input) {
-      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
-    }
-    public static RawMessageSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
-      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
-    }
-    public static RawMessageSet ParseFrom(pb::CodedInputStream input) {
-      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
-    }
-    public static RawMessageSet ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
-    }
-    public static Builder CreateBuilder() { return new Builder(); }
-    public override Builder ToBuilder() { return CreateBuilder(this); }
-    public override Builder CreateBuilderForType() { return new Builder(); }
-    public static Builder CreateBuilder(RawMessageSet prototype) {
-      return (Builder) new Builder().MergeFrom(prototype);
-    }
-    
-    public sealed partial class Builder : pb::GeneratedBuilder<RawMessageSet, Builder> {
-      protected override Builder ThisBuilder {
-        get { return this; }
-      }
-      public Builder() {}
-      
-      RawMessageSet result = new RawMessageSet();
-      
-      protected override RawMessageSet MessageBeingBuilt {
-        get { return result; }
-      }
-      
-      public override Builder Clear() {
-        result = new RawMessageSet();
-        return this;
-      }
-      
-      public override Builder Clone() {
-        return new Builder().MergeFrom(result);
-      }
-      
-      public override pbd::MessageDescriptor DescriptorForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Descriptor; }
-      }
-      
-      public override RawMessageSet DefaultInstanceForType {
-        get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.DefaultInstance; }
-      }
-      
-      public override RawMessageSet BuildPartial() {
-        if (result == null) {
-          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
-        }
-        result.item_.MakeReadOnly();
-        RawMessageSet returnMe = result;
-        result = null;
-        return returnMe;
-      }
-      
-      public override Builder MergeFrom(pb::IMessage other) {
-        if (other is RawMessageSet) {
-          return MergeFrom((RawMessageSet) other);
-        } else {
-          base.MergeFrom(other);
-          return this;
-        }
-      }
-      
-      public override Builder MergeFrom(RawMessageSet other) {
-        if (other == global::Google.ProtocolBuffers.TestProtos.RawMessageSet.DefaultInstance) return this;
-        if (other.item_.Count != 0) {
-          base.AddRange(other.item_, result.item_);
-        }
-        this.MergeUnknownFields(other.UnknownFields);
-        return this;
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input) {
-        return MergeFrom(input, pb::ExtensionRegistry.Empty);
-      }
-      
-      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
-        pb::UnknownFieldSet.Builder unknownFields = null;
-        while (true) {
-          uint tag = input.ReadTag();
-          switch (tag) {
-            case 0: {
-              if (unknownFields != null) {
-                this.UnknownFields = unknownFields.Build();
-              }
-              return this;
-            }
-            default: {
-              if (pb::WireFormat.IsEndGroupTag(tag)) {
-                if (unknownFields != null) {
-                  this.UnknownFields = unknownFields.Build();
-                }
-                return this;
-              }
-              if (unknownFields == null) {
-                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
-              }
-              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
-              break;
-            }
-            case 11: {
-              global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.CreateBuilder();
-              input.ReadGroup(1, subBuilder, extensionRegistry);
-              AddItem(subBuilder.BuildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      
-      public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> ItemList {
-        get { return result.item_; }
-      }
-      public int ItemCount {
-        get { return result.ItemCount; }
-      }
-      public global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item GetItem(int index) {
-        return result.GetItem(index);
-      }
-      public Builder SetItem(int index, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item value) {
-        pb::ThrowHelper.ThrowIfNull(value, "value");
-        result.item_[index] = value;
-        return this;
-      }
-      public Builder SetItem(int index, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder builderForValue) {
-        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
-        result.item_[index] = builderForValue.Build();
-        return this;
-      }
-      public Builder AddItem(global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item value) {
-        pb::ThrowHelper.ThrowIfNull(value, "value");
-        result.item_.Add(value);
-        return this;
-      }
-      public Builder AddItem(global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder builderForValue) {
-        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
-        result.item_.Add(builderForValue.Build());
-        return this;
-      }
-      public Builder AddRangeItem(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> values) {
-        base.AddRange(values, result.item_);
-        return this;
-      }
-      public Builder ClearItem() {
-        result.item_.Clear();
-        return this;
-      }
-    }
-    static RawMessageSet() {
-      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);
-    }
-  }
-  
-  #endregion
-  
-}
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd.  DO NOT EDIT!

+

+using pb = global::Google.ProtocolBuffers;

+using pbc = global::Google.ProtocolBuffers.Collections;

+using pbd = global::Google.ProtocolBuffers.Descriptors;

+using scg = global::System.Collections.Generic;

+namespace Google.ProtocolBuffers.TestProtos {

+  

+  public static partial class UnitTestMessageSetProtoFile {

+  

+    #region Extension registration

+    public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {

+      registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.MessageSetExtension);

+      registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.MessageSetExtension);

+    }

+    #endregion

+    #region Static variables

+    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSet__Descriptor;

+    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSet, global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder> internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable;

+    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor;

+    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer, global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Builder> internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable;

+    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor;

+    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Builder> internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable;

+    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor;

+    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Builder> internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable;

+    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet__Descriptor;

+    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Builder> internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable;

+    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor;

+    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder> internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable;

+    #endregion

+    #region Descriptor

+    public static pbd::FileDescriptor Descriptor {

+      get { return descriptor; }

+    }

+    private static pbd::FileDescriptor descriptor;

+    

+    static UnitTestMessageSetProtoFile() {

+      byte[] descriptorData = global::System.Convert.FromBase64String(

+          "CiNnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfbXNldC5wcm90bxIRcHJvdG9i" + 

+          "dWZfdW5pdHRlc3QaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5w" + 

+          "cm90byIeCg5UZXN0TWVzc2FnZVNldCoICAQQgICAgAI6AggBIlEKF1Rlc3RN" + 

+          "ZXNzYWdlU2V0Q29udGFpbmVyEjYKC21lc3NhZ2Vfc2V0GAEgASgLMiEucHJv" + 

+          "dG9idWZfdW5pdHRlc3QuVGVzdE1lc3NhZ2VTZXQilgEKGFRlc3RNZXNzYWdl" + 

+          "U2V0RXh0ZW5zaW9uMRIJCgFpGA8gASgFMm8KFW1lc3NhZ2Vfc2V0X2V4dGVu" + 

+          "c2lvbhIhLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNZXNzYWdlU2V0GLCmXiAB" + 

+          "KAsyKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWVzc2FnZVNldEV4dGVuc2lv" + 

+          "bjEimAEKGFRlc3RNZXNzYWdlU2V0RXh0ZW5zaW9uMhILCgNzdHIYGSABKAky" + 

+          "bwoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEiEucHJvdG9idWZfdW5pdHRlc3Qu" + 

+          "VGVzdE1lc3NhZ2VTZXQY+bteIAEoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRl" + 

+          "c3RNZXNzYWdlU2V0RXh0ZW5zaW9uMiJuCg1SYXdNZXNzYWdlU2V0EjMKBGl0" + 

+          "ZW0YASADKAoyJS5wcm90b2J1Zl91bml0dGVzdC5SYXdNZXNzYWdlU2V0Lkl0" + 

+          "ZW0aKAoESXRlbRIPCgd0eXBlX2lkGAIgAigFEg8KB21lc3NhZ2UYAyACKAxC" + 

+          "RUgBwj5ACiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3MSG1Vu" + 

+          "aXRUZXN0TWVzc2FnZVNldFByb3RvRmlsZQ==");

+      pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {

+        descriptor = root;

+        internal__static_protobuf_unittest_TestMessageSet__Descriptor = Descriptor.MessageTypes[0];

+        internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable = 

+            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSet, global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder>(internal__static_protobuf_unittest_TestMessageSet__Descriptor,

+                new string[] { });

+        internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor = Descriptor.MessageTypes[1];

+        internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable = 

+            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer, global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Builder>(internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor,

+                new string[] { "MessageSet", });

+        internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor = Descriptor.MessageTypes[2];

+        internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable = 

+            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Builder>(internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor,

+                new string[] { "I", });

+        global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.MessageSetExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Descriptor.Extensions[0]);

+        internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor = Descriptor.MessageTypes[3];

+        internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable = 

+            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Builder>(internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor,

+                new string[] { "Str", });

+        global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.MessageSetExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Descriptor.Extensions[0]);

+        internal__static_protobuf_unittest_RawMessageSet__Descriptor = Descriptor.MessageTypes[4];

+        internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable = 

+            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Builder>(internal__static_protobuf_unittest_RawMessageSet__Descriptor,

+                new string[] { "Item", });

+        internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor = internal__static_protobuf_unittest_RawMessageSet__Descriptor.NestedTypes[0];

+        internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable = 

+            new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder>(internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor,

+                new string[] { "TypeId", "Message", });

+        pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();

+        RegisterAllExtensions(registry);

+        global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);

+        return registry;

+      };

+      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,

+          new pbd::FileDescriptor[] {

+          global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor, 

+          }, assigner);

+    }

+    #endregion

+    

+  }

+  #region Messages

+  public sealed partial class TestMessageSet : pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder> {

+    private static readonly TestMessageSet defaultInstance = new Builder().BuildPartial();

+    public static TestMessageSet DefaultInstance {

+      get { return defaultInstance; }

+    }

+    

+    public override TestMessageSet DefaultInstanceForType {

+      get { return defaultInstance; }

+    }

+    

+    protected override TestMessageSet ThisMessage {

+      get { return this; }

+    }

+    

+    public static pbd::MessageDescriptor Descriptor {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSet__Descriptor; }

+    }

+    

+    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSet, TestMessageSet.Builder> InternalFieldAccessors {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable; }

+    }

+    

+    public override bool IsInitialized {

+      get {

+        if (!ExtensionsAreInitialized) return false;

+        return true;

+      }

+    }

+    

+    public override void WriteTo(pb::CodedOutputStream output) {

+      int size = SerializedSize;

+      pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);

+      extensionWriter.WriteUntil(536870912, output);

+      UnknownFields.WriteAsMessageSetTo(output);

+    }

+    

+    private int memoizedSerializedSize = -1;

+    public override int SerializedSize {

+      get {

+        int size = memoizedSerializedSize;

+        if (size != -1) return size;

+        

+        size = 0;

+        size += ExtensionsSerializedSize;

+        size += UnknownFields.SerializedSizeAsMessageSet;

+        memoizedSerializedSize = size;

+        return size;

+      }

+    }

+    

+    public static TestMessageSet ParseFrom(pb::ByteString data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSet ParseFrom(byte[] data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSet ParseFrom(global::System.IO.Stream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSet ParseDelimitedFrom(global::System.IO.Stream input) {

+      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();

+    }

+    public static TestMessageSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();

+    }

+    public static TestMessageSet ParseFrom(pb::CodedInputStream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSet ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static Builder CreateBuilder() { return new Builder(); }

+    public override Builder ToBuilder() { return CreateBuilder(this); }

+    public override Builder CreateBuilderForType() { return new Builder(); }

+    public static Builder CreateBuilder(TestMessageSet prototype) {

+      return (Builder) new Builder().MergeFrom(prototype);

+    }

+    

+    public sealed partial class Builder : pb::ExtendableBuilder<TestMessageSet, Builder> {

+      protected override Builder ThisBuilder {

+        get { return this; }

+      }

+      public Builder() {}

+      

+      TestMessageSet result = new TestMessageSet();

+      

+      protected override TestMessageSet MessageBeingBuilt {

+        get { return result; }

+      }

+      

+      public override Builder Clear() {

+        result = new TestMessageSet();

+        return this;

+      }

+      

+      public override Builder Clone() {

+        return new Builder().MergeFrom(result);

+      }

+      

+      public override pbd::MessageDescriptor DescriptorForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Descriptor; }

+      }

+      

+      public override TestMessageSet DefaultInstanceForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance; }

+      }

+      

+      public override TestMessageSet BuildPartial() {

+        if (result == null) {

+          throw new global::System.InvalidOperationException("build() has already been called on this Builder");

+        }

+        TestMessageSet returnMe = result;

+        result = null;

+        return returnMe;

+      }

+      

+      public override Builder MergeFrom(pb::IMessage other) {

+        if (other is TestMessageSet) {

+          return MergeFrom((TestMessageSet) other);

+        } else {

+          base.MergeFrom(other);

+          return this;

+        }

+      }

+      

+      public override Builder MergeFrom(TestMessageSet other) {

+        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance) return this;

+          this.MergeExtensionFields(other);

+        this.MergeUnknownFields(other.UnknownFields);

+        return this;

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input) {

+        return MergeFrom(input, pb::ExtensionRegistry.Empty);

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+        pb::UnknownFieldSet.Builder unknownFields = null;

+        while (true) {

+          uint tag = input.ReadTag();

+          switch (tag) {

+            case 0: {

+              if (unknownFields != null) {

+                this.UnknownFields = unknownFields.Build();

+              }

+              return this;

+            }

+            default: {

+              if (pb::WireFormat.IsEndGroupTag(tag)) {

+                if (unknownFields != null) {

+                  this.UnknownFields = unknownFields.Build();

+                }

+                return this;

+              }

+              if (unknownFields == null) {

+                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);

+              }

+              ParseUnknownField(input, unknownFields, extensionRegistry, tag);

+              break;

+            }

+          }

+        }

+      }

+      

+    }

+    static TestMessageSet() {

+      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);

+    }

+  }

+  

+  public sealed partial class TestMessageSetContainer : pb::GeneratedMessage<TestMessageSetContainer, TestMessageSetContainer.Builder> {

+    private static readonly TestMessageSetContainer defaultInstance = new Builder().BuildPartial();

+    public static TestMessageSetContainer DefaultInstance {

+      get { return defaultInstance; }

+    }

+    

+    public override TestMessageSetContainer DefaultInstanceForType {

+      get { return defaultInstance; }

+    }

+    

+    protected override TestMessageSetContainer ThisMessage {

+      get { return this; }

+    }

+    

+    public static pbd::MessageDescriptor Descriptor {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor; }

+    }

+    

+    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetContainer, TestMessageSetContainer.Builder> InternalFieldAccessors {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable; }

+    }

+    

+    public const int MessageSetFieldNumber = 1;

+    private bool hasMessageSet;

+    private global::Google.ProtocolBuffers.TestProtos.TestMessageSet messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance;

+    public bool HasMessageSet {

+      get { return hasMessageSet; }

+    }

+    public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {

+      get { return messageSet_; }

+    }

+    

+    public override bool IsInitialized {

+      get {

+        return true;

+      }

+    }

+    

+    public override void WriteTo(pb::CodedOutputStream output) {

+      int size = SerializedSize;

+      if (HasMessageSet) {

+        output.WriteMessage(1, MessageSet);

+      }

+      UnknownFields.WriteTo(output);

+    }

+    

+    private int memoizedSerializedSize = -1;

+    public override int SerializedSize {

+      get {

+        int size = memoizedSerializedSize;

+        if (size != -1) return size;

+        

+        size = 0;

+        if (HasMessageSet) {

+          size += pb::CodedOutputStream.ComputeMessageSize(1, MessageSet);

+        }

+        size += UnknownFields.SerializedSize;

+        memoizedSerializedSize = size;

+        return size;

+      }

+    }

+    

+    public static TestMessageSetContainer ParseFrom(pb::ByteString data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseFrom(byte[] data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseFrom(global::System.IO.Stream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseDelimitedFrom(global::System.IO.Stream input) {

+      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseFrom(pb::CodedInputStream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSetContainer ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static Builder CreateBuilder() { return new Builder(); }

+    public override Builder ToBuilder() { return CreateBuilder(this); }

+    public override Builder CreateBuilderForType() { return new Builder(); }

+    public static Builder CreateBuilder(TestMessageSetContainer prototype) {

+      return (Builder) new Builder().MergeFrom(prototype);

+    }

+    

+    public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetContainer, Builder> {

+      protected override Builder ThisBuilder {

+        get { return this; }

+      }

+      public Builder() {}

+      

+      TestMessageSetContainer result = new TestMessageSetContainer();

+      

+      protected override TestMessageSetContainer MessageBeingBuilt {

+        get { return result; }

+      }

+      

+      public override Builder Clear() {

+        result = new TestMessageSetContainer();

+        return this;

+      }

+      

+      public override Builder Clone() {

+        return new Builder().MergeFrom(result);

+      }

+      

+      public override pbd::MessageDescriptor DescriptorForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Descriptor; }

+      }

+      

+      public override TestMessageSetContainer DefaultInstanceForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.DefaultInstance; }

+      }

+      

+      public override TestMessageSetContainer BuildPartial() {

+        if (result == null) {

+          throw new global::System.InvalidOperationException("build() has already been called on this Builder");

+        }

+        TestMessageSetContainer returnMe = result;

+        result = null;

+        return returnMe;

+      }

+      

+      public override Builder MergeFrom(pb::IMessage other) {

+        if (other is TestMessageSetContainer) {

+          return MergeFrom((TestMessageSetContainer) other);

+        } else {

+          base.MergeFrom(other);

+          return this;

+        }

+      }

+      

+      public override Builder MergeFrom(TestMessageSetContainer other) {

+        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.DefaultInstance) return this;

+        if (other.HasMessageSet) {

+          MergeMessageSet(other.MessageSet);

+        }

+        this.MergeUnknownFields(other.UnknownFields);

+        return this;

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input) {

+        return MergeFrom(input, pb::ExtensionRegistry.Empty);

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+        pb::UnknownFieldSet.Builder unknownFields = null;

+        while (true) {

+          uint tag = input.ReadTag();

+          switch (tag) {

+            case 0: {

+              if (unknownFields != null) {

+                this.UnknownFields = unknownFields.Build();

+              }

+              return this;

+            }

+            default: {

+              if (pb::WireFormat.IsEndGroupTag(tag)) {

+                if (unknownFields != null) {

+                  this.UnknownFields = unknownFields.Build();

+                }

+                return this;

+              }

+              if (unknownFields == null) {

+                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);

+              }

+              ParseUnknownField(input, unknownFields, extensionRegistry, tag);

+              break;

+            }

+            case 10: {

+              global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder();

+              if (HasMessageSet) {

+                subBuilder.MergeFrom(MessageSet);

+              }

+              input.ReadMessage(subBuilder, extensionRegistry);

+              MessageSet = subBuilder.BuildPartial();

+              break;

+            }

+          }

+        }

+      }

+      

+      

+      public bool HasMessageSet {

+       get { return result.HasMessageSet; }

+      }

+      public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {

+        get { return result.MessageSet; }

+        set { SetMessageSet(value); }

+      }

+      public Builder SetMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet value) {

+        pb::ThrowHelper.ThrowIfNull(value, "value");

+        result.hasMessageSet = true;

+        result.messageSet_ = value;

+        return this;

+      }

+      public Builder SetMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder builderForValue) {

+        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");

+        result.hasMessageSet = true;

+        result.messageSet_ = builderForValue.Build();

+        return this;

+      }

+      public Builder MergeMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet value) {

+        pb::ThrowHelper.ThrowIfNull(value, "value");

+        if (result.HasMessageSet &&

+            result.messageSet_ != global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance) {

+            result.messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder(result.messageSet_).MergeFrom(value).BuildPartial();

+        } else {

+          result.messageSet_ = value;

+        }

+        result.hasMessageSet = true;

+        return this;

+      }

+      public Builder ClearMessageSet() {

+        result.hasMessageSet = false;

+        result.messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance;

+        return this;

+      }

+    }

+    static TestMessageSetContainer() {

+      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);

+    }

+  }

+  

+  public sealed partial class TestMessageSetExtension1 : pb::GeneratedMessage<TestMessageSetExtension1, TestMessageSetExtension1.Builder> {

+    private static readonly TestMessageSetExtension1 defaultInstance = new Builder().BuildPartial();

+    public static TestMessageSetExtension1 DefaultInstance {

+      get { return defaultInstance; }

+    }

+    

+    public override TestMessageSetExtension1 DefaultInstanceForType {

+      get { return defaultInstance; }

+    }

+    

+    protected override TestMessageSetExtension1 ThisMessage {

+      get { return this; }

+    }

+    

+    public static pbd::MessageDescriptor Descriptor {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor; }

+    }

+    

+    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetExtension1, TestMessageSetExtension1.Builder> InternalFieldAccessors {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable; }

+    }

+    

+    public const int MessageSetExtensionFieldNumber = 1545008;

+    public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1> MessageSetExtension;

+    public const int IFieldNumber = 15;

+    private bool hasI;

+    private int i_ = 0;

+    public bool HasI {

+      get { return hasI; }

+    }

+    public int I {

+      get { return i_; }

+    }

+    

+    public override bool IsInitialized {

+      get {

+        return true;

+      }

+    }

+    

+    public override void WriteTo(pb::CodedOutputStream output) {

+      int size = SerializedSize;

+      if (HasI) {

+        output.WriteInt32(15, I);

+      }

+      UnknownFields.WriteTo(output);

+    }

+    

+    private int memoizedSerializedSize = -1;

+    public override int SerializedSize {

+      get {

+        int size = memoizedSerializedSize;

+        if (size != -1) return size;

+        

+        size = 0;

+        if (HasI) {

+          size += pb::CodedOutputStream.ComputeInt32Size(15, I);

+        }

+        size += UnknownFields.SerializedSize;

+        memoizedSerializedSize = size;

+        return size;

+      }

+    }

+    

+    public static TestMessageSetExtension1 ParseFrom(pb::ByteString data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseFrom(byte[] data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseFrom(global::System.IO.Stream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseDelimitedFrom(global::System.IO.Stream input) {

+      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseFrom(pb::CodedInputStream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSetExtension1 ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static Builder CreateBuilder() { return new Builder(); }

+    public override Builder ToBuilder() { return CreateBuilder(this); }

+    public override Builder CreateBuilderForType() { return new Builder(); }

+    public static Builder CreateBuilder(TestMessageSetExtension1 prototype) {

+      return (Builder) new Builder().MergeFrom(prototype);

+    }

+    

+    public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension1, Builder> {

+      protected override Builder ThisBuilder {

+        get { return this; }

+      }

+      public Builder() {}

+      

+      TestMessageSetExtension1 result = new TestMessageSetExtension1();

+      

+      protected override TestMessageSetExtension1 MessageBeingBuilt {

+        get { return result; }

+      }

+      

+      public override Builder Clear() {

+        result = new TestMessageSetExtension1();

+        return this;

+      }

+      

+      public override Builder Clone() {

+        return new Builder().MergeFrom(result);

+      }

+      

+      public override pbd::MessageDescriptor DescriptorForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Descriptor; }

+      }

+      

+      public override TestMessageSetExtension1 DefaultInstanceForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.DefaultInstance; }

+      }

+      

+      public override TestMessageSetExtension1 BuildPartial() {

+        if (result == null) {

+          throw new global::System.InvalidOperationException("build() has already been called on this Builder");

+        }

+        TestMessageSetExtension1 returnMe = result;

+        result = null;

+        return returnMe;

+      }

+      

+      public override Builder MergeFrom(pb::IMessage other) {

+        if (other is TestMessageSetExtension1) {

+          return MergeFrom((TestMessageSetExtension1) other);

+        } else {

+          base.MergeFrom(other);

+          return this;

+        }

+      }

+      

+      public override Builder MergeFrom(TestMessageSetExtension1 other) {

+        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.DefaultInstance) return this;

+        if (other.HasI) {

+          I = other.I;

+        }

+        this.MergeUnknownFields(other.UnknownFields);

+        return this;

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input) {

+        return MergeFrom(input, pb::ExtensionRegistry.Empty);

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+        pb::UnknownFieldSet.Builder unknownFields = null;

+        while (true) {

+          uint tag = input.ReadTag();

+          switch (tag) {

+            case 0: {

+              if (unknownFields != null) {

+                this.UnknownFields = unknownFields.Build();

+              }

+              return this;

+            }

+            default: {

+              if (pb::WireFormat.IsEndGroupTag(tag)) {

+                if (unknownFields != null) {

+                  this.UnknownFields = unknownFields.Build();

+                }

+                return this;

+              }

+              if (unknownFields == null) {

+                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);

+              }

+              ParseUnknownField(input, unknownFields, extensionRegistry, tag);

+              break;

+            }

+            case 120: {

+              I = input.ReadInt32();

+              break;

+            }

+          }

+        }

+      }

+      

+      

+      public bool HasI {

+        get { return result.HasI; }

+      }

+      public int I {

+        get { return result.I; }

+        set { SetI(value); }

+      }

+      public Builder SetI(int value) {

+        result.hasI = true;

+        result.i_ = value;

+        return this;

+      }

+      public Builder ClearI() {

+        result.hasI = false;

+        result.i_ = 0;

+        return this;

+      }

+    }

+    static TestMessageSetExtension1() {

+      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);

+    }

+  }

+  

+  public sealed partial class TestMessageSetExtension2 : pb::GeneratedMessage<TestMessageSetExtension2, TestMessageSetExtension2.Builder> {

+    private static readonly TestMessageSetExtension2 defaultInstance = new Builder().BuildPartial();

+    public static TestMessageSetExtension2 DefaultInstance {

+      get { return defaultInstance; }

+    }

+    

+    public override TestMessageSetExtension2 DefaultInstanceForType {

+      get { return defaultInstance; }

+    }

+    

+    protected override TestMessageSetExtension2 ThisMessage {

+      get { return this; }

+    }

+    

+    public static pbd::MessageDescriptor Descriptor {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor; }

+    }

+    

+    protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetExtension2, TestMessageSetExtension2.Builder> InternalFieldAccessors {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable; }

+    }

+    

+    public const int MessageSetExtensionFieldNumber = 1547769;

+    public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2> MessageSetExtension;

+    public const int StrFieldNumber = 25;

+    private bool hasStr;

+    private string str_ = "";

+    public bool HasStr {

+      get { return hasStr; }

+    }

+    public string Str {

+      get { return str_; }

+    }

+    

+    public override bool IsInitialized {

+      get {

+        return true;

+      }

+    }

+    

+    public override void WriteTo(pb::CodedOutputStream output) {

+      int size = SerializedSize;

+      if (HasStr) {

+        output.WriteString(25, Str);

+      }

+      UnknownFields.WriteTo(output);

+    }

+    

+    private int memoizedSerializedSize = -1;

+    public override int SerializedSize {

+      get {

+        int size = memoizedSerializedSize;

+        if (size != -1) return size;

+        

+        size = 0;

+        if (HasStr) {

+          size += pb::CodedOutputStream.ComputeStringSize(25, Str);

+        }

+        size += UnknownFields.SerializedSize;

+        memoizedSerializedSize = size;

+        return size;

+      }

+    }

+    

+    public static TestMessageSetExtension2 ParseFrom(pb::ByteString data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseFrom(byte[] data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseFrom(global::System.IO.Stream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseDelimitedFrom(global::System.IO.Stream input) {

+      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseFrom(pb::CodedInputStream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static TestMessageSetExtension2 ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static Builder CreateBuilder() { return new Builder(); }

+    public override Builder ToBuilder() { return CreateBuilder(this); }

+    public override Builder CreateBuilderForType() { return new Builder(); }

+    public static Builder CreateBuilder(TestMessageSetExtension2 prototype) {

+      return (Builder) new Builder().MergeFrom(prototype);

+    }

+    

+    public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension2, Builder> {

+      protected override Builder ThisBuilder {

+        get { return this; }

+      }

+      public Builder() {}

+      

+      TestMessageSetExtension2 result = new TestMessageSetExtension2();

+      

+      protected override TestMessageSetExtension2 MessageBeingBuilt {

+        get { return result; }

+      }

+      

+      public override Builder Clear() {

+        result = new TestMessageSetExtension2();

+        return this;

+      }

+      

+      public override Builder Clone() {

+        return new Builder().MergeFrom(result);

+      }

+      

+      public override pbd::MessageDescriptor DescriptorForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Descriptor; }

+      }

+      

+      public override TestMessageSetExtension2 DefaultInstanceForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.DefaultInstance; }

+      }

+      

+      public override TestMessageSetExtension2 BuildPartial() {

+        if (result == null) {

+          throw new global::System.InvalidOperationException("build() has already been called on this Builder");

+        }

+        TestMessageSetExtension2 returnMe = result;

+        result = null;

+        return returnMe;

+      }

+      

+      public override Builder MergeFrom(pb::IMessage other) {

+        if (other is TestMessageSetExtension2) {

+          return MergeFrom((TestMessageSetExtension2) other);

+        } else {

+          base.MergeFrom(other);

+          return this;

+        }

+      }

+      

+      public override Builder MergeFrom(TestMessageSetExtension2 other) {

+        if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.DefaultInstance) return this;

+        if (other.HasStr) {

+          Str = other.Str;

+        }

+        this.MergeUnknownFields(other.UnknownFields);

+        return this;

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input) {

+        return MergeFrom(input, pb::ExtensionRegistry.Empty);

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+        pb::UnknownFieldSet.Builder unknownFields = null;

+        while (true) {

+          uint tag = input.ReadTag();

+          switch (tag) {

+            case 0: {

+              if (unknownFields != null) {

+                this.UnknownFields = unknownFields.Build();

+              }

+              return this;

+            }

+            default: {

+              if (pb::WireFormat.IsEndGroupTag(tag)) {

+                if (unknownFields != null) {

+                  this.UnknownFields = unknownFields.Build();

+                }

+                return this;

+              }

+              if (unknownFields == null) {

+                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);

+              }

+              ParseUnknownField(input, unknownFields, extensionRegistry, tag);

+              break;

+            }

+            case 202: {

+              Str = input.ReadString();

+              break;

+            }

+          }

+        }

+      }

+      

+      

+      public bool HasStr {

+        get { return result.HasStr; }

+      }

+      public string Str {

+        get { return result.Str; }

+        set { SetStr(value); }

+      }

+      public Builder SetStr(string value) {

+        pb::ThrowHelper.ThrowIfNull(value, "value");

+        result.hasStr = true;

+        result.str_ = value;

+        return this;

+      }

+      public Builder ClearStr() {

+        result.hasStr = false;

+        result.str_ = "";

+        return this;

+      }

+    }

+    static TestMessageSetExtension2() {

+      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);

+    }

+  }

+  

+  public sealed partial class RawMessageSet : pb::GeneratedMessage<RawMessageSet, RawMessageSet.Builder> {

+    private static readonly RawMessageSet defaultInstance = new Builder().BuildPartial();

+    public static RawMessageSet DefaultInstance {

+      get { return defaultInstance; }

+    }

+    

+    public override RawMessageSet DefaultInstanceForType {

+      get { return defaultInstance; }

+    }

+    

+    protected override RawMessageSet ThisMessage {

+      get { return this; }

+    }

+    

+    public static pbd::MessageDescriptor Descriptor {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet__Descriptor; }

+    }

+    

+    protected override pb::FieldAccess.FieldAccessorTable<RawMessageSet, RawMessageSet.Builder> InternalFieldAccessors {

+      get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable; }

+    }

+    

+    #region Nested types

+    public static class Types {

+      public sealed partial class Item : pb::GeneratedMessage<Item, Item.Builder> {

+        private static readonly Item defaultInstance = new Builder().BuildPartial();

+        public static Item DefaultInstance {

+          get { return defaultInstance; }

+        }

+        

+        public override Item DefaultInstanceForType {

+          get { return defaultInstance; }

+        }

+        

+        protected override Item ThisMessage {

+          get { return this; }

+        }

+        

+        public static pbd::MessageDescriptor Descriptor {

+          get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor; }

+        }

+        

+        protected override pb::FieldAccess.FieldAccessorTable<Item, Item.Builder> InternalFieldAccessors {

+          get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable; }

+        }

+        

+        public const int TypeIdFieldNumber = 2;

+        private bool hasTypeId;

+        private int typeId_ = 0;

+        public bool HasTypeId {

+          get { return hasTypeId; }

+        }

+        public int TypeId {

+          get { return typeId_; }

+        }

+        

+        public const int MessageFieldNumber = 3;

+        private bool hasMessage;

+        private pb::ByteString message_ = pb::ByteString.Empty;

+        public bool HasMessage {

+          get { return hasMessage; }

+        }

+        public pb::ByteString Message {

+          get { return message_; }

+        }

+        

+        public override bool IsInitialized {

+          get {

+            if (!hasTypeId) return false;

+            if (!hasMessage) return false;

+            return true;

+          }

+        }

+        

+        public override void WriteTo(pb::CodedOutputStream output) {

+          int size = SerializedSize;

+          if (HasTypeId) {

+            output.WriteInt32(2, TypeId);

+          }

+          if (HasMessage) {

+            output.WriteBytes(3, Message);

+          }

+          UnknownFields.WriteTo(output);

+        }

+        

+        private int memoizedSerializedSize = -1;

+        public override int SerializedSize {

+          get {

+            int size = memoizedSerializedSize;

+            if (size != -1) return size;

+            

+            size = 0;

+            if (HasTypeId) {

+              size += pb::CodedOutputStream.ComputeInt32Size(2, TypeId);

+            }

+            if (HasMessage) {

+              size += pb::CodedOutputStream.ComputeBytesSize(3, Message);

+            }

+            size += UnknownFields.SerializedSize;

+            memoizedSerializedSize = size;

+            return size;

+          }

+        }

+        

+        public static Item ParseFrom(pb::ByteString data) {

+          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+        }

+        public static Item ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {

+          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+        }

+        public static Item ParseFrom(byte[] data) {

+          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+        }

+        public static Item ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {

+          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+        }

+        public static Item ParseFrom(global::System.IO.Stream input) {

+          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+        }

+        public static Item ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+        }

+        public static Item ParseDelimitedFrom(global::System.IO.Stream input) {

+          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();

+        }

+        public static Item ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();

+        }

+        public static Item ParseFrom(pb::CodedInputStream input) {

+          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+        }

+        public static Item ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+        }

+        public static Builder CreateBuilder() { return new Builder(); }

+        public override Builder ToBuilder() { return CreateBuilder(this); }

+        public override Builder CreateBuilderForType() { return new Builder(); }

+        public static Builder CreateBuilder(Item prototype) {

+          return (Builder) new Builder().MergeFrom(prototype);

+        }

+        

+        public sealed partial class Builder : pb::GeneratedBuilder<Item, Builder> {

+          protected override Builder ThisBuilder {

+            get { return this; }

+          }

+          public Builder() {}

+          

+          Item result = new Item();

+          

+          protected override Item MessageBeingBuilt {

+            get { return result; }

+          }

+          

+          public override Builder Clear() {

+            result = new Item();

+            return this;

+          }

+          

+          public override Builder Clone() {

+            return new Builder().MergeFrom(result);

+          }

+          

+          public override pbd::MessageDescriptor DescriptorForType {

+            get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Descriptor; }

+          }

+          

+          public override Item DefaultInstanceForType {

+            get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.DefaultInstance; }

+          }

+          

+          public override Item BuildPartial() {

+            if (result == null) {

+              throw new global::System.InvalidOperationException("build() has already been called on this Builder");

+            }

+            Item returnMe = result;

+            result = null;

+            return returnMe;

+          }

+          

+          public override Builder MergeFrom(pb::IMessage other) {

+            if (other is Item) {

+              return MergeFrom((Item) other);

+            } else {

+              base.MergeFrom(other);

+              return this;

+            }

+          }

+          

+          public override Builder MergeFrom(Item other) {

+            if (other == global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.DefaultInstance) return this;

+            if (other.HasTypeId) {

+              TypeId = other.TypeId;

+            }

+            if (other.HasMessage) {

+              Message = other.Message;

+            }

+            this.MergeUnknownFields(other.UnknownFields);

+            return this;

+          }

+          

+          public override Builder MergeFrom(pb::CodedInputStream input) {

+            return MergeFrom(input, pb::ExtensionRegistry.Empty);

+          }

+          

+          public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+            pb::UnknownFieldSet.Builder unknownFields = null;

+            while (true) {

+              uint tag = input.ReadTag();

+              switch (tag) {

+                case 0: {

+                  if (unknownFields != null) {

+                    this.UnknownFields = unknownFields.Build();

+                  }

+                  return this;

+                }

+                default: {

+                  if (pb::WireFormat.IsEndGroupTag(tag)) {

+                    if (unknownFields != null) {

+                      this.UnknownFields = unknownFields.Build();

+                    }

+                    return this;

+                  }

+                  if (unknownFields == null) {

+                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);

+                  }

+                  ParseUnknownField(input, unknownFields, extensionRegistry, tag);

+                  break;

+                }

+                case 16: {

+                  TypeId = input.ReadInt32();

+                  break;

+                }

+                case 26: {

+                  Message = input.ReadBytes();

+                  break;

+                }

+              }

+            }

+          }

+          

+          

+          public bool HasTypeId {

+            get { return result.HasTypeId; }

+          }

+          public int TypeId {

+            get { return result.TypeId; }

+            set { SetTypeId(value); }

+          }

+          public Builder SetTypeId(int value) {

+            result.hasTypeId = true;

+            result.typeId_ = value;

+            return this;

+          }

+          public Builder ClearTypeId() {

+            result.hasTypeId = false;

+            result.typeId_ = 0;

+            return this;

+          }

+          

+          public bool HasMessage {

+            get { return result.HasMessage; }

+          }

+          public pb::ByteString Message {

+            get { return result.Message; }

+            set { SetMessage(value); }

+          }

+          public Builder SetMessage(pb::ByteString value) {

+            pb::ThrowHelper.ThrowIfNull(value, "value");

+            result.hasMessage = true;

+            result.message_ = value;

+            return this;

+          }

+          public Builder ClearMessage() {

+            result.hasMessage = false;

+            result.message_ = pb::ByteString.Empty;

+            return this;

+          }

+        }

+        static Item() {

+          object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);

+        }

+      }

+      

+    }

+    #endregion

+    

+    public const int ItemFieldNumber = 1;

+    private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> item_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item>();

+    public scg::IList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> ItemList {

+      get { return item_; }

+    }

+    public int ItemCount {

+      get { return item_.Count; }

+    }

+    public global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item GetItem(int index) {

+      return item_[index];

+    }

+    

+    public override bool IsInitialized {

+      get {

+        return true;

+      }

+    }

+    

+    public override void WriteTo(pb::CodedOutputStream output) {

+      int size = SerializedSize;

+      foreach (global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item element in ItemList) {

+        output.WriteGroup(1, element);

+      }

+      UnknownFields.WriteTo(output);

+    }

+    

+    private int memoizedSerializedSize = -1;

+    public override int SerializedSize {

+      get {

+        int size = memoizedSerializedSize;

+        if (size != -1) return size;

+        

+        size = 0;

+        foreach (global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item element in ItemList) {

+          size += pb::CodedOutputStream.ComputeGroupSize(1, element);

+        }

+        size += UnknownFields.SerializedSize;

+        memoizedSerializedSize = size;

+        return size;

+      }

+    }

+    

+    public static RawMessageSet ParseFrom(pb::ByteString data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static RawMessageSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static RawMessageSet ParseFrom(byte[] data) {

+      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();

+    }

+    public static RawMessageSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();

+    }

+    public static RawMessageSet ParseFrom(global::System.IO.Stream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static RawMessageSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static RawMessageSet ParseDelimitedFrom(global::System.IO.Stream input) {

+      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();

+    }

+    public static RawMessageSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {

+      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();

+    }

+    public static RawMessageSet ParseFrom(pb::CodedInputStream input) {

+      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();

+    }

+    public static RawMessageSet ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();

+    }

+    public static Builder CreateBuilder() { return new Builder(); }

+    public override Builder ToBuilder() { return CreateBuilder(this); }

+    public override Builder CreateBuilderForType() { return new Builder(); }

+    public static Builder CreateBuilder(RawMessageSet prototype) {

+      return (Builder) new Builder().MergeFrom(prototype);

+    }

+    

+    public sealed partial class Builder : pb::GeneratedBuilder<RawMessageSet, Builder> {

+      protected override Builder ThisBuilder {

+        get { return this; }

+      }

+      public Builder() {}

+      

+      RawMessageSet result = new RawMessageSet();

+      

+      protected override RawMessageSet MessageBeingBuilt {

+        get { return result; }

+      }

+      

+      public override Builder Clear() {

+        result = new RawMessageSet();

+        return this;

+      }

+      

+      public override Builder Clone() {

+        return new Builder().MergeFrom(result);

+      }

+      

+      public override pbd::MessageDescriptor DescriptorForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Descriptor; }

+      }

+      

+      public override RawMessageSet DefaultInstanceForType {

+        get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.DefaultInstance; }

+      }

+      

+      public override RawMessageSet BuildPartial() {

+        if (result == null) {

+          throw new global::System.InvalidOperationException("build() has already been called on this Builder");

+        }

+        result.item_.MakeReadOnly();

+        RawMessageSet returnMe = result;

+        result = null;

+        return returnMe;

+      }

+      

+      public override Builder MergeFrom(pb::IMessage other) {

+        if (other is RawMessageSet) {

+          return MergeFrom((RawMessageSet) other);

+        } else {

+          base.MergeFrom(other);

+          return this;

+        }

+      }

+      

+      public override Builder MergeFrom(RawMessageSet other) {

+        if (other == global::Google.ProtocolBuffers.TestProtos.RawMessageSet.DefaultInstance) return this;

+        if (other.item_.Count != 0) {

+          base.AddRange(other.item_, result.item_);

+        }

+        this.MergeUnknownFields(other.UnknownFields);

+        return this;

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input) {

+        return MergeFrom(input, pb::ExtensionRegistry.Empty);

+      }

+      

+      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {

+        pb::UnknownFieldSet.Builder unknownFields = null;

+        while (true) {

+          uint tag = input.ReadTag();

+          switch (tag) {

+            case 0: {

+              if (unknownFields != null) {

+                this.UnknownFields = unknownFields.Build();

+              }

+              return this;

+            }

+            default: {

+              if (pb::WireFormat.IsEndGroupTag(tag)) {

+                if (unknownFields != null) {

+                  this.UnknownFields = unknownFields.Build();

+                }

+                return this;

+              }

+              if (unknownFields == null) {

+                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);

+              }

+              ParseUnknownField(input, unknownFields, extensionRegistry, tag);

+              break;

+            }

+            case 11: {

+              global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.CreateBuilder();

+              input.ReadGroup(1, subBuilder, extensionRegistry);

+              AddItem(subBuilder.BuildPartial());

+              break;

+            }

+          }

+        }

+      }

+      

+      

+      public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> ItemList {

+        get { return result.item_; }

+      }

+      public int ItemCount {

+        get { return result.ItemCount; }

+      }

+      public global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item GetItem(int index) {

+        return result.GetItem(index);

+      }

+      public Builder SetItem(int index, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item value) {

+        pb::ThrowHelper.ThrowIfNull(value, "value");

+        result.item_[index] = value;

+        return this;

+      }

+      public Builder SetItem(int index, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder builderForValue) {

+        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");

+        result.item_[index] = builderForValue.Build();

+        return this;

+      }

+      public Builder AddItem(global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item value) {

+        pb::ThrowHelper.ThrowIfNull(value, "value");

+        result.item_.Add(value);

+        return this;

+      }

+      public Builder AddItem(global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder builderForValue) {

+        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");

+        result.item_.Add(builderForValue.Build());

+        return this;

+      }

+      public Builder AddRangeItem(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> values) {

+        base.AddRange(values, result.item_);

+        return this;

+      }

+      public Builder ClearItem() {

+        result.item_.Clear();

+        return this;

+      }

+    }

+    static RawMessageSet() {

+      object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.Descriptor, null);

+    }

+  }

+  

+  #endregion

+  

+}