context: // Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
  #pragma warning disable 1591
  #region Designer generated code
  
  using pb = global::Google.ProtocolBuffers;
  using pbc = global::Google.ProtocolBuffers.Collections;
  using pbd = global::Google.ProtocolBuffers.Descriptors;
  using scg = global::System.Collections.Generic;
  namespace bnet.protocol.game_master {
    
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
    public static partial class GameFactory {
    
      #region Extension registration
      public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
      }
      #endregion
      #region Static variables
      internal static pbd::MessageDescriptor internal__static_bnet_protocol_game_master_GameProperties__Descriptor;
      internal static pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameProperties, global::bnet.protocol.game_master.GameProperties.Builder> internal__static_bnet_protocol_game_master_GameProperties__FieldAccessorTable;
      #endregion
      #region Descriptor
      public static pbd::FileDescriptor Descriptor {
        get { return descriptor; }
      }
      private static pbd::FileDescriptor descriptor;
      
      static GameFactory() {
        byte[] descriptorData = global::System.Convert.FromBase64String(
            "CiZzZXJ2aWNlL2dhbWVfbWFzdGVyL2dhbWVfZmFjdG9yeS5wcm90bxIZYm5l" + 
            "dC5wcm90b2NvbC5nYW1lX21hc3RlchocbGliL3Byb3RvY29sL2F0dHJpYnV0" + 
            "ZS5wcm90bxoZbGliL3Byb3RvY29sL2VudGl0eS5wcm90byKJAQoOR2FtZVBy" + 
            "b3BlcnRpZXMSOAoGZmlsdGVyGAEgASgLMiguYm5ldC5wcm90b2NvbC5hdHRy" + 
            "aWJ1dGUuQXR0cmlidXRlRmlsdGVyEhUKBmNyZWF0ZRgCIAEoCDoFZmFsc2US" + 
            "EgoEb3BlbhgDIAEoCDoEdHJ1ZRISCgpwcm9ncmFtX2lkGAQgASgH");
        pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
          descriptor = root;
          internal__static_bnet_protocol_game_master_GameProperties__Descriptor = Descriptor.MessageTypes[0];
          internal__static_bnet_protocol_game_master_GameProperties__FieldAccessorTable = 
              new pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameProperties, global::bnet.protocol.game_master.GameProperties.Builder>(internal__static_bnet_protocol_game_master_GameProperties__Descriptor,
                  new string[] { "Filter", "Create", "Open", "ProgramId", });
          return null;
        };
        pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
            new pbd::FileDescriptor[] {
            global::bnet.protocol.attribute.Proto.Attribute.Descriptor, 
            global::bnet.protocol.Entity.Descriptor, 
            }, assigner);
      }
      #endregion
      
    }
    #region Messages
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
    public sealed partial class GameProperties : pb::GeneratedMessage<GameProperties, GameProperties.Builder> {
      private static readonly GameProperties defaultInstance = new Builder().BuildPartial();
      private static readonly string[] _gamePropertiesFieldNames = new string[] { "create", "filter", "open", "program_id" };
      private static readonly uint[] _gamePropertiesFieldTags = new uint[] { 16, 10, 24, 37 };
      public static GameProperties DefaultInstance {
        get { return defaultInstance; }
      }
      
      public override GameProperties DefaultInstanceForType {
        get { return defaultInstance; }
      }
      
      protected override GameProperties ThisMessage {
        get { return this; }
      }
      
      public static pbd::MessageDescriptor Descriptor {
        get { return global::bnet.protocol.game_master.GameFactory.internal__static_bnet_protocol_game_master_GameProperties__Descriptor; }
      }
      
      protected override pb::FieldAccess.FieldAccessorTable<GameProperties, GameProperties.Builder> InternalFieldAccessors {
        get { return global::bnet.protocol.game_master.GameFactory.internal__static_bnet_protocol_game_master_GameProperties__FieldAccessorTable; }
      }
      
      public const int FilterFieldNumber = 1;
      private bool hasFilter;
      private global::bnet.protocol.attribute.AttributeFilter filter_ = global::bnet.protocol.attribute.AttributeFilter.DefaultInstance;
      public bool HasFilter {
        get { return hasFilter; }
      }
      public global::bnet.protocol.attribute.AttributeFilter Filter {
        get { return filter_; }
      }
      
      public const int CreateFieldNumber = 2;
      private bool hasCreate;
      private bool create_;
      public bool HasCreate {
        get { return hasCreate; }
      }
      public bool Create {
        get { return create_; }
      }
      
      public const int OpenFieldNumber = 3;
      private bool hasOpen;
      private bool open_ = true;
      public bool HasOpen {
        get { return hasOpen; }
      }
      public bool Open {
        get { return open_; }
      }
      
      public const int ProgramIdFieldNumber = 4;
      private bool hasProgramId;
      private uint programId_;
      public bool HasProgramId {
        get { return hasProgramId; }
      }
      public uint ProgramId {
        get { return programId_; }
      }
      
      public override bool IsInitialized {
        get {
          if (HasFilter) {
            if (!Filter.IsInitialized) return false;
          }
          return true;
        }
      }
      
      public override void WriteTo(pb::ICodedOutputStream output) {
        int size = SerializedSize;
        string[] field_names = _gamePropertiesFieldNames;
        if (hasFilter) {
          output.WriteMessage(1, field_names[1], Filter);
        }
        if (hasCreate) {
          output.WriteBool(2, field_names[0], Create);
        }
        if (hasOpen) {
          output.WriteBool(3, field_names[2], Open);
        }
        if (hasProgramId) {
          output.WriteFixed32(4, field_names[3], ProgramId);
        }
        UnknownFields.WriteTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public override int SerializedSize {
        get {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
          
          size = 0;
          if (hasFilter) {
            size += pb::CodedOutputStream.ComputeMessageSize(1, Filter);
          }
          if (hasCreate) {
            size += pb::CodedOutputStream.ComputeBoolSize(2, Create);
          }
          if (hasOpen) {
            size += pb::CodedOutputStream.ComputeBoolSize(3, Open);
          }
          if (hasProgramId) {
            size += pb::CodedOutputStream.ComputeFixed32Size(4, ProgramId);
          }
          size += UnknownFields.SerializedSize;
          memoizedSerializedSize = size;
          return size;
        }
      }
      
      public static GameProperties ParseFrom(pb::ByteString data) {
        return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
      }
      public static GameProperties ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
        return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
      }
      public static GameProperties ParseFrom(byte[] data) {
        return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
      }
      public static GameProperties ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
        return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
      }
      public static GameProperties ParseFrom(global::System.IO.Stream input) {
        return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
      }
      public static GameProperties ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
        return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
      }
      public static GameProperties ParseDelimitedFrom(global::System.IO.Stream input) {
        return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
      }
      public static GameProperties ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
        return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
      }
      public static GameProperties ParseFrom(pb::ICodedInputStream input) {
        return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
      }
      public static GameProperties ParseFrom(pb::ICodedInputStream 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(GameProperties prototype) {
        return (Builder) new Builder().MergeFrom(prototype);
      }
      
      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
      public sealed partial class Builder : pb::GeneratedBuilder<GameProperties, Builder> {
        protected override Builder ThisBuilder {
          get { return this; }
        }
        public Builder() {}
        
  
gt:       GameProperties result = new GameProperties();