Abstract:
A method and apparatus to identity SPAM emails is disclosed. The method sets a misspelling rejection ratio. Upon receipt of an email comprising (X) words, the method determines the number (Y) of misspelled words comprising that email. The method then calculates a misspelling ratio by dividing (Y) by (X), and then determines if the misspelling ratio is greater than or equal to the misspelling rejection ratio. If the method determines that the misspelling ratio is greater than or equal to the misspelling rejection ratio, then the method reports the email as SPAM. In certain embodiments, the detection of words used to trigger the rejection of SPAM is based on a fuzzy search of alternate spellings. These alternate spellings may come from a spell checker.

Description:
FIELD OF THE INVENTION 
   This invention relates to an apparatus and method to identify SPAM emails. 
   BACKGROUND OF THE INVENTION 
   Over the past year, a sharp increase of unsolicited email, primarily of the commercial variety, has occurred. Advertisers, reputable and not-so-reputable, have discovered that they can use telemarketing techniques without spending a dime for each call. As those skilled in the art will appreciate, a “SPAM” email comprises an email which was not solicited by the email recipient. Certain SPAM emails comprise offensive material, including pornographic text and/or images. 
   A June, 2004 report from Nucleus Research makes certain troubling assertions, including the notion that SPAM emails cost an average of $1,934 per employee a year in lost productivity. The cost in July 2003 was estimated at $874 per employee a year. 
   Problems arising from SPAM are not limited to the lost productivity of employees. In a Jun. 9, 2004 report, vnunet.com reports that a third of US households using the internet have said that as much as three quarters of their email is SPAM. According to a recent survey, the effort and expense that Internet Service Providers (“ISPs”) are devoting to anti-SPAM measures are failing to stem the rising tide of unwanted email. The sources of SPAM emails, i.e. “SPAMERS”, attempt to keep one step ahead of ISPs. One technique used by SPAMERS is to intentionally misspell certain words hoping that an ISP&#39;s email filters will not recognize those misspelled words as SPAM. 
   What is needed is a more effective apparatus and method to identify, and delete, SPAM emails. Applicants&#39; apparatus and method provide an enhanced ability to identify, and then delete, SPAM emails. 
   SUMMARY OF THE INVENTION 
   Applicants&#39; invention includes an apparatus and method to identity SPAM emails. Applicants&#39; method sets a misspelling rejection ratio. Upon receipt of an email comprising (X) words, Applicants&#39; method determines the number (Y) of misspelled words comprising that email. Applicants&#39; method then calculates a misspelling ratio by dividing (Y) by (X), and then determines if the misspelling ratio is greater than or equal to the misspelling rejection ratio. If Applicants&#39; method determines that the misspelling ratio is greater than or equal to the misspelling rejection ratio, then the method reports the email as SPAM. 
   Alternately, the detection of words used to trigger the rejection of SPAM is based on a fuzzy search of alternate spellings. These alternate spellings may come from a spell checker. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention will be better understood from a reading of the following detailed description taken in conjunction with the drawings in which like reference designators are used to designate like elements, and in which: 
       FIG. 1  is a block diagram showing Applicants&#39; apparatus; 
       FIG. 2A  is a flow chart summarizing certain steps of Applicants&#39; method to identify and delete SPAM emails; 
       FIG. 2B  is a flow chart summarizing additional steps of Applicants&#39; method to identify and delete SPAM emails; 
       FIG. 3A  is a flow chart summarizing certain steps of Applicants&#39; fuzzy word search algorithm; and 
       FIG. 3B  is a flow chart summarizing additional steps of Applicants&#39; fuzzy word search algorithm. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   This invention is described in preferred embodiments in the following description with reference to the Figures, in which like numbers represent the same or similar elements. The invention will be described as embodied in an apparatus and method to identify and delete SPAM emails. 
   Referring now to  FIG. 1 , Applicants&#39; apparatus comprises Pseudo User  120 , wherein Pseudo User  120  is disposed between User  130  and the source of emails  110  provided to User  130 . Email source  110  is capable of communicating with Pseudo User  120  via communication link  115 . In certain embodiments, communication link  115  comprises a wireless communication link. In certain embodiments, communication link  115  is selected from the group comprising a serial interconnection, such as RS-232 or RS-422, an ethernet interconnection, a SCSI interconnection, an iSCSI interconnection, a Gigabit Ethernet interconnection, a Bluetooth interconnection, a Fibre Channel interconnection, an ESCON interconnection, a FICON interconnection, a Local Area Network (LAN), a private Wide Area Network (WAN), a public wide area network, Storage Area Network (SAN), Transmission Control Protocol/Internet Protocol (TCP/IP), the Internet, and combinations thereof. 
   In certain embodiments, source  110  comprises an internet service provider. The illustrated embodiment of  FIG. 1  shows a single email source  110 . In other embodiments, a plurality of email sources  110  are capable of communicating with Pseudo User  120  via a plurality of communication links, wherein each of those links are independently selected from the group comprising a wireless communication link, a serial interconnection such as RS-232 or RS-422, an ethernet interconnection, a SCSI interconnection, an iSCSI interconnection, a Gigabit Ethernet interconnection, a Bluetooth interconnection, a Fibre Channel interconnection, an ESCON interconnection, a FICON interconnection, a Local Area Network (LAN), a private Wide Area Network (WAN), a public wide area network, Storage Area Network (SAN), Transmission Control Protocol/Internet Protocol (TCP/IP), the Internet, and combinations thereof. 
   In certain embodiments, User  130  comprises a computing device. In certain embodiments, User  130  comprises a computer system, such as a mainframe, personal computer, workstation, and combinations thereof, including an operating system such as Windows, AIX, Unix, MVS, LINUX, etc. (Windows is a registered trademark of Microsoft Corporation; AIX is a registered trademark and MVS is a trademark of IBM Corporation; and UNIX is a registered trademark in the United States and other countries licensed exclusively through The Open Group.) 
   Pseudo User  120  includes a processor  122 , memory  124 , and microcode  126 . In certain embodiments, memory  124  comprises non-volatile memory, such as for example one or more EEPROMs (Electrically Erasable Programmable Read Only Memory), one or more flash PROMs (Programmable Read Only Memory), battery backup RAM, hard disk drive, combinations thereof, and the like. 
   In certain embodiments, Pseudo User  120  is integral with User  130 . In certain embodiments, Pseudo user  120  is disposed external to User  130 , wherein Pseudo User  120  is capable of communicating with User  130  via communication link  125 . In certain embodiments, communication link  125  comprises a wireless communication link, a serial interconnection such as RS-232 or RS-422, an ethernet interconnection, a SCSI interconnection, an iSCSI interconnection, a Gigabit Ethernet interconnection, a Bluetooth interconnection, a Fibre Channel interconnection, an ESCON interconnection, a FICON interconnection, a Local Area Network (LAN), a private Wide Area Network (WAN), a public wide area network, Storage Area Network (SAN), Transmission Control Protocol/Internet Protocol (TCP/IP), the Internet, and combinations thereof. 
   Applicants&#39; invention includes a method to screen emails using Pseudo User  130 .  FIG. 2  summarizes certain steps of Applicants&#39; method. Referring now to  FIG. 2 , in step  205  the method provides an email Pseudo User, such as Pseudo User  120 , where that Pseudo User is capable of communicating with User  130 . 
   In step  210 , Applicants&#39; method sets a misspelling rejection ratio. Step  210  may be performed at any time prior to step  245 . In certain embodiments, the misspelling rejection ratio is set by the manufacturer in microcode  126  ( FIG. 1 ) disposed in Pseudo User  120  ( FIG. 1 ). In certain embodiments, the system user, i.e. the owner and/or operator of User  130 , determines the misspelling rejection ratio of step  210 . In certain embodiments, the email source, such as for example source  110 , sets the misspelling rejection ratio of step  210 . 
   In step  215 , Pseudo User  120  receives one or more emails from source  110  ( FIG. 1 ). In certain embodiments, step  215  further includes saving those one or more emails. In certain embodiments, the one or more emails of step  215  are saved in a memory device, such as for example memory  124  ( FIG. 1 ), disposed in the receiving Pseudo User, such as for example Pseudo User  120 . 
   In step  220 , Applicants&#39; method determines the number (N) of emails pending at the Pseudo User. In certain embodiments, step  220  is performed at random time intervals. In certain embodiments, step  220  is performed when the User instructs the resident email program to either send or receive emails. In certain embodiments, step  220  is performed at pre-determined time intervals, such as for example once every day, once every hour, once every minute, and the like. In certain embodiments, step  220  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  220  to step  225  wherein Applicants&#39; method selects the (i)th email, wherein (i) is initially set to one, and wherein (i) is greater than or equal to 1 and less than or equal to (N). In certain embodiments, step  225  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). In the event there are no pending emails, Applicants&#39; method transitions directly through steps  225 ,  230 ,  235 ,  240 ,  245 ,  255 ,  260 ,  265 , and  270 , to step  275  wherein Applicants&#39; method determines that (i), having a value of 1, is greater than (N), having a value of 0, and the method ends at step  290 . 
   Applicants&#39; method transitions from step  225  to step  230  wherein the method determines the number (X) of words comprising the (i)th email. In certain embodiments, step  230  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  230  to step  235  wherein the method determines the number (Y) of misspelled words in the (i)th email. In certain embodiments, step  235  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). In certain embodiments, step  235  is performed by a Pseudo User apparatus, such as for example Pseudo User  120 , using any known spell checking algorithm, such as for example spell checking algorithm  128  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  235  to step  240  wherein the method calculates the (i)th misspelling ratio by dividing the number of misspelled words (Y) by the total number of words (X). In certain embodiments, step  240  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  240  to step  245  wherein the method determines if the (i)th misspelling ratio is greater than the misspelling rejection ratio of step  210 . In certain embodiments, step  245  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). If Applicants&#39; method determines in step  245  that the (i)th misspelling ratio is greater than or equal to the misspelling rejection ratio, then the method transitions from step  245  to step  250  and reports the (i)th email as SPAM. Applicants&#39; method transitions from step  250  to step  270 . 
   Alternatively, if Applicants&#39; method determines in step  245  that the (i)th misspelling ratio is less than the misspelling rejection ratio of step  210 , then in certain embodiments Applicants&#39; method transitions from step  245  to step  255  wherein the method performs a fuzzy word screen of the (i)th email. By “fuzzy word screen,” Applicants mean an algorithm that determines if the (i)th email contains words that are substantially the same as one or more pre-determined prohibited words. In certain embodiments, step  255  is implemented using the steps recited in  FIG. 3 . 
   In embodiments that include step  255 , Applicants&#39; method transitions from step  255  to step  260  wherein the method determines if the (i)th email passed the fuzzy word screen of step  255 . In certain embodiments, step  260  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). If Applicants&#39; method determines in step  260  that the (i)th email did not pass the fuzzy word screen of step  255 , then the method transitions from step  260  to step  250  wherein the method reports the (i)th email as SPAM. Alternatively, if Applicants&#39; method determines in step  260  that the (i)th email did pass the fuzzy word screen of step  255 , then the method transitions from step  260  to step  265  wherein the method provides the (i)th email to the User. In certain embodiments, step  260  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   In certain embodiments, if Applicants&#39; method determines in step  245  that the (i)th misspelling ratio is less than the misspelling rejection ratio of step  210 , then Applicants&#39; method skips steps  255  and  260  and transitions from step  245  to step  265  wherein the method provides the (i)th email to the User. Applicants&#39; method transitions from step  265  to step  270  wherein the method deletes the (i)th email from the memory disposed in the Pseudo User apparatus. In certain embodiments, step  270  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  270  to step  275  wherein the method determines if all the pending emails have been examined, i.e. if (i) is greater than or equal to (N). In certain embodiments, step  275  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). If Applicants&#39; method determines in step  275  that all the pending emails have been examined, then Applicants&#39; method transitions from step  275  to step  290  and ends. Alternatively, if Applicants&#39; method determines in step  275  that all the pending emails have not been examined, i.e. if (i) is less than (N), then Applicants&#39; method transitions from step  275  to step  280  wherein the method increments (i) by 1. In certain embodiments, step  275  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  280  to step  225  and continues as described above. 
   In certain embodiments, step  255  is implemented using the steps recited in  FIG. 3 . In these embodiments, if Applicants&#39; method determines in step  245  that (i)th misspelling ratio is not greater than or equal to the misspelling rejection ratio, then Applicants&#39; method transitions from step  245  to step  305  wherein the method provides a library of prohibited words. In certain embodiments, the library of prohibited words further includes certain words designated as highly prohibited. Step  305  further includes maintaining a running Identity Count and a running Non-Identity Count. In certain embodiments, the Identity Count is maintained by a processor, such as for example processor  122  ( FIG. 1 ), disposed in Applicants&#39; Pseudo User device, such as for example Pseudo User device  120  ( FIG. 1 ). In certain embodiments, the Identity Count of step  305  is stored in memory, such as for example memory  124 , disposed in Applicants&#39; Pseudo User device. In certain embodiments, the Non-Identity Count of step  305  is stored in memory, such as for example memory  124 , disposed in Applicants&#39; Pseudo User device. In step  305 , both the Identity Count and the Non-Identity Count are reset to 0. In certain embodiments, the resetting of the Identity Count and the Non-Identity Count is performed by processor  122  ( FIG. 1 ). 
   Step  305  may be performed at any time prior to performing step  320 . In certain embodiments, step  305  is performed by the manufacturer of the Pseudo User apparatus, and that library is disposed in the microcode or in the memory disposed in the Pseudo User apparatus. In other embodiments, the User defines the library of prohibited words, and stores that library in the memory disposed in the Pseudo User apparatus. 
   In step  310 , Applicants&#39; method selects the (k)th word from the (i)th email, wherein (k) is initial set to 1, and wherein (k) is greater than or equal to 1 and less than or equal to (X). In certain embodiments, step  310  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  310  to step  315  wherein the method determines that the (k)th word includes (A) characters. In certain embodiments, step  315  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  315  to step  320  wherein the method searches the library of prohibited words, and abstracts (M) prohibited words, where those (M) prohibited words comprise all the prohibited words comprising (A) characters. In certain embodiments, step  320  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  320  to step  325  wherein the method selects the (j)th prohibited word, wherein (j) is initially set to 1, and wherein (j) is greater than or equal to 1 and less than or equal to (M). In certain embodiments, step  325  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  325  to step  330  wherein the method selects the (m)th character of the prohibited word selected in step  325 , i.e. the (j)th prohibited word, wherein (m) is greater than or equal to 1 and less than or equal to (A). In certain embodiments, step  330  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   In step  335 , Applicants&#39; method determines if the (m)th character of the selected prohibited word is the same as the (m)th character of the (k)th word in the (i)th email. In certain embodiments, step  335  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). If Applicants&#39; method determines in step  335  that the (m)th character of the selected prohibited word is the same as the (m)th character of the (k)th word in the (i)th email, then the method transitions from step  335  to step  355  wherein the method increments the Identity Count. 
   Alternatively, if Applicants&#39; method determines in step  335  that the (m)th character of the selected prohibited word is not the same as the (m)th character of the (k)th word in the (i)th email, then Applicants&#39; method transitions from step  335  to step  340  wherein the method determines if the selected prohibited word comprises a highly prohibited word. In certain embodiments, step  340  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   If Applicants&#39; method determines in step  340  that the selected prohibited word does not comprise a highly prohibited word, then the method transitions from step  340  to step  350  wherein the method increments the Non-Identity Count. In certain embodiments, step  350  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  350  to step  360 . 
   If Applicants&#39; method determines in step  340  that the selected prohibited word does comprise a highly prohibited word, then the method transitions from step  340  to step  345  wherein the method determines if the (m)th character of the selected prohibited word comprises a variant of the (m)th character of the (k)th word. In certain embodiments, step  345  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). In certain embodiments, step  345  includes searching a look-up table of character variants. For example, in certain embodiments, Applicants&#39; look-up table lists the character “@” as a variant of the character “a”. As another example, in certain embodiments, Applicants&#39; look-up table lists the number zero, i.e. “0”, as a variant for the letter “o”. 
   If Applicants&#39; method determines in step  345  that the (m)th character of the selected prohibited word does comprises a variant of the (m)th character of the (k)th word, then the method transitions from step  345  to step  355  and increments the Identity Count. In certain embodiments, step  355  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  355  to step  360 . 
   Alternatively, if Applicants&#39; method determines in step  345  that the (m)th character of the selected prohibited word does not comprises a variant of the (m)th character of the (k)th word, then the method transitions from step  345  to step  350  wherein the method increments the Non-Identity Count. In certain embodiments, step  350  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  350  to step  360 . 
   Referring now to  FIG. 3B , in step  360  Applicants&#39; method determines if all the characters of the selected email word have been examined, i.e. if (m) equals (A). In certain embodiments, step  360  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). If Applicants&#39; method determines in step  360  that (m) does not equal (A), then the method transitions from step  360  to step  390  wherein the method increments (m) by 1. In certain embodiments, step  390  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants method transitions from step  390  to step  330  and continues as described above. 
   If Applicants&#39; method determines in step  360  that all the characters of the selected email word have been compared to the corresponding characters of the (j)th prohibited word, then the method transitions from step  360  to step  365  wherein the method calculates an Identity Ratio by dividing the Identity Count by the Non-Identity Count. In certain embodiments, step  365  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   In step  370 , Applicants&#39; method sets a Rejection Identity Ratio. Step  370  may be performed any time prior to step  372 . In certain embodiments, the Rejection Identity Ratio is set by the manufacturer in microcode  126  ( FIG. 1 ) disposed in Pseudo User  120  ( FIG. 1 ). In certain embodiments, the system user, i.e. the owner and/or operator of User  130 , sets the Rejection Identity Ratio of step  370 . In certain embodiments, the email source, such as for example source  110 , sets the Rejection Identity Ratio of step  370 . 
   In step  372 , Applicants&#39; method determines if the calculated Identity Ratio of step  365  is greater than or equal to the Rejection Identity Ratio of step  370 . In certain embodiments, step  370  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). If Applicants&#39; method determines in step  372  that the calculated Identity Ratio of step  365  is greater than or equal to the Rejection Identity Ratio of step  370 , then the method transitions from step  372  to step  374  wherein Applicants&#39; method resets to zero the running Identity Count and the running Non-Identity Count. In certain embodiments, step  374  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  374  to step  250  wherein the method reports the (i)th email as SPAM. 
   Alternatively, if the method determines in step  372  that the calculated Identity Ratio of step  365  is less than the Rejection Identity Ratio of step  370 , then the method transitions from step  372  to step  376  wherein the method resets to zero the running Identity Count and the running Non-Identity Count. In certain embodiments, step  376  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   Applicants&#39; method transitions from step  376  to step  380  wherein the method determines if the (k)th email word has been compared to each of the (M) prohibited words retrieved in step  320 , i.e. if (j) equals (M). In certain embodiments, step  380  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). 
   If Applicants&#39; method determines in step  380  that (j) equals (M), then the method transitions from step  380  to step  384 . Alternatively, if Applicants&#39; method determines in step  380  that (j) does not equal (M), then the method transitions from step  380  to step  382  wherein the method increments (j) by 1. In certain embodiments, step  382  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  382  to step  325  and continues as described herein. 
   In step  384 , Applicants&#39; method determines if all the words of the (i)th email have been examined, i.e. if (k) equals (X). In certain embodiments, step  384  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). If Applicants&#39; method determines in step  384  that (k) does not equal (X), then the method transitions from step  384  to step  386  wherein the method increments (k) by 1. In certain embodiments, step  386  is performed by a Pseudo User apparatus, such as for example Pseudo User  120  ( FIG. 1 ). Applicants&#39; method transitions from step  386  to step  310  and continues. Alternatively, if Applicants&#39; method determines in step  384  that (k) does equal (X), then the method transitions from step  384  to step  265  wherein the method provides the (i)th email to the User. 
   The embodiments of Applicants&#39; method recited in  FIGS. 2 ,  3 A, and/or  3 B, may be implemented separately. Moreover, in certain embodiments, individual steps recited in  FIGS. 2 ,  3 A, and/or  3 B, may be combined, eliminated, or reordered. For example, in certain embodiments the method recited in  FIG. 2  does not include steps  255  and  260 . 
   In certain embodiments, Applicants&#39; invention includes instructions residing in memory, such as for example memory  124  ( FIG. 1 ), where those instructions are executed by processor  122  ( FIG. 1 ), to performs steps  215 ,  220 ,  225 ,  230 ,  235 ,  240 ,  245 ,  250 , optionally  255 , optionally  260 ,  265 ,  270 ,  275 , and  280 , recited in  FIG. 2 , and/or steps  310 ,  315 ,  320 ,  325 ,  330 ,  335 ,  340 ,  345 ,  350 ,  355 , recited in  FIG. 3A , and/or steps  360 ,  365 ,  370 ,  372 ,  374 ,  376 ,  380 ,  382 ,  384 ,  386 , and  390 , recited in  FIG. 3B . 
   In other embodiments, Applicants&#39; invention includes instructions residing in any other computer program product, where those instructions are executed by a computer external to, or internal to, Pseudo User device  120 , to perform steps  215 ,  220 ,  225 ,  230 ,  235 ,  240 ,  245 ,  250 , optionally  255 , optionally  260 ,  265 ,  270 ,  275 , and  280 , recited in  FIG. 2 , and/or steps  310 ,  315 ,  320 ,  325 ,  330 ,  335 ,  340 ,  345 ,  350 ,  355 , recited in  FIG. 3A , and/or steps  360 ,  365 ,  370 ,  372 ,  374 ,  376 ,  380 ,  382 ,  384 ,  386 , and  390 , recited in  FIG. 3B . In either case, the instructions may be encoded in an information storage medium comprising, for example, a magnetic information storage medium, an optical information storage medium, an electronic information storage medium, and the like. By “electronic storage media,” Applicants mean, for example, a device such as a PROM, EPROM, EEPROM, Flash PROM, compactflash, smartmedia, and the like. 
   While the preferred embodiments of the present invention have been illustrated in detail, it should be apparent that modifications and adaptations to those embodiments may occur to one skilled in the art without departing from the scope of the present invention as set forth in the following claims.