<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c49b70fc89998b96b23de15a41d062e01477394c">https://github.com/macports/macports-ports/commit/c49b70fc89998b96b23de15a41d062e01477394c</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new c49b70f  adblock2privoxy: Submission of AdBlock/EasyList to Privoxy format converter
</span>c49b70f is described below

<span style='display:block; white-space:pre;color:#808000;'>commit c49b70fc89998b96b23de15a41d062e01477394c
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Tue Jun 18 22:39:40 2019 -0400

<span style='display:block; white-space:pre;color:#404040;'>    adblock2privoxy: Submission of AdBlock/EasyList to Privoxy format converter
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * Build of the adblock2privoxy binary using Haskell stack
</span><span style='display:block; white-space:pre;color:#404040;'>    * Launchdaemon for initialization and regular updates
</span><span style='display:block; white-space:pre;color:#404040;'>    * Launchdaemon for dedicated nginx web server and blackhole for CSS hiding
</span>---
 _resources/port1.0/group/haskell-stack-1.0.tcl |   7 ++
 www/adblock2privoxy/Portfile                   | 129 +++++++++++++++++++++++++
 www/adblock2privoxy/files/default.html         |   9 ++
 www/adblock2privoxy/files/nginx.conf           |  52 ++++++++++
 4 files changed, 197 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/haskell-stack-1.0.tcl b/_resources/port1.0/group/haskell-stack-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 23bac75..d184011 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/haskell-stack-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/haskell-stack-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,6 +21,13 @@ post-extract {
</span>     xinstall -m 0755 -d ${stack_root}
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# libHSbase shipped with GHC links against system libiconv, which provides the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'iconv' symbol, but not the 'libiconv' symbol. Because the compilation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# process statically links libHSbase.a, we must have /usr/lib in the library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# search path first :/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.library_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.cmd       ${prefix}/bin/stack
 configure.pre_args
 configure.args      setup \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/adblock2privoxy/Portfile b/www/adblock2privoxy/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..272d949
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/adblock2privoxy/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,129 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           haskell-stack 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                adblock2privoxy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             2.0.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          www haskell
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         @essandess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             GPL-3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           macosx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://github.com/essandess/adblock2privoxy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Convert adblock config files to privoxy format
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    ${description}. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            AdBlock Plus browser plugin has great block list files \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            provided by big community, but it is client software and \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            cannot work on a server as proxy.  Privoxy proxy has good \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            potential to block ads at server side, but it experiences \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            acute shortage of updated block lists.  This software \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            converts adblock lists to privoxy config files format. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            Almost all adblock features are supported including \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            block/unblock requests (on privoxy) all syntax features \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            are supported except for regex templates matching host \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            name hide/unhide page elements (via CSS) all syntax \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            features are supported all block request options except \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            for outdated ones: Supported: script, image, stylesheet, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            object, xmlhttprequest, object-subrequest, subdocument, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            document, elemhide, other, popup, third-party, domain=..., \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            match-case, donottrack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        https://hackage.haskell.org/package/${name}-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  301ba12cb3c624eaca766400972818b79b52adce \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  064f501995eef83146ed49ccf83856faee8ab7e6e1fd70013d8bb1e12a3a1411 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    42119
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_run-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:nginx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:privoxy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/etc/${name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/etc/${name}/privoxy \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/etc/${name}/css
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 -W ${filespath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        nginx.conf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/etc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 -W ${filespath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default.html \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/etc/${name}/css
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@PREFIX@|${prefix}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/etc/${name}/nginx.conf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.create  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitems \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    name            ${name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    start           "( /bin/test -f \"\${prefix}/etc/adblock2privoxy/privoxy/ab2p.task\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t&& \"\${prefix}/bin/adblock2privoxy\" -t \"\${prefix}/etc/adblock2privoxy/privoxy/ab2p.task\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t|| \"\${prefix}/bin/adblock2privoxy\" -p \"\${prefix}/etc/adblock2privoxy/privoxy\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t-w \"\${prefix}/etc/adblock2privoxy/css\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t-d 127.0.0.1:8119 \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://easylist.to/easylist/easyprivacy.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://easylist.to/easylist/easylist.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://easylist.to/easylist/fanboy-annoyance.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://easylist.to/easylist/fanboy-social.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://easylist-downloads.adblockplus.org/antiadblockfilters.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://easylist-downloads.adblockplus.org/malwaredomains_full.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/fanboy-antifacebook.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\thttps://raw.githubusercontent.com/Dawsey21/Lists/master/adblock-list.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t) && \"\${prefix}/bin/port\" reload privoxy" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    stop            "/usr/bin/kill -SIGUSR1 `/usr/bin/pgrep -u root ${name}` 2>/dev/null" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pidfile         none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitems-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    name            ${name}-nginx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    init            "pidfile=\"\${prefix}/var/run/nginx/nginx-adblock2privoxy.pid\"" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    start           "\"\${prefix}/sbin/nginx\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t-c \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t\"\${prefix}/etc/${name}/nginx.conf\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t-g \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t\"daemon off;\"" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    stop            "if \[ -f \${pidfile} \]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t/usr/bin/kill `cat \${pidfile}` \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t\t&& /bin/rm -f \${pidfile} ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\telse
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t/usr/bin/kill -SIGUSR1 `/usr/bin/pgrep -u root nginx` 2>/dev/null ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\tfi"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # org.macports.adblock2privoxy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "s|^<key>ProgramArguments</key>|<key>StartCalendarInterval</key>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   <array>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           <dict>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   <key>Weekday</key>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   <integer>7</integer>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   <key>Hour</key>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   <integer>1</integer>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   <key>Minute</key>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   <integer>30</integer>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           </dict>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   </array>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+&|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${prefix}/etc/${startupitem.location}/org.macports.${name}/org.macports.${name}.plist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Example production run:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+adblock2privoxy -p ${prefix}/etc/adblock2privoxy/privoxy -w ${prefix}/etc/adblock2privoxy/css -d 10.0.1.3:8119 \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://easylist.to/easylist/easyprivacy.txt  \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://easylist.to/easylist/easylist.txt  \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://easylist.to/easylist/fanboy-annoyance.txt  \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://easylist.to/easylist/fanboy-social.txt  \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://easylist-downloads.adblockplus.org/antiadblockfilters.txt  \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://easylist-downloads.adblockplus.org/malwaredomains_full.txt  \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/fanboy-antifacebook.txt \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  https://raw.githubusercontent.com/Dawsey21/Lists/master/adblock-list.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Update run:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+adblock2privoxy -t ${prefix}/etc/adblock2privoxy/privoxy/ab2p.task
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.url       https://hackage.haskell.org/package/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex     "/package/[quotemeta ${name}]-\[^/\]+/[quotemeta ${name}]-(\[^\"\]+)[quotemeta ${extract.suffix}]"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/adblock2privoxy/files/default.html b/www/adblock2privoxy/files/default.html
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d008281
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/adblock2privoxy/files/default.html
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<!DOCTYPE html>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<html>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<head>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <meta charset='utf-8'>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+</head>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<body>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<p><a href="https://github.com/essandess/adblock2privoxy">adblock2privoxy</a> blackhole ðŸ•³</p>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+</body>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+</html>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/adblock2privoxy/files/nginx.conf b/www/adblock2privoxy/files/nginx.conf
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..556eeef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/adblock2privoxy/files/nginx.conf
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,52 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worker_processes  auto;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+events {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    worker_connections  64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# this must be consistent with daemondo's --pidfile specification
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pid @PREFIX@/var/run/nginx/nginx-adblock2privoxy.pid;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# error_log @PREFIX@/var/log/nginx/error_adblock2privoxy.log warn;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error_log off;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+http {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  # access_log @PREFIX@/var/log/nginx/access_adblock2privoxy.log;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  access_log off;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  # avoid error 413 Request Entity Too Large
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  # client_max_body_size 64M;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  keepalive_timeout 65;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  server {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    listen 127.0.0.1:8119;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #ab2p css domain name (optional, should be equal to --domainCSS parameter)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    server_name localhost;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #root = --webDir parameter value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    root @PREFIX@/etc/adblock2privoxy/css;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Ensure that http://localhost:8119/ is a legitimate (200 return code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # default page; use as iOS proxy.pac blackhole
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Test with curl -I --proxy http://127.0.0.1:8119 http://www.foo.com/bar?q=snafoo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    location / {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        rewrite ^ /default.html break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    location ~ ^/+(ab2p(?:\.common)?\.css) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # ab2p.css in top-level directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        try_files $uri $1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    location ~ ^/[^/.]+\..+/ab2p\.css$ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # first reverse domain names order
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    rewrite ^/([^/]*?)\.([^/.]+)(?:\.([^/.]+))?(?:\.([^/.]+))?(?:\.([^/.]+))?(?:\.([^/.]+))?(?:\.([^/.]+))?(?:\.([^/.]+))?(?:\.([^/.]+))?/ab2p.css$ /$9/$8/$7/$6/$5/$4/$3/$2/$1/ab2p.css last;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    location ~ (^.*/+)[^/]+/+ab2p\.css {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # then try to get CSS for current domain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # if it is unavailable - get CSS for parent domain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        try_files $uri $1ab2p.css;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>