wolfSSL: Use LIBWOLFSSL_VERSION_HEX to decide whether or not to use WOLFSSL_X509_V_OK
[privoxy.git] / doc / webserver / user-manual / actions-file.html
index d1b6567..f718b15 100644 (file)
@@ -4,7 +4,7 @@
 <head>
   <title>Actions Files</title>
   <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
-  <link rel="HOME" title="Privoxy 3.0.29 User Manual" href="index.html">
+  <link rel="HOME" title="Privoxy 3.0.35 User Manual" href="index.html">
   <link rel="PREVIOUS" title="The Main Configuration File" href="config.html">
   <link rel="NEXT" title="Filter Files" href="filter-file.html">
   <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
@@ -15,7 +15,7 @@
   <div class="NAVHEADER">
     <table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
       <tr>
-        <th colspan="3" align="center">Privoxy 3.0.29 User Manual</th>
+        <th colspan="3" align="center">Privoxy 3.0.35 User Manual</th>
       </tr>
       <tr>
         <td width="10%" align="left" valign="bottom"><a href="config.html" accesskey="P">Prev</a></td>
@@ -73,7 +73,7 @@
         <p>The default profiles, and their associated actions, as pre-defined in <tt class=
         "FILENAME">default.action</tt> are:</p>
         <div class="TABLE">
-          <a name="AEN3087" id="AEN3087"></a>
+          <a name="DEFAULT-CONFIGURATIONS" id="DEFAULT-CONFIGURATIONS"></a>
           <p><b>Table 1. Default Configurations</b></p>
           <table border="1" frame="border" rules="all" class="CALSTABLE">
             <col width="1*" title="C1">
             <pre class="SCREEN">  { +<tt class="LITERAL">handle-as-image</tt>  +<tt class=
             "LITERAL">block{Banner ads.}</tt> }
   # Block these as if they were images. Send no block page.
-   banners.example.com
-   media.example.com/.*banners
-   .example.com/images/ads/</pre>
+  banners.example.com
+  media.example.com/.*banners
+  .example.com/images/ads/</pre>
           </td>
         </tr>
       </table>
       already!</p>
       <p>The pattern matching syntax is different for the host and path parts of the URL. The host part uses a simple
       globbing type matching technique, while the path part uses more flexible <a href=
