From b0960891888cfa4c43e79e96d7e57476237502cb Mon Sep 17 00:00:00 2001
From: Jason
Date: Tue, 15 Feb 2022 09:55:45 -0500
Subject: [PATCH] =?UTF-8?q?=20=F0=9F=A6=88=F0=9F=8F=A0=F0=9F=90=9C?=
=?UTF-8?q?=E2=9D=97=20Initial=20Commit=20=E2=9D=97=F0=9F=90=9C?=
=?UTF-8?q?=F0=9F=A6=88=F0=9F=8F=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.dockerignore | 7 +
.gitignore | 17 +
.travis.yml | 29 +
Dockerfile | 59 +
LICENSE.md | 13 +
README.md | 10 +
bin/create-blocklists.sh | 72 +
bin/entrypoint-squid.sh | 69 +
config/apache2/apache2.conf | 204 +
config/apache2/mime.types | 1855 +++
config/e2guardian/authplugins/ident.conf | 4 +
config/e2guardian/authplugins/ip.conf | 11 +
config/e2guardian/authplugins/port.conf | 9 +
.../e2guardian/authplugins/proxy-basic.conf | 5 +
.../e2guardian/authplugins/proxy-digest.conf | 7 +
config/e2guardian/authplugins/proxy-ntlm.conf | 5 +
config/e2guardian/common.story | 250 +
.../e2guardian/contentscanners/clamdscan.conf | 13 +
.../contentscanners/commandlinescan.conf | 45 +
.../e2guardian/contentscanners/icapscan.conf | 8 +
.../e2guardian/downloadmanagers/default.conf | 17 +
config/e2guardian/e2guardian.conf | 699 +
config/e2guardian/e2guardianf1.conf | 527 +
config/e2guardian/examplef1.story | 48 +
.../languages/arspanish/fancydmtemplate.html | 179 +
.../e2guardian/languages/arspanish/messages | 119 +
.../languages/arspanish/neterr_template.html | 144 +
.../languages/arspanish/template.html | 38 +
.../languages/bulgarian/fancydmtemplate.html | 179 +
.../e2guardian/languages/bulgarian/messages | 119 +
.../languages/bulgarian/neterr_template.html | 144 +
.../languages/bulgarian/template.html | 59 +
.../chinesebig5/fancydmtemplate.html | 179 +
.../e2guardian/languages/chinesebig5/messages | 120 +
.../chinesebig5/neterr_template.html | 144 +
.../languages/chinesebig5/template.html | 46 +
.../chinesegb2312/fancydmtemplate.html | 179 +
.../languages/chinesegb2312/messages | 119 +
.../chinesegb2312/neterr_template.html | 144 +
.../languages/chinesegb2312/template.html | 33 +
.../languages/czech/fancydmtemplate.html | 173 +
config/e2guardian/languages/czech/messages | 119 +
.../languages/czech/neterr_template.html | 144 +
.../e2guardian/languages/czech/template.html | 42 +
.../languages/danish/fancydmtemplate.html | 173 +
config/e2guardian/languages/danish/messages | 120 +
.../languages/danish/neterr_template.html | 144 +
.../e2guardian/languages/danish/template.html | 68 +
.../languages/dutch/fancydmtemplate.html | 173 +
config/e2guardian/languages/dutch/messages | 119 +
.../languages/dutch/neterr_template.html | 144 +
.../e2guardian/languages/dutch/template.html | 87 +
.../languages/french/fancydmtemplate.html | 181 +
config/e2guardian/languages/french/messages | 122 +
.../languages/french/neterr_template.html | 144 +
.../e2guardian/languages/french/template.html | 89 +
.../languages/german/fancydmtemplate.html | 173 +
config/e2guardian/languages/german/messages | 119 +
.../languages/german/neterr_template.html | 144 +
.../e2guardian/languages/german/template.html | 77 +
.../languages/hebrew/fancydmtemplate.html | 179 +
config/e2guardian/languages/hebrew/messages | 118 +
.../languages/hebrew/neterr_template.html | 144 +
.../e2guardian/languages/hebrew/template.html | 89 +
.../languages/hungarian/fancydmtemplate.html | 179 +
.../e2guardian/languages/hungarian/messages | 117 +
.../languages/hungarian/neterr_template.html | 144 +
.../languages/hungarian/template.html | 77 +
.../languages/indonesian/fancydmtemplate.html | 173 +
.../e2guardian/languages/indonesian/messages | 121 +
.../languages/indonesian/neterr_template.html | 144 +
.../languages/indonesian/template.html | 37 +
.../languages/italian/fancydmtemplate.html | 179 +
config/e2guardian/languages/italian/messages | 118 +
.../languages/italian/neterr_template.html | 144 +
.../languages/italian/template.html | 38 +
.../languages/japanese/fancydmtemplate.html | 179 +
config/e2guardian/languages/japanese/messages | 117 +
.../languages/japanese/neterr_template.html | 144 +
.../languages/japanese/template.html | 61 +
.../languages/lithuanian/fancydmtemplate.html | 179 +
.../e2guardian/languages/lithuanian/messages | 119 +
.../languages/lithuanian/neterr_template.html | 144 +
.../languages/lithuanian/template.html | 49 +
.../languages/malay/fancydmtemplate.html | 179 +
config/e2guardian/languages/malay/messages | 143 +
.../languages/malay/neterr_template.html | 144 +
.../e2guardian/languages/malay/template.html | 60 +
.../languages/mxspanish/fancydmtemplate.html | 179 +
.../e2guardian/languages/mxspanish/messages | 120 +
.../languages/mxspanish/neterr_template.html | 144 +
.../languages/mxspanish/template.html | 40 +
.../languages/polish/fancydmtemplate.html | 173 +
config/e2guardian/languages/polish/messages | 120 +
.../languages/polish/neterr_template.html | 144 +
.../e2guardian/languages/polish/template.html | 40 +
.../languages/portuguese/fancydmtemplate.html | 173 +
.../e2guardian/languages/portuguese/messages | 122 +
.../languages/portuguese/neterr_template.html | 144 +
.../languages/portuguese/template.html | 83 +
.../ptbrazilian/fancydmtemplate.html | 181 +
.../e2guardian/languages/ptbrazilian/messages | 121 +
.../ptbrazilian/neterr_template.html | 144 +
.../languages/ptbrazilian/template.html | 154 +
.../russian-1251/fancydmtemplate.html | 179 +
.../languages/russian-1251/messages | 119 +
.../russian-1251/neterr_template.html | 144 +
.../languages/russian-1251/template.html | 77 +
.../russian-koi8-r/fancydmtemplate.html | 179 +
.../languages/russian-koi8-r/messages | 117 +
.../russian-koi8-r/neterr_template.html | 144 +
.../languages/russian-koi8-r/template.html | 73 +
.../languages/slovak/fancydmtemplate.html | 173 +
config/e2guardian/languages/slovak/messages | 120 +
.../languages/slovak/neterr_template.html | 144 +
.../e2guardian/languages/slovak/template.html | 81 +
.../languages/spanish/fancydmtemplate.html | 179 +
config/e2guardian/languages/spanish/messages | 118 +
.../languages/spanish/neterr_template.html | 144 +
.../languages/spanish/template.html | 79 +
.../languages/swedish/fancydmtemplate.html | 179 +
config/e2guardian/languages/swedish/messages | 118 +
.../languages/swedish/neterr_template.html | 144 +
.../languages/swedish/template.html | 75 +
.../languages/turkish/fancydmtemplate.html | 179 +
config/e2guardian/languages/turkish/messages | 119 +
.../languages/turkish/neterr_template.html | 144 +
.../languages/turkish/template.html | 151 +
.../languages/ukenglish/fancydmtemplate.html | 179 +
.../e2guardian/languages/ukenglish/messages | 117 +
.../languages/ukenglish/neterr_template.html | 144 +
.../languages/ukenglish/template.html | 154 +
config/e2guardian/lists/addheaderregexplist | 13 +
config/e2guardian/lists/authexceptioniplist | 9 +
.../e2guardian/lists/authexceptionsiteiplist | 9 +
config/e2guardian/lists/authexceptionsitelist | 1 +
config/e2guardian/lists/authexceptionurllist | 1 +
config/e2guardian/lists/authplugins/ipgroups | 11 +
.../e2guardian/lists/authplugins/portgroups | 8 +
config/e2guardian/lists/bannedclientlist | 6 +
config/e2guardian/lists/bannedextensionlist | 211 +
config/e2guardian/lists/bannediplist | 12 +
config/e2guardian/lists/bannedmimetypelist | 18 +
config/e2guardian/lists/bannedphraselist | 57 +
.../e2guardian/lists/bannedregexpheaderlist | 9 +
config/e2guardian/lists/bannedregexpurllist | 120 +
.../lists/bannedregexpuseragentlist | 7 +
config/e2guardian/lists/bannedrooms/default | 2 +
config/e2guardian/lists/bannedsearchlist | 9 +
.../e2guardian/lists/bannedsearchoveridelist | 0
config/e2guardian/lists/bannedsiteiplist | 12 +
config/e2guardian/lists/bannedsitelist | 97 +
.../e2guardian/lists/bannedsitelistwithbypass | 64 +
config/e2guardian/lists/bannedsslsiteiplist | 15 +
config/e2guardian/lists/bannedsslsitelist | 9 +
config/e2guardian/lists/bannedurllist | 59 +
config/e2guardian/lists/contentregexplist | 93 +
.../exceptionvirusextensionlist | 35 +
.../exceptionvirusmimetypelist | 28 +
.../contentscanners/exceptionvirussitelist | 12 +
.../contentscanners/exceptionvirusurllist | 15 +
.../e2guardian/lists/embededreferersiteiplist | 10 +
.../e2guardian/lists/embededreferersitelist | 2 +
config/e2guardian/lists/embededrefererurllist | 5 +
config/e2guardian/lists/exceptionclientlist | 16 +
.../e2guardian/lists/exceptionextensionlist | 49 +
.../e2guardian/lists/exceptionfilesiteiplist | 15 +
config/e2guardian/lists/exceptionfilesitelist | 30 +
config/e2guardian/lists/exceptionfileurllist | 27 +
config/e2guardian/lists/exceptioniplist | 27 +
config/e2guardian/lists/exceptionmimetypelist | 40 +
config/e2guardian/lists/exceptionphraselist | 18 +
.../lists/exceptionregexpheaderlist | 8 +
.../e2guardian/lists/exceptionregexpurllist | 15 +
.../lists/exceptionregexpuseragentlist | 9 +
config/e2guardian/lists/exceptionsiteiplist | 9 +
config/e2guardian/lists/exceptionsitelist | 24 +
config/e2guardian/lists/exceptionurllist | 15 +
.../lists/exceptionvirusextensionlist | 45 +
.../e2guardian/lists/exceptionvirussiteiplist | 12 +
config/e2guardian/lists/filtergroupslist | 9 +
config/e2guardian/lists/greysiteiplist | 16 +
config/e2guardian/lists/greysitelist | 59 +
config/e2guardian/lists/greysslsiteiplist | 10 +
config/e2guardian/lists/greysslsitelist | 4 +
config/e2guardian/lists/greyurllist | 27 +
config/e2guardian/lists/headerregexplist | 11 +
config/e2guardian/lists/localbannedsearchlist | 14 +
config/e2guardian/lists/localbannedsiteiplist | 10 +
config/e2guardian/lists/localbannedsitelist | 6 +
.../e2guardian/lists/localbannedsslsiteiplist | 12 +
.../e2guardian/lists/localbannedsslsitelist | 5 +
config/e2guardian/lists/localbannedurllist | 1 +
.../e2guardian/lists/localexceptionsiteiplist | 10 +
.../e2guardian/lists/localexceptionsitelist | 1 +
config/e2guardian/lists/localexceptionurllist | 1 +
config/e2guardian/lists/localgreysiteiplist | 10 +
config/e2guardian/lists/localgreysitelist | 1 +
.../e2guardian/lists/localgreysslsiteiplist | 10 +
config/e2guardian/lists/localgreysslsitelist | 6 +
config/e2guardian/lists/localgreyurllist | 1 +
config/e2guardian/lists/logregexpurllist | 12 +
config/e2guardian/lists/logsiteiplist | 21 +
config/e2guardian/lists/logsitelist | 12 +
config/e2guardian/lists/logurllist | 12 +
config/e2guardian/lists/nocheckcertsiteiplist | 17 +
config/e2guardian/lists/nocheckcertsitelist | 9 +
.../lists/phraselists/badwords/weighted_dutch | 36 +
.../phraselists/badwords/weighted_french | 43 +
.../phraselists/badwords/weighted_german | 34 +
.../phraselists/badwords/weighted_portuguese | 16 +
.../phraselists/badwords/weighted_spanish | 67 +
.../lists/phraselists/chat/weighted | 33 +
.../lists/phraselists/chat/weighted_italian | 26 +
.../lists/phraselists/conspiracy/weighted | 61 +
.../lists/phraselists/domainsforsale/weighted | 31 +
.../lists/phraselists/drugadvocacy/weighted | 12 +
.../lists/phraselists/forums/weighted | 66 +
.../lists/phraselists/gambling/banned | 13 +
.../phraselists/gambling/banned_portuguese | 10 +
.../lists/phraselists/gambling/weighted | 45 +
.../phraselists/gambling/weighted_portuguese | 12 +
.../lists/phraselists/games/weighted | 64 +
.../lists/phraselists/goodphrases/exception | 6 +
.../phraselists/goodphrases/exception_email | 11 +
.../phraselists/goodphrases/weighted_general | 425 +
.../goodphrases/weighted_general_danish | 6 +
.../goodphrases/weighted_general_dutch | 5 +
.../goodphrases/weighted_general_malay | 8 +
.../goodphrases/weighted_general_polish | 42 +
.../goodphrases/weighted_general_portuguese | 44 +
.../goodphrases/weighted_general_swedish | 97 +
.../phraselists/goodphrases/weighted_news | 36 +
.../lists/phraselists/googlesearches/banned | 674 +
.../lists/phraselists/gore/weighted | 12 +
.../phraselists/gore/weighted_portuguese | 11 +
.../lists/phraselists/idtheft/weighted | 27 +
.../lists/phraselists/illegaldrugs/banned | 5 +
.../lists/phraselists/illegaldrugs/weighted | 81 +
.../illegaldrugs/weighted_portuguese | 35 +
.../phraselists/intolerance/banned_portuguese | 9 +
.../lists/phraselists/intolerance/weighted | 47 +
.../intolerance/weighted_portuguese | 20 +
.../lists/phraselists/legaldrugs/weighted | 42 +
.../lists/phraselists/malware/weighted | 111 +
.../lists/phraselists/music/weighted | 87 +
.../lists/phraselists/news/weighted | 114 +
.../lists/phraselists/nudism/weighted | 30 +
.../lists/phraselists/peer2peer/weighted | 53 +
.../lists/phraselists/personals/weighted | 56 +
.../phraselists/personals/weighted_portuguese | 204 +
.../lists/phraselists/pornography/banned | 6 +
.../phraselists/pornography/banned_portuguese | 517 +
.../lists/phraselists/pornography/weighted | 3861 ++++++
.../phraselists/pornography/weighted_chinese | 17 +
.../phraselists/pornography/weighted_danish | 56 +
.../phraselists/pornography/weighted_dutch | 38 +
.../phraselists/pornography/weighted_french | 134 +
.../phraselists/pornography/weighted_german | 99 +
.../phraselists/pornography/weighted_italian | 337 +
.../phraselists/pornography/weighted_japanese | 265 +
.../phraselists/pornography/weighted_malay | 60 +
.../pornography/weighted_norwegian | 72 +
.../phraselists/pornography/weighted_polish | 209 +
.../pornography/weighted_portuguese | 701 +
.../phraselists/pornography/weighted_russian | 144 +
.../pornography/weighted_russian_utf8 | 144 +
.../phraselists/pornography/weighted_spanish | 66 +
.../phraselists/pornography/weighted_swedish | 89 +
.../lists/phraselists/proxies/weighted | 132 +
.../e2guardian/lists/phraselists/rta/banned | 7 +
.../lists/phraselists/safelabel/banned | 11 +
.../phraselists/secretsocieties/weighted | 64 +
.../lists/phraselists/sport/weighted | 557 +
.../lists/phraselists/translation/weighted | 70 +
.../lists/phraselists/travel/weighted | 108 +
.../lists/phraselists/upstreamfilter/weighted | 18 +
.../lists/phraselists/violence/weighted | 26 +
.../phraselists/violence/weighted_portuguese | 21 +
.../lists/phraselists/warezhacking/weighted | 25 +
.../lists/phraselists/weapons/weighted | 132 +
.../phraselists/weapons/weighted_portuguese | 51 +
.../lists/phraselists/webmail/weighted | 46 +
.../lists/refererexceptionsiteiplist | 11 +
.../e2guardian/lists/refererexceptionsitelist | 2 +
.../e2guardian/lists/refererexceptionurllist | 1 +
config/e2guardian/lists/searchregexplist | 19 +
config/e2guardian/lists/sslsiteregexplist | 23 +
config/e2guardian/lists/urlredirectregexplist | 4 +
config/e2guardian/lists/urlregexplist | 55 +
config/e2guardian/lists/weightedphraselist | 140 +
config/e2guardian/preauth.story | 14 +
config/e2guardian/site.story | 40 +
config/squid/conf.d/debian.conf | 11 +
config/squid/errorpage.css | 107 +
config/squid/squid.conf | 40 +
config/squid/squid.orig | 8564 +++++++++++++
config/squidguard/squidGuard.conf | 82 +
data/htdocs/www/404.html | 73 +
data/htdocs/www/block.html | 3 +
data/htdocs/www/css/bootstrap.min.css | 10531 ++++++++++++++++
data/htdocs/www/css/errorpages.css | 342 +
data/htdocs/www/css/index.css | 79 +
data/htdocs/www/images/403.png | Bin 0 -> 35464 bytes
data/htdocs/www/images/404.gif | Bin 0 -> 95633 bytes
data/htdocs/www/images/bg.png | Bin 0 -> 1218 bytes
data/htdocs/www/images/favicon.ico | Bin 0 -> 766 bytes
data/htdocs/www/images/icon.png | Bin 0 -> 4029 bytes
data/htdocs/www/images/icon.svg | 1 +
data/htdocs/www/index.html | 48 +
data/htdocs/www/js/app.js | 0
data/htdocs/www/js/bootstrap.min.js | 4075 ++++++
data/htdocs/www/js/errorpages/homepage.js | 6 +
data/htdocs/www/js/errorpages/isup.js | 7 +
data/htdocs/www/js/errorpages/loaddomain.js | 7 +
data/htdocs/www/js/errorpages/scale.fix.js | 20 +
data/htdocs/www/js/jquery/default.js | 5540 ++++++++
data/htdocs/www/js/passprotect.min.js | 2294 ++++
data/htdocs/www/server-health | 1 +
data/htdocs/www/server-health.json | 3 +
data/htdocs/www/site.webmanifest | 14 +
data/htdocs/www/wpad.dat | 7 +
322 files changed, 62596 insertions(+)
create mode 100644 .dockerignore
create mode 100644 .gitignore
create mode 100644 .travis.yml
create mode 100644 Dockerfile
create mode 100644 LICENSE.md
create mode 100644 README.md
create mode 100755 bin/create-blocklists.sh
create mode 100755 bin/entrypoint-squid.sh
create mode 100644 config/apache2/apache2.conf
create mode 100644 config/apache2/mime.types
create mode 100644 config/e2guardian/authplugins/ident.conf
create mode 100644 config/e2guardian/authplugins/ip.conf
create mode 100644 config/e2guardian/authplugins/port.conf
create mode 100644 config/e2guardian/authplugins/proxy-basic.conf
create mode 100644 config/e2guardian/authplugins/proxy-digest.conf
create mode 100644 config/e2guardian/authplugins/proxy-ntlm.conf
create mode 100644 config/e2guardian/common.story
create mode 100644 config/e2guardian/contentscanners/clamdscan.conf
create mode 100644 config/e2guardian/contentscanners/commandlinescan.conf
create mode 100644 config/e2guardian/contentscanners/icapscan.conf
create mode 100644 config/e2guardian/downloadmanagers/default.conf
create mode 100644 config/e2guardian/e2guardian.conf
create mode 100644 config/e2guardian/e2guardianf1.conf
create mode 100644 config/e2guardian/examplef1.story
create mode 100644 config/e2guardian/languages/arspanish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/arspanish/messages
create mode 100644 config/e2guardian/languages/arspanish/neterr_template.html
create mode 100644 config/e2guardian/languages/arspanish/template.html
create mode 100644 config/e2guardian/languages/bulgarian/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/bulgarian/messages
create mode 100644 config/e2guardian/languages/bulgarian/neterr_template.html
create mode 100644 config/e2guardian/languages/bulgarian/template.html
create mode 100644 config/e2guardian/languages/chinesebig5/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/chinesebig5/messages
create mode 100644 config/e2guardian/languages/chinesebig5/neterr_template.html
create mode 100644 config/e2guardian/languages/chinesebig5/template.html
create mode 100644 config/e2guardian/languages/chinesegb2312/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/chinesegb2312/messages
create mode 100644 config/e2guardian/languages/chinesegb2312/neterr_template.html
create mode 100644 config/e2guardian/languages/chinesegb2312/template.html
create mode 100644 config/e2guardian/languages/czech/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/czech/messages
create mode 100644 config/e2guardian/languages/czech/neterr_template.html
create mode 100644 config/e2guardian/languages/czech/template.html
create mode 100644 config/e2guardian/languages/danish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/danish/messages
create mode 100644 config/e2guardian/languages/danish/neterr_template.html
create mode 100644 config/e2guardian/languages/danish/template.html
create mode 100644 config/e2guardian/languages/dutch/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/dutch/messages
create mode 100644 config/e2guardian/languages/dutch/neterr_template.html
create mode 100644 config/e2guardian/languages/dutch/template.html
create mode 100644 config/e2guardian/languages/french/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/french/messages
create mode 100644 config/e2guardian/languages/french/neterr_template.html
create mode 100644 config/e2guardian/languages/french/template.html
create mode 100644 config/e2guardian/languages/german/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/german/messages
create mode 100644 config/e2guardian/languages/german/neterr_template.html
create mode 100644 config/e2guardian/languages/german/template.html
create mode 100644 config/e2guardian/languages/hebrew/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/hebrew/messages
create mode 100644 config/e2guardian/languages/hebrew/neterr_template.html
create mode 100644 config/e2guardian/languages/hebrew/template.html
create mode 100644 config/e2guardian/languages/hungarian/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/hungarian/messages
create mode 100644 config/e2guardian/languages/hungarian/neterr_template.html
create mode 100644 config/e2guardian/languages/hungarian/template.html
create mode 100644 config/e2guardian/languages/indonesian/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/indonesian/messages
create mode 100644 config/e2guardian/languages/indonesian/neterr_template.html
create mode 100644 config/e2guardian/languages/indonesian/template.html
create mode 100644 config/e2guardian/languages/italian/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/italian/messages
create mode 100644 config/e2guardian/languages/italian/neterr_template.html
create mode 100644 config/e2guardian/languages/italian/template.html
create mode 100644 config/e2guardian/languages/japanese/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/japanese/messages
create mode 100644 config/e2guardian/languages/japanese/neterr_template.html
create mode 100644 config/e2guardian/languages/japanese/template.html
create mode 100644 config/e2guardian/languages/lithuanian/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/lithuanian/messages
create mode 100644 config/e2guardian/languages/lithuanian/neterr_template.html
create mode 100644 config/e2guardian/languages/lithuanian/template.html
create mode 100644 config/e2guardian/languages/malay/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/malay/messages
create mode 100644 config/e2guardian/languages/malay/neterr_template.html
create mode 100644 config/e2guardian/languages/malay/template.html
create mode 100644 config/e2guardian/languages/mxspanish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/mxspanish/messages
create mode 100644 config/e2guardian/languages/mxspanish/neterr_template.html
create mode 100644 config/e2guardian/languages/mxspanish/template.html
create mode 100644 config/e2guardian/languages/polish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/polish/messages
create mode 100644 config/e2guardian/languages/polish/neterr_template.html
create mode 100644 config/e2guardian/languages/polish/template.html
create mode 100644 config/e2guardian/languages/portuguese/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/portuguese/messages
create mode 100644 config/e2guardian/languages/portuguese/neterr_template.html
create mode 100644 config/e2guardian/languages/portuguese/template.html
create mode 100644 config/e2guardian/languages/ptbrazilian/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/ptbrazilian/messages
create mode 100644 config/e2guardian/languages/ptbrazilian/neterr_template.html
create mode 100644 config/e2guardian/languages/ptbrazilian/template.html
create mode 100644 config/e2guardian/languages/russian-1251/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/russian-1251/messages
create mode 100644 config/e2guardian/languages/russian-1251/neterr_template.html
create mode 100644 config/e2guardian/languages/russian-1251/template.html
create mode 100644 config/e2guardian/languages/russian-koi8-r/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/russian-koi8-r/messages
create mode 100644 config/e2guardian/languages/russian-koi8-r/neterr_template.html
create mode 100644 config/e2guardian/languages/russian-koi8-r/template.html
create mode 100644 config/e2guardian/languages/slovak/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/slovak/messages
create mode 100644 config/e2guardian/languages/slovak/neterr_template.html
create mode 100644 config/e2guardian/languages/slovak/template.html
create mode 100644 config/e2guardian/languages/spanish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/spanish/messages
create mode 100644 config/e2guardian/languages/spanish/neterr_template.html
create mode 100644 config/e2guardian/languages/spanish/template.html
create mode 100644 config/e2guardian/languages/swedish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/swedish/messages
create mode 100644 config/e2guardian/languages/swedish/neterr_template.html
create mode 100644 config/e2guardian/languages/swedish/template.html
create mode 100644 config/e2guardian/languages/turkish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/turkish/messages
create mode 100644 config/e2guardian/languages/turkish/neterr_template.html
create mode 100644 config/e2guardian/languages/turkish/template.html
create mode 100644 config/e2guardian/languages/ukenglish/fancydmtemplate.html
create mode 100644 config/e2guardian/languages/ukenglish/messages
create mode 100644 config/e2guardian/languages/ukenglish/neterr_template.html
create mode 100644 config/e2guardian/languages/ukenglish/template.html
create mode 100644 config/e2guardian/lists/addheaderregexplist
create mode 100644 config/e2guardian/lists/authexceptioniplist
create mode 100644 config/e2guardian/lists/authexceptionsiteiplist
create mode 100644 config/e2guardian/lists/authexceptionsitelist
create mode 100644 config/e2guardian/lists/authexceptionurllist
create mode 100644 config/e2guardian/lists/authplugins/ipgroups
create mode 100644 config/e2guardian/lists/authplugins/portgroups
create mode 100644 config/e2guardian/lists/bannedclientlist
create mode 100644 config/e2guardian/lists/bannedextensionlist
create mode 100644 config/e2guardian/lists/bannediplist
create mode 100644 config/e2guardian/lists/bannedmimetypelist
create mode 100644 config/e2guardian/lists/bannedphraselist
create mode 100644 config/e2guardian/lists/bannedregexpheaderlist
create mode 100644 config/e2guardian/lists/bannedregexpurllist
create mode 100644 config/e2guardian/lists/bannedregexpuseragentlist
create mode 100644 config/e2guardian/lists/bannedrooms/default
create mode 100644 config/e2guardian/lists/bannedsearchlist
create mode 100644 config/e2guardian/lists/bannedsearchoveridelist
create mode 100644 config/e2guardian/lists/bannedsiteiplist
create mode 100644 config/e2guardian/lists/bannedsitelist
create mode 100644 config/e2guardian/lists/bannedsitelistwithbypass
create mode 100644 config/e2guardian/lists/bannedsslsiteiplist
create mode 100644 config/e2guardian/lists/bannedsslsitelist
create mode 100644 config/e2guardian/lists/bannedurllist
create mode 100644 config/e2guardian/lists/contentregexplist
create mode 100644 config/e2guardian/lists/contentscanners/exceptionvirusextensionlist
create mode 100644 config/e2guardian/lists/contentscanners/exceptionvirusmimetypelist
create mode 100644 config/e2guardian/lists/contentscanners/exceptionvirussitelist
create mode 100644 config/e2guardian/lists/contentscanners/exceptionvirusurllist
create mode 100644 config/e2guardian/lists/embededreferersiteiplist
create mode 100644 config/e2guardian/lists/embededreferersitelist
create mode 100644 config/e2guardian/lists/embededrefererurllist
create mode 100644 config/e2guardian/lists/exceptionclientlist
create mode 100644 config/e2guardian/lists/exceptionextensionlist
create mode 100644 config/e2guardian/lists/exceptionfilesiteiplist
create mode 100644 config/e2guardian/lists/exceptionfilesitelist
create mode 100644 config/e2guardian/lists/exceptionfileurllist
create mode 100644 config/e2guardian/lists/exceptioniplist
create mode 100644 config/e2guardian/lists/exceptionmimetypelist
create mode 100644 config/e2guardian/lists/exceptionphraselist
create mode 100644 config/e2guardian/lists/exceptionregexpheaderlist
create mode 100644 config/e2guardian/lists/exceptionregexpurllist
create mode 100644 config/e2guardian/lists/exceptionregexpuseragentlist
create mode 100644 config/e2guardian/lists/exceptionsiteiplist
create mode 100644 config/e2guardian/lists/exceptionsitelist
create mode 100644 config/e2guardian/lists/exceptionurllist
create mode 100644 config/e2guardian/lists/exceptionvirusextensionlist
create mode 100644 config/e2guardian/lists/exceptionvirussiteiplist
create mode 100644 config/e2guardian/lists/filtergroupslist
create mode 100644 config/e2guardian/lists/greysiteiplist
create mode 100644 config/e2guardian/lists/greysitelist
create mode 100644 config/e2guardian/lists/greysslsiteiplist
create mode 100644 config/e2guardian/lists/greysslsitelist
create mode 100644 config/e2guardian/lists/greyurllist
create mode 100644 config/e2guardian/lists/headerregexplist
create mode 100644 config/e2guardian/lists/localbannedsearchlist
create mode 100644 config/e2guardian/lists/localbannedsiteiplist
create mode 100644 config/e2guardian/lists/localbannedsitelist
create mode 100644 config/e2guardian/lists/localbannedsslsiteiplist
create mode 100644 config/e2guardian/lists/localbannedsslsitelist
create mode 100644 config/e2guardian/lists/localbannedurllist
create mode 100644 config/e2guardian/lists/localexceptionsiteiplist
create mode 100644 config/e2guardian/lists/localexceptionsitelist
create mode 100644 config/e2guardian/lists/localexceptionurllist
create mode 100644 config/e2guardian/lists/localgreysiteiplist
create mode 100644 config/e2guardian/lists/localgreysitelist
create mode 100644 config/e2guardian/lists/localgreysslsiteiplist
create mode 100644 config/e2guardian/lists/localgreysslsitelist
create mode 100644 config/e2guardian/lists/localgreyurllist
create mode 100644 config/e2guardian/lists/logregexpurllist
create mode 100644 config/e2guardian/lists/logsiteiplist
create mode 100644 config/e2guardian/lists/logsitelist
create mode 100644 config/e2guardian/lists/logurllist
create mode 100644 config/e2guardian/lists/nocheckcertsiteiplist
create mode 100644 config/e2guardian/lists/nocheckcertsitelist
create mode 100644 config/e2guardian/lists/phraselists/badwords/weighted_dutch
create mode 100644 config/e2guardian/lists/phraselists/badwords/weighted_french
create mode 100644 config/e2guardian/lists/phraselists/badwords/weighted_german
create mode 100644 config/e2guardian/lists/phraselists/badwords/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/badwords/weighted_spanish
create mode 100644 config/e2guardian/lists/phraselists/chat/weighted
create mode 100644 config/e2guardian/lists/phraselists/chat/weighted_italian
create mode 100644 config/e2guardian/lists/phraselists/conspiracy/weighted
create mode 100644 config/e2guardian/lists/phraselists/domainsforsale/weighted
create mode 100644 config/e2guardian/lists/phraselists/drugadvocacy/weighted
create mode 100644 config/e2guardian/lists/phraselists/forums/weighted
create mode 100644 config/e2guardian/lists/phraselists/gambling/banned
create mode 100644 config/e2guardian/lists/phraselists/gambling/banned_portuguese
create mode 100644 config/e2guardian/lists/phraselists/gambling/weighted
create mode 100644 config/e2guardian/lists/phraselists/gambling/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/games/weighted
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/exception
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/exception_email
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_general
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_general_danish
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_general_dutch
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_general_malay
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_general_polish
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_general_portuguese
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_general_swedish
create mode 100644 config/e2guardian/lists/phraselists/goodphrases/weighted_news
create mode 100644 config/e2guardian/lists/phraselists/googlesearches/banned
create mode 100644 config/e2guardian/lists/phraselists/gore/weighted
create mode 100644 config/e2guardian/lists/phraselists/gore/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/idtheft/weighted
create mode 100644 config/e2guardian/lists/phraselists/illegaldrugs/banned
create mode 100644 config/e2guardian/lists/phraselists/illegaldrugs/weighted
create mode 100644 config/e2guardian/lists/phraselists/illegaldrugs/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/intolerance/banned_portuguese
create mode 100644 config/e2guardian/lists/phraselists/intolerance/weighted
create mode 100644 config/e2guardian/lists/phraselists/intolerance/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/legaldrugs/weighted
create mode 100644 config/e2guardian/lists/phraselists/malware/weighted
create mode 100644 config/e2guardian/lists/phraselists/music/weighted
create mode 100644 config/e2guardian/lists/phraselists/news/weighted
create mode 100644 config/e2guardian/lists/phraselists/nudism/weighted
create mode 100644 config/e2guardian/lists/phraselists/peer2peer/weighted
create mode 100644 config/e2guardian/lists/phraselists/personals/weighted
create mode 100644 config/e2guardian/lists/phraselists/personals/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/pornography/banned
create mode 100644 config/e2guardian/lists/phraselists/pornography/banned_portuguese
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_chinese
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_danish
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_dutch
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_french
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_german
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_italian
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_japanese
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_malay
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_norwegian
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_polish
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_russian
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_russian_utf8
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_spanish
create mode 100644 config/e2guardian/lists/phraselists/pornography/weighted_swedish
create mode 100644 config/e2guardian/lists/phraselists/proxies/weighted
create mode 100644 config/e2guardian/lists/phraselists/rta/banned
create mode 100644 config/e2guardian/lists/phraselists/safelabel/banned
create mode 100644 config/e2guardian/lists/phraselists/secretsocieties/weighted
create mode 100644 config/e2guardian/lists/phraselists/sport/weighted
create mode 100644 config/e2guardian/lists/phraselists/translation/weighted
create mode 100644 config/e2guardian/lists/phraselists/travel/weighted
create mode 100644 config/e2guardian/lists/phraselists/upstreamfilter/weighted
create mode 100644 config/e2guardian/lists/phraselists/violence/weighted
create mode 100644 config/e2guardian/lists/phraselists/violence/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/warezhacking/weighted
create mode 100644 config/e2guardian/lists/phraselists/weapons/weighted
create mode 100644 config/e2guardian/lists/phraselists/weapons/weighted_portuguese
create mode 100644 config/e2guardian/lists/phraselists/webmail/weighted
create mode 100644 config/e2guardian/lists/refererexceptionsiteiplist
create mode 100644 config/e2guardian/lists/refererexceptionsitelist
create mode 100644 config/e2guardian/lists/refererexceptionurllist
create mode 100644 config/e2guardian/lists/searchregexplist
create mode 100644 config/e2guardian/lists/sslsiteregexplist
create mode 100644 config/e2guardian/lists/urlredirectregexplist
create mode 100644 config/e2guardian/lists/urlregexplist
create mode 100644 config/e2guardian/lists/weightedphraselist
create mode 100644 config/e2guardian/preauth.story
create mode 100644 config/e2guardian/site.story
create mode 100644 config/squid/conf.d/debian.conf
create mode 100644 config/squid/errorpage.css
create mode 100644 config/squid/squid.conf
create mode 100644 config/squid/squid.orig
create mode 100644 config/squidguard/squidGuard.conf
create mode 100644 data/htdocs/www/404.html
create mode 100644 data/htdocs/www/block.html
create mode 100644 data/htdocs/www/css/bootstrap.min.css
create mode 100644 data/htdocs/www/css/errorpages.css
create mode 100644 data/htdocs/www/css/index.css
create mode 100644 data/htdocs/www/images/403.png
create mode 100644 data/htdocs/www/images/404.gif
create mode 100644 data/htdocs/www/images/bg.png
create mode 100644 data/htdocs/www/images/favicon.ico
create mode 100644 data/htdocs/www/images/icon.png
create mode 100644 data/htdocs/www/images/icon.svg
create mode 100644 data/htdocs/www/index.html
create mode 100644 data/htdocs/www/js/app.js
create mode 100644 data/htdocs/www/js/bootstrap.min.js
create mode 100644 data/htdocs/www/js/errorpages/homepage.js
create mode 100644 data/htdocs/www/js/errorpages/isup.js
create mode 100644 data/htdocs/www/js/errorpages/loaddomain.js
create mode 100644 data/htdocs/www/js/errorpages/scale.fix.js
create mode 100644 data/htdocs/www/js/jquery/default.js
create mode 100644 data/htdocs/www/js/passprotect.min.js
create mode 100644 data/htdocs/www/server-health
create mode 100644 data/htdocs/www/server-health.json
create mode 100644 data/htdocs/www/site.webmanifest
create mode 100644 data/htdocs/www/wpad.dat
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..810979f
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,7 @@
+.git
+circle.yml
+LICENSE
+VERSION
+README.md
+Changelog.md
+Makefile
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b763338
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,17 @@
+# gitignore created on 02/14/22 at 15:49
+# Disable reminder in prompt
+ignoredirmessage
+
+# OS generated files
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+ehthumbs.db
+Thumbs.db
+
+# Other
+.installed
+
+
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..63cd3d3
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+sudo: required
+services:
+ - docker
+
+env:
+ DOCKER_COMPOSE_VERSION: 1.5.2
+
+before_install:
+ - sudo rm /usr/local/bin/docker-compose
+ - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
+ - chmod +x docker-compose
+ - sudo mv docker-compose /usr/local/bin
+
+script:
+ - docker-compose build
+ - docker-compose up -d
+ # everything running?
+ - docker-compose ps
+ - docker-compose ps squidguard | grep Up
+ # wpad should be available
+ - docker-compose run squidguard wget -o /dev/null http://squidguard/wpat.dat
+ # muenchhausen.de should not be blocked
+ - docker-compose run squidguard wget -e use_proxy=yes -e http_proxy=http://squidguard:3128 -o /dev/null http://www.muenchhausen.de
+ # lemonlime.de should be blocked because it is not in the whitelist
+ - docker-compose run squidguard wget -e use_proxy=yes -e http_proxy=http://squidguard:3128 --content-on-error -qO- http://www.lemonlime.de | grep "block"
+
+notifications:
+ email:
+ - derk@muenchhausen.de
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..4cab855
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,59 @@
+FROM casjaysdev/debian:latest AS build
+
+ARG BUILD_DATE="$(date +'%Y-%m-%d %H:%M')"
+
+LABEL \
+ org.label-schema.name="Full proxy server" \
+ org.label-schema.description="" \
+ org.label-schema.url="https://github.com/casjaysdev/squid" \
+ org.label-schema.vcs-url="https://github.com/casjaysdev/squid" \
+ org.label-schema.build-date=$BUILD_DATE \
+ org.label-schema.version=$BUILD_DATE \
+ org.label-schema.vcs-ref=$BUILD_DATE \
+ org.label-schema.license="MIT" \
+ org.label-schema.vcs-type="Git" \
+ org.label-schema.schema-version="latest" \
+ org.label-schema.vendor="CasjaysDev" \
+ maintainer="CasjaysDev "
+
+ENV \
+ HOSTNAME=proxy \
+ SQUID_HOME_DIR=/var/lib/squid \
+ SQUID_CACHE_DIR=/data/cache/squid \
+ SQUID_LOG_DIR=/data/log/squid \
+ SQUID_USER=squid
+
+RUN apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -yy \
+ postfix \
+ squid \
+ squidguard \
+ e2guardian \
+ c-icap \
+ apache2 \
+ apache2-bin \
+ libapache2-mod-fcgid \
+ libapache2-mod-geoip \
+ libapache2-mod-proxy-uwsgi \
+ libapache2-mod-fcgid \
+ libapache2-mod-wsgi \
+ && apt-get remove -yy --purge exim* \
+ && rm -rf /var/lib/apt/lists/* /etc/apache2/*conf* \
+ && mkdir -p /config /data \
+ && useradd -d "$SQUID_HOME_DIR" -r -U -m "$SQUID_USER"
+
+ADD ./config/. /etc/
+ADD ./bin/. /usr/local/bin/
+
+ADD ./data/. /usr/local/share/squidFiles/data/
+ADD ./config/. /usr/local/share/squidFiles/config/
+
+FROM scratch
+
+COPY --from=build /. /
+
+EXPOSE 3127 3128 80
+VOLUME ["/config", "/data"]
+
+HEALTHCHECK CMD ["/usr/local/bin/entrypoint-squid.sh","healthcheck"]
+ENTRYPOINT ["/usr/local/bin/entrypoint-squid.sh"]
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..86d4345
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,13 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2022 Jason Hempstead
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 1. You just DO WHAT THE FUCK YOU WANT TO.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b079138
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+
+👋 Welcome to squidguard 👋
+
+
+StartDocumentationHere
+
+
+## Author
+
+👤 **Jason Hempstead**
diff --git a/bin/create-blocklists.sh b/bin/create-blocklists.sh
new file mode 100755
index 0000000..592f5b2
--- /dev/null
+++ b/bin/create-blocklists.sh
@@ -0,0 +1,72 @@
+#!/usr/bin/env bash
+
+set -ex
+
+SQUID_USER="${SQUID_USER:-squid}"
+SQUID_LOG_DIR="${SQUID_LOG_DIR:-/data/log/squid}"
+REDIRECT_URL="${REDIRECT_URL:-/}"
+BLOCKLIST="${BLOCKLIST:-http://www.shallalist.de/Downloads/shallalist.tar.gz}"
+BLOCKED_CATEGORIES="${BLOCKED_CATEGORIES:-adv,aggressive,porn,spyware,violence,warez}"
+
+CONFIG_FILE="/etc/squidguard/squidGuard.conf"
+DB_LOCATION="/data/squidguard/db"
+LOG_LOCATION="/data/log"
+
+echo "Downloading blocklist..."
+wget -q "${BLOCKLIST}" -O /tmp/blocklist.tgz
+
+echo "Extracting blocklist..."
+mkdir -p /tmp/blocklist
+tar xzf /tmp/blocklist.tgz --strip-components=1 -C /tmp/blocklist
+
+echo "Creating config file..."
+rm "${CONFIG_FILE}"
+touch "${CONFIG_FILE}"
+
+echo "dbhome ${DB_LOCATION}" >>"${CONFIG_FILE}"
+echo "logdir ${LOG_LOCATION}" >>"${CONFIG_FILE}"
+
+for CATEGORY in $(echo ${BLOCKED_CATEGORIES} | sed "s/,/ /g"); do
+ if [ ! -d "/tmp/blocklist/${CATEGORY}" ]; then
+ echo "Category ${CATEGORY} not available!"
+ exit 1
+ fi
+
+ cp -r "/tmp/blocklist/${CATEGORY}" "${DB_LOCATION}/"
+
+ echo "dest ${CATEGORY} {" >>"${CONFIG_FILE}"
+
+ if [ -e "${DB_LOCATION}/${CATEGORY}/domains" ]; then
+ echo " domainlist ${CATEGORY}/domains" >>"${CONFIG_FILE}"
+ fi
+
+ if [ -e "${DB_LOCATION}/${CATEGORY}/urls" ]; then
+ echo " urllist ${CATEGORY}/urls" >>"${CONFIG_FILE}"
+ fi
+
+ if [ -e "${DB_LOCATION}/${CATEGORY}/expressions" ]; then
+ echo " expressionlist ${CATEGORY}/expressions" >>"${CONFIG_FILE}"
+ fi
+
+ echo "}" >>"${CONFIG_FILE}"
+done
+
+NOT_LIST="${BLOCKED_CATEGORIES//,/ !}"
+
+{
+ echo "acl {"
+ echo " default {"
+ echo " pass !${NOT_LIST} all"
+ echo " redirect $REDIRECT_URL"
+ echo " }"
+ echo "}"
+} >>"${CONFIG_FILE}"
+
+squidGuard -C all
+
+chown -R ${SQUID_USER}:${SQUID_USER} "${DB_LOCATION}"
+chown -R ${SQUID_USER}:${SQUID_USER} "${LOG_LOCATION}"
+chown -R ${SQUID_USER}:${SQUID_USER} "${CONFIG_FILE}"
+
+echo "Cleanup..."
+rm -rf /tmp/*
diff --git a/bin/entrypoint-squid.sh b/bin/entrypoint-squid.sh
new file mode 100755
index 0000000..64da2ec
--- /dev/null
+++ b/bin/entrypoint-squid.sh
@@ -0,0 +1,69 @@
+#!/usr/bin/env bash
+set -e
+
+if [ "$1" = "healthcheck" ]; then
+ squidclient -h localhost cache_object://localhost/counters
+ exit $?
+fi
+
+SQUID_USER="${SQUID_USER:-squid}"
+SQUID_LOG_DIR="${SQUID_LOG_DIR:-/data/log/squid}"
+SQUID_CACHE_DIR="${SQUID_CACHE_DIR:-/data/cache/squid}"
+HOSTNAME="${HOSTNAME:-$(hostname -f)}"
+
+mkdir -p "/config" "/data"
+
+for dir in apache2 e2guardian squid squidguard; do
+ if [ -f "/usr/local/share/squidFiles/$dir" ]; then
+ cp -Rf "/usr/local/share/squidFiles/$dir" "/config/$dir"
+ elif [ -d "/usr/local/share/squidFiles/$dir" ]; then
+ cp -Rf "/usr/local/share/squidFiles/$dir/." "/config/$dir/"
+ else
+ cp -Rf "/usr/local/share/squidFiles/data/." "/data/"
+ cp -Rf "usr/local/share/squidFiles/config/." "/config/"
+ fi
+done
+
+mkdir -p "${SQUID_LOG_DIR}" "${SQUID_CACHE_DIR}"
+mkdir -p "/data/log/squidguard" "/data/log/e2guardian" "/data/squidguard/db"
+chown -Rf ${SQUID_USER}:${SQUID_USER} "/config" "/data"
+chmod -Rf 755 "${SQUID_LOG_DIR}"
+
+cp -Rf "/config/." "/etc/"
+
+if [ "${UPDATE_BLACKLIST_URL}" != "" ]; then
+ sudo wget -O backlist.tar.gz ${UPDATE_BLACKLIST_URL} &&
+ tar -xzf backlist.tar.gz -C "/data/squidguard/db" &&
+ rm -Rf backlist.tar.gz &&
+ chown -Rf ${SQUID_USER}:${SQUID_USER} "/data/squidguard/db"
+fi
+
+if [ "${WPAD_IP}" != "" ]; then
+ sed 's/{{WPAD_IP}}/'"${WPAD_IP}"'/' -i "/data/htdocs/www/wpad.dat"
+ sed 's/{{WPAD_NOPROXY_NET}}/'"${WPAD_NOPROXY_NET}"'/' -i "/data/htdocs/www/wpad.dat"
+ sed 's/{{WPAD_NOPROXY_MASK}}/'"${WPAD_NOPROXY_MASK}"'/' -i "/data/htdocs/www/wpad.dat"
+fi
+
+# allow arguments to be passed to squid
+if [[ ${1:0:1} = '-' ]]; then
+ EXTRA_ARGS="$@"
+ set --
+elif [[ ${1} == squid || ${1} == $(which squid) ]]; then
+ EXTRA_ARGS="${@:2}"
+ set --
+fi
+
+# start apache to serve wpad.dat file and or block.html
+sudo /etc/init.d/apache2 restart
+
+# default behaviour is to launch squid
+if [[ -z ${1} ]]; then
+ if [[ ! -d ${SQUID_CACHE_DIR}/00 ]]; then
+ echo "Initializing cache..."
+ $(which squid) -N -f /etc/squid/squid.conf -z
+ fi
+ echo "Starting squid..."
+ exec $(which squid) -f /etc/squid/squid.conf -NYCd 1 ${EXTRA_ARGS}
+else
+ exec "$@"
+fi
diff --git a/config/apache2/apache2.conf b/config/apache2/apache2.conf
new file mode 100644
index 0000000..fe696fc
--- /dev/null
+++ b/config/apache2/apache2.conf
@@ -0,0 +1,204 @@
+# This is the main Apache HTTP server configuration file. It contains the
+# Set to one of: Full | OS | Minor | Minimal | Major | Prod
+ServerTokens Prod
+ServerRoot /etc/apache2
+Listen 80
+
+LoadModule mpm_prefork_module /usr/lib/apache2/modules/mod_mpm_prefork.so
+LoadModule access_compat_module /usr/lib/apache2/modules/mod_access_compat.so
+LoadModule actions_module /usr/lib/apache2/modules/mod_actions.so
+LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
+LoadModule allowmethods_module /usr/lib/apache2/modules/mod_allowmethods.so
+LoadModule asis_module /usr/lib/apache2/modules/mod_asis.so
+LoadModule auth_basic_module /usr/lib/apache2/modules/mod_auth_basic.so
+LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so
+LoadModule auth_form_module /usr/lib/apache2/modules/mod_auth_form.so
+LoadModule authn_anon_module /usr/lib/apache2/modules/mod_authn_anon.so
+LoadModule authn_core_module /usr/lib/apache2/modules/mod_authn_core.so
+LoadModule authn_dbd_module /usr/lib/apache2/modules/mod_authn_dbd.so
+LoadModule authn_dbm_module /usr/lib/apache2/modules/mod_authn_dbm.so
+LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so
+LoadModule authn_socache_module /usr/lib/apache2/modules/mod_authn_socache.so
+LoadModule authnz_fcgi_module /usr/lib/apache2/modules/mod_authnz_fcgi.so
+LoadModule authnz_ldap_module /usr/lib/apache2/modules/mod_authnz_ldap.so
+LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so
+LoadModule authz_dbd_module /usr/lib/apache2/modules/mod_authz_dbd.so
+LoadModule authz_dbm_module /usr/lib/apache2/modules/mod_authz_dbm.so
+LoadModule authz_groupfile_module /usr/lib/apache2/modules/mod_authz_groupfile.so
+LoadModule authz_host_module /usr/lib/apache2/modules/mod_authz_host.so
+LoadModule authz_owner_module /usr/lib/apache2/modules/mod_authz_owner.so
+LoadModule authz_user_module /usr/lib/apache2/modules/mod_authz_user.so
+LoadModule autoindex_module /usr/lib/apache2/modules/mod_autoindex.so
+LoadModule brotli_module /usr/lib/apache2/modules/mod_brotli.so
+LoadModule buffer_module /usr/lib/apache2/modules/mod_buffer.so
+LoadModule cache_module /usr/lib/apache2/modules/mod_cache.so
+LoadModule cache_disk_module /usr/lib/apache2/modules/mod_cache_disk.so
+LoadModule cache_socache_module /usr/lib/apache2/modules/mod_cache_socache.so
+LoadModule cern_meta_module /usr/lib/apache2/modules/mod_cern_meta.so
+LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
+LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so
+LoadModule charset_lite_module /usr/lib/apache2/modules/mod_charset_lite.so
+LoadModule data_module /usr/lib/apache2/modules/mod_data.so
+LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
+LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so
+LoadModule dav_lock_module /usr/lib/apache2/modules/mod_dav_lock.so
+LoadModule dbd_module /usr/lib/apache2/modules/mod_dbd.so
+LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
+LoadModule dialup_module /usr/lib/apache2/modules/mod_dialup.so
+LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so
+LoadModule dumpio_module /usr/lib/apache2/modules/mod_dumpio.so
+LoadModule echo_module /usr/lib/apache2/modules/mod_echo.so
+LoadModule env_module /usr/lib/apache2/modules/mod_env.so
+LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so
+LoadModule ext_filter_module /usr/lib/apache2/modules/mod_ext_filter.so
+LoadModule fcgid_module /usr/lib/apache2/modules/mod_fcgid.so
+LoadModule file_cache_module /usr/lib/apache2/modules/mod_file_cache.so
+LoadModule filter_module /usr/lib/apache2/modules/mod_filter.so
+LoadModule geoip_module /usr/lib/apache2/modules/mod_geoip.so
+LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
+LoadModule heartbeat_module /usr/lib/apache2/modules/mod_heartbeat.so
+LoadModule heartmonitor_module /usr/lib/apache2/modules/mod_heartmonitor.so
+LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
+LoadModule ident_module /usr/lib/apache2/modules/mod_ident.so
+LoadModule imagemap_module /usr/lib/apache2/modules/mod_imagemap.so
+LoadModule include_module /usr/lib/apache2/modules/mod_include.so
+LoadModule info_module /usr/lib/apache2/modules/mod_info.so
+LoadModule lbmethod_bybusyness_module /usr/lib/apache2/modules/mod_lbmethod_bybusyness.so
+LoadModule lbmethod_byrequests_module /usr/lib/apache2/modules/mod_lbmethod_byrequests.so
+LoadModule lbmethod_bytraffic_module /usr/lib/apache2/modules/mod_lbmethod_bytraffic.so
+LoadModule lbmethod_heartbeat_module /usr/lib/apache2/modules/mod_lbmethod_heartbeat.so
+LoadModule ldap_module /usr/lib/apache2/modules/mod_ldap.so
+LoadModule log_debug_module /usr/lib/apache2/modules/mod_log_debug.so
+LoadModule log_forensic_module /usr/lib/apache2/modules/mod_log_forensic.so
+LoadModule lua_module /usr/lib/apache2/modules/mod_lua.so
+LoadModule macro_module /usr/lib/apache2/modules/mod_macro.so
+LoadModule md_module /usr/lib/apache2/modules/mod_md.so
+LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so
+LoadModule mime_magic_module /usr/lib/apache2/modules/mod_mime_magic.so
+LoadModule negotiation_module /usr/lib/apache2/modules/mod_negotiation.so
+LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
+LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
+LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
+LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
+LoadModule proxy_express_module /usr/lib/apache2/modules/mod_proxy_express.so
+LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so
+LoadModule proxy_fdpass_module /usr/lib/apache2/modules/mod_proxy_fdpass.so
+LoadModule proxy_ftp_module /usr/lib/apache2/modules/mod_proxy_ftp.so
+LoadModule proxy_hcheck_module /usr/lib/apache2/modules/mod_proxy_hcheck.so
+LoadModule proxy_html_module /usr/lib/apache2/modules/mod_proxy_html.so
+LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
+LoadModule proxy_http2_module /usr/lib/apache2/modules/mod_proxy_http2.so
+LoadModule proxy_scgi_module /usr/lib/apache2/modules/mod_proxy_scgi.so
+LoadModule proxy_uwsgi_module /usr/lib/apache2/modules/mod_proxy_uwsgi.so
+LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so
+LoadModule ratelimit_module /usr/lib/apache2/modules/mod_ratelimit.so
+LoadModule reflector_module /usr/lib/apache2/modules/mod_reflector.so
+LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so
+LoadModule reqtimeout_module /usr/lib/apache2/modules/mod_reqtimeout.so
+LoadModule request_module /usr/lib/apache2/modules/mod_request.so
+LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
+LoadModule sed_module /usr/lib/apache2/modules/mod_sed.so
+LoadModule session_module /usr/lib/apache2/modules/mod_session.so
+LoadModule session_cookie_module /usr/lib/apache2/modules/mod_session_cookie.so
+LoadModule session_crypto_module /usr/lib/apache2/modules/mod_session_crypto.so
+LoadModule session_dbd_module /usr/lib/apache2/modules/mod_session_dbd.so
+LoadModule setenvif_module /usr/lib/apache2/modules/mod_setenvif.so
+LoadModule slotmem_plain_module /usr/lib/apache2/modules/mod_slotmem_plain.so
+LoadModule slotmem_shm_module /usr/lib/apache2/modules/mod_slotmem_shm.so
+LoadModule socache_dbm_module /usr/lib/apache2/modules/mod_socache_dbm.so
+LoadModule socache_memcache_module /usr/lib/apache2/modules/mod_socache_memcache.so
+LoadModule socache_shmcb_module /usr/lib/apache2/modules/mod_socache_shmcb.so
+LoadModule speling_module /usr/lib/apache2/modules/mod_speling.so
+LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
+LoadModule status_module /usr/lib/apache2/modules/mod_status.so
+LoadModule substitute_module /usr/lib/apache2/modules/mod_substitute.so
+LoadModule suexec_module /usr/lib/apache2/modules/mod_suexec.so
+LoadModule unique_id_module /usr/lib/apache2/modules/mod_unique_id.so
+LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so
+LoadModule usertrack_module /usr/lib/apache2/modules/mod_usertrack.so
+LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so
+LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
+LoadModule xml2enc_module /usr/lib/apache2/modules/mod_xml2enc.so
+
+
+User www-data
+Group www-data
+
+
+# 'Main' server configuration
+ServerName SERVERNAME
+ServerAdmin SERVERADMIN@SERVERNAME
+ServerSignature On
+
+
+ AllowOverride none
+ Require all denied
+
+
+
+ Options Indexes FollowSymLinks MultiViews ExecCGI Includes
+ AllowOverride All
+ Require all granted
+
+
+
+ DirectoryIndex index.html index.html.var index.php index.cgi index.asp index.aspx index.pl index.aspx Default.aspx default.aspx index.shtml awstats.pl index.unknown.php index.default.php
+
+
+
+ Require all denied
+
+
+ErrorLog /var/log/apache2/error.log
+LogLevel warn
+
+
+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+
+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
+
+ CustomLog /var/log/apache2/access.log combined
+
+
+
+ Alias /server-health /data/htdocs/www/server-health
+ Alias /server-health.json /data/htdocs/www/server-health.json
+ ScriptAlias /cgi-bin/ "/data/htdocs/cgi-bin/"
+
+
+
+ AllowOverride None
+ Options ExecCGI
+ Require all granted
+
+
+
+ #Scriptsock cgisock
+
+
+
+ RequestHeader unset Proxy early
+
+
+
+ TypesConfig /etc/apache2/mime.types
+ AddType application/x-gzip .tgz
+ AddEncoding x-compress .Z
+ AddEncoding x-gzip .gz .tgz
+ AddType application/x-compress .Z
+ AddType application/x-gzip .gz .tgz
+ AddHandler cgi-script .cgi
+ AddHandler type-map var
+ AddType text/html .shtml
+ AddOutputFilter INCLUDES .shtml
+ AddType application/x-ns-proxy-autoconfig .dat
+
+
+
+ MIMEMagicFile /etc/apache2/magic
+
+
+
+DocumentRoot "/data/htdocs/www"
+
diff --git a/config/apache2/mime.types b/config/apache2/mime.types
new file mode 100644
index 0000000..1a59fd6
--- /dev/null
+++ b/config/apache2/mime.types
@@ -0,0 +1,1855 @@
+# This file maps Internet media types to unique file extension(s).
+# Although created for httpd, this file is used by many software systems
+# and has been placed in the public domain for unlimited redisribution.
+#
+# The table below contains both registered and (common) unregistered types.
+# A type that has no unique extension can be ignored -- they are listed
+# here to guide configurations toward known types and to make it easier to
+# identify "new" types. File extensions are also commonly used to indicate
+# content languages and encodings, so choose them carefully.
+#
+# Internet media types should be registered as described in RFC 4288.
+# The registry is at .
+#
+# MIME type (lowercased) Extensions
+# ============================================ ==========
+# application/1d-interleaved-parityfec
+# application/3gpdash-qoe-report+xml
+# application/3gpp-ims+xml
+# application/a2l
+# application/activemessage
+# application/alto-costmap+json
+# application/alto-costmapfilter+json
+# application/alto-directory+json
+# application/alto-endpointcost+json
+# application/alto-endpointcostparams+json
+# application/alto-endpointprop+json
+# application/alto-endpointpropparams+json
+# application/alto-error+json
+# application/alto-networkmap+json
+# application/alto-networkmapfilter+json
+# application/aml
+application/andrew-inset ez
+# application/applefile
+application/applixware aw
+# application/atf
+# application/atfx
+application/atom+xml atom
+application/atomcat+xml atomcat
+# application/atomdeleted+xml
+# application/atomicmail
+application/atomsvc+xml atomsvc
+# application/atxml
+# application/auth-policy+xml
+# application/bacnet-xdd+zip
+# application/batch-smtp
+# application/beep+xml
+# application/calendar+json
+# application/calendar+xml
+# application/call-completion
+# application/cals-1840
+# application/cbor
+# application/ccmp+xml
+application/ccxml+xml ccxml
+# application/cdfx+xml
+application/cdmi-capability cdmia
+application/cdmi-container cdmic
+application/cdmi-domain cdmid
+application/cdmi-object cdmio
+application/cdmi-queue cdmiq
+# application/cdni
+# application/cea
+# application/cea-2018+xml
+# application/cellml+xml
+# application/cfw
+# application/cms
+# application/cnrp+xml
+# application/coap-group+json
+# application/commonground
+# application/conference-info+xml
+# application/cpl+xml
+# application/csrattrs
+# application/csta+xml
+# application/cstadata+xml
+# application/csvm+json
+application/cu-seeme cu
+# application/cybercash
+# application/dash+xml
+# application/dashdelta
+application/davmount+xml davmount
+# application/dca-rft
+# application/dcd
+# application/dec-dx
+# application/dialog-info+xml
+# application/dicom
+# application/dii
+# application/dit
+# application/dns
+application/docbook+xml dbk
+# application/dskpp+xml
+application/dssc+der dssc
+application/dssc+xml xdssc
+# application/dvcs
+application/ecmascript ecma
+# application/edi-consent
+# application/edi-x12
+# application/edifact
+# application/efi
+# application/emergencycalldata.comment+xml
+# application/emergencycalldata.deviceinfo+xml
+# application/emergencycalldata.providerinfo+xml
+# application/emergencycalldata.serviceinfo+xml
+# application/emergencycalldata.subscriberinfo+xml
+application/emma+xml emma
+# application/emotionml+xml
+# application/encaprtp
+# application/epp+xml
+application/epub+zip epub
+# application/eshop
+# application/example
+application/exi exi
+# application/fastinfoset
+# application/fastsoap
+# application/fdt+xml
+# application/fits
+application/font-tdpfr pfr
+# application/framework-attributes+xml
+# application/geo+json
+application/gml+xml gml
+application/gpx+xml gpx
+application/gxf gxf
+# application/gzip
+# application/h224
+# application/held+xml
+# application/http
+application/hyperstudio stk
+# application/ibe-key-request+xml
+# application/ibe-pkg-reply+xml
+# application/ibe-pp-data
+# application/iges
+# application/im-iscomposing+xml
+# application/index
+# application/index.cmd
+# application/index.obj
+# application/index.response
+# application/index.vnd
+application/inkml+xml ink inkml
+# application/iotp
+application/ipfix ipfix
+# application/ipp
+# application/isup
+# application/its+xml
+application/java-archive jar
+application/java-serialized-object ser
+application/java-vm class
+application/javascript js
+# application/jose
+# application/jose+json
+# application/jrd+json
+application/json json
+# application/json-patch+json
+# application/json-seq
+application/jsonml+json jsonml
+# application/jwk+json
+# application/jwk-set+json
+# application/jwt
+# application/kpml-request+xml
+# application/kpml-response+xml
+# application/ld+json
+# application/lgr+xml
+# application/link-format
+# application/load-control+xml
+application/lost+xml lostxml
+# application/lostsync+xml
+# application/lxf
+application/mac-binhex40 hqx
+application/mac-compactpro cpt
+# application/macwriteii
+application/mads+xml mads
+application/marc mrc
+application/marcxml+xml mrcx
+application/mathematica ma nb mb
+application/mathml+xml mathml
+# application/mathml-content+xml
+# application/mathml-presentation+xml
+# application/mbms-associated-procedure-description+xml
+# application/mbms-deregister+xml
+# application/mbms-envelope+xml
+# application/mbms-msk+xml
+# application/mbms-msk-response+xml
+# application/mbms-protection-description+xml
+# application/mbms-reception-report+xml
+# application/mbms-register+xml
+# application/mbms-register-response+xml
+# application/mbms-schedule+xml
+# application/mbms-user-service-description+xml
+application/mbox mbox
+# application/media-policy-dataset+xml
+# application/media_control+xml
+application/mediaservercontrol+xml mscml
+# application/merge-patch+json
+application/metalink+xml metalink
+application/metalink4+xml meta4
+application/mets+xml mets
+# application/mf4
+# application/mikey
+application/mods+xml mods
+# application/moss-keys
+# application/moss-signature
+# application/mosskey-data
+# application/mosskey-request
+application/mp21 m21 mp21
+application/mp4 mp4s
+# application/mpeg4-generic
+# application/mpeg4-iod
+# application/mpeg4-iod-xmt
+# application/mrb-consumer+xml
+# application/mrb-publish+xml
+# application/msc-ivr+xml
+# application/msc-mixer+xml
+application/msword doc dot
+application/mxf mxf
+# application/nasdata
+# application/news-checkgroups
+# application/news-groupinfo
+# application/news-transmission
+# application/nlsml+xml
+# application/nss
+# application/ocsp-request
+# application/ocsp-response
+application/octet-stream bin dms lrf mar so dist distz pkg bpk dump elc deploy
+application/oda oda
+# application/odx
+application/oebps-package+xml opf
+application/ogg ogx
+application/omdoc+xml omdoc
+application/onenote onetoc onetoc2 onetmp onepkg
+application/oxps oxps
+# application/p2p-overlay+xml
+# application/parityfec
+application/patch-ops-error+xml xer
+application/pdf pdf
+# application/pdx
+application/pgp-encrypted pgp
+# application/pgp-keys
+application/pgp-signature asc sig
+application/pics-rules prf
+# application/pidf+xml
+# application/pidf-diff+xml
+application/pkcs10 p10
+# application/pkcs12
+application/pkcs7-mime p7m p7c
+application/pkcs7-signature p7s
+application/pkcs8 p8
+application/pkix-attr-cert ac
+application/pkix-cert cer
+application/pkix-crl crl
+application/pkix-pkipath pkipath
+application/pkixcmp pki
+application/pls+xml pls
+# application/poc-settings+xml
+application/postscript ai eps ps
+# application/ppsp-tracker+json
+# application/problem+json
+# application/problem+xml
+# application/provenance+xml
+# application/prs.alvestrand.titrax-sheet
+application/prs.cww cww
+# application/prs.hpub+zip
+# application/prs.nprend
+# application/prs.plucker
+# application/prs.rdf-xml-crypt
+# application/prs.xsf+xml
+application/pskc+xml pskcxml
+# application/qsig
+# application/raptorfec
+# application/rdap+json
+application/rdf+xml rdf
+application/reginfo+xml rif
+application/relax-ng-compact-syntax rnc
+# application/remote-printing
+# application/reputon+json
+application/resource-lists+xml rl
+application/resource-lists-diff+xml rld
+# application/rfc+xml
+# application/riscos
+# application/rlmi+xml
+application/rls-services+xml rs
+application/rpki-ghostbusters gbr
+application/rpki-manifest mft
+application/rpki-roa roa
+# application/rpki-updown
+application/rsd+xml rsd
+application/rss+xml rss
+application/rtf rtf
+# application/rtploopback
+# application/rtx
+# application/samlassertion+xml
+# application/samlmetadata+xml
+application/sbml+xml sbml
+# application/scaip+xml
+# application/scim+json
+application/scvp-cv-request scq
+application/scvp-cv-response scs
+application/scvp-vp-request spq
+application/scvp-vp-response spp
+application/sdp sdp
+# application/sep+xml
+# application/sep-exi
+# application/session-info
+# application/set-payment
+application/set-payment-initiation setpay
+# application/set-registration
+application/set-registration-initiation setreg
+# application/sgml
+# application/sgml-open-catalog
+application/shf+xml shf
+# application/sieve
+# application/simple-filter+xml
+# application/simple-message-summary
+# application/simplesymbolcontainer
+# application/slate
+# application/smil
+application/smil+xml smi smil
+# application/smpte336m
+# application/soap+fastinfoset
+# application/soap+xml
+application/sparql-query rq
+application/sparql-results+xml srx
+# application/spirits-event+xml
+# application/sql
+application/srgs gram
+application/srgs+xml grxml
+application/sru+xml sru
+application/ssdl+xml ssdl
+application/ssml+xml ssml
+# application/tamp-apex-update
+# application/tamp-apex-update-confirm
+# application/tamp-community-update
+# application/tamp-community-update-confirm
+# application/tamp-error
+# application/tamp-sequence-adjust
+# application/tamp-sequence-adjust-confirm
+# application/tamp-status-query
+# application/tamp-status-response
+# application/tamp-update
+# application/tamp-update-confirm
+application/tei+xml tei teicorpus
+application/thraud+xml tfi
+# application/timestamp-query
+# application/timestamp-reply
+application/timestamped-data tsd
+# application/ttml+xml
+# application/tve-trigger
+# application/ulpfec
+# application/urc-grpsheet+xml
+# application/urc-ressheet+xml
+# application/urc-targetdesc+xml
+# application/urc-uisocketdesc+xml
+# application/vcard+json
+# application/vcard+xml
+# application/vemmi
+# application/vividence.scriptfile
+# application/vnd.3gpp-prose+xml
+# application/vnd.3gpp-prose-pc3ch+xml
+# application/vnd.3gpp.access-transfer-events+xml
+# application/vnd.3gpp.bsf+xml
+# application/vnd.3gpp.mid-call+xml
+application/vnd.3gpp.pic-bw-large plb
+application/vnd.3gpp.pic-bw-small psb
+application/vnd.3gpp.pic-bw-var pvb
+# application/vnd.3gpp.sms
+# application/vnd.3gpp.sms+xml
+# application/vnd.3gpp.srvcc-ext+xml
+# application/vnd.3gpp.srvcc-info+xml
+# application/vnd.3gpp.state-and-event-info+xml
+# application/vnd.3gpp.ussd+xml
+# application/vnd.3gpp2.bcmcsinfo+xml
+# application/vnd.3gpp2.sms
+application/vnd.3gpp2.tcap tcap
+# application/vnd.3lightssoftware.imagescal
+application/vnd.3m.post-it-notes pwn
+application/vnd.accpac.simply.aso aso
+application/vnd.accpac.simply.imp imp
+application/vnd.acucobol acu
+application/vnd.acucorp atc acutc
+application/vnd.adobe.air-application-installer-package+zip air
+# application/vnd.adobe.flash.movie
+application/vnd.adobe.formscentral.fcdt fcdt
+application/vnd.adobe.fxp fxp fxpl
+# application/vnd.adobe.partial-upload
+application/vnd.adobe.xdp+xml xdp
+application/vnd.adobe.xfdf xfdf
+# application/vnd.aether.imp
+# application/vnd.ah-barcode
+application/vnd.ahead.space ahead
+application/vnd.airzip.filesecure.azf azf
+application/vnd.airzip.filesecure.azs azs
+application/vnd.amazon.ebook azw
+# application/vnd.amazon.mobi8-ebook
+application/vnd.americandynamics.acc acc
+application/vnd.amiga.ami ami
+# application/vnd.amundsen.maze+xml
+application/vnd.android.package-archive apk
+# application/vnd.anki
+application/vnd.anser-web-certificate-issue-initiation cii
+application/vnd.anser-web-funds-transfer-initiation fti
+application/vnd.antix.game-component atx
+# application/vnd.apache.thrift.binary
+# application/vnd.apache.thrift.compact
+# application/vnd.apache.thrift.json
+# application/vnd.api+json
+application/vnd.apple.installer+xml mpkg
+application/vnd.apple.mpegurl m3u8
+# application/vnd.arastra.swi
+application/vnd.aristanetworks.swi swi
+# application/vnd.artsquare
+application/vnd.astraea-software.iota iota
+application/vnd.audiograph aep
+# application/vnd.autopackage
+# application/vnd.avistar+xml
+# application/vnd.balsamiq.bmml+xml
+# application/vnd.balsamiq.bmpr
+# application/vnd.bekitzur-stech+json
+# application/vnd.biopax.rdf+xml
+application/vnd.blueice.multipass mpm
+# application/vnd.bluetooth.ep.oob
+# application/vnd.bluetooth.le.oob
+application/vnd.bmi bmi
+application/vnd.businessobjects rep
+# application/vnd.cab-jscript
+# application/vnd.canon-cpdl
+# application/vnd.canon-lips
+# application/vnd.cendio.thinlinc.clientconf
+# application/vnd.century-systems.tcp_stream
+application/vnd.chemdraw+xml cdxml
+# application/vnd.chess-pgn
+application/vnd.chipnuts.karaoke-mmd mmd
+application/vnd.cinderella cdy
+# application/vnd.cirpack.isdn-ext
+# application/vnd.citationstyles.style+xml
+application/vnd.claymore cla
+application/vnd.cloanto.rp9 rp9
+application/vnd.clonk.c4group c4g c4d c4f c4p c4u
+application/vnd.cluetrust.cartomobile-config c11amc
+application/vnd.cluetrust.cartomobile-config-pkg c11amz
+# application/vnd.coffeescript
+# application/vnd.collection+json
+# application/vnd.collection.doc+json
+# application/vnd.collection.next+json
+# application/vnd.comicbook+zip
+# application/vnd.commerce-battelle
+application/vnd.commonspace csp
+application/vnd.contact.cmsg cdbcmsg
+# application/vnd.coreos.ignition+json
+application/vnd.cosmocaller cmc
+application/vnd.crick.clicker clkx
+application/vnd.crick.clicker.keyboard clkk
+application/vnd.crick.clicker.palette clkp
+application/vnd.crick.clicker.template clkt
+application/vnd.crick.clicker.wordbank clkw
+application/vnd.criticaltools.wbs+xml wbs
+application/vnd.ctc-posml pml
+# application/vnd.ctct.ws+xml
+# application/vnd.cups-pdf
+# application/vnd.cups-postscript
+application/vnd.cups-ppd ppd
+# application/vnd.cups-raster
+# application/vnd.cups-raw
+# application/vnd.curl
+application/vnd.curl.car car
+application/vnd.curl.pcurl pcurl
+# application/vnd.cyan.dean.root+xml
+# application/vnd.cybank
+application/vnd.dart dart
+application/vnd.data-vision.rdz rdz
+# application/vnd.debian.binary-package
+application/vnd.dece.data uvf uvvf uvd uvvd
+application/vnd.dece.ttml+xml uvt uvvt
+application/vnd.dece.unspecified uvx uvvx
+application/vnd.dece.zip uvz uvvz
+application/vnd.denovo.fcselayout-link fe_launch
+# application/vnd.desmume.movie
+# application/vnd.dir-bi.plate-dl-nosuffix
+# application/vnd.dm.delegation+xml
+application/vnd.dna dna
+# application/vnd.document+json
+application/vnd.dolby.mlp mlp
+# application/vnd.dolby.mobile.1
+# application/vnd.dolby.mobile.2
+# application/vnd.doremir.scorecloud-binary-document
+application/vnd.dpgraph dpg
+application/vnd.dreamfactory dfac
+# application/vnd.drive+json
+application/vnd.ds-keypoint kpxx
+# application/vnd.dtg.local
+# application/vnd.dtg.local.flash
+# application/vnd.dtg.local.html
+application/vnd.dvb.ait ait
+# application/vnd.dvb.dvbj
+# application/vnd.dvb.esgcontainer
+# application/vnd.dvb.ipdcdftnotifaccess
+# application/vnd.dvb.ipdcesgaccess
+# application/vnd.dvb.ipdcesgaccess2
+# application/vnd.dvb.ipdcesgpdd
+# application/vnd.dvb.ipdcroaming
+# application/vnd.dvb.iptv.alfec-base
+# application/vnd.dvb.iptv.alfec-enhancement
+# application/vnd.dvb.notif-aggregate-root+xml
+# application/vnd.dvb.notif-container+xml
+# application/vnd.dvb.notif-generic+xml
+# application/vnd.dvb.notif-ia-msglist+xml
+# application/vnd.dvb.notif-ia-registration-request+xml
+# application/vnd.dvb.notif-ia-registration-response+xml
+# application/vnd.dvb.notif-init+xml
+# application/vnd.dvb.pfr
+application/vnd.dvb.service svc
+# application/vnd.dxr
+application/vnd.dynageo geo
+# application/vnd.dzr
+# application/vnd.easykaraoke.cdgdownload
+# application/vnd.ecdis-update
+application/vnd.ecowin.chart mag
+# application/vnd.ecowin.filerequest
+# application/vnd.ecowin.fileupdate
+# application/vnd.ecowin.series
+# application/vnd.ecowin.seriesrequest
+# application/vnd.ecowin.seriesupdate
+# application/vnd.emclient.accessrequest+xml
+application/vnd.enliven nml
+# application/vnd.enphase.envoy
+# application/vnd.eprints.data+xml
+application/vnd.epson.esf esf
+application/vnd.epson.msf msf
+application/vnd.epson.quickanime qam
+application/vnd.epson.salt slt
+application/vnd.epson.ssf ssf
+# application/vnd.ericsson.quickcall
+application/vnd.eszigno3+xml es3 et3
+# application/vnd.etsi.aoc+xml
+# application/vnd.etsi.asic-e+zip
+# application/vnd.etsi.asic-s+zip
+# application/vnd.etsi.cug+xml
+# application/vnd.etsi.iptvcommand+xml
+# application/vnd.etsi.iptvdiscovery+xml
+# application/vnd.etsi.iptvprofile+xml
+# application/vnd.etsi.iptvsad-bc+xml
+# application/vnd.etsi.iptvsad-cod+xml
+# application/vnd.etsi.iptvsad-npvr+xml
+# application/vnd.etsi.iptvservice+xml
+# application/vnd.etsi.iptvsync+xml
+# application/vnd.etsi.iptvueprofile+xml
+# application/vnd.etsi.mcid+xml
+# application/vnd.etsi.mheg5
+# application/vnd.etsi.overload-control-policy-dataset+xml
+# application/vnd.etsi.pstn+xml
+# application/vnd.etsi.sci+xml
+# application/vnd.etsi.simservs+xml
+# application/vnd.etsi.timestamp-token
+# application/vnd.etsi.tsl+xml
+# application/vnd.etsi.tsl.der
+# application/vnd.eudora.data
+application/vnd.ezpix-album ez2
+application/vnd.ezpix-package ez3
+# application/vnd.f-secure.mobile
+# application/vnd.fastcopy-disk-image
+application/vnd.fdf fdf
+application/vnd.fdsn.mseed mseed
+application/vnd.fdsn.seed seed dataless
+# application/vnd.ffsns
+# application/vnd.filmit.zfc
+# application/vnd.fints
+# application/vnd.firemonkeys.cloudcell
+application/vnd.flographit gph
+application/vnd.fluxtime.clip ftc
+# application/vnd.font-fontforge-sfd
+application/vnd.framemaker fm frame maker book
+application/vnd.frogans.fnc fnc
+application/vnd.frogans.ltf ltf
+application/vnd.fsc.weblaunch fsc
+application/vnd.fujitsu.oasys oas
+application/vnd.fujitsu.oasys2 oa2
+application/vnd.fujitsu.oasys3 oa3
+application/vnd.fujitsu.oasysgp fg5
+application/vnd.fujitsu.oasysprs bh2
+# application/vnd.fujixerox.art-ex
+# application/vnd.fujixerox.art4
+application/vnd.fujixerox.ddd ddd
+application/vnd.fujixerox.docuworks xdw
+application/vnd.fujixerox.docuworks.binder xbd
+# application/vnd.fujixerox.docuworks.container
+# application/vnd.fujixerox.hbpl
+# application/vnd.fut-misnet
+application/vnd.fuzzysheet fzs
+application/vnd.genomatix.tuxedo txd
+# application/vnd.geo+json
+# application/vnd.geocube+xml
+application/vnd.geogebra.file ggb
+application/vnd.geogebra.tool ggt
+application/vnd.geometry-explorer gex gre
+application/vnd.geonext gxt
+application/vnd.geoplan g2w
+application/vnd.geospace g3w
+# application/vnd.gerber
+# application/vnd.globalplatform.card-content-mgt
+# application/vnd.globalplatform.card-content-mgt-response
+application/vnd.gmx gmx
+application/vnd.google-earth.kml+xml kml
+application/vnd.google-earth.kmz kmz
+# application/vnd.gov.sk.e-form+xml
+# application/vnd.gov.sk.e-form+zip
+# application/vnd.gov.sk.xmldatacontainer+xml
+application/vnd.grafeq gqf gqs
+# application/vnd.gridmp
+application/vnd.groove-account gac
+application/vnd.groove-help ghf
+application/vnd.groove-identity-message gim
+application/vnd.groove-injector grv
+application/vnd.groove-tool-message gtm
+application/vnd.groove-tool-template tpl
+application/vnd.groove-vcard vcg
+# application/vnd.hal+json
+application/vnd.hal+xml hal
+application/vnd.handheld-entertainment+xml zmm
+application/vnd.hbci hbci
+# application/vnd.hcl-bireports
+# application/vnd.hdt
+# application/vnd.heroku+json
+application/vnd.hhe.lesson-player les
+application/vnd.hp-hpgl hpgl
+application/vnd.hp-hpid hpid
+application/vnd.hp-hps hps
+application/vnd.hp-jlyt jlt
+application/vnd.hp-pcl pcl
+application/vnd.hp-pclxl pclxl
+# application/vnd.httphone
+application/vnd.hydrostatix.sof-data sfd-hdstx
+# application/vnd.hyperdrive+json
+# application/vnd.hzn-3d-crossword
+# application/vnd.ibm.afplinedata
+# application/vnd.ibm.electronic-media
+application/vnd.ibm.minipay mpy
+application/vnd.ibm.modcap afp listafp list3820
+application/vnd.ibm.rights-management irm
+application/vnd.ibm.secure-container sc
+application/vnd.iccprofile icc icm
+# application/vnd.ieee.1905
+application/vnd.igloader igl
+application/vnd.immervision-ivp ivp
+application/vnd.immervision-ivu ivu
+# application/vnd.ims.imsccv1p1
+# application/vnd.ims.imsccv1p2
+# application/vnd.ims.imsccv1p3
+# application/vnd.ims.lis.v2.result+json
+# application/vnd.ims.lti.v2.toolconsumerprofile+json
+# application/vnd.ims.lti.v2.toolproxy+json
+# application/vnd.ims.lti.v2.toolproxy.id+json
+# application/vnd.ims.lti.v2.toolsettings+json
+# application/vnd.ims.lti.v2.toolsettings.simple+json
+# application/vnd.informedcontrol.rms+xml
+# application/vnd.informix-visionary
+# application/vnd.infotech.project
+# application/vnd.infotech.project+xml
+# application/vnd.innopath.wamp.notification
+application/vnd.insors.igm igm
+application/vnd.intercon.formnet xpw xpx
+application/vnd.intergeo i2g
+# application/vnd.intertrust.digibox
+# application/vnd.intertrust.nncp
+application/vnd.intu.qbo qbo
+application/vnd.intu.qfx qfx
+# application/vnd.iptc.g2.catalogitem+xml
+# application/vnd.iptc.g2.conceptitem+xml
+# application/vnd.iptc.g2.knowledgeitem+xml
+# application/vnd.iptc.g2.newsitem+xml
+# application/vnd.iptc.g2.newsmessage+xml
+# application/vnd.iptc.g2.packageitem+xml
+# application/vnd.iptc.g2.planningitem+xml
+application/vnd.ipunplugged.rcprofile rcprofile
+application/vnd.irepository.package+xml irp
+application/vnd.is-xpr xpr
+application/vnd.isac.fcs fcs
+application/vnd.jam jam
+# application/vnd.japannet-directory-service
+# application/vnd.japannet-jpnstore-wakeup
+# application/vnd.japannet-payment-wakeup
+# application/vnd.japannet-registration
+# application/vnd.japannet-registration-wakeup
+# application/vnd.japannet-setstore-wakeup
+# application/vnd.japannet-verification
+# application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms rms
+application/vnd.jisp jisp
+application/vnd.joost.joda-archive joda
+# application/vnd.jsk.isdn-ngn
+application/vnd.kahootz ktz ktr
+application/vnd.kde.karbon karbon
+application/vnd.kde.kchart chrt
+application/vnd.kde.kformula kfo
+application/vnd.kde.kivio flw
+application/vnd.kde.kontour kon
+application/vnd.kde.kpresenter kpr kpt
+application/vnd.kde.kspread ksp
+application/vnd.kde.kword kwd kwt
+application/vnd.kenameaapp htke
+application/vnd.kidspiration kia
+application/vnd.kinar kne knp
+application/vnd.koan skp skd skt skm
+application/vnd.kodak-descriptor sse
+application/vnd.las.las+xml lasxml
+# application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop lbd
+application/vnd.llamagraphics.life-balance.exchange+xml lbe
+application/vnd.lotus-1-2-3 123
+application/vnd.lotus-approach apr
+application/vnd.lotus-freelance pre
+application/vnd.lotus-notes nsf
+application/vnd.lotus-organizer org
+application/vnd.lotus-screencam scm
+application/vnd.lotus-wordpro lwp
+application/vnd.macports.portpkg portpkg
+# application/vnd.mapbox-vector-tile
+# application/vnd.marlin.drm.actiontoken+xml
+# application/vnd.marlin.drm.conftoken+xml
+# application/vnd.marlin.drm.license+xml
+# application/vnd.marlin.drm.mdcf
+# application/vnd.mason+json
+# application/vnd.maxmind.maxmind-db
+application/vnd.mcd mcd
+application/vnd.medcalcdata mc1
+application/vnd.mediastation.cdkey cdkey
+# application/vnd.meridian-slingshot
+application/vnd.mfer mwf
+application/vnd.mfmp mfm
+# application/vnd.micro+json
+application/vnd.micrografx.flo flo
+application/vnd.micrografx.igx igx
+# application/vnd.microsoft.portable-executable
+# application/vnd.miele+json
+application/vnd.mif mif
+# application/vnd.minisoft-hp3000-save
+# application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf daf
+application/vnd.mobius.dis dis
+application/vnd.mobius.mbk mbk
+application/vnd.mobius.mqy mqy
+application/vnd.mobius.msl msl
+application/vnd.mobius.plc plc
+application/vnd.mobius.txf txf
+application/vnd.mophun.application mpn
+application/vnd.mophun.certificate mpc
+# application/vnd.motorola.flexsuite
+# application/vnd.motorola.flexsuite.adsi
+# application/vnd.motorola.flexsuite.fis
+# application/vnd.motorola.flexsuite.gotap
+# application/vnd.motorola.flexsuite.kmr
+# application/vnd.motorola.flexsuite.ttc
+# application/vnd.motorola.flexsuite.wem
+# application/vnd.motorola.iprm
+application/vnd.mozilla.xul+xml xul
+# application/vnd.ms-3mfdocument
+application/vnd.ms-artgalry cil
+# application/vnd.ms-asf
+application/vnd.ms-cab-compressed cab
+# application/vnd.ms-color.iccprofile
+application/vnd.ms-excel xls xlm xla xlc xlt xlw
+application/vnd.ms-excel.addin.macroenabled.12 xlam
+application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb
+application/vnd.ms-excel.sheet.macroenabled.12 xlsm
+application/vnd.ms-excel.template.macroenabled.12 xltm
+application/vnd.ms-fontobject eot
+application/vnd.ms-htmlhelp chm
+application/vnd.ms-ims ims
+application/vnd.ms-lrm lrm
+# application/vnd.ms-office.activex+xml
+application/vnd.ms-officetheme thmx
+# application/vnd.ms-opentype
+# application/vnd.ms-package.obfuscated-opentype
+application/vnd.ms-pki.seccat cat
+application/vnd.ms-pki.stl stl
+# application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint ppt pps pot
+application/vnd.ms-powerpoint.addin.macroenabled.12 ppam
+application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm
+application/vnd.ms-powerpoint.slide.macroenabled.12 sldm
+application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm
+application/vnd.ms-powerpoint.template.macroenabled.12 potm
+# application/vnd.ms-printdevicecapabilities+xml
+# application/vnd.ms-printing.printticket+xml
+# application/vnd.ms-printschematicket+xml
+application/vnd.ms-project mpp mpt
+# application/vnd.ms-tnef
+# application/vnd.ms-windows.devicepairing
+# application/vnd.ms-windows.nwprinting.oob
+# application/vnd.ms-windows.printerpairing
+# application/vnd.ms-windows.wsd.oob
+# application/vnd.ms-wmdrm.lic-chlg-req
+# application/vnd.ms-wmdrm.lic-resp
+# application/vnd.ms-wmdrm.meter-chlg-req
+# application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-word.document.macroenabled.12 docm
+application/vnd.ms-word.template.macroenabled.12 dotm
+application/vnd.ms-works wps wks wcm wdb
+application/vnd.ms-wpl wpl
+application/vnd.ms-xpsdocument xps
+# application/vnd.msa-disk-image
+application/vnd.mseq mseq
+# application/vnd.msign
+# application/vnd.multiad.creator
+# application/vnd.multiad.creator.cif
+# application/vnd.music-niff
+application/vnd.musician mus
+application/vnd.muvee.style msty
+application/vnd.mynfc taglet
+# application/vnd.ncd.control
+# application/vnd.ncd.reference
+# application/vnd.nervana
+# application/vnd.netfpx
+application/vnd.neurolanguage.nlu nlu
+# application/vnd.nintendo.nitro.rom
+# application/vnd.nintendo.snes.rom
+application/vnd.nitf ntf nitf
+application/vnd.noblenet-directory nnd
+application/vnd.noblenet-sealer nns
+application/vnd.noblenet-web nnw
+# application/vnd.nokia.catalogs
+# application/vnd.nokia.conml+wbxml
+# application/vnd.nokia.conml+xml
+# application/vnd.nokia.iptv.config+xml
+# application/vnd.nokia.isds-radio-presets
+# application/vnd.nokia.landmark+wbxml
+# application/vnd.nokia.landmark+xml
+# application/vnd.nokia.landmarkcollection+xml
+# application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data ngdat
+application/vnd.nokia.n-gage.symbian.install n-gage
+# application/vnd.nokia.ncd
+# application/vnd.nokia.pcd+wbxml
+# application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset rpst
+application/vnd.nokia.radio-presets rpss
+application/vnd.novadigm.edm edm
+application/vnd.novadigm.edx edx
+application/vnd.novadigm.ext ext
+# application/vnd.ntt-local.content-share
+# application/vnd.ntt-local.file-transfer
+# application/vnd.ntt-local.ogw_remote-access
+# application/vnd.ntt-local.sip-ta_remote
+# application/vnd.ntt-local.sip-ta_tcp_stream
+application/vnd.oasis.opendocument.chart odc
+application/vnd.oasis.opendocument.chart-template otc
+application/vnd.oasis.opendocument.database odb
+application/vnd.oasis.opendocument.formula odf
+application/vnd.oasis.opendocument.formula-template odft
+application/vnd.oasis.opendocument.graphics odg
+application/vnd.oasis.opendocument.graphics-template otg
+application/vnd.oasis.opendocument.image odi
+application/vnd.oasis.opendocument.image-template oti
+application/vnd.oasis.opendocument.presentation odp
+application/vnd.oasis.opendocument.presentation-template otp
+application/vnd.oasis.opendocument.spreadsheet ods
+application/vnd.oasis.opendocument.spreadsheet-template ots
+application/vnd.oasis.opendocument.text odt
+application/vnd.oasis.opendocument.text-master odm
+application/vnd.oasis.opendocument.text-template ott
+application/vnd.oasis.opendocument.text-web oth
+# application/vnd.obn
+# application/vnd.oftn.l10n+json
+# application/vnd.oipf.contentaccessdownload+xml
+# application/vnd.oipf.contentaccessstreaming+xml
+# application/vnd.oipf.cspg-hexbinary
+# application/vnd.oipf.dae.svg+xml
+# application/vnd.oipf.dae.xhtml+xml
+# application/vnd.oipf.mippvcontrolmessage+xml
+# application/vnd.oipf.pae.gem
+# application/vnd.oipf.spdiscovery+xml
+# application/vnd.oipf.spdlist+xml
+# application/vnd.oipf.ueprofile+xml
+# application/vnd.oipf.userprofile+xml
+application/vnd.olpc-sugar xo
+# application/vnd.oma-scws-config
+# application/vnd.oma-scws-http-request
+# application/vnd.oma-scws-http-response
+# application/vnd.oma.bcast.associated-procedure-parameter+xml
+# application/vnd.oma.bcast.drm-trigger+xml
+# application/vnd.oma.bcast.imd+xml
+# application/vnd.oma.bcast.ltkm
+# application/vnd.oma.bcast.notification+xml
+# application/vnd.oma.bcast.provisioningtrigger
+# application/vnd.oma.bcast.sgboot
+# application/vnd.oma.bcast.sgdd+xml
+# application/vnd.oma.bcast.sgdu
+# application/vnd.oma.bcast.simple-symbol-container
+# application/vnd.oma.bcast.smartcard-trigger+xml
+# application/vnd.oma.bcast.sprov+xml
+# application/vnd.oma.bcast.stkm
+# application/vnd.oma.cab-address-book+xml
+# application/vnd.oma.cab-feature-handler+xml
+# application/vnd.oma.cab-pcc+xml
+# application/vnd.oma.cab-subs-invite+xml
+# application/vnd.oma.cab-user-prefs+xml
+# application/vnd.oma.dcd
+# application/vnd.oma.dcdc
+application/vnd.oma.dd2+xml dd2
+# application/vnd.oma.drm.risd+xml
+# application/vnd.oma.group-usage-list+xml
+# application/vnd.oma.lwm2m+json
+# application/vnd.oma.lwm2m+tlv
+# application/vnd.oma.pal+xml
+# application/vnd.oma.poc.detailed-progress-report+xml
+# application/vnd.oma.poc.final-report+xml
+# application/vnd.oma.poc.groups+xml
+# application/vnd.oma.poc.invocation-descriptor+xml
+# application/vnd.oma.poc.optimized-progress-report+xml
+# application/vnd.oma.push
+# application/vnd.oma.scidm.messages+xml
+# application/vnd.oma.xcap-directory+xml
+# application/vnd.omads-email+xml
+# application/vnd.omads-file+xml
+# application/vnd.omads-folder+xml
+# application/vnd.omaloc-supl-init
+# application/vnd.onepager
+# application/vnd.openblox.game+xml
+# application/vnd.openblox.game-binary
+# application/vnd.openeye.oeb
+application/vnd.openofficeorg.extension oxt
+# application/vnd.openxmlformats-officedocument.custom-properties+xml
+# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
+# application/vnd.openxmlformats-officedocument.drawing+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
+# application/vnd.openxmlformats-officedocument.extended-properties+xml
+# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
+# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
+# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
+application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
+# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
+application/vnd.openxmlformats-officedocument.presentationml.slide sldx
+# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
+# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
+application/vnd.openxmlformats-officedocument.presentationml.template potx
+# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
+# application/vnd.openxmlformats-officedocument.theme+xml
+# application/vnd.openxmlformats-officedocument.themeoverride+xml
+# application/vnd.openxmlformats-officedocument.vmldrawing
+# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
+# application/vnd.openxmlformats-package.core-properties+xml
+# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
+# application/vnd.openxmlformats-package.relationships+xml
+# application/vnd.oracle.resource+json
+# application/vnd.orange.indata
+# application/vnd.osa.netdeploy
+application/vnd.osgeo.mapguide.package mgp
+# application/vnd.osgi.bundle
+application/vnd.osgi.dp dp
+application/vnd.osgi.subsystem esa
+# application/vnd.otps.ct-kip+xml
+# application/vnd.oxli.countgraph
+# application/vnd.pagerduty+json
+application/vnd.palm pdb pqa oprc
+# application/vnd.panoply
+# application/vnd.paos.xml
+application/vnd.pawaafile paw
+# application/vnd.pcos
+application/vnd.pg.format str
+application/vnd.pg.osasli ei6
+# application/vnd.piaccess.application-licence
+application/vnd.picsel efif
+application/vnd.pmi.widget wg
+# application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn plf
+application/vnd.powerbuilder6 pbd
+# application/vnd.powerbuilder6-s
+# application/vnd.powerbuilder7
+# application/vnd.powerbuilder7-s
+# application/vnd.powerbuilder75
+# application/vnd.powerbuilder75-s
+# application/vnd.preminet
+application/vnd.previewsystems.box box
+application/vnd.proteus.magazine mgz
+application/vnd.publishare-delta-tree qps
+application/vnd.pvi.ptid1 ptid
+# application/vnd.pwg-multiplexed
+# application/vnd.pwg-xhtml-print+xml
+# application/vnd.qualcomm.brew-app-res
+# application/vnd.quarantainenet
+application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb
+# application/vnd.quobject-quoxdocument
+# application/vnd.radisys.moml+xml
+# application/vnd.radisys.msml+xml
+# application/vnd.radisys.msml-audit+xml
+# application/vnd.radisys.msml-audit-conf+xml
+# application/vnd.radisys.msml-audit-conn+xml
+# application/vnd.radisys.msml-audit-dialog+xml
+# application/vnd.radisys.msml-audit-stream+xml
+# application/vnd.radisys.msml-conf+xml
+# application/vnd.radisys.msml-dialog+xml
+# application/vnd.radisys.msml-dialog-base+xml
+# application/vnd.radisys.msml-dialog-fax-detect+xml
+# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
+# application/vnd.radisys.msml-dialog-group+xml
+# application/vnd.radisys.msml-dialog-speech+xml
+# application/vnd.radisys.msml-dialog-transform+xml
+# application/vnd.rainstor.data
+# application/vnd.rapid
+# application/vnd.rar
+application/vnd.realvnc.bed bed
+application/vnd.recordare.musicxml mxl
+application/vnd.recordare.musicxml+xml musicxml
+# application/vnd.renlearn.rlprint
+application/vnd.rig.cryptonote cryptonote
+application/vnd.rim.cod cod
+application/vnd.rn-realmedia rm
+application/vnd.rn-realmedia-vbr rmvb
+application/vnd.route66.link66+xml link66
+# application/vnd.rs-274x
+# application/vnd.ruckus.download
+# application/vnd.s3sms
+application/vnd.sailingtracker.track st
+# application/vnd.sbm.cid
+# application/vnd.sbm.mid2
+# application/vnd.scribus
+# application/vnd.sealed.3df
+# application/vnd.sealed.csf
+# application/vnd.sealed.doc
+# application/vnd.sealed.eml
+# application/vnd.sealed.mht
+# application/vnd.sealed.net
+# application/vnd.sealed.ppt
+# application/vnd.sealed.tiff
+# application/vnd.sealed.xls
+# application/vnd.sealedmedia.softseal.html
+# application/vnd.sealedmedia.softseal.pdf
+application/vnd.seemail see
+application/vnd.sema sema
+application/vnd.semd semd
+application/vnd.semf semf
+application/vnd.shana.informed.formdata ifm
+application/vnd.shana.informed.formtemplate itp
+application/vnd.shana.informed.interchange iif
+application/vnd.shana.informed.package ipk
+application/vnd.simtech-mindmapper twd twds
+# application/vnd.siren+json
+application/vnd.smaf mmf
+# application/vnd.smart.notebook
+application/vnd.smart.teacher teacher
+# application/vnd.software602.filler.form+xml
+# application/vnd.software602.filler.form-xml-zip
+application/vnd.solent.sdkm+xml sdkm sdkd
+application/vnd.spotfire.dxp dxp
+application/vnd.spotfire.sfs sfs
+# application/vnd.sss-cod
+# application/vnd.sss-dtf
+# application/vnd.sss-ntf
+application/vnd.stardivision.calc sdc
+application/vnd.stardivision.draw sda
+application/vnd.stardivision.impress sdd
+application/vnd.stardivision.math smf
+application/vnd.stardivision.writer sdw vor
+application/vnd.stardivision.writer-global sgl
+application/vnd.stepmania.package smzip
+application/vnd.stepmania.stepchart sm
+# application/vnd.street-stream
+# application/vnd.sun.wadl+xml
+application/vnd.sun.xml.calc sxc
+application/vnd.sun.xml.calc.template stc
+application/vnd.sun.xml.draw sxd
+application/vnd.sun.xml.draw.template std
+application/vnd.sun.xml.impress sxi
+application/vnd.sun.xml.impress.template sti
+application/vnd.sun.xml.math sxm
+application/vnd.sun.xml.writer sxw
+application/vnd.sun.xml.writer.global sxg
+application/vnd.sun.xml.writer.template stw
+application/vnd.sus-calendar sus susp
+application/vnd.svd svd
+# application/vnd.swiftview-ics
+application/vnd.symbian.install sis sisx
+application/vnd.syncml+xml xsm
+application/vnd.syncml.dm+wbxml bdm
+application/vnd.syncml.dm+xml xdm
+# application/vnd.syncml.dm.notification
+# application/vnd.syncml.dmddf+wbxml
+# application/vnd.syncml.dmddf+xml
+# application/vnd.syncml.dmtnds+wbxml
+# application/vnd.syncml.dmtnds+xml
+# application/vnd.syncml.ds.notification
+application/vnd.tao.intent-module-archive tao
+application/vnd.tcpdump.pcap pcap cap dmp
+# application/vnd.tmd.mediaflex.api+xml
+# application/vnd.tml
+application/vnd.tmobile-livetv tmo
+application/vnd.trid.tpt tpt
+application/vnd.triscape.mxs mxs
+application/vnd.trueapp tra
+# application/vnd.truedoc
+# application/vnd.ubisoft.webplayer
+application/vnd.ufdl ufd ufdl
+application/vnd.uiq.theme utz
+application/vnd.umajin umj
+application/vnd.unity unityweb
+application/vnd.uoml+xml uoml
+# application/vnd.uplanet.alert
+# application/vnd.uplanet.alert-wbxml
+# application/vnd.uplanet.bearer-choice
+# application/vnd.uplanet.bearer-choice-wbxml
+# application/vnd.uplanet.cacheop
+# application/vnd.uplanet.cacheop-wbxml
+# application/vnd.uplanet.channel
+# application/vnd.uplanet.channel-wbxml
+# application/vnd.uplanet.list
+# application/vnd.uplanet.list-wbxml
+# application/vnd.uplanet.listcmd
+# application/vnd.uplanet.listcmd-wbxml
+# application/vnd.uplanet.signal
+# application/vnd.uri-map
+# application/vnd.valve.source.material
+application/vnd.vcx vcx
+# application/vnd.vd-study
+# application/vnd.vectorworks
+# application/vnd.vel+json
+# application/vnd.verimatrix.vcas
+# application/vnd.vidsoft.vidconference
+application/vnd.visio vsd vst vss vsw
+application/vnd.visionary vis
+# application/vnd.vividence.scriptfile
+application/vnd.vsf vsf
+# application/vnd.wap.sic
+# application/vnd.wap.slc
+application/vnd.wap.wbxml wbxml
+application/vnd.wap.wmlc wmlc
+application/vnd.wap.wmlscriptc wmlsc
+application/vnd.webturbo wtb
+# application/vnd.wfa.p2p
+# application/vnd.wfa.wsc
+# application/vnd.windows.devicepairing
+# application/vnd.wmc
+# application/vnd.wmf.bootstrap
+# application/vnd.wolfram.mathematica
+# application/vnd.wolfram.mathematica.package
+application/vnd.wolfram.player nbp
+application/vnd.wordperfect wpd
+application/vnd.wqd wqd
+# application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf stf
+# application/vnd.wv.csp+wbxml
+# application/vnd.wv.csp+xml
+# application/vnd.wv.ssp+xml
+# application/vnd.xacml+json
+application/vnd.xara xar
+application/vnd.xfdl xfdl
+# application/vnd.xfdl.webform
+# application/vnd.xmi+xml
+# application/vnd.xmpie.cpkg
+# application/vnd.xmpie.dpkg
+# application/vnd.xmpie.plan
+# application/vnd.xmpie.ppkg
+# application/vnd.xmpie.xlim
+application/vnd.yamaha.hv-dic hvd
+application/vnd.yamaha.hv-script hvs
+application/vnd.yamaha.hv-voice hvp
+application/vnd.yamaha.openscoreformat osf
+application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg
+# application/vnd.yamaha.remote-setup
+application/vnd.yamaha.smaf-audio saf
+application/vnd.yamaha.smaf-phrase spf
+# application/vnd.yamaha.through-ngn
+# application/vnd.yamaha.tunnel-udpencap
+# application/vnd.yaoweme
+application/vnd.yellowriver-custom-menu cmp
+application/vnd.zul zir zirz
+application/vnd.zzazz.deck+xml zaz
+application/voicexml+xml vxml
+# application/vq-rtcpxr
+# application/watcherinfo+xml
+# application/whoispp-query
+# application/whoispp-response
+application/widget wgt
+application/winhlp hlp
+# application/wita
+# application/wordperfect5.1
+application/wsdl+xml wsdl
+application/wspolicy+xml wspolicy
+application/x-7z-compressed 7z
+application/x-abiword abw
+application/x-ace-compressed ace
+# application/x-amf
+application/x-apple-diskimage dmg
+application/x-authorware-bin aab x32 u32 vox
+application/x-authorware-map aam
+application/x-authorware-seg aas
+application/x-bcpio bcpio
+application/x-bittorrent torrent
+application/x-blorb blb blorb
+application/x-bzip bz
+application/x-bzip2 bz2 boz
+application/x-cbr cbr cba cbt cbz cb7
+application/x-cdlink vcd
+application/x-cfs-compressed cfs
+application/x-chat chat
+application/x-chess-pgn pgn
+# application/x-compress
+application/x-conference nsc
+application/x-cpio cpio
+application/x-csh csh
+application/x-debian-package deb udeb
+application/x-dgc-compressed dgc
+application/x-director dir dcr dxr cst cct cxt w3d fgd swa
+application/x-doom wad
+application/x-dtbncx+xml ncx
+application/x-dtbook+xml dtb
+application/x-dtbresource+xml res
+application/x-dvi dvi
+application/x-envoy evy
+application/x-eva eva
+application/x-font-bdf bdf
+# application/x-font-dos
+# application/x-font-framemaker
+application/x-font-ghostscript gsf
+# application/x-font-libgrx
+application/x-font-linux-psf psf
+application/x-font-pcf pcf
+application/x-font-snf snf
+# application/x-font-speedo
+# application/x-font-sunos-news
+application/x-font-type1 pfa pfb pfm afm
+# application/x-font-vfont
+application/x-freearc arc
+application/x-futuresplash spl
+application/x-gca-compressed gca
+application/x-glulx ulx
+application/x-gnumeric gnumeric
+application/x-gramps-xml gramps
+application/x-gtar gtar
+# application/x-gzip
+application/x-hdf hdf
+application/x-install-instructions install
+application/x-iso9660-image iso
+application/x-java-jnlp-file jnlp
+application/x-latex latex
+application/x-lzh-compressed lzh lha
+application/x-mie mie
+application/x-mobipocket-ebook prc mobi
+application/x-ms-application application
+application/x-ms-shortcut lnk
+application/x-ms-wmd wmd
+application/x-ms-wmz wmz
+application/x-ms-xbap xbap
+application/x-msaccess mdb
+application/x-msbinder obd
+application/x-mscardfile crd
+application/x-msclip clp
+application/x-msdownload exe dll com bat msi
+application/x-msmediaview mvb m13 m14
+application/x-msmetafile wmf wmz emf emz
+application/x-msmoney mny
+application/x-mspublisher pub
+application/x-msschedule scd
+application/x-msterminal trm
+application/x-mswrite wri
+application/x-netcdf nc cdf
+application/x-nzb nzb
+application/x-pkcs12 p12 pfx
+application/x-pkcs7-certificates p7b spc
+application/x-pkcs7-certreqresp p7r
+application/x-rar-compressed rar
+application/x-research-info-systems ris
+application/x-sh sh
+application/x-shar shar
+application/x-shockwave-flash swf
+application/x-silverlight-app xap
+application/x-sql sql
+application/x-stuffit sit
+application/x-stuffitx sitx
+application/x-subrip srt
+application/x-sv4cpio sv4cpio
+application/x-sv4crc sv4crc
+application/x-t3vm-image t3
+application/x-tads gam
+application/x-tar tar
+application/x-tcl tcl
+application/x-tex tex
+application/x-tex-tfm tfm
+application/x-texinfo texinfo texi
+application/x-tgif obj
+application/x-ustar ustar
+application/x-wais-source src
+# application/x-www-form-urlencoded
+application/x-x509-ca-cert der crt
+application/x-xfig fig
+application/x-xliff+xml xlf
+application/x-xpinstall xpi
+application/x-xz xz
+application/x-zmachine z1 z2 z3 z4 z5 z6 z7 z8
+# application/x400-bp
+# application/xacml+xml
+application/xaml+xml xaml
+# application/xcap-att+xml
+# application/xcap-caps+xml
+application/xcap-diff+xml xdf
+# application/xcap-el+xml
+# application/xcap-error+xml
+# application/xcap-ns+xml
+# application/xcon-conference-info+xml
+# application/xcon-conference-info-diff+xml
+application/xenc+xml xenc
+application/xhtml+xml xhtml xht
+# application/xhtml-voice+xml
+application/xml xml xsl
+application/xml-dtd dtd
+# application/xml-external-parsed-entity
+# application/xml-patch+xml
+# application/xmpp+xml
+application/xop+xml xop
+application/xproc+xml xpl
+application/xslt+xml xslt
+application/xspf+xml xspf
+application/xv+xml mxml xhvml xvml xvm
+application/yang yang
+application/yin+xml yin
+application/zip zip
+# application/zlib
+# audio/1d-interleaved-parityfec
+# audio/32kadpcm
+# audio/3gpp
+# audio/3gpp2
+# audio/ac3
+audio/adpcm adp
+# audio/amr
+# audio/amr-wb
+# audio/amr-wb+
+# audio/aptx
+# audio/asc
+# audio/atrac-advanced-lossless
+# audio/atrac-x
+# audio/atrac3
+audio/basic au snd
+# audio/bv16
+# audio/bv32
+# audio/clearmode
+# audio/cn
+# audio/dat12
+# audio/dls
+# audio/dsr-es201108
+# audio/dsr-es202050
+# audio/dsr-es202211
+# audio/dsr-es202212
+# audio/dv
+# audio/dvi4
+# audio/eac3
+# audio/encaprtp
+# audio/evrc
+# audio/evrc-qcp
+# audio/evrc0
+# audio/evrc1
+# audio/evrcb
+# audio/evrcb0
+# audio/evrcb1
+# audio/evrcnw
+# audio/evrcnw0
+# audio/evrcnw1
+# audio/evrcwb
+# audio/evrcwb0
+# audio/evrcwb1
+# audio/evs
+# audio/example
+# audio/fwdred
+# audio/g711-0
+# audio/g719
+# audio/g722
+# audio/g7221
+# audio/g723
+# audio/g726-16
+# audio/g726-24
+# audio/g726-32
+# audio/g726-40
+# audio/g728
+# audio/g729
+# audio/g7291
+# audio/g729d
+# audio/g729e
+# audio/gsm
+# audio/gsm-efr
+# audio/gsm-hr-08
+# audio/ilbc
+# audio/ip-mr_v2.5
+# audio/isac
+# audio/l16
+# audio/l20
+# audio/l24
+# audio/l8
+# audio/lpc
+audio/midi mid midi kar rmi
+# audio/mobile-xmf
+audio/mp4 m4a mp4a
+# audio/mp4a-latm
+# audio/mpa
+# audio/mpa-robust
+audio/mpeg mpga mp2 mp2a mp3 m2a m3a
+# audio/mpeg4-generic
+# audio/musepack
+audio/ogg oga ogg spx opus
+# audio/opus
+# audio/parityfec
+# audio/pcma
+# audio/pcma-wb
+# audio/pcmu
+# audio/pcmu-wb
+# audio/prs.sid
+# audio/qcelp
+# audio/raptorfec
+# audio/red
+# audio/rtp-enc-aescm128
+# audio/rtp-midi
+# audio/rtploopback
+# audio/rtx
+audio/s3m s3m
+audio/silk sil
+# audio/smv
+# audio/smv-qcp
+# audio/smv0
+# audio/sp-midi
+# audio/speex
+# audio/t140c
+# audio/t38
+# audio/telephone-event
+# audio/tone
+# audio/uemclip
+# audio/ulpfec
+# audio/vdvi
+# audio/vmr-wb
+# audio/vnd.3gpp.iufp
+# audio/vnd.4sb
+# audio/vnd.audiokoz
+# audio/vnd.celp
+# audio/vnd.cisco.nse
+# audio/vnd.cmles.radio-events
+# audio/vnd.cns.anp1
+# audio/vnd.cns.inf1
+audio/vnd.dece.audio uva uvva
+audio/vnd.digital-winds eol
+# audio/vnd.dlna.adts
+# audio/vnd.dolby.heaac.1
+# audio/vnd.dolby.heaac.2
+# audio/vnd.dolby.mlp
+# audio/vnd.dolby.mps
+# audio/vnd.dolby.pl2
+# audio/vnd.dolby.pl2x
+# audio/vnd.dolby.pl2z
+# audio/vnd.dolby.pulse.1
+audio/vnd.dra dra
+audio/vnd.dts dts
+audio/vnd.dts.hd dtshd
+# audio/vnd.dvb.file
+# audio/vnd.everad.plj
+# audio/vnd.hns.audio
+audio/vnd.lucent.voice lvp
+audio/vnd.ms-playready.media.pya pya
+# audio/vnd.nokia.mobile-xmf
+# audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800 ecelp4800
+audio/vnd.nuera.ecelp7470 ecelp7470
+audio/vnd.nuera.ecelp9600 ecelp9600
+# audio/vnd.octel.sbc
+# audio/vnd.qcelp
+# audio/vnd.rhetorex.32kadpcm
+audio/vnd.rip rip
+# audio/vnd.sealedmedia.softseal.mpeg
+# audio/vnd.vmx.cvsd
+# audio/vorbis
+# audio/vorbis-config
+audio/webm weba
+audio/x-aac aac
+audio/x-aiff aif aiff aifc
+audio/x-caf caf
+audio/x-flac flac
+audio/x-matroska mka
+audio/x-mpegurl m3u
+audio/x-ms-wax wax
+audio/x-ms-wma wma
+audio/x-pn-realaudio ram ra
+audio/x-pn-realaudio-plugin rmp
+# audio/x-tta
+audio/x-wav wav
+audio/xm xm
+chemical/x-cdx cdx
+chemical/x-cif cif
+chemical/x-cmdf cmdf
+chemical/x-cml cml
+chemical/x-csml csml
+# chemical/x-pdb
+chemical/x-xyz xyz
+font/collection ttc
+font/otf otf
+# font/sfnt
+font/ttf ttf
+font/woff woff
+font/woff2 woff2
+image/bmp bmp
+image/cgm cgm
+# image/dicom-rle
+# image/emf
+# image/example
+# image/fits
+image/g3fax g3
+image/gif gif
+image/ief ief
+# image/jls
+# image/jp2
+image/jpeg jpeg jpg jpe
+# image/jpm
+# image/jpx
+image/ktx ktx
+# image/naplps
+image/png png
+image/prs.btif btif
+# image/prs.pti
+# image/pwg-raster
+image/sgi sgi
+image/svg+xml svg svgz
+# image/t38
+image/tiff tiff tif
+# image/tiff-fx
+image/vnd.adobe.photoshop psd
+# image/vnd.airzip.accelerator.azv
+# image/vnd.cns.inf2
+image/vnd.dece.graphic uvi uvvi uvg uvvg
+image/vnd.djvu djvu djv
+image/vnd.dvb.subtitle sub
+image/vnd.dwg dwg
+image/vnd.dxf dxf
+image/vnd.fastbidsheet fbs
+image/vnd.fpx fpx
+image/vnd.fst fst
+image/vnd.fujixerox.edmics-mmr mmr
+image/vnd.fujixerox.edmics-rlc rlc
+# image/vnd.globalgraphics.pgb
+# image/vnd.microsoft.icon
+# image/vnd.mix
+# image/vnd.mozilla.apng
+image/vnd.ms-modi mdi
+image/vnd.ms-photo wdp
+image/vnd.net-fpx npx
+# image/vnd.radiance
+# image/vnd.sealed.png
+# image/vnd.sealedmedia.softseal.gif
+# image/vnd.sealedmedia.softseal.jpg
+# image/vnd.svf
+# image/vnd.tencent.tap
+# image/vnd.valve.source.texture
+image/vnd.wap.wbmp wbmp
+image/vnd.xiff xif
+# image/vnd.zbrush.pcx
+image/webp webp
+# image/wmf
+image/x-3ds 3ds
+image/x-cmu-raster ras
+image/x-cmx cmx
+image/x-freehand fh fhc fh4 fh5 fh7
+image/x-icon ico
+image/x-mrsid-image sid
+image/x-pcx pcx
+image/x-pict pic pct
+image/x-portable-anymap pnm
+image/x-portable-bitmap pbm
+image/x-portable-graymap pgm
+image/x-portable-pixmap ppm
+image/x-rgb rgb
+image/x-tga tga
+image/x-xbitmap xbm
+image/x-xpixmap xpm
+image/x-xwindowdump xwd
+# message/cpim
+# message/delivery-status
+# message/disposition-notification
+# message/example
+# message/external-body
+# message/feedback-report
+# message/global
+# message/global-delivery-status
+# message/global-disposition-notification
+# message/global-headers
+# message/http
+# message/imdn+xml
+# message/news
+# message/partial
+message/rfc822 eml mime
+# message/s-http
+# message/sip
+# message/sipfrag
+# message/tracking-status
+# message/vnd.si.simp
+# message/vnd.wfa.wsc
+# model/example
+# model/gltf+json
+model/iges igs iges
+model/mesh msh mesh silo
+model/vnd.collada+xml dae
+model/vnd.dwf dwf
+# model/vnd.flatland.3dml
+model/vnd.gdl gdl
+# model/vnd.gs-gdl
+# model/vnd.gs.gdl
+model/vnd.gtw gtw
+# model/vnd.moml+xml
+model/vnd.mts mts
+# model/vnd.opengex
+# model/vnd.parasolid.transmit.binary
+# model/vnd.parasolid.transmit.text
+# model/vnd.rosette.annotated-data-model
+# model/vnd.valve.source.compiled-map
+model/vnd.vtu vtu
+model/vrml wrl vrml
+model/x3d+binary x3db x3dbz
+# model/x3d+fastinfoset
+model/x3d+vrml x3dv x3dvz
+model/x3d+xml x3d x3dz
+# model/x3d-vrml
+# multipart/alternative
+# multipart/appledouble
+# multipart/byteranges
+# multipart/digest
+# multipart/encrypted
+# multipart/example
+# multipart/form-data
+# multipart/header-set
+# multipart/mixed
+# multipart/parallel
+# multipart/related
+# multipart/report
+# multipart/signed
+# multipart/voice-message
+# multipart/x-mixed-replace
+# text/1d-interleaved-parityfec
+text/cache-manifest appcache
+text/calendar ics ifb
+text/css css
+text/csv csv
+# text/csv-schema
+# text/directory
+# text/dns
+# text/ecmascript
+# text/encaprtp
+# text/enriched
+# text/example
+# text/fwdred
+# text/grammar-ref-list
+text/html html htm
+# text/javascript
+# text/jcr-cnd
+# text/markdown
+# text/mizar
+text/n3 n3
+# text/parameters
+# text/parityfec
+text/plain txt text conf def list log in
+# text/provenance-notation
+# text/prs.fallenstein.rst
+text/prs.lines.tag dsc
+# text/prs.prop.logic
+# text/raptorfec
+# text/red
+# text/rfc822-headers
+text/richtext rtx
+# text/rtf
+# text/rtp-enc-aescm128
+# text/rtploopback
+# text/rtx
+text/sgml sgml sgm
+# text/t140
+text/tab-separated-values tsv
+text/troff t tr roff man me ms
+text/turtle ttl
+# text/ulpfec
+text/uri-list uri uris urls
+text/vcard vcard
+# text/vnd.a
+# text/vnd.abc
+text/vnd.curl curl
+text/vnd.curl.dcurl dcurl
+text/vnd.curl.mcurl mcurl
+text/vnd.curl.scurl scurl
+# text/vnd.debian.copyright
+# text/vnd.dmclientscript
+text/vnd.dvb.subtitle sub
+# text/vnd.esmertec.theme-descriptor
+text/vnd.fly fly
+text/vnd.fmi.flexstor flx
+text/vnd.graphviz gv
+text/vnd.in3d.3dml 3dml
+text/vnd.in3d.spot spot
+# text/vnd.iptc.newsml
+# text/vnd.iptc.nitf
+# text/vnd.latex-z
+# text/vnd.motorola.reflex
+# text/vnd.ms-mediapackage
+# text/vnd.net2phone.commcenter.command
+# text/vnd.radisys.msml-basic-layout
+# text/vnd.si.uricatalogue
+text/vnd.sun.j2me.app-descriptor jad
+# text/vnd.trolltech.linguist
+# text/vnd.wap.si
+# text/vnd.wap.sl
+text/vnd.wap.wml wml
+text/vnd.wap.wmlscript wmls
+text/x-asm s asm
+text/x-c c cc cxx cpp h hh dic
+text/x-fortran f for f77 f90
+text/x-java-source java
+text/x-nfo nfo
+text/x-opml opml
+text/x-pascal p pas
+text/x-setext etx
+text/x-sfv sfv
+text/x-uuencode uu
+text/x-vcalendar vcs
+text/x-vcard vcf
+# text/xml
+# text/xml-external-parsed-entity
+# video/1d-interleaved-parityfec
+video/3gpp 3gp
+# video/3gpp-tt
+video/3gpp2 3g2
+# video/bmpeg
+# video/bt656
+# video/celb
+# video/dv
+# video/encaprtp
+# video/example
+video/h261 h261
+video/h263 h263
+# video/h263-1998
+# video/h263-2000
+video/h264 h264
+# video/h264-rcdo
+# video/h264-svc
+# video/h265
+# video/iso.segment
+video/jpeg jpgv
+# video/jpeg2000
+video/jpm jpm jpgm
+video/mj2 mj2 mjp2
+# video/mp1s
+# video/mp2p
+# video/mp2t
+video/mp4 mp4 mp4v mpg4
+# video/mp4v-es
+video/mpeg mpeg mpg mpe m1v m2v
+# video/mpeg4-generic
+# video/mpv
+# video/nv
+video/ogg ogv
+# video/parityfec
+# video/pointer
+video/quicktime qt mov
+# video/raptorfec
+# video/raw
+# video/rtp-enc-aescm128
+# video/rtploopback
+# video/rtx
+# video/smpte292m
+# video/ulpfec
+# video/vc1
+# video/vnd.cctv
+video/vnd.dece.hd uvh uvvh
+video/vnd.dece.mobile uvm uvvm
+# video/vnd.dece.mp4
+video/vnd.dece.pd uvp uvvp
+video/vnd.dece.sd uvs uvvs
+video/vnd.dece.video uvv uvvv
+# video/vnd.directv.mpeg
+# video/vnd.directv.mpeg-tts
+# video/vnd.dlna.mpeg-tts
+video/vnd.dvb.file dvb
+video/vnd.fvt fvt
+# video/vnd.hns.video
+# video/vnd.iptvforum.1dparityfec-1010
+# video/vnd.iptvforum.1dparityfec-2005
+# video/vnd.iptvforum.2dparityfec-1010
+# video/vnd.iptvforum.2dparityfec-2005
+# video/vnd.iptvforum.ttsavc
+# video/vnd.iptvforum.ttsmpeg2
+# video/vnd.motorola.video
+# video/vnd.motorola.videop
+video/vnd.mpegurl mxu m4u
+video/vnd.ms-playready.media.pyv pyv
+# video/vnd.nokia.interleaved-multimedia
+# video/vnd.nokia.videovoip
+# video/vnd.objectvideo
+# video/vnd.radgamettools.bink
+# video/vnd.radgamettools.smacker
+# video/vnd.sealed.mpeg1
+# video/vnd.sealed.mpeg4
+# video/vnd.sealed.swf
+# video/vnd.sealedmedia.softseal.mov
+video/vnd.uvvu.mp4 uvu uvvu
+video/vnd.vivo viv
+# video/vp8
+video/webm webm
+video/x-f4v f4v
+video/x-fli fli
+video/x-flv flv
+video/x-m4v m4v
+video/x-matroska mkv mk3d mks
+video/x-mng mng
+video/x-ms-asf asf asx
+video/x-ms-vob vob
+video/x-ms-wm wm
+video/x-ms-wmv wmv
+video/x-ms-wmx wmx
+video/x-ms-wvx wvx
+video/x-msvideo avi
+video/x-sgi-movie movie
+video/x-smv smv
+x-conference/x-cooltalk ice
diff --git a/config/e2guardian/authplugins/ident.conf b/config/e2guardian/authplugins/ident.conf
new file mode 100644
index 0000000..92d61ee
--- /dev/null
+++ b/config/e2guardian/authplugins/ident.conf
@@ -0,0 +1,4 @@
+# Ident auth plugin
+# Identifies users via IDENT servers running on client machines
+
+plugname = 'ident'
diff --git a/config/e2guardian/authplugins/ip.conf b/config/e2guardian/authplugins/ip.conf
new file mode 100644
index 0000000..914c466
--- /dev/null
+++ b/config/e2guardian/authplugins/ip.conf
@@ -0,0 +1,11 @@
+# IP-based auth plugin
+#
+# Maps client IPs to filter groups.
+# If "usexforwardedfor" is enabled, grabs the IP from the X-Forwarded-For
+# header, if available.
+
+plugname = 'ip'
+
+# ipgroups file
+# List file assigning IP addresses, subnets and ranges to filter groups
+ipgroups = '/etc/e2guardian/lists/authplugins/ipgroups'
diff --git a/config/e2guardian/authplugins/port.conf b/config/e2guardian/authplugins/port.conf
new file mode 100644
index 0000000..67b0d9e
--- /dev/null
+++ b/config/e2guardian/authplugins/port.conf
@@ -0,0 +1,9 @@
+# IP-Port-based auth plugin
+#
+# Maps IP Ports to filter groups.
+
+plugname = 'port'
+
+# portgroups file
+# List file assigning ports to filter groups
+portgroups = '/etc/e2guardian/lists/authplugins/portgroups'
diff --git a/config/e2guardian/authplugins/proxy-basic.conf b/config/e2guardian/authplugins/proxy-basic.conf
new file mode 100644
index 0000000..ce365cd
--- /dev/null
+++ b/config/e2guardian/authplugins/proxy-basic.conf
@@ -0,0 +1,5 @@
+# Proxy-Basic auth plugin
+# Identifies usernames in "Proxy-Authorization: Basic" headers;
+# relies upon the upstream proxy (squid) to perform the actual password check.
+
+plugname = 'proxy-basic'
diff --git a/config/e2guardian/authplugins/proxy-digest.conf b/config/e2guardian/authplugins/proxy-digest.conf
new file mode 100644
index 0000000..3a849b3
--- /dev/null
+++ b/config/e2guardian/authplugins/proxy-digest.conf
@@ -0,0 +1,7 @@
+# Proxy-Digest auth plugin
+# Identifies usernames in "Proxy-Authorization: Digest" headers;
+# relies upon the upstream proxy (squid) to perform the actual password check.
+
+# Contributed by Darryl Sutherland
+
+plugname = 'proxy-digest'
diff --git a/config/e2guardian/authplugins/proxy-ntlm.conf b/config/e2guardian/authplugins/proxy-ntlm.conf
new file mode 100644
index 0000000..dbdd08b
--- /dev/null
+++ b/config/e2guardian/authplugins/proxy-ntlm.conf
@@ -0,0 +1,5 @@
+# Proxy-NTLM auth plugin
+# Identifies usernames in "Proxy-Authorization: NTLM" headers;
+# relies on the upstream proxy (squid) to perform the actual password check.
+
+plugname = 'proxy-ntlm'
diff --git a/config/e2guardian/common.story b/config/e2guardian/common.story
new file mode 100644
index 0000000..ae24c9b
--- /dev/null
+++ b/config/e2guardian/common.story
@@ -0,0 +1,250 @@
+# Storyboard library file
+
+# For ease of upgrade DO NOT CHANGE THIS library file
+# Make your function changes by overriding functions
+# in the site.story file - for site wide changes
+# and in filtergroup specific story file - see examplef1.story
+#
+# This library is built to largely duplicate the logic in V4
+#
+# Many e2guardian[f1].conf flags are replaced by overiding
+# library functions - see site.story and examplef1.story
+#
+# Simple functions are defined which control the logic flow and the
+# lists that are used. See notes/Storyboard for details.
+#
+# The entry point in v5 for standard filtering is 'checkrequest'
+#
+# Entry function called by proxy module to check http request
+function(checkrequest)
+if(viruscheckset) checknoscanlists
+if(bypassallowset) checknobypasslists
+if(exceptionset) return true
+if(fullurlin,searchterms) setsearchterm
+ifnot(greyset) returnif localcheckrequest
+if(connect) return sslrequestcheck
+ifnot(greyset) returnif exceptioncheck
+ifnot(greyset) greycheck
+ifnot(greyset) returnif bannedcheck
+if(fullurlin, change) setmodurl
+if(true) returnif embeddedcheck
+if(headerin,headermods) setmodheader
+if(fullurlin, addheader) setaddheader
+if(searchin,override) return setgrey
+if(searchin,banned) return setblock
+if(fullurlin,redirect) return setredirect
+if(true) setgrey
+
+
+# Entry function called by proxy module to check http response
+function(checkresponse)
+if(exceptionset) return false
+if(viruscheckset) checknoscantypes
+if(urlin,exceptionfile) return false
+if(true) return checkfiletype
+
+# Entry function called by THTTPS module to check https request
+function(thttps-checkrequest)
+if(true) returnif localsslrequestcheck
+if(true) returnif sslrequestcheck
+ifnot(hassniset) checksni
+
+# Entry function called by ICAP module to check reqmod
+function(icap-checkrequest)
+#unless blocked or redirect or connect - leave logging for RESPMOD
+if(connect) return icapsslrequestcheck
+ifnot(greyset) icap-checkrequest2
+if(redirectset) return true
+ifnot(blockset) setnolog
+
+function(icap-checkrequest2)
+if(viruscheckset) checknoscanlists
+if(bypassallowset) checknobypasslists
+if(exceptionset) return true
+if(fullurlin,searchterms) setsearchterm
+ifnot(greyset) returnif localcheckrequest
+ifnot(greyset) returnif exceptioncheck
+ifnot(greyset) greycheck
+ifnot(greyset) returnif bannedcheck
+if(fullurlin, change) setmodurl
+if(true) returnif embeddedcheck
+if(headerin,headermods) setmodheader
+if(fullurlin, addheader) setaddheader
+if(searchin,override) return setgrey
+if(searchin,banned) return setblock
+if(true) setgrey
+
+# Entry function called by ICAP module to check respmod
+function(icap-checkresponse)
+if(viruscheckset) checknoscanlists
+if(true) return checkresponse
+
+# Checks embeded urls
+# returns true if blocked, otherwise false
+function(embeddedcheck)
+if(embeddedin, localexception) return false
+if(embeddedin, localgrey) return false
+if(embeddedin, localbanned) return setblock
+if(embeddedin, exception) return false
+if(embeddedin, grey) return false
+if(embeddedin, banned) return setblock
+
+# Local checks
+# returns true if matches local exception or banned
+function(localcheckrequest)
+if(connect) return localsslrequestcheck
+ifnot(greyset) returnif localexceptioncheck
+ifnot(greyset) localgreycheck
+ifnot(greyset) returnif localbannedcheck
+if(searchin,localbanned) return setblock
+
+
+# Local SSL checks
+# returns true if matches local exception
+function(localsslrequestcheck)
+if(sitein, localexception) return setexception
+if(sitein, localgreyssl) returnif sslcheckmitm
+if(sitein, localbanned) true
+ifnot(returnset) return false
+if(true) returnif sslcheckmitm
+if(true) return setblock
+
+# SSL site replace (used instead of dns kulge)
+# returns true on match and successful replacement
+function(sslreplace)
+if(fullurlin,sslreplace) return setconnectsite
+if(true) return false
+
+# Local grey check
+# returns true on match
+function(localgreycheck)
+if(urlin, localgrey) return setgrey
+
+# Local banned check
+# returns true on match
+function(localbannedcheck)
+if(urlin, localbanned) return setblock
+
+# Local exception check
+# returns true on match
+function(localexceptioncheck)
+if(urlin, localexception) return setexception
+
+# Exception check
+# returns true on match
+function(exceptioncheck)
+if(urlin, exception) return setexception
+if(headerin, exceptionheader) return setexception
+if(useragentin, exceptionuseragent) return setexception
+
+# SSL Exception check
+# returns true on match
+function(sslexceptioncheck)
+if(sitein, exception) return setexception
+if(headerin, exceptionheader) return setexception
+if(useragentin, exceptionuseragent) return setexception
+if(true) return false
+
+# Greylist check
+# returns true on match
+function(greycheck)
+if(urlin, grey) return setgrey
+
+# Banned list check
+# returns true on match
+function(bannedcheck)
+if(true) returnif checkblanketblock
+if(urlin, banned) return setblock
+if(urlin,bannedextension) return setblock
+if(useragentin, banneduseragent) return setblock
+if(headerin, bannedheader) return setblock
+
+# Local SSL list(s) check
+# returns true on match
+function(localsslcheckrequest)
+if(sitein, localexception) return setexception
+#if(sitein, localbanned) return setblock
+
+# Check whether to go MITM
+# returns true if yes, false if no
+function(sslcheckmitm)
+# use next line to have general MITM
+if(true) return sslcheckmitmgeneral
+# use next line instead of last to limit MITM to greylist
+#if(true) return sslcheckmitmgreyonly
+
+# Always go MITM
+# returns true if yes, false if no
+function(sslcheckmitmgeneral)
+if(true) setgomitm
+ifnot(returnset) return false
+if(sitein, nocheckcert) setnocheckcert
+if(true) sslreplace
+if(true) return true
+
+# Only go MITM when in greyssl list
+# returns true if yes, false if no
+function(sslcheckmitmgreyonly)
+if(sitein, greyssl) setgomitm
+ifnot(returnset) return false
+if(sitein, nocheckcert) setnocheckcert
+if(true) sslreplace
+if(true) return true
+
+# SSL request check
+# returns true if exception or gomitm
+function(sslrequestcheck)
+if(true) returnif sslexceptioncheck
+if(true) returnif sslcheckmitm
+if(sitein, banned) return setblock
+if(true) sslreplace
+ifnot(returnset) returnif sslcheckblanketblock
+if(true) setgrey
+
+function(checknoscanlists)
+if(urlin,exceptionvirus) unsetviruscheck
+
+function(checknoscantypes)
+if(mimein,exceptionvirus) return unsetviruscheck
+if(extensionin,exceptionvirus) return unsetviruscheck
+
+function(checknobypasslists)
+if(urlin,bannedbypass) return unsetbypassallow
+
+# ICAP SSL request check
+# returns true if exception
+function(icapsslrequestcheck)
+if(true) returnif icapsquidbump
+if(true) returnif sslexceptioncheck
+if(true) sslreplace
+if(sitein, banned) return setblock
+
+# Blanket block
+# returns true if to block
+# Placeholder function - overide in fn.story
+function(checkblanketblock)
+
+# SSL Blanket block
+# returns true if to block
+# Placeholder function - overide in fn.story
+function(sslcheckblanketblock)
+
+# ICAP Squid bump
+# override in site.story to return true if bump is being deployed on squid
+function(icapsquidbump)
+
+# File type blocking
+# returns true if blocking
+# Default uses banned lists and allows all others
+# Overide in site.story or fn.story if only types in exception file type lists
+# are to be allowed
+function(checkfiletype)
+if(mimein, bannedmime) return setblock
+if(extensionin, bannedextension) return setblock
+
+# SNI checking - determines default action when no SNI or TSL is present on a
+# THTTPS connection
+# Default blocks all requests with TLS or SNI absent that are not ip site exceptions
+function(checksni)
+ifnot(tls,,511) return setblock
+ifnot(hassniset,,512) return setblock
diff --git a/config/e2guardian/contentscanners/clamdscan.conf b/config/e2guardian/contentscanners/clamdscan.conf
new file mode 100644
index 0000000..4500e0a
--- /dev/null
+++ b/config/e2guardian/contentscanners/clamdscan.conf
@@ -0,0 +1,13 @@
+plugname = 'clamdscan'
+
+# edit this to match the location of your ClamD UNIX domain socket
+clamdudsfile = '/run/clamav/clamd.ctl'
+
+# If this string is set, the text it contains shall be removed from the
+# beginning of filenames when passing them to ClamD.
+# Use it to - for example - support a ClamD running inside a chroot jail:
+# if DG's filecachedir is set to "/var/clamdchroot/downloads/" and pathprefix
+# is set to "/var/clamdchroot", then file names given to ClamD will be of the
+# form "/downloads/tf*" instead of "/var/clamdchroot/downloads/tf*".
+#pathprefix = '/var/clamdchroot'
+
diff --git a/config/e2guardian/contentscanners/commandlinescan.conf b/config/e2guardian/contentscanners/commandlinescan.conf
new file mode 100644
index 0000000..9822d99
--- /dev/null
+++ b/config/e2guardian/contentscanners/commandlinescan.conf
@@ -0,0 +1,45 @@
+plugname = 'commandlinescan'
+
+# Program to run & initial arguments - filename for scanning will be appended
+#progname = /path/to/scanner
+
+# At least one of the following three options must be defined!
+# They are checked in the following order, with the first match determining
+# the scan result:
+# virusregexp - regular expression for extracting virus names from
+# the scanner's output
+# cleancodes - program return code(s), as a comma-separated list, for
+# uninfected files
+# infectedcodes - program return code(s), as a comma-separated list, for
+# infected files
+
+#virusregexp = (someregexp)
+
+# Which submatch of the above contains the virus name? (0 = all matched text)
+#submatch = 1
+
+# cleancodes = 0
+# infectedcodes = 1,2,3
+
+# Default result when none of the other options triggers a match
+# Valid values are "infected" and "clean"
+#defaultresult = infected
+
+
+
+#
+# Example configuration for clamdscan
+#
+
+## Path to binary
+#progname = '/usr/bin/clamdscan'
+
+## Program returns 0 for clean files (for an easy out)
+#cleancodes = 0
+
+## Regular expression for virus names
+#virusregexp = : ([ -/a-zA-Z0-9\.]+) FOUND
+#submatch = 1
+
+## Default scan result when the above don't match
+#defaultresult = infected
diff --git a/config/e2guardian/contentscanners/icapscan.conf b/config/e2guardian/contentscanners/icapscan.conf
new file mode 100644
index 0000000..8e5dd19
--- /dev/null
+++ b/config/e2guardian/contentscanners/icapscan.conf
@@ -0,0 +1,8 @@
+plugname = 'icapscan'
+
+# ICAP URL
+# Use hostname rather than IP address
+# Always specify the port
+#
+icapurl = 'icap://icapserver:1344/avscan'
+
diff --git a/config/e2guardian/downloadmanagers/default.conf b/config/e2guardian/downloadmanagers/default.conf
new file mode 100644
index 0000000..61935a8
--- /dev/null
+++ b/config/e2guardian/downloadmanagers/default.conf
@@ -0,0 +1,17 @@
+# The default download manager.
+# This is the safest option for unknown user-agents and content types, and
+# hence a good one to include last.
+
+# Which plugin should be loaded?
+plugname = 'default'
+
+# Regular expression for matching user agents
+# When not defined, matches all agents.
+#useragentregexp = '.*'
+
+# Lists of mime types and extensions to manage
+# When not defined, matches everything.
+# These can be enabled separately; when both enabled,
+# a request may match either list.
+#managedmimetypelist = ''
+#managedextensionlist = ''
diff --git a/config/e2guardian/e2guardian.conf b/config/e2guardian/e2guardian.conf
new file mode 100644
index 0000000..9ca11eb
--- /dev/null
+++ b/config/e2guardian/e2guardian.conf
@@ -0,0 +1,699 @@
+# e2guardian config file for version 5.3.1
+
+#NOTE This file is only read at start-up
+#
+# but the lists defined in this file are re-read on reload or gentle restart
+# as is any rooms directory files.
+
+# Language dir where languages are stored for internationalisation.
+# The HTML template within this dir is only used when reportinglevel
+# is set to 3. When used, e2guardian will display the HTML file instead of
+# using the perl cgi script. This option is faster, cleaner
+# and easier to customise the access denied page.
+# The language file is used no matter what setting however.
+#
+languagedir = '/usr/share/e2guardian/languages'
+
+# language to use from languagedir.
+language = 'ukenglish'
+
+#Debug Level
+#Enable debug e2guardian
+#debug one value:
+#Eg
+# debuglevel = 'ICAP'
+#Enable ICAP debug informations only
+#
+#Eg
+# debuglevel = 'ALL'
+#Enable ALL debug informations
+#
+#Additive mode:
+#Eg
+# debuglevel = 'ICAP,NET'
+#Enable ICAP and NET debug informations
+#
+#Soustractive mode:
+#Eg
+# debuglevel = 'ALL,-ICAP'
+#Enable all debug informations but without ICAP debug informations
+# debuglevel = 'ALL,-ICAP,-NET,-FILTER'
+#Enable all debug informations but without ICAP, NETWORK and FILTER debug informations
+#by default disabled, if this option is required just uncomment the line below
+#works also with e2guardian -N (-N Do not go into the background)
+#Possible value : ICAP CLAMAV ICAPC (icap client)
+#debuglevel = 'ALL'
+
+#Directory for result of debug level (log)
+#Works only if debuglevel is enabled
+#
+#debuglevelfile = '/data/log/e2guardian/debuge2'
+
+# Logging Settings
+#
+# 0 = none 1 = just denied 2 = all text based 3 = all requests
+loglevel = 3
+
+# Log Exception Hits
+# Log if an exception (user, ip, URL, phrase) is matched and so
+# the page gets let through. Can be useful for diagnosing
+# why a site gets through the filter.
+# 0 = never log exceptions
+# 1 = log exceptions, but do not explicitly mark them as such
+# 2 = always log & mark exceptions (default)
+logexceptionhits = 2
+
+# Log File Format
+# 1 = Dansguardian format (space delimited)
+# 2 = CSV-style format
+# 3 = Squid Log File Format
+# 4 = Tab delimited
+# Protex format type 5 Tab delimited, squid style format with extra fields
+# for filter block/result codes, reasons, filter group, and system name
+# used in arrays so that combined logs show originating server.
+# 5 = Protex format
+# Protex format type 6 Same format as above but system name field is blank
+# used in stand-alone systems.
+# 6 = Protex format with server field blanked
+
+logfileformat = 6
+
+# Log a specific value from header
+# low case only
+# only used with logs: 1,5 and 6
+logheadervalue = 'proxy-authorization:'
+
+# truncate large items in log lines
+# allowable values 10 to 32000
+# default 2000
+# unlimited not longer allowed - 0 will now set default of 2000
+maxlogitemlength = 2000
+
+# anonymize logs (blank out usernames & IPs)
+#anonymizelogs = off
+
+# Syslog logging
+#
+# Use syslog for access logging instead of logging to the file
+# at the defined or built-in "loglocation"
+#logsyslog = off
+
+#Suffix to append to program name when logging through syslog
+# Default is the e2Guardian instance number
+#namesuffix = $z
+
+# Log file location
+#
+# Defines the log directory and filename.
+loglocation = '/data/log/e2guardian/access.log'
+
+# Dymamic statistics log file location
+#
+# Defines the dstats file directory and filename.
+# Once every 'dstatinterval' seconds, stats on number of threads in use,
+# Q sizes and other useful information is written to this file.
+# Format is similar to sar. See notes/dstats_format for more details.
+# Default is not to write stats.
+dstatlocation = '/data/log/e2guardian/dstats.log'
+
+# Interval in seconds between stats output
+# Default 300 (= 5 mins)
+# Minimum 10
+# Maximum 3600 (= 1 hour)
+dstatinterval = 300 # = 5 minutes
+
+# Time format is epoch GMT+0 by default | statshumanreadable change to local zone
+statshumanreadable = on
+
+# Container mode
+# the process will not fork into the background AND log in stdout
+# In this mode systemd service is disabled !
+# Default:
+dockermode = on
+
+# Network Settings
+#
+# the IP that e2guardian listens on. If left blank e2guardian will
+# listen on all IPs. That would include all NICs, loopback, modem, etc.
+# Normally you would have your firewall protecting this, but if you want
+# you can limit it to a certain IP. To bind to multiple interfaces,
+# specify each IP on an individual filterip line.
+# If mapportstoips is 'on' you can have the same IP twice so long as
+# it has a different port.
+filterip =
+
+# the ports that e2guardian listens to. Specify one line per filterip
+# line. If both mapportstoips and mapauthtoports are set to 'on'
+# you can specify different authentication mechanisms per port but
+# only if the mechanisms can co-exist (e.g. basic/proxy auth can't)
+filterports = 8080
+#filterports = 8081
+
+# Map ports to IPs
+# If enabled map filterports to filterip - number of filterports must then be same as
+# number of filterip
+# If disabled will listen on all filterports on all filterips.
+# on (default) | off
+#mapportstoips = off
+
+#port for transparent https
+#if defined enables tranparent https
+transparenthttpsport = 8443
+
+#port for ICAP
+#if defined enables icap mode
+icapport = 1344
+
+# the ip of upstream proxy - optional - if blank e2g will go direct to sites.
+# default is "" i.e. no proxy
+proxyip = 127.0.0.1
+
+# the port e2guardian connects to proxy on
+proxyport = 3127
+
+# Proxy timeout
+# Set tcp timeout between the Proxy and e2guardian
+# This is a connection timeout
+# If proxy is remote you may need to increase this to 10 or more.
+# Min 5 - Max 100
+proxytimeout = 5
+
+# Connect timeout
+# Set tcp timeout between the e2guardian and upstream service (proxy or target host)
+# This is a connection timeout
+# For remote sites you may need to increase this to 10 or more.
+# Min 1 - Max 100
+# default 3
+connecttimeout = 5
+
+# Connect retries
+# Set the number of retries to make on connection failure before giving up
+# Min 1 - Max 100
+# default 1
+
+# Proxy header exchange
+# Set timeout between the Proxy and e2guardian
+# Min 20 - Max 300
+# If this is higher than proxies timeout user will get proxy Gateway error page
+# If lower e2guardian Gateway error page
+proxyexchange = 61
+
+# Pconn timeout
+# how long a persistent connection will wait for other requests
+# squid apparently defaults to 1 minute (persistent_request_timeout),
+# so wait slightly less than this to avoid duff pconns.
+# Min 5 - Max 300
+pcontimeout = 55
+
+# Whether to retrieve the original destination IP in transparent proxy
+# setups and check it against the domain pulled from the HTTP headers.
+#
+# Be aware that when visiting sites which use a certain type of round-robin
+# DNS for load balancing, DG may mark requests as invalid unless DG gets
+# exactly the same answers to its DNS requests as clients. The chances of
+# this happening can be increased if all clients and servers on the same LAN
+# make use of a local, caching DNS server instead of using upstream DNS
+# directly.
+#
+# See http://www.kb.cert.org/vuls/id/435052
+# on (default) | off
+#!! Not compiled !! originalip = off
+
+# Banned image replacement
+# Images that are banned due to domain/url/etc reasons including those
+# in the adverts blacklists can be replaced by an image. This will,
+# for example, hide images from advert sites and remove broken image
+# icons from banned domains.
+# on (default) | off
+usecustombannedimage = on
+custombannedimagefile = '/usr/share/e2guardian/transparent1x1.gif'
+
+#Banned flash replacement
+usecustombannedflash = on
+custombannedflashfile = '/usr/share/e2guardian/blockedflash.swf'
+
+# Filter groups options
+# filtergroups sets the number of filter groups. A filter group is a set of content
+# filtering options you can apply to a group of users. The value must be 1 or more.
+# e2guardian will automatically look for e2guardianfN.conf where N is the filter
+# group. To assign users to groups use the filtergroupslist option. All users default
+# to filter group 1. You must have some sort of authentication to be able to map users
+# to a group.
+filtergroups = 1
+filtergroupslist = '/etc/e2guardian/lists/filtergroupslist'
+
+# default filtergroup for standard (explicit) mode
+# optional defaults to 1
+#defaultfiltergroup = 1;
+
+# default filtergroup for transparent proxy mode
+# optional defaults to 1
+#defaulttransparentfiltergroup = 1;
+
+# default filtergroup for ICAP mode
+# optional defaults to 1
+#defaulticapfiltergroup = 1;
+
+# If on it a user without group is considered like unauthenfied
+# E2guardian tries the next plugin
+# If off the user is connected with group1
+# Defaults to off
+# authrequiresuserandgroup = off
+
+# Authentication files location
+# These are now replaced with pre-authstoryboard logic but lists defined here
+#
+# bannediplist is ONLY for banned client IP
+iplist = 'name=bannedclient,messageno=100,logmessageno=103,path=/etc/e2guardian/lists/bannediplist'
+# Put client dns names in bannedclientlist if required
+#sitelist = 'name=bannedclient,messageno=100,logmessageno=104,path=/etc/e2guardian/lists/bannedclientlist'
+# exceptioniplist is ONLY for exception client IP
+iplist = 'name=exceptionclient,messageno=600,path=/etc/e2guardian/lists/exceptioniplist'
+# Put client dns names in exceptionclientlist if required
+#sitelist = 'name=exceptionclient,messageno=631,path=/etc/e2guardian/lists/exceptionclientlist'
+
+# authexception lists are for exception sites/urls allowed before authentication# to allow for machines to update without user authentication
+iplist = 'name=authexception,messageno=602,path=/etc/e2guardian/lists/authexceptioniplist'
+sitelist = 'name=authexception,messageno=602,path=/etc/e2guardian/lists/authexceptionsitelist'
+urllist = 'name=authexception,messageno=603,path=/etc/e2guardian/lists/authexceptionurllist'
+
+#Note: only iplist, sitelist, ipsitelist and urllist can currently be defined for use with pre-authstoryboard.
+
+# Per-Room definition directory
+# A directory containing text files containing the room's name followed by IPs or ranges
+# and optionaly site and url lists
+# Think of it as bannediplist and/or exceptions on crack
+#Â perroomdirectory = '/etc/e2guardian/lists/rooms/'
+
+# Show weighted phrases found
+# If enabled then the phrases found that made up the total which excedes
+# the naughtyness limit will be logged and, if the reporting level is
+# high enough, reported. on | off
+showweightedfound = on
+
+# Weighted phrase mode
+# There are 3 possible modes of operation:
+# 0 = off = do not use the weighted phrase feature.
+# 1 = on, normal = normal weighted phrase operation.
+# 2 = on, singular = each weighted phrase found only counts once on a page.
+#
+# IMPORTANT: Note that setting this to "0" turns off all features which
+# extract phrases from page content, including banned & exception
+# phrases (not just weighted), search term filtering, and scanning for
+# links to banned URLs.
+#
+weightedphrasemode = 2
+
+# Smart, Raw and Meta/Title phrase content filtering options
+# Smart is where the multiple spaces and HTML are removed before phrase filtering
+# Raw is where the raw HTML including meta tags are phrase filtered
+# Meta/Title is where only meta and title tags are phrase filtered (v. quick)
+# CPU usage can be effectively halved by using setting 0 or 1 compared to 2
+# 0 = raw only
+# 1 = smart only
+# 2 = both of the above (default)
+# 3 = meta/title
+phrasefiltermode = 2
+
+# Lower casing options
+# When a document is scanned the uppercase letters are converted to lower case
+# in order to compare them with the phrases. However this can break Big5 and
+# other 16-bit texts. If needed preserve the case. As of version 2.7.0 accented
+# characters are supported.
+# 0 = force lower case (default)
+# 1 = do not change case
+# 2 = scan first in lower case, then in original case
+preservecase = 0
+
+# Note:
+# If phrasefiltermode and preserve case are both 2, this equates to 4 phrase
+# filtering passes. If you have a large enough userbase for this to be a
+# worry, and need to filter pages in exotic character encodings, it may be
+# better to run two instances on separate servers: one with preservecase 1
+# (and possibly forcequicksearch 1) and non ASCII/UTF-8 phrase lists, and one
+# with preservecase 0 and ASCII/UTF-8 lists.
+
+# Hex decoding options
+# When a document is scanned it can optionally convert %XX to chars.
+# If you find documents are getting past the phrase filtering due to encoding
+# then enable. However this can break Big5 and other 16-bit texts.
+# off = disabled (default)
+# on = enabled
+hexdecodecontent = off
+
+# Force Quick Search rather than DFA search algorithm
+# The current DFA implementation is not totally 16-bit character compatible
+# but is used by default as it handles large phrase lists much faster.
+# If you wish to use a large number of 16-bit character phrases then
+# enable this option.
+# off (default) | on (Big5 compatible)
+forcequicksearch = off
+
+# Reverse lookups for banned site and URLs.
+# If set to on, e2guardian will look up the forward DNS for an IP URL
+# address and search for both in the banned site and URL lists. This would
+# prevent a user from simply entering the IP for a banned address.
+# It will reduce searching speed somewhat so unless you have a local caching
+# DNS server, leave it off and use the Blanket IP Block option in the
+# f1.story file instead.
+reverseaddresslookups = off
+
+# Reverse lookups for banned and exception IP lists.
+# If set to on, e2guardian will look up the forward DNS for the IP
+# of the connecting computer.
+# If a client computer is matched against an IP given in the lists, then the
+# IP will be recorded in any log entries; if forward DNS is successful and a
+# match occurs against a hostname, the hostname will be logged instead.
+# It will reduce searching speed somewhat so unless you have a local DNS server,
+# leave it off.
+reverseclientiplookups = off
+
+# Perform reverse lookups on client IPs for successful requests.
+# If set to on, e2guardian will look up the forward DNS for the IP
+# of the connecting computer, and log host names (where available) rather than
+# IPs against requests.
+# This is not dependent on reverseclientiplookups being enabled; however, if it
+# is, enabling this option does not incur any additional forward DNS requests.
+logclienthostnames = off
+
+# Max content filter size
+# Sometimes web servers label binary files as text which can be very
+# large which causes a huge drain on memory and cpu resources.
+# To counter this, you can limit the size of the document to be
+# filtered and get it to just pass it straight through.
+# This setting also applies to content regular expression modification.
+# The value must not be higher than maxcontentramcachescansize
+# Do not set this too low as this will result in pages that contain a
+# long preamble not being content filtered
+# The size is in Kibibytes - eg 2048 = 2Mb
+# use 0 to set it to maxcontentramcachescansize
+maxcontentfiltersize = 1024
+
+# Max content ram cache scan size
+# This is only used if you use a content scanner plugin such as AV
+# This is the max size of file that e2g will download and cache
+# in RAM. After this limit is reached it will cache to disk
+# This value must be less than or equal to maxcontentfilecachescansize.
+# The size is in Kibibytes - eg 10240 = 10Mb
+# use 0 to set it to maxcontentfilecachescansize
+# This option may be ignored by the configured download manager.
+maxcontentramcachescansize = 2000
+
+# Max content file cache scan size
+# This is only used if you use a content scanner plugin such as AV
+# This is the max size file that DG will download
+# so that it can be scanned or virus checked.
+# This value must be greater or equal to maxcontentramcachescansize.
+# The size is in Kibibytes - eg 10240 = 10Mb
+maxcontentfilecachescansize = 20000
+
+# File cache dir
+# Where DG will download files to be scanned if too large for the
+# RAM cache.
+filecachedir = '/tmp'
+
+# Delete file cache after user completes download
+# When a file gets save to temp it stays there until it is deleted.
+# You can choose to have the file deleted when the user makes a sucessful
+# download. This will mean if they click on the link to download from
+# the temp store a second time it will give a 404 error.
+# You should configure something to delete old files in temp to stop it filling up.
+# on|off (defaults to on)
+deletedownloadedtempfiles = on
+
+# Initial Trickle delay
+# This is the number of seconds a browser connection is left waiting
+# before first being sent *something* to keep it alive. The
+# *something* depends on the download manager chosen.
+# Do not choose a value too low or normal web pages will be affected.
+# A value between 20 and 110 would be sensible
+# This may be ignored by the configured download manager.
+initialtrickledelay = 20
+
+# Trickle delay
+# This is the number of seconds a browser connection is left waiting
+# before being sent more *something* to keep it alive. The
+# *something* depends on the download manager chosen.
+# This may be ignored by the configured download manager.
+trickledelay = 10
+
+# Download Managers
+# These handle downloads of files to be filtered and scanned.
+# They differ in the method they deal with large downloads.
+# Files usually need to be downloaded 100% before they can be
+# filtered and scanned before being sent on to the browser.
+# Normally the browser can just wait, but with content scanning,
+# for example to AV, the browser may timeout or the user may get
+# confused so the download manager has to do some sort of
+# 'keep alive'.
+#
+# There are various methods possible but not all are included.
+# The author does not have the time to write them all so I have
+# included a plugin systam. Also, not all methods work with all
+# browsers and clients. Specifically some fancy methods don't
+# work with software that downloads updates. To solve this,
+# each plugin can support a regular expression for matching
+# the client's user-agent string, and lists of the mime types
+# and extensions it should manage.
+#
+# Note that these are the matching methods provided by the base plugin
+# code, and individual plugins may override or add to them.
+# See the individual plugin conf files for supported options.
+#
+# The plugins are matched in the order you specify and the last
+# one is forced to match as the default, regardless of user agent
+# and other matching mechanisms.
+#
+# NOTE - ONLY default downloadmanager is supported in v5
+downloadmanager = '/etc/e2guardian/downloadmanagers/default.conf'
+
+# Content Scanners (Also known as AV scanners)
+# These are plugins that scan the content of all files your browser fetches
+# for example to AV scan. You can have more than one content
+# scanner. The plugins are run in the order you specify.
+# This is one of the few places you can have multiple options of the same name.
+#
+# Some of the scanner(s) require 3rd party software and libraries eg clamav.
+# See the individual plugin conf file for more options (if any).
+#
+#contentscanner = '/etc/e2guardian/contentscanners/clamdscan.conf'
+#contentscanner = '/etc/e2guardian/contentscanners/icapscan.conf'
+#contentscanner = '/etc/e2guardian/contentscanners/commandlinescan.conf'
+
+# Content scanner timeout
+# Some of the content scanners support using a timeout value to stop
+# processing (eg AV scanning) the file if it takes too long.
+# If supported this will be used.
+# The default of 60 seconds is probably reasonable.
+contentscannertimeout = 60
+
+# Content scan exceptions // THIS MOVED to e2guardianf1.conf
+# contentscanexceptions = off
+
+# Auth plugins
+#
+# Handle the extraction of client usernames from various sources, such as
+# Proxy-Authorisation headers and ident servers, enabling requests to be
+# handled according to the settings of the user's filter group.
+#
+# If you do not use multiple filter groups, you need not specify this option.
+#
+#authplugin = '/etc/e2guardian/authplugins/proxy-basic.conf'
+#authplugin = '/etc/e2guardian/authplugins/proxy-digest.conf'
+#authplugin = '/etc/e2guardian/authplugins/proxy-ntlm.conf'
+#authplugin = '/etc/e2guardian/authplugins/ident.conf'
+#authplugin = '/etc/e2guardian/authplugins/ip.conf'
+#authplugin = '/etc/e2guardian/authplugins/proxy-header.conf'
+#authplugin = '/etc/e2guardian/authplugins/port.conf'
+
+# Map auth to ports
+# If enabled map auth plugins to ips/ports - number of authplugins must then be same as
+# number of ports
+# If disabled scan authplugins on all ports - number of authplugins can then be different
+# to number of ports
+# on (default) | off
+#mapauthtoports = off
+
+# Re-check replaced URLs
+# As a matter of course, URLs undergo regular expression search/replace (urlregexplist)
+# *after* checking the exception site/URL/regexpURL lists, but *before* checking against
+# the banned site/URL lists, allowing certain requests that would be matched against the
+# latter in their original state to effectively be converted into grey requests.
+# With this option enabled, the exception site/URL/regexpURL lists are also re-checked
+# after replacement, making it possible for URL replacement to trigger exceptions based
+# on them.
+# Defaults to off.
+recheckreplacedurls = off
+
+# Misc settings
+
+# if on it adds an X-Forwarded-For: to the HTTP request
+# header. This may help solve some problem sites that need to know the
+# source ip. on | off
+forwardedfor = on
+
+# if on it uses the X-Forwarded-For: to determine the client
+# IP. This is for when you have squid between the clients and e2guardian.
+# Warning - headers are easily spoofed. on | off
+usexforwardedfor = on
+
+# as mentioned above, the headers can be easily spoofed in order to fake the
+# request origin by setting the X-Forwarded-For header. If you have the
+# "usexforwardedfor" option enabled, you may want to specify the IPs from which
+# this kind of header is allowed, such as another upstream proxy server for
+# instance If you want authorize multiple IPs, specify each one on an individual
+# xforwardedforfilterip line.
+# xforwardedforfilterip =
+
+# if on it logs some debug info regarding accept()ing and failed connections
+# which
+# can usually be ignored. These are logged by syslog. It is safe to leave
+# it on or off
+logconnectionhandlingerrors = on
+
+#sets the number of worker threads to use
+#
+# This figure is the maximum number of concurrent connections.
+# If more connections are made, connections will queue until a worker thread is free.
+# On large site you might want to try 5000 (max value 20000)
+httpworkers = 500
+
+# Process options
+# (Change these only if you really know what you are doing).
+# These options allow you to run multiple instances of e2guardian on a single machine.
+# Remember to edit the log file path above also if that is your intention.
+
+# PID filename
+#
+# Defines process id directory and filename.
+#pidfilename = '/var/run/e2guardian.pid'
+
+# Disable daemoning
+# If enabled the process will not fork into the background.
+# It is not usually advantageous to do this.
+# on|off (defaults to off)
+nodaemon = off
+
+# Disable logging process
+# on|off (defaults to off)
+nologger = off
+
+# Enable logging of "ADs" category blocks
+# on|off (defaults to off)
+logadblocks = off
+
+# Enable logging of client User-Agent
+# Some browsers will cause a *lot* of extra information on each line!
+# on|off (defaults to off)
+loguseragent = off
+
+# Daemon runas user and group
+# This is the user that e2guardian runs as. Normally the user/group nobody.
+# Uncomment to use. Defaults to the user set at compile time.
+# Temp files created during virus scanning are given owner and group read
+
+# clamdscan, the two processes must run with either the same group or user ID.
+#daemonuser = 'e2guardian'
+#daemongroup = 'e2guardian'
+
+
+# Mail program
+# Path (sendmail-compatible) email program, with options.
+# Not used if usesmtp is disabled (filtergroup specific).
+#mailer = '/usr/sbin/sendmail -t' # NOT YET IMPLIMENTED
+
+# Enable SSL support
+# This must be present to enable MITM and/or Cert checking
+# default is off
+enablessl = off
+
+#SSL certificate checking path
+#Path to CA certificates used to validate the certificates of https sites.
+# if left blank openssl default ca certificate bundle will be used
+#Leave as default unless you want to load non-default cert bundle
+#sslcertificatepath = ''
+
+#SSL man in the middle
+#CA certificate path
+#Path to the CA certificate to use as a signing certificate for
+#generated certificates.
+# default is blank - required if ssl_mitm is enabled.
+#cacertificatepath = '/home/e2/e2install/ca.pem'
+
+#CA private key path
+#path to the private key that matches the public key in the CA certificate.
+# default is blank - required if ssl_mitm is enabled.
+#caprivatekeypath = '/home/e2/e2install/ca.key'
+
+#Cert private key path
+#The public / private key pair used by all generated certificates
+# default is blank - required if ssl_mitm is enabled.
+#certprivatekeypath = '/home/e2/e2install/cert.key'
+
+#Generated cert path
+#The location where generated certificates will be saved for future use.
+#(must be writable by the dg user)
+# default is blank - required if ssl_mitm is enabled.
+#generatedcertpath = '/home/e2/e2install/generatedcerts/'
+
+#Warning: if you change the cert start/end time from default on a running
+# system you will need to clear the generated certificate
+# store and also may get problems on running client browsers
+
+#Generated cert start time (in unix time) - optional
+# defaults to 1417872951 = 6th Dec 2014
+# generatedcertstart = 1417872951
+
+#Generated cert end time (in unix time) - optional
+# defaults to generatedcertstart + 10 years
+#genratedcertend =
+# generatedcertstart =
+
+# monitor helper path
+# If defined this script/binary will be called with start or stop appended as follows:-
+# Note change in V4!!! - No longer detects cache failure
+# At start after e2guardian has started listener and worker threads with
+# ' start' appended
+# When e2guardian is stopping with ' stop' appended
+# monitorhelper = '/usr/local/bin/mymonitor'
+
+# monitor flag prefix path
+# If defined path will be used to generate flag files as follows:-
+#
+# At start after e2guardian has started listener and worker threads with
+# 'running' appended
+# When e2guardian is stopping with 'paused' appended
+# Note change in V4!!! - No longer detects cache failure
+# monitorflagprefix = '/home/e2g/run/e2g_flag_'
+
+# Much logic has moved to storyboard files
+preauthstoryboard = '/etc/e2guardian/preauth.story'
+
+# Storyboard tracing
+# Warning - produces verbose output - do not use in production
+# Output goes to syslog (or stderr in debug mode)
+# default off
+# storyboardtrace = off
+
+# Abort if list is missing or unreadable
+# default is to warn but then ignore missing lists
+# To abort on missing list set to on
+# abortiflistmissing = off //NOT YET IMPLIMENTED
+
+#Search sitelist for ip sites
+# In v5 a separate set of lists has been introduced for IP sites
+# and normally e2g will no longer check site lists for ip's
+# If you want to keep backward list compatablity then set this to
+# 'on' - but note this incurs an overhead - putting IP in ipsitelists
+# and setting this to off gives the fastest implimentation.
+# default is 'on'
+searchsitelistforip = on
+
+
+# http header checking setings
+#
+# Limit number of http header lines in a request/response
+# (to guard against attacks)
+# Minimum 10 max 250
+# default 50
+# maxheaderlines = 50
diff --git a/config/e2guardian/e2guardianf1.conf b/config/e2guardian/e2guardianf1.conf
new file mode 100644
index 0000000..bbd92fb
--- /dev/null
+++ b/config/e2guardian/e2guardianf1.conf
@@ -0,0 +1,527 @@
+# e2guardian filter group config file for version 5.3.1
+
+# This file is re-read on gentle restart and any changes actioned
+
+# Filter group mode IS NOT LONGER SUPPORTED
+# Unauthenticated users are treated as being in the default filter group.
+# groupmode = 1 #DISABLED
+
+# Filter group name
+# Used to fill in the -FILTERGROUP- placeholder in the HTML template file, and to
+# name the group in the access logs
+# Defaults to empty string
+#groupname = ''
+groupname = 'no_name_group'
+
+# Much logic has moved to storyboard files
+storyboard = '/etc/e2guardian/examplef1.story'
+
+# Enable legacy (DG) ssl logic
+#
+# The following option is replaced by storyboard logic
+# ssllegacylogic = off
+
+# Content filtering files location
+
+bannedphraselist = '/etc/e2guardian/lists/bannedphraselist'
+weightedphraselist = '/etc/e2guardian/lists/weightedphraselist'
+exceptionphraselist = '/etc/e2guardian/lists/exceptionphraselist'
+
+### NOTE - New format for all other list definitions in v5.0
+### see notes/V5_list_definition for details
+
+#banned lists
+sitelist = 'name=banned,messageno=500,path=/etc/e2guardian/lists/bannedsitelist'
+ipsitelist = 'name=banned,messageno=510,path=/etc/e2guardian/lists/bannedsiteiplist'
+urllist = 'name=banned,messageno=501,path=/etc/e2guardian/lists/bannedurllist'
+regexpboollist = 'name=banned,messageno=503,path=/etc/e2guardian/lists/bannedregexpurllist'
+regexpboollist = 'name=banneduseragent,messageno=522,path=/etc/e2guardian/lists/bannedregexpuseragentlist'
+
+sitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsitelist'
+ipsitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsiteiplist'
+
+#grey (i.e. content check) lists
+sitelist = 'name=grey,path=/etc/e2guardian/lists/greysitelist'
+ipsitelist = 'name=grey,path=/etc/e2guardian/lists/greysiteiplist'
+urllist = 'name=grey,path=/etc/e2guardian/lists/greyurllist'
+sitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsitelist'
+ipsitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsiteiplist'
+
+#exception lists
+sitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsitelist'
+ipsitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsiteiplist'
+urllist = 'name=exception,messageno=603,path=/etc/e2guardian/lists/exceptionurllist'
+regexpboollist = 'name=exception,messageno=609,path=/etc/e2guardian/lists/exceptionregexpurllist'
+regexpboollist = 'name=exceptionuseragent,messageno=610,path=/etc/e2guardian/lists/exceptionregexpuseragentlist'
+
+sitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsitelist'
+ipsitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsiteiplist'
+urllist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionurllist'
+sitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersitelist'
+ipsitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersiteiplist'
+urllist = 'name=embededreferer,path=/etc/e2guardian/lists/embededrefererurllist'
+
+#modification lists
+regexpreplacelist = 'name=change,path=/etc/e2guardian/lists/urlregexplist'
+regexpreplacelist = 'name=sslreplace,path=/etc/e2guardian/lists/sslsiteregexplist'
+
+#redirection lists
+regexpreplacelist = 'name=redirect,path=/etc/e2guardian/lists/urlredirectregexplist'
+
+contentregexplist = '/etc/e2guardian/lists/contentregexplist'
+
+# local versions of lists
+
+#local banned
+sitelist = 'name=localbanned,messageno=560,path=/etc/e2guardian/lists/localbannedsitelist'
+#ipsitelist = 'name=localbanned,messageno=560,path=/etc/e2guardian/lists/localbannedsiteiplist'
+#urllist = 'name=localbanned,messageno=561,path=/etc/e2guardian/lists/localbannedurllist'
+#sitelist = 'name=localbannedssl,messageno=580,path=/etc/e2guardian/lists/localbannedsslsitelist'
+#ipsitelist = 'name=localbannedssl,messageno=580,path=/etc/e2guardian/lists/localbannedsslsiteiplist'
+searchlist = 'name=localbanned,messageno=581,path=/etc/e2guardian/lists/localbannedsearchlist'
+
+#local grey lists
+sitelist = 'name=localgrey,path=/etc/e2guardian/lists/localgreysitelist'
+#ipsitelist = 'name=localgrey,path=/etc/e2guardian/lists/localgreysiteiplist'
+#urllist = 'name=localgrey,path=/etc/e2guardian/lists/localgreyurllist'
+sitelist = 'name=localgreyssl,path=/etc/e2guardian/lists/localgreysslsitelist'
+#ipsitelist = 'name=localgreyssl,path=/etc/e2guardian/lists/localgreysslsiteiplist'
+
+#local exception lists
+sitelist = 'name=localexception,messageno=662,path=/etc/e2guardian/lists/localexceptionsitelist'
+#ipsitelist = 'name=localexception,messageno=662,path=/etc/e2guardian/lists/localexceptionsiteiplist'
+#urllist = 'name=localexception,messageno=663,path=/etc/e2guardian/lists/localexceptionurllist'
+
+
+# Filetype filtering
+#
+# Allow bannedregexpurllist with grey list mode
+#
+# The following option is replaced by storyboard logic
+# bannedregexwithblanketblock = off
+#
+# The following option is replaced by storyboard logic
+#blockdownloads = off
+
+# Phrase filtering additional mime types (by default text/*)
+# textmimetypes = 'application/xhtml+xml,application/xml,application/json,application/javascript,application/x-javascript'
+
+# Uncomment the two lines below if want to only allow extentions/mime types in these lists
+# You will also need to uncomment the checkfiletype function in site.story to enable this
+#fileextlist = 'name=exceptionextension,path=/etc/e2guardian/lists/exceptionextensionlist'
+#mimelist = 'name=exceptionmime,path=/etc/e2guardian/lists/exceptionmimelist'
+#
+# Use the following lists to block specific kinds of file downloads.
+#
+fileextlist = 'name=bannedextension,messageno=900,path=/etc/e2guardian/lists/bannedextensionlist'
+mimelist = 'name=bannedmime,messageno=800,path=/etc/e2guardian/lists/bannedmimetypelist'
+#
+# In either file filtering mode, the following list can be used to override
+# MIME type & extension blocks for particular domains & URLs (trusted download sites).
+#
+sitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesitelist'
+ipsitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesiteiplist'
+urllist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfileurllist'
+
+# POST protection (web upload and forms)
+# does not block forms without any file upload, i.e. this is just for
+# blocking or limiting uploads
+# measured in kibibytes after MIME encoding and header bumph
+# use 0 for a complete block
+# use higher (e.g. 512 = 512Kbytes) for limiting
+# use -1 for no blocking
+# NOTE: POST PROTECTION IS NOT YET IMPLIMENTED IN V5
+#maxuploadsize = 512
+#maxuploadsize = 0
+maxuploadsize = -1
+
+# Categorise without blocking:
+# Supply categorised lists here and the category string shall be logged against
+# matching requests, but matching these lists does not perform any filtering
+# action.
+#sitelist = 'name=log,path=/etc/e2guardian/lists/logsitelist'
+#ipsitelist = 'name=log,path=/etc/e2guardian/lists/logsiteiplist'
+#urllist = 'name=log,path=/etc/e2guardian/lists/logurllist'
+#regexpboollist = 'name=log,path=/etc/e2guardian/lists/logregexpurllist'
+
+# Outgoing HTTP header rules:
+# Optional lists for blocking based on, and modification of, outgoing HTTP
+# request headers. Format for headerregexplist is one modification rule per
+# line, similar to content/URL modifications. Format for
+# bannedregexpheaderlist is one regular expression per line, with matching
+# headers causing a request to be blocked.
+# Headers are matched/replaced on a line-by-line basis, not as a contiguous
+# block.
+# Use for example, to remove cookies or prevent certain user-agents.
+regexpreplacelist = 'name=headermods,path=/etc/e2guardian/lists/headerregexplist'
+regexpboollist = 'name=bannedheader,path=/etc/e2guardian/lists/bannedregexpheaderlist'
+regexpboollist = 'name=exceptionheader,path=/etc/e2guardian/lists/exceptionregexpheaderlist'
+# used for Youtube add cookies etc
+regexpreplacelist = 'name=addheader,path=/etc/e2guardian/lists/addheaderregexplist'
+
+#Virus checking exceptions - matched urls will not be virus checked
+#mimelist = 'name=exceptionvirus,path=/etc/e2guardian/lists/contentscanners/exceptionvirusmimetypelist'
+#fileextlist = 'name=exceptionvirus,path=/etc/e2guardian/lists/contentscanners/exceptionvirusextensionlist'
+#sitelist = 'name=exceptionvirus,path=/etc/e2guardian/lists/contentscanners/exceptionvirussitelist'
+#ipsitelist = 'name=exceptionvirus,path=/etc/e2guardian/lists/contentscanners/exceptionvirussiteiplist'
+#urllist = 'name=exceptionvirus,path=/etc/e2guardian/lists/contentscanners/exceptionvirusurllist'
+
+# Weighted phrase mode
+# Optional; overrides the weightedphrasemode option in e2guardian.conf
+# for this particular group. See documentation for supported values in
+# that file.
+#weightedphrasemode = 0
+
+# Naughtiness limit
+# This the limit over which the page will be blocked. Each weighted phrase is given
+# a value either positive or negative and the values added up. Phrases to do with
+# good subjects will have negative values, and bad subjects will have positive
+# values. See the weightedphraselist file for examples.
+# As a guide:
+# 50 is for young children, 100 for old children, 160 for young adults.
+naughtynesslimit = 50
+
+# Search term blocking
+# Search terms can be extracted from search URLs and filtered using one or
+# both of two different methods.
+
+# Method 1 is that developed by Protex where specific
+# search terms are contained in a bannedsearchlist.
+# (localbannedsearchlist and bannedsearchoveridelist can be used to suppliment
+# and overide this list as required.)
+# These lists contain banned search words combinations on each line.
+# Words are separated by '+' and must be in sorted order within a line.
+# so to block 'sexy girl' then the list must contain the line
+# girl+sexy
+# and this will block both 'sexy girl' and 'girl sexy'
+# To use this method, the searchregexplist must be enabled and the bannedsearchlist(s) defined
+
+# Method 2 is uses the
+# bannedphraselist, weightedphraselist and exceptionphraselist, with a separate
+# threshold for blocking than that used for normal page content.
+# To do this, the searchregexplist must be enabled and searchtermlimit
+# must be greater than 0.
+
+#
+# Search engine regular expression list (need for both options)
+# List of regular expressions for matching search engine URLs. It is assumed
+# that the search terms themselves will be contained in the
+# of output of each expression.
+regexpreplacelist = 'name=searchterms,path=/etc/e2guardian/lists/searchregexplist'
+#
+# Banned Search Term list(s) for option 1
+searchlist = 'name=banned,path=/etc/e2guardian/lists/bannedsearchlist'
+searchlist = 'name=override,path=/etc/e2guardian/lists/bannedsearchoveridelist'
+
+
+# Search term limit (for Option 2)
+# The limit over which requests will be blocked for containing search terms
+# which match the weightedphraselist. This should usually be lower than the
+# 'naughtynesslimit' value above, because the amount of text being filtered
+# is only a few words, rather than a whole page.
+# This option must be uncommented if searchregexplist is uncommented.
+# A value of 0 here indicates that search terms should be extracted,
+# but no phrase filtering should be performed on the resulting text.
+#searchtermlimit = 0
+#
+# Search term phrase lists (for Option 2)
+# If the three lines below are uncommented, search term blocking will use
+# the banned, weighted & exception phrases from these lists, instead of using
+# the same phrase lists as for page content. This is optional but recommended,
+# as weights for individual phrases in the "normal" lists may not be
+# appropriate for blocking when those phrases appear in a much smaller block
+# of text.
+# Please note that all or none of the below should be uncommented, not a
+# mixture.
+# NOTE: these are phrase lists and still use the old style defines
+#bannedsearchtermlist = '/etc/e2guardian/lists/bannedsearchtermlist'
+#weightedsearchtermlist = '/etc/e2guardian/lists/weightedsearchtermlist'
+#exceptionsearchtermlist = '/etc/e2guardian/lists/exceptionsearchtermlist'
+
+# Category display threshold
+# This option only applies to pages blocked by weighted phrase filtering.
+# Defines the minimum score that must be accumulated within a particular
+# category in order for it to show up on the block pages' category list.
+# All categories under which the page scores positively will be logged; those
+# that were not displayed to the user appear in brackets.
+#
+# -1 = display only the highest scoring category
+# 0 = display all categories (default)
+# > 0 = minimum score for a category to be displayed
+categorydisplaythreshold = 0
+
+# Embedded URL weighting
+# When set to something greater than zero, this option causes URLs embedded within a
+# page's HTML (from links, image tags, etc.) to be extracted and checked against the
+# bannedsitelist and bannedurllist. Each link to a banned page causes the amount set
+# here to be added to the page's weighting.
+# The behaviour of this option with regards to multiple occurrences of a site/URL is
+# affected by the weightedphrasemode setting.
+#
+# NB: Currently, this feature uses regular expressions that require the PCRE library.
+# As such, it is only available if you compiled e2guardian with '--enable-pcre=yes'.
+# You can check compile-time options by running 'e2guardian -v'.
+#
+# Set to 0 to disable.
+# Defaults to 0.
+# WARNING: This option is highly CPU intensive!
+embeddedurlweight = 0
+
+# Temporary Denied Page Bypass
+# This provides a link on the denied page to bypass the ban for a few minutes. To be
+# secure it uses a random hashed secret generated at daemon startup. You define the
+# number of seconds the bypass will function for before the deny will appear again.
+# To allow the link on the denied page to appear you will need to edit the template.html
+# or e2guardian.pl file for your language.
+# 300 = enable for 5 minutes
+# 0 = disable ( defaults to 0 )
+# -1 - depreciated - for backward compatability enables cgibypass with bypassversion 1
+bypass = 0
+
+# Byapss version 2 is experimental, provide a secure cgi communication (see notes/cgi_bypass documentation)
+#
+
+# Bypass version
+# can be 1 or 2
+# Always use v2 unless you have old style cgi hash generation in use
+# Default is 1
+# bypassversion = 2
+
+# cgibypass - Use a separate program/CGI to (in v1 generate) or (in v2 validate) link
+# 'on' or 'off' (default)
+# cgibypass = 'off'
+
+# Temporary Denied Page Bypass Secret Key
+# Rather than generating a random key you can specify one. It must be more than 8 chars.
+# '' = generate a random one (recommended and default)
+# 'Mary had a little lamb.' = an example
+# '76b42abc1cd0fdcaf6e943dcbc93b826' = an example
+bypasskey = ''
+
+# magic key for cgi bypass v2 - used to sign communications between e2g and cgi
+# default is blank
+#cgikey = 'you must change this text in order to be secure'
+
+# Users will not be able to bypass sites/urls in these lists
+sitelist = 'name=bannedbypass,messageno=500,path=/etc/e2guardian/lists/bannedsitelistwithbypass'
+#ipsitelist = 'name=bannedbypass,messageno=500,path=/etc/e2guardian/lists/bannedsiteiplistwithbypass'
+#urllist = 'name=bannedbypass,messageno=501,path=/etc/e2guardian/lists/bannedurllistwithbypass'
+
+# Infection/Scan Error Bypass
+# Similar to the 'bypass' setting, but specifically for bypassing files scanned and found
+# to be infected, or files that trigger scanner errors - for example, archive types with
+# recognised but unsupported compression schemes, or corrupt archives.
+# The option specifies the number of seconds for which the bypass link will be valid.
+# 300 = enable for 5 minutes
+# 0 = disable (default)
+# -1 - depreciated - for backward compatability enables cgiinfectionbypass with bypassversion 1
+infectionbypass = 0
+
+# cgiinfectionbypass - Use a separate program/CGI to (v1 generate) or (v2 validate) link
+# 'on' or 'off' (default)
+# cgiinfectionbypass = 'off'
+
+# Infection/Scan Error Bypass Secret Key
+# Same as the 'bypasskey' option, but used for infection bypass mode.
+infectionbypasskey = ''
+
+# Infection/Scan Error Bypass on Scan Errors Only
+# Enable this option to allow infectionbypass links only when virus scanning fails,
+# not when a file is found to contain a virus.
+# on = enable (default and highly recommended)
+# off = disable
+infectionbypasserrorsonly = on
+
+# Disable content scanning
+# If you enable this option you will disable content scanning for this group.
+# Content scanning primarily is AV scanning (if enabled) but could include
+# other types.
+# (on|off) default = off.
+disablecontentscan = off
+
+# Disable content scanning with error (timeout, AV crash, etc)
+# If you enable this option you will allow object with an unexpected result
+# Content scanning primarily is AV scanning (if enabled) but could include
+# other types.
+# With "on" you can allow INFECTED objects
+# (on|off) default = off. (default and highly recommended)
+disablecontentscanerror = off
+
+# If 'on' exception sites, urls, users etc will be scanned
+# This is probably not desirable behavour as exceptions are
+# supposed to be trusted and will increase load.
+# Correct use of grey lists are a better idea.
+# (on|off) default = off
+contentscanexceptions = off
+
+# Auth plugins
+# Enable Deep URL Analysis
+# When enabled, DG looks for URLs within URLs, checking against the bannedsitelist and
+# bannedurllist. This can be used, for example, to block images originating from banned
+# sites from appearing in Google Images search results, as the original URLs are
+# embedded in the thumbnail GET requests.
+# (on|off) default = off
+deepurlanalysis = off
+
+# reportinglevel
+#
+# -1 = log, but do not block - Stealth mode
+# 0 = just say 'Access Denied'
+# 1 = report why but not what denied phrase
+# 2 = report fully
+# 3 = use HTML template file (accessdeniedaddress ignored) - recommended
+#
+# If defined, this overrides the global setting in e2guardian.conf for
+# members of this filter group.
+#
+reportinglevel = 3
+
+# accessdeniedaddress is the address of your web server to which the cgi
+# e2guardian reporting script was copied. Only used in reporting levels
+# 1 and 2.
+#
+# This webserver must be either:
+# 1. Non-proxied. Either a machine on the local network, or listed as an
+# exception in your browser's proxy configuration.
+# 2. Added to the exceptionsitelist. Option 1 is preferable; this option is
+# only for users using both transparent proxying and a non-local server
+# to host this script.
+#
+#accessdeniedaddress = 'http://YOURSERVER.YOURDOMAIN/cgi-bin/e2guardian.pl'
+
+# HTML Template override
+# If defined, this specifies a custom HTML template file for members of this
+# filter group, overriding the global setting in e2guardian.conf. This is
+# only used in reporting level 3.
+#
+# The default template file path is //template.html
+# e.g. /usr/share/e2guardian/languages/ukenglish/template.html when using 'ukenglish'
+# language.
+#
+# This option generates a file path of the form:
+# //
+# e.g. /usr/share/e2guardian/languages/ukenglish/custom.html
+#
+#htmltemplate = 'custom.html'
+
+#Template for use to report network issues and sites which are not responding
+# The default template file path is //neterr_template.html
+# e.g. /usr/share/e2guardian/languages/ukenglish/neterr_template.html when using 'ukenglish'
+# language.
+#neterrtemplate = 'custom_neterr_template.html'
+
+# Non standard delimiter (only used with accessdeniedaddress)
+# To help preserve the full banned URL, including parameters, the variables
+# passed into the access denied CGI are separated using non-standard
+# delimiters. This can be useful to ensure correct operation of the filter
+# bypass modes. Parameters are split using "::" in place of "&", and "==" in
+# place of "=".
+# Default is enabled, but to go back to the standard mode, disable it.
+
+#nonstandarddelimiter = off
+
+# Email reporting - original patch by J. Gauthier
+
+# Use SMTP
+# If on, will enable system wide events to be reported by email.
+# need to configure mail program (see 'mailer' in global config)
+# and email recipients
+# default usesmtp = off
+usesmtp = off #NOT YET TESTED
+
+# mailfrom
+# who the email would come from
+# example: mailfrom = 'e2guardian@mycompany.com'
+mailfrom = ''
+
+# avadmin
+# who the virus emails go to (if notify av is on)
+# example: avadmin = 'admin@mycompany.com'
+avadmin = ''
+
+# contentdmin
+# who the content emails go to (when thresholds are exceeded)
+# and contentnotify is on
+# example: contentadmin = 'admin@mycompany.com'
+contentadmin = ''
+
+# avsubject
+# Subject of the email sent when a virus is caught.
+# only applicable if notifyav is on
+# default avsubject = 'e2guardian virus block'
+avsubject = 'e2guardian virus block'
+
+# content
+# Subject of the email sent when violation thresholds are exceeded
+# default contentsubject = 'e2guardian violation'
+contentsubject = 'e2guardian violation'
+
+# notifyAV
+# This will send a notification, if usesmtp/notifyav is on, any time an
+# infection is found.
+# Important: If this option is off, viruses will still be recorded like a
+# content infraction.
+notifyav = off
+
+# notifycontent
+# This will send a notification, if usesmtp is on, based on thresholds
+# below
+notifycontent = off
+
+# thresholdbyuser
+# results are only predictable with user authenticated configs
+# if enabled the violation/threshold count is kept track of by the user
+thresholdbyuser = off
+
+#violations
+# number of violations before notification
+# setting to 0 will never trigger a notification
+violations = 0
+
+#threshold
+# this is in seconds. If 'violations' occur in 'threshold' seconds, then
+# a notification is made.
+# if this is set to 0, then whenever the set number of violations are made a
+# notifaction will be sent.
+threshold = 0
+
+#NOTE to enable SSL MITM or NON-MITM SSL CERT checking
+# enablessl must be defined as 'yes' in e2guardian.conf
+
+#SSL certificate checking
+# Check that ssl certificates for servers on https connections are valid
+# and signed by a ca in the configured path
+# ONLY for connections that are NOT MITM
+#sslcertcheck = off - NOT implimented in V5 yet
+
+#SSL man in the middle
+# Forge ssl certificates for all non-exception sites, decrypt the data then re encrypt it
+# using a different private key. Used to filter ssl sites
+sslmitm = off
+
+#Limit SSL MITM to sites in greysslsitelist(s)
+# ignored if sslmitm is off
+# SSL sites not matching greysslsitelist will be treat as if sslmitm is off.
+# The following option is replaced by storyboard logic
+#onlymitmsslgrey = off - ignored in V5
+
+# Enable MITM site certificate checking
+# ignored if sslmitm is off
+# default (recommended) is 'on'
+mitmcheckcert = on
+
+#Do not check ssl certificates for sites listed
+# Can be used to allow sites with self-signed or invalid certificates
+# or to reduced CPU load by not checking certs on heavily used sites (e.g. Google, Bing)
+# Use with caution!
+# Ignored if mitmcheckcert is 'off'
+#nocheckcertsitelist = '/etc/e2guardian/lists/nocheckcertsitelist'
+sitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsitelist'
+ipsitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsiteiplist'
+#
+
+# Auto switch to MITM with upstream connection error or to deliver block page
+# ignored if sslmitm is off
+# To revert to v4 type behavour switch this off
+# Default is 'on'
+# automitm = on
diff --git a/config/e2guardian/examplef1.story b/config/e2guardian/examplef1.story
new file mode 100644
index 0000000..a4ea505
--- /dev/null
+++ b/config/e2guardian/examplef1.story
@@ -0,0 +1,48 @@
+.Include
+.Include
+
+# Add any altered functions for this filtergroup here
+# They will overwrite library or site level definitions
+
+# To allow unfiltered access to this group
+# uncomment next 4 lines
+#function(checkrequest)
+#if(true) return setexception
+#function(thttps-checkrequest)
+#if(true) return setexception
+
+# To block all access to this group
+# uncomment next 4 lines
+#function(checkrequest)
+#if(true,,105) return setblock
+#function(sslexceptioncheck)
+#function(localsslcheckrequest)
+
+# Note: Blanket blocks are checked after exceptions
+# and can be used to make a 'walled garden' filtergroup
+
+# To create blanket block for http
+# uncomment next line and one condition line.
+#function(checkblanketblock)
+#if(true,,502) return setblock # = ** total blanket
+#if(siteisip,,505) return setblock # = *ip ip blanket
+
+# To create blanket block for SSL
+# uncomment next line and one condition line.
+#function(sslcheckblanketblock)
+#if(true,,506) return setblock # = **s total blanket
+#if(siteisip,,507) return setblock # = **ips ip blanket
+
+# To limit MITM to sslgreylist
+# replaces onlymitmsslgrey e2guardianf1.conf option
+# uncomment the next 2 lines
+#function(sslcheckmitm)
+#if(true) return sslcheckmitmgreyonly
+
+
+# SNI checking - overrides default action when no SNI or TSL is present on a
+# THTTPS connection
+# To allow (tunnell) non-tls and/or non-sni connections uncomment the next 3 lines
+#function(checksni)
+#ifnot(tls,,511) return setexception # change to setblock to block only non-tls
+#ifnot(hassniset,,512) return setexception
diff --git a/config/e2guardian/languages/arspanish/fancydmtemplate.html b/config/e2guardian/languages/arspanish/fancydmtemplate.html
new file mode 100644
index 0000000..0f79f6b
--- /dev/null
+++ b/config/e2guardian/languages/arspanish/fancydmtemplate.html
@@ -0,0 +1,179 @@
+
+
+ Downloading -FILENAME- (-FILESIZE- bytes)
+
+
+
+
+
+
+
+
diff --git a/config/e2guardian/languages/arspanish/messages b/config/e2guardian/languages/arspanish/messages
new file mode 100644
index 0000000..65beb6b
--- /dev/null
+++ b/config/e2guardian/languages/arspanish/messages
@@ -0,0 +1,119 @@
+# e2guardian messages file in AR Spanish
+# Translated by Roberto Quiroga
+"0","Message number absent" # needs translation
+"1","Acceso Denegado"
+"10","IP limit exceeded. There is a " # needs translation
+"11"," IP limit set." # needs translation
+"50"," in " # needs translation
+"51","TRUSTED" # needs translation
+"52","DENIED" # needs translation
+"53","INFECTED" # needs translation
+"54","SCANNED" # needs translation
+"55","CONTENTMOD" # needs translation
+"56","URLMOD" # needs translation
+"57","HEADERMOD" # needs translation
+"58","HEADERADD" # needs translation
+"59","NETERROR" # needs translation
+"70","SSL SITE" # needs translation
+"71","IP Limit" # needs translation
+"72","Content scanning" # needs translation
+"100","Su dirección IP no esta autorizada a visitar: "
+"101","Su dirección IP no esta autorizada navegar."
+"102","El usuario no esta autorizado a visitar: "
+"103","Banned Client IP" # needs translation
+"104","Banned Location" # needs translation
+"105","Banned User" # needs translation
+"110","Proxy authentication error" # needs translation
+"121","Only limited access allowed from your location" # needs translation
+"150","Certificate supplied by server was not valid" # needs translation
+"151","Could not open ssl connection" # needs translation
+"152","Failed to get ssl certificate" # needs translation
+"153","Failed to load ssl private key" # needs translation
+"154","Failed to negotiate ssl connection to client" # needs translation
+"155","No SSL certificate supplied by server" # needs translation
+"156","Server's SSL certificate does not match domain name" # needs translation
+"157","Unable to create tunnel through local proxy" # needs translation
+"158","Opening tunnel failed" # needs translation
+"159","Could not connect to proxy server" # needs translation
+"160","Failed to nogotiate ssl connection to server" # needs translation
+"200","La URL solicitada esta mal formada."
+"201","Unable to get response from upstream proxy (timeout)" # needs translation
+"202","Unable to get response from upstream proxy (error)" # needs translation
+"203","The site requested is not responding" # needs translation
+"204"," - Please try again later" # needs translation
+"205","Upstream proxy is not responding (network error)" # needs translation
+"206"," - Please try again later" # needs translation
+"207","The site requested does not exist" # needs translation
+"208","The site requested does not have an IPv4 address" # needs translation
+"209","Temporary DNS service failure - please try again" # needs translation
+"210","DNS service failure - please try again later" # needs translation
+"300","Se encontró la frase no permitida: "
+"301","Se encontró una frase no permitida"
+"400","Combinación de frases no permitida: "
+"401","Combinación de frases no permitida."
+"402","Límite de ponderación de frases de "
+"403","Límite de ponderación de frases excedido"
+"450","Banned search term found: " # needs translation
+"451","Banned search term found." # needs translation
+"452","Banned combination search term found: " # needs translation
+"453","Banned combination search term found." # needs translation
+"454","Weighted search term limit of " # needs translation
+"455","Weighted search term limit exceeded." # needs translation
+"456","Exception combination search term found: " # needs translation
+"457","Exception search term found: " # needs translation
+"500","Sitio no permitido: "
+"501","URL no permitida: "
+"502","El sitio no esta en la lista permitida por el bloqueo activo."
+"503","Banned Regular Expression URL: "
+"503","URL bloqueada por Expresion Regular: "
+"504","URL bloqueada por Expresion Regular."
+"505","Solo se suministro la direccion IP y el bloqueo esta activo."
+"507","HTTPS access by IP address is not allowed." # needs translation
+"508","Access not allowed using this browser (or app): " # needs translation
+"509","Access not allowed using this browser (or app)." # needs translation
+"510","Blocked IP site " # needs translation
+"511","Tranparent https connection is not TLS: " # needs translation
+"512","Tranparent https connection does not have SNI: " # needs translation
+"520","Blocked HTTPS site: " # needs translation
+"521","Banned Search Words: " # needs translation
+"522","Blocked User-Agent: " # needs translation
+"560","Blocked site (local): " # needs translation
+"561","Blocked URL (local): " # needs translation
+"580","Blocked HTTPS site (local): " # needs translation
+"581","Banned Search Words (local): " # needs translation
+"600","Se encontró una excepción por IP de origen."
+"601","Se encontró una excepción por usuario de origen."
+"602","Se encontró una excepción por lugar."
+"603","Se encontró una excepción por URL."
+"604","Se encontró una excepción por la frase: "
+"605","Se encontró una excepción por la combinación de frases: "
+"606","Bypass URL excepción."
+"607","Bypass cookie excepción."
+"608","Scan bypass URL exception."
+"609","Exception regular expression URL match: "
+# 606,607 by Daniel Barron - corrections welcome
+"610","User-Agent pattern match: " # needs translation
+"620","Referer match: " # needs translation
+"630","URL match in " # needs translation
+"631"," location allow list" # needs translation
+"632","Location overide allow list matched" # needs translation
+"662","Site (local)." # needs translation
+"663","URL (local)." # needs translation
+"700","La subida esta bloqueada."
+"701","Límite de subida excedido."
+"750","Blanket file download is active and this MIME type is not on the white list: " # needs translation
+"751","Blanket file download is active and this file is not matched by the white lists." # needs translation
+"800","Clase MIME bloqueada: "
+"900","Extension bloqueada: "
+"1000","Clasificación PICS excedida en el sitio indicado."
+"1100","Virus or bad content detected."
+"1101","Advert blocked"
+"1200","Please wait - downloading to be scanned..."
+"1201","Warning: file too large to scan. If you suspect that this file is larger than " # needs translation
+"1202",", then refresh this page to download directly." # needs translation
+"1203","WARNING: Could not perform content scan!" # needs translation
+"1210","Download Complete. Starting scan..."
+"1220","Scan complete.
Click here to download: "
+"1221","Download complete; file not scanned.
Click here to download: " # needs translation
+"1222","File too large to cache.
Click here to re-download, bypassing scan: " # needs translation
+"1230","File no longer available"
diff --git a/config/e2guardian/languages/arspanish/neterr_template.html b/config/e2guardian/languages/arspanish/neterr_template.html
new file mode 100644
index 0000000..aec3aed
--- /dev/null
+++ b/config/e2guardian/languages/arspanish/neterr_template.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+ E2Guardian - Unable to load website
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Oops! There seems to be an issue loading this page:
+
+ -URL-
+
+ Because
+
+ -REASONGIVEN-
+
+ Your details are below:
+ User: -USER-  Group: -FILTERGROUP- IP: -IP-
+
+
+ Go Back to previous page
+
+ |
+
+
+