public Builder clearBaseLocations() {
        baseLocations_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:messages.Region)
    }

    static {
      defaultInstance = new Region(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:messages.Region)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_DynamicTerrainInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_DynamicTerrainInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_StaticTerrainInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_StaticTerrainInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_BaseLocation_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_BaseLocation_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_Chokepoint_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_Chokepoint_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_Polygon_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_Polygon_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_Region_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_Region_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\rterrain.proto\022\010messages\032\013types.proto\032\n" +
      "unit.proto\"M\n\022DynamicTerrainInfo\022\021\n\tisVi" +
      "sible\030\003 \003(\007\022\022\n\nisExplored\030\004 \003(\007\022\020\n\010hasCr" +
      "eep\030\005 \003(\007\"\326\001\n\021StaticTerrainInfo\022!\n\007regio" +
      "ns\030\001 \003(\0132\020.messages.Region\022)\n\013chokepoint" +
      "s\030\002 \003(\0132\024.messages.Chokepoint\022-\n\rbaseLoc" +
      "ations\030\003 \003(\0132\026.messages.BaseLocation\022\026\n\016" +
      "startLocations\030\004 \003(\005\022,\n\021unwalkablePolygo" +
      "n\030\005 \003(\0132\021.messages.Polygon\"\320\002\n\014BaseLocat" +
      "ion\022\n\n\002id\030\014 \002(\005\022$\n\010position\030\001 \002(\0132\022.mess",
      "ages.Position\022,\n\014tilePosition\030\r \002(\0132\026.me" +
      "ssages.TilePosition\022\016\n\006region\030\002 \002(\005\022\023\n\013n" +
      "umMinerals\030\003 \002(\005\022\016\n\006numGas\030\004 \002(\005\022\"\n\010mine" +
      "rals\030\005 \003(\0132\020.messages.UnitId\022(\n\016staticMi" +
      "nerals\030\006 \003(\0132\020.messages.UnitId\022!\n\007geyser" +
      "s\030\007 \003(\0132\020.messages.UnitId\022\016\n\006island\030\010 \002(" +
      "\010\022\023\n\013mineralOnly\030\n \002(\010\022\025\n\rstartLocation\030" +
      "\013 \002(\010\"\263\001\n\nChokepoint\022\n\n\002id\030\007 \002(\005\022\017\n\007regi" +
      "on1\030\001 \002(\005\022\017\n\007region2\030\002 \002(\005\022!\n\005side1\030\003 \002(" +
      "\0132\022.messages.Position\022!\n\005side2\030\004 \002(\0132\022.m",
      "essages.Position\022\"\n\006center\030\005 \002(\0132\022.messa" +
      "ges.Position\022\r\n\005width\030\006 \002(\001\"\226\001\n\007Polygon\022" +
      "$\n\010vertices\030\001 \003(\0132\022.messages.Position\022\014\n" +
      "\004area\030\002 \002(\001\022\021\n\tperimeter\030\003 \002(\001\022\"\n\006center" +
      "\030\004 \002(\0132\022.messages.Position\022 \n\005holes\030\005 \003(" +
      "\0132\021.messages.Polygon\"d\n\006Region\022\n\n\002id\030\001 \002" +
      "(\005\022\"\n\007polygon\030\002 \002(\0132\021.messages.Polygon\022\023" +
      "\n\013chokepoints\030\003 \003(\005\022\025\n\rbaseLocations\030\004 \003" +
      "(\005B+\n\030org.bwapi.proxy.messagesB\017TerrainM" +
      "essages"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_messages_DynamicTerrainInfo_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_messages_DynamicTerrainInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_DynamicTerrainInfo_descriptor,
              new java.lang.String[] { "IsVisible", "IsExplored", "HasCreep", });
          internal_static_messages_StaticTerrainInfo_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_messages_StaticTerrainInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_StaticTerrainInfo_descriptor,
              new java.lang.String[] { "Regions", "Chokepoints", "BaseLocations", "StartLocations", "UnwalkablePolygon", });
          internal_static_messages_BaseLocation_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_messages_BaseLocation_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_BaseLocation_descriptor,
              new java.lang.String[] { "Id", "Position", "TilePosition", "Region", "NumMinerals", "NumGas", "Minerals", "StaticMinerals", "Geysers", "Island", "MineralOnly", "StartLocation", });
          internal_static_messages_Chokepoint_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_messages_Chokepoint_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_Chokepoint_descriptor,
              new java.lang.String[] { "Id", "Region1", "Region2", "Side1", "Side2", "Center", "Width", });
          internal_static_messages_Polygon_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_messages_Polygon_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_Polygon_descriptor,
              new java.lang.String[] { "Vertices", "Area", "Perimeter", "Center", "Holes", });
          internal_static_messages_Region_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_messages_Region_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_Region_descriptor,
              new java.lang.String[] { "Id", "Polygon", "Chokepoints", "BaseLocations", });
          return null;
        }
      }