syntax = "proto2";

package test;

message M {
    optional int32 x = 1;
    optional int32 y = 2;
    optional int32 y2 = 2;

    optional int32 z1 = 0;
    optional int32 z12 = 0;
    optional int32 z2 = 0x1fffffff;
    optional int32 z3 = 0x20000000;
    optional int32 z4 = 0Xffffffff;
    optional int32 z5 = 04777777777;

    optional int32 z6 = 0xffffffffffffffffffffffffffffffff;

    optional int32 z6 = -1;

    optional int32 r1 = 19000;
    optional int32 r2 = 19001;
    optional int32 r3 = 19999;

    optional int32 k1 = 18999;
    optional int32 k2 = 20000;

    optional float f1 = 1.0;
    optional float f2 = -1.0;
    optional float f3 = inf;
    optional float f4 = -inf;
    optional float f5 = nan;
    optional float f6 = -nan;

    optional bool b1 = false;
    optional bool b2 = true;
    optional bool b3 = max;

    optional string s1 = "";
    optional string s2 = '';
    optional string s3 = "abc";
    optional string s4 = '\xff\xff\xff';

    optional int32 m1 = {};
    optional int32 m2 = [];
    optional int32 m3 = 1 to 2;
    optional int32 m4 = a: 2;
    optional int32 m5 = a = 2;
}