Re: attachment stripped

Eric Broch <[email protected]> Mon, 12 Apr 2021 13:44:08 -0600
Newsgroups gmane.mail.spam.dspam.user
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============8779592774228225423==
Content-Type: multipart/alternative;
 boundary="------------7C6DF94FEB12A159EB095665"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------7C6DF94FEB12A159EB095665
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

dspam-users,

I'm not sure if anyone cares (anymore), but I still use dspam and it 
works great.

I found one solution to the truncation of emails when dspamc (dspam 
--client)  is called (patch below).

When dspam in daemon mode receives a message from dspam client it is 
sent to the daemon with dot stuffing/de-stuffing respectively, however,

on return from the daemon to the dspam client the message was not dot 
stuffed/de-stuffed.


# cat ../SOURCES/dspam-stuffdot.patch
--- ./src/dspam.c  2012-04-11 12:48:33.000000000 -0600
+++ ./src/dspam.new.c   2021-04-12 13:21:58.919951576 -0600
@@ -103,6 +103,40 @@
  #define USE_SMTP        (_ds_read_attribute(agent_config, 
"DeliveryProto") && !strcmp(_ds_read_attribute(agent_config, 
"DeliveryProto"), "SMTP"))
  #define LOOKUP(A, B)   ((_ds_pref_val(A, "localStore")[0]) ? 
_ds_pref_val(A, "localStore") : B)

+buffer * stuff_dot(char * message);
+/*
+** buffer * stuff_dot(char * message);
+**
+** DESCRIPTION
+**   Stuff '.' where necessary for SMTP Protocol
+**
+** INPUT ARGUMENTS
+**     char * message
+**
+** RETURN VALUES
+**   Returns buffer * msg
+**
+** Author
+**   Eric C. Broch
+**
+*/
+buffer * stuff_dot(char * message) {
+
+  buffer * msg;
+  int i = 0;
+
+  msg = buffer_create(NULL);
+  while(i<strlen(message)) {
+    if (buffer_ncat(msg,&message[i],1)) return NULL;
+    if (i == strlen(message)-1) break;
+    if ((message[i] == '\n') && (message[i + 1] && message[i + 1] == 
'.')) {
+      if (buffer_cat(msg,".")) return NULL;
+      if (buffer_ncat(msg,&message[++i],1)) return NULL;
+    }
+    i++;
+  }
+  return msg;
+}

  int
  main (int argc, char *argv[])
@@ -977,7 +1011,18 @@
                       (result == DSR_ISSPAM) ? "SPAM" : "INNOCENT");

    if (mailer_args == NULL) {
-    fputs (message, stream);
+    /* calling program: dspamc */
+    if (stream == ATX->sockfd) {
+      /* stuff dots before sending back to dspam client */
+      /* otherwise trunction of email can occur, Eric Broch 04-12-2021 */
+      buffer * msg = stuff_dot(message);
+      fputs(msg->data,stream);
+      buffer_destroy(msg);
+    }
+    /* calling program: dspam */
+    else {
+      fputs(message,stream);
+    }
      return 0;
    }

--- ./src/client.c 2012-04-11 12:48:33.000000000 -0600
+++ ./src/client.new.c  2021-04-12 13:14:45.152130732 -0600
@@ -228,6 +228,14 @@
            exitcode = 99;
          }
        } else {
+        /* de-stuff dots from server, 04-12-2021, Eric C. Broch, 7 lines */
+        if((line[0] && line[0]=='.') && (line[1] && line[1]=='.')) {
+          size_t i, len = strlen(line);
+          for(i=0;i<len;i++){
+            line[i]=line[i+1];
+          }
+          line[len-1]=0;
+        }
          printf("%s\n", line);
        }
        free(line);

Eric

