#
# DO NOT EDIT!
# This file is automatically generated at least once every
# hour by the GenerateVersionTable() sub in globals.pl.
# Any changes you make will be overwritten.
#
@::log_columns = (
                   'alias',
                   'assigned_to',
                   'bug_file_loc',
                   'bug_severity',
                   'bug_status',
                   'cclist_accessible',
                   'component_id',
                   'deadline',
                   'estimated_time',
                   'everconfirmed',
                   'keywords',
                   'op_sys',
                   'priority',
                   'product_id',
                   'qa_contact',
                   'remaining_time',
                   'rep_platform',
                   'reporter',
                   'reporter_accessible',
                   'resolution',
                   'short_desc',
                   'status_whiteboard',
                   'target_milestone',
                   'version',
                   'votes'
                 );
%::versions = (
                'usermgmt_cmds' => [
                                     'unspecified'
                                   ],
                'WebKit' => [
                              '312.x',
                              '412',
                              '412.x',
                              '416.x',
                              '417.x',
                              '418.x',
                              '420+ (nightly)'
                            ],
                'XPostFacto' => [
                                  '3.0a10',
                                  '3.0a11',
                                  '3.0a3',
                                  '3.0a4',
                                  '3.0a5',
                                  '3.0a6',
                                  '3.0a8',
                                  '3.0a9',
                                  '3.0b1',
                                  'unspecified'
                                ],
                'Infrastructure' => [
                                      'unspecified'
                                    ],
                'HeaderDoc' => [
                                 '6',
                                 '8.0'
                               ],
                'xar' => [
                           'unspecified'
                         ],
                'darwinbuild' => [
                                   '0.1',
                                   '0.2',
                                   '0.3',
                                   '0.4',
                                   '0.5',
                                   '0.6',
                                   '0.6.1',
                                   '0.7',
                                   '0.7.1',
                                   '0.7.2',
                                   '0.7.3',
                                   'current'
                                 ],
                'Doc' => [
                           '1.0'
                         ],
                'openssh-lpk' => [
                                   '0.2',
                                   'current'
                                 ],
                'libFoundation' => [
                                     'unspecified'
                                   ],
                'DarwinPorts' => [
                                   '0.5',
                                   '1.0',
                                   '1.2'
                                 ],
                'OpenAudio' => [
                                 '0.2',
                                 'unspecified'
                               ],
                'OpenDarwin' => [
                                  '7.2.1',
                                  '7.2.1-pre',
                                  '8.2.1',
                                  'unspecified'
                                ]
              );
@::legal_versions = (
                      '0.1',
                      '0.2',
                      '0.3',
                      '0.4',
                      '0.5',
                      '0.6',
                      '0.6.1',
                      '0.7',
                      '0.7.1',
                      '0.7.2',
                      '0.7.3',
                      '1.0',
                      '1.2',
                      '3.0a10',
                      '3.0a11',
                      '3.0a3',
                      '3.0a4',
                      '3.0a5',
                      '3.0a6',
                      '3.0a8',
                      '3.0a9',
                      '3.0b1',
                      '312.x',
                      '412',
                      '412.x',
                      '416.x',
                      '417.x',
                      '418.x',
                      '420+ (nightly)',
                      '6',
                      '7.2.1',
                      '7.2.1-pre',
                      '8.0',
                      '8.2.1',
                      'current',
                      'unspecified'
                    );
%::components = (
                  'usermgmt_cmds' => [
                                       'adduser',
                                       'pw',
                                       'www'
                                     ],
                  'WebKit' => [
                                'Accessibility',
                                'CSS',
                                'Drosera',
                                'Forms',
                                'Frames',
                                'History',
                                'HTML DOM',
                                'HTML Editing',
                                'Images',
                                'Java',
                                'JavaScriptCore',
                                'JavaScriptGlue',
                                'Layout and Rendering',
                                'New Bugs',
                                'Page Loading',
                                'PDF',
                                'Platform',
                                'Plug-ins',
                                'Printing',
                                'Reindeer',
                                'SVG',
                                'Tables',
                                'Text',
                                'Tools',
                                'Web Inspector',
                                'Web Template Framework',
                                'WebCore JavaScript',
                                'WebCore Misc.',
                                'WebKit API',
                                'WebKit Misc.',
                                'WebKit Website',
                                'XML',
                                'XML DOM'
                              ],
                  'XPostFacto' => [
                                    'Application',
                                    'BootX',
                                    'doc',
                                    'Failure Booting',
                                    'Kernel Extensions',
                                    'Machine Support',
                                    'NVRAM Patches',
                                    'Other',
                                    'PCI cards',
                                    'User Interface',
                                    'XPFStartupItem'
                                  ],
                  'Infrastructure' => [
                                        'Bugzilla',
                                        'General',
                                        'Web Content'
                                      ],
                  'HeaderDoc' => [
                                   'HeaderDoc'
                                 ],
                  'xar' => [
                             'xar'
                           ],
                  'darwinbuild' => [
                                     'darwinbuild',
                                     'darwinxref'
                                   ],
                  'Doc' => [
                             'Articles'
                           ],
                  'openssh-lpk' => [
                                     'openssh-lpk'
                                   ],
                  'libFoundation' => [
                                       'General'
                                     ],
                  'DarwinPorts' => [
                                     'base',
                                     'doc',
                                     'dp-cocoa',
                                     'dports',
                                     'uninstaller',
                                     'www'
                                   ],
                  'OpenAudio' => [
                                   'OpenAudio'
                                 ],
                  'OpenDarwin' => [
                                    'CoreFoundation',
                                    'General',
                                    'Releases'
                                  ]
                );
