# file : tm-lib.pl # Purpose : General Trademark processing support # Limit scope package Trademark::lib; # # field lookups # # unique file segment identifier %Trademark::lib::fileSegment = ( 'TRMK' => 'Mark Data', 'TSGN' => 'Assignment Data', 'TKAB' => 'Adversary Proceeding Data', ); # type of record %Trademark::lib::keyAction = ( 'AD' => 'Annual Extract Contains Dead Marks', 'AL' => 'Annual Extract Contains Live Marks', 'OG' => 'Appears in Official Gazette', 'NA' => 'New Application', 'TX' => 'Modification', '00' => 'Published for Opposition', '10' => 'Principal Register', '15' => 'Principal Register - Published Intent to Use', '20' => 'Supplemental Register', '30' => 'Section 12(c)', '41' => '1st Renewal', '42' => '2nd Renewal', '43' => '3rd Renewal', '44' => '4th Renewal', '45' => '5th Renewal', '51' => 'Cancelled Sec. 7 - Entire Registration', '52' => 'Cancelled Sec. 7 - Less than Total Classes', '53' => 'Cancelled Sec. 8 - Entire Registration', '54' => 'Cancelled Sec. 8 - Less than Total Classes', '61' => 'Cancelled Sec. 37 - Entire Registration', '62' => 'Cancelled Sec. 37 - Less than Total Classes', '63' => 'Cancelled Sec. 18 - Entire Registration', '64' => 'Cancelled Sec. 18 - Less than Total Classes', '65' => 'Cancelled Sec. 24 - Entire Registration', '66' => 'Cancelled Sec. 24 - Less than Total Classes', '67' => 'Inadvertently Issued Registration Number', '70' => 'Amended', '71' => 'Restricted', '80' => 'Corrected', '90' => 'New Certificate', 'AS' => 'Weekly Extract', 'AN' => 'Annual Extract', 'TT' => 'Weekly Extract', ); # mark serial number series indication %Trademark::lib::seriesCode = ( '70' => '1881 - 03/31/1905', '71' => '04/01/1905 - 12/31/1955', '72' => '01/01/1956 - 08/31/1973', '73' => '09/01/1973 - 11/15/1989', '74' => '11/16/1989 - present', '80' => 'When the automated record was created, the actual serial number was unknown and a pseudo serial number was assigned by adding an "8" before the seven-digit registratrion number.', '81' => 'When the automated record was created, the actual serial number was unknown and a pseudo serial number was assigned by adding an "8" before the seven-digit registratrion number.', '89' => 'Non-registration data consists of information entered in the database because of treaty obligations, U.S. Statutes, or other requirements.', ); # various cancellation codes %Trademark::lib::cancellationCode = ( ' ' => 'No Entry', '0' => 'No Entry', '1' => 'Section 7 Entire Registration', '2' => 'Section 8 Entire Registration', '3' => 'Section 18 Entire Registration', '4' => 'Section 24 Entire Registration', '5' => 'Section 37 Entire Registration', '6' => 'Entire Registration Inadvertently Issued', '7' => 'Inadvertently Issued, Entire Registration Restored to Pendency', 'A' => 'Section 7 Class(es) in Multiple Class Registration', 'B' => 'Section 8 Class(es) in Multiple Class Registration', 'C' => 'Section 18 Class(es) in Multiple Class Registration', 'D' => 'Section 24 Class(es) in Multiple Class Registration', 'E' => 'Section 37 Class(es) in Multiple Class Registration', ); # record status %Trademark::lib::statusCode = ( '000' => 'Unknown', '600' => 'Abandoned - Incomplete Response', '601' => 'Abandoned - Express', '602' => 'Abandoned - Failure to Response', '603' => 'Abandoned - After ex parte Appeal', '604' => 'Abandoned - After inter partes decision', '605' => 'Abandoned - After Publication', '606' => 'Abandoned - No Statement of Use filed', '607' => 'Abandoned - Defective Statement of Use', '608' => 'Abandoned - After Petition Decision', '609' => 'Abandoned - Defective Divided Application', '612' => 'Petition to revive - received', '614' => 'Abandoned - Petition to revive denied', '616' => 'Revived - Awaiting further action', '618' => 'Abandoned File - Backfile', '620' => 'Backfile application added to data base - Status not recorded', '622' => 'Misassigned Serial Number', '624' => 'Registered - Backfile', '625' => 'Registration added to the data base - Status unclear', '626' => 'Registered - Backfile cancelled or expired', '630' => 'New Application - Record initialized not assigned to examiner', '631' => 'New Application - Divided - Initial processing', '632' => 'Informal Application', '638' => 'New Application - Assigned to examiner', '640' => 'Non-final action counted - Not mailed', '641' => 'Non-final action - Mailed', '642' => 'Inventoried as rejected', '643' => 'Previous action/publication count withdrawn', '644' => 'Final refusal counted - Not mailed', '645' => 'Final refusal - Mailed', '646' => 'Examiner\'s amendment counted - Not mailed', '647' => 'Examiner\'s amendment - Mailed', '648' => 'Action continuing FINAL counted - Not mailed', '649' => 'Action countinuing FINAL - Mailed', '650' => 'Suspension inquiry counted - Not mailed', '651' => 'Suspension inquiry - Mailed', '652' => 'Suspension letter counted - Not mailed', '653' => 'Suspension letter - Mailed', '654' => 'Report completed suspension check - Case still suspended', '661' => 'Response after non-FINAL action - Entered', '663' => 'Response after FINAL rejection - Entered', '664' => 'Inventoried as amended', '665' => 'Notice of unresponsive amendment - Counted', '666' => 'Notice of unresponsive amendment - Mailed', '667' => 'Refusal withdrawal letter - Counted', '668' => 'Refusal withdrawal letter - Mailed', '672' => 'Reinstated - Awaiting further action', '680' => 'Approved for publication', '681' => 'Publication/Registration review complete', '686' => 'Published for Opposition', '688' => 'Notice of Allowance - Issued', '689' => 'Notice of Allowance - Withdrawn', '690' => 'Notice of Allowance - Cancelled', '692' => 'Withdrawn from publication', '693' => 'Withdrawn from registration - Jurisdiction restored', '694' => 'Withdrawn from registration', '700' => 'Registered', '701' => 'Section 8 - Accepted', '702' => 'Section 8 & 15 - Accepted and acknowledged', '703' => 'Section 15 - Acknowledged', '704' => 'partial Section 8 accpeted', '705' => 'partial Section 8 & 15 accpeted and acknowledged', '710' => 'Cancelled - Section 8', '711' => 'Cancelled - Section 7', '712' => 'Cancelled by Court Order (Section 37)', '713' => 'Cancelled - Section 18', '714' => 'Cancelled - Section 24', '715' => 'Cancelled - Restored to Pendancy', '716' => 'Inadvertently issued registration number - Cancelled', '718' => 'Request for first extension - Filed', '719' => 'Request for second extension - Filed', '720' => 'Request for third extension - Filed', '721' => 'Request for fourth extension - Filed', '722' => 'Request for fifth extension - Filed', '724' => 'Extension request refusal - Counted', '725' => 'Extension request refusal - Mailed', '730' => 'First Extension - Granted', '731' => 'Second Extension - Granted', '732' => 'Third Extension - Granted', '733' => 'Fourth Extension - Granted', '734' => 'Fifth Extension - Granted', '740' => 'Post registration paper filed - Assigned to paralegal', '744' => 'Statement of Use - Filed', '745' => 'Statement of Use - Informal-Letter Mailed', '746' => 'Statement of Use - Informal-Response Entered', '747' => 'Statement of Use - ITU Processing Complete', '748' => 'Statement of Use - To Examiner', '752' => 'SU - Examiner Statement counted - Not Mailed', '753' => 'SU - Examiner Statement - Mailed', '756' => 'Examiner statement counted - Not Mailed', '757' => 'Examiner statement - Mailed', '760' => 'Ex parte appeal pending', '762' => 'Ex parte appeal - Refusal reversed', '763' => 'Ex parte appeal - Refusal affirmed', '764' => 'Ex parte appeal dismissed as moot', '765' => 'Concurrent Use', '766' => 'Concurrent use proceeding terminal - Denied', '771' => 'Concurrent use proceeding pending', '772' => 'Interference proceeding pending', '773' => 'Interference proceeding terminated', '774' => 'Opposition pending', '775' => 'Opposition dismissed', '777' => 'Opposition terminated - See TTAB records', '778' => 'Cancellation dismissed', '779' => 'Opposition sustained', '780' => 'Cancellation terminated - See TTAB records', '782' => 'SU - Opposition Decided - Entry of Judgement Deferred', '783' => 'SU - Cancellation Decided - Entry of Judgement Deferred', '784' => 'SU - Interference Decided - Entry of Judgement Deferred', '785' => 'SU - Concurrent Use Decided - Entry of Judgement Deferred', '790' => 'Cancellation Pending', '794' => 'Jurisdiction restored to examiner', '800' => 'Renewed', '801' => 'Opposition instituted', '802' => 'Request for extension of time to file opposition', '803' => 'Amendment after publication', '806' => 'SU - Non-final action counted - Not mailed', '807' => 'SU - Non-final action - Mailed', '808' => 'SU - Final refusal counted - Not mailed', '809' => 'SU - Final refusal - Mailed', '810' => 'SU - Examiner\'s amendment counted - Not mailed', '811' => 'SU - Examiner\'s amendment - Mailed', '812' => 'SU - Action countinuing final entered - Not mailed', '813' => 'SU - Action continuing final - Mailed', '814' => 'SU - Response after non-final action - Entered', '815' => 'SU - Response after final rejection - Entered', '816' => 'SU - Notice of unresponsive amendment - Counted', '817' => 'SU - Notice of unresponsive amendment - Mailed', '818' => 'SU - Statement of Use accepted - Approved for Registration', '819' => 'SU - Registration review complete', '900' => 'Expired', '969' => 'Non-registration data', '970' => 'Record created due to assignment request', ); # Mark drawing code %Trademark::lib::mdcPhysicalAppearance = ( '1' => 'Typeset: Word(s)/letter(s)/number(s)', '2' => 'Illustration: Drawing or design without any word(s)/letter(s)/number(s)', '3' => 'Illustration: Drawing or design which also includes word(s)/letter(s)/number(s)', '4' => 'Illustration: Drawing with word(s)/letter(s)/number(s) in Block form', '5' => 'Illustration: Drawing with word(s)/letter(s)/number(s) in Stylized form', '6' => 'Where no drawing is possible, such as for sound', ); # OG drawing code sizing codes %Trademark::lib::mdcSizingCode = ( 'R' => '150% Enlargement', 'S' => '75% Reduction', 'T' => '50% Reduction', 'U' => '37.5% Reduction', 'V' => '30% Reduction', 'W' => '25% Reduction', 'X' => '22% Reduction', ); # trademark examining office law office %Trademark::lib::tmLawOffice = ( '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '0' => '10', 'A' => '11', 'B' => '12', 'C' => '13', 'D' => '14', 'E' => '15', 'F' => '16', ); # class status code %Trademark::lib::classStatus = ( '1' => 'Sec. 7(d) - Entire Registration', 'A' => 'Sec. 7(d) - Class(es) in a Multiple Class Registration', '2' => 'Sec. 8 - Entire Registration', 'B' => 'Sec. 8 - Class(es) in a Multiple Class Registration', '3' => 'Sec. 18 - Entire Registration', 'C' => 'Sec. 1 - Class(es) in a Multiple Class Registration', '4' => 'Sec. 24 - Entire Registration', 'D' => 'Sec. 24 - Class(es) in a Multiple Class Registration', '5' => 'Sec. 37 - Entire Registration', 'E' => 'Sec. 37 - Class(es) in a Multiple Class Registration', '6' => 'Active', '7' => 'Inactive - Insufficient fee received', '8' => 'Abandoned', '9' => 'Expired', ); # OWNR/ASGN entity type %Trademark::lib::entityType = ( '01' => 'Individual', '02' => 'Partnership', '03' => 'Corporation', '04' => 'Joint Ownership', '05' => 'Joint Venture', '06' => 'Incorporated Association', '07' => 'Unincorporated Association', '08' => 'Trustee', '09' => 'Joint Stock Company', '10' => 'Limited Liability Joint Stock Company (Ltd Liab Jt St Co)', '11' => 'Company', '12' => 'Foundation', '13' => 'Limited Partnership', '14' => 'State Agency', '15' => 'Federal Agency', '98' => 'Unknown', '99' => 'Other', ); # OWNR party type %Trademark::lib::partyType = ( '10' => 'Original Applicant - First Name', '10' => 'Original Applicant - Second Name', '10' => 'Original Applicant - Third and Additional Names', '11' => '1st New Owner Before Publication - First Name', '11' => '1st New Owner Before Pub - Second Name', '11' => '1st New Owner Before Pub - Third and Additional Names', '13' => '2nd New Owner Before Pub - First Name', '13' => '2nd New Owner Before Pub - Second Name', '13' => '2nd New Owner Before Pub - Third and Additional Names', '15' => '3rd New Owner Before Pub - First Name', '15' => '3rd New Owner Before Pub - Second Name', '15' => '3rd New Owner Before Pub - Third and Additional Names', '17' => '4th New Owner Before Pub - First and Additional Names', '18' => '5th New Owner Before Pub - First and Additional Names', '19' => '6th New Owner Before Pub - First and Additional Names', '20' => 'Owner At Publication - First Name', '20' => 'Owner At Publication - Second Name', '21' => '1st New Owner After Pub - First Name', '21' => '1st New Owner After Pub - Second Name', '21' => '1st New Owner After Pub - Third and Additional Names', '23' => '2nd New Owner After Pub - First Name', '23' => '2nd New Owner After Pub - Second Name', '23' => '2nd New Owner After Pub - Third and Additional Names', '25' => '3rd New Owner After Pub - First Name', '25' => '3rd New Owner After Pub - Second Name', '25' => '3rd New Owner After Pub - Third and Additional Names', '27' => '4th New Owner After Pub - First and Additional Names', '28' => '5th New Owner After Pub - First and Additional Names', '29' => '6th New Owner After Pub - First and Additional Names', '30' => 'Original Registrant - First Name', '30' => 'Original Registrant - Second and Additional Names', '40' => '1st New Owner Entered After Reg - First Name', '40' => '1st New Owner Entered After Reg - Second and Additional Names', '41' => '2nd New Owner Entered After Reg - First and Additional Names', '42' => '3rd New Owner Entered After Reg - First and Additional Names', '43' => '4th New Owner Entered After Reg - First and Additional Names', '44' => '5th New Owner Entered After Reg - First and Additional Names', '45' => '6th New Owner Entered After Reg - First and Additional Names', '46' => '7th New Owner Entered After Reg - First and Additional Names', '47' => '8th New Owner Entered After Reg - First and Additional Names', '48' => '9th New Owner Entered After Reg - First and Additional Names', '49' => '10th New Owner Entered After Reg - First and Additional Names', '70' => 'Correspondence Mailing Address', ); # OWNX group type %Trademark::lib::ownxGroupType = ( 'AI' => 'Internal Address Overflow', 'AS' => 'Street Address Overflow', 'AT' => 'Attorney', 'CO' => 'Composed of Statement', 'DB' => 'DBA/AKA Statement', 'DR' => 'Domestic Representative', 'EN' => 'Entity Statement-Free Form', 'NC' => 'Assignment Name Change', 'PN' => 'Party Name Overflow', ); # DEED brief code %Trademark::lib::briefCode = ( '01' => 'Assigns the entire interest and goodwill', '04' => 'Assignment of a part of assignor interest', '05' => 'Mortgage', '06' => 'Lien', '07' => 'License', '08' => 'Security Interest', '09' => 'Merger', '10' => 'Option', '11' => 'Decree of distribution', '12' => 'Letters testamentary', '13' => 'Letters of administration', '14' => 'Change of name', '15' => 'Nunc pro tunc', '16' => 'Court appointment', '17' => 'Released by secured party', '18' => 'Conditional assignment', '19' => 'Merger and change of name', '21' => 'Assignment and Merger', '40' => 'Free Form Text', ); # ASGN group type %Trademark::lib::asgnGroupType = ( 'AI' => 'Internal Address - Overflow', 'AS' => 'Street Address - Overflow', 'CO' => 'Composed of Statement', 'DB' => 'DBA/AKA/ATA/Formerly Statement', 'EN' => 'Entity Statement', 'PN' => 'Name Text - Overflow', ); # TTAB proceeding types %Trademark::lib::proceedingType = ( '70' => 'Ex Parte Appeal', '71' => 'Ex Parte Appeal', '72' => 'Ex Parte Appeal', '73' => 'Ex Parte Appeal', '74' => 'Ex Parte Appeal', '91' => 'Opposition', '92' => 'Cancellation', '93' => 'Interference', '94' => 'Concurrent Use', ); # TTAB status %Trademark::lib::ttabStatusCode = ( '1' => 'Not Instituted', '2' => 'Pending', '3' => 'Pending Awaiting Decision', '4' => 'Pending Limit Of Appeal', '5' => 'Pending Reconsideration', '6' => 'Pending Reinstatement', '7' => 'Pending Court Appeal', '8' => 'Suspended', '9' => 'Terminated', ); # PARX group type %Trademark::lib::parxGroupType = ( 'A1' => 'Address line 1 overflow', 'A2' => 'Address line 2 overflow', 'CO' => 'Composed of statement', 'DB' => 'DBA/AKA statement', 'PN' => 'Name statement', ); # APPH entry type %Trademark::lib::apphEntryType = ( 'A' => 'Appellate Decision', 'C' => 'Counterclaims', 'D' => 'TTAB Decisions', 'E' => 'Free form text Entry Required', 'G' => 'Grounds for Proceedings', 'L' => 'Lawyers Entry', 'M' => 'Motions', 'N' => 'Normal Entries', 'P' => 'Petitions/Request/Response and Stipulations', 'R' => 'Parties Contents Entry', 'S' => 'Suspensions', 'T' => 'Time Entry', 'W' => 'Deals with Suspensions', 'X' => 'Applies only to Ex Parte Appeals', ); # country codes %Trademark::lib::countryCodes = ( 'ADX' => 'Andorra', 'AEX' => 'Arab Emirates', 'AFX' => 'Afghanistan', 'AGX' => 'Antigua & Barbuda', 'AIX' => 'Anguilla', 'ALX' => 'Albania', 'AMX' => 'Armenia', 'ANX' => 'Netherland Antilles', 'AOX' => 'Angola', 'APX' => 'Aripo', 'AQX' => 'Antarctica', 'ARX' => 'Argentina', 'ASX' => 'American Samoa', 'ATX' => 'Austria', 'AUX' => 'Australia', 'AWX' => 'Aruba', 'AZX' => 'Azerbaijan', 'BBX' => 'Barbados', 'BDX' => 'Bangladesh', 'BEX' => 'Belgium', 'BFX' => 'Burkina Faso', 'BGX' => 'Bulgaria', 'BHX' => 'Bahrain', 'BIX' => 'Burundi', 'BJX' => 'Benin', 'BMX' => 'Bermuda', 'BNX' => 'Brunei', 'BOX' => 'Bolivia', 'BRX' => 'Brazil', 'BSX' => 'Bahamas', 'BTX' => 'Bhutan', 'BUX' => 'Burma', 'BVX' => 'Bouvet Island', 'BWX' => 'Botswana', 'BYX' => 'Belarus', 'BZX' => 'Belize', 'CAX' => 'Canada', 'CCX' => 'Cocos/Keeling Island', 'CFX' => 'Central African Republic', 'CGX' => 'Congo', 'CHX' => 'Switzerland', 'CIX' => 'Cote D\'Ivoire', 'CKX' => 'Cook Islands', 'CLX' => 'Chile', 'CMX' => 'Cameroon', 'CNX' => 'China', 'CN1' => 'Tibet', 'COX' => 'Colombia', 'CRX' => 'Costa Rica', 'CSX' => 'Czechoslovakia', 'CUX' => 'Cuba', 'CVX' => 'Cape Verde', 'CXX' => 'Christmas Island', 'CYX' => 'Cyprus', 'CZX' => 'Czech Republic', 'DDX' => 'German Dem Republic', 'DEX' => 'Fed Republic Germany', 'DE1' => 'Fed Republic Germany', 'DJX' => 'Djibouti', 'DKX' => 'Denmark', 'DMX' => 'Dominica', 'DOX' => 'Dominican Republic', 'DZX' => 'Algeria', 'ECX' => 'Ecuador', 'EEX' => 'Estonia', 'EGX' => 'Egypt', 'EHX' => 'Western Sahara', 'ESX' => 'Spain', 'ETX' => 'Ethopia', 'FIX' => 'Finland', 'FJX' => 'Fiji', 'FKX' => 'Falkland Islands', 'FMX' => 'Micronesia', 'FOX' => 'Faroe Islands', 'FRX' => 'France', 'GAX' => 'Gabon', 'GBX' => 'United Kingdom', 'GB1' => 'Channel Islands', 'GB2' => 'England', 'GB3' => 'Great Britain', 'GB4' => 'Isle of Man', 'GB5' => 'Northern Ireland', 'GB6' => 'Scotland', 'GB7' => 'Wales', 'GDX' => 'Grenada', 'GEX' => 'Georgia', 'GFX' => 'French Guiana', 'GHX' => 'Ghana', 'GIX' => 'Gibraltar', 'GLX' => 'Greenland', 'GMX' => 'Gambia', 'GNX' => 'Guinea', 'GPX' => 'Guadeloupe', 'GQX' => 'Equatorial Guinea', 'GRX' => 'Greece', 'GTX' => 'Guatemala', 'GUX' => 'Guam', 'GWX' => 'Guinea-Bissau', 'GYX' => 'Guyana', 'HKX' => 'Hong Kong', 'HMX' => 'Heard/McDonald Island', 'HNX' => 'Honduras', 'HRX' => 'Croatia', 'HTX' => 'Haiti', 'HUX' => 'Hungary', 'HVX' => 'Upper Volta', 'IDX' => 'Indonesia', 'IEX' => 'Ireland', 'ILX' => 'Israel', 'INX' => 'India', 'IOX' => 'British Indian Ocean', 'IQX' => 'Iraq', 'IRX' => 'Iran', 'ISX' => 'Iceland', 'ITX' => 'Italy', 'JMX' => 'Jamaica', 'JOX' => 'Jordan', 'JPX' => 'Japan', 'JTX' => 'Johnston Atoll', 'KEX' => 'Kenya', 'KGX' => 'Kyrgyzstan', 'KHX' => 'Cambodia', 'KIX' => 'Kiribati', 'KMX' => 'Comoros', 'KNX' => 'St Christ-Nevis', 'KPX' => 'Dem Republic of Korea', 'KRX' => 'Republic of Korea', 'KWX' => 'Kuwait', 'KYX' => 'Cayman Islands', 'KZX' => 'Kazakhstan', 'LAX' => 'Lao Peoples Dem Republic', 'LBX' => 'Lebanon', 'LCX' => 'St Lucia', 'LIX' => 'Liechtenstein', 'LKX' => 'Sri Lanka', 'LRX' => 'Liberia', 'LSX' => 'Lesotho', 'LTX' => 'Lithuania', 'LUX' => 'Luxembourg', 'LVX' => 'Latvia', 'LYX' => 'Libya', 'MAX' => 'Morocco', 'MCX' => 'Monaco', 'MDX' => 'Republic Moldova', 'MGX' => 'Madagascar', 'MHX' => 'Marshall Islands', 'MLX' => 'Mali', 'MNX' => 'Mongolia', 'MOX' => 'Macau', 'MPX' => 'N Mariana Island', 'MQX' => 'Martinique', 'MRX' => 'Mauritania', 'MSX' => 'Montserrat', 'MTX' => 'Malta', 'MUX' => 'Mauritius', 'MVX' => 'Maldives', 'MWX' => 'Malawi', 'MXX' => 'Mexico', 'MYX' => 'Malaysia', 'MZX' => 'Mozambique', 'NAX' => 'Namibia', 'NCX' => 'New Calendonia', 'NEX' => 'Niger', 'NFX' => 'Norfolk Island', 'NGX' => 'Nigeria', 'NHX' => 'New Hebrides', 'HIX' => 'Nicaragua', 'NLX' => 'Netherlands', 'NOX' => 'Norway', 'NPX' => 'Nepal', 'NRX' => 'Nauru', 'NTX' => 'Neutral Zone', 'NUX' => 'Niue', 'NVX' => 'Navassa Island', 'NZX' => 'New Zealand', 'OMX' => 'Oman', 'OM1' => 'Muscat', 'PAX' => 'Panama', 'PCX' => 'Pacific Islands', 'PEX' => 'Peru', 'PFX' => 'French Polynesia', 'PGX' => 'Papua New Guinea', 'PHX' => 'Philippines', 'PIX' => 'Paracel Islands', 'PKX' => 'Pakistan', 'PLX' => 'Poland', 'PMX' => 'St Pierre/Mique', 'PNX' => 'Pitcairn Islands', 'PRX' => 'Puerto Rico', 'PTX' => 'Portugal', 'PWX' => 'Palau', 'PYX' => 'Paraguay', 'PZX' => 'Canal Zone', 'QAX' => 'Qatar', 'REX' => 'Reunion', 'RHX' => 'Southern Rhodesia', 'ROX' => 'Romania', 'RUX' => 'Russian Federation', 'RWX' => 'Rwanda', 'SAX' => 'Saudi Arabia', 'SBX' => 'Solomon Islands', 'SCX' => 'Seychelles', 'SDX' => 'Sudan', 'SEX' => 'Sweden', 'SGX' => 'Singapore', 'SHX' => 'St Helena', 'SIX' => 'Slovenia', 'SJX' => 'Svalbard/Jan May', 'SKX' => 'Slovakia', 'SLX' => 'Sierra Leone', 'SMX' => 'San Marino', 'SNX' => 'Senegal', 'SOX' => 'Somalia', 'SRX' => 'Suriname', 'STX' => 'Sao Tome/Principe', 'SUX' => 'Soviet Union', 'SVX' => 'El Salvador', 'SYX' => 'Syrian Arab Republic', 'SZX' => 'Swaziland', 'TCX' => 'Turks/Caicos Island', 'TDX' => 'Chad', 'TFX' => 'Fr So/Antarctic', 'TGX' => 'Togo', 'THX' => 'Thailand', 'TJX' => 'Tajikistan', 'TKX' => 'Tokelau Islands', 'TMX' => 'Turkmenistan', 'TNX' => 'Tunisia', 'TOX' => 'Tonga', 'TPX' => 'East Timor', 'TRX' => 'Turkey', 'TTX' => 'Trinidad/Tobago', 'TVX' => 'Tuvalu', 'TWX' => 'Taiwan', 'TZX' => 'Tanzania', 'UAX' => 'Ukraine', 'UGX' => 'Uganda', 'UMX' => 'U.S. Minor Islands', 'USX' => 'United States', 'UYX' => 'Uruguay', 'UZX' => 'Uzbekistan', 'VAX' => 'Vatican City', 'VCX' => 'St Vincent/Grdn', 'VEX' => 'Venezuela', 'VGX' => 'British Virgin Islands', 'VIX' => 'U.S. Virgin Islands', 'VNX' => 'Vietnam', 'VUX' => 'Vanuatu', 'WFX' => 'Wallis/Futuna Island', 'WKX' => 'Wake Island', 'WSX' => 'Western Samoa', 'YDX' => 'Yemen', 'YEX' => 'Yemen', 'YUX' => 'Yugoslavia', 'ZAX' => 'South Africa', 'ZMX' => 'Zambia', 'ZRX' => 'Zaire', 'ZWX' => 'Zimbabwe', ); # US state codes %Trademark::lib::usStateCodes = ( 'AK' => 'Alaska', 'AL' => 'Alabama', 'AR' => 'Arkansas', 'AZ' => 'Arizona', 'CA' => 'California', 'CO' => 'Colorado', 'CT' => 'Connecticut', 'DC' => 'Washington D.C.', 'DE' => 'Delaware', 'FL' => 'Florida', 'GA' => 'Georgia', 'HI' => 'Hawaii', 'IA' => 'Iowa', 'ID' => 'Idaho', 'IL' => 'Illinois', 'IN' => 'Indiana', 'KS' => 'Kansas', 'KY' => 'Kentucky', 'LA' => 'Louisiana', 'MA' => 'Massachusetts', 'MD' => 'Maryland', 'ME' => 'Maine', 'MI' => 'Michigan', 'MN' => 'Minnesota', 'MO' => 'Missouri', 'MS' => 'Mississippi', 'MT' => 'Montana', 'NC' => 'North Carolina', 'ND' => 'North Dakota', 'NE' => 'Nebraska', 'NH' => 'New Hampshire', 'NJ' => 'New Jersey', 'NM' => 'New Mexica', 'NV' => 'Nevada', 'NY' => 'New York', 'OH' => 'Ohio', 'OK' => 'Oklahoma', 'OR' => 'Oregon', 'PA' => 'Pennsylvania', 'RI' => 'Rhode Island', 'SC' => 'South Carolina', 'SD' => 'South Dakota', 'TN' => 'Tennessee', 'TX' => 'Texas', 'UT' => 'Utah', 'VA' => 'Virginia', 'VT' => 'Vermont', 'WA' => 'Washington', 'WI' => 'Wisconsin', 'WV' => 'West Virginia', 'WY' => 'Wyoming', ); # additional miscellaneous codes %Trademark::lib::miscCodes = ( 'AE' => 'APO for Europe', 'AP' => 'APO for Pacific', 'BXX' => 'Benelux Design Convention', 'EXP' => 'European Patent Organization', 'IBX' => 'International Patent Institute', 'OAX' => 'African Intellectual Property Organization', 'UA' => 'US Army', 'UE' => 'DOE', 'UF' => 'U.S. Air Force', 'UN' => 'U.S. Navy', 'US' => 'NASA', 'USA' => 'U.S. Army', 'USE' => 'ERDA', 'USF' => 'U.S. Air Force', 'USN' => 'U.S. Navy', 'USS' => 'NASA', 'WOX' => 'WIPO', 'XHX' => 'Hague Agreement', 'XXX' => 'Patent Cooperation Treaty', 'ZZX' => 'Stateless', ); # international classification codes %Trademark::lib::internationalClassCodes = ( # GOODS '1' => 'Chemicals', '2' => 'Paints', '3' => 'Cosmetics and Cleaning Preparations', '4' => 'Lubricants and Fuels', '5' => 'Pharmaceuticals', '6' => 'Metal Goods', '7' => 'Machinery', '8' => 'Hand Tools', '9' => 'Electrical and Scientific Apparatus', '10' => 'Medical Apparatus', '11' => 'Environmental Control Apparatus', '12' => 'Vehicles', '13' => 'Firearms', '14' => 'Jewelry', '15' => 'Musical Instruments', '16' => 'Paper Goods and Printed Matter', '17' => 'Rubber Goods', '18' => 'Leather Goods', '19' => 'Non-metallic Building Materials', '20' => 'Furniture and Articles Not Otherwise Classified', '21' => 'Housewares and Glass', '22' => 'Coedage and Fibers', '23' => 'Yarns and Threads', '24' => 'Fabrics', '25' => 'Clothing', '26' => 'Fancy Goods', '27' => 'Floor Coverings', '28' => 'Toys and Sporting Goods', '29' => 'Meats and Processed Foods', '30' => 'Staple Foods', '31' => 'Natural Agricultural Products', '32' => 'Light Beverages', '33' => 'Wines and Spirits', '34' => 'Smokers\' Articles', # SERVICES '35' => 'Advertising and Business', '36' => 'Insurance and Financial', '37' => 'Construction and Repair', '38' => 'Communication', '39' => 'Transportation and Storage', '40' => 'Material Treatment', '41' => 'Education and Entertainment', '42' => 'Miscellaneous Services', ); # us classification codes %Trademark::lib::usClassCodes = ( # GOODS '1' => 'Raw or Partly Prepared Materials', '2' => 'Receptacles', '3' => 'Baggage, Animal Equipment, Portfolios, and Pocket Books', '4' => 'Abrasives and Polishing Materials', '5' => 'Adhesives', '6' => 'Chemicals and Chemical Compositions', '7' => 'Cordage', '8' => 'Smokers\' Articles, not Including Tobacco Products', '9' => 'Explosives, Firearms, Equipments, and Projectiles', '10' => 'Fertilizers', '11' => 'Inks and Inking Materials', '12' => 'Construction Materials', '13' => 'Hardware and Plumbing and Steamfitting Supplies', '14' => 'Metals and Metal Castings and Forgings', '15' => 'Oils and Greases', '16' => 'Protective and Decorative Coatings', '17' => 'Tobacco Products', '18' => 'Medicine and Pharmaceutical Preparations', '19' => 'Vehicles', '20' => 'Linoleum and Oiled Cloth', '21' => 'Electrical Apparatus, Machines, and Supplies', '22' => 'Games, Toys, and Sporting Goods', '23' => 'Cutlery, Machinery, and Tools, and Parts Thereof', '24' => 'Laundry Appliances and Machines', '25' => 'Locks and Safes', '26' => 'Measuring and Scientific Appliances', '27' => 'Horological Instruments', '28' => 'Jewelry and Precious-metal Ware', '29' => 'Brooms, Brushes, and Dusters', '30' => 'Crockery, Earthenware, and Porcelain', '31' => 'Filters and Refrigerators', '32' => 'Furniture and Upholstery', '33' => 'Glassware', '34' => 'Heating, Lighting, and Ventilating Apparatus', '35' => 'Belting, Hose, Machinery Packing, and Nonmetallic Tires', '36' => 'Musical Instruments and Supplies', '37' => 'Paper and Stationery', '38' => 'Prints and Publications', '39' => 'Clothing', '40' => 'Fancy Goods, Furnishings, and Notions', '41' => 'Canes, Parasols, and Umbrellas', '42' => 'Knitted, Netted, and Textile Fabrics, and Substitutes Thereof', '43' => 'Thread and Yarn', '44' => 'Dental, Medical, and Surgical Appliances', '45' => 'Soft Drinks and Carbonated Waters', '46' => 'Foods and Ingredients of Foods', '47' => 'Wines', '48' => 'Malt Beverages and Liquors', '49' => 'Distilled Alcoholic Liquors', '50' => 'Merchandise Not Otherwise Classified', '51' => 'Cosmetics and Toilet Preparations', '52' => 'Detergents and Soaps', # SERVICES '100' => 'Miscellaneous', '101' => 'Advertising and Business', '102' => 'Insurance and Financial', '103' => 'Construction and Repair', '104' => 'Communication', '105' => 'Transportation and Storage', '106' => 'Material Treatment', '107' => 'Education and Entertainment', # COLLECTIVE MEMBERSHIP MARKS '200' => 'Collective Membership', '201' => 'Goods', '202' => 'Services', # CERTIFICATION MARKS 'A' => 'Goods Certification Marks', 'B' => 'Services Certification Marks', ); # PTO entry codes %Trademark::lib::entryCodes = ( '000' => 'DELETE ENTRY', '101' => 'ADDITIONAL FEE', '102' => 'AMENDED ANSWER', '103' => 'AMENDED ANSWER AND COUNTERCLAIM', '104' => 'AMENDED ANSWER TO COUNTERCLAIM', '105' => 'AMENDED COUNTERCLAIM', '106' => 'AMENDED PETITION TO CANCEL FILED', '107' => 'ANSWER', '108' => 'ANSWER, COUNTERCLAIM TO CANCEL, FEE', '109' => 'ANSWER, COUNTERCLAIM TO CANCEL, NO FEE', '110' => 'ANSWER TO COUNTERCLAIM', '111' => 'RETURNED TO PENDING', '112' => 'BRIEF ON MERITS FOR PLAINTIFF', '113' => 'COPIES FORWARDED', '114' => 'COUNTERCLAIM AND FEE', '115' => 'COUNTERCLAIM AND NO FEE', '116' => 'DEFENDANT\'S NOTICE OF RELIANCE', '117' => 'DEFENDANT\'S NOTICE OF TAKING DESPOSITION', '118' => 'DEFENDANT\'S NOTICE OF TAKING TESTIMONY', '119' => 'ELECTION RE: CLASS', '120' => 'EXHIBITS FOR DEFENDANT', '121' => 'EXHIBITS FOR PLAINTIFF', '122' => 'FEE', '123' => 'FILED', '124' => 'FILED AND FEE', '125' => 'FINAL BRIEF ON MERITS FOR DEFENDANT(S)', '126' => 'PAPERS FORWARDED TO DEFENDANT', '127' => 'PAPERS FORWARDED TO PLAINTIFF', '128' => 'PENDING, INSTITUTED', '129' => 'PLAINTIFF\'S NOTICE OF RELIANCE', '130' => 'PLAINTIFF\'S NOTICE OF TAKING OF DEPOSITION', '131' => 'PLAINTIFF\'S NOTICE OF TAKING OF TESTIMONY', '132' => 'REBUTTAL BRIEF', '133' => 'REQUEST FOR ORAL HEARING', '134' => 'RETURN RECEIPT', '135' => 'TESTIMONY FOR DEFENDANT', '136' => 'TESTIMONY FOR PLAINTIFF', '137' => 'VOLUNTARY SURRENDER OF REGISTRATION', '138' => 'VOLUNTARY SURRENDER OF REGN WITH CONSENT', '139' => 'WITHDRAWAL OF APPLICATION', '140' => 'WITHDRAWAL OF APPLICATION WITH CONSENT', '141' => 'WITHDRAWAL OF COUNTERCLAIM', '142' => 'WITHDRAWAL OF OPPOSITION', '143' => 'WITHDRAWAL OF PETITION FOR CANCELLATION', '144' => 'NOTICE OF DEFAULT', '145' => 'DEFAULT JUDGEMENT', '146' => 'CONSENT JUDGEMENT', '147' => 'DISPLOSED OF BEFORE READY FOR FINAL DECISION', '148' => 'UNDELIVERABLE MAIL - PLAINTIFF', '149' => 'UNDELIVERABLE MAIL - DEFENDANT', '150' => 'UNDELIVERABLE MAIL', '151' => 'APPEAL ACKNOWLEDGED', '152' => 'APPEAL ACKNOWLEDGEDS; ADDITIONAL FEE DUE', '153' => 'APPEAL ACKNOWLEDGED; ADDITIONAL FEE OR ELECTION DUE', '154' => 'APPEAL ACKNOWLEDGED; BRIEF DUE', '155' => 'APPEAL ACKNOWLEDGED; CASE REMANDED', '156' => 'APPEAL ACKNOWLEDGED; FEE DUE', '157' => 'APPEAL BRIEF', '158' => 'APPEAL TO BOARD', '159' => 'APPEAL TO BOARD; NO FEE', '160' => 'APPEAL TO BOARD; PARTIAL FEE', '161' => 'APPLICANT\'S ELECTION RE CLASS', '162' => 'APPLICANT\'S LETTER RE HEARING', '163' => 'APPLICANT\'S MOTION TO SUSPEND', '164' => 'APPLICANT\'S MOTION TO SUSPEND PENDING DISPOSITION OF CANCELLATION PROCEEDINGS', '165' => 'APPLICANT\'S MOTION TO SUSPEND PENDING DISPOSITION OF OPPOSITION PROCEEDINGS', '166' => 'APPLICANT\'S REQUEST FOR REMAND', '167' => 'APPLICANT\'S REQUEST FOR REMAND AND AMENDMENT', '168' => 'APPLICANT\'S REQUEST FOR REMAND AND EVIDENCE', '169' => 'APPLICANT\'S REQUEST TO EXTEND TIME TO FILE REPLY BRIEF', '170' => 'BRIEF DUE', '171' => 'EXAMINER\'S REQUEST FOR JURISDICTION', '172' => 'EXAMINER\'S REQUEST FOR REMAND', '173' => 'EXAMINER\'S STATEMENT', '174' => 'JURISDICTION DENIED', '175' => 'JURISDICTION GRANTED', '176' => 'LETTER RE NONAPPEARANCE', '177' => 'ORAL HEARING CANCELLED', '178' => 'PETITION TO COMMISSIONER', '179' => 'PROCEEDINGS RESUMED', '180' => 'REMANDED TO EXAMINER', '181' => 'REMANDED TO EXAMINER (PREMATURE APPEAL)', '182' => 'REMANDED TO EXAMINER (PREMATURE FINAL)', '183' => 'REPLY BRIEF', '184' => 'REPLY BRIEF DUE', '185' => 'REQUEST FOR RECONSIDERATION', '186' => 'REQUEST FOR RECONSIDERATION FROM FINAL BOARD DECISION', '187' => 'REQUEST FOR RECONSIDERATION FROM FINAL REFUSAL', '188' => 'RESPONSE DUE', '189' => 'SUPPLEMENTAL BRIEF', '190' => 'SUPPLEMENTAL BRIEF DUE', '191' => 'TO EXAMINER FOR STATEMENT', '194' => 'WAIVER RE HEARING', '195' => 'REQUEST FOR RE HEARING', '201' => '2(A) IMMORAL OR SCANDALOUS', '202' => '2(A) DECEPTIVE MATTER', '203' => '2(A) DISPARAGEMENT/FALSE CONNECTION', '204' => '2(B) FLAG/COAT OF ARMS/INSIGNIA', '205' => '2(C) NAME/PORTRAIT/SIGNATURE W/O CONSENT', '206' => '2(D) CONFUSION/MISTAKE/DECEPTION W MARK', '207' => '2(E)(1) DESCRIPTIVE/DECEPTIVELY MISDESCRIPTIVE', '208' => '2(E)(2) GEO DESCRIPTIVE OR DECEPTIVELY MISDESCRIPTIVE', '209' => '2(E)(3) PRIMARILY MERELY SURNAME', '210' => 'DOESN\'T FUNCTION AS A CERTIFICATION MARK', '211' => 'DOESN\'T FUNCTION AS A COLLECTIVE MARK', '212' => 'DOESN\'T FUNCTION AS A TRADEMARK', '213' => 'DOESN\'T FUNCTION AS A SERVICE MARK', '214' => 'FRAUD', '215' => 'GENERIC OR COMMON DESCRIPTIVE NAME', '216' => 'MISCELLANEOUS', '217' => 'NOT USED IN COMMERCE', '218' => 'NOT LAWFULLY USED IN COMMERCE', '219' => 'REQUIREMENT', '220' => 'ABANDONMENT', '251' => '2(A) IMMORAL OR SCANDALOUS', '252' => '2(A) DECEPTIVE MATTER', '253' => '2(A) DISPARAGEMENT/FALSE CONNECTION', '254' => '2(B) FLAG/COAT OF ARMS/INSIGNIA', '255' => '2(C) NAME/PORTRAIT/SIGNATURE W/O CONSENT', '256' => '2(D) CONFUSION/MISTAKE/DECEPTION W MARK', '257' => '2(E)(1) DESCRIPTIVE/DECEPTIVELY MISDESCRIPTIVE', '258' => '2(E)(2) GEO DESCRIPTIVE OR DECEPTIVELY MISDESCRIPTIVE', '259' => '2(E)(3) PRIMARILY MERELY SURNAME', '260' => 'DOESN\'T FUNCTION AS A CERTIFICATION MARK', '261' => 'DOESN\'T FUNCTION AS A COLLECTIVE MARK', '262' => 'DOESNT\' FUNCTION AS A TRADEMARK', '263' => 'DOESN\'T FUNCTION AS A SERVICE MARK', '264' => 'FRAUD', '265' => 'GENERIC OR COMMON DESCRIPTIVE NAME', '266' => 'MISCELLANEOUS', '267' => 'NOT USED IN COMMERCE', '268' => 'NOT LAWFULLY USED IN COMMERCE', '269' => 'REQUIREMENT', '270' => 'ABANDONMENT', '301' => 'DEFENDANT\'S MOTION', '302' => 'DEFENDANT\'S MOTION FOR DEFAULT JUDGEMENT', '303' => 'DEFENDANT\'S MOTION FOR JUDGEMENT ON PLEADINGS', '304' => 'DEFENDANT\'S MOTION FOR MORE DEFINITE STATEMENT', '305' => 'DEFENDANT\'S MOTION FOR PROTECTIVE ORDER', '306' => 'DEFENDANT\'S MOTION FOR RELIEF FROM JUDGEMENT', '307' => 'DEFENDANT\'S MOTION FOR SANCTIONS', '308' => 'DEFENDANT\'S MOTION FOR SUMMARY JUDGEMENT', '309' => 'DEFENDANT\'S MOTION TO COMPEL DISCOVERY', '310' => 'DEFENDANT\'S MOTION TO DISMISS; RULE 12(B), FRCP', '311' => 'DEFENDANT\'S MOTION TO DISMISS; TRADEMARK RULE 2.132(A)', '312' => 'DEFENDANT\'S MOTION TO DISMISS; TRADEMARK RULE 2.132(B)', '313' => 'DEFENDANT\'S MOTION TO QUASH', '314' => 'DEFENDANT\'S MOTION TO STRIKE', '315' => 'DEFENDANT\'S MOTION TO STRIKE FROM PLEADINGS', '316' => 'DEFENDANT\'S MOTION TO VACATE/SET ASIDE JUDGEMENT', '317' => 'MOTION TO AMEND ANSWER AND COUNTERCLAIM', '318' => 'MOTION TO AMEND ANSWER TO COUNTERCLAIM', '319' => 'MOTION TO AMEND APPLICATION', '320' => 'MOTION TO AMEND APPLICATION WITH CONSENT', '321' => 'MOTION TO AMEND COUNTERCLAIM', '322' => 'MOTION TO AMEND OPPOSITION', '323' => 'MOTION TO AMEND PETITION TO CANCEL', '324' => 'MOTION TO AMEND REGISTRATION', '325' => 'MOTION TO AMEND REGISTRATION WITHOUT CONSENT', '326' => 'MOTION TO CONSOLIDATE', '327' => 'MOTION TO DIVIDE APPLICATION', '328' => 'MOTION TO FILE AMENDED ANSWER', '329' => 'MOTION TO FILE REPLY BRIEF', '330' => 'PLAINTIFF\'S MOTION', '331' => 'PLAINTIFF\'S MOTION FOR DEFAULT JUDGEMENT', '332' => 'PLAINTIFF\'S MOTION FOR JUDGEMENT ON PLEADINGS', '333' => 'PLAINTIFF\'S MOTION FOR MORE DEFINITE STATEMENT', '334' => 'PLAINTIFF\'S MOTION FOR PROTECTIVE ORDER', '335' => 'PLAINTIFF\'S MOTION FOR RELIEF FROM JUDGEMENT', '336' => 'PLAINTIFF\'S MOTION FOR SANCTIONS', '337' => 'PLAINTIFF\'S MOTION FOR SUMMARY JUDGEMENT', '338' => 'PLAINTIFF\'S MOTION TO COMPEL DISCOVERY', '339' => 'PLAINTIFF\'S MOTION TO DISMISS; RULE 12(B), FRCP', '340' => 'PLAINTIFF\'S MOTION TO DISMISS; TM RULE 2.132(A)', '341' => 'PLAINTIFF\'S MOTION TO DISMISS; TM RULE 2.132(B)', '342' => 'PLAINTIFF\'S MOTION TO QUASH', '343' => 'PLAINTIFF\'S MOTION TO STRIKE', '344' => 'PLAINTIFF\'S MOTION TO STRIKE FROM PLEADINGS', '345' => 'PLAINTIFF\'S MOTION TO VACATE/SET ASIDE JUDGEMENT', '346' => 'MOTION FOR SUMMARY JUDGEMENT', '401' => 'APPEAL TO CAFC', '402' => 'APPEAL TO DISTRICT COURT', '403' => 'COMMISSIONER\'S DECISION', '404' => 'DECISION ON MERITS', '405' => 'DEFENDANT\'S INTERROGATORIES', '406' => 'DEFENDANT\'S PETITION TO COMMISSIONER', '407' => 'DEFENDANT\'S REQUEST FOR ADMISSIONS', '408' => 'DEFENDANT\'S REQUEST FOR DOCUMENTS/THINGS', '409' => 'DEFENDANT\'S REQUEST FOR RECONSIDERATION', '410' => 'DEFENDANT\'S RESPONSE TO DOCUMENTS/THINGS REQUEST', '411' => 'DEFENDANT\'S RESPONSE TO INTERROGATORIES', '412' => 'DEFENDANT\'S RESPONSE TO REQUEST FOR ADMISSIONS', '413' => 'ORDER TO SHOW CAUSE', '414' => 'PETITION TO DISSOLVE CONCURRENT USE', '415' => 'PETITION TO DISSOLVE INTERFERENCE', '416' => 'PLAINTIFF\'S INTERROGATORIES', '417' => 'PLAINTIFF\'S PETITION TO COMMISSIONER', '418' => 'PLAINTIFF\'S REQUEST FOR ADMISSIONS', '419' => 'PLAINTIFF\'S REQUEST FOR DOCUMENTS/THINGS', '420' => 'PLAINTIFF\'S REQUEST FOR RECONSIDERATION', '421' => 'PLAINTIFF\'S RESPONSE TO DOCUMENTS/THINGS REQUEST', '422' => 'PLAINTIFF\'S RESPONSE TO INTERROGATORIES', '423' => 'PLAINTIFF\'S RESPONSE TO REQUEST FOR ADMISSIONS', '424' => 'RECONSIDERATION DENIED', '425' => 'RECONSIDERATION GRANTED', '426' => 'REINSTATED', '427' => 'RESPONSE TO ORDER', '428' => 'STIPULATED PROTECTIVE ORDER', '429' => 'STIPULATION NOTED AND APPROVED', '430' => 'STIPULATION OF FACTS', '431' => 'STIPULATION TO AMEND APPLICATION', '432' => 'STIPULATION TO AMEND REGISTRATION', '433' => 'PLAINTIFF\'S REQUEST FOR RECONSIDERATION DENIED', '434' => 'PLAINTIFF\'S REQUEST FOR RECONSIDERATION GRANTED', '435' => 'DEFENDANT\'S REQUEST FOR RECONSIDERATION DENIED', '436' => 'DEFENDANT\'S REQUEST FOR RECONSIDERATION GRANTED', '437' => 'DEFENDANT\'S REQUEST FOR REHEARING', '438' => 'PLAINTIFF\'S REQUEST FOR REHEARING', '439' => 'DEFENDANT\'S REQUEST FOR REHEARING DENIED', '440' => 'DEFENDANT\'S REQUEST FOR REHEARING GRANTED', '441' => 'PLAINTIFF\'S REQUEST FOR REHEARING DENIED', '442' => 'PLAINTIFF\'S REQUEST FOR REHEARING GRANTED', '443' => 'PETITION FOR RECONSIDERATION', '501' => 'DEFENDANT\'S MOTION TO RESUME PROCEEDINGS', '502' => 'DEFENDANT\'S MOTION TO SUSPEND PENDING DISP CIV ACTION', '503' => 'DEFENDANT\'S MOTION TO SUSPEND PENDING DISP CIV ACTION WITH CONSENT', '504' => 'DEFENDANT\'S MOTION TO SUSPEND PENDING DISP OUTSTANDING MOTION', '505' => 'DEFENDANT\'S MOTION TO SUSPEND PENDING SETTLEMENT NEGOTIATIONS', '506' => 'DEFENDANT\'S MOTION TO SUSPEND PENDING SETTLEMENT NEGOTIATIONS WITH CONSENT', '507' => 'PLAINTIFF\'S MOTION TO RESUME PROCEEDINGS', '508' => 'PLAINTIFF\'S MOTION TO SUSPEND PENDING DISP CIV ACTION', '509' => 'PLAINTIFF\'S MOTION TO SUSPEND PENDING DISP CIV ACTION WITH CONSENT', '510' => 'PLAINTIFF\'S MOTION TO SUSPEND PENDING DISP OUTSTANDING MOTION', '511' => 'PLAINTIFF\'S MOTION TO SUSPEND PENDING SETTLEMENT NEGOTIATIONS', '512' => 'PLAINTIFF\'S MOTION TO SUSPEND PENDING SETTLEMENT NEGOTIATIONS WITH CONSENT', '513' => 'RESPONSE DUE RE: CIVIL ACTION', '514' => 'STIPULATION TO SUSPEND PENDING DISP CIVIL ACTION', '515' => 'STIPULATION TO SUSPEND PENDING SETTLEMENT NEGOTIATIONS', '516' => 'SUSPENDED', '517' => 'SUSPENDED PENDING DISP OF CIVIL ACTION', '518' => 'SUSPENDED PENDING DISP OF OUTSTANDING MOTION', '601' => 'ASSIGNMENT NOTED', '602' => 'DEFENDANT\'S ASSIGNMENT', '603' => 'MOTION TO JOIN AS PARTY DEFENDANT', '604' => 'MOTION TO JOIN AS PARTY PLAINTIFF', '605' => 'MOTION TO SUBSTITUTE AS PARTY DEFENDANT', '606' => 'MOTION TO SUBSTITUTE AS PARTY PLAINTIFF', '607' => 'PARTY DEFENDANT JOINED', '608' => 'PARTY PLAINTIFF JOINED', '609' => 'PLAINTIFF\'S ASSIGNMENT', '621' => 'ACCEPTANCE OF P/A FOR DEFENDANT', '622' => 'ACCEPTANCE OF P/A FOR PLAINTIFF', '623' => 'APPEARANCE FOR DEFENDANT', '624' => 'APPEARANCE FOR PLAINTIFF', '625' => 'APPEARANCE NOTED', '626' => 'LETTER RE: CORRESPONDENCE FOR DEFENDANT', '627' => 'LETTER RE: CORRESPONDENCE FOR PLAINTIFF', '641' => 'BRIEF DUE DATES RESET', '642' => 'DEFENDANT\'S MOTION FOR AN EXTENSION OF TIME', '643' => 'DEFENDANT\'S MOTION FOR EXTENSION OF TIME WITH CONSENT', '644' => 'DEFENDANT\'S MOTION TO REOPEN DISCOVERY', '645' => 'DEFENDANT\'S MOTION TO REOPEN TESTIMONY', '646' => 'ORAL HEARING', '647' => 'ORAL HEARING SET', '648' => 'ORAL HEARING RESET', '649' => 'DEFENDANT\'S MOTION FOR AN EXTENSION OF TIME', '650' => 'DEFENDANT\'S MOTION FOR EXTENSION OF TIME WITH CONSENT', '651' => 'DEFENDANT\'S MOTION TO REOPEN DISCOVERY', '652' => 'DEFENDANT\'S MOTION TO REOPEN TESTIMONY', '653' => 'STIPULATION FOR AN EXTENSION OF TIME', '654' => 'STIPULATION TO REOPEN DISCOVERY', '655' => 'STIPULATION TO REOPEN TESTIMONY', '656' => 'TRIAL DATES SET', '657' => 'TRIAL DATES RESET', '701' => 'AMENDED ANSWER DUE', '702' => 'AMENDED ANSWER TO COUNTERCLAIM DUE', '703' => 'ANSWER DUE', '704' => 'NOT OF COUNTERCLAIM & RESPONSE', '705' => 'NOTICE SENT AND ANSWER DUE', '706' => 'RESPONSE TO COUNTERCLAIM DUE', '751' => 'DEFENDANT\'S MOTION FOR SUMMARY JUDGEMENT GRANTED', '752' => 'DEFENDANT\'S MOTION FOR SUMMARY JUDGEMENT DENIED', '753' => 'PLAINTIFF\'S MOTION FOR SUMMARY JUDGEMENT GRANTED', '754' => 'PLAINTIFF\'S MOTION FOR SUMMARY JUDGEMENT DENIED', '755' => 'MOTION FOR SUMMARY JUDGEMENT GRANTED', '756' => 'MOTION FOR SUMMARY JUDGEMENT DENIED', '791' => 'DELETE ENTRY NUMBER', '792' => 'REPLACE ENTRY NUMBER', '793' => 'PENDING', '795' => 'PROCEEDING NOT YET INSTITUTED', '796' => 'INTERLOCUTORY ASSIGNED', '797' => 'DECISION BY MEMBER', '800' => 'LAST ENTRY PROOFED', '802' => 'BOARD\'S DECISION: DISMISSED', '803' => 'BOARD\'S DECISION: DISMISSED WITH PREJUDICE', '804' => 'BOARD\'S DECISION: DISMISSED WITHOUT PREJUDICE', '805' => 'BOARD\'S DECISION: DISMISSED AS MOOT', '806' => 'BOARD\'S DECISION: DISMISSED AND REMANDED', '807' => 'BOARD\'S DECISION: DISMISSED WITH PREJUDICE AND REMANDED', '808' => 'BOARD\'S DECISION: DISMISSED WITHOUT PREJUDICE AND REMANDED', '809' => 'BOARD\'S DECISION: SUSTAINED', '810' => 'BOARD\'S DECISION: DISMISSED', '811' => 'BOARD\'S DECISION: DISMISSED WITH PREJUDICE', '812' => 'BOARD\'S DECISION: DISMISSED WITHOUT PREJUDICE', '813' => 'BOARD\'S DECISION: GRANTED', '814' => 'BOARD\'S DECISION: DISMISSED AS MOOT', '815' => 'BOARD\'S DECISION: DISSOLVED', '816' => 'BOARD\'S DECISION: DISSOLVED AS MOOT', '817' => 'BOARD\'S DECISION: FAVORABLE TO APPLICANT', '818' => 'BOARD\'S DECISION: FAVORABLE TO BOTH/ALL', '819' => 'BOARD\'S DECISION: ADVERSE TO APPLICANT', '820' => 'BOARD\'S DECISION: REGISTRATION RESTRICTED', '821' => 'BOARD\'S DECISION: DISSOLVED', '822' => 'BOARD\'S DECISION: DISSOLVED AS MOOT', '823' => 'BOARD\'S DECISION: FAVORABLE TO APPLICANT', '824' => 'BOARD\'S DECISION: REGISTRATION RESTRICTED', '825' => 'BOARD\'S DECISION: DISMISSED FOR FAILURE TO FILE BRIEF', '826' => 'BOARD\'S DECISION: DISMISSED AS MOOT', '827' => 'BOARD\'S DECISION: AFFIRMED', '828' => 'BOARD\'S DECISION: REVERSED', '829' => 'BOARD\'S DECISION: AFFIRMED IN PART/REVERSED IN PART', '830' => 'BOARD\'S DECISION: REVERSED AND REMANDED', '851' => 'COURT\'S DECISION: AFFIRMED', '852' => 'COURT\'S DECISION: REVERSED', '853' => 'COURT\'S DECISION: REVERSED AND REMANDED', '854' => 'COURT\'S DECISION: AFFIRMED IN PART/REVERSED IN PART', '855' => 'COURT\'S DECISION: AFFIRMED IN PART/REVERSED IN PART AND REMANDED', '856' => 'COURT\'S DECISION: DISMISSED', '900' => 'VARIABLE TEXT ENTRY FOR PROSECUTION HISTORY', '951' => 'CORRECT ADDRESS FOR APPLICANT', '952' => 'CORRECT ADDRESS FOR DEFENDANT', '953' => 'CORRECT ADDRESS FOR PLAINTIFF', '954' => 'CORRECT ADDRESS FOR REGISTRANT', '955' => 'DEFENDANT\'S CHANGE OF NAME', '956' => 'MOTION TO JOIN AS PARTY DEFENDANT', '957' => 'MOTION TO JOIN AS PARTY PLAINTIFF', '958' => 'MOTION TO SUBSTITUTE AS PARTY DEFENDANT', '959' => 'MOTION TO SUBSTITUTE AS PARTY PLAINTIFF', '960' => 'PETITION TO ADD PARTY TO INTERFERENCE', '961' => 'PLAINTIFF\'S CHANGE OF NAME', '971' => 'CHARGE TO LOCATION', '972' => 'CHARGE TO EMPLOYEE', '973' => 'LOCATION', '990' => 'INVENTORY STATUS CHANGE', '999' => 'TERMINATED', ); # Hash to map record types to parsing functions %Trademark::lib::recordFunc = ( 'GENX' => 'parseGENX', 'GENV' => 'parseGENV', 'PRUS' => 'parsePRUS', 'FRGN' => 'parseFRGN', 'CLAS' => 'parseCLAS', 'OWNR' => 'parseOWNR', 'OWNX' => 'parseOWNX', 'DSGN' => 'parseDSGN', 'DEED' => 'parseDEED', 'DEEX' => 'parseDEEX', 'ASGN' => 'parseASGN', 'ASGX' => 'parseASGX', 'PROP' => 'parsePROP', 'TTAB' => 'parseTTAB', 'PART' => 'parsePART', 'PARX' => 'parsePARX', 'PARC' => 'parsePARC', 'APNR' => 'parseAPNR', 'APPH' => 'parseAPPH', 'TTAX' => 'parseTTAX'); # GENV tags %Trademark::lib::genvTags = ( 'AF' => 'in.another.form.statement', 'CS' => 'mark.certification.statement', 'CU' => 'concurrent.use.statement', 'DM' => 'mark.description', 'D0' => 'disclaimer', 'D1' => 'disclaimer', 'GS' => 'goods.services.text', 'LS' => 'lining.stippling.statement', 'N0' => 'name.description', 'OR' => 'restrict.claim.registration', 'PM' => 'pseudo.mark', 'TF' => 'section2f.limit.statement', 'A0' => 'registration.amendment', 'B0' => 'certificate.correction', 'MD' => 'undefined.application', 'TR' => 'mark.translation'); # OWNX tags %Trademark::lib::ownxTags = ( 'AT' => 'attorney.name', 'CO' => 'composed.of.statement', 'DB' => 'dba.aka.statement', 'DR' => 'domestic.representative', 'EN' => 'entity.statement', 'NC' => 'name.change.text'); # PRUS Prior Group %Trademark::lib::priorGroup = ( '0' => 'Prior Registration', '1' => 'Continuity Parent', '2' => 'Continuity Child', '3' => 'NonRegistration Document Control Number'); # Months %Trademark::lib::months = ( '1' => 'January', '2' => 'February', '3' => 'March', '4' => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', '9' => 'September', '10' => 'October', '11' => 'November', '12' => 'December'); # ID of first record $Trademark::lib::firstId = 1000; # Hash to hold the data file stuff $Trademark::lib::tagId = (); # String to hold the data file $Trademark::lib::dataFile = ""; # keep require happy 1;