-      "http://en.wikipedia.org/wiki/Regular_expressions" target="_top"><span class="QUOTE">"Regular
+      "https://en.wikipedia.org/wiki/Regular_expressions" target="_top"><span class="QUOTE">"Regular
       Expressions"</span></a> (POSIX 1003.2).</p>
       <p>The port part of a pattern is a decimal port number preceded by a colon (<tt class="LITERAL">:</tt>). If the
       host part contains a numerical IPv6 address, it has to be put into angle brackets (<tt class="LITERAL">&lt;</tt>,
         </div>
         <p>Additionally, there are wild-cards that you can use in the domain names themselves. These work similarly to
         shell globbing type wild-cards: <span class="QUOTE">"*"</span> represents zero or more arbitrary characters
-        (this is equivalent to the <a href="http://en.wikipedia.org/wiki/Regular_expressions" target=
+        (this is equivalent to the <a href="https://en.wikipedia.org/wiki/Regular_expressions" target=
         "_top"><span class="QUOTE">"Regular Expression"</span></a> based syntax of <span class="QUOTE">".*"</span>),
         <span class="QUOTE">"?"</span> represents any single character (this is equivalent to the regular expression
         syntax of a simple <span class="QUOTE">"."</span>), and you can define <span class="QUOTE">"character
       <div class="SECT3">
         <h3 class="SECT3"><a name="PATH-PATTERN" id="PATH-PATTERN">8.4.2. The Path Pattern</a></h3>
         <p><span class="APPLICATION">Privoxy</span> uses <span class="QUOTE">"modern"</span> POSIX 1003.2 <a href=
-        "http://en.wikipedia.org/wiki/Regular_expressions" target="_top"><span class="QUOTE">"Regular
+        "https://en.wikipedia.org/wiki/Regular_expressions" target="_top"><span class="QUOTE">"Regular
         Expressions"</span></a> for matching the path portion (after the slash), and is thus more flexible.</p>
         <p>There is an <a href="appendix.html#REGEX">Appendix</a> with a brief quick-start into regular expressions,
         you also might want to have a look at your operating system's documentation on regular expressions (try
       </div>
       <div class="SECT3">
         <h3 class="SECT3"><a name="CLIENT-TAG-PATTERN" id="CLIENT-TAG-PATTERN">8.4.5. The Client Tag Pattern</a></h3>
-        <div class="WARNING">
-          <table class="WARNING" border="1" width="100%">
-            <tr>
-              <td align="center"><b>Warning</b></td>
-            </tr>
-            <tr>
-              <td align="left">
-                <p>This is an experimental feature. The syntax is likely to change in future versions.</p>
-              </td>
-            </tr>
-          </table>
-        </div>
         <p>Client tag patterns are not set based on HTTP headers but based on the client's IP address. Users can enable
         them themselves, but the Privoxy admin controls which tags are available and what their effect is.</p>
         <p>After a client-specific tag has been defined with the <a href=
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># If the admin defined the client-specific-tag circumvent-blocks,
-# and the request comes from a client that previously requested
-# the tag to be set, overrule all previous +block actions that
-# are enabled based on URL to CLIENT-TAG patterns.
-{-block}
-CLIENT-TAG:^circumvent-blocks$
+              <pre class="SCREEN">  # If the admin defined the client-specific-tag circumvent-blocks,
+  # and the request comes from a client that previously requested
+  # the tag to be set, overrule all previous +block actions that
+  # are enabled based on URL to CLIENT-TAG patterns.
+  {-block}
+  CLIENT-TAG:^circumvent-blocks$
 
-# This section is not overruled because it's located after
-# the previous one.
-{+block{Nobody is supposed to request this.}}
-example.org/blocked-example-page</pre>
+  # This section is not overruled because it's located after
+  # the previous one.
+  {+block{Nobody is supposed to request this.}}
+  example.org/blocked-example-page</pre>
             </td>
           </tr>
         </table>
@@ -603,7 +591,7 @@ example.org/blocked-example-page</pre>
   -<tt class="REPLACEABLE"><i>name</i></tt>{<tt class=
 "REPLACEABLE"><i>param</i></tt>}   # remove the parameter <tt class=
 "REPLACEABLE"><i>param</i></tt> from the list of parameters
-                # If it was the last one left, disable the action.
+                 # If it was the last one left, disable the action.
   <tt class=
 "REPLACEABLE"><i>-name</i></tt>          # disable this action completely and remove all parameters from the list</pre>
               </td>
@@ -658,16 +646,16 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Add a DNT ("Do not track") header to all requests,
-# event to those that already have one.
-#
-# This is just an example, not a recommendation.
-#
-# There is no reason to believe that user-tracking websites care
-# about the DNT header and depending on the User-Agent, adding the
-# header may make user-tracking easier.
-{+add-header{DNT: 1}}
-/</pre>
+                    <pre class="SCREEN">  # Add a DNT ("Do not track") header to all requests,
+  # event to those that already have one.
+  #
+  # This is just an example, not a recommendation.
+  #
+  # There is no reason to believe that user-tracking websites care
+  # about the DNT header and depending on the User-Agent, adding the
+  # header may make user-tracking easier.
+  {+add-header{DNT: 1}}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -725,18 +713,18 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+block{No nasty stuff for you.}}
-# Block and replace with "blocked" page
- .nasty-stuff.example.com
+                    <pre class="SCREEN">  {+block{No nasty stuff for you.}}
+  # Block and replace with "blocked" page
 .nasty-stuff.example.com
 
-{+block{Doubleclick banners.} +handle-as-image}
-# Block and replace with image
- .ad.doubleclick.net
- .ads.r.us/banners/
+  {+block{Doubleclick banners.} +handle-as-image}
+  # Block and replace with image
 .ad.doubleclick.net
 .ads.r.us/banners/
 
-{+block{Layered ads.} +handle-as-empty-document}
-# Block and then ignore
- adserver.example.net/.*\.js$</pre>
+  {+block{Layered ads.} +handle-as-empty-document}
+  # Block and then ignore
 adserver.example.net/.*\.js$</pre>
                   </td>
                 </tr>
               </table>
@@ -785,7 +773,7 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+change-x-forwarded-for{block}</pre>
+                    <pre class="SCREEN">  +change-x-forwarded-for{block}</pre>
                   </td>
                 </tr>
               </table>
@@ -825,6 +813,13 @@ example.org/blocked-example-page</pre>
               <p>If the request URI gets changed, <span class="APPLICATION">Privoxy</span> will detect that and use the
               new one. This can be used to rewrite the request destination behind the client's back, for example to
               specify a Tor exit relay for certain requests.</p>
+              <p>Note that to change the destination host for <a href=
+              "actions-file.html#HTTPS-INSPECTION">https-inspected</a> requests a protocol and host has to be added to
+              the URI.</p>
+              <p>If <a href="actions-file.html#HTTPS-INSPECTION">https inspection</a> is enabled, the protocol can be
+              downgraded from https to http but upgrading a request from http to https is currently not supported.</p>
+              <p>After detecting a rewrite, <span class="APPLICATION">Privoxy</span> does not update the actions used
+              for the request based on the new host.</p>
               <p>Please refer to the <a href="filter-file.html">filter file chapter</a> to learn which client-header
               filters are available by default, and how to create your own.</p>
             </dd>
@@ -833,9 +828,9 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Hide Tor exit notation in Host and Referer Headers
-{+client-header-filter{hide-tor-exit-notation}}
-/</pre>
+                    <pre class="SCREEN">  # Hide Tor exit notation in Host and Referer Headers
+  {+client-header-filter{hide-tor-exit-notation}}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -844,7 +839,105 @@ example.org/blocked-example-page</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="CLIENT-HEADER-TAGGER" id="CLIENT-HEADER-TAGGER">8.5.5. client-header-tagger</a></h4>
+        <h4 class="SECT3"><a name="CLIENT-BODY-FILTER" id="CLIENT-BODY-FILTER">8.5.5. client-body-filter</a></h4>
+        <div class="VARIABLELIST">
+          <dl>
+            <dt>Typical use:</dt>
+            <dd>
+              <p>Rewrite or remove client request body.</p>
+            </dd>
+            <dt>Effect:</dt>
+            <dd>
+              <p>All request bodies to which this action applies are filtered on-the-fly through the specified regular
+              expression based substitutions.</p>
+            </dd>
+            <dt>Type:</dt>
+            <dd>
+              <p>Multi-value.</p>
+            </dd>
+            <dt>Parameter:</dt>
+            <dd>
+              <p>The name of a client-body filter, as defined in one of the <a href="filter-file.html">filter
+              files</a>.</p>
+            </dd>
+            <dt>Notes:</dt>
+            <dd>
+              <p>Please refer to the <a href="filter-file.html">filter file chapter</a> to learn how to create your own
+              client-body filters.</p>
+              <p>The distribution <tt class="FILENAME">default.filter</tt> file contains a selection of client-body
+              filters for example purposes.</p>
+              <p>The amount of data that can be filtered is limited by the <tt class="LITERAL"><a href=
+              "config.html#BUFFER-LIMIT">buffer-limit</a></tt> option in the main <a href="config.html">config
+              file</a>. The default is 4096 KB (4 Megs). Once this limit is exceeded, the whole request body is passed
+              through unfiltered.</p>
+            </dd>
+            <dt>Example usage (section):</dt>
+            <dd>
+              <table border="0" bgcolor="#E0E0E0" width="90%">
+                <tr>
+                  <td>
+                    <pre class="SCREEN">  # Remove "test" everywhere in the request body
+  {+client-body-filter{remove-test}}
+  /</pre>
+                  </td>
+                </tr>
+              </table>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="SECT3">
+        <h4 class="SECT3"><a name="CLIENT-BODY-TAGGER" id="CLIENT-BODY-TAGGER">8.5.6. client-body-tagger</a></h4>
+        <div class="VARIABLELIST">
+          <dl>
+            <dt>Typical use:</dt>
+            <dd>
+              <p>Block requests based on the content of the body data.</p>
+            </dd>
+            <dt>Effect:</dt>
+            <dd>
+              <p>Client request bodies to which this action applies are filtered on-the-fly through the specified
+              regular expression based substitutions, the result is used as tag.</p>
+            </dd>
+            <dt>Type:</dt>
+            <dd>
+              <p>Multi-value.</p>
+            </dd>
+            <dt>Parameter:</dt>
+            <dd>
+              <p>The name of a client-body tagger, as defined in one of the <a href="filter-file.html">filter
+              files</a>.</p>
+            </dd>
+            <dt>Notes:</dt>
+            <dd>
+              <p>Please refer to the <a href="filter-file.html">filter file chapter</a> to learn how to create your own
+              client-body tagger.</p>
+              <p>Client-body taggers are applied to each request body on its own, and as the body isn't modified, each
+              tagger "sees" the original.</p>
+              <p>Chunk-encoded request bodies currently can't be tagged. Request bodies larger than the buffer-limit
+              can't be tagged either.</p>
+            </dd>
+            <dt>Example usage (section):</dt>
+            <dd>
+              <table border="0" bgcolor="#E0E0E0" width="90%">
+                <tr>
+                  <td>
+                    <pre class="SCREEN">  # Apply blafasel tagger.
+  {+client-body-tagger{blafasel}}
+  /
+
+  # Block request based on the tag created by the blafasel tagger.
+  {+block{Request body contains blafasel}}
+  TAG:^content contains blafasel$</pre>
+                  </td>
+                </tr>
+              </table>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="SECT3">
+        <h4 class="SECT3"><a name="CLIENT-HEADER-TAGGER" id="CLIENT-HEADER-TAGGER">8.5.7. client-header-tagger</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -877,63 +970,63 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag every request with the User-Agent header
-{+client-header-tagger{user-agent}}
-/
+                    <pre class="SCREEN">  # Tag every request with the User-Agent header
+  {+client-header-tagger{user-agent}}
+  /
 
-# Tagging itself doesn't change the action
-# settings, sections with TAG patterns do:
-#
-# If it's a download agent, use a different forwarding proxy,
-# show the real User-Agent and make sure resume works.
-{+forward-override{forward-socks5 10.0.0.2:2222 .} \
- -hide-if-modified-since      \
- -overwrite-last-modified     \
- -hide-user-agent             \
- -filter                      \
- -deanimate-gifs              \
-}
-TAG:^User-Agent: NetBSD-ftp/
-TAG:^User-Agent: Novell ZYPP Installer
-TAG:^User-Agent: RPM APT-HTTP/
-TAG:^User-Agent: fetch libfetch/
-TAG:^User-Agent: Ubuntu APT-HTTP/
-TAG:^User-Agent: MPlayer/</pre>
+  # Tagging itself doesn't change the action
+  # settings, sections with TAG patterns do:
+  #
+  # If it's a download agent, use a different forwarding proxy,
+  # show the real User-Agent and make sure resume works.
+  {+forward-override{forward-socks5 10.0.0.2:2222 .} \
  -hide-if-modified-since      \
  -overwrite-last-modified     \
  -hide-user-agent             \
  -filter                      \
  -deanimate-gifs              \
+  }
+  TAG:^User-Agent: NetBSD-ftp/
+  TAG:^User-Agent: Novell ZYPP Installer
+  TAG:^User-Agent: RPM APT-HTTP/
+  TAG:^User-Agent: fetch libfetch/
+  TAG:^User-Agent: Ubuntu APT-HTTP/
+  TAG:^User-Agent: MPlayer/</pre>
                   </td>
                 </tr>
               </table>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag all requests with the Range header set
-{+client-header-tagger{range-requests}}
-/
+                    <pre class="SCREEN">  # Tag all requests with the Range header set
+  {+client-header-tagger{range-requests}}
+  /
 
-# Disable filtering for the tagged requests.
-#
-# With filtering enabled Privoxy would remove the Range headers
-# to be able to filter the whole response. The downside is that
-# it prevents clients from resuming downloads or skipping over
-# parts of multimedia files.
-{-filter -deanimate-gifs}
-TAG:^RANGE-REQUEST$</pre>
+  # Disable filtering for the tagged requests.
+  #
+  # With filtering enabled Privoxy would remove the Range headers
+  # to be able to filter the whole response. The downside is that
+  # it prevents clients from resuming downloads or skipping over
+  # parts of multimedia files.
+  {-filter -deanimate-gifs}
+  TAG:^RANGE-REQUEST$</pre>
                   </td>
                 </tr>
               </table>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag all requests with the client IP address
-#
-# (Technically the client IP address isn't included in the
-# client headers but client-header taggers can set it anyway.
-# For details see the tagger in default.filter)
-{+client-header-tagger{client-ip-address}}
-/
+                    <pre class="SCREEN">  # Tag all requests with the client IP address
+  #
+  # (Technically the client IP address isn't included in the
+  # client headers but client-header taggers can set it anyway.
+  # For details see the tagger in default.filter)
+  {+client-header-tagger{client-ip-address}}
+  /
 
-# Change forwarding settings for requests coming from address 10.0.0.1
-{+forward-override{forward-socks5 127.0.1.2:2222 .}}
-TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
+  # Change forwarding settings for requests coming from address 10.0.0.1
+  {+forward-override{forward-socks5 127.0.1.2:2222 .}}
+  TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
                   </td>
                 </tr>
               </table>
@@ -942,7 +1035,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="CONTENT-TYPE-OVERWRITE" id="CONTENT-TYPE-OVERWRITE">8.5.6.
+        <h4 class="SECT3"><a name="CONTENT-TYPE-OVERWRITE" id="CONTENT-TYPE-OVERWRITE">8.5.8.
         content-type-overwrite</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -995,14 +1088,14 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Check if www.example.net/ really uses valid XHTML
-{ +content-type-overwrite{application/xml} }
-www.example.net/
+                    <pre class="SCREEN">  # Check if www.example.net/ really uses valid XHTML
+  { +content-type-overwrite{application/xml} }
+  www.example.net/
 
-# but leave the content type unmodified if the URL looks like a style sheet
-{-content-type-overwrite}
-www.example.net/.*\.css$
-www.example.net/.*style</pre>
+  # but leave the content type unmodified if the URL looks like a style sheet
+  {-content-type-overwrite}
+  www.example.net/.*\.css$
+  www.example.net/.*style</pre>
                   </td>
                 </tr>
               </table>
@@ -1011,7 +1104,7 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="CRUNCH-CLIENT-HEADER" id="CRUNCH-CLIENT-HEADER">8.5.7. crunch-client-header</a></h4>
+        <h4 class="SECT3"><a name="CRUNCH-CLIENT-HEADER" id="CRUNCH-CLIENT-HEADER">8.5.9. crunch-client-header</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1059,9 +1152,9 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Block the non-existent "Privacy-Violation:" client header
-{ +crunch-client-header{Privacy-Violation:} }
-/</pre>
+                    <pre class="SCREEN">  # Block the non-existent "Privacy-Violation:" client header
+  { +crunch-client-header{Privacy-Violation:} }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -1070,7 +1163,8 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="CRUNCH-IF-NONE-MATCH" id="CRUNCH-IF-NONE-MATCH">8.5.8. crunch-if-none-match</a></h4>
+        <h4 class="SECT3"><a name="CRUNCH-IF-NONE-MATCH" id="CRUNCH-IF-NONE-MATCH">8.5.10.
+        crunch-if-none-match</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1108,12 +1202,12 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Let the browser revalidate cached documents but don't
-# allow the server to use the revalidation headers for user tracking.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/</pre>
+                    <pre class="SCREEN">  # Let the browser revalidate cached documents but don't
+  # allow the server to use the revalidation headers for user tracking.
+  {+hide-if-modified-since{-60} \
  +overwrite-last-modified{randomize} \
  +crunch-if-none-match}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -1122,7 +1216,7 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="CRUNCH-INCOMING-COOKIES" id="CRUNCH-INCOMING-COOKIES">8.5.9.
+        <h4 class="SECT3"><a name="CRUNCH-INCOMING-COOKIES" id="CRUNCH-INCOMING-COOKIES">8.5.11.
         crunch-incoming-cookies</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -1159,7 +1253,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+crunch-incoming-cookies</pre>
+                    <pre class="SCREEN">  +crunch-incoming-cookies</pre>
                   </td>
                 </tr>
               </table>
@@ -1168,7 +1262,7 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="CRUNCH-SERVER-HEADER" id="CRUNCH-SERVER-HEADER">8.5.10.
+        <h4 class="SECT3"><a name="CRUNCH-SERVER-HEADER" id="CRUNCH-SERVER-HEADER">8.5.12.
         crunch-server-header</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -1217,9 +1311,9 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Crunch server headers that try to prevent caching
-{ +crunch-server-header{no-cache} }
-/</pre>
+                    <pre class="SCREEN">  # Crunch server headers that try to prevent caching
+  { +crunch-server-header{no-cache} }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -1228,7 +1322,7 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="CRUNCH-OUTGOING-COOKIES" id="CRUNCH-OUTGOING-COOKIES">8.5.11.
+        <h4 class="SECT3"><a name="CRUNCH-OUTGOING-COOKIES" id="CRUNCH-OUTGOING-COOKIES">8.5.13.
         crunch-outgoing-cookies</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -1264,7 +1358,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+crunch-outgoing-cookies</pre>
+                    <pre class="SCREEN">  +crunch-outgoing-cookies</pre>
                   </td>
                 </tr>
               </table>
@@ -1273,7 +1367,7 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="DEANIMATE-GIFS" id="DEANIMATE-GIFS">8.5.12. deanimate-gifs</a></h4>
+        <h4 class="SECT3"><a name="DEANIMATE-GIFS" id="DEANIMATE-GIFS">8.5.14. deanimate-gifs</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1307,7 +1401,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+deanimate-gifs{last}</pre>
+                    <pre class="SCREEN">  +deanimate-gifs{last}</pre>
                   </td>
                 </tr>
               </table>
@@ -1316,7 +1410,7 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="DELAY-RESPONSE" id="DELAY-RESPONSE">8.5.13. delay-response</a></h4>
+        <h4 class="SECT3"><a name="DELAY-RESPONSE" id="DELAY-RESPONSE">8.5.15. delay-response</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1350,7 +1444,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+delay-response{100}</pre>
+                    <pre class="SCREEN">  +delay-response{100}</pre>
                   </td>
                 </tr>
               </table>
@@ -1359,7 +1453,7 @@ www.example.net/.*style</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="DOWNGRADE-HTTP-VERSION" id="DOWNGRADE-HTTP-VERSION">8.5.14.
+        <h4 class="SECT3"><a name="DOWNGRADE-HTTP-VERSION" id="DOWNGRADE-HTTP-VERSION">8.5.16.
         downgrade-http-version</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -1396,8 +1490,8 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+downgrade-http-version}