@::legal_components = (
                        'Accessibility',
                        'adduser',
                        'Application',
                        'Articles',
                        'base',
                        'BootX',
                        'Bugzilla',
                        'CoreFoundation',
                        'CSS',
                        'darwinbuild',
                        'darwinxref',
                        'doc',
                        'dp-cocoa',
                        'dports',
                        'Drosera',
                        'Failure Booting',
                        'Forms',
                        'Frames',
                        'General',
                        'HeaderDoc',
                        'History',
                        'HTML DOM',
                        'HTML Editing',
                        'Images',
                        'Java',
                        'JavaScriptCore',
                        'JavaScriptGlue',
                        'Kernel Extensions',
                        'Layout and Rendering',
                        'Machine Support',
                        'New Bugs',
                        'NVRAM Patches',
                        'OpenAudio',
                        'openssh-lpk',
                        'Other',
                        'Page Loading',
                        'PCI cards',
                        'PDF',
                        'Platform',
                        'Plug-ins',
                        'Printing',
                        'pw',
                        'Reindeer',
                        'Releases',
                        'SVG',
                        'Tables',
                        'Text',
                        'Tools',
                        'uninstaller',
                        'User Interface',
                        'Web Content',
                        'Web Inspector',
                        'Web Template Framework',
                        'WebCore JavaScript',
                        'WebCore Misc.',
                        'WebKit API',
                        'WebKit Misc.',
                        'WebKit Website',
                        'www',
                        'xar',
                        'XML',
                        'XML DOM',
                        'XPFStartupItem'
                      );
@::legal_product = (
                     'darwinbuild',
                     'DarwinPorts',
                     'Doc',
                     'HeaderDoc',
                     'Infrastructure',
                     'libFoundation',
                     'OpenAudio',
                     'OpenDarwin',
                     'openssh-lpk',
                     'usermgmt_cmds',
                     'WebKit',
                     'xar',
                     'XPostFacto'
                   );
@::legal_priority = (
                      'P1',
                      'P2',
                      'P3',
                      'P4',
                      'P5'
                    );
@::legal_severity = (
                      'blocker',
                      'critical',
                      'major',
                      'normal',
                      'minor',
                      'trivial',
                      'enhancement'
                    );
@::legal_platform = (
                      'All',
                      'DEC',
                      'HP',
                      'Macintosh',
                      'Macintosh PowerPC',
                      'Macintosh Intel',
                      'PC',
                      'SGI',
                      'Sun',
                      'Other',
                      'S60 Hardware',
                      'S60 Emulator'
                    );
@::legal_opsys = (
                   'All',
                   'Windows 3.1',
                   'Windows 95',
                   'Windows 98',
                   'Windows ME',
                   'Windows 2000',
                   'Windows NT',
                   'Windows XP',
                   'Windows Server 2003',
                   'Mac System 7',
                   'Mac System 7.5',
                   'Mac System 7.6.1',
                   'Mac System 8.0',
                   'Mac System 8.5',
                   'Mac System 8.6',
                   'Mac System 9.x',
                   'Mac OS X 10.0',
                   'Mac OS X 10.1',
                   'Mac OS X 10.2',
                   'Mac OS X 10.3',
                   'Mac OS X 10.4',
                   'Linux',
                   'S60 3rd edition',
                   'BSD/OS',
                   'FreeBSD',
                   'NetBSD',
                   'OpenBSD',
                   'AIX',
                   'BeOS',
                   'HP-UX',
                   'IRIX',
                   'Neutrino',
                   'OpenVMS',
                   'OS/2',
                   'OSF/1',
                   'Solaris',
                   'SunOS',
                   'Darwin',
                   'OpenDarwin',
                   'other'
                 );
@::legal_bug_status = (
                        'UNCONFIRMED',
                        'NEW',
                        'ASSIGNED',
                        'REOPENED',
                        'RESOLVED',
                        'VERIFIED',
                        'CLOSED'
                      );
@::legal_resolution = (
                        '',
                        'FIXED',
                        'INVALID',
                        'WONTFIX',
                        'LATER',
                        'REMIND',
                        'DUPLICATE',
                        'WORKSFORME',
                        'MOVED'
                      );
@::settable_resolution = (
                           '',
                           'FIXED',
                           'INVALID',
                           'WONTFIX',
                           'LATER',
                           'REMIND',
                           'WORKSFORME'
                         );
