package benchmarks;

option java_outer_classname = "GoogleSize";
option optimize_for = CODE_SIZE;

message SizeMessage1 {
  required string field1 = 1;
  optional string field9 = 9;
  optional string field18 = 18;
  optional bool field80 = 80 [default=false];
  optional bool field81 = 81 [default=true];
  required int32 field2 = 2;
  required int32 field3 = 3;
  optional int32 field280 = 280;
  optional int32 field6 = 6 [default=0];
  optional int64 field22 = 22;
  optional string field4 = 4;
  repeated fixed64 field5 = 5;
  optional bool field59 = 59 [default=false];
  optional string field7 = 7;
  optional int32 field16 = 16;
  optional int32 field130 = 130 [default=0];
  optional bool field12 = 12 [default=true];
  optional bool field17 = 17 [default=true];
  optional bool field13 = 13 [default=true];
  optional bool field14 = 14 [default=true];
  optional int32 field104 = 104 [default=0];
  optional int32 field100 = 100 [default=0];
  optional int32 field101 = 101 [default=0];
  optional string field102 = 102;
  optional string field103 = 103;
  optional int32 field29 = 29 [default=0];
  optional bool field30 = 30 [default=false];
  optional int32 field60 = 60 [default=-1];
  optional int32 field271 = 271 [default=-1];
  optional int32 field272 = 272 [default=-1];
  optional int32 field150 = 150;
  optional int32 field23 = 23 [default=0];
  optional bool field24 = 24 [default=false];
  optional int32 field25 = 25 [default=0];
  optional SizeMessage1SubMessage field15 = 15;
  optional bool field78 = 78;
  optional int32 field67 = 67 [default=0];
  optional int32 field68 = 68;
  optional int32 field128 = 128 [default=0];
  optional string field129 = 129 [default="xxxxxxxxxxxxxxxxxxxxx"];
  optional int32 field131 = 131 [default=0];
}

message SizeMessage1SubMessage {
  optional int32 field1 = 1 [default=0];
  optional int32 field2 = 2 [default=0];
  optional int32 field3 = 3 [default=0];
  optional string field15 = 15;
  optional bool field12 = 12 [default=true];
  optional int64 field13 = 13;
  optional int64 field14 = 14;
  optional int32 field16 = 16;
  optional int32 field19 = 19 [default=2];
  optional bool field20  = 20 [default=true];
  optional bool field28 = 28 [default=true];
  optional fixed64 field21 = 21;
  optional int32 field22 = 22;
  optional bool field23 = 23 [ default=false ];
  optional bool field206 = 206 [default=false];
  optional fixed32 field203 = 203;
  optional int32 field204 = 204;
  optional string field205 = 205;
  optional uint64 field207 = 207;
  optional uint64 field300 = 300;
}

message SizeMessage2 {
  optional string field1 = 1;
  optional int64 field3 = 3;
  optional int64 field4 = 4;
  optional int64 field30 = 30;
  optional bool field75  = 75 [default=false];
  optional string field6 = 6;
  optional bytes field2 = 2;
  optional int32 field21 = 21 [default=0];
  optional int32 field71 = 71;
  optional float field25 = 25;
  optional int32 field109 = 109 [default=0];
  optional int32 field210 = 210 [default=0];
  optional int32 field211 = 211 [default=0];
  optional int32 field212 = 212 [default=0];
  optional int32 field213 = 213 [default=0];
  optional int32 field216 = 216 [default=0];
  optional int32 field217 = 217 [default=0];
  optional int32 field218 = 218 [default=0];
  optional int32 field220 = 220 [default=0];
  optional int32 field221 = 221 [default=0];
  optional float field222 = 222 [default=0.0];
  optional int32 field63 = 63;

  repeated group Group1 = 10 {
    required float field11 = 11;
    optional float field26 = 26;
    optional string field12 = 12;
    optional string field13 = 13;
    repeated string field14 = 14;
    required uint64 field15 = 15;
    optional int32 field5 = 5;
    optional string field27 = 27;
    optional int32 field28 = 28;
    optional string field29 = 29;
    optional string field16 = 16;
    repeated string field22 = 22;
    repeated int32 field73 = 73;
    optional int32 field20 = 20 [default=0];
    optional string field24 = 24;
    optional SizeMessage2GroupedMessage field31 = 31;
  }
  repeated string field128 = 128;
  optional int64 field131 = 131;
  repeated string field127 = 127;
  optional int32 field129 = 129;
  repeated int64 field130 = 130;
  optional bool field205 = 205 [default=false];
  optional bool field206 = 206 [default=false];
}

message SizeMessage2GroupedMessage {
  optional float field1 = 1;
  optional float field2 = 2;
  optional float field3 = 3 [default=0.0];
  optional bool field4 = 4;
  optional bool field5 = 5;
  optional bool field6 = 6 [default=true];
  optional bool field7 = 7 [default=false];
  optional float field8 = 8;
  optional bool field9 = 9;
  optional float field10 = 10;
  optional int64 field11 = 11;
}