-problem-host.example.com</pre>
+                    <pre class="SCREEN">  {+downgrade-http-version}
+  problem-host.example.com</pre>
                   </td>
                 </tr>
               </table>
@@ -1406,7 +1500,7 @@ problem-host.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="EXTERNAL-FILTER" id="EXTERNAL-FILTER">8.5.15. external-filter</a></h4>
+        <h4 class="SECT3"><a name="EXTERNAL-FILTER" id="EXTERNAL-FILTER">8.5.17. external-filter</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1453,13 +1547,16 @@ problem-host.example.com</pre>
               </div>
               <p>This feature is experimental, the <tt class="LITERAL"><a href=
               "filter-file.html#EXTERNAL-FILTER-SYNTAX">syntax</a></tt> may change in the future.</p>
+              <p>If you want to apply external filters to images or other content that isn't text-based, enable the
+              <tt class="LITERAL"><a href="actions-file.html#FORCE-TEXT-MODE">force-text-mode</a></tt> action as
+              well.</p>
             </dd>
             <dt>Example usage:</dt>
             <dd>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+external-filter{fancy-filter}</pre>
+                    <pre class="SCREEN">  +external-filter{fancy-filter}</pre>
                   </td>
                 </tr>
               </table>
@@ -1468,7 +1565,7 @@ problem-host.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="FAST-REDIRECTS" id="FAST-REDIRECTS">8.5.16. fast-redirects</a></h4>
+        <h4 class="SECT3"><a name="FAST-REDIRECTS" id="FAST-REDIRECTS">8.5.18. fast-redirects</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1536,11 +1633,11 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"> { +fast-redirects{simple-check} }
-   one.example.com
+                    <pre class="SCREEN">  { +fast-redirects{simple-check} }
+  one.example.com
 
- { +fast-redirects{check-decoded-url} }
-   another.example.com/testing</pre>
 { +fast-redirects{check-decoded-url} }
+  another.example.com/testing</pre>
                   </td>
                 </tr>
               </table>
@@ -1549,7 +1646,7 @@ problem-host.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="FILTER" id="FILTER">8.5.17. filter</a></h4>
+        <h4 class="SECT3"><a name="FILTER" id="FILTER">8.5.19. filter</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1587,11 +1684,11 @@ problem-host.example.com</pre>
               completely rendered doesn't change much, but it may be perceived as slower since the page is not
               incrementally displayed.) This effect will be more noticeable on slower connections.</p>
               <p><span class="QUOTE">"Rolling your own"</span> filters requires a knowledge of <a href=
-              "http://en.wikipedia.org/wiki/Regular_expressions" target="_top"><span class="QUOTE">"Regular
-              Expressions"</span></a> and <a href="http://en.wikipedia.org/wiki/Html" target="_top"><span class=
+              "https://en.wikipedia.org/wiki/Regular_expressions" target="_top"><span class="QUOTE">"Regular
+              Expressions"</span></a> and <a href="https://en.wikipedia.org/wiki/Html" target="_top"><span class=
               "QUOTE">"HTML"</span></a>. This is very powerful feature, and potentially very intrusive. Filters should
               be used with caution, and where an equivalent <span class="QUOTE">"action"</span> is not available.</p>
-              <p>The amount of data that can be filtered is limited to the <tt class="LITERAL"><a href=
+              <p>The amount of data that can be filtered is limited by the <tt class="LITERAL"><a href=
               "config.html#BUFFER-LIMIT">buffer-limit</a></tt> option in the main <a href="config.html">config
               file</a>. The default is 4096 KB (4 Megs). Once this limit is exceeded, the buffered data, and all
               pending data, is passed through unfiltered.</p>
@@ -1626,7 +1723,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{js-annoyances}       # Get rid of particularly annoying JavaScript abuse.</pre>
+                    "SCREEN">  +filter{js-annoyances}       # Get rid of particularly annoying JavaScript abuse.</pre>
                   </td>
                 </tr>
               </table>
@@ -1635,7 +1732,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{js-events}           # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).</pre>
+                    "SCREEN">  +filter{js-events}           # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).</pre>
                   </td>
                 </tr>
               </table>
@@ -1644,7 +1741,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{html-annoyances}     # Get rid of particularly annoying HTML abuse.</pre>
+                    "SCREEN">  +filter{html-annoyances}     # Get rid of particularly annoying HTML abuse.</pre>
                   </td>
                 </tr>
               </table>
@@ -1653,7 +1750,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{content-cookies}     # Kill cookies that come in the HTML or JS content.</pre>
+                    "SCREEN">  +filter{content-cookies}     # Kill cookies that come in the HTML or JS content.</pre>
                   </td>
                 </tr>
               </table>
@@ -1662,7 +1759,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{refresh-tags}        # Kill automatic refresh tags if refresh time is larger than 9 seconds.</pre>
+                    "SCREEN">  +filter{refresh-tags}        # Kill automatic refresh tags if refresh time is larger than 9 seconds.</pre>
                   </td>
                 </tr>
               </table>
@@ -1670,7 +1767,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{unsolicited-popups}  # Disable only unsolicited pop-up windows.</pre>
+                    <pre class="SCREEN">  +filter{unsolicited-popups}  # Disable only unsolicited pop-up windows.</pre>
                   </td>
                 </tr>
               </table>
@@ -1678,7 +1775,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{all-popups}          # Kill all popups in JavaScript and HTML.</pre>
+                    <pre class="SCREEN">  +filter{all-popups}          # Kill all popups in JavaScript and HTML.</pre>
                   </td>
                 </tr>
               </table>
@@ -1687,7 +1784,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{img-reorder}         # Reorder attributes in &lt;img&gt; tags to make the banners-by-* filters more effective.</pre>
+                    "SCREEN">  +filter{img-reorder}         # Reorder attributes in &lt;img&gt; tags to make the banners-by-* filters more effective.</pre>
                   </td>
                 </tr>
               </table>
@@ -1695,7 +1792,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{banners-by-size}     # Kill banners by size.</pre>
+                    <pre class="SCREEN">  +filter{banners-by-size}     # Kill banners by size.</pre>
                   </td>
                 </tr>
               </table>
@@ -1704,7 +1801,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{banners-by-link}     # Kill banners by their links to known clicktrackers.</pre>
+                    "SCREEN">  +filter{banners-by-link}     # Kill banners by their links to known clicktrackers.</pre>
                   </td>
                 </tr>
               </table>
@@ -1713,7 +1810,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{webbugs}             # Squish WebBugs (1x1 invisible GIFs used for user tracking).</pre>
+                    "SCREEN">  +filter{webbugs}             # Squish WebBugs (1x1 invisible GIFs used for user tracking).</pre>
                   </td>
                 </tr>
               </table>