On 9/3/2014 9:27 PM, Eric Broch wrote:
>
> Hello Ken and Stevan,
>
> I've done some investigation and below you can see the offending line 
> in the original email is line 002. Line 001 and line 003 are for 
> context. Per Stevan.
>
> 001 has low airflow of 92 cfm for exhaust down low which equates to .4 
> cfm/ft2=
> 002 .
> 003 <b>I suggest that this ducting be modified before I return. 
> Another low duc=
>
>
> After the message is piped into dspamc it is processed by 
> ‘client_process’ in the file client.c
>
> Before the message is sent to the daemon ‘\r’ and ‘.’ are added where 
> necessary.
>
> At this point line 002 is stuffed with a ‘.’ as seen below:
>
> 001 has low airflow of 92 cfm for exhaust down low which equates to .4 
> cfm/ft2=
> 002 ..
> 003 <b>I suggest that this ducting be modified before I return. 
> Another low duc=
>
>
> The message is then sent to the daemon and received back.
>
> Upon receiving the message back it is truncated after line 001.
>
> When receiving the message back from the daemon, reception of the 
> returned message terminates on 1 of 2 conditions: 1) A single line 
> with a ‘.’ or 2) no more data from the daemon. In fact the daemon is 
> removing the stuffed '.'.
>
> The ‘while’ loop responsible for terminating reception of the message 
> from the dspam daemon is coded in the following way: ‘while ( line != 
> NULL && strcmp (line, ".") )’. I changed this code to ‘while ( line != 
> NULL /* && strcmp (line, ".") */ )’ commenting out termination on the 
> ‘.’ and received the full message back, line 002 back in its original 
> form:
>
> 001 has low airflow of 92 cfm for exhaust down low which equates to .4 
> cfm/ft2=
> 002 .
> 003 <b>I suggest that this ducting be modified before I return. 
> Another low duc=
>
>
> Anyway, this is how things stand presently. I'm not sure how the 
> daemon works but will investigate that as well.
>
> Eric
>
>
> ------------------------------------------------------------------------------
> Slashdot TV.
> Video for Nerds.  Stuff that matters.
> http://tv.slashdot.org/
>
> _______________________________________________
> Dspam-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/dspam-user

