565 lines
19 KiB
HTML
565 lines
19 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
|
|||
|
<!-- Copyright (c) 2022–2023 Emma Tebibyte
|
|||
|
SPDX-License-Identifier: AGPL-3.0-or-later AND CC-BY-NC-SA-4.0
|
|||
|
|
|||
|
This website is free software: you can redistribute it and/or modify it under
|
|||
|
the terms of the GNU Affero General Public License as published by the Free
|
|||
|
Software Foundation, either version 3 of the License, or (at your option) any
|
|||
|
later version.
|
|||
|
|
|||
|
This website is distributed in the hope that it will be useful, but WITHOUT ANY
|
|||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|||
|
PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|||
|
|
|||
|
You should have received a copy of the GNU Affero General Public License along
|
|||
|
with this website. If not, see https://www.gnu.org/licenses/. -->
|
|||
|
|
|||
|
<html>
|
|||
|
<head>
|
|||
|
<title>Web Browsing in the Hellscape of Tomorrow</title>
|
|||
|
<link rel="stylesheet" href="../assets/style.css">
|
|||
|
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
|
|||
|
<meta charset="UTF-8">
|
|||
|
<meta content="Emma Tebibyte" name="author" />
|
|||
|
<meta content="Emma Tebibyte’s personal web page." name="description" />
|
|||
|
<meta content="width=device-width, initial-scale=1" name="viewport" />
|
|||
|
<meta content="interest-cohort=()" http-equiv="Permissions-Policy" /> <!-- FUCK GOOGLE -->
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div class="back">
|
|||
|
<h5 class="pill"><a href="../">Return to my page</a></h5>
|
|||
|
</div>
|
|||
|
<main>
|
|||
|
<section class="intro">
|
|||
|
<h1>
|
|||
|
Web Browsing: From My Paranoid Transgender Brain to Yours
|
|||
|
</h1>
|
|||
|
<p>
|
|||
|
Web browsers are kind of awful.
|
|||
|
<a href="http://www.catb.org/esr/writings/taoup/html/ch01s06.html">
|
|||
|
They do too much</a>; why would I want an application to be an image
|
|||
|
viewer, pdf reader, media player, <i>and</i> HTML renderer? As a result
|
|||
|
of this massive scope,
|
|||
|
<a href="https://today.uic.edu/bloated-browser-functionality-presents-unnecessary-security-privacy-risks/">
|
|||
|
they are bloated beyond belief</a>. They strain developer resources,
|
|||
|
require sandboxing because of the insane default that JavaScript is
|
|||
|
arbitrarily executed, and yet, they're the most prolific method of
|
|||
|
application distribution in the modern day.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Unfortunately, web browsers have become the most convenient place for
|
|||
|
many to do their computing, so, with this page, I’m trying to define a
|
|||
|
more sane functionality for the browser I use—LibreWolf.
|
|||
|
</p>
|
|||
|
<h2>
|
|||
|
Why LibreWolf?
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
LibreWolf is a fork of Firefox, the last browser standing against the
|
|||
|
<a href="https://wikipedia.org/wiki/Usage_share_of_web_browsers">
|
|||
|
Chromium hegemony</a>. Firefox itself has issues with
|
|||
|
telemetry and sanity—for information on this topic and the changes made
|
|||
|
in LibreWolf, see
|
|||
|
<a href="https://github.com/arkenfox/user.js/wiki">here</a>.
|
|||
|
If you’re not going to use Librewolf, at least
|
|||
|
<a href="https://www.unixsheikh.com/articles/choose-your-browser-carefully.html">
|
|||
|
choose your browser carefully</a>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
In addition to the modifications and extensions listed here, my
|
|||
|
script,
|
|||
|
<a href="https://git.tebibyte.media/emma/xdg-sanity">
|
|||
|
<code>xdg-sanity</code></a>, can be used to prevent your web browser
|
|||
|
from being used to open remote content that has a MIME type other than
|
|||
|
<code>text/html</code>.
|
|||
|
</p>
|
|||
|
</section>
|
|||
|
<section>
|
|||
|
<hgroup>
|
|||
|
<h2 id="about-config">
|
|||
|
<a href="#about-config">
|
|||
|
Modifications to <code class="header">about:config</code>
|
|||
|
</a>
|
|||
|
</h2>
|
|||
|
<aside>
|
|||
|
Read more about <code>about:config</code>
|
|||
|
<a href="https://support.mozilla.org/en-US/kb/about-config-editor-firefox">
|
|||
|
here</a>.
|
|||
|
</aside>
|
|||
|
</hgroup>
|
|||
|
<p>
|
|||
|
These settings are advanced user settings, and I’m not responsible for
|
|||
|
misconfigured browsers, broken web pages, or thermonuclear war.
|
|||
|
</p>
|
|||
|
|
|||
|
<h3 id="features">
|
|||
|
<a href="#features">Disable or Enable Features</a>
|
|||
|
</h3>
|
|||
|
<ul>
|
|||
|
<li><code>browser.urlbar.trimURLs = false</code></li>
|
|||
|
<p>Disables the automatic trimming of the URL scheme from the URL
|
|||
|
bar.</p>
|
|||
|
<li><code>image.jxl.enabled = true</code></li>
|
|||
|
<p>Enables <a href="https://jpegxl.info/">JPEG XL</a> support in
|
|||
|
LibreWolf.</p>
|
|||
|
|
|||
|
<li><code>widget.use-xdg-desktop-portal = true</code></li>
|
|||
|
<p>Allows Firefox to use KDE Plasma filechooser on GNU/Linux.</p>
|
|||
|
|
|||
|
<li><code>dom.event.contextmenu.enabled = false</code></li>
|
|||
|
<p>Prevents site from blocking the context menu from being opened.</p>
|
|||
|
|
|||
|
<li><code>extensions.screenshots.disabled = true</code></li>
|
|||
|
<p>Disables redundant in-app screenshots.</p>
|
|||
|
|
|||
|
<li><code>browser.quitShortcut.disabled = true</code></li>
|
|||
|
<p>Disables ctrl+q quit shortcut.</p>
|
|||
|
|
|||
|
<li><code>reader.parse-on-load.enabled = false</code></li>
|
|||
|
<p>Disables reader mode.</p>
|
|||
|
|
|||
|
<li>
|
|||
|
<code>
|
|||
|
services.sync.prefs.sync.extensions.activeThemeID =
|
|||
|
false
|
|||
|
</code>
|
|||
|
</li>
|
|||
|
<p>Prevents automatic application of themes on new
|
|||
|
devices.</p>
|
|||
|
</ul>
|
|||
|
|
|||
|
<h3 id="drm">
|
|||
|
<a href="#drm">Disable Digital Rights Management</a>
|
|||
|
</h3>
|
|||
|
<p>
|
|||
|
<a href="https://wikipedia.org/wiki/Digital_rights_management">
|
|||
|
What is DRM</a> and
|
|||
|
<a href="https://www.gnu.org/philosophy/opposing-drm.html">
|
|||
|
why would I want to disable it?</a>
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<code>media.gmp-widevinecdm.enabled = false</code>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<code>media.gmp-widevinecdm.visible = false</code>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<h2 id="privacy">
|
|||
|
<a href="#privacy">Privacy</a>
|
|||
|
</h2>
|
|||
|
<ul>
|
|||
|
<li><code>geo.enabled = false</code></li>
|
|||
|
<div class="warn">
|
|||
|
<img class="sym" src="../assets/img/warn.svg" />
|
|||
|
<p>
|
|||
|
Disables location tracking.
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
|
|||
|
<li><code>beacon.enabled = false</code></li>
|
|||
|
|
|||
|
<li><code>dom.enable_resource_timing = false</code></li>
|
|||
|
|
|||
|
<li>
|
|||
|
<code>dom.event.clipboardevents.enabled = false</code>
|
|||
|
</li>
|
|||
|
<p>Prevents sites from being able to see what text you
|
|||
|
copied or cut and when you did it.</p>
|
|||
|
|
|||
|
<li>
|
|||
|
<code>dom.battery.enabled = false</code>
|
|||
|
</li>
|
|||
|
|
|||
|
<li><code>network.prefetch-next = false</code></li>
|
|||
|
|
|||
|
<li>
|
|||
|
<code>browser.cache.check_doc_frequency = 0</code>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<h3 id="doh">
|
|||
|
<a href="#doh">
|
|||
|
DNS over HTTPS
|
|||
|
</a>
|
|||
|
</h3>
|
|||
|
<p>
|
|||
|
Read about DOH
|
|||
|
<a href="https://support.mozilla.org/en-US/kb/dns-over-https-doh-faqs">
|
|||
|
here</a>.
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<code>network.trr.uri = ""</code>
|
|||
|
</li>
|
|||
|
<p>
|
|||
|
Select a DNS-over-HTTPS server to use—I use the
|
|||
|
<a href="https://dnswarden.com#doh">dnswarden adblocking
|
|||
|
one</a>, but if your polity censors your internet
|
|||
|
access, you should use the uncensored one. There is a
|
|||
|
list of alternatives available
|
|||
|
<a href="https://github.com/curl/curl/wiki/DNS-over-HTTPS#publicly-available-servers">
|
|||
|
on GitHub</a>.
|
|||
|
</p>
|
|||
|
|
|||
|
<li><code>network.trr.mode = 2</code></li>
|
|||
|
<p>This sets HTTPS over DNS to be on unless the DNS
|
|||
|
server cannot be reached.</p>
|
|||
|
</ul>
|
|||
|
|
|||
|
<h3 id="header-sanitize">
|
|||
|
<a href="#header-sanitize">
|
|||
|
Header Sanitization
|
|||
|
</a>
|
|||
|
</h3>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<code>network.http.referer.spoofSource = true</code>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<code>
|
|||
|
network.http.referer.hideOnionSource = true
|
|||
|
</code>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</section>
|
|||
|
<section class="full"></section>
|
|||
|
<section>
|
|||
|
<h2 id="extensions">
|
|||
|
<a href="#extensions">Extensions</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
When it comes to extensions, fewer is better, so try to limit
|
|||
|
your extensions to the minimum you need to browse the web. This
|
|||
|
helps reduce the performance impact and fingerprintability of
|
|||
|
your browser. The following are a list of extensions you can
|
|||
|
give the boot:
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
For many use cases, containerization extensions like Facebook
|
|||
|
Container or Google Container are redundant with
|
|||
|
<a href="https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/">
|
|||
|
Total Cookie Protection
|
|||
|
</a> and
|
|||
|
<a href="https://blog.mozilla.org/security/2021/08/10/firefox-91-introduces-enhanced-cookie-clearing/">
|
|||
|
Enhanced Cookie Clearing</a>.
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
The
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-about-cookies/">
|
|||
|
I don't care about cookies</a> extension has been
|
|||
|
<a href="https://www.i-dont-care-about-cookies.eu/whats-new/acquisition/">
|
|||
|
acquired by Avast
|
|||
|
</a>, and the extension itself is superfluous with the
|
|||
|
recommended uBlock Origin filter lists below.
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
Privacy Badger
|
|||
|
<a href="https://desuarchive.org/g/thread/83169287/#83170117">
|
|||
|
has multiple issues</a>, including its lack of fingerprinting
|
|||
|
protection, its connection to Fastly CDN, and its redundancy with
|
|||
|
uBlock Origin.
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
If there is any extension you feel is missing from this list,
|
|||
|
feel free to <a href="https://git-send-email.io/">send me a git
|
|||
|
patch through e-mail</a> adding it along with a description as
|
|||
|
to why you believe it should be included. Before
|
|||
|
<a href="../#contact">contacting me</a>, please read through the
|
|||
|
whole list and the
|
|||
|
<a href="https://github.com/arkenfox/user.js/wiki/4.1-Extensions#-dont-bother">
|
|||
|
DON'T BOTHER</a> section of arkenfox’s extensions page.
|
|||
|
</p>
|
|||
|
|
|||
|
<h3 id="privacy-extensions">
|
|||
|
<a href="#privacy-extensions">Standard Privacy Extensions</a>
|
|||
|
</h3>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/privacy-pass">
|
|||
|
Privacy Pass
|
|||
|
</a> – Stores tokens to bypass captchas.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/ublock-origin">
|
|||
|
uBlock Origin
|
|||
|
</a> – Ad blocking, cosmetic filtering, malicious script
|
|||
|
protection, and tracker blocking; all in one package.
|
|||
|
Here is a list of useful blocklists:
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<a href="https://filterlists.com/lists/actually-legitimate-url-shortener-tool">
|
|||
|
ClearURLs functionality
|
|||
|
</a>
|
|||
|
(<a href="https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#removeparam">
|
|||
|
read more</a>)
|
|||
|
<a href="https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt">
|
|||
|
[TXT]
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
To replace I don't care about coookies'
|
|||
|
functionality, enable the EasyList Cookie list
|
|||
|
and manually add the officially-provided
|
|||
|
blocklist.
|
|||
|
<a href="https://www.i-dont-care-about-cookies.eu/abp/">
|
|||
|
[TXT]
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://github.com/yourduskquibbles/webannoyances">
|
|||
|
Other annoyances
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
You can find more blocklists on
|
|||
|
<a href="https://filterlists.com/">FilterLists</a>.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<h3 id="advanced-extensions">
|
|||
|
<a href="#advanced-extensions">
|
|||
|
Advanced Privacy Extensions
|
|||
|
</a>
|
|||
|
</h3>
|
|||
|
<ul>
|
|||
|
|
|||
|
</ul>
|
|||
|
|
|||
|
<h3 id="tools-extensions">
|
|||
|
<a href="tools-extensions">Tools</a>
|
|||
|
</h3>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://github.com/iamadamdev/bypass-paywalls-chrome">
|
|||
|
Bypass Paywalls
|
|||
|
</a> – Bypasses paywalls for some sites.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-CA/firefox/addon/firemonkey/">
|
|||
|
FireMonkey
|
|||
|
</a> – Lightweight user script and style manager
|
|||
|
utilizing native Firefox APIs to support userscripts
|
|||
|
from sources like <a href="https://greasyfork.org/">
|
|||
|
GreasyFork</a> and
|
|||
|
<a href="https://openuserjs.org/">OpenUserJS</a> as well
|
|||
|
as Stylish themes from
|
|||
|
<a href="https://userstyles.org/">
|
|||
|
Userstyles</a>.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/flagfox">
|
|||
|
Flagfox
|
|||
|
</a> – Displays information about a website’s physical
|
|||
|
location and IP address in the address bar.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
FoxyProxy
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/">
|
|||
|
Standard
|
|||
|
</a>/
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-basic/">
|
|||
|
Basic
|
|||
|
</a> – Advanced proxy manager which replaces Firefox’s
|
|||
|
lacking settings.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/libredirect/">
|
|||
|
LibRedirect
|
|||
|
</a> – Redirects services like Twitter and YouTube to
|
|||
|
their privacy-respecting front-ends or alternatives.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/librejs">
|
|||
|
GNU LibreJS
|
|||
|
</a>
|
|||
|
– Extension that blocks all but
|
|||
|
<a href="https://www.gnu.org/philosophy/javascript-trap.html">
|
|||
|
freely licensed JavaScript</a>.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<div class="warn">
|
|||
|
<img class="sym" src="../assets/img/warn.svg" />
|
|||
|
<p>
|
|||
|
LibreJS will prevent a large amount of many website’s JavaScript
|
|||
|
from loading.
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/new-tab-suspender/">
|
|||
|
New Tab Suspender
|
|||
|
</a> – Tab management extension that puts tabs to sleep
|
|||
|
after a set amount of time using the native Firefox
|
|||
|
<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/discard">
|
|||
|
discard API</a>.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/view-page-archive/">
|
|||
|
Web Archives
|
|||
|
</a> – Allows you to easily open web pages at various
|
|||
|
archive sources such as the
|
|||
|
<a href="https://web.archive.org/">Wayback Machine</a>.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</section>
|
|||
|
<section class="full"></section>
|
|||
|
<section>
|
|||
|
<h2 id="reading">
|
|||
|
<a href="#reading">Further Reading</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1495192">
|
|||
|
Add a pref to disable Do Not Track in Firefox
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://github.com/arkenfox/user.js/wiki">
|
|||
|
arkenfox/user.js Wiki
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://jshelter.org/farbling/">
|
|||
|
Farbling-based wrappers to hinder browser fingerprinting
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://spyware.neocities.org/articles/firefox.html">
|
|||
|
Firefox — Spyware Watchdog
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://privacytests.org/">
|
|||
|
PrivacyTests.org
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://scotthelme.co.uk/revocation-is-broken">
|
|||
|
Revocation is Broken
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://support.mozilla.org/en-US/kb/sync-custom-preferences#w_sync-custom-preferences">
|
|||
|
Sync custom preferences
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/18097">
|
|||
|
Tor font fingerprinting defenses roadmap
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://trinity.moe#extensions">
|
|||
|
Trinity’s browser extensions
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</p>
|
|||
|
<h3 id="fingerprinting">
|
|||
|
<a href="#fingerprinting">Fingerprinting Tests</a>
|
|||
|
</h3>
|
|||
|
<p>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<a href="https://amiunique.org/fp">
|
|||
|
AmIUnique
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://browserleaks.com">
|
|||
|
BrowserLeaks
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://arkenfox.github.io/TZP/tests/canvasrfp.html">
|
|||
|
canvas rfp
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://abrahamjuliot.github.io/creepjs">
|
|||
|
CreepJS
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://coveryourtracks.eff.org">
|
|||
|
Cover Your Tracks
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="https://canvasblocker.kkapsner.de/test">
|
|||
|
Test pages for CanvasBlocker
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</p>
|
|||
|
</section>
|
|||
|
</main>
|
|||
|
<footer>
|
|||
|
<div class="copyleft">
|
|||
|
<p>
|
|||
|
This site’s HTML & CSS is licensed under the
|
|||
|
<a href="COPYING">
|
|||
|
AGPLv3
|
|||
|
</a>
|
|||
|
or later. Its content is covered under the
|
|||
|
<a href="legalcode.txt">
|
|||
|
CC BY-NC-SA 4.0
|
|||
|
</a>
|
|||
|
license.
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
</footer>
|
|||
|
</body>
|
|||
|
</html>
|