@@ -1722,7 +1819,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{tiny-textforms}      # Extend those tiny textareas up to 40x80 and kill the hard wrap.</pre>
+                    "SCREEN">  +filter{tiny-textforms}      # Extend those tiny textareas up to 40x80 and kill the hard wrap.</pre>
                   </td>
                 </tr>
               </table>
@@ -1731,7 +1828,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{jumping-windows}     # Prevent windows from resizing and moving themselves.</pre>
+                    "SCREEN">  +filter{jumping-windows}     # Prevent windows from resizing and moving themselves.</pre>
                   </td>
                 </tr>
               </table>
@@ -1740,7 +1837,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{frameset-borders}    # Give frames a border and make them resizable.</pre>
+                    "SCREEN">  +filter{frameset-borders}    # Give frames a border and make them resizable.</pre>
                   </td>
                 </tr>
               </table>
@@ -1749,7 +1846,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{iframes}             # Removes all detected iframes. Should only be enabled for individual sites.</pre>
+                    "SCREEN">  +filter{iframes}             # Removes all detected iframes. Should only be enabled for individual sites.</pre>
                   </td>
                 </tr>
               </table>
@@ -1758,7 +1855,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{demoronizer}         # Fix MS's non-standard use of standard charsets.</pre>
+                    "SCREEN">  +filter{demoronizer}         # Fix MS's non-standard use of standard charsets.</pre>
                   </td>
                 </tr>
               </table>
@@ -1766,7 +1863,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{shockwave-flash}     # Kill embedded Shockwave Flash objects.</pre>
+                    <pre class="SCREEN">  +filter{shockwave-flash}     # Kill embedded Shockwave Flash objects.</pre>
                   </td>
                 </tr>
               </table>
@@ -1774,7 +1871,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{quicktime-kioskmode} # Make Quicktime movies saveable.</pre>
+                    <pre class="SCREEN">  +filter{quicktime-kioskmode} # Make Quicktime movies saveable.</pre>
                   </td>
                 </tr>
               </table>
@@ -1783,7 +1880,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{fun}                 # Text replacements for subversive browsing fun!</pre>
+                    "SCREEN">  +filter{fun}                 # Text replacements for subversive browsing fun!</pre>
                   </td>
                 </tr>
               </table>
@@ -1792,7 +1889,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{crude-parental}      # Crude parental filtering. Note that this filter doesn't work reliably.</pre>
+                    "SCREEN">  +filter{crude-parental}      # Crude parental filtering. Note that this filter doesn't work reliably.</pre>
                   </td>
                 </tr>
               </table>
@@ -1801,7 +1898,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{ie-exploits}         # Disable some known Internet Explorer bug exploits.</pre>
+                    "SCREEN">  +filter{ie-exploits}         # Disable some known Internet Explorer bug exploits.</pre>
                   </td>
                 </tr>
               </table>
@@ -1810,7 +1907,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{site-specifics}      # Cure for site-specific problems. Don't apply generally!</pre>
+                    "SCREEN">  +filter{site-specifics}      # Cure for site-specific problems. Don't apply generally!</pre>
                   </td>
                 </tr>
               </table>
@@ -1819,7 +1916,25 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{no-ping}             # Removes non-standard ping attributes in &lt;a&gt; and &lt;area&gt; tags.</pre>
+                    "SCREEN">  +filter{no-ping}             # Removes non-standard ping attributes in &lt;a&gt; and &lt;area&gt; tags.</pre>
+                  </td>
+                </tr>
+              </table>
+              <p><a name="FILTER-BUNDESWEHR.DE" id="FILTER-BUNDESWEHR.DE"></a></p>
+              <table border="0" bgcolor="#E0E0E0" width="90%">
+                <tr>
+                  <td>
+                    <pre class=
+                    "SCREEN">  +filter{bundeswehr.de}      # Hide the cookie and privacy info banner on bundeswehr.de.</pre>
+                  </td>
+                </tr>
+              </table>
+              <p><a name="FILTER-GITHUB" id="FILTER-GITHUB"></a></p>
+              <table border="0" bgcolor="#E0E0E0" width="90%">
+                <tr>
+                  <td>
+                    <pre class=
+                    "SCREEN">  +filter{github}              # Removes the annoying "Sign-Up" banner and the Cookie disclaimer.</pre>
                   </td>
                 </tr>
               </table>
@@ -1828,7 +1943,15 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{google}              # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.</pre>
+                    "SCREEN">  +filter{google}              # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.</pre>
+                  </td>
+                </tr>
+              </table>
+              <p><a name="FILTER-IMDB" id="FILTER-IMDB"></a></p>
+              <table border="0" bgcolor="#E0E0E0" width="90%">
+                <tr>
+                  <td>
+                    <pre class="SCREEN">  +filter{imdb}                # Removes some ads on IMDb.</pre>
                   </td>
                 </tr>
               </table>
@@ -1837,7 +1960,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{yahoo}               # CSS-based block for Yahoo text ads. Also removes a width limitation.</pre>
+                    "SCREEN">  +filter{yahoo}               # CSS-based block for Yahoo text ads. Also removes a width limitation.</pre>
                   </td>
                 </tr>
               </table>
@@ -1846,7 +1969,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{msn}                 # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.</pre>
+                    "SCREEN">  +filter{msn}                 # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.</pre>
                   </td>
                 </tr>
               </table>
@@ -1855,7 +1978,16 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{blogspot}            # Cleans up some Blogspot blogs. Read the fine print before using this.</pre>
+                    "SCREEN">  +filter{blogspot}            # Cleans up some Blogspot blogs. Read the fine print before using this.</pre>
+                  </td>
+                </tr>
+              </table>
+              <p><a name="FILTER-SOURCEFORGE" id="FILTER-SOURCEFORGE"></a></p>
+              <table border="0" bgcolor="#E0E0E0" width="90%">
+                <tr>
+                  <td>
+                    <pre class=
+                    "SCREEN">  +filter{sourceforge}         # Reduces the amount of ads for proprietary software on SourceForge.</pre>
                   </td>
                 </tr>
               </table>
@@ -1864,7 +1996,7 @@ problem-host.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="FORCE-TEXT-MODE" id="FORCE-TEXT-MODE">8.5.18. force-text-mode</a></h4>
+        <h4 class="SECT3"><a name="FORCE-TEXT-MODE" id="FORCE-TEXT-MODE">8.5.20. force-text-mode</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -1912,7 +2044,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+force-text-mode</pre>
+                    <pre class="SCREEN">  +force-text-mode</pre>
                   </td>
                 </tr>
               </table>
@@ -1921,7 +2053,7 @@ problem-host.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="FORWARD-OVERRIDE" id="FORWARD-OVERRIDE">8.5.19. forward-override</a></h4>
+        <h4 class="SECT3"><a name="FORWARD-OVERRIDE" id="FORWARD-OVERRIDE">8.5.21. forward-override</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2005,21 +2137,21 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Use an ssh tunnel for requests previously tagged as
-# <span class="QUOTE">"User-Agent: fetch libfetch/2.0"</span> and make sure
-# resuming downloads continues to work.
-#
-# This way you can continue to use Tor for your normal browsing,
-# without overloading the Tor network with your FreeBSD ports updates
-# or downloads of bigger files like ISOs.
-#
-# Note that HTTP headers are easy to fake and therefore their
-# values are as (un)trustworthy as your clients and users.
-{+forward-override{forward-socks5 10.0.0.2:2222 .} \
- -hide-if-modified-since      \
- -overwrite-last-modified     \
-}
-TAG:^User-Agent: fetch libfetch/2\.0$</pre>
+                    <pre class="SCREEN">  # Use an ssh tunnel for requests previously tagged as
+  # <span class="QUOTE">"User-Agent: fetch libfetch/2.0"</span> and make sure
+  # resuming downloads continues to work.
+  #
+  # This way you can continue to use Tor for your normal browsing,
+  # without overloading the Tor network with your FreeBSD ports updates
+  # or downloads of bigger files like ISOs.
+  #
+  # Note that HTTP headers are easy to fake and therefore their
+  # values are as (un)trustworthy as your clients and users.
+  {+forward-override{forward-socks5 10.0.0.2:2222 .} \
  -hide-if-modified-since      \
  -overwrite-last-modified     \
+  }
+  TAG:^User-Agent: fetch libfetch/2\.0$</pre>
                   </td>
                 </tr>
               </table>
@@ -2028,7 +2160,7 @@ TAG:^User-Agent: fetch libfetch/2\.0$</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HANDLE-AS-EMPTY-DOCUMENT" id="HANDLE-AS-EMPTY-DOCUMENT">8.5.20.
+        <h4 class="SECT3"><a name="HANDLE-AS-EMPTY-DOCUMENT" id="HANDLE-AS-EMPTY-DOCUMENT">8.5.22.
         handle-as-empty-document</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2069,10 +2201,10 @@ TAG:^User-Agent: fetch libfetch/2\.0$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Block all documents on example.org that end with ".js",
-# but send an empty document instead of the usual HTML message.
-{+block{Blocked JavaScript} +handle-as-empty-document}
-example.org/.*\.js$</pre>
+                    <pre class="SCREEN">  # Block all documents on example.org that end with ".js",
+  # but send an empty document instead of the usual HTML message.
+  {+block{Blocked JavaScript} +handle-as-empty-document}
+  example.org/.*\.js$</pre>
                   </td>
                 </tr>
               </table>
@@ -2081,7 +2213,7 @@ example.org/.*\.js$</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HANDLE-AS-IMAGE" id="HANDLE-AS-IMAGE">8.5.21. handle-as-image</a></h4>
+        <h4 class="SECT3"><a name="HANDLE-AS-IMAGE" id="HANDLE-AS-IMAGE">8.5.23. handle-as-image</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2123,16 +2255,16 @@ example.org/.*\.js$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Generic image extensions:
-#
-{+handle-as-image}
-/.*\.(gif|jpg|jpeg|png|bmp|ico)$
+                    <pre class="SCREEN">  # Generic image extensions:
+  #
+  {+handle-as-image}
+  /.*\.(gif|jpg|jpeg|png|bmp|ico)$
 