--------------7C6DF94FEB12A159EB095665
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    <p>dspam-users,<br>
    </p>
    <p>I'm not sure if anyone cares (anymore), but I still use dspam and
      it works great.</p>
    <p>I found one solution to the truncation of emails when dspamc
      (dspam --client)  is called (patch below).</p>
    <p>When dspam in daemon mode receives a message from dspam client it
      is sent to the daemon with dot stuffing/de-stuffing respectively,
      however,<br>
    </p>
    <p>on return from the daemon to the dspam client the message was not
      dot stuffed/de-stuffed.</p>
    <p><br>
    </p>
    <p># cat ../SOURCES/dspam-stuffdot.patch<br>
      --- ./src/dspam.c  2012-04-11 12:48:33.000000000 -0600<br>
      +++ ./src/dspam.new.c   2021-04-12 13:21:58.919951576 -0600<br>
      @@ -103,6 +103,40 @@<br>
       #define USE_SMTP        (_ds_read_attribute(agent_config,
      "DeliveryProto") &amp;&amp;
      !strcmp(_ds_read_attribute(agent_config, "DeliveryProto"),
      "SMTP"))<br>
       #define LOOKUP(A, B)   ((_ds_pref_val(A, "localStore")[0]) ?
      _ds_pref_val(A, "localStore") : B)<br>
      <br>
      +buffer * stuff_dot(char * message);<br>
      +/*<br>
      +** buffer * stuff_dot(char * message);<br>
      +**<br>
      +** DESCRIPTION<br>
      +**   Stuff '.' where necessary for SMTP Protocol<br>
      +**<br>
      +** INPUT ARGUMENTS<br>
      +**     char * message<br>
      +**<br>
      +** RETURN VALUES<br>
      +**   Returns buffer * msg<br>
      +**<br>
      +** Author<br>
      +**   Eric C. Broch<br>
      +**<br>
      +*/<br>
      +buffer * stuff_dot(char * message) {<br>
      +<br>
      +  buffer * msg;<br>
      +  int i = 0;<br>
      +<br>
      +  msg = buffer_create(NULL);<br>
      +  while(i&lt;strlen(message)) {<br>
      +    if (buffer_ncat(msg,&amp;message[i],1)) return NULL;<br>
      +    if (i == strlen(message)-1) break;<br>
      +    if ((message[i] == '\n') &amp;&amp; (message[i + 1]
      &amp;&amp; message[i + 1] == '.')) {<br>
      +      if (buffer_cat(msg,".")) return NULL;<br>
      +      if (buffer_ncat(msg,&amp;message[++i],1)) return NULL;<br>
      +    }<br>
      +    i++;<br>
      +  }<br>
      +  return msg;<br>
      +}<br>
      <br>
       int<br>
       main (int argc, char *argv[])<br>
      @@ -977,7 +1011,18 @@<br>
                            (result == DSR_ISSPAM) ? "SPAM" :
      "INNOCENT");<br>
      <br>
         if (mailer_args == NULL) {<br>
      -    fputs (message, stream);<br>
      +    /* calling program: dspamc */<br>
      +    if (stream == ATX-&gt;sockfd) {<br>
      +      /* stuff dots before sending back to dspam client */<br>
      +      /* otherwise trunction of email can occur, Eric Broch
      04-12-2021 */<br>
      +      buffer * msg = stuff_dot(message);<br>
      +      fputs(msg-&gt;data,stream);<br>
      +      buffer_destroy(msg);<br>
      +    }<br>
      +    /* calling program: dspam */<br>
      +    else {<br>
      +      fputs(message,stream);<br>
      +    }<br>
           return 0;<br>
         }<br>
      <br>
      --- ./src/client.c 2012-04-11 12:48:33.000000000 -0600<br>
      +++ ./src/client.new.c  2021-04-12 13:14:45.152130732 -0600<br>
      @@ -228,6 +228,14 @@<br>
                 exitcode = 99;<br>
               }<br>
             } else {<br>
      +        /* de-stuff dots from server, 04-12-2021, Eric C. Broch,
      7 lines */<br>
      +        if((line[0] &amp;&amp; line[0]=='.') &amp;&amp; (line[1]
      &amp;&amp; line[1]=='.')) {<br>
      +          size_t i, len = strlen(line);<br>
      +          for(i=0;i&lt;len;i++){<br>
      +            line[i]=line[i+1];<br>
      +          }<br>
      +          line[len-1]=0;<br>
      +        }<br>
               printf("%s\n", line);<br>
             }<br>
             free(line);<br>
      <br>
    </p>
    <div class="moz-cite-prefix">Eric</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 9/3/2014 9:27 PM, Eric Broch wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:[email protected]">
      <meta content="text/html; charset=windows-1252"
        http-equiv="Content-Type">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <p class="MsoNormal"
        style="margin-bottom:0in;margin-bottom:.0001pt;line-height:
        normal"><span style="mso-fareast-font-family:&quot;Times New
          Roman&quot;">Hello Ken and Stevan, <br>
          <br>
          I've done some investigation and below you can see the
          offending line in the original email is line 002. Line 001 and
          line 003 are for context. Per Stevan.<br>
        </span><span style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family: &quot;Times New
          Roman&quot;"><br>
        </span><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">001 has low airflow of 92 cfm for exhaust
          down low which equates to .4 cfm/ft2=</span><span
          style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><br>
        </span><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">002 .</span><span
          style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><br>
        </span><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">003 &lt;b&gt;I suggest that this ducting be
          modified before I return. Another low duc=</span><span
          style="mso-fareast-font-family:&quot;Times New Roman&quot;"><o:p></o:p></span></p>
      <p class="MsoNormal"><span
          style="mso-fareast-font-family:&quot;Times New Roman&quot;"><br>
        </span>After the message is piped into dspamc it is processed by
        ‘client_process’ in the file client.c</p>
      <p class="MsoNormal">Before the message is sent to the daemon ‘\r’
        and ‘.’ are added where necessary. </p>
      <p class="MsoNormal">At this point line 002 is stuffed with a ‘.’
        as seen below:</p>
      <p class="MsoNormal"
        style="margin-bottom:0in;margin-bottom:.0001pt;line-height:
        normal"><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">001 has low airflow of 92 cfm for exhaust
          down low which equates to .4 cfm/ft2=</span><span
          style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><br>
        </span><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">002 ..</span><span
          style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><br>
        </span><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">003 &lt;b&gt;I suggest that this ducting be
          modified before I return. Another low duc=</span><span
          style="mso-fareast-font-family:&quot;Times New Roman&quot;"><o:p></o:p></span></p>
      <p class="MsoNormal"><br>
        The message is then sent to the daemon and received back.</p>
      <p class="MsoNormal">Upon receiving the message back it is
        truncated after line 001.</p>
      <p class="MsoNormal">When receiving the message back from the
        daemon, reception of the returned message terminates on 1 of 2
        conditions: 1) A single line with a ‘.’ or 2) no more data from
        the daemon. In fact the daemon is removing the stuffed '.'.</p>
      <p class="MsoNormal">The ‘while’ loop responsible for terminating
        reception of the message from the dspam daemon is coded in the
        following way: ‘while ( line != NULL &amp;&amp; strcmp (line,
        ".") )’. I changed this code to ‘while ( line != NULL /*
        &amp;&amp; strcmp (line, ".") */ )’ commenting out termination
        on the ‘.’ and received the full message back, line 002 back in
        its original form: </p>
      <p class="MsoNormal"
        style="margin-bottom:0in;margin-bottom:.0001pt;line-height:
        normal"><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">001 has low airflow of 92 cfm for exhaust
          down low which equates to .4 cfm/ft2=</span><span
          style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><br>
        </span><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">002 .</span><span
          style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><br>
        </span><span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;">003 &lt;b&gt;I suggest that this ducting be
          modified before I return. Another low duc=<br>
        </span></p>
      <p class="MsoNormal"
        style="margin-bottom:0in;margin-bottom:.0001pt;line-height:
        normal"><br>
      </p>
      <p class="MsoNormal"
        style="margin-bottom:0in;margin-bottom:.0001pt;line-height:
        normal">Anyway, this is how things stand presently. I'm not sure
        how the daemon works but will investigate that as well. <br>
        <br>
      </p>
      <p class="MsoNormal"
        style="margin-bottom:0in;margin-bottom:.0001pt;line-height:
        normal">Eric<br>
        <span
          style="font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:
          &quot;Courier New&quot;;mso-fareast-font-family:&quot;Times
          New Roman&quot;"></span><span
          style="mso-fareast-font-family:&quot;Times New Roman&quot;"><o:p></o:p></span></p>
      <meta name="ProgId" content="Word.Document">
      <meta name="Generator" content="Microsoft Word 12">
      <meta name="Originator" content="Microsoft Word 12">
      <link rel="File-List"
href="file:///C:%5CUsers%5Cebroch%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml">
      <link rel="themeData"
href="file:///C:%5CUsers%5Cebroch%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx">
      <link rel="colorSchemeMapping"
href="file:///C:%5CUsers%5Cebroch%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">
      <!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->
      <style>@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:10.0pt;
	margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;}.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:12.0pt;
	mso-ansi-font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;}.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;
	line-height:115%;}div.WordSection1
	{page:WordSection1;}</style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--> <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
<a class="moz-txt-link-freetext" href="http://tv.slashdot.org/">http://tv.slashdot.org/</a></pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Dspam-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a>
<a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/dspam-user">https://lists.sourceforge.net/lists/listinfo/dspam-user</a>
</pre>
    </blockquote>
  </body>
</html>

--------------7C6DF94FEB12A159EB095665--


--===============8779592774228225423==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============8779592774228225423==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Dspam-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspam-user

--===============8779592774228225423==--