# Generated by the protocol buffer compiler (protoc-perl) DO NOT EDIT!
# source: google/protobuf/unittest.proto



use strict;
use warnings;

use Google::ProtocolBuffers;
{
    unless (ProtobufUnittest::TestEnumWithDupValue->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_enum(
            'ProtobufUnittest::TestEnumWithDupValue',
            [
               ['FOO1', 1],
               ['BAR1', 2],
               ['BAZ', 3],
               ['FOO2', 1],
               ['BAR2', 2],

            ]
        );
    }
    
    unless (ProtobufUnittest::TestAllTypes::NestedEnum->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_enum(
            'ProtobufUnittest::TestAllTypes::NestedEnum',
            [
               ['FOO', 1],
               ['BAR', 2],
               ['BAZ', 3],

            ]
        );
    }
    
    unless (ProtobufUnittest::TestSparseEnum->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_enum(
            'ProtobufUnittest::TestSparseEnum',
            [
               ['SPARSE_A', 123],
               ['SPARSE_B', 62374],
               ['SPARSE_C', 12589234],
               ['SPARSE_D', -15],
               ['SPARSE_E', -53452],
               ['SPARSE_F', 0],
               ['SPARSE_G', 2],

            ]
        );
    }
    
    unless (ProtobufUnittest::ForeignEnum->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_enum(
            'ProtobufUnittest::ForeignEnum',
            [
               ['FOREIGN_FOO', 4],
               ['FOREIGN_BAR', 5],
               ['FOREIGN_BAZ', 6],

            ]
        );
    }
    
    unless (ProtobufUnittestImport::ImportEnum->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_enum(
            'ProtobufUnittestImport::ImportEnum',
            [
               ['IMPORT_FOO', 7],
               ['IMPORT_BAR', 8],
               ['IMPORT_BAZ', 9],

            ]
        );
    }
    
    unless (ProtobufUnittest::TestExtremeDefaultValues->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestExtremeDefaultValues',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BYTES(), 
                    'escaped_bytes', 1, "\x{00}\x{01}\x{07}\x{08}\x{0c}\x{0a}\x{0d}\x{09}\x{0b}\x{5c}\x{27}\x{22}\x{fe}"
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT32(), 
                    'large_uint32', 2, Math::BigInt->new('4294967295')
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT64(), 
                    'large_uint64', 3, Math::BigInt->new('18446744073709551615')
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'small_int32', 4, -2147483647
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    'small_int64', 5, Math::BigInt->new('-9223372036854775807')
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'utf8_string', 6, "\x{e1}\x{88}\x{b4}"
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestDupFieldNumber::Foo->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_group(
            'ProtobufUnittest::TestDupFieldNumber::Foo',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestMutualRecursionB->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestMutualRecursionB',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestMutualRecursionA', 
                    'a', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'optional_int32', 2, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::ForeignMessage->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::ForeignMessage',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'c', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittestImport::ImportMessage->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittestImport::ImportMessage',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'd', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestNestedMessageHasBits::NestedMessage->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestNestedMessageHasBits::NestedMessage',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'nestedmessage_repeated_int32', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::ForeignMessage', 
                    'nestedmessage_repeated_foreignmessage', 2, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::RepeatedGroupExtension->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_group(
            'ProtobufUnittest::RepeatedGroupExtension',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 47, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestEmptyMessage->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestEmptyMessage',
            [

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::BarResponse->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::BarResponse',
            [

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestFieldOrderings->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestFieldOrderings',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    'my_int', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    '[my_extension_int]', 5, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'my_string', 11, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[my_extension_string]', 50, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FLOAT(), 
                    'my_float', 101, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::FooResponse->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::FooResponse',
            [

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestAllExtensions->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestAllExtensions',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    '[optional_int32_extension]', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    '[optional_int64_extension]', 2, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT32(), 
                    '[optional_uint32_extension]', 3, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT64(), 
                    '[optional_uint64_extension]', 4, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT32(), 
                    '[optional_sint32_extension]', 5, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT64(), 
                    '[optional_sint64_extension]', 6, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED32(), 
                    '[optional_fixed32_extension]', 7, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED64(), 
                    '[optional_fixed64_extension]', 8, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED32(), 
                    '[optional_sfixed32_extension]', 9, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED64(), 
                    '[optional_sfixed64_extension]', 10, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FLOAT(), 
                    '[optional_float_extension]', 11, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_DOUBLE(), 
                    '[optional_double_extension]', 12, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BOOL(), 
                    '[optional_bool_extension]', 13, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[optional_string_extension]', 14, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BYTES(), 
                    '[optional_bytes_extension]', 15, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::OptionalGroupExtension', 
                    '[OptionalGroup_extension]', 16, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::NestedMessage', 
                    '[optional_nested_message_extension]', 18, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignMessage', 
                    '[optional_foreign_message_extension]', 19, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittestImport::ImportMessage', 
                    '[optional_import_message_extension]', 20, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::NestedEnum', 
                    '[optional_nested_enum_extension]', 21, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignEnum', 
                    '[optional_foreign_enum_extension]', 22, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittestImport::ImportEnum', 
                    '[optional_import_enum_extension]', 23, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[optional_string_piece_extension]', 24, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[optional_cord_extension]', 25, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    '[repeated_int32_extension]', 31, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    '[repeated_int64_extension]', 32, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT32(), 
                    '[repeated_uint32_extension]', 33, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT64(), 
                    '[repeated_uint64_extension]', 34, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT32(), 
                    '[repeated_sint32_extension]', 35, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT64(), 
                    '[repeated_sint64_extension]', 36, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED32(), 
                    '[repeated_fixed32_extension]', 37, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED64(), 
                    '[repeated_fixed64_extension]', 38, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED32(), 
                    '[repeated_sfixed32_extension]', 39, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED64(), 
                    '[repeated_sfixed64_extension]', 40, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_FLOAT(), 
                    '[repeated_float_extension]', 41, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_DOUBLE(), 
                    '[repeated_double_extension]', 42, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_BOOL(), 
                    '[repeated_bool_extension]', 43, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[repeated_string_extension]', 44, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_BYTES(), 
                    '[repeated_bytes_extension]', 45, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::RepeatedGroupExtension', 
                    '[RepeatedGroup_extension]', 46, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::TestAllTypes::NestedMessage', 
                    '[repeated_nested_message_extension]', 48, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::ForeignMessage', 
                    '[repeated_foreign_message_extension]', 49, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittestImport::ImportMessage', 
                    '[repeated_import_message_extension]', 50, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::TestAllTypes::NestedEnum', 
                    '[repeated_nested_enum_extension]', 51, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::ForeignEnum', 
                    '[repeated_foreign_enum_extension]', 52, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittestImport::ImportEnum', 
                    '[repeated_import_enum_extension]', 53, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[repeated_string_piece_extension]', 54, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[repeated_cord_extension]', 55, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    '[default_int32_extension]', 61, 41
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    '[default_int64_extension]', 62, 42
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT32(), 
                    '[default_uint32_extension]', 63, 43
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT64(), 
                    '[default_uint64_extension]', 64, 44
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT32(), 
                    '[default_sint32_extension]', 65, -45
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT64(), 
                    '[default_sint64_extension]', 66, 46
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED32(), 
                    '[default_fixed32_extension]', 67, 47
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED64(), 
                    '[default_fixed64_extension]', 68, 48
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED32(), 
                    '[default_sfixed32_extension]', 69, 49
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED64(), 
                    '[default_sfixed64_extension]', 70, -50
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FLOAT(), 
                    '[default_float_extension]', 71, 51.5
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_DOUBLE(), 
                    '[default_double_extension]', 72, 52e3
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BOOL(), 
                    '[default_bool_extension]', 73, 1
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[default_string_extension]', 74, "hello"
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BYTES(), 
                    '[default_bytes_extension]', 75, "world"
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::NestedEnum', 
                    '[default_nested_enum_extension]', 81, 2
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignEnum', 
                    '[default_foreign_enum_extension]', 82, 5
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittestImport::ImportEnum', 
                    '[default_import_enum_extension]', 83, 8
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[default_string_piece_extension]', 84, "abc"
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    '[default_cord_extension]', 85, 123
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestRequired', 
                    '[TestRequired.single]', 1000, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::TestRequired', 
                    '[TestRequired.multi]', 1001, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestAllTypes::OptionalGroup->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_group(
            'ProtobufUnittest::TestAllTypes::OptionalGroup',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 17, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestCamelCaseFieldNames->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestCamelCaseFieldNames',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'PrimitiveField', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'StringField', 2, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignEnum', 
                    'EnumField', 3, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignMessage', 
                    'MessageField', 4, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'StringPieceField', 5, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'CordField', 6, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'RepeatedPrimitiveField', 7, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'RepeatedStringField', 8, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::ForeignEnum', 
                    'RepeatedEnumField', 9, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::ForeignMessage', 
                    'RepeatedMessageField', 10, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'RepeatedStringPieceField', 11, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'RepeatedCordField', 12, ""
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestAllTypes->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestAllTypes',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'optional_int32', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    'optional_int64', 2, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT32(), 
                    'optional_uint32', 3, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT64(), 
                    'optional_uint64', 4, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT32(), 
                    'optional_sint32', 5, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT64(), 
                    'optional_sint64', 6, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED32(), 
                    'optional_fixed32', 7, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED64(), 
                    'optional_fixed64', 8, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED32(), 
                    'optional_sfixed32', 9, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED64(), 
                    'optional_sfixed64', 10, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FLOAT(), 
                    'optional_float', 11, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_DOUBLE(), 
                    'optional_double', 12, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BOOL(), 
                    'optional_bool', 13, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'optional_string', 14, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BYTES(), 
                    'optional_bytes', 15, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::OptionalGroup', 
                    'OptionalGroup', 16, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::NestedMessage', 
                    'optional_nested_message', 18, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignMessage', 
                    'optional_foreign_message', 19, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittestImport::ImportMessage', 
                    'optional_import_message', 20, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::NestedEnum', 
                    'optional_nested_enum', 21, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignEnum', 
                    'optional_foreign_enum', 22, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittestImport::ImportEnum', 
                    'optional_import_enum', 23, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'optional_string_piece', 24, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'optional_cord', 25, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'repeated_int32', 31, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    'repeated_int64', 32, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT32(), 
                    'repeated_uint32', 33, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT64(), 
                    'repeated_uint64', 34, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT32(), 
                    'repeated_sint32', 35, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT64(), 
                    'repeated_sint64', 36, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED32(), 
                    'repeated_fixed32', 37, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED64(), 
                    'repeated_fixed64', 38, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED32(), 
                    'repeated_sfixed32', 39, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED64(), 
                    'repeated_sfixed64', 40, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_FLOAT(), 
                    'repeated_float', 41, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_DOUBLE(), 
                    'repeated_double', 42, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_BOOL(), 
                    'repeated_bool', 43, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'repeated_string', 44, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_BYTES(), 
                    'repeated_bytes', 45, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::TestAllTypes::RepeatedGroup', 
                    'RepeatedGroup', 46, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::TestAllTypes::NestedMessage', 
                    'repeated_nested_message', 48, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::ForeignMessage', 
                    'repeated_foreign_message', 49, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittestImport::ImportMessage', 
                    'repeated_import_message', 50, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::TestAllTypes::NestedEnum', 
                    'repeated_nested_enum', 51, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::ForeignEnum', 
                    'repeated_foreign_enum', 52, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittestImport::ImportEnum', 
                    'repeated_import_enum', 53, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'repeated_string_piece', 54, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'repeated_cord', 55, ""
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'default_int32', 61, 41
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT64(), 
                    'default_int64', 62, 42
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT32(), 
                    'default_uint32', 63, 43
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_UINT64(), 
                    'default_uint64', 64, 44
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT32(), 
                    'default_sint32', 65, -45
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SINT64(), 
                    'default_sint64', 66, 46
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED32(), 
                    'default_fixed32', 67, 47
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FIXED64(), 
                    'default_fixed64', 68, 48
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED32(), 
                    'default_sfixed32', 69, 49
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_SFIXED64(), 
                    'default_sfixed64', 70, -50
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_FLOAT(), 
                    'default_float', 71, 51.5
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_DOUBLE(), 
                    'default_double', 72, 52e3
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BOOL(), 
                    'default_bool', 73, 1
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'default_string', 74, "hello"
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_BYTES(), 
                    'default_bytes', 75, "world"
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::NestedEnum', 
                    'default_nested_enum', 81, 2
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::ForeignEnum', 
                    'default_foreign_enum', 82, 5
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittestImport::ImportEnum', 
                    'default_import_enum', 83, 8
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'default_string_piece', 84, "abc"
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_STRING(), 
                    'default_cord', 85, 123
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::OptionalGroupExtension->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_group(
            'ProtobufUnittest::OptionalGroupExtension',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 17, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestForeignNested->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestForeignNested',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestAllTypes::NestedMessage', 
                    'foreign_nested', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestRequired->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestRequired',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_REQUIRED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy2', 2, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REQUIRED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'b', 3, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy4', 4, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy5', 5, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy6', 6, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy7', 7, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy8', 8, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy9', 9, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy10', 10, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy11', 11, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy12', 12, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy13', 13, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy14', 14, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy15', 15, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy16', 16, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy17', 17, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy18', 18, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy19', 19, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy20', 20, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy21', 21, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy22', 22, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy23', 23, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy24', 24, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy25', 25, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy26', 26, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy27', 27, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy28', 28, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy29', 29, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy30', 30, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy31', 31, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy32', 32, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REQUIRED(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'c', 33, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::FooRequest->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::FooRequest',
            [

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestDupFieldNumber->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestDupFieldNumber',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestDupFieldNumber::Foo', 
                    'Foo', 2, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestDupFieldNumber::Bar', 
                    'Bar', 3, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::BarRequest->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::BarRequest',
            [

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestEmptyMessageWithExtensions->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestEmptyMessageWithExtensions',
            [

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestAllTypes::NestedMessage->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestAllTypes::NestedMessage',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'bb', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestReallyLargeTagNumber->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestReallyLargeTagNumber',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'bb', 268435455, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestMutualRecursionA->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestMutualRecursionA',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestMutualRecursionB', 
                    'bb', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestAllTypes::RepeatedGroup->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_group(
            'ProtobufUnittest::TestAllTypes::RepeatedGroup',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 47, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestRequiredForeign->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestRequiredForeign',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestRequired', 
                    'optional_message', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_REPEATED(), 
                    'ProtobufUnittest::TestRequired', 
                    'repeated_message', 2, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'dummy', 3, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestRecursiveMessage->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestRecursiveMessage',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestRecursiveMessage', 
                    'a', 1, undef
                ],
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'i', 2, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestDupFieldNumber::Bar->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_group(
            'ProtobufUnittest::TestDupFieldNumber::Bar',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    Google::ProtocolBuffers::Constants::TYPE_INT32(), 
                    'a', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

    unless (ProtobufUnittest::TestNestedMessageHasBits->can('_pb_fields_list')) {
        Google::ProtocolBuffers->create_message(
            'ProtobufUnittest::TestNestedMessageHasBits',
            [
                [
                    Google::ProtocolBuffers::Constants::LABEL_OPTIONAL(), 
                    'ProtobufUnittest::TestNestedMessageHasBits::NestedMessage', 
                    'optional_nested_message', 1, undef
                ],

            ],
            { 'create_accessors' => 1,  }
        );
    }

}
1;