-# These don't look like images, but they're banners and should be
-# blocked as images:
-#
-{+block{Nasty banners.} +handle-as-image}
-nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
+  # These don't look like images, but they're banners and should be
+  # blocked as images:
+  #
+  {+block{Nasty banners.} +handle-as-image}
+  nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
                   </td>
                 </tr>
               </table>
@@ -2141,7 +2273,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HIDE-ACCEPT-LANGUAGE" id="HIDE-ACCEPT-LANGUAGE">8.5.22.
+        <h4 class="SECT3"><a name="HIDE-ACCEPT-LANGUAGE" id="HIDE-ACCEPT-LANGUAGE">8.5.24.
         hide-accept-language</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2181,11 +2313,11 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Pretend to use Canadian language settings.
-{+hide-accept-language{en-ca} \
-+hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
-}
-/</pre>
+                    <pre class="SCREEN">  # Pretend to use Canadian language settings.
+  {+hide-accept-language{en-ca} \
+  +hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
+  }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -2194,7 +2326,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HIDE-CONTENT-DISPOSITION" id="HIDE-CONTENT-DISPOSITION">8.5.23.
+        <h4 class="SECT3"><a name="HIDE-CONTENT-DISPOSITION" id="HIDE-CONTENT-DISPOSITION">8.5.25.
         hide-content-disposition</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2237,11 +2369,12 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Disarm the download link in Sourceforge's patch tracker
-{ -filter \
- +content-type-overwrite{text/plain}\
- +hide-content-disposition{block} }
- .sourceforge.net/tracker/download\.php</pre>
+                    <pre class="SCREEN">  # Disarm the download link in Sourceforge's patch tracker
+  { -filter \
+    +content-type-overwrite{text/plain} \
+    +hide-content-disposition{block} \
+  }
+  .sourceforge.net/tracker/download\.php</pre>
                   </td>
                 </tr>
               </table>
@@ -2250,7 +2383,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HIDE-IF-MODIFIED-SINCE" id="HIDE-IF-MODIFIED-SINCE">8.5.24.
+        <h4 class="SECT3"><a name="HIDE-IF-MODIFIED-SINCE" id="HIDE-IF-MODIFIED-SINCE">8.5.26.
         hide-if-modified-since</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2296,11 +2429,11 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Let the browser revalidate but make tracking based on the time less likely.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/</pre>
+                    <pre class="SCREEN">  # Let the browser revalidate but make tracking based on the time less likely.
+  {+hide-if-modified-since{-60} \
  +overwrite-last-modified{randomize} \
  +crunch-if-none-match}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -2309,7 +2442,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HIDE-FROM-HEADER" id="HIDE-FROM-HEADER">8.5.25. hide-from-header</a></h4>
+        <h4 class="SECT3"><a name="HIDE-FROM-HEADER" id="HIDE-FROM-HEADER">8.5.27. hide-from-header</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2343,7 +2476,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-from-header{block}</pre>
+                    <pre class="SCREEN">  +hide-from-header{block}</pre>
                   </td>
                 </tr>
               </table>
@@ -2351,7 +2484,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-from-header{spam-me-senseless@sittingduck.example.com}</pre>
+                    <pre class="SCREEN">  +hide-from-header{spam-me-senseless@sittingduck.example.com}</pre>
                   </td>
                 </tr>
               </table>
@@ -2360,7 +2493,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HIDE-REFERRER" id="HIDE-REFERRER">8.5.26. hide-referrer</a></h4><a name=
+        <h4 class="SECT3"><a name="HIDE-REFERRER" id="HIDE-REFERRER">8.5.28. hide-referrer</a></h4><a name=
         "HIDE-REFERER" id="HIDE-REFERER"></a>
         <div class="VARIABLELIST">
           <dl>
@@ -2424,7 +2557,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-referrer{forge}</pre>
+                    <pre class="SCREEN">  +hide-referrer{forge}</pre>
                   </td>
                 </tr>
               </table>
@@ -2432,7 +2565,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-referrer{http://www.yahoo.com/}</pre>
+                    <pre class="SCREEN">  +hide-referrer{http://www.yahoo.com/}</pre>
                   </td>
                 </tr>
               </table>
@@ -2441,7 +2574,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HIDE-USER-AGENT" id="HIDE-USER-AGENT">8.5.27. hide-user-agent</a></h4>
+        <h4 class="SECT3"><a name="HIDE-USER-AGENT" id="HIDE-USER-AGENT">8.5.29. hide-user-agent</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2485,7 +2618,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               occasionally useful to forge this in order to access sites that won't let you in otherwise (though there
               may be a good reason in some cases).</p>
               <p>More information on known user-agent strings can be found at <a href="http://www.user-agents.org/"
-              target="_top">http://www.user-agents.org/</a> and <a href="http://en.wikipedia.org/wiki/User_agent"
+              target="_top">http://www.user-agents.org/</a> and <a href="https://en.wikipedia.org/wiki/User_agent"
               target="_top">http://en.wikipedia.org/wiki/User_agent</a>.</p>
             </dd>
             <dt>Example usage:</dt>
@@ -2493,7 +2626,8 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-user-agent{Netscape 6.1 (X11; I; Linux 2.4.18 i686)}</pre>
+                    <pre class=
+                    "SCREEN">  +hide-user-agent{Mozilla/5.0 (X11; ElectroBSD i386; rv:78.0) Gecko/20100101 Firefox/78.0}</pre>
                   </td>
                 </tr>
               </table>
@@ -2502,7 +2636,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="HTTPS-INSPECTION" id="HTTPS-INSPECTION">8.5.28. https-inspection</a></h4>
+        <h4 class="SECT3"><a name="HTTPS-INSPECTION" id="HTTPS-INSPECTION">8.5.30. https-inspection</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2524,10 +2658,11 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
             <dt>Notes:</dt>
             <dd>
               <p>This action allows <span class="APPLICATION">Privoxy</span> to filter encrypted requests and
-              responses. For this to work <span class="APPLICATION">Privoxy</span> has to generate a certificate and
-              send it to the client which has to accept it.</p>
-              <p>Before this works the directives in the <tt class="LITERAL"><a href="config.html#TLS" target=
-              "_top">TLS section</a></tt> of the config file have to be configured.</p>
+              responses. For this to work <span class="APPLICATION">Privoxy</span> has to generate a certificate for
+              the web site and send it to the client which has to accept it.</p>
+              <p>Before this works the directives in the <tt class="LITERAL"><a href=
+              "config.html#HTTPS-INSPECTION-DIRECTIVES" target="_top">HTTPS inspection section</a></tt> of the config
+              file have to be configured.</p>
               <p>Note that the action has to be enabled based on the CONNECT request which doesn't contain a path.
               Enabling it based on a pattern with path doesn't work as the path is only seen by <span class=
               "APPLICATION">Privoxy</span> if the action is already enabled.</p>
@@ -2537,8 +2672,8 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+https-inspection}
-www.example.com</pre>
+                    <pre class="SCREEN">  {+https-inspection}
+  www.example.com</pre>
                   </td>
                 </tr>
               </table>
@@ -2547,7 +2682,7 @@ www.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="IGNORE-CERTIFICATE-ERRORS" id="IGNORE-CERTIFICATE-ERRORS">8.5.29.
+        <h4 class="SECT3"><a name="IGNORE-CERTIFICATE-ERRORS" id="IGNORE-CERTIFICATE-ERRORS">8.5.31.
         ignore-certificate-errors</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2583,9 +2718,8 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">    {+ignore-certificate-errors}
-    www.example.org
-   </pre>
+                    <pre class="SCREEN">      {+ignore-certificate-errors}
+      www.example.org</pre>
                   </td>
                 </tr>
               </table>
@@ -2594,7 +2728,7 @@ www.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="LIMIT-CONNECT" id="LIMIT-CONNECT">8.5.30. limit-connect</a></h4>
+        <h4 class="SECT3"><a name="LIMIT-CONNECT" id="LIMIT-CONNECT">8.5.32. limit-connect</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2633,11 +2767,11 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+limit-connect{443}                   # Port 443 is OK.
-+limit-connect{80,443}                # Ports 80 and 443 are OK.
-+limit-connect{-3, 7, 20-100, 500-}   # Ports less than 3, 7, 20 to 100 and above 500 are OK.
-+limit-connect{-}                     # All ports are OK
-+limit-connect{,}                     # No HTTPS/SSL traffic is allowed</pre>
+                    <pre class="SCREEN">  +limit-connect{443}                   # Port 443 is OK.
+  +limit-connect{80,443}                # Ports 80 and 443 are OK.
+  +limit-connect{-3, 7, 20-100, 500-}   # Ports less than 3, 7, 20 to 100 and above 500 are OK.
+  +limit-connect{-}                     # All ports are OK
+  +limit-connect{,}                     # No HTTPS/SSL traffic is allowed</pre>
                   </td>
                 </tr>
               </table>
@@ -2646,7 +2780,7 @@ www.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="LIMIT-COOKIE-LIFETIME" id="LIMIT-COOKIE-LIFETIME">8.5.31.
+        <h4 class="SECT3"><a name="LIMIT-COOKIE-LIFETIME" id="LIMIT-COOKIE-LIFETIME">8.5.33.
         limit-cookie-lifetime</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2689,7 +2823,7 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+limit-cookie-lifetime{60}</pre>
+                    <pre class="SCREEN">  +limit-cookie-lifetime{60}</pre>
                   </td>
                 </tr>
               </table>
