syntax = "proto2";

package a;

message One {
  extensions 4 to 5, 100 to 200;
  extensions 300, 301, 1000 to max;
  extensions 8 to 25;
  extensions 50, 51, 52, 53 to 60, 61 to 65, 66, 67, 68 to 70, 71 to 75;
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}

message One2 {
  extensions 4 to 5, 100 to 200;
  extensions 300, 301, 1000 to max;
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}

message Two2 {
  extensions 4 to 5, 100 to 200;
  extensions 300, 301, 1000 to max;
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}

message Three2 {
  message Four2 {
    message Five2 {
      extensions 4 to 5, 100 to 200;
      extensions 300, 301, 1000 to max;
      optional int32 one = 1;
      optional int32 two = 2;
      optional int32 three = 3;
    }
    message Six2 {
      extensions 4 to 5, 100 to 200;
      extensions 300, 301, 1000 to max;
      optional int32 one = 1;
      optional int32 two = 2;
      optional int32 three = 3;
    }
  }
  message Seven2 {
    extensions 4 to 5, 100 to 200;
    extensions 300, 301, 1000 to max;
    optional int32 one = 1;
    optional int32 two = 2;
    optional int32 three = 3;
  }
  message Eight2 {
    extensions 4 to 5, 100 to 200;
    extensions 300, 301, 1000 to max;
    optional int32 one = 1;
    optional int32 two = 2;
    optional int32 three = 3;
  }
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}

message Nine2 {
  extensions 4 to 5, 100 to 200;
  extensions 300, 301, 1000 to max;
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}

message Nine {
  extensions 100 to 200;
  extensions 300;
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}