%::proddesc = (
                'WebKit' => 'An open source XML and HTML framework used by the Safari Web browser.',
                'usermgmt_cmds' => 'Command-line tools for managing users and groups.',
                'XPostFacto' => 'Mac OS X extensions for "unsupported" machines.',
                'Infrastructure' => 'The OpenDarwin.org services and servers and stuff.',
                'HeaderDoc' => 'The documentation generator.',
                'xar' => 'eXtensible ARchiver',
                'darwinbuild' => 'Bugs related to the darwinbuild scripts',
                'Doc' => 'Darwin Documentation',
                'openssh-lpk' => 'OpenSSH LDAP Public Key patch.',
                'DarwinPorts' => 'DarwinPorts infrastructure and ports collection',
                'libFoundation' => 'A light-weight standalone library which implements a large portion of the OPENSTEP specification designed to work with both the GNU and NeXT/Apple Objective-C runtimes.',
                'OpenAudio' => 'Audio driver for Darwin (/dev/dsp)',
                'OpenDarwin' => 'The OpenDarwin operating system. NOTE: General Darwin bugs do NOT belong here UNLESS you intend to work on them. All bugs not specific to OpenDarwin should be filed upstream with Apple FIRST.'
              );
%::classifications = (
                       'Unclassified' => [
                                           'libFoundation',
                                           'Infrastructure',
                                           'HeaderDoc',
                                           'OpenDarwin',
                                           'DarwinPorts',
                                           'Doc',
                                           'XPostFacto',
                                           'xar',
                                           'OpenAudio',
                                           'usermgmt_cmds',
                                           'openssh-lpk',
                                           'WebKit',
                                           'darwinbuild'
                                         ]
                     );
%::classdesc = (
                 'Unclassified' => 'Unassigned to any classifications'
               );
@::enterable_products = (
                          'darwinbuild',
                          'DarwinPorts',
                          'Doc',
                          'HeaderDoc',
                          'Infrastructure',
                          'libFoundation',
                          'OpenAudio',
                          'OpenDarwin',
                          'openssh-lpk',
                          'usermgmt_cmds',
                          'WebKit',
                          'xar',
                          'XPostFacto'
                        );
%::prodmaxvotes = (
                    'WebKit' => '0',
                    'usermgmt_cmds' => '0',
                    'XPostFacto' => '10',
                    'Infrastructure' => '0',
                    'HeaderDoc' => '0',
                    'xar' => '0',
                    'darwinbuild' => '0',
                    'Doc' => '0',
                    'openssh-lpk' => '0',
                    'DarwinPorts' => '0',
                    'libFoundation' => '0',
                    'OpenAudio' => '0',
                    'OpenDarwin' => '0'
                  );
%::target_milestone = (
                        'WebKit' => [
                                      '---'
                                    ],
                        'usermgmt_cmds' => [
                                             '---'
                                           ],
                        'XPostFacto' => [
                                          '---'
                                        ],
                        'Infrastructure' => [
                                              '---'
                                            ],
                        'HeaderDoc' => [
                                         '---'
                                       ],
                        'darwinbuild' => [
                                           '---'
                                         ],
                        'xar' => [
                                   '---'
                                 ],
                        'Doc' => [
                                   '---'
                                 ],
                        'openssh-lpk' => [
                                           '---'
                                         ],
                        'libFoundation' => [
                                             '---'
                                           ],
                        'DarwinPorts' => [
                                           '---'
                                         ],
                        'OpenAudio' => [
                                         '---'
                                       ],
                        'OpenDarwin' => [
                                          '---'
                                        ]
                      );
@::legal_target_milestone = (
                              '---'
                            );
%::milestoneurl = (
                    'WebKit' => '',
                    'usermgmt_cmds' => '',
                    'XPostFacto' => '',
                    'Infrastructure' => '',
                    'HeaderDoc' => '',
                    'xar' => '',
                    'darwinbuild' => '',
                    'Doc' => '',
                    'openssh-lpk' => '',
                    'DarwinPorts' => '',
                    'libFoundation' => '',
                    'OpenAudio' => '',
                    'OpenDarwin' => ''
                  );
@::legal_keywords = (
                      'EasyFix',
                      'HasReduction',
                      'HitList',
                      'HitListCandidate',
                      'InRadar',
                      'InTSW',
                      'NativeTextArea',
                      'NativeTextField',
                      'NeedsReduction',
                      'PlatformOnly',
                      'Regression',
                      'SVGHitList'
                    );
%::keywordsbyname = (
                      'hitlistcandidate' => '6',
                      'regression' => '3',
                      'svghitlist' => '9',
                      'nativetextfield' => '7',
                      'needsreduction' => '1',
                      'hasreduction' => '2',
                      'inradar' => '4',
                      'intsw' => '11',
                      'easyfix' => '8',
                      'nativetextarea' => '12',
                      'hitlist' => '5',
                      'platformonly' => '10'
                    );
1;