@@ -2698,7 +2832,7 @@ www.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="PREVENT-COMPRESSION" id="PREVENT-COMPRESSION">8.5.32. prevent-compression</a></h4>
+        <h4 class="SECT3"><a name="PREVENT-COMPRESSION" id="PREVENT-COMPRESSION">8.5.34. prevent-compression</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2745,23 +2879,23 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Selectively turn off compression, and enable a filter
-#
-{ +filter{tiny-textforms} +prevent-compression }
-# Match only these sites
- .google.
- sourceforge.net
- sf.net
+                    <pre class="SCREEN">  # Selectively turn off compression, and enable a filter
+  #
+  { +filter{tiny-textforms} +prevent-compression }
+  # Match only these sites
 .google.
 sourceforge.net
 sf.net
 
-# Or instead, we could set a universal default:
-#
-{ +prevent-compression }
- / # Match all sites
+  # Or instead, we could set a universal default:
+  #
+  { +prevent-compression }
 / # Match all sites
 
-# Then maybe make exceptions for broken sites:
-#
-{ -prevent-compression }
-.compusa.com/</pre>
+  # Then maybe make exceptions for broken sites:
+  #
+  { -prevent-compression }
+  .compusa.com/</pre>
                   </td>
                 </tr>
               </table>
@@ -2770,7 +2904,7 @@ www.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="OVERWRITE-LAST-MODIFIED" id="OVERWRITE-LAST-MODIFIED">8.5.33.
+        <h4 class="SECT3"><a name="OVERWRITE-LAST-MODIFIED" id="OVERWRITE-LAST-MODIFIED">8.5.35.
         overwrite-last-modified</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2819,11 +2953,12 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Let the browser revalidate without being tracked across sessions
-{ +hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/</pre>
+                    <pre class="SCREEN">  # Let the browser revalidate without being tracked across sessions
+  { +hide-if-modified-since{-60} \
+    +overwrite-last-modified{randomize} \
+    +crunch-if-none-match \
+  }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -2832,7 +2967,7 @@ www.example.com</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="REDIRECT" id="REDIRECT">8.5.34. redirect</a></h4>
+        <h4 class="SECT3"><a name="REDIRECT" id="REDIRECT">8.5.36. redirect</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -2876,46 +3011,50 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Replace example.com's style sheet with another one
-{ +redirect{http://localhost/css-replacements/example.com.css} }
- example.com/stylesheet\.css
+                    <pre class="SCREEN">  # Replace example.com's style sheet with another one
+  { +redirect{http://localhost/css-replacements/example.com.css} }
 example.com/stylesheet\.css
 
-# Create a short, easy to remember nickname for a favorite site
-# (relies on the browser to accept and forward invalid URLs to <span class="APPLICATION">Privoxy</span>)
-{ +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
- a
+  # Create a short, easy to remember nickname for a favorite site
+  # (relies on the browser to accept and forward invalid URLs to <span class="APPLICATION">Privoxy</span>)
+  { +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
 a
 
-# Always use the expanded view for Undeadly.org articles
-# (Note the $ at the end of the URL pattern to make sure
-# the request for the rewritten URL isn't redirected as well)
-{+redirect{s@$@&amp;mode=expanded@}}
-undeadly.org/cgi\?action=article&amp;sid=\d*$
+  # Always use the expanded view for Undeadly.org articles
+  # (Note the $ at the end of the URL pattern to make sure
+  # the request for the rewritten URL isn't redirected as well)
+  {+redirect{s@$@&amp;mode=expanded@}}
+  undeadly.org/cgi\?action=article&amp;sid=\d*$
 
-# Redirect Google search requests to MSN
-{+redirect{s@^http://[^/]*/search\?q=([^&amp;]*).*@http://search.msn.com/results.aspx?q=$1@}}
-.google.com/search
+  # Redirect Google search requests to MSN
+  {+redirect{s@^http://[^/]*/search\?q=([^&amp;]*).*@http://search.msn.com/results.aspx?q=$1@}}
+  .google.com/search
 
-# Redirect MSN search requests to Yahoo
-{+redirect{s@^http://[^/]*/results\.aspx\?q=([^&amp;]*).*@http://search.yahoo.com/search?p=$1@}}
-search.msn.com//results\.aspx\?q=
+  # Redirect MSN search requests to Yahoo
+  {+redirect{s@^http://[^/]*/results\.aspx\?q=([^&amp;]*).*@http://search.yahoo.com/search?p=$1@}}
+  search.msn.com//results\.aspx\?q=
 
-# Redirect http://example.com/&amp;bla=fasel&amp;toChange=foo (and any other value but "bar")
-# to       http://example.com/&amp;bla=fasel&amp;toChange=bar
-#
-# The URL pattern makes sure that the following request isn't redirected again.
-{+redirect{s@toChange=[^&amp;]+@toChange=bar@}}
-example.com/.*toChange=(?!bar)
+  # Redirect http://example.com/&amp;bla=fasel&amp;toChange=foo (and any other value but "bar")
+  # to       http://example.com/&amp;bla=fasel&amp;toChange=bar
+  #
+  # The URL pattern makes sure that the following request isn't redirected again.
+  {+redirect{s@toChange=[^&amp;]+@toChange=bar@}}
+  example.com/.*toChange=(?!bar)
 
-# Add a shortcut to look up illumos bugs
-{+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
-# Redirected URL = http://i4974/
-# Redirect Destination = https://www.illumos.org/issues/4974
-i[0-9][0-9][0-9][0-9]*/
+  # Add a shortcut to look up illumos bugs
+  {+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
+  # Redirected URL = http://i4974/
+  # Redirect Destination = https://www.illumos.org/issues/4974
+  i[0-9][0-9][0-9][0-9]*/
 
-# Redirect remote requests for this manual
-# to the local version delivered by Privoxy
-{+redirect{s@^http://www@http://config@}}
-www.privoxy.org/user-manual/</pre>
+  # Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
+  {+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
+  jvauzb4sb3bwlsnc.onion/
+
+  # Redirect remote requests for this manual
+  # to the local version delivered by Privoxy
+  {+redirect{s@^http://www@http://config@}}
+  www.privoxy.org/user-manual/</pre>
                   </td>
                 </tr>
               </table>
@@ -2924,7 +3063,7 @@ www.privoxy.org/user-manual/</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="SERVER-HEADER-FILTER" id="SERVER-HEADER-FILTER">8.5.35.
+        <h4 class="SECT3"><a name="SERVER-HEADER-FILTER" id="SERVER-HEADER-FILTER">8.5.37.
         server-header-filter</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -2961,11 +3100,11 @@ www.privoxy.org/user-manual/</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+server-header-filter{html-to-xml}}
-example.org/xml-instance-that-is-delivered-as-html
+                    <pre class="SCREEN">  {+server-header-filter{html-to-xml}}
+  example.org/xml-instance-that-is-delivered-as-html
 
-{+server-header-filter{xml-to-html}}
-example.org/instance-that-is-delivered-as-xml-but-is-not</pre>
+  {+server-header-filter{xml-to-html}}
+  example.org/instance-that-is-delivered-as-xml-but-is-not</pre>
                   </td>
                 </tr>
               </table>
@@ -2974,7 +3113,7 @@ example.org/instance-that-is-delivered-as-xml-but-is-not</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="SERVER-HEADER-TAGGER" id="SERVER-HEADER-TAGGER">8.5.36.
+        <h4 class="SECT3"><a name="SERVER-HEADER-TAGGER" id="SERVER-HEADER-TAGGER">8.5.38.
         server-header-tagger</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -3012,17 +3151,55 @@ example.org/instance-that-is-delivered-as-xml-but-is-not</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag every request with the content type declared by the server
-{+server-header-tagger{content-type}}
-/
+                    <pre class="SCREEN">  # Tag every request with the content type declared by the server
+  {+server-header-tagger{content-type}}
+  /
 
-# If the response has a tag starting with 'image/' enable an external
-# filter that only applies to images.
-#
-# Note that the filter is not available by default, it's just a
-# <tt class="LITERAL"><a href="filter-file.html#EXTERNAL-FILTER-SYNTAX">silly example</a></tt>.
-{+external-filter{rotate-image} +force-text-mode}
-TAG:^image/</pre>
+  # If the response has a tag starting with 'image/' enable an external
+  # filter that only applies to images.
+  #
+  # Note that the filter is not available by default, it's just a
+  # <tt class="LITERAL"><a href="filter-file.html#EXTERNAL-FILTER-SYNTAX">silly example</a></tt>.
+  {+external-filter{rotate-image} +force-text-mode}
+  TAG:^image/</pre>
+                  </td>
+                </tr>
+              </table>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="SECT3">
+        <h4 class="SECT3"><a name="SUPPRESS-TAG" id="SUPPRESS-TAG">8.5.39. suppress-tag</a></h4>
+        <div class="VARIABLELIST">
+          <dl>
+            <dt>Typical use:</dt>
+            <dd>
+              <p>Suppress client or server tag.</p>
+            </dd>
+            <dt>Effect:</dt>
+            <dd>
+              <p>Server or client tags to which this action applies are not added to the request, thus making all
+              actions that are specific to these request tags inactive.</p>
+            </dd>
+            <dt>Type:</dt>
+            <dd>
+              <p>Multi-value.</p>
+            </dd>
+            <dt>Parameter:</dt>
+            <dd>
+              <p>The result tag of a server-header or client-header tagger, as defined in one of the <a href=
+              "filter-file.html">filter files</a>.</p>
+            </dd>
+            <dt>Example usage (section):</dt>
+            <dd>
+              <table border="0" bgcolor="#E0E0E0" width="90%">
+                <tr>
+                  <td>
+                    <pre class=
+                    "SCREEN">  # Suppress tag produced by range-requests client-header tagger for requests coming from address 10.0.0.1
+  {+suppress-tag{RANGE-REQUEST}}
+  TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
                   </td>
                 </tr>
               </table>
@@ -3031,7 +3208,7 @@ TAG:^image/</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="SESSION-COOKIES-ONLY" id="SESSION-COOKIES-ONLY">8.5.37.
+        <h4 class="SECT3"><a name="SESSION-COOKIES-ONLY" id="SESSION-COOKIES-ONLY">8.5.40.
         session-cookies-only</a></h4>
         <div class="VARIABLELIST">
           <dl>
@@ -3084,7 +3261,7 @@ TAG:^image/</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+session-cookies-only</pre>
+                    <pre class="SCREEN">  +session-cookies-only</pre>
                   </td>
                 </tr>
               </table>
@@ -3093,7 +3270,7 @@ TAG:^image/</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h4 class="SECT3"><a name="SET-IMAGE-BLOCKER" id="SET-IMAGE-BLOCKER">8.5.38. set-image-blocker</a></h4>
+        <h4 class="SECT3"><a name="SET-IMAGE-BLOCKER" id="SET-IMAGE-BLOCKER">8.5.41. set-image-blocker</a></h4>
         <div class="VARIABLELIST">
           <dl>
             <dt>Typical use:</dt>
@@ -3157,7 +3334,7 @@ TAG:^image/</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+set-image-blocker{pattern}</pre>
+                    <pre class="SCREEN">  +set-image-blocker{pattern}</pre>
                   </td>
                 </tr>
               </table>
@@ -3165,7 +3342,7 @@ TAG:^image/</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}</pre>
+                    <pre class="SCREEN">  +set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}</pre>
                   </td>
                 </tr>
               </table>
@@ -3173,7 +3350,7 @@ TAG:^image/</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}</pre>
+                    <pre class="SCREEN">  +set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}</pre>
                   </td>
                 </tr>
               </table>
@@ -3182,7 +3359,7 @@ TAG:^image/</pre>
         </div>
       </div>
       <div class="SECT3">
-        <h3 class="SECT3"><a name="SUMMARY" id="SUMMARY">8.5.39. Summary</a></h3>
+        <h3 class="SECT3"><a name="SUMMARY" id="SUMMARY">8.5.42. Summary</a></h3>
         <p>Note that many of these actions have the potential to cause a page to misbehave, possibly even not to
         display at all. There are many ways a site designer may choose to design his site, and what HTTP header
         content, and other criteria, he may depend on. There is no way to have hard and fast rules for all sites. See
@@ -3218,40 +3395,40 @@ TAG:^image/</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # Useful custom aliases we can use later.
- #
- # Note the (required!) section header line and that this section
- # must be at the top of the actions file!
- #
- {{alias}}
+            <pre class="SCREEN">  # Useful custom aliases we can use later.
 #
 # Note the (required!) section header line and that this section
 # must be at the top of the actions file!
 #
 {{alias}}
 
- # These aliases just save typing later:
- # (Note that some already use other aliases!)
- #
- +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
 # These aliases just save typing later:
 # (Note that some already use other aliases!)
 #
 +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
 -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
+block-as-image      = +block{Blocked image.} +handle-as-image
- allow-all-cookies   = -crunch-all-cookies -<a href=
 +block-as-image     = +block{Blocked image.} +handle-as-image
 allow-all-cookies   = -crunch-all-cookies -<a href=
 "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href=
 "actions-file.html#FILTER-CONTENT-COOKIES">filter{content-cookies}</a>
 
- # These aliases define combinations of actions
- # that are useful for certain types of sites:
- #
- fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
 # These aliases define combinations of actions
 # that are useful for certain types of sites:
 #
 fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
 "actions-file.html#FILTER">filter</a> -crunch-all-cookies -<a href=
 "actions-file.html#FAST-REDIRECTS">fast-redirects</a> -<a href=
 "actions-file.html#HIDE-REFERER">hide-referrer</a> -<a href=
 "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a>
 
- shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a>
 shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a>
 
- # Short names for other aliases, for really lazy people ;-)
- #
- c0 = +crunch-all-cookies
- c1 = -crunch-all-cookies</pre>
 # Short names for other aliases, for really lazy people ;-)
 #
 c0 = +crunch-all-cookies
 c1 = -crunch-all-cookies</pre>
           </td>
         </tr>
       </table>
@@ -3260,26 +3437,26 @@ TAG:^image/</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # These sites are either very complex or very keen on
- # user data and require minimal interference to work:
- #
- {fragile}
- .office.microsoft.com
- .windowsupdate.microsoft.com
- # Gmail is really mail.google.com, not gmail.com
- mail.google.com
+            <pre class="SCREEN">  # These sites are either very complex or very keen on
 # user data and require minimal interference to work:
 #
 {fragile}
 .office.microsoft.com
 .windowsupdate.microsoft.com
 # Gmail is really mail.google.com, not gmail.com
 mail.google.com
 
- # Shopping sites:
- # Allow cookies (for setting and retrieving your customer data)
- #
- {shop}
- .quietpc.com
- .worldpay.com   # for quietpc.com
- mybank.example.com
 # Shopping sites:
 # Allow cookies (for setting and retrieving your customer data)
 #
 {shop}
 .quietpc.com
 .worldpay.com   # for quietpc.com
 mybank.example.com
 
- # These shops require pop-ups:
- #
- {-filter{all-popups} -filter{unsolicited-popups}}
 # These shops require pop-ups:
 #
 {-filter{all-popups} -filter{unsolicited-popups}}
   .dabs.com
   .overclockers.co.uk</pre>
           </td>
@@ -3315,12 +3492,12 @@ TAG:^image/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ \
- +<a href="actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for{block}</a> \
- +<a href="actions-file.html#HIDE-FROM-HEADER">hide-from-header{block}</a> \
- +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{pattern}</a> \
-}
-/ # Match all URLs</pre>
+              <pre class="SCREEN">  { \
  +<a href="actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for{block}</a> \
  +<a href="actions-file.html#HIDE-FROM-HEADER">hide-from-header{block}</a> \
  +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{pattern}</a> \
+  }
+  / # Match all URLs</pre>
             </td>
           </tr>
         </table>
@@ -3338,11 +3515,11 @@ TAG:^image/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Settings -- Don't change! For internal Privoxy use ONLY.
-##########################################################################
-{{settings}}
-for-privoxy-version=3.0.11</pre>
+              <pre class="SCREEN">  ##########################################################################
+  # Settings -- Don't change! For internal Privoxy use ONLY.
+  ##########################################################################
+  {{settings}}
+  for-privoxy-version=3.0.11</pre>
             </td>
           </tr>
         </table>
@@ -3351,30 +3528,30 @@ for-privoxy-version=3.0.11</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Aliases
-##########################################################################
-{{alias}}
+              <pre class="SCREEN">  ##########################################################################
+  # Aliases
+  ##########################################################################
+  {{alias}}
 
- # These aliases just save typing later:
- # (Note that some already use other aliases!)
- #
- +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
  # These aliases just save typing later:
  # (Note that some already use other aliases!)
  #
  +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
  -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
+block-as-image      = +block{Blocked image.} +handle-as-image
- mercy-for-cookies   = -crunch-all-cookies -<a href=
  +block-as-image     = +block{Blocked image.} +handle-as-image
  mercy-for-cookies   = -crunch-all-cookies -<a href=
 "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href=
 "actions-file.html#FILTER-CONTENT-COOKIES">filter{content-cookies}</a>
 
- # These aliases define combinations of actions
- # that are useful for certain types of sites:
- #
- fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
  # These aliases define combinations of actions
  # that are useful for certain types of sites:
  #
  fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
 "actions-file.html#FILTER">filter</a> -crunch-all-cookies -<a href=
 "actions-file.html#FAST-REDIRECTS">fast-redirects</a> -<a href="actions-file.html#HIDE-REFERER">hide-referrer</a>
- shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a></pre>
  shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a></pre>
             </td>
           </tr>
         </table>
@@ -3385,16 +3562,16 @@ for-privoxy-version=3.0.11</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Exceptions for sites that'll break under the default action set:
-##########################################################################
+              <pre class="SCREEN">  ##########################################################################
+  # Exceptions for sites that'll break under the default action set:
+  ##########################################################################
 
-# "Fragile" Use a minimum set of actions for these sites (see alias above):
-#
-{ fragile }
-.office.microsoft.com           # surprise, surprise!
-.windowsupdate.microsoft.com
-mail.google.com</pre>
+  # "Fragile" Use a minimum set of actions for these sites (see alias above):
+  #
+  { fragile }
+  .office.microsoft.com           # surprise, surprise!
+  .windowsupdate.microsoft.com
+  mail.google.com</pre>
             </td>
           </tr>
         </table>
@@ -3403,13 +3580,13 @@ mail.google.com</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Shopping sites:
-#
-{ shop }
-.quietpc.com
-.worldpay.com   # for quietpc.com
-.jungle.com
-.scan.co.uk</pre>
+              <pre class="SCREEN">  # Shopping sites:
+  #
+  { shop }
+  .quietpc.com
+  .worldpay.com   # for quietpc.com
+  .jungle.com
+  .scan.co.uk</pre>
             </td>
           </tr>
         </table>
@@ -3419,13 +3596,13 @@ mail.google.com</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ -<a href="actions-file.html#FAST-REDIRECTS">fast-redirects</a> }
-login.yahoo.com
-edit.*.yahoo.com
-.google.com
-.altavista.com/.*(like|url|link):http
-.altavista.com/trans.*urltext=http
-.nytimes.com</pre>
+              <pre class="SCREEN">  { -<a href="actions-file.html#FAST-REDIRECTS">fast-redirects</a> }
+  login.yahoo.com
+  edit.*.yahoo.com
+  .google.com
+  .altavista.com/.*(like|url|link):http
+  .altavista.com/trans.*urltext=http
+  .nytimes.com</pre>
             </td>
           </tr>
         </table>
@@ -3439,15 +3616,15 @@ edit.*.yahoo.com
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Images:
-##########################################################################
+              <pre class="SCREEN">  ##########################################################################
+  # Images:
+  ##########################################################################
 
-# Define which file types will be treated as images, in case they get
-# blocked further down this file:
-#
-{ +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> }
-/.*\.(gif|jpe?g|png|bmp|ico)$</pre>
+  # Define which file types will be treated as images, in case they get
+  # blocked further down this file:
+  #
+  { +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> }
+  /.*\.(gif|jpe?g|png|bmp|ico)$</pre>
             </td>
           </tr>
         </table>
@@ -3465,16 +3642,16 @@ edit.*.yahoo.com
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Known ad generators:
-#
-{ +block-as-image }
-ar.atwola.com
-.ad.doubleclick.net
-.ad.*.doubleclick.net
-.a.yimg.com/(?:(?!/i/).)*$
-.a[0-9].yimg.com/(?:(?!/i/).)*$
-bs*.gsanet.com
-.qkimg.net</pre>
+              <pre class="SCREEN">  # Known ad generators:
+  #
+  { +block-as-image }
+  ar.atwola.com
+  .ad.doubleclick.net
+  .ad.*.doubleclick.net
+  .a.yimg.com/(?:(?!/i/).)*$
+  .a[0-9].yimg.com/(?:(?!/i/).)*$
+  bs*.gsanet.com
+  .qkimg.net</pre>
             </td>
           </tr>
         </table>
@@ -3491,23 +3668,23 @@ bs*.gsanet.com
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Block these fine banners:
-##########################################################################
-{ <a href="actions-file.html#BLOCK">+block{Banner ads.}</a> }
+              <pre class="SCREEN">  ##########################################################################
+  # Block these fine banners:
+  ##########################################################################
+  { <a href="actions-file.html#BLOCK">+block{Banner ads.}</a> }
 
-# Generic patterns:
-#
-ad*.
-.*ads.
-banner?.
-count*.
-/.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
-/(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
+  # Generic patterns:
+  #
+  ad*.
+  .*ads.
+  banner?.
+  count*.
+  /.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
+  /(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
 
-# Site-specific patterns (abbreviated):
-#
-.hitbox.com</pre>
+  # Site-specific patterns (abbreviated):
+  #
+  .hitbox.com</pre>
             </td>
           </tr>
         </table>
@@ -3532,28 +3709,28 @@ count*.
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Save some innocent victims of the above generic block patterns:
-##########################################################################
+              <pre class="SCREEN">  ##########################################################################
+  # Save some innocent victims of the above generic block patterns:
+  ##########################################################################
 
-# By domain:
-#
-{ -<a href="actions-file.html#BLOCK">block</a> }
-adv[io]*.  # (for advogato.org and advice.*)
-adsl.      # (has nothing to do with ads)
-adobe.     # (has nothing to do with ads either)
-ad[ud]*.   # (adult.* and add.*)
-.edu       # (universities don't host banners (yet!))
-.*loads.   # (downloads, uploads etc)
+  # By domain:
+  #
+  { -<a href="actions-file.html#BLOCK">block</a> }
+  adv[io]*.  # (for advogato.org and advice.*)
+  adsl.      # (has nothing to do with ads)
+  adobe.     # (has nothing to do with ads either)
+  ad[ud]*.   # (adult.* and add.*)
+  .edu       # (universities don't host banners (yet!))
+  .*loads.   # (downloads, uploads etc)
 
-# By path:
-#
-/.*loads/
+  # By path:
+  #
+  /.*loads/
 
-# Site-specific:
-#
-www.globalintersec.com/adv # (adv = advanced)
-www.ugu.com/sui/ugu/adv</pre>
+  # Site-specific:
+  #
+  www.globalintersec.com/adv # (adv = advanced)
+  www.ugu.com/sui/ugu/adv</pre>
             </td>
           </tr>
         </table>
@@ -3564,14 +3741,14 @@ www.ugu.com/sui/ugu/adv</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Don't filter code!
-#
-{ -<a href="actions-file.html#FILTER">filter</a> }
-/(.*/)?cvs
-bugzilla.
-developer.
-wiki.
-.sourceforge.net</pre>
+              <pre class="SCREEN">  # Don't filter code!
+  #
+  { -<a href="actions-file.html#FILTER">filter</a> }
+  /(.*/)?cvs
+  bugzilla.
+  developer.
+  wiki.
+  .sourceforge.net</pre>
             </td>
           </tr>
         </table>
@@ -3594,7 +3771,7 @@ wiki.
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># My user.action file. &lt;fred@example.com&gt;</pre>
+              <pre class="SCREEN">  # My user.action file. &lt;fred@example.com&gt;</pre>
             </td>
           </tr>
         </table>
@@ -3603,34 +3780,34 @@ wiki.
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Aliases are local to the file they are defined in.
-# (Re-)define aliases for this file:
-#
-{{alias}}
-#
-# These aliases just save typing later, and the alias names should
-# be self explanatory.
-#
-+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
--crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
- allow-all-cookies  = -crunch-all-cookies -session-cookies-only
- allow-popups       = -filter{all-popups}
-+block-as-image     = +block{Blocked as image.} +handle-as-image
--block-as-image     = -block
+              <pre class="SCREEN">  # Aliases are local to the file they are defined in.
+  # (Re-)define aliases for this file:
+  #
+  {{alias}}
+  #
+  # These aliases just save typing later, and the alias names should
+  # be self explanatory.
+  #
+  +crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
+  -crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
  allow-all-cookies  = -crunch-all-cookies -session-cookies-only
  allow-popups       = -filter{all-popups}
+  +block-as-image     = +block{Blocked as image.} +handle-as-image
+  -block-as-image     = -block
 
-# These aliases define combinations of actions that are useful for
-# certain types of sites:
-#
-fragile     = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
-shop        = -crunch-all-cookies allow-popups
+  # These aliases define combinations of actions that are useful for
+  # certain types of sites:
+  #
+  fragile     = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
+  shop        = -crunch-all-cookies allow-popups
 
-# Allow ads for selected useful free sites:
-#
-allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
+  # Allow ads for selected useful free sites:
+  #
+  allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
 
-# Alias for specific file types that are text, but might have conflicting
-# MIME types. We want the browser to force these to be text documents.
-handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
+  # Alias for specific file types that are text, but might have conflicting
+  # MIME types. We want the browser to force these to be text documents.
+  handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
 "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{text/plain}</a> +-<a href=
 "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> -<a href=
 "actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a></pre>
@@ -3644,11 +3821,11 @@ handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ allow-all-cookies }
- sourceforge.net
- .yahoo.com
- .msdn.microsoft.com
- .redhat.com</pre>
+              <pre class="SCREEN">  { allow-all-cookies }
 sourceforge.net
 .yahoo.com
 .msdn.microsoft.com
 .redhat.com</pre>
             </td>
           </tr>
         </table>
@@ -3656,8 +3833,8 @@ handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ -<a href="actions-file.html#FILTER">filter</a> }
- .your-home-banking-site.com</pre>
+              <pre class="SCREEN">  { -<a href="actions-file.html#FILTER">filter</a> }
 .your-home-banking-site.com</pre>
             </td>
           </tr>
         </table>
@@ -3665,16 +3842,16 @@ handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Technical documentation is likely to contain strings that might
-# erroneously get altered by the JavaScript-oriented filters:
-#
-.tldp.org
-/(.*/)?selfhtml/
+              <pre class="SCREEN">  # Technical documentation is likely to contain strings that might
+  # erroneously get altered by the JavaScript-oriented filters:
+  #
+  .tldp.org
+  /(.*/)?selfhtml/
 
-# And this stupid host sends streaming video with a wrong MIME type,
-# so that Privoxy thinks it is getting HTML and starts filtering:
-#
-stupid-server.example.com/</pre>
+  # And this stupid host sends streaming video with a wrong MIME type,
+  # so that Privoxy thinks it is getting HTML and starts filtering:
+  #
+  stupid-server.example.com/</pre>
             </td>
           </tr>
         </table>
@@ -3687,9 +3864,9 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +<a href="actions-file.html#BLOCK">block</a>{Nasty ads.} }
- www.example.com/nasty-ads/sponsor\.gif
- another.example.net/more/junk/here/</pre>
+              <pre class="SCREEN">  { +<a href="actions-file.html#BLOCK">block</a>{Nasty ads.} }
 www.example.com/nasty-ads/sponsor\.gif
 another.example.net/more/junk/here/</pre>
             </td>
           </tr>
         </table>
@@ -3702,11 +3879,11 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +block-as-image }
- .doubleclick.net
- .fastclick.net
- /Realmedia/ads/
- ar.atwola.com/</pre>
+              <pre class="SCREEN">  { +block-as-image }
 .doubleclick.net
 .fastclick.net
 /Realmedia/ads/
 ar.atwola.com/</pre>
             </td>
           </tr>
         </table>
@@ -3720,10 +3897,10 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ fragile }
- .forbes.com
- webmail.example.com
- .mybank.com</pre>
+              <pre class="SCREEN">  { fragile }
 .forbes.com
 webmail.example.com
 .mybank.com</pre>
             </td>
           </tr>
         </table>
@@ -3733,8 +3910,8 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +<a href="actions-file.html#FILTER-FUN">filter{fun}</a> }
- / # For ALL sites!</pre>
+              <pre class="SCREEN">  { +<a href="actions-file.html#FILTER-FUN">filter{fun}</a> }
 / # For ALL sites!</pre>
             </td>
           </tr>
         </table>
@@ -3748,10 +3925,10 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ allow-ads }
- .sourceforge.net
- .slashdot.org
- .osdn.net</pre>
+              <pre class="SCREEN">  { allow-ads }
 .sourceforge.net
 .slashdot.org
 .osdn.net</pre>
             </td>
           </tr>
         </table>
@@ -3765,8 +3942,8 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ handle-as-text }
- /.*\.sh$</pre>
+              <pre class="SCREEN">  { handle-as-text }
 /.*\.sh$</pre>
             </td>
           </tr>
         </table>
@@ -3778,8 +3955,8 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{blank}</a> }
-/ # ALL sites</pre>
+              <pre class="SCREEN">  { +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{blank}</a> }
+  / # ALL sites</pre>
             </td>
           </tr>
         </table>