Compare commits
116 Commits
Author | SHA1 | Date | |
---|---|---|---|
0df748876c | |||
01da660aaa | |||
1877d385e4
|
|||
2f9c779b15
|
|||
5fa9a3b505
|
|||
3b0cd75cbd
|
|||
12fc2d8a9b
|
|||
e9b951cb68 | |||
95d653f26e | |||
bd4818e993 | |||
16237ad930 | |||
347d09a4c2 | |||
0ab8b1f8f2
|
|||
4f091b65e2
|
|||
86ee500c6d
|
|||
005c6fe7cd | |||
bd5ef054ea | |||
182d76b2ae | |||
67f1526d19 | |||
ef4db53567 | |||
8535dadcad | |||
e1f5a00d90 | |||
3b12f672f0 | |||
462db2bdfa | |||
2abaf2f4dd | |||
a0ebda314e | |||
5334e869ed | |||
011efec32b | |||
1c527faa04 | |||
ca9a13c544 | |||
0d0a0a822c | |||
ef286ae706 | |||
d421e81045 | |||
2176a3a2de | |||
65874da53c | |||
b3ceb64052 | |||
ab0b61db10 | |||
31ff6160eb | |||
960a328ea7 | |||
3111447b96 | |||
b506f74950 | |||
e0933d6521 | |||
2d6b59e94b | |||
7a73aae321 | |||
da1a7709fa | |||
3ab5a28edf | |||
345487e3fc | |||
3511a5c094 | |||
f0d9faa705 | |||
f85f7dcf8f | |||
d4dd950d16 | |||
523abd3639 | |||
b160702ccb | |||
80ee4dd2d4 | |||
7f23720f1b | |||
011d9d9993 | |||
f538a2c7c8 | |||
86da4c1e02 | |||
36f029f5be | |||
c1c1fcf494 | |||
d727cbf79d | |||
d242ca3749 | |||
b6e8b01023 | |||
f58740ad7f | |||
97561641dd | |||
3bd62a0231 | |||
7ecbb0290d | |||
7b2f12e364 | |||
90a06daa4f | |||
045e702227 | |||
22e9a5e990 | |||
50311abc2e | |||
84bf23d740 | |||
750830247a | |||
5669d1f258 | |||
b7a1067528 | |||
95a21ab2f2 | |||
9392744593 | |||
74e69302d4 | |||
757729d145 | |||
730a422532 | |||
d48215273f | |||
bade01ca68 | |||
2658214018 | |||
ec03ced668 | |||
f8a3df77bd | |||
e453cb4211 | |||
0b91130e75 | |||
51ecce67e9 | |||
57e1717521 | |||
5c1d6ced8f | |||
786756a3dc | |||
05353aca85 | |||
81c2abd931 | |||
2095aa5a52 | |||
ecce11a009 | |||
ba3b4b5c3a | |||
bb81287173 | |||
e89f324c6a | |||
7dbe38e80c | |||
4d2a21cf0f
|
|||
42dd2c57a4
|
|||
7f7a7c2dd7 | |||
1a900cda46 | |||
10231ee0aa
|
|||
9b5446c7be | |||
3390d27ba9 | |||
7367add2a6 | |||
108aae831c
|
|||
246fb81eb2 | |||
12ae9ae8ce | |||
c2059a392b | |||
ef9e236b2b
|
|||
c4f1e269c8 | |||
fcd366af2a | |||
7f1ce148bf
|
2
.github/workflows/crowdin.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: crowdin action
|
||||
uses: crowdin/github-action@1.4.9
|
||||
uses: crowdin/github-action@1.4.11
|
||||
with:
|
||||
upload_sources: true
|
||||
upload_sources_args: '--auto-update --delete-obsolete'
|
||||
|
73
.github/workflows/deploy.yml
vendored
@ -1,73 +0,0 @@
|
||||
name: 📦 Deploy Website
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: 3.x
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build website
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
ref: ${{github.event.pull_request.head.ref}}
|
||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Set up Python runtime
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: '3.7'
|
||||
|
||||
- name: Cache files
|
||||
uses: actions/cache@v3.0.2
|
||||
with:
|
||||
key: ${{ github.ref }}
|
||||
path: .cache
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
pip install pipenv
|
||||
pipenv install
|
||||
|
||||
- name: Build website
|
||||
run: |
|
||||
pipenv run mkdocs build
|
||||
mv .well-known site/
|
||||
tar cvf site.tar site
|
||||
pipenv run mkdocs --version
|
||||
|
||||
- name: Package website
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: generated-site
|
||||
path: site.tar
|
||||
|
||||
deploy:
|
||||
name: Rsync Deploy
|
||||
runs-on: ubuntu-latest
|
||||
environment: production
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Copy built site to production
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 700 ~/.ssh/id_rsa
|
||||
ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
|
||||
rsync -azP --delete site/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:${{ secrets.SSH_PATH }}
|
82
.github/workflows/pages.yml
vendored
Normal file
@ -0,0 +1,82 @@
|
||||
name: 🛠️ Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
# Allow one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: 3.x
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
ref: ${{github.event.pull_request.head.ref}}
|
||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Pages setup
|
||||
uses: actions/configure-pages@v1
|
||||
|
||||
- name: Python setup
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.7'
|
||||
|
||||
- name: Cache files
|
||||
uses: actions/cache@v3.0.5
|
||||
with:
|
||||
key: ${{ github.ref }}
|
||||
path: .cache
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
pip install pipenv
|
||||
pipenv install
|
||||
|
||||
- name: Build website
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
pipenv run mkdocs build --config-file mkdocs.production.yml
|
||||
mv .well-known site/
|
||||
pipenv run mkdocs --version
|
||||
|
||||
- name: Package website
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
with:
|
||||
path: site
|
||||
|
||||
|
||||
|
||||
deploy:
|
||||
name: Deploy
|
||||
needs: build
|
||||
|
||||
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
||||
permissions:
|
||||
pages: write # to deploy to Pages
|
||||
id-token: write # to verify the deployment originates from an appropriate source
|
||||
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@main
|
8
.github/workflows/preview.yml
vendored
@ -3,7 +3,7 @@ name: 🔂 Surge PR Preview
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
|
||||
# Ensures that only one mirror task will run at a time.
|
||||
concurrency:
|
||||
group: surge-sh
|
||||
@ -27,12 +27,14 @@ jobs:
|
||||
submodules: 'true'
|
||||
|
||||
- name: Set up Python runtime
|
||||
uses: actions/setup-python@v3
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.7'
|
||||
|
||||
- name: Deploy to surge.sh
|
||||
uses: afc163/surge-preview@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
surge_token: ${{ secrets.SURGE_TOKEN }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@ -41,4 +43,4 @@ jobs:
|
||||
build: |
|
||||
pip install pipenv
|
||||
pipenv install
|
||||
pipenv run mkdocs build
|
||||
pipenv run mkdocs build --config-file mkdocs.production.yml
|
||||
|
@ -1,5 +1,5 @@
|
||||
Contact: jonah@triplebit.net
|
||||
Encryption: https://www.jonaharagon.com/keys/
|
||||
Contact: mailto:jonah@triplebit.net
|
||||
Expires: 2024-01-01T18:00:00.000Z
|
||||
Preferred-Languages: en
|
||||
Canonical: https://privacyguides.org/.well-known/security.txt
|
||||
Canonical: https://www.privacyguides.org/.well-known/security.txt
|
||||
Policy: https://github.com/privacyguides/privacyguides.org/security/policy
|
||||
|
2
Pipfile
@ -10,6 +10,8 @@ mkdocs-static-i18n = "*"
|
||||
mkdocs-git-revision-date-localized-plugin = "*"
|
||||
typing-extensions = "*"
|
||||
mkdocs-minify-plugin = "*"
|
||||
mkdocs-rss-plugin = "*"
|
||||
mkdocs-git-committers-plugin-2 = "*"
|
||||
|
||||
[dev-packages]
|
||||
scour = "*"
|
||||
|
659
Pipfile.lock
generated
@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "76ed583036efde0ea1b0725942175f9c77c8a04f218b4822cc8dcc0f8174e2f4"
|
||||
"sha256": "ce2630991a262d8ca83cfc13f70347f8fdd9f9d07c281ea753f5fc52f3aebbd6"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
@ -18,11 +18,11 @@
|
||||
"default": {
|
||||
"babel": {
|
||||
"hashes": [
|
||||
"sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2",
|
||||
"sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"
|
||||
"sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51",
|
||||
"sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.10.1"
|
||||
"version": "==2.10.3"
|
||||
},
|
||||
"cairocffi": {
|
||||
"hashes": [
|
||||
@ -41,74 +41,88 @@
|
||||
},
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
"sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7",
|
||||
"sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
|
||||
"sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d",
|
||||
"sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2022.5.18.1"
|
||||
"version": "==2022.6.15"
|
||||
},
|
||||
"cffi": {
|
||||
"hashes": [
|
||||
"sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3",
|
||||
"sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2",
|
||||
"sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636",
|
||||
"sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20",
|
||||
"sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728",
|
||||
"sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27",
|
||||
"sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66",
|
||||
"sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443",
|
||||
"sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0",
|
||||
"sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7",
|
||||
"sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39",
|
||||
"sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605",
|
||||
"sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a",
|
||||
"sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37",
|
||||
"sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029",
|
||||
"sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139",
|
||||
"sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc",
|
||||
"sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df",
|
||||
"sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14",
|
||||
"sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880",
|
||||
"sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2",
|
||||
"sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a",
|
||||
"sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e",
|
||||
"sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474",
|
||||
"sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024",
|
||||
"sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8",
|
||||
"sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0",
|
||||
"sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e",
|
||||
"sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a",
|
||||
"sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e",
|
||||
"sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032",
|
||||
"sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6",
|
||||
"sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e",
|
||||
"sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b",
|
||||
"sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e",
|
||||
"sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954",
|
||||
"sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962",
|
||||
"sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c",
|
||||
"sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4",
|
||||
"sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55",
|
||||
"sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962",
|
||||
"sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023",
|
||||
"sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c",
|
||||
"sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6",
|
||||
"sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8",
|
||||
"sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382",
|
||||
"sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7",
|
||||
"sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc",
|
||||
"sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997",
|
||||
"sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"
|
||||
"sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5",
|
||||
"sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef",
|
||||
"sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104",
|
||||
"sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426",
|
||||
"sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405",
|
||||
"sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375",
|
||||
"sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a",
|
||||
"sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e",
|
||||
"sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc",
|
||||
"sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf",
|
||||
"sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185",
|
||||
"sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497",
|
||||
"sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3",
|
||||
"sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35",
|
||||
"sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c",
|
||||
"sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83",
|
||||
"sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21",
|
||||
"sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca",
|
||||
"sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984",
|
||||
"sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac",
|
||||
"sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd",
|
||||
"sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee",
|
||||
"sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a",
|
||||
"sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2",
|
||||
"sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192",
|
||||
"sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7",
|
||||
"sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585",
|
||||
"sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f",
|
||||
"sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e",
|
||||
"sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27",
|
||||
"sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b",
|
||||
"sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e",
|
||||
"sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e",
|
||||
"sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d",
|
||||
"sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c",
|
||||
"sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415",
|
||||
"sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82",
|
||||
"sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02",
|
||||
"sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314",
|
||||
"sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325",
|
||||
"sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c",
|
||||
"sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3",
|
||||
"sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914",
|
||||
"sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045",
|
||||
"sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d",
|
||||
"sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9",
|
||||
"sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5",
|
||||
"sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2",
|
||||
"sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c",
|
||||
"sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3",
|
||||
"sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2",
|
||||
"sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8",
|
||||
"sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d",
|
||||
"sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d",
|
||||
"sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9",
|
||||
"sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162",
|
||||
"sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76",
|
||||
"sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4",
|
||||
"sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e",
|
||||
"sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9",
|
||||
"sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6",
|
||||
"sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b",
|
||||
"sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01",
|
||||
"sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"
|
||||
],
|
||||
"version": "==1.15.0"
|
||||
"version": "==1.15.1"
|
||||
},
|
||||
"charset-normalizer": {
|
||||
"hashes": [
|
||||
"sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
|
||||
"sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
|
||||
"sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5",
|
||||
"sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413"
|
||||
],
|
||||
"markers": "python_version >= '3.0'",
|
||||
"version": "==2.0.12"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.1.0"
|
||||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
@ -174,24 +188,24 @@
|
||||
"sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
|
||||
"sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
|
||||
],
|
||||
"markers": "python_version >= '3.0'",
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==3.3"
|
||||
},
|
||||
"importlib-metadata": {
|
||||
"hashes": [
|
||||
"sha256:5d26852efe48c0a32b0509ffbc583fda1a2266545a78d104a6f4aff3db17d700",
|
||||
"sha256:c58c8eb8a762858f49e18436ff552e83914778e50e9d2f1660535ffb364552ec"
|
||||
"sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670",
|
||||
"sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==4.11.4"
|
||||
"markers": "python_version < '3.10'",
|
||||
"version": "==4.12.0"
|
||||
},
|
||||
"jinja2": {
|
||||
"hashes": [
|
||||
"sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8",
|
||||
"sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"
|
||||
"sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
|
||||
"sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.0.3"
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.1.2"
|
||||
},
|
||||
"jsmin": {
|
||||
"hashes": [
|
||||
@ -201,70 +215,79 @@
|
||||
},
|
||||
"lxml": {
|
||||
"hashes": [
|
||||
"sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169",
|
||||
"sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428",
|
||||
"sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc",
|
||||
"sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85",
|
||||
"sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696",
|
||||
"sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507",
|
||||
"sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3",
|
||||
"sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430",
|
||||
"sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03",
|
||||
"sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9",
|
||||
"sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b",
|
||||
"sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7",
|
||||
"sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5",
|
||||
"sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654",
|
||||
"sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca",
|
||||
"sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9",
|
||||
"sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c",
|
||||
"sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63",
|
||||
"sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe",
|
||||
"sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9",
|
||||
"sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9",
|
||||
"sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1",
|
||||
"sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939",
|
||||
"sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68",
|
||||
"sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613",
|
||||
"sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63",
|
||||
"sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e",
|
||||
"sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4",
|
||||
"sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79",
|
||||
"sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1",
|
||||
"sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e",
|
||||
"sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141",
|
||||
"sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb",
|
||||
"sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939",
|
||||
"sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a",
|
||||
"sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93",
|
||||
"sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9",
|
||||
"sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2",
|
||||
"sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6",
|
||||
"sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa",
|
||||
"sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150",
|
||||
"sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea",
|
||||
"sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33",
|
||||
"sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76",
|
||||
"sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807",
|
||||
"sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a",
|
||||
"sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4",
|
||||
"sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15",
|
||||
"sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f",
|
||||
"sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429",
|
||||
"sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c",
|
||||
"sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5",
|
||||
"sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870",
|
||||
"sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b",
|
||||
"sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8",
|
||||
"sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c",
|
||||
"sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87",
|
||||
"sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0",
|
||||
"sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23",
|
||||
"sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170",
|
||||
"sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f"
|
||||
"sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318",
|
||||
"sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c",
|
||||
"sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b",
|
||||
"sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000",
|
||||
"sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73",
|
||||
"sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d",
|
||||
"sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb",
|
||||
"sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8",
|
||||
"sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2",
|
||||
"sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345",
|
||||
"sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94",
|
||||
"sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e",
|
||||
"sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b",
|
||||
"sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc",
|
||||
"sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a",
|
||||
"sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9",
|
||||
"sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc",
|
||||
"sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387",
|
||||
"sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb",
|
||||
"sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7",
|
||||
"sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4",
|
||||
"sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97",
|
||||
"sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67",
|
||||
"sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627",
|
||||
"sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7",
|
||||
"sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd",
|
||||
"sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3",
|
||||
"sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7",
|
||||
"sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130",
|
||||
"sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b",
|
||||
"sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036",
|
||||
"sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785",
|
||||
"sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca",
|
||||
"sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91",
|
||||
"sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc",
|
||||
"sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536",
|
||||
"sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391",
|
||||
"sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3",
|
||||
"sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d",
|
||||
"sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21",
|
||||
"sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3",
|
||||
"sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d",
|
||||
"sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29",
|
||||
"sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715",
|
||||
"sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed",
|
||||
"sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25",
|
||||
"sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c",
|
||||
"sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785",
|
||||
"sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837",
|
||||
"sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4",
|
||||
"sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b",
|
||||
"sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2",
|
||||
"sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067",
|
||||
"sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448",
|
||||
"sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d",
|
||||
"sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2",
|
||||
"sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc",
|
||||
"sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c",
|
||||
"sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5",
|
||||
"sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84",
|
||||
"sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8",
|
||||
"sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf",
|
||||
"sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7",
|
||||
"sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e",
|
||||
"sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb",
|
||||
"sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b",
|
||||
"sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3",
|
||||
"sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad",
|
||||
"sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8",
|
||||
"sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==4.8.0"
|
||||
"version": "==4.9.1"
|
||||
},
|
||||
"markdown": {
|
||||
"hashes": [
|
||||
@ -330,23 +353,31 @@
|
||||
},
|
||||
"mkdocs": {
|
||||
"hashes": [
|
||||
"sha256:26bd2b03d739ac57a3e6eed0b7bcc86168703b719c27b99ad6ca91dc439aacde",
|
||||
"sha256:b504405b04da38795fec9b2e5e28f6aa3a73bb0960cb6d5d27ead28952bd35ea"
|
||||
"sha256:a41a2ff25ce3bbacc953f9844ba07d106233cd76c88bac1f59cb1564ac0d87ed",
|
||||
"sha256:fda92466393127d2da830bc6edc3a625a14b436316d1caf347690648e774c4f0"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.3.0"
|
||||
"version": "==1.3.1"
|
||||
},
|
||||
"mkdocs-git-committers-plugin-2": {
|
||||
"hashes": [
|
||||
"sha256:5da4d790377133d610c0c81fb4989f266b2c9bfaed74866d58af0045926c7753",
|
||||
"sha256:69f38a84bfdc6ecd35778d888b51c40f249f52ed4d1cbc77d5464b6c1c1493f8"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.4.3"
|
||||
},
|
||||
"mkdocs-git-revision-date-localized-plugin": {
|
||||
"hashes": [
|
||||
"sha256:f3e020b445e7b4fb4e58ccd46b07adecbca0f85ac1659e1a63e38b8779c81ba7",
|
||||
"sha256:ffcf206b5108d9f729af6cd42377d2e0e25c080817fdad0119549ac924b526f3"
|
||||
"sha256:38517e2084229da1a1b9460e846c2748d238c2d79efd405d1b9174a87bd81d79",
|
||||
"sha256:4ba0e49abea3e9f6ee26e2623ff7283873da657471c61f1d0cfbb986f403316d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.0.1"
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"mkdocs-material": {
|
||||
"path": "./mkdocs-material",
|
||||
"version": "==8.2.15+insiders.4.15.1"
|
||||
"version": "==8.3.9+insiders.4.21.0"
|
||||
},
|
||||
"mkdocs-material-extensions": {
|
||||
"hashes": [
|
||||
@ -364,12 +395,20 @@
|
||||
"index": "pypi",
|
||||
"version": "==0.5.0"
|
||||
},
|
||||
"mkdocs-static-i18n": {
|
||||
"mkdocs-rss-plugin": {
|
||||
"hashes": [
|
||||
"sha256:5d69b4eb284931bd048a36f923367f2a7bd0dc7b0438008dce8ca1a8feee99e2"
|
||||
"sha256:50671e2030188da4bc01ff421d979903a01cd87b02e2ec5f430fd05d5ed55825",
|
||||
"sha256:536efc35c2f62ea1eac4bae23532e07f0a19b9044291a12960f47be7d3aaf99e"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.45"
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"mkdocs-static-i18n": {
|
||||
"hashes": [
|
||||
"sha256:9a13987c1a1afdb2b9f532f7c1597c2b6e747b4015f4adc1ebd65843b8bf1378"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.46"
|
||||
},
|
||||
"packaging": {
|
||||
"hashes": [
|
||||
@ -381,47 +420,67 @@
|
||||
},
|
||||
"pillow": {
|
||||
"hashes": [
|
||||
"sha256:088df396b047477dd1bbc7de6e22f58400dae2f21310d9e2ec2933b2ef7dfa4f",
|
||||
"sha256:09e67ef6e430f90caa093528bd758b0616f8165e57ed8d8ce014ae32df6a831d",
|
||||
"sha256:0b4d5ad2cd3a1f0d1df882d926b37dbb2ab6c823ae21d041b46910c8f8cd844b",
|
||||
"sha256:0b525a356680022b0af53385944026d3486fc8c013638cf9900eb87c866afb4c",
|
||||
"sha256:1d4331aeb12f6b3791911a6da82de72257a99ad99726ed6b63f481c0184b6fb9",
|
||||
"sha256:20d514c989fa28e73a5adbddd7a171afa5824710d0ab06d4e1234195d2a2e546",
|
||||
"sha256:2b291cab8a888658d72b575a03e340509b6b050b62db1f5539dd5cd18fd50578",
|
||||
"sha256:3f6c1716c473ebd1649663bf3b42702d0d53e27af8b64642be0dd3598c761fb1",
|
||||
"sha256:42dfefbef90eb67c10c45a73a9bc1599d4dac920f7dfcbf4ec6b80cb620757fe",
|
||||
"sha256:488f3383cf5159907d48d32957ac6f9ea85ccdcc296c14eca1a4e396ecc32098",
|
||||
"sha256:4d45dbe4b21a9679c3e8b3f7f4f42a45a7d3ddff8a4a16109dff0e1da30a35b2",
|
||||
"sha256:53c27bd452e0f1bc4bfed07ceb235663a1df7c74df08e37fd6b03eb89454946a",
|
||||
"sha256:55e74faf8359ddda43fee01bffbc5bd99d96ea508d8a08c527099e84eb708f45",
|
||||
"sha256:59789a7d06c742e9d13b883d5e3569188c16acb02eeed2510fd3bfdbc1bd1530",
|
||||
"sha256:5b650dbbc0969a4e226d98a0b440c2f07a850896aed9266b6fedc0f7e7834108",
|
||||
"sha256:66daa16952d5bf0c9d5389c5e9df562922a59bd16d77e2a276e575d32e38afd1",
|
||||
"sha256:6e760cf01259a1c0a50f3c845f9cad1af30577fd8b670339b1659c6d0e7a41dd",
|
||||
"sha256:7502539939b53d7565f3d11d87c78e7ec900d3c72945d4ee0e2f250d598309a0",
|
||||
"sha256:769a7f131a2f43752455cc72f9f7a093c3ff3856bf976c5fb53a59d0ccc704f6",
|
||||
"sha256:7c150dbbb4a94ea4825d1e5f2c5501af7141ea95825fadd7829f9b11c97aaf6c",
|
||||
"sha256:8844217cdf66eabe39567118f229e275f0727e9195635a15e0e4b9227458daaf",
|
||||
"sha256:8a66fe50386162df2da701b3722781cbe90ce043e7d53c1fd6bd801bca6b48d4",
|
||||
"sha256:9370d6744d379f2de5d7fa95cdbd3a4d92f0b0ef29609b4b1687f16bc197063d",
|
||||
"sha256:937a54e5694684f74dcbf6e24cc453bfc5b33940216ddd8f4cd8f0f79167f765",
|
||||
"sha256:9c857532c719fb30fafabd2371ce9b7031812ff3889d75273827633bca0c4602",
|
||||
"sha256:a4165205a13b16a29e1ac57efeee6be2dfd5b5408122d59ef2145bc3239fa340",
|
||||
"sha256:b3fe2ff1e1715d4475d7e2c3e8dabd7c025f4410f79513b4ff2de3d51ce0fa9c",
|
||||
"sha256:b6617221ff08fbd3b7a811950b5c3f9367f6e941b86259843eab77c8e3d2b56b",
|
||||
"sha256:b761727ed7d593e49671d1827044b942dd2f4caae6e51bab144d4accf8244a84",
|
||||
"sha256:baf3be0b9446a4083cc0c5bb9f9c964034be5374b5bc09757be89f5d2fa247b8",
|
||||
"sha256:c17770a62a71718a74b7548098a74cd6880be16bcfff5f937f900ead90ca8e92",
|
||||
"sha256:c67db410508b9de9c4694c57ed754b65a460e4812126e87f5052ecf23a011a54",
|
||||
"sha256:d78ca526a559fb84faaaf84da2dd4addef5edb109db8b81677c0bb1aad342601",
|
||||
"sha256:e9ed59d1b6ee837f4515b9584f3d26cf0388b742a11ecdae0d9237a94505d03a",
|
||||
"sha256:f054b020c4d7e9786ae0404278ea318768eb123403b18453e28e47cdb7a0a4bf",
|
||||
"sha256:f372d0f08eff1475ef426344efe42493f71f377ec52237bf153c5713de987251",
|
||||
"sha256:f3f6a6034140e9e17e9abc175fc7a266a6e63652028e157750bd98e804a8ed9a",
|
||||
"sha256:ffde4c6fabb52891d81606411cbfaf77756e3b561b566efd270b3ed3791fde4e"
|
||||
"sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927",
|
||||
"sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14",
|
||||
"sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc",
|
||||
"sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58",
|
||||
"sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60",
|
||||
"sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76",
|
||||
"sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c",
|
||||
"sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac",
|
||||
"sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490",
|
||||
"sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1",
|
||||
"sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f",
|
||||
"sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d",
|
||||
"sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f",
|
||||
"sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069",
|
||||
"sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402",
|
||||
"sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885",
|
||||
"sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e",
|
||||
"sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be",
|
||||
"sha256:408673ed75594933714482501fe97e055a42996087eeca7e5d06e33218d05aa8",
|
||||
"sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff",
|
||||
"sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da",
|
||||
"sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004",
|
||||
"sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f",
|
||||
"sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20",
|
||||
"sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d",
|
||||
"sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c",
|
||||
"sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544",
|
||||
"sha256:727dd1389bc5cb9827cbd1f9d40d2c2a1a0c9b32dd2261db522d22a604a6eec9",
|
||||
"sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3",
|
||||
"sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04",
|
||||
"sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c",
|
||||
"sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5",
|
||||
"sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4",
|
||||
"sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb",
|
||||
"sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4",
|
||||
"sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c",
|
||||
"sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467",
|
||||
"sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e",
|
||||
"sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421",
|
||||
"sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b",
|
||||
"sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8",
|
||||
"sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb",
|
||||
"sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3",
|
||||
"sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf",
|
||||
"sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1",
|
||||
"sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a",
|
||||
"sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28",
|
||||
"sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0",
|
||||
"sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1",
|
||||
"sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8",
|
||||
"sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd",
|
||||
"sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4",
|
||||
"sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8",
|
||||
"sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f",
|
||||
"sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013",
|
||||
"sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59",
|
||||
"sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc",
|
||||
"sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==9.1.1"
|
||||
"version": "==9.2.0"
|
||||
},
|
||||
"pycparser": {
|
||||
"hashes": [
|
||||
@ -440,11 +499,11 @@
|
||||
},
|
||||
"pymdown-extensions": {
|
||||
"hashes": [
|
||||
"sha256:1baa22a60550f731630474cad28feb0405c8101f1a7ddc3ec0ed86ee510bcc43",
|
||||
"sha256:5b7432456bf555ce2b0ab3c2439401084cda8110f24f6b3ecef952b8313dfa1b"
|
||||
"sha256:3ef2d998c0d5fa7eb09291926d90d69391283561cf6306f85cd588a5eb5befa0",
|
||||
"sha256:ec141c0f4983755349f0c8710416348d1a13753976c028186ed14f190c8061c4"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==9.4"
|
||||
"version": "==9.5"
|
||||
},
|
||||
"pyparsing": {
|
||||
"hashes": [
|
||||
@ -518,91 +577,91 @@
|
||||
},
|
||||
"regex": {
|
||||
"hashes": [
|
||||
"sha256:02543d6d5c32d361b7cc468079ba4cddaaf4a6544f655901ba1ff9d8e3f18755",
|
||||
"sha256:036d1c1fbe69eba3ee253c107e71749cdbb4776db93d674bc0d5e28f30300734",
|
||||
"sha256:071bcb625e890f28b7c4573124a6512ea65107152b1d3ca101ce33a52dad4593",
|
||||
"sha256:0f8da3145f4b72f7ce6181c804eaa44cdcea313c8998cdade3d9e20a8717a9cb",
|
||||
"sha256:0fb6cb16518ac7eff29d1e0b0cce90275dfae0f17154165491058c31d58bdd1d",
|
||||
"sha256:0fd464e547dbabf4652ca5fe9d88d75ec30182981e737c07b3410235a44b9939",
|
||||
"sha256:12af15b6edb00e425f713160cfd361126e624ec0de86e74f7cad4b97b7f169b3",
|
||||
"sha256:165cc75cfa5aa0f12adb2ac6286330e7229a06dc0e6c004ec35da682b5b89579",
|
||||
"sha256:1a07e8366115069f26822c47732122ab61598830a69f5629a37ea8881487c107",
|
||||
"sha256:1c2de7f32fa87d04d40f54bce3843af430697aba51c3a114aa62837a0772f219",
|
||||
"sha256:253f858a0255cd91a0424a4b15c2eedb12f20274f85731b0d861c8137e843065",
|
||||
"sha256:275afc7352982ee947fc88f67a034b52c78395977b5fc7c9be15f7dc95b76f06",
|
||||
"sha256:2bde99f2cdfd6db1ec7e02d68cadd384ffe7413831373ea7cc68c5415a0cb577",
|
||||
"sha256:3241db067a7f69da57fba8bca543ac8a7ca415d91e77315690202749b9fdaba1",
|
||||
"sha256:37903d5ca11fa47577e8952d2e2c6de28553b11c70defee827afb941ab2c6729",
|
||||
"sha256:3dfbadb7b74d95f72f9f9dbf9778f7de92722ab520a109ceaf7927461fa85b10",
|
||||
"sha256:3e35c50b27f36176c792738cb9b858523053bc495044d2c2b44db24376b266f1",
|
||||
"sha256:3e9e983fc8e0d4d5ded7caa5aed39ca2cf6026d7e39801ef6f0af0b1b6cd9276",
|
||||
"sha256:3f6bd8178cce5bb56336722d5569d19c50bba5915a69a2050c497fb921e7cb0f",
|
||||
"sha256:43ee0df35925ae4b0cc6ee3f60b73369e559dd2ac40945044da9394dd9d3a51d",
|
||||
"sha256:45b761406777a681db0c24686178532134c937d24448d9e085279b69e9eb7da4",
|
||||
"sha256:46cbc5b23f85e94161b093dba1b49035697cf44c7db3c930adabfc0e6d861b95",
|
||||
"sha256:4f2e2cef324ca9355049ee1e712f68e2e92716eba24275e6767b9bfa15f1f478",
|
||||
"sha256:50b77622016f03989cd06ecf6b602c7a6b4ed2e3ce04133876b041d109c934ee",
|
||||
"sha256:582ea06079a03750b5f71e20a87cd99e646d796638b5894ff85987ebf5e04924",
|
||||
"sha256:58521abdab76583bd41ef47e5e2ddd93b32501aee4ee8cee71dee10a45ba46b1",
|
||||
"sha256:5b9c7b6895a01204296e9523b3e12b43e013835a9de035a783907c2c1bc447f0",
|
||||
"sha256:6165e737acb3bea3271372e8aa5ebe7226c8a8e8da1b94af2d6547c5a09d689d",
|
||||
"sha256:66fb765b2173d90389384708e3e1d3e4be1148bd8d4d50476b1469da5a2f0229",
|
||||
"sha256:68aed3fb0c61296bd6d234f558f78c51671f79ccb069cbcd428c2eea6fee7a5b",
|
||||
"sha256:6a0ef57cccd8089b4249eebad95065390e56c04d4a92c51316eab4131bca96a9",
|
||||
"sha256:709396c0c95b95045fac89b94f997410ff39b81a09863fe21002f390d48cc7d3",
|
||||
"sha256:73ed1b06abadbf6b61f6033a07c06f36ec0ddca117e41ef2ac37056705e46458",
|
||||
"sha256:7a608022f4593fc67518c6c599ae5abdb03bb8acd75993c82cd7a4c8100eff81",
|
||||
"sha256:7c4d9770e579eb11b582b2e2fd19fa204a15cb1589ae73cd4dcbb63b64f3e828",
|
||||
"sha256:7dbc96419ef0fb6ac56626014e6d3a345aeb8b17a3df8830235a88626ffc8d84",
|
||||
"sha256:7f271d0831d8ebc56e17b37f9fa1824b0379221d1238ae77c18a6e8c47f1fdce",
|
||||
"sha256:82b7fc67e49fdce671bdbec1127189fc979badf062ce6e79dc95ef5e07a8bf92",
|
||||
"sha256:85b7ee4d0c7a46296d884f6b489af8b960c4291d76aea4b22fd4fbe05e6ec08e",
|
||||
"sha256:8b747cef8e5dcdaf394192d43a0c02f5825aeb0ecd3d43e63ae500332ab830b0",
|
||||
"sha256:8bf867ba71856414a482e4b683500f946c300c4896e472e51d3db8dfa8dc8f32",
|
||||
"sha256:8e0da7ef160d4f3eb3d4d3e39a02c3c42f7dbcfce62c81f784cc99fc7059765f",
|
||||
"sha256:8e7d33f93cdd01868327d834d0f5bb029241cd293b47d51b96814dec27fc9b4b",
|
||||
"sha256:92183e9180c392371079262879c6532ccf55f808e6900df5d9f03c9ca8807255",
|
||||
"sha256:92ad03f928675ca05b79d3b1d3dfc149e2226d57ed9d57808f82105d511d0212",
|
||||
"sha256:97af238389cb029d63d5f2d931a7e8f5954ad96e812de5faaed373b68e74df86",
|
||||
"sha256:9913bcf730eb6e9b441fb176832eea9acbebab6035542c7c89d90c803f5cd3be",
|
||||
"sha256:9dae5affbb66178dad6c6fd5b02221ca9917e016c75ee3945e9a9563eb1fbb6f",
|
||||
"sha256:a850f5f369f1e3b6239da7fb43d1d029c1e178263df671819889c47caf7e4ff3",
|
||||
"sha256:aa6daa189db9104787ff1fd7a7623ce017077aa59eaac609d0d25ba95ed251a0",
|
||||
"sha256:aabc28f7599f781ddaeac168d0b566d0db82182cc3dcf62129f0a4fc2927b811",
|
||||
"sha256:af1e687ffab18a75409e5e5d6215b6ccd41a5a1a0ea6ce9665e01253f737a0d3",
|
||||
"sha256:b1d53835922cd0f9b74b2742453a444865a70abae38d12eb41c59271da66f38d",
|
||||
"sha256:b2df3ede85d778c949d9bd2a50237072cee3df0a423c91f5514f78f8035bde87",
|
||||
"sha256:b415b82e5be7389ec5ee7ee35431e4a549ea327caacf73b697c6b3538cb5c87f",
|
||||
"sha256:b7ba3c304a4a5d8112dbd30df8b3e4ef59b4b07807957d3c410d9713abaee9a8",
|
||||
"sha256:bcc6f7a3a95119c3568c572ca167ada75f8319890706283b9ba59b3489c9bcb3",
|
||||
"sha256:be392d9cd5309509175a9d7660dc17bf57084501108dbff0c5a8bfc3646048c3",
|
||||
"sha256:bea61de0c688198e3d9479344228c7accaa22a78b58ec408e41750ebafee6c08",
|
||||
"sha256:bedb3d01ad35ea1745bdb1d57f3ee0f996f988c98f5bbae9d068c3bb3065d210",
|
||||
"sha256:c36906a7855ec33a9083608e6cd595e4729dab18aeb9aad0dd0b039240266239",
|
||||
"sha256:c4fdf837666f7793a5c3cfa2f2f39f03eb6c7e92e831bc64486c2f547580c2b3",
|
||||
"sha256:cfad3a770839aa456ff9a9aa0e253d98b628d005a3ccb37da1ff9be7c84fee16",
|
||||
"sha256:d128e278e5e554c5c022c7bed410ca851e00bacebbb4460de546a73bc53f8de4",
|
||||
"sha256:dffd9114ade73137ab2b79a8faf864683dbd2dbbb6b23a305fbbd4cbaeeb2187",
|
||||
"sha256:e2acf5c66fbb62b5fe4c40978ddebafa50818f00bf79d60569d9762f6356336e",
|
||||
"sha256:e65580ae3137bce712f505ec7c2d700aef0014a3878c4767b74aff5895fc454f",
|
||||
"sha256:e944268445b5694f5d41292c9228f0ca46d5a32a67f195d5f8547c1f1d91f4bc",
|
||||
"sha256:ed26c3d2d62c6588e0dad175b8d8cc0942a638f32d07b80f92043e5d73b7db67",
|
||||
"sha256:ed625205f5f26984382b68e4cbcbc08e6603c9e84c14b38457170b0cc71c823b",
|
||||
"sha256:f2a5d9f612091812dee18375a45d046526452142e7b78c4e21ab192db15453d5",
|
||||
"sha256:f86aef546add4ff1202e1f31e9bb54f9268f17d996b2428877283146bf9bc013",
|
||||
"sha256:f89d26e50a4c7453cb8c415acd09e72fbade2610606a9c500a1e48c43210a42d",
|
||||
"sha256:fb7107faf0168de087f62a2f2ed00f9e9da12e0b801582b516ddac236b871cda"
|
||||
"sha256:03cdd06061426378a83e8a5bdec9cc71b964c35e329f68fb7058d08791780c83",
|
||||
"sha256:03d7ff80e3a276ef460baaa745d425162c19d8ea093d60ecf47f52ffee37aea5",
|
||||
"sha256:0798f6b97c3f8139c95af7b128a60909f5305b2e431a012083063298b2481e5d",
|
||||
"sha256:1228f5a6be5b45ce7b66a69a77682632f0ce64cea1d7da505f33972e01f1f3fe",
|
||||
"sha256:14882770017436aabe4cfa2651a9777f9faa2625bc0f6cdaec362697a8a964c3",
|
||||
"sha256:15bc8cddffe3a9181572c6bcdf45b145691fff1b5712767e7d7a6ef5d32f424f",
|
||||
"sha256:1903a2a6c4463488452e953a49f7e6663cfea9ff5e75b09333cbcc840e727a5b",
|
||||
"sha256:1991348464df42a6bc04601e1241dfa4a9ec4d599338dc64760f2c299e1cb996",
|
||||
"sha256:1dee18c683a0603445ff9e77ffc39f1a3997f43ee07ae04ac80228fc5565fc4d",
|
||||
"sha256:26d6e9a6431626c20821d0165a4c4508acb20a57e4c04ee77c96f01b7fe4c09c",
|
||||
"sha256:39ed69803697f1e1e9f1fb1e0b5a8116c55c130745ecd39485cc6255d3b9f046",
|
||||
"sha256:3ef5a4ced251a501962d1c8797d15978dd97661721e337cbe88d8bcdb9cd0d56",
|
||||
"sha256:3ef700d411b900fcff91f1ef16771bf085a9f9a376d16d8a643e8a20ff6dcb7b",
|
||||
"sha256:3f3de4baf25e960a3048a6ecd0246cedcdfeb462a741d55e9a42e91add5a4a99",
|
||||
"sha256:42702dba0281bcafbcf194770ecb987d60854946071c622777e6d207b3c169bc",
|
||||
"sha256:438b36fbf9446b94325eaeeb1336e2291cd81daeef91b9c728c0946ffbc42ba4",
|
||||
"sha256:4433690ff474fd95a3058085aed5fe12ac4e09d4f4b2b983de35e3a6c899afa0",
|
||||
"sha256:454c2c81d34eb4e1d015acbca0488789c17fc84188e336365eaa31a16c964c04",
|
||||
"sha256:48018c71ce7b2fe80c1eb16b9104d7d04d07567e9333159810a4ae5ef8cdf01f",
|
||||
"sha256:4d4640ab9fd3659378eab2ee6f47c3e04b4a269bf206475652c6d8520a9301cc",
|
||||
"sha256:50497f3d8a1e8d8055c6da1768c98f5b618039e572aacdcccd642704db6077eb",
|
||||
"sha256:50dd20fd10dafd9b697f1c0629285790d86e66946caa2c6a1135f67846d9b495",
|
||||
"sha256:513be18bcf5f27076990dd111f72270d33188653e772023985be92a2c5438382",
|
||||
"sha256:535a2392a0f11f7df80f43e63a5b69c51bb29a10a690e4ae5ad721b9fe50684d",
|
||||
"sha256:55911aba9bae9ad826971d2c80428425625a3dd0c00b94e9bb19361888b983a6",
|
||||
"sha256:609a97626bf310e8cd7c79173e6ed8acab7f01ed4519b7936e998b54b3eb8d31",
|
||||
"sha256:730cc311757153d59bf2bcf06d4026e3c998c1919c06557ad0e382235049b376",
|
||||
"sha256:7378a6fba8a043b3c5fb8cf915044c814ebb2463b0a7137ec09ae0b1b10f5484",
|
||||
"sha256:750b5de7982e568c1bb60388dea1c3abd674d1d579b87ef1b945ba4da53eb5e2",
|
||||
"sha256:76696de39cbbbf976aa85cbd7b1f3ea2d98b3bc9889f6739fdb6cda85a7f05aa",
|
||||
"sha256:89f4c531409ef01aa12b7c15bb489415e219c186725d44bc12a8f279afde3fe2",
|
||||
"sha256:8d928237cf78cfe3b46b608f87e255c45a1e11d04e7dd2c49cb60200cbd6f987",
|
||||
"sha256:8e324436b7f8bbb8e7b3c4593b01d1dce7215befc83a60569ff34a38d6c250ae",
|
||||
"sha256:9163ef45bfebc39838848330cb94f79b563f738c60fc0a20a7f0a30f13ec1573",
|
||||
"sha256:91d2a85a4a134011eb517f2a752f4e488b0a4f6b6ad00ef247f9fac57f9ff4f0",
|
||||
"sha256:933752abc9931cb53eccbd4ab3aedbcd0f1797c0a1b19ed385952e265636b2b6",
|
||||
"sha256:9b8d411a547b47852020242f9c384da35d4c65ccf159ae55a3ba0e50b6220932",
|
||||
"sha256:9eec276e6419de4f93824f9373b28a2a8eaed04f28514000cc6a41b64703d804",
|
||||
"sha256:a06d6ada6bef79aaa550ef37c7d529da60b81c02838d9dd9c5ab788becfc57d4",
|
||||
"sha256:a0c38edcc78556625cbadf48eb87decd5d3c5e82fc4810dd22c19a5498d2329d",
|
||||
"sha256:a23653a18c1d69760a2d8b6793478815cf5dc8c12f3b6e608e50aed49829f0ef",
|
||||
"sha256:a2afa24d06301f4ffcb00244d30df1c12e65cabf30dcb0ba8b871d6b0c54d19e",
|
||||
"sha256:a60840ebd37fe0152b5be50b56e8a958e1430837475311986f867dabad1c7474",
|
||||
"sha256:ab950bbafafe9bf2e0a75b9f17291500fa7794f398834f1f4a71c18dddece130",
|
||||
"sha256:ae6cd6ce16681d345592d74a0a92b25a9530d4055be460af425e654d891cdee4",
|
||||
"sha256:af3d5c74af5ae5d04d597ea61e5e9e0b84e84509e58d1e52aaefbae81cb697bb",
|
||||
"sha256:b131c7c94da56f8f1c59b4540c37c20973119608ec8cf42b3ebb40a94f3afc2c",
|
||||
"sha256:b24133df3d3c57a901f6a63ba3783d6eed1d0561ed1cafd027f0789e76a10615",
|
||||
"sha256:b5f1e598b9b823fb37f2f1baf930bb5f30ae4a3d9b67dfdc63f8f2374f336679",
|
||||
"sha256:bbc0c5b350036ce49a8fd6015a29e4621de725fa99d9e985d3d76b820d44e5a9",
|
||||
"sha256:bd0883e86964cd61360ffc36dbebbc49b928e92a306f886eab02c11dfde5b7aa",
|
||||
"sha256:c942696b541ce6be4e3cc2c963b48671277b38ebd4a28af803b511b2885759b7",
|
||||
"sha256:cc018ce0f1b62df155a5b9c9a81464040a87e97fd9bd05e0febe92568c63e678",
|
||||
"sha256:ccf10d7d0f25a3c5e123c97ffbab8d4b1429a3c25fbd50812010075bd5d844fd",
|
||||
"sha256:d3ce546e54cfafa9dee60b11b7f99b87058d81ab62bd05e366fc5bf6b2c1383a",
|
||||
"sha256:dc49d9c6289df4c7895c85094872ef98ce7f609ba0ecbeb77acdd7f8362cda7d",
|
||||
"sha256:dd0b115c4fab388b1131c89518cdd98db38d88c55cedfffc71de33c92eeee9c6",
|
||||
"sha256:e0c12e5c14eeb5e484c688f2db57ca4a8182d09b40ab69f73147dc32bcdf849d",
|
||||
"sha256:e19695f7b8de8a3b7d940288abedf48dfcfc0cd8d36f360e5b1bc5e1c3f02a72",
|
||||
"sha256:e1b83baa19355c8dd0ec23e725f18450be01bc464ba1f1865cfada03594fa629",
|
||||
"sha256:e2c8f542c5afd36e60237dbbabc95722135047d4c2844b9c4bff74c7177a50a1",
|
||||
"sha256:e4a72f70ad7aa3df8244da55cf21e28b6f0640a8d8e0065dfa7ec477dd2b4ea4",
|
||||
"sha256:ea9f01224c25101c5f2c6dceebd29d1431525637d596241935640e4de0fbb822",
|
||||
"sha256:ed42feff196aaf262db1878d5ac553a3bcef147caf1362e7095f1115b71ae0e1",
|
||||
"sha256:f049a9fdacdbc4e84afcec7a3b14a8309699a7347c95a525d49c4b9a9c353cee",
|
||||
"sha256:f7329e66c6bd9950eb428f225db3982e5f54e53d3d95951da424dce9aa621eae",
|
||||
"sha256:f755fba215ddafa26211e33ac91b48dcebf84ff28590790e5b7711b46fa4095d",
|
||||
"sha256:f86be4e30cf2ffcd67845251c8549d70740cd6eec77bd38d977c4c0640eefc24",
|
||||
"sha256:f898bf0a9613cc8b7f7af6fdcd80cc8e7659787908834c63391f22271fdb1c14",
|
||||
"sha256:fac0dd2f11a165a79e271a04226378a008c83368031c6a9294a6df9cd1c13c05",
|
||||
"sha256:fbbf9858a3043f632c9da2a82e4ce895016dfb401f59ab110900121121ee73b7",
|
||||
"sha256:fddd2ef742f05a18fde1d1c74df12fa6f426945cfb6fefba3fa1c5380e2dd2bf",
|
||||
"sha256:fddd7ddd520661085ffd91f1db74b18e4cf5ed9b6e939aa7d31ca1ea67bc7621",
|
||||
"sha256:ff0e0c3a48c635529a1723d2fea9326da1dacdba5db20be1a4eeaf56580e3949"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2022.4.24"
|
||||
"version": "==2022.7.25"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61",
|
||||
"sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
|
||||
"sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983",
|
||||
"sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
||||
"version": "==2.27.1"
|
||||
"markers": "python_version >= '3.7' and python_version < '4'",
|
||||
"version": "==2.28.1"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
@ -630,50 +689,50 @@
|
||||
},
|
||||
"typing-extensions": {
|
||||
"hashes": [
|
||||
"sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708",
|
||||
"sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376"
|
||||
"sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02",
|
||||
"sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==4.2.0"
|
||||
"version": "==4.3.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
|
||||
"sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
|
||||
"sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc",
|
||||
"sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
|
||||
"version": "==1.26.9"
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'",
|
||||
"version": "==1.26.11"
|
||||
},
|
||||
"watchdog": {
|
||||
"hashes": [
|
||||
"sha256:036ed15f7cd656351bf4e17244447be0a09a61aaa92014332d50719fc5973bc0",
|
||||
"sha256:0c520009b8cce79099237d810aaa19bc920941c268578436b62013b2f0102320",
|
||||
"sha256:0fb60c7d31474b21acba54079ce9ff0136411183e9a591369417cddb1d7d00d7",
|
||||
"sha256:156ec3a94695ea68cfb83454b98754af6e276031ba1ae7ae724dc6bf8973b92a",
|
||||
"sha256:1ae17b6be788fb8e4d8753d8d599de948f0275a232416e16436363c682c6f850",
|
||||
"sha256:1e5d0fdfaa265c29dc12621913a76ae99656cf7587d03950dfeb3595e5a26102",
|
||||
"sha256:24dedcc3ce75e150f2a1d704661f6879764461a481ba15a57dc80543de46021c",
|
||||
"sha256:2962628a8777650703e8f6f2593065884c602df7bae95759b2df267bd89b2ef5",
|
||||
"sha256:47598fe6713fc1fee86b1ca85c9cbe77e9b72d002d6adeab9c3b608f8a5ead10",
|
||||
"sha256:4978db33fc0934c92013ee163a9db158ec216099b69fce5aec790aba704da412",
|
||||
"sha256:5e2e51c53666850c3ecffe9d265fc5d7351db644de17b15e9c685dd3cdcd6f97",
|
||||
"sha256:676263bee67b165f16b05abc52acc7a94feac5b5ab2449b491f1a97638a79277",
|
||||
"sha256:68dbe75e0fa1ba4d73ab3f8e67b21770fbed0651d32ce515cd38919a26873266",
|
||||
"sha256:6d03149126864abd32715d4e9267d2754cede25a69052901399356ad3bc5ecff",
|
||||
"sha256:6ddf67bc9f413791072e3afb466e46cc72c6799ba73dea18439b412e8f2e3257",
|
||||
"sha256:746e4c197ec1083581bb1f64d07d1136accf03437badb5ff8fcb862565c193b2",
|
||||
"sha256:7721ac736170b191c50806f43357407138c6748e4eb3e69b071397f7f7aaeedd",
|
||||
"sha256:88ef3e8640ef0a64b7ad7394b0f23384f58ac19dd759da7eaa9bc04b2898943f",
|
||||
"sha256:aa68d2d9a89d686fae99d28a6edf3b18595e78f5adf4f5c18fbfda549ac0f20c",
|
||||
"sha256:b962de4d7d92ff78fb2dbc6a0cb292a679dea879a0eb5568911484d56545b153",
|
||||
"sha256:ce7376aed3da5fd777483fe5ebc8475a440c6d18f23998024f832134b2938e7b",
|
||||
"sha256:ddde157dc1447d8130cb5b8df102fad845916fe4335e3d3c3f44c16565becbb7",
|
||||
"sha256:efcc8cbc1b43902571b3dce7ef53003f5b97fe4f275fe0489565fc6e2ebe3314",
|
||||
"sha256:f9ee4c6bf3a1b2ed6be90a2d78f3f4bbd8105b6390c04a86eb48ed67bbfa0b0b",
|
||||
"sha256:fed4de6e45a4f16e4046ea00917b4fe1700b97244e5d114f594b4a1b9de6bed8"
|
||||
"sha256:083171652584e1b8829581f965b9b7723ca5f9a2cd7e20271edf264cfd7c1412",
|
||||
"sha256:117ffc6ec261639a0209a3252546b12800670d4bf5f84fbd355957a0595fe654",
|
||||
"sha256:186f6c55abc5e03872ae14c2f294a153ec7292f807af99f57611acc8caa75306",
|
||||
"sha256:195fc70c6e41237362ba720e9aaf394f8178bfc7fa68207f112d108edef1af33",
|
||||
"sha256:226b3c6c468ce72051a4c15a4cc2ef317c32590d82ba0b330403cafd98a62cfd",
|
||||
"sha256:247dcf1df956daa24828bfea5a138d0e7a7c98b1a47cf1fa5b0c3c16241fcbb7",
|
||||
"sha256:255bb5758f7e89b1a13c05a5bceccec2219f8995a3a4c4d6968fe1de6a3b2892",
|
||||
"sha256:43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609",
|
||||
"sha256:4f4e1c4aa54fb86316a62a87b3378c025e228178d55481d30d857c6c438897d6",
|
||||
"sha256:5952135968519e2447a01875a6f5fc8c03190b24d14ee52b0f4b1682259520b1",
|
||||
"sha256:64a27aed691408a6abd83394b38503e8176f69031ca25d64131d8d640a307591",
|
||||
"sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d",
|
||||
"sha256:70af927aa1613ded6a68089a9262a009fbdf819f46d09c1a908d4b36e1ba2b2d",
|
||||
"sha256:7a833211f49143c3d336729b0020ffd1274078e94b0ae42e22f596999f50279c",
|
||||
"sha256:8250546a98388cbc00c3ee3cc5cf96799b5a595270dfcfa855491a64b86ef8c3",
|
||||
"sha256:97f9752208f5154e9e7b76acc8c4f5a58801b338de2af14e7e181ee3b28a5d39",
|
||||
"sha256:9f05a5f7c12452f6a27203f76779ae3f46fa30f1dd833037ea8cbc2887c60213",
|
||||
"sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330",
|
||||
"sha256:ad576a565260d8f99d97f2e64b0f97a48228317095908568a9d5c786c829d428",
|
||||
"sha256:b530ae007a5f5d50b7fbba96634c7ee21abec70dc3e7f0233339c81943848dc1",
|
||||
"sha256:bfc4d351e6348d6ec51df007432e6fe80adb53fd41183716017026af03427846",
|
||||
"sha256:d3dda00aca282b26194bdd0adec21e4c21e916956d972369359ba63ade616153",
|
||||
"sha256:d9820fe47c20c13e3c9dd544d3706a2a26c02b2b43c993b62fcd8011bcc0adb3",
|
||||
"sha256:ed80a1628cee19f5cfc6bb74e173f1b4189eb532e705e2a13e3250312a62e0c9",
|
||||
"sha256:ee3e38a6cc050a8830089f79cbec8a3878ec2fe5160cdb2dc8ccb6def8552658"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.1.8"
|
||||
"version": "==2.1.9"
|
||||
},
|
||||
"webencodings": {
|
||||
"hashes": [
|
||||
@ -684,11 +743,11 @@
|
||||
},
|
||||
"zipp": {
|
||||
"hashes": [
|
||||
"sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad",
|
||||
"sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"
|
||||
"sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2",
|
||||
"sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.8.0"
|
||||
"version": "==3.8.1"
|
||||
}
|
||||
},
|
||||
"develop": {
|
||||
|
22
README.md
@ -58,6 +58,14 @@ Our current list of team members can be found [here](https://github.com/orgs/pri
|
||||
- Browse our [open issues](https://github.com/privacyguides/privacyguides.org/issues) to see what needs to be updated
|
||||
- View some contribution tips on our [contributor's wiki](https://github.com/privacyguides/privacyguides.org/wiki)
|
||||
|
||||
### Blog
|
||||
|
||||
We aspire to publish the best articles about privacy on the net. From hot-takes to long-form essays, we are looking for stylish and well-written pieces.
|
||||
|
||||
This not a place for sponsored content or SEO-obsessed posts. Please do **not** pitch us this, as we don't take kindly to it and your email will be blocked. *Caveat scriptor.*
|
||||
|
||||
Submit stories or requests to: `freddy@privacyguides.org`
|
||||
|
||||
## Mirrors
|
||||
|
||||
[](https://github.com/privacyguides/privacyguides.org)
|
||||
@ -74,7 +82,7 @@ This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/mkdoc
|
||||
- `git submodule init`
|
||||
- `git submodule update docs/assets/brand`
|
||||
2. Install [Python 3.6+](https://www.python.org/downloads/)
|
||||
3. Install [dependencies](/Pipfile): `pip install mkdocs mkdocs-material mkdocs-static-i18n mkdocs-git-revision-date-localized-plugin mkdocs-minify-plugin typing-extensions`
|
||||
3. Install [dependencies](/Pipfile): `pip install mkdocs mkdocs-material mkdocs-static-i18n typing-extensions`
|
||||
4. Serve the site locally: `mkdocs serve`
|
||||
- The site will be available at `http://localhost:8000`
|
||||
- You can build the site locally with `mkdocs build`
|
||||
@ -83,10 +91,10 @@ This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/mkdoc
|
||||
**Team members** should clone the repository with `mkdocs-material-insiders` directly. This method is identical to production:
|
||||
|
||||
1. Clone this repository and submodules: `git clone --recurse-submodules https://github.com/privacyguides/privacyguides.org.git`
|
||||
2. Install [Python 3.6+](https://www.python.org/downloads/)
|
||||
2. Install Python **3.7**
|
||||
3. Install **pipenv**: `pip install pipenv`
|
||||
4. Install dependencies: `pipenv install --dev`
|
||||
5. Serve the site locally: `pipenv run mkdocs serve`
|
||||
5. Serve the site locally: `pipenv run mkdocs serve --config-file mkdocs.production.yml`
|
||||
- The site will be available at `http://localhost:8000`
|
||||
- You can build the site locally with `pipenv run mkdocs build`
|
||||
- This version of the site should be identical to the live, production version
|
||||
@ -95,12 +103,12 @@ This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/mkdoc
|
||||
|
||||
1. Create a new tag: `git tag -s v2.X.X -m 'Some message'`
|
||||
- [View existing tags](https://github.com/privacyguides/privacyguides.org/tags)
|
||||
- Tag [numbering](https://semver.org/): Increment the MINOR (2nd) number when making significant changes (adding/deleting pages, etc.), increment the PATCH (3rd) number when making minor changes (typos, bug fixes). Probably leave the MAJOR number at 2 until a massive redesign (v1 -> v2 was the Jekyll to MkDocs transition).
|
||||
- Tag [numbering](https://semver.org/): Increment the MINOR (2nd) number when making significant changes (adding/deleting pages, etc.), increment the PATCH (3rd) number when making minor changes (typos, bug fixes). Probably leave the MAJOR number at 2 until a massive revamp (v1 -> v2 was the Jekyll to MkDocs transition).
|
||||
2. Push the tag to GitHub: `git push --tags`
|
||||
3. [Create a new release](https://github.com/privacyguides/privacyguides.org/releases/new) selecting the new tag
|
||||
- Title the release the same as the tag version number without the `v`, i.e. `2.X.X`
|
||||
- For more significant releases, add a **short** title, for example [2.3.0 - Localization Support](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.3.0) or [2.2.0 - Removing Social Networks](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.2.0)
|
||||
- Title the release the same as the tag version number, i.e. `v2.X.X`
|
||||
- For more significant releases, add a **short** title, for example [v2.3.0 - Localization Support](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.3.0) or [v2.2.0 - Removing Social Networks](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.2.0)
|
||||
- GitHub should let you auto-generate release notes based on PR titles
|
||||
- Mark more significant changes in bold, see [2.3.0](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.3.0) for example
|
||||
- Mark more significant changes in bold, see [v2.12.0](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.12.0) for example
|
||||
4. Publish release, it will be deployed to the live site automatically
|
||||
- When publishing more significant releases (generally any with a MINOR version increment) check the "Create a discussion for this release" box to post an announcement
|
||||
|
@ -42,4 +42,4 @@ Privacy Guides is a **non-profit** organization. We use donations for a variety
|
||||
|
||||
: We occasionally purchase products and services for the purposes of testing our [recommended tools](../tools.md).
|
||||
|
||||
We are still working with our fiscal host (the Open Collective Foundation) to receive cryptocurrency donations, at the moment the accounting is unfeasible for many smaller transactions, but this should change in the future. In the meantime, if you wish to make a sizable (> $100) cryptocurrency donation please reach out to [jonah@privacyguides.org](mailto:jonah@privacyguides.org).
|
||||
We are still working with our fiscal host (the Open Collective Foundation) to receive cryptocurrency donations, at the moment the accounting is unfeasible for many smaller transactions, but this should change in the future. In the meantime, if you wish to make a sizable (> $100) cryptocurrency donation, please reach out to [jonah@privacyguides.org](mailto:jonah@privacyguides.org).
|
||||
|
@ -20,7 +20,7 @@ Unless otherwise noted, all content on this website is made freely available und
|
||||
|
||||
This does not include third-party code embedded in this repository, or code where a superseding license is otherwise noted. The following are notable examples, but this list may not be all-inclusive:
|
||||
|
||||
* [MathJax](https://github.com/privacyguides/privacyguides.org/blob/main/docs/javascripts/mathjax.js) is licensed under the [Apache License 2.0](https://github.com/privacyguides/privacyguides.org/blob/main/docs/javascripts/LICENSE.mathjax.txt).
|
||||
* [MathJax](https://github.com/privacyguides/privacyguides.org/blob/main/docs/assets/javascripts/mathjax.js) is licensed under the [Apache License 2.0](https://github.com/privacyguides/privacyguides.org/blob/main/docs/assets/javascripts/LICENSE.mathjax.txt).
|
||||
|
||||
Portions of this notice itself were adopted from [opensource.guide](https://github.com/github/opensource.guide/blob/master/notices.md) on GitHub. That resource and this page itself are released under [CC-BY-4.0](https://github.com/github/opensource.guide/blob/master/LICENSE).
|
||||
|
||||
|
@ -23,7 +23,7 @@ Once you have your boot media, enter your system's UEFI settings and boot from t
|
||||
|
||||
### Flash Storage
|
||||
|
||||
For [flash memory](https://en.wikipedia.org/wiki/Flash_memory) (SSD, NVMe etc) devices we suggest the ATA Secure Erase command. Methods such as `nwipe` should not be used on flash storage devices as it may damage their performance. The "Secure Erase" feature is often accessible through the UEFI setup menu.
|
||||
For [flash memory](https://en.wikipedia.org/wiki/Flash_memory) (SSD, NVMe, etc) devices we suggest the ATA Secure Erase command. Methods such as `nwipe` should not be used on flash storage devices as it may damage their performance. The "Secure Erase" feature is often accessible through the UEFI setup menu.
|
||||
|
||||
It is also possible to complete a Secure Erase using the [`hdparm`](https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase) command, or [Microsoft Secure Group Commands](https://docs.microsoft.com/en-us/windows-hardware/drivers/storage/security-group-commands).
|
||||
|
||||
@ -34,5 +34,3 @@ Physical destruction may be necessary to securely erase devices such as memory c
|
||||
Securely shredding **individual files** is difficult if not impossible. Copies can exist in a variety of ways such as through manual, or automatic backups, [wear leveling](https://en.wikipedia.org/wiki/Wear_leveling) (on modern [flash storage](https://en.wikipedia.org/wiki/Solid-state_drive)), caching and filesystem [journaling](https://en.wikipedia.org/wiki/Journaling_file_system).
|
||||
|
||||
Wear leveled devices do not guarantee a fixed relationship between [logical blocks addressed](https://en.wikipedia.org/wiki/Logical_block_addressing) through the interface. This means that the physical locations in which the data is stored may be different to where it is actually located, so shredding may not provide adequate security.
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
@ -7,7 +7,7 @@ When sharing files, it's important to remove associated metadata. Image files co
|
||||
|
||||
While there are plenty of metadata removal tools, they typically aren't convenient to use. The guides featured here aim to detail how to integrate metadata removal tools in a simple fashion by utilizing easy-to-access system features.
|
||||
|
||||
- [Recommended metadata removal tools :material-arrow-right:](../metadata-removal-tools.md)
|
||||
- [Recommended metadata removal tools :hero-arrow-circle-right-fill:](../metadata-removal-tools.md)
|
||||
|
||||
## macOS
|
||||
|
||||
@ -65,7 +65,7 @@ Shortcuts is quite intuitive to work with, so if you don't like the behavior dem
|
||||

|
||||
|
||||
!!! tip "Worth Mentioning"
|
||||
The open source [ImageOptim](https://imageoptim.com/mac) app integrates into Finder's *Services* context menu by default. While it is primarily an image optimization app, it also removes metadata.
|
||||
The open-source [ImageOptim](https://imageoptim.com/mac) app integrates into Finder's *Services* context menu by default. While it is primarily an image optimization app, it also removes metadata.
|
||||
|
||||
### Enabling & using the Shortcut
|
||||
|
||||
@ -78,7 +78,7 @@ Shortcuts is quite intuitive to work with, so if you don't like the behavior dem
|
||||
|
||||
[Shortcuts](https://support.apple.com/guide/shortcuts/welcome/ios) can be made accessible through the system Share Sheet, making accessing those shortcuts very convenient. This guide will show you how to build a metadata removal shortcut and integrate it into the system *Share Sheet*.
|
||||
|
||||
!!! attention
|
||||
!!! warning
|
||||
This method of metadata removal is not as comprehensive at removing metadata as utilities like [ExifTool](../metadata-removal-tools.md#exiftool) and [mat2](../metadata-removal-tools.md#mat2) are.
|
||||
|
||||
The lack of *good* metadata removal apps on the App Store is what makes this solution worthwhile.
|
||||
@ -160,5 +160,3 @@ Windows allows you to place files in a **SendTo** folder which then appear in th
|
||||
### Using the shortcut
|
||||
|
||||
1. Right click a supported file and choose **ExifTool.bat** within the *Send to* context menu.
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
258
docs/advanced/signal-configuration-hardening.en.md
Normal file
@ -0,0 +1,258 @@
|
||||
---
|
||||
title: "Signal Configuration and Hardening"
|
||||
icon: 'material/chat-processing'
|
||||
---
|
||||
|
||||
[Signal](../real-time-communication.md#signal) is a widely regarded instant messaging service that is not only easy to use but is also private and secure. Signal's strong E2EE implementation and metadata protections provide a level of assurance that only you and your intended recipients are able to read communications.
|
||||
|
||||
This guide details actions you can take to configure and harden Signal in accordance with your [threat model](../basics/threat-modeling.md).
|
||||
|
||||
## Signal Configuration
|
||||
|
||||
### Signal PIN
|
||||
|
||||
When you register for Signal with your phone number, you will be asked to set up a Signal PIN. This PIN can be used to recover your profile, settings, contacts and who you've blocked in case you ever lose or switch devices.
|
||||
|
||||
Additionally, your Signal PIN can also double as a registration lock that prevents others from registering with your number.
|
||||
|
||||
!!! attention "Registration Lock"
|
||||
|
||||
The server will not enforce the registration lock after 7 days of inactivity. After that, someone will be able to reset the PIN at registration and register with your phone number. This will wipe the data stored in your Signal account, as it is encrypted by the PIN, but it won't prevent someone from registering with your number provided that they can receive a text on it.
|
||||
|
||||
If you haven't set up a Signal PIN, or have previously opted out of setting one up, follow these steps on Android/iOS:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Account** > **Signal PIN**
|
||||
- Select **Create new PIN**
|
||||
|
||||
Signal will prompt you to enter a PIN. We suggest using a strong alphanumeric PIN that can be stored in a [password manager](../passwords.md).
|
||||
|
||||
Once you have done that, or if you already have set up a PIN, make sure that **Registration Lock** is also enabled.
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Account** > **Signal PIN**
|
||||
- [x] Turn on **Registration Lock**
|
||||
|
||||
!!! Important
|
||||
|
||||
If you forget the PIN and have enabled a registration lock, you may be locked out of your account for up to 7 days.
|
||||
|
||||
You can learn more about Signal PIN on [Signal's website](https://support.signal.org/hc/en-us/articles/360007059792-Signal-PIN).
|
||||
|
||||
### Safety Numbers
|
||||
|
||||
Safety numbers are a feature in Signal that allows you to ensure that messages are delivered securely between verified devices.
|
||||
|
||||
It is best practice to always compare safety numbers with your contacts. This can be done in a couple of ways:
|
||||
|
||||
- Scanning your contact's QR code while viewing their safety number.
|
||||
- Comparing the safety numbers on both ends, be it visually or audibly.
|
||||
|
||||
!!! Important
|
||||
|
||||
In order for safety numbers to also verify that the intended recipient has access to the device you're verifying, you need a secondary communication channel where you can authenticate the person that is holding the device. For example, an in-person meeting or during a video call.
|
||||
|
||||
To view the safety number for a particular contact, you need to follow these steps within Signal:
|
||||
|
||||
- Go to a chat with a contact.
|
||||
- Select the chat header or :material-dots-vertical: > **View Safety Number**
|
||||
|
||||
Once you've compared the safety numbers on both devices, you can mark that contact as **Verified**.
|
||||
|
||||
A checkmark will appear in the chat header by your contact's name when the safety number is marked as verified. It will remain verified unless the safety number changes or you manually change the verification status.
|
||||
|
||||
After doing that, any time the safety number changes, you'll be notified.
|
||||
|
||||
If the safety number with one of your contacts changes, we recommend asking the contact what happened (if they switched to a new device or re-installed Signal, for example) and verify the safety numbers again.
|
||||
|
||||
For more demanding threat models, you should agree on a protocol with your contacts in advance on what to do in case the safety number ever changes.
|
||||
|
||||
You can learn more about safety numbers on [Signal's website](https://support.signal.org/hc/en-us/articles/360007060632-What-is-a-safety-number-and-why-do-I-see-that-it-changed-).
|
||||
|
||||
### Disappearing Messages
|
||||
|
||||
While communication in Signal is E2EE, the messages are still available on the devices, unless they are manually deleted.
|
||||
|
||||
It is good practice to set up disappearing messages in Signal's settings so that any chats you start will disappear after a specified amount of time has passed.
|
||||
|
||||
On Android/iOS:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Privacy**
|
||||
- Under **Disappearing messages**, select **Default timer for new chats**
|
||||
- Select the desired amount of time and select **Save**
|
||||
|
||||
!!! tip "Override the global default for specific contacts"
|
||||
|
||||
- Go to a chat with a contact
|
||||
- Select :material-dots-vertical: on the top right
|
||||
- Select **Disappearing messages**
|
||||
- Select the desired amount of time and select **Save**
|
||||
|
||||
We recommend setting up a reasonable timer by default, such as one week, and adjusting it per contact as you see fit.
|
||||
|
||||
!!! tip "Snapchat-like Functionality"
|
||||
|
||||
Signal allows you to send "view-once" media that are automatically removed from the conversation after they have been viewed.
|
||||
|
||||
### Disable Link Previews
|
||||
|
||||
Signal offers the ability to retrieve previews of webpages linked within a conversation.
|
||||
|
||||
This means that when you send a link, a request will be sent to that website so that a preview of the website can be displayed alongside the link. Thus, we recommend disabling link previews.
|
||||
|
||||
Your recipient doesn't make any requests unless they open the link on their end.
|
||||
|
||||
On Android/iOS:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Chats**
|
||||
- [ ] Turn off **Generate link previews**
|
||||
|
||||
### Screen Security
|
||||
|
||||
Signal allows you to prevent a preview of the app being shown (i.e., in the app switcher) unless you explicitly open it.
|
||||
|
||||
On Android:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Privacy**
|
||||
- [x] Turn on **Screen Security**
|
||||
|
||||
On iOS:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Privacy**
|
||||
- [x] Turn on **Hide Screen in App Switcher**
|
||||
|
||||
### Screen Lock
|
||||
|
||||
If someone gets a hold of your device while it is unlocked, you run the risk of them being able to open the Signal app and look at your conversations.
|
||||
|
||||
To mitigate this, you can leverage the Screen Lock option to require additional authentication before Signal can be accessed.
|
||||
|
||||
On Android/iOS:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Privacy**
|
||||
- [x] Turn on **Screen Lock**
|
||||
|
||||
### Notification Privacy
|
||||
|
||||
Even when your phone is locked, anyone who can lay eyes on the device can read messages and sender names from your lock screen.
|
||||
|
||||
On Signal, you have the ability to hide message content and sender name, or just the message content itself.
|
||||
|
||||
On Android:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Notifications**
|
||||
- Select **Show**
|
||||
- Select **No name or message** or **Name only** respectively.
|
||||
|
||||
On iOS:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Notifications**
|
||||
- Select **Show**
|
||||
- Select **No name or Content** or **Name Only** respectively.
|
||||
|
||||
### Call Relaying
|
||||
|
||||
Signal allows you to relay all calls (including video calls) through the Signal server to avoid revealing your IP address to your contact. This may reduce call quality.
|
||||
|
||||
On Android/iOS:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Privacy** > **Advanced**
|
||||
- [x] Turn on **Always Relay Calls**
|
||||
|
||||
For incoming calls from people who are not in your Contacts app, the call will be relayed through the Signal server regardless of how you've set it up.
|
||||
|
||||
### Proxy Support
|
||||
|
||||
If Signal is blocked in your country, Signal allows you to set up a proxy to bypass it.
|
||||
|
||||
!!! Warning
|
||||
|
||||
All traffic remains opaque to the proxy operator. However, the censoring party could learn that you are using Signal through a proxy because the app [fails to route all the IP connections to the proxy](https://community.signalusers.org/t/traffic-not-routed-to-tls-proxies-can-expose-users-to-censors/27479).
|
||||
|
||||
You can learn more about Signal's proxy support on their [website](https://support.signal.org/hc/en-us/articles/360056052052-Proxy-Support).
|
||||
|
||||
### Keep Your Signal Call History off iCloud (iOS only)
|
||||
|
||||
Signal allows you to see your call history from your regular phone app. This allows your iOS device to sync your call history with iCloud, including who you spoke to, when, and for how long.
|
||||
|
||||
If you use iCloud and you don’t want to share call history on Signal, confirm it’s turned off:
|
||||
|
||||
- Select :material-dots-vertical: **Settings** > **Privacy**
|
||||
- [ ] Turn off **Show Calls in Recents**
|
||||
|
||||
## Signal Hardening
|
||||
|
||||
### Avoid Linking Your Signal Account to a Desktop Device
|
||||
|
||||
While it may be tempting to link your Signal account to your desktop device for convenience, keep in mind that this extends your trust to an additional and potentially less secure operating system.
|
||||
|
||||
If your threat model calls for it, avoid linking your Signal account to a desktop device to reduce your attack surface.
|
||||
|
||||
### Endpoint Security
|
||||
|
||||
Signal takes security very seriously, however there is only so much an app can do to protect you.
|
||||
|
||||
It is very important to take device security on both ends into account to ensure that your conversations are kept private.
|
||||
|
||||
We recommend an up-to-date [GrapheneOS](/android/#grapheneos) or iOS device.
|
||||
|
||||
### Hardening Signal with Molly on Android
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
|
||||
**Molly** is a security-focused [Signal](../real-time-communication/#signal) fork that aims to provide extensive hardening and anti-forensic features to people who use Signal.
|
||||
|
||||
[:octicons-home-16: Homepage](https://molly.im/){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://signal.org/legal/#privacy-policy){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://github.com/mollyim/mollyim-android/wiki){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/mollyim/mollyim-android){ .card-link title="Source Code" }
|
||||
[:octicons-heart-16:](https://opencollective.com/mollyim){ .card-link title=Contribute }
|
||||
|
||||
??? downloads
|
||||
|
||||
- [:pg-f-droid: F-Droid](https://molly.im/download/fdroid/)
|
||||
- [:fontawesome-brands-github: GitHub](https://github.com/mollyim/mollyim-android/releases)
|
||||
|
||||
Molly offers two variants of the app: **Molly** and **Molly-FOSS**.
|
||||
|
||||
The former is identical to Signal with the addition of Molly's improvements and security features. The latter, Molly-FOSS, removes Google's proprietary code, which is used for some key features (e.g., [FCM](https://en.wikipedia.org/wiki/Firebase_Cloud_Messaging) and Google Maps integration), in an effort to make it fully open-source.
|
||||
|
||||
A comparison of the two versions is available in the [project's repository](https://github.com/mollyim/mollyim-android#readme).
|
||||
|
||||
Both versions of Molly support [reproducible builds](https://github.com/mollyim/mollyim-android/tree/main/reproducible-builds), meaning it's possible to confirm that the compiled APKs match the source code.
|
||||
|
||||
#### Features
|
||||
|
||||
Molly has implemented database encryption at rest, which means that you can encrypt the app's database with a passphrase to ensure that none of its data is accessible without it.
|
||||
|
||||
!!! note
|
||||
|
||||
As long as Molly is locked, you will not receive notifications for any incoming messages or calls until you unlock it again.
|
||||
|
||||
Once enabled, a configurable lock timer can be set, after which point Molly will lock itself if you haven't unlocked your device for that specific time period. Alternatively, you can manually lock the app whenever you want.
|
||||
|
||||
For the database encryption feature to be useful, two conditions must be met:
|
||||
|
||||
1. Molly has to be locked at the time an attacker gains access to the device. This can include a physical attack in which the attacker seizes your device and manages to unlock the device itself, or a remote attack, in which the device is compromised and manages to elevate privileges to root.
|
||||
1. If you become aware that your device has been compromised, you should not unlock Molly's database.
|
||||
|
||||
If both of the above conditions are met, the data within Molly is safe as long as the passphrase is not accessible to the attacker.
|
||||
|
||||
To supplement the database encryption feature, Molly securely wipes your device's RAM once the database is locked to defend against forensic analysis.
|
||||
|
||||
While Molly is running, your data is kept in RAM. When any app closes, its data remains in RAM until another app takes the same physical memory pages. That can take seconds or days, depending on many factors. To prevent anyone from dumping the RAM to disk and extracting your data after Molly is locked, the app overrides all free RAM memory with random data when you lock the database.
|
||||
|
||||
There is also the ability to configure a SOCKS proxy in Molly to route its traffic through the proxy or Tor (via [Orbot](/android/#orbot)). When enabled, all traffic is routed through the proxy and there are no known IP or DNS leaks. When using this feature, [call relaying](#call-relaying) will always be enabled, regardless of the setting.
|
||||
|
||||
Signal adds everyone who you have communicated with to its database. Molly allows you to delete those contacts and stop sharing your profile with them.
|
||||
|
||||
To supplement the feature above, as well as for additional security and to fight spam, Molly offers the ability to block unknown contacts that you've never been in contact with or those that are not in your contact list without you having to manually block them.
|
||||
|
||||
You can find a full list of Molly's [features](https://github.com/mollyim/mollyim-android#features) on the project's repository.
|
||||
|
||||
#### Caveats
|
||||
|
||||
- Molly does not support SMS messages within the app, unlike the official Signal app.
|
||||
- Molly removes Signal's Mobilecoin integration.
|
||||
- Molly is updated every two weeks to include the latest features and bug fixes from Signal. The exception is security issues, that are patched as soon as possible. That said, you should be aware that there might be a slight delay compared to upstream.
|
||||
- By using Molly, you are extending your trust to another party, as you now need to trust the Signal team, as well as the Molly team.
|
@ -5,8 +5,8 @@ icon: 'fontawesome/brands/android'
|
||||
|
||||
These are the Android operating systems, devices, and apps we recommend to maximize your mobile device's security and privacy. We also have additional Android-related information:
|
||||
|
||||
- [General Android Overview and Recommendations :material-arrow-right:](android/overview.md)
|
||||
- [GrapheneOS vs CalyxOS Comparison :material-arrow-right:](android/grapheneos-vs-calyxos.md)
|
||||
- [General Android Overview and Recommendations :hero-arrow-circle-right-fill:](android/overview.md)
|
||||
- [Why we recommend GrapheneOS over CalyxOS :hero-arrow-circle-right-fill:](android/grapheneos-vs-calyxos.md)
|
||||
|
||||
## AOSP Derivatives
|
||||
|
||||
@ -37,24 +37,6 @@ GrapheneOS supports [Sandboxed Google Play](https://grapheneos.org/usage#sandbox
|
||||
|
||||
Google Pixel phones are the only devices that currently meet GrapheneOS's [hardware security requirements](https://grapheneos.org/faq#device-support).
|
||||
|
||||
### CalyxOS
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
|
||||
**CalyxOS** is a system with some privacy features on top of AOSP, including [Datura](https://calyxos.org/docs/tech/datura-details) firewall, [Signal](https://signal.org) integration in the dialer app, and a built in panic button. CalyxOS also comes with firmware updates and signed builds, so verified boot is fully supported.
|
||||
|
||||
[:octicons-home-16: Homepage](https://calyxos.org/){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://calyxinstitute.org/legal/privacy-policy){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://calyxos.org/docs/){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/CalyxOS){ .card-link title="Source Code" }
|
||||
[:octicons-heart-16:](https://members.calyxinstitute.org/donate){ .card-link title=Contribute }
|
||||
|
||||
For people who need Google Play Services, CalyxOS optionally includes [microG](https://microg.org/). CalyxOS also includes alternate location services, [Mozilla](https://location.services.mozilla.com/) and [DejaVu](https://github.com/n76/DejaVu).
|
||||
|
||||
CalyxOS only [supports](https://calyxos.org/docs/guide/device-support/) Google Pixel phones. However, support for the OnePlus 8T/9 and Fairphone 4 is [currently in beta](https://calyxos.org/news/2022/04/01/fairphone4-oneplus8t-oneplus9-test-builds/).
|
||||
|
||||
### DivestOS
|
||||
|
||||
!!! recommendation
|
||||
@ -79,15 +61,17 @@ DivestOS implements some system hardening patches originally developed for Graph
|
||||
|
||||
!!! warning
|
||||
|
||||
DivestOS firmware update [status](https://gitlab.com/divested-mobile/firmware-empty/-/blob/master/STATUS) and quality control varies across the devices it supports. We still recommend GrapheneOS or CalyxOS depending on your device's compatibility. For other devices, DivestOS is a good alternative.
|
||||
DivestOS firmware update [status](https://gitlab.com/divested-mobile/firmware-empty/-/blob/master/STATUS) and quality control varies across the devices it supports. We still recommend GrapheneOS depending on your device's compatibility. For other devices, DivestOS is a good alternative.
|
||||
|
||||
Not all of the supported devices have verified boot, and some perform it better than others.
|
||||
|
||||
## Android Devices
|
||||
|
||||
When purchasing a device, we recommend getting one as new as possible. The software and firmware of mobile devices are only supported for a limited time, so buying new extends that lifespan as much as possible.
|
||||
|
||||
Avoid buying phones from mobile network operators. These often have a **locked bootloader** and do not support [OEM unlocking](https://source.android.com/devices/bootloader/locking_unlocking). These phone variants will prevent you from installing any kind of alternative Android distribution.
|
||||
|
||||
Be very **careful** about buying second hand phones from online marketplaces. Always check the reputation of the seller. If the device is stolen there's a possibility of [IMEI blacklisting](https://www.gsma.com/security/resources/imei-blacklisting/). There is also a risk involved with you being associated with the activity of the previous owner.
|
||||
Be very **careful** about buying second hand phones from online marketplaces. Always check the reputation of the seller. If the device is stolen, there's a possibility of [IMEI blacklisting](https://www.gsma.com/security/resources/imei-blacklisting/). There is also a risk involved with you being associated with the activity of the previous owner.
|
||||
|
||||
A few more tips regarding Android devices and operating system compatibility:
|
||||
|
||||
@ -97,6 +81,8 @@ A few more tips regarding Android devices and operating system compatibility:
|
||||
|
||||
### Google Pixel
|
||||
|
||||
Google Pixel phones are the **only** devices we recommend for purchase. Pixel phones have stronger hardware security than any other Android devices currently on the market, due to proper AVB support for third-party operating systems and Google's custom [Titan](https://security.googleblog.com/2021/10/pixel-6-setting-new-standard-for-mobile.html) security chips acting as the Secure Element.
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
@ -107,7 +93,9 @@ A few more tips regarding Android devices and operating system compatibility:
|
||||
|
||||
[:material-shopping: Store](https://store.google.com/category/phones){ .md-button .md-button--primary }
|
||||
|
||||
Unless you have a need for specific [CalyxOS features](https://calyxos.org/features/) that are unavailable on GrapheneOS, we strongly recommend GrapheneOS over other operating system choices on Pixel devices.
|
||||
Secure Elements like the Titan M2 are more limited than the processor's Trusted Execution Environment used by most other phones as they are only used for secrets storage, hardware attestation, and rate limiting, not for running "trusted" programs. Phones without a Secure Element have to use the TEE for *all* of those functions, resulting in a larger attack surface.
|
||||
|
||||
Google Pixel phones use a TEE OS called Trusty which is [open-source](https://source.android.com/security/trusty#whyTrusty), unlike many other phones.
|
||||
|
||||
The installation of GrapheneOS on a Pixel phone is easy with their [web installer](https://grapheneos.org/install/web). If you don't feel comfortable doing it yourself and are willing to spend a bit of extra money, check out the [NitroPhone](https://shop.nitrokey.com/shop) as they come preloaded with GrapheneOS from the reputable [Nitrokey](https://www.nitrokey.com/about) company.
|
||||
|
||||
@ -118,36 +106,6 @@ A few more tips for purchasing a Google Pixel:
|
||||
- Look at online community bargain sites in your country. These can alert you to good sales.
|
||||
- Google provides a list showing the [support cycle](https://support.google.com/nexus/answer/4457705) for each one of their devices. The price per day for a device can be calculated as: $\text{Cost} \over \text {EOL Date }-\text{ Current Date}$, meaning that the longer use of the device the lower cost per day.
|
||||
|
||||
### Other Devices
|
||||
|
||||
!!! important
|
||||
|
||||
Google Pixel phones are the **only** devices we recommend for purchase. Pixel phones have stronger hardware security than any other Android devices currently on the market, due to proper AVB support for third party operating systems and Google's custom [Titan](https://security.googleblog.com/2021/10/pixel-6-setting-new-standard-for-mobile.html) security chips acting as the Secure Element.
|
||||
|
||||
Secure Elements are more limited than the processor's Trusted Execution Environment used by most other phones as they are only used for secrets storage, hardware attestation and rate limiting but not running "trusted" programs. Phones without a Secure Element have to use the TEE for secrets storage, rate limiting, *and* trusted computing, which results in a larger attack surface.
|
||||
|
||||
The following OEMs are only mentioned as they have phones compatible with the operating systems recommended by us. If you are purchasing a new device, we only recommend purchasing a Google Pixel.
|
||||
|
||||
When purchasing a device, we recommend getting one as new as possible. The software and firmware of mobile devices are only supported for a limited time, so buying new extends that lifespan as much as possible.
|
||||
|
||||
#### OnePlus
|
||||
|
||||
If you are unable to obtain a Google Pixel, recent OnePlus devices are the next best option if you want to run a custom OS without privileged Play Services. OnePlus 8 and later devices will receive 4 years of security updates from their initial launch date. CalyxOS has [experimental support](https://calyxos.org/news/2022/04/01/fairphone4-oneplus8t-oneplus9-test-builds/) for the **OnePlus 8T** and **9**.
|
||||
|
||||
DivestOS has support for most OnePlus devices up to the **OnePlus 7T Pro**, with varying levels of support.
|
||||
|
||||
#### Fairphone
|
||||
|
||||
!!! danger
|
||||
|
||||
The Fairphone 3 and 4 are not secure by default, as the [stock bootloader trusts the public AVB signing key](https://forum.fairphone.com/t/bootloader-avb-keys-used-in-roms-for-fairphone-3-4/83448/11). This breaks verified boot on a stock Fairphone device, as the system will boot alternative Android operating systems such (such as /e/) [without any warning](https://source.android.com/security/verifiedboot/boot-flow#locked-devices-with-custom-root-of-trust) about custom operating system usage.
|
||||
|
||||
This problem is somewhat mitigated when you install a custom operating system such as CalyxOS or DivestOS and trust the developer's signing keys rather than the stock system keys, however a vulnerability in CalyxOS or DivestOS's recovery environments could still potentially allow an attacker to bypass AVB. **To reiterate, you must install a custom operating system with custom boot keys to use Fairphone devices in a secure manner.**
|
||||
|
||||
CalyxOS has [experimental support](https://calyxos.org/news/2022/04/01/fairphone4-oneplus8t-oneplus9-test-builds/) for the **Fairphone 4**. DivestOS has builds available for the **Fairphone 3**.
|
||||
|
||||
Fairphone markets their devices as receiving 6 years of support. However, the SoC (Qualcomm Snapdragon 750G on the Fairphone 4) has a considerably shorter EOL date. This means that firmware security updates from Qualcomm for the Fairphone 4 will end in September 2023, regardless of whether Fairphone continues to release software security updates.
|
||||
|
||||
## General Apps
|
||||
|
||||
### Orbot
|
||||
@ -166,8 +124,8 @@ Fairphone markets their devices as receiving 6 years of support. However, the So
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=org.torproject.android){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://guardianproject.info/fdroid){ .card-link title=F-Droid }
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=org.torproject.android)
|
||||
- [:pg-f-droid: F-Droid](https://guardianproject.info/fdroid)
|
||||
|
||||
Orbot can proxy individual apps if they support SOCKS or HTTP proxying. It can also proxy all your network connections using [VpnService](https://developer.android.com/reference/android/net/VpnService) and can be used with the VPN killswitch in :gear: **Settings** → **Network & internet** → **VPN** → :gear: → **Block connections without VPN**.
|
||||
|
||||
@ -195,12 +153,12 @@ For resistance against traffic analysis attacks, consider enabling *Isolate Dest
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=net.typeblog.shelter){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://f-droid.org/en/packages/net.typeblog.shelter){ .card-link title=F-Droid }
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=net.typeblog.shelter)
|
||||
- [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/net.typeblog.shelter)
|
||||
|
||||
!!! warning
|
||||
|
||||
As CalyxOS includes a device controller, we recommend using their built in work profile instead.
|
||||
As CalyxOS includes a device controller, we recommend using their built-in work profile instead.
|
||||
|
||||
Shelter is recommended over [Insular](https://secure-system.gitlab.io/Insular/) and [Island](https://github.com/oasisfeng/island) as it supports [contact search blocking](https://secure-system.gitlab.io/Insular/faq.html).
|
||||
|
||||
@ -213,7 +171,7 @@ For resistance against traffic analysis attacks, consider enabling *Isolate Dest
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Auditor** is an app which leverages hardware security features to provide device integrity monitoring for [supported devices](https://attestation.app/about#device-support). Currently it works with GrapheneOS and the device's stock operating system.
|
||||
**Auditor** is an app which leverages hardware security features to provide device integrity monitoring for [supported devices](https://attestation.app/about#device-support). Currently, it only works with GrapheneOS and the device's stock operating system.
|
||||
|
||||
[:octicons-home-16: Homepage](https://attestation.app){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://attestation.app/privacy-policy){ .card-link title="Privacy Policy" }
|
||||
@ -223,8 +181,8 @@ For resistance against traffic analysis attacks, consider enabling *Isolate Dest
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=app.attestation.auditor){ .card-link title="Google Play" }
|
||||
[:fontawesome-brands-github:](https://github.com/GrapheneOS/Auditor/releases){ .card-link title=GitHub }
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.attestation.auditor)
|
||||
- [:fontawesome-brands-github: GitHub](https://github.com/GrapheneOS/Auditor/releases)
|
||||
|
||||
Auditor performs attestation and intrusion detection by:
|
||||
|
||||
@ -236,7 +194,7 @@ Auditor performs attestation and intrusion detection by:
|
||||
|
||||
No personally identifiable information is submitted to the attestation service. We recommend that you sign up with an anonymous account and enable remote attestation for continuous monitoring.
|
||||
|
||||
If your [threat model](basics/threat-modeling.md) requires privacy you could consider using Orbot or a VPN to hide your IP address from the attestation service.
|
||||
If your [threat model](basics/threat-modeling.md) requires privacy, you could consider using Orbot or a VPN to hide your IP address from the attestation service.
|
||||
To make sure that your hardware and operating system is genuine, [perform local attestation](https://grapheneos.org/install/web#verifying-installation) immediately after the device has been installed and prior to any internet connection.
|
||||
|
||||
### Secure Camera
|
||||
@ -246,7 +204,7 @@ To make sure that your hardware and operating system is genuine, [perform local
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Secure Camera** is an camera app focused on privacy and security which can capture images, videos, and QR codes. CameraX vendor extensions (Portrait, HDR, Night Sight, Face Retouch, and Auto) are also supported on available devices.
|
||||
**Secure Camera** is a camera app focused on privacy and security which can capture images, videos and QR codes. CameraX vendor extensions (Portrait, HDR, Night Sight, Face Retouch, and Auto) are also supported on available devices.
|
||||
|
||||
[:octicons-repo-16: Repository](https://github.com/GrapheneOS/Camera){ .md-button .md-button--primary }
|
||||
[:octicons-info-16:](https://grapheneos.org/usage#camera){ .card-link title=Documentation}
|
||||
@ -255,8 +213,8 @@ To make sure that your hardware and operating system is genuine, [perform local
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=app.grapheneos.camera.play){ .card-link title="Google Play" }
|
||||
[:fontawesome-brands-github:](https://github.com/GrapheneOS/Camera/releases){ .card-link title=GitHub }
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.camera.play)
|
||||
- [:fontawesome-brands-github: GitHub](https://github.com/GrapheneOS/Camera/releases)
|
||||
|
||||
Main privacy features include:
|
||||
|
||||
@ -287,8 +245,8 @@ Main privacy features include:
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play){ .card-link title="Google Play" }
|
||||
[:fontawesome-brands-github:](https://github.com/GrapheneOS/PdfViewer/releases){ .card-link title=GitHub }
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play)
|
||||
- [:fontawesome-brands-github: GitHub](https://github.com/GrapheneOS/PdfViewer/releases)
|
||||
|
||||
### PrivacyBlur
|
||||
|
||||
@ -305,8 +263,8 @@ Main privacy features include:
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=de.mathema.privacyblur){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://f-droid.org/en/packages/de.mathema.privacyblur/){ .card-link title=F-Droid }
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=de.mathema.privacyblur)
|
||||
- [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/de.mathema.privacyblur/)
|
||||
|
||||
!!! warning
|
||||
|
||||
@ -320,11 +278,11 @@ GrapheneOS's app store is available on [GitHub](https://github.com/GrapheneOS/Ap
|
||||
|
||||
### Aurora Store
|
||||
|
||||
The Google Play Store requires a Google account to login which is not great for privacy. The [Aurora Store](https://auroraoss.com/download/AuroraStore/) (a Google Play Store proxy) does not, and works most of the time.
|
||||
The Google Play Store requires a Google account to login which is not great for privacy. The [Aurora Store](https://auroraoss.com/download/AuroraStore/) (a Google Play Store proxy) does not and works most of the time.
|
||||
|
||||
### F-Droid
|
||||
|
||||
F-Droid is often recommended as an alternative to Google Play, particularly in the privacy community. The option to add third party repositories and not be confined to Google's walled garden has led to its popularity. F-Droid additionally has [reproducible builds](https://f-droid.org/en/docs/Reproducible_Builds/) for some applications, and is dedicated to free and open source software. However, there are problems with the official F-Droid client, their quality control, and how they build, sign and deliver packages, outlined in this [post](https://wonderfall.dev/fdroid-issues/).
|
||||
F-Droid is often recommended as an alternative to Google Play, particularly in the privacy community. The option to add third-party repositories and not be confined to Google's walled garden has led to its popularity. F-Droid additionally has [reproducible builds](https://f-droid.org/en/docs/Reproducible_Builds/) for some applications and is dedicated to free and open-source software. However, there are problems with the official F-Droid client, their quality control, and how they build, sign and deliver packages, outlined in this [post](https://wonderfall.dev/fdroid-issues/).
|
||||
|
||||
Sometimes the official F-Droid repository may fall behind on updates. F-Droid maintainers reuse package IDs while signing apps with their own keys, which is not ideal as it does give the F-Droid team ultimate trust. The Google Play version of some apps may contain unwanted telemetry or lack features that are available in the F-Droid version.
|
||||
|
||||
@ -351,14 +309,14 @@ To mitigate these problems, we recommend [Neo Store](https://github.com/NeoAppli
|
||||
**Neo Store** is a modern F-Droid client made with MaterialUI, forked from [Foxy Droid](https://github.com/kitsunyan/foxy-droid).
|
||||
|
||||
Unlike the official F-Droid client, Neo Store supports seamless updates on Android 12 and above without the need for a privileged extension. If your Android distribution is on Android 12 or above and does not include the [F-Droid privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged/), it is highly recommended that you use Neo Store instead of the official client.
|
||||
|
||||
|
||||
[:octicons-repo-16: Repository](https://github.com/NeoApplications/Neo-Store){ .md-button .md-button--primary }
|
||||
[:octicons-code-16:](https://github.com/NeoApplications/Neo-Store){ .card-link title="Source Code" }
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-android:](https://android.izzysoft.de/repo/apk/com.looker.droidify){ .card-link title="IzzyOnDroid (APK)" }
|
||||
[:fontawesome-brands-github:](https://github.com/NeoApplications/Neo-Store/releases){ .card-link title=GitHub }
|
||||
- [:fontawesome-brands-android: IzzyOnDroid (APK)](https://android.izzysoft.de/repo/apk/com.looker.droidify)
|
||||
- [:fontawesome-brands-github: GitHub](https://github.com/NeoApplications/Neo-Store/releases)
|
||||
|
||||
### Manually with RSS Notifications
|
||||
|
||||
@ -399,5 +357,3 @@ If you download APK files to install manually, you can verify their signature wi
|
||||
Signer #1 certificate SHA-1 digest: 23e108677a2e1b1d6e6b056f3bb951df7ad5570c
|
||||
Signer #1 certificate MD5 digest: dbbcd0cac71bd6fa2102a0297c6e0dd3
|
||||
```
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
|
@ -1,44 +1,57 @@
|
||||
---
|
||||
title: "GrapheneOS vs CalyxOS"
|
||||
title: "Why we recommend GrapheneOS over CalyxOS"
|
||||
icon: 'material/cellphone-cog'
|
||||
---
|
||||
|
||||
GrapheneOS and CalyxOS are commonly compared as similar options for people looking for an alternative Android OS for their Pixel devices. Below are some of the reasons why we recommend GrapheneOS over CalyxOS.
|
||||
|
||||
## Profiles
|
||||
|
||||
CalyxOS includes a device controller app so there is no need to install a third party app like Shelter.
|
||||
CalyxOS includes a device controller app so there is no need to install a third-party app like Shelter.
|
||||
|
||||
GrapheneOS extends the user profile feature, allowing you to end a current session. To do this, select *End Session* which will clear the encryption key from memory. There are plans to add a [cross profile notifications system](https://github.com/GrapheneOS/os-issue-tracker/issues/88) in the future. GrapheneOS plans to introduce nested profile support with better isolation in the future.
|
||||
GrapheneOS extends the user profile feature, allowing you to end a current session. To do this, select *End Session* which will clear the encryption key from memory. GrapheneOS also provides [cross-profile notification forwarding](https://grapheneos.org/features#notification-forwarding). GrapheneOS plans to introduce nested profile support with better isolation in the future.
|
||||
|
||||
## Sandboxed Google Play vs Privileged microG
|
||||
|
||||
When Google Play services are used on GrapheneOS, they run as a user app and are contained within a user or work profile.
|
||||
When Google Play services are used on GrapheneOS, they run as a user app and are contained within a user or work profile. Sandboxed Google Play is confined using the highly restrictive, default [`untrusted_app`](https://source.android.com/security/selinux/concepts) domain provided by [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux). Permissions for apps to use Google Play Services can be revoked at any time.
|
||||
|
||||
Sandboxed Google Play is confined using the highly restrictive, default [`untrusted_app`](https://source.android.com/security/selinux/concepts) domain provided by [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux). Permissions for apps to use Google Play Services can be revoked at any time.
|
||||
microG is a partially open-source re-implementation of Google Play Services.[^1] On CalyxOS, it runs in the highly privileged [`system_app`](https://source.android.com/security/selinux/concepts) SELinux domain like regular Google Play Services, and it uses [signature spoofing](https://github.com/microg/GmsCore/wiki/Signature-Spoofing) to masquerade as Google Play Services. This is less secure than Sandboxed Google Play's approach, which does not need access to sensitive system APIs.
|
||||
|
||||
microG is an open-source re-implementation of Google Play Services. This means it needs to be updated every time Android has a major version update (or the Android API changes). It also needs to run in the highly privileged [`system_app`](https://source.android.com/security/selinux/concepts) SELinux domain like regular Google Play Services, and it requires an operating system that allows [signature spoofing](https://github.com/microg/GmsCore/wiki/Signature-Spoofing), which allows system apps to insecurely masquerade as other apps. This is less secure than Sandboxed Google Play's approach, which does not need access to sensitive system APIs.
|
||||
|
||||
When using Sandboxed Play Services, you have the option to reroute location requests to the Play Services API back to the OS location API which uses satellite based location services. With microG, you have the option to either not use a network location backend at all, *shift trust* to another location backend like Mozilla, or use [DejaVu](https://github.com/n76/DejaVu), a location backend that locally collects and saves RF-based location data to an offline database which can be used when GPS is not available.
|
||||
When using Sandboxed Play Services, you have the option to reroute location requests to the Play Services API back to the OS location API, which uses satellite based location services. With microG, you have the option to choose between different backend location providers, including *shifting trust* to another location backend, like Mozilla; using [DejaVu](https://github.com/n76/DejaVu), a location backend that locally collects and saves RF-based location data to an offline database which can be used when GPS is not available; or to simply not use a network location backend at all.
|
||||
|
||||
Network location providers like Play Services or Mozilla rely the on the MAC addresses of surrounding WiFi access points and Bluetooth devices being submitted for location approximation. Choosing a network location like Mozilla to use with microG provides little to no privacy benefit over Google because you are still submitting the same data and trusting them to not profile you.
|
||||
|
||||
Local RF location backends like DejaVu require that the phone has a working GPS first for the local RF data collected to be useful. This makes them ineffective as location providers, as the job of a location provider is to assist location approximation when satellite based services are not working.
|
||||
Local RF location backends like DejaVu require that the phone has a working GPS first for the local RF data collected to be useful. This makes them less effective as location providers, as the job of a location provider is to assist location approximation when satellite based services are not working.
|
||||
|
||||
If your threat model requires protecting your location or the MAC addresses of nearby devices, rerouting location requests to the OS location API is probably the best option. The benefit brought by microG's custom location backend is minimal at best when compared to Sandboxed Play Services.
|
||||
|
||||
In terms of application compatibility, Sandboxed Google Play outperforms microG due to its support for many services which microG has not yet implemented, like [Google Play Games](https://play.google.com/googleplaygames) and [In-app Billing API](https://android-doc.github.io/google/play/billing/api.html). Authentication using [FIDO](basics/multi-factor-authentication#fido-fast-identity-online) with online services on Android also relies on Play Services, and the feature is not yet implemented in microG.
|
||||
In terms of application compatibility, Sandboxed Google Play on GrapheneOS is always going to be more compatible as it is the same code as what is released by Google. microG is a reimplementation of these services. As a result of that it only supports the various parts that have been reimplemented, meaning some things such as [Google Play Games](https://play.google.com/googleplaygames) and [In-app Billing API](https://android-doc.github.io/google/play/billing/api.html) are not yet supported.
|
||||
|
||||
Larger apps, especially games, require Play Delivery to be installed, which is currently not implemented in microG. Authentication using [FIDO](../basics/multi-factor-authentication.md#fido-fast-identity-online) with online services on Android also relies on Play Services, and does not currently work with microG.
|
||||
|
||||
[^1]: It should be noted that microG still uses proprietary Google binaries for some of its components such as DroidGuard. Push notifications, if enabled, still go through Google's servers just like with Play Services. Outside of default microG setups like on CalyxOS, it is possible to run microG in the unprivileged [`untrusted app`](https://source.android.com/security/selinux/concepts) SELinux domain and without the signature spoofing patch. However, microG's functionality and compatibility, which is already not nearly as broad as Sandboxed Play Services, will greatly diminish.
|
||||
|
||||
## Privileged eSIM Activation Application
|
||||
|
||||
Currently, eSIM activation is tied to a privileged proprietary application by Google. The app has the `READ_PRIVILEGED_PHONE_STATE` permission, giving Google access to your hardware identifiers such as the IMEI.
|
||||
|
||||
On GrapheneOS, the app comes disabled and can be *optionally* enabled by the user after they have installed Sandboxed Play Services.
|
||||
|
||||
On CalyxOS, the app comes installed by default (regardless of whether you choose to have microG or not) and cannot be opted out. This means Google still has access to your hardware identifiers regardless of whether or not you need eSIM activation and can be accessed persistently.
|
||||
|
||||
## Privileged App Extensions
|
||||
|
||||
Android 12 comes with special support for seamless app updates with [third party app stores](https://android-developers.googleblog.com/2020/09/listening-to-developer-feedback-to.html). The popular Free and Open Source Software (FOSS) repository [F-Droid](https://f-droid.org) doesn't implement this feature and requires a [privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged) to be included with the Android distribution in order to have unattended app installation.
|
||||
Android 12 comes with special support for seamless app updates with [third-party app stores](https://android-developers.googleblog.com/2020/09/listening-to-developer-feedback-to.html). The popular Free and Open-Source Software (FOSS) repository [F-Droid](https://f-droid.org) doesn't implement this feature and requires a [privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged) to be included with the Android distribution in order to have unattended app installation.
|
||||
|
||||
GrapheneOS does not include F-Droid, because all updates have to be manually installed, which poses a security risk. However, you can use the [Neo Store](../android.md#neo-store) client for F-Droid which does support seamless (background) app updates in Android 12. GrapheneOS officially recommends [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play) instead. Many FOSS Android apps are also in Google Play but sometimes they are not (like [NewPipe](../video-streaming.md)).
|
||||
|
||||
CalyxOS includes the [privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged), which may lower device security. Seamless app updates should be possible with [Aurora Store](https://auroraoss.com) in Android 12.
|
||||
|
||||
## Additional hardening
|
||||
## Additional Hardening
|
||||
|
||||
GrapheneOS improves upon [AOSP](https://source.android.com/) security with:
|
||||
|
||||
- **Hardened WebView:** Vanadium WebView requires [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) processes on the [WebView](https://developer.android.com/reference/android/webkit/WebView) process and disables legacy [32-bit](https://en.wikipedia.org/wiki/32-bit_computing) processes. It uses hardened compiler options such as [`-fwrapv`](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html) and [`-fstack-protector-strong`](https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Optimize-Options.html), which can help protect against [stack buffer overflows](https://en.wikipedia.org/wiki/Stack_buffer_overflow). [API](https://en.wikipedia.org/wiki/API)s such as the [battery status API](https://chromestatus.com/feature/4537134732017664) are disabled for privacy reasons. All system apps on GrapheneOS use the Vanadium WebView which means that apps which use WebView will also benefit from Vanadium's hardening. The [Vanadium patch set](https://github.com/GrapheneOS/Vanadium/tree/12/patches) is a lot more comprehensive than CalyxOS's [Chromium patch set](https://gitlab.com/CalyxOS/chromium-patches) which is derived from it.
|
||||
- **Hardened WebView:** Vanadium WebView requires [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) processes on the [WebView](https://developer.android.com/reference/android/webkit/WebView) process and disables legacy [32-bit](https://en.wikipedia.org/wiki/32-bit_computing) processes. It uses hardened compiler options such as [`-fwrapv`](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html) and [`-fstack-protector-strong`](https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Optimize-Options.html), which can help protect against [stack buffer overflows](https://en.wikipedia.org/wiki/Stack_buffer_overflow). [API](https://en.wikipedia.org/wiki/API)s such as the [battery status API](https://chromestatus.com/feature/4537134732017664) are disabled for privacy reasons. All system apps on GrapheneOS use the Vanadium WebView which means that apps which use WebView will also benefit from Vanadium's hardening. The [Vanadium patch set](https://github.com/GrapheneOS/Vanadium) is a lot more comprehensive than CalyxOS's [Chromium patch set](https://gitlab.com/CalyxOS/chromium-patches) which is derived from it.
|
||||
- **Hardened Kernel:** GrapheneOS kernel includes some hardening from the [linux-hardened](https://github.com/GrapheneOS/linux-hardened) project and the [Kernel Self Protection Project (KSPP)](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project). CalyxOS uses the [same kernel](https://calyxos.org/docs/development/build/kernel/) as regular Android with some minor modifications.
|
||||
- **Hardened Memory Allocator:** GrapheneOS uses the [hardened malloc](https://github.com/GrapheneOS/hardened_malloc) subproject as its memory allocator. This focuses on hardening against [memory heap corruption](https://en.wikipedia.org/wiki/Memory_corruption). CalyxOS uses the default AOSP [Scudo Malloc](https://source.android.com/devices/tech/debug/scudo), which is generally [less effective](https://twitter.com/danielmicay/status/1033671709197398016). Hardened Malloc has uncovered vulnerabilities in AOSP which have been [fixed](https://github.com/GrapheneOS/platform_system_core/commit/be11b59725aa6118b0e1f0712572e835c3d50746) by GrapheneOS such as [CVE-2021-0703](https://nvd.nist.gov/vuln/detail/CVE-2021-0703).
|
||||
- **Secure Exec Spawning:** GrapheneOS [spawns](https://en.wikipedia.org/wiki/Spawn_(computing)) fresh processes as opposed to using the [Zygote model](https://ayusch.com/android-internals-the-android-os-boot-process) used by AOSP and CalyxOS. The Zygote model weakens [Address Space Layout Randomization](https://en.wikipedia.org/wiki/Address_space_layout_randomization) (ASLR) and is considered [less secure](https://wenke.gtisc.gatech.edu/papers/morula.pdf). Creating [fresh processes](https://grapheneos.org/usage#exec-spawning) is safer but will have some performance penalty when launching a new application. These penalties are not really noticeable unless you have an [old device](https://support.google.com/nexus/answer/4457705) with slow storage such as the Pixel 3a/3a XL as it has [eMMC](https://en.wikipedia.org/wiki/MultiMediaCard#eMMC).
|
||||
|
@ -6,19 +6,19 @@ Android is a secure operating system that has strong [app sandboxing](https://so
|
||||
|
||||
## Choosing an Android Distribution
|
||||
|
||||
When you buy an Android phone, the device's default operating system often comes with invasive integration with apps and services that are not part of the [Android Open Source Project](https://source.android.com/). An example of such is Google Play Services, which has unrevokable privileges to access your files, contacts storage, call logs, SMS messages, location, camera, microphone, hardware identifiers, and so on. These apps and services increase the attack surface of your device and are the source of various privacy concerns with Android.
|
||||
When you buy an Android phone, the device's default operating system often comes with invasive integration with apps and services that are not part of the [Android Open-Source Project](https://source.android.com/). An example of such is Google Play Services, which has irrevocable privileges to access your files, contacts storage, call logs, SMS messages, location, camera, microphone, hardware identifiers, and so on. These apps and services increase the attack surface of your device and are the source of various privacy concerns with Android.
|
||||
|
||||
This problem could be solved by using a custom Android distribution that does not come with such invasive integration. Unfortunately, many custom Android distributions often violate the Android security model by not supporting critical security features such as AVB, rollback protection, firmware updates, and so on. Some distributions also ship [`userdebug`](https://source.android.com/setup/build/building#choose-a-target) builds which expose root via [ADB](https://developer.android.com/studio/command-line/adb) and require [more permissive](https://github.com/LineageOS/android_system_sepolicy/search?q=userdebug&type=code) SELinux policies to accomodate debugging features, resulting in a further increased attack surface and weakened security model.
|
||||
This problem could be solved by using a custom Android distribution that does not come with such invasive integration. Unfortunately, many custom Android distributions often violate the Android security model by not supporting critical security features such as AVB, rollback protection, firmware updates, and so on. Some distributions also ship [`userdebug`](https://source.android.com/setup/build/building#choose-a-target) builds which expose root via [ADB](https://developer.android.com/studio/command-line/adb) and require [more permissive](https://github.com/LineageOS/android_system_sepolicy/search?q=userdebug&type=code) SELinux policies to accommodate debugging features, resulting in a further increased attack surface and weakened security model.
|
||||
|
||||
Ideally, when choosing a custom Android distribution, you should make sure that it upholds the Android security model. At the very least, the distribution should have production builds, support for AVB, rollback protection, timely firmware and operating system updates, and SELinux in [enforcing mode](https://source.android.com/security/selinux/concepts#enforcement_levels). All of our recommended Android distributions satisfy these criteria.
|
||||
|
||||
[Our Android System Recommendations :material-arrow-right:](../android.md){ .md-button }
|
||||
[Our Android System Recommendations :hero-arrow-circle-right-fill:](../android.md){ .md-button }
|
||||
|
||||
## Avoid Rooting
|
||||
|
||||
[Rooting](https://en.wikipedia.org/wiki/Rooting_(Android)) Android phones can decrease security significantly as it weakens the complete [Android security model](https://en.wikipedia.org/wiki/Android_(operating_system)#Security_and_privacy). This can decrease privacy should there be an exploit that is assisted by the decreased security. Common rooting methods involve directly tampering with the boot partition, making it impossible to perform successful Verified Boot. Apps that require root will also modify the system partition meaning that Verified Boot would have to remain disabled. Having root exposed directly in the user interface also increases the [attack surface](https://en.wikipedia.org/wiki/Attack_surface) of your device and may assist in [privilege escalation](https://en.wikipedia.org/wiki/Privilege_escalation) vulnerabilities and SELinux policy bypasses.
|
||||
|
||||
Adblockers which modify the [hosts file](https://en.wikipedia.org/wiki/Hosts_(file)) (AdAway) and firewalls (AFWall+) which require root access persistently are dangerous and should not be used. They are also not the correct way to solve their intended purposes. For Adblocking we suggest encrypted [DNS](../dns.md) or [VPN](../vpn.md) server blocking solutions instead. RethinkDNS, TrackerControl and AdAway in non-root mode will take up the VPN slot (by using a local loopback VPN) preventing you from using privacy enhancing services such as Orbot or a real VPN server.
|
||||
Adblockers, which modify the [hosts file](https://en.wikipedia.org/wiki/Hosts_(file)) (AdAway) and firewalls (AFWall+) which require root access persistently are dangerous and should not be used. They are also not the correct way to solve their intended purposes. For Adblocking we suggest encrypted [DNS](../dns.md) or [VPN](../vpn.md) server blocking solutions instead. RethinkDNS, TrackerControl and AdAway in non-root mode will take up the VPN slot (by using a local loopback VPN) preventing you from using privacy enhancing services such as Orbot or a real VPN server.
|
||||
|
||||
AFWall+ works based on the [packet filtering](https://en.wikipedia.org/wiki/Firewall_(computing)#Packet_filter) approach and may be bypassable in some situations.
|
||||
|
||||
@ -30,33 +30,40 @@ We do not believe that the security sacrifices made by rooting a phone are worth
|
||||
|
||||
Android 10 and above has moved away from full-disk encryption to more flexible [file-based encryption](https://source.android.com/security/encryption/file-based). Your data is encrypted using unique encryption keys, and the operating system files are left unencrypted.
|
||||
|
||||
Verified Boot ensures the integrity of the operating system files, thereby preventing an adversary with physical access from tampering or installing malware on the device. In the unlikely case that malware is able to exploit other parts of the system and gain higher privileged access, Verified Boot will prevent and revert changes to the system partition upon rebooting device.
|
||||
Verified Boot ensures the integrity of the operating system files, thereby preventing an adversary with physical access from tampering or installing malware on the device. In the unlikely case that malware is able to exploit other parts of the system and gain higher privileged access, Verified Boot will prevent and revert changes to the system partition upon rebooting the device.
|
||||
|
||||
Unfortunately, OEMs are only obliged to support Verified Boot on their stock Android distribution. Only a few OEMs such as Google support custom AVB key enrollment on their devices. Additionally, some AOSP derivatives such as LineageOS or /e/ OS do not support Verified Boot even on hardware with Verified Boot support for third party operating systems. We recommend that you check for support **before** purchasing a new device. AOSP derivatives which do not support Verified Boot are **not** recommended.
|
||||
Unfortunately, OEMs are only obliged to support Verified Boot on their stock Android distribution. Only a few OEMs such as Google support custom AVB key enrollment on their devices. Additionally, some AOSP derivatives such as LineageOS or /e/ OS do not support Verified Boot even on hardware with Verified Boot support for third-party operating systems. We recommend that you check for support **before** purchasing a new device. AOSP derivatives which do not support Verified Boot are **not** recommended.
|
||||
|
||||
Many OEMs also have broken implementation of Verified Boot that you have to be aware of beyond their marketing. For example, the Fairphone 3 and 4 are not secure by default, as the [stock bootloader trusts the public AVB signing key](https://forum.fairphone.com/t/bootloader-avb-keys-used-in-roms-for-fairphone-3-4/83448/11). This breaks verified boot on a stock Fairphone device, as the system will boot alternative Android operating systems such (such as /e/) [without any warning](https://source.android.com/security/verifiedboot/boot-flow#locked-devices-with-custom-root-of-trust) about custom operating system usage.
|
||||
|
||||
## Firmware Updates
|
||||
|
||||
Firmware updates are critical for maintaining security and without them your device cannot be secure. OEMs have support agreements with their partners to provide the closed source components for a limited support period. These are detailed in the monthly [Android Security Bulletins](https://source.android.com/security/bulletin).
|
||||
Firmware updates are critical for maintaining security and without them your device cannot be secure. OEMs have support agreements with their partners to provide the closed-source components for a limited support period. These are detailed in the monthly [Android Security Bulletins](https://source.android.com/security/bulletin).
|
||||
|
||||
As the components of the phone such as the processor and radio technologies rely on closed source components, the updates must be provided by the respective manufacturers. Therefore it is important that you purchase a device within an active support cycle. [Qualcomm](https://www.qualcomm.com/news/releases/2020/12/16/qualcomm-and-google-announce-collaboration-extend-android-os-support-and) and [Samsung](https://news.samsung.com/us/samsung-galaxy-security-extending-updates-knox/) support their devices for 4 years, while cheaper products often have shorter support cycles. With the introduction of the [Pixel 6](https://support.google.com/pixelphone/answer/4457705), Google now makes their own SoC and they will provide a minimum of 5 years of support.
|
||||
As the components of the phone, such as the processor and radio technologies rely on closed-source components, the updates must be provided by the respective manufacturers. Therefore, it is important that you purchase a device within an active support cycle. [Qualcomm](https://www.qualcomm.com/news/releases/2020/12/16/qualcomm-and-google-announce-collaboration-extend-android-os-support-and) and [Samsung](https://news.samsung.com/us/samsung-galaxy-security-extending-updates-knox/) support their devices for 4 years, while cheaper products often have shorter support cycles. With the introduction of the [Pixel 6](https://support.google.com/pixelphone/answer/4457705), Google now makes their own SoC and they will provide a minimum of 5 years of support.
|
||||
|
||||
EOL devices which are no longer supported by the SoC manufacturer cannot receive firmware updates from OEM vendors or after market Android distributors. This means that security issues with those devices will remain unfixed.
|
||||
|
||||
Fairphone, for example, markets their devices as receiving 6 years of support. However, the SoC (Qualcomm Snapdragon 750G on the Fairphone 4) has a considerably shorter EOL date. This means that firmware security updates from Qualcomm for the Fairphone 4 will end in September 2023, regardless of whether Fairphone continues to release software security updates.
|
||||
|
||||
## Android Versions
|
||||
|
||||
It's important to not use an [end-of-life](https://endoflife.date/android) version of Android. Newer versions of Android not only receive security updates for the operating system but also important privacy enhancing updates too. For example, [prior to Android 10](https://developer.android.com/about/versions/10/privacy/changes), any apps with the [`READ_PHONE_STATE`](https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE) permission could access sensitive and unique serial numbers of your phone such as [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity), [MEID](https://en.wikipedia.org/wiki/Mobile_equipment_identifier), your SIM card's [IMSI](https://en.wikipedia.org/wiki/International_mobile_subscriber_identity), whereas now they must be system apps to do so. System apps are only provided by the OEM or Android distribution.
|
||||
|
||||
## Android Permissions
|
||||
|
||||
[Permissions on Android](https://developer.android.com/guide/topics/permissions/overview) grant you control over what apps are allowed to access. Google regularly makes [improvements](https://developer.android.com/about/versions/11/privacy/permissions) on the permission system in each successive version. All apps you install are strictly [sandboxed](https://source.android.com/security/app-sandbox), therefore there is no need to install any antivirus apps. The savings you make from not purchasing or subscribing to security apps is better spent on paying for a supported device in the future.
|
||||
[Permissions on Android](https://developer.android.com/guide/topics/permissions/overview) grant you control over what apps are allowed to access. Google regularly makes [improvements](https://developer.android.com/about/versions/11/privacy/permissions) on the permission system in each successive version. All apps you install are strictly [sandboxed](https://source.android.com/security/app-sandbox), therefore, there is no need to install any antivirus apps. A smartphone with the latest version of Android will always be more secure than an old smartphone with an antivirus that you have paid for. It's better not to pay for antivirus software and to save money to buy a new smartphone such as a Google Pixel.
|
||||
|
||||
Should you want to run an app that you're unsure about, consider using a user or work [profile](android/#android-security-privacy).
|
||||
Should you want to run an app that you're unsure about, consider using a user or work profile.
|
||||
|
||||
## Media Access
|
||||
Quite a few applications allows you to "share" a file with them for media upload. If you want to, for example, tweet a picture to Twitter, do not grant Twitter access to your "media and photos", because it will have access to all of your pictures then. Instead, go to your file manager (documentsUI), hold onto the picture, then share it with Twitter.
|
||||
|
||||
## User Profiles
|
||||
|
||||
Multiple user profiles can be found in **Settings** → **System** → **Multiple users** and are the simplest way to isolate in Android.
|
||||
|
||||
With user profiles, you can impose restrictions on a specific profile, such as: making calls, using SMS, or installing apps on the device. Each profile is encrypted using its own encryption key and cannot access the data of any other profiles. Even the device owner cannot view the data of other profiles without knowing their password. Multiple user profiles is a more secure method of isolation.
|
||||
With user profiles, you can impose restrictions on a specific profile, such as: making calls, using SMS, or installing apps on the device. Each profile is encrypted using its own encryption key and cannot access the data of any other profiles. Even the device owner cannot view the data of other profiles without knowing their password. Multiple user profiles are a more secure method of isolation.
|
||||
|
||||
## Work Profile
|
||||
|
||||
@ -70,7 +77,7 @@ This method is generally less secure than a secondary user profile; however, it
|
||||
|
||||
## VPN Killswitch
|
||||
|
||||
Android 7 and above supports a VPN killswitch and it is available without the need to install third party apps. This feature can prevent leaks if the VPN is disconnected. It can be found in (:gear: **Settings** → **Network & internet** → **VPN** → :gear: → **Block connections without VPN**).
|
||||
Android 7 and above supports a VPN killswitch and it is available without the need to install third-party apps. This feature can prevent leaks if the VPN is disconnected. It can be found in :gear: **Settings** → **Network & internet** → **VPN** → :gear: → **Block connections without VPN**.
|
||||
|
||||
## Global Toggles
|
||||
|
||||
@ -86,8 +93,8 @@ If you have a Google account we suggest enrolling in the [Advanced Protection Pr
|
||||
|
||||
The Advanced Protection Program provides enhanced threat monitoring and enables:
|
||||
|
||||
- Stricter two factor authentication; e.g. that [FIDO](../basics/multi-factor-authentication.md#fido-fast-identity-online) **must** be used and disallows the use of [SMS OTPs](../basics/multi-factor-authentication.md#sms-or-email-mfa), [TOTP](../basics/multi-factor-authentication.md#time-based-one-time-password-totp), and [OAuth](https://en.wikipedia.org/wiki/OAuth)
|
||||
- Only Google and verified third party apps can access account data
|
||||
- Stricter two factor authentication; e.g. that [FIDO](../basics/multi-factor-authentication.md#fido-fast-identity-online) **must** be used and disallows the use of [SMS OTPs](../basics/multi-factor-authentication.md#sms-or-email-mfa), [TOTP](../basics/multi-factor-authentication.md#time-based-one-time-password-totp) and [OAuth](https://en.wikipedia.org/wiki/OAuth)
|
||||
- Only Google and verified third-party apps can access account data
|
||||
- Scanning of incoming emails on Gmail accounts for [phishing](https://en.wikipedia.org/wiki/Phishing#Email_phishing) attempts
|
||||
- Stricter [safe browser scanning](https://www.google.com/chrome/privacy/whitepaper.html#malware) with Google Chrome
|
||||
- Stricter recovery process for accounts with lost credentials
|
||||
@ -119,8 +126,6 @@ You will either be given the option to delete your advertising ID or to *Opt out
|
||||
|
||||
### SafetyNet and Play Integrity API
|
||||
|
||||
[SafetyNet](https://developer.android.com/training/safetynet/attestation) and the [Play Integrity APIs](https://developer.android.com/google/play/integrity) are generally used for [banking apps](https://grapheneos.org/usage#banking-apps). Many banking apps will work fine in GrapheneOS with sandboxed Play services, however some non-financal apps have their own crude anti-tampering mechanisms which might fail. GrapheneOS passes the `basicIntegrity` check, but not the certification check `ctsProfileMatch`. Devices with Android 8 or later have hardware attestation support which cannot be bypassed without leaked keys or serious vulnerabilities.
|
||||
[SafetyNet](https://developer.android.com/training/safetynet/attestation) and the [Play Integrity APIs](https://developer.android.com/google/play/integrity) are generally used for [banking apps](https://grapheneos.org/usage#banking-apps). Many banking apps will work fine in GrapheneOS with sandboxed Play services, however some non-financial apps have their own crude anti-tampering mechanisms which might fail. GrapheneOS passes the `basicIntegrity` check, but not the certification check `ctsProfileMatch`. Devices with Android 8 or later have hardware attestation support which cannot be bypassed without leaked keys or serious vulnerabilities.
|
||||
|
||||
As for Google Wallet, we don't recommend this due to their [privacy policy](https://payments.google.com/payments/apis-secure/get_legal_document?ldo=0&ldt=privacynotice&ldl=en), which states you must opt-out if you don't want your credit rating and personal information shared with affiliate marketing services.
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
|
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.43429 0 0 .43429 -102.24 -35.595)" stroke-width=".26458"><path d="m313.4 119.93c-7.7343 13.52-22.298 22.631-38.991 22.631-16.692 0-31.256-9.1114-38.991-22.631 7.7346-13.521 22.299-22.632 38.991-22.632 16.693 0 31.257 9.1115 38.991 22.632" fill="#9acc01"/><path d="m298.61 144.6-6.8334-12.569c2.364-3.4422 3.7478-7.6102 3.7478-12.101 0-11.819-9.5811-21.4-21.4-21.4-11.819 0-21.4 9.5806-21.4 21.4 0 11.819 9.5811 21.4 21.4 21.4 4.4736 0 8.6265-1.3727 12.061-3.7206l12.422 6.9937z" fill="#231f20"/><path d="m284.91 125.24c0 5.7915-4.7106 10.502-10.502 10.502-5.7915 0-10.502-4.7106-10.502-10.502v-12.917c0-0.80301 0.65352-1.456 1.4565-1.456 0.80275 0 1.456 0.65299 1.456 1.456v7.8192c0 0.4236 0.34263 0.76623 0.76702 0.76623 8e-3 0 0.0167-2e-3 0.0257-2e-3s0.0164 2e-3 0.0251 2e-3c0.4236 0 0.7665-0.34263 0.7665-0.76623v-11.856c0-0.80354 0.65299-1.4571 1.4565-1.4571s1.4565 0.65352 1.4565 1.4571v11.166c0 0.42387 0.34343 0.76624 0.76677 0.76624 0.42254 0 0.76623-0.34264 0.76623-0.76624v-13.875c0-0.80301 0.65378-1.4555 1.4563-1.4555 0.80354 0 1.4568 0.65246 1.4568 1.4555v13.773c0 0.42413 0.34317 0.76703 0.7665 0.76703 0.42307 0 0.7665-0.34317 0.7665-0.76703v-11.37c0-0.80327 0.65352-1.4565 1.4565-1.4565 0.80327 0 1.456 0.65352 1.456 1.4565v14.555c-1.7436 0.16219-5.8518 1.0464-7.543 5.7222-0.14366 0.39793 0.0622 0.83767 0.46038 0.9824 0.0857 0.031 0.1741 0.0455 0.26009 0.0455 0.31379 0 0.60748-0.19474 0.72125-0.50536 1.7732-4.903 6.6273-4.7546 6.8313-4.7464l0.80354 0.0386v-8.0939c0-0.80301 0.7112-1.4565 1.5843-1.4565 0.87392 0 1.5841 0.65352 1.5841 1.4565v9.2625zm-1.5841-12.253c-0.57864 0-1.1192 0.15557-1.5843 0.41963v-5.4277c0-1.6486-1.3409-2.9901-2.9895-2.9901-0.53314 0-1.0327 0.14261-1.4666 0.38761-0.10398-1.555-1.3991-2.789-2.98-2.789-1.6484 0-2.9893 1.3409-2.9893 2.989v0.10001c-0.4318-0.2413-0.92763-0.381-1.4565-0.381-1.6481 0-2.9893 1.3409-2.9893 2.9901v1.4594c-0.44344-0.26035-0.95752-0.41222-1.5079-0.41222-1.6486 0-2.99 1.3404-2.99 2.9893v12.917c0 6.636 5.3991 12.035 12.036 12.035 6.636 0 12.035-5.3991 12.035-12.035v-9.2631c0-1.6484-1.3981-2.9893-3.1171-2.9893" fill="#9acc01"/></g></svg>
|
Before Width: | Height: | Size: 2.2 KiB |
@ -1,2 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.33952 0 0 .33952 .19935 -2.3417e-7)" fill="none"><path d="m49.287 0c-15.406 0-33.988 3.5766-49.287 11.449 0 17.002-0.21115 59.36 49.287 88.301 49.499-28.941 49.289-71.299 49.289-88.301-15.299-7.8723-33.882-11.449-49.289-11.449z" fill="#68bc71"/><path d="m49.236 99.721c-49.447-28.941-49.236-71.275-49.236-88.272 15.282-7.8638 33.841-11.441 49.236-11.449z" fill="#67b279"/><path d="m47.489 66.556 29.805-39.658c-2.184-1.7283-4.0997-0.50849-5.1543 0.43585l-0.03848 3e-3 -24.851 25.522-9.3632-11.124c-4.4668-5.095-10.539-1.2087-11.958-0.1816l21.56 25.003" fill="#fff"/></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33.867 33.867"><g fill="none"><path fill="#68bc71" d="M16.933 0C11.703 0 5.393 1.214.2 3.887c0 5.773-.071 20.154 16.734 29.98C33.74 24.041 33.668 9.66 33.668 3.887 28.474 1.214 22.164 0 16.933 0z"/><path fill="#67b279" d="M16.916 33.857C.128 24.031.199 9.658.199 3.887 5.388 1.217 11.69.003 16.916 0z"/><path fill="#fff" d="m16.323 22.597 10.12-13.465c-.742-.586-1.393-.172-1.75.148l-.014.001-8.437 8.666-3.18-3.777c-1.516-1.73-3.577-.41-4.06-.062l7.32 8.49"/></g></svg>
|
Before Width: | Height: | Size: 745 B After Width: | Height: | Size: 523 B |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(1.9999 0 0 1.9999 -.00028793 -560.11)"><g transform="matrix(.1411 0 0 .1411 -22.448 274.09)"><g transform="matrix(6.5975,0,0,6.5975,-881.57,-908.75)"><path d="m166.76 148.57v2.8e-4c-0.0731 1e-3 -0.14646 3e-3 -0.21965 6e-3 -2.0814 0.0983-3.9695 1.2488-5.0113 3.0532-0.27591 0.47789-0.47972 0.97776-0.61543 1.4866 1.8658 0.19779 3.5534 0.93382 4.9049 2.0531 2.7603 1.8081 5.5017 1.1662 7.0499 0.51897 0.40336-2.4423-0.70912-4.988-2.9792-6.2988-0.95179-0.54962-2.0328-0.83212-3.1292-0.81971z" fill="#d0f6ed" stroke-width=".14568"/><path d="m166.59 152.15c-1.5641 9.9e-4 -2.9951 0.51259-3.7051 1.324 0.94324 0.3021 1.8146 0.75292 2.5877 1.3259-1.2e-4 -3.9e-4 -1.6e-4 -1e-3 -2.9e-4 -1e-3 1.3493-0.74086 3.1114-1.2154 4.6422-1.5091-0.75982-0.70753-2.0913-1.1376-3.5245-1.1388v-5.6e-4z" fill="#4de564" stroke-width=".27973"/><path d="m172.56 152.93c-1.6055 0.16301-4.8923 0.66396-7.0864 1.8687 0.12815 0.095 0.25361 0.19321 0.37621 0.29474 2.6929 1.7639 5.3671 1.1376 6.8778 0.50616 0.14847-0.89893 0.0864-1.8121-0.16739-2.6696z" fill="#06c23c" stroke-width=".38858"/><path d="m170.2 144.17c-0.297-8e-3 -0.58809 0.14301-0.74764 0.41937l-0.15266 0.26436c-0.23207 0.40197-0.0953 0.91236 0.30665 1.1444l0.0712 0.0411-0.6784 1.175c-0.68491-0.19996-1.3964-0.30489-2.1144-0.30964l-3e-4 -2.9e-4c-0.13829-9.1e-4 -0.27683 2e-3 -0.41545 8e-3 -2.6278 0.12414-5.0122 1.5767-6.3272 3.8551-2.1338 3.6958-0.86761 8.4218 2.8282 10.556 3.696 2.1338 8.4218 0.86727 10.556-2.8288 1.8213-3.155 1.1646-7.0602-1.3656-9.463l0.67518-1.1694 0.0706 0.0407c0.40198 0.23207 0.91244 0.0953 1.1445-0.30665l0.15259-0.26436c0.23207-0.40197 0.0953-0.91243-0.30665-1.1445l-3.2996-1.905c-0.12562-0.0725-0.26181-0.10907-0.3968-0.11272zm-3.434 4.6336c1.0696-0.0121 2.1243 0.26346 3.0528 0.79964 2.2146 1.2787 3.1576 3.6198 2.7641 6.0024-1.5104 0.63142-4.0427 1.1156-6.7355-0.6483-1.3185-1.0919-2.8225-1.6679-4.6427-1.8609 0.13239-0.49643 0.33106-0.98387 0.60022-1.4501 1.0163-1.7604 2.7165-2.7406 4.7469-2.8365 0.0714-3e-3 0.14275-5e-3 0.21406-6e-3z" fill="#25935e" stroke-width=".28021"/></g></g></g></svg>
|
Before Width: | Height: | Size: 2.2 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866"><path fill="#46a546" stroke-width=".275" d="m3.2563 0.90164h27.353c1.804 0 3.2563 1.4523 3.2563 3.2563v1.001e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-27.353c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1.001e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/><path fill="#f89406" stroke-width=".259" d="m3.2563 9.4185h23.546c1.804 0 3.2563 1.4523 3.2563 3.2563v1e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-23.546c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/><path fill="#c43c35" stroke-width=".269" d="m3.2563 17.935h25.95c1.804 0 3.2563 1.4523 3.2563 3.2563v1.01e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-25.95c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1.01e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/><path fill="#999" stroke-width=".212" d="m3.2563 26.452h13.726c1.804 0 3.2563 1.4523 3.2563 3.2563v1e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-13.726c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/></svg>
|
Before Width: | Height: | Size: 1.0 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="scale(.71111)"><rect width="47.494" height="47.494" x=".066" y=".066" style="-inkscape-stroke:none;fill-rule:evenodd;fill:#0277bd;font-variation-settings:normal;stop-color:#000;stroke-width:.13102;stroke:#0277bd"/><g transform="matrix(.11719 0 0 .11736 26.539 14.264)" style="fill:#fff;stroke:#fff"><circle cx="-22.301" cy="79.286" r="153.93" style="opacity:0;paint-order:markers stroke fill;stroke-width:2.84"/><g style="fill:#fff;stroke:#fff"><path d="m130.21 77.865v1.4199c0 69.032-46.356 129.44-113.04 147.31s-137.03-11.271-171.54-71.055l-0.70898-1.2305-2.459 1.4199 0.70899 1.2305c35.152 60.884 106.83 90.575 174.74 72.379s115.14-79.749 115.14-150.05v-1.4199z" style="color-rendering:auto;color:#000;dominant-baseline:auto;fill:#fff;font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;image-rendering:auto;isolation:auto;mix-blend-mode:normal;paint-order:markers stroke fill;shape-padding:0;shape-rendering:auto;solid-color:#000;stroke-linecap:square;stroke-linejoin:round;stroke-width:20.386;stroke:#fff;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m131.62 66.176 11.36 19.653h-22.72z" style="fill-rule:evenodd;fill:#fff;stroke-width:20.386;stroke:#fff"/></g><g style="fill:#fff;stroke:#fff"><path d="m130.21 77.865v1.4199c0 69.032-46.356 129.44-113.04 147.31s-137.03-11.271-171.54-71.055l-0.70898-1.2305-2.459 1.4199 0.70899 1.2305c35.152 60.884 106.83 90.575 174.74 72.379s115.14-79.749 115.14-150.05v-1.4199z" transform="rotate(180 -22.116 79.492)" style="color-rendering:auto;color:#000;dominant-baseline:auto;fill:#fff;font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;image-rendering:auto;isolation:auto;mix-blend-mode:normal;paint-order:markers stroke fill;shape-padding:0;shape-rendering:auto;solid-color:#000;stroke-linecap:square;stroke-linejoin:round;stroke-width:20.386;stroke:#fff;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m131.62 66.176 11.36 19.653h-22.72z" transform="rotate(180 -22.116 79.492)" style="fill-rule:evenodd;fill:#fff;stroke-width:20.386;stroke:#fff"/></g></g><g style="fill:#fff"><path d="m5.0271 0.79375h-0.26458v-0.52917h-0.52917v0.52917h-2.1167v-0.52917h-0.52917v0.52917h-0.26458a0.52917 0.52917 0 0 0-0.52917 0.52917v3.7042a0.52917 0.52917 0 0 0 0.52917 0.52917h3.7042c0.29104 0 0.52917-0.23812 0.52917-0.52917v-3.7042c0-0.29104-0.23812-0.52917-0.52917-0.52917zm-1.8521 0.79375c0.43921 0 0.79375 0.35454 0.79375 0.79375s-0.35454 0.79375-0.79375 0.79375-0.79375-0.35454-0.79375-0.79375 0.35454-0.79375 0.79375-0.79375zm1.5875 3.175h-3.175v-0.26458c0-0.52917 1.0583-0.82021 1.5875-0.82021s1.5875 0.29104 1.5875 0.82021z" transform="matrix(4.4012 0 0 4.4076 9.7615 10.587)" style="fill:#fff;stroke-width:.26458"/></g></g></svg>
|
Before Width: | Height: | Size: 3.2 KiB |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="SVGID_00000094620430057427565900000015311327790582914980_" x1="796.82" x2="203.77" y1="249.42" y2="1067.3" gradientTransform="matrix(.035694 0 0 -.035694 5.0337e-7 30.979)" gradientUnits="userSpaceOnUse"><stop stop-color="#C8E8FF" offset="0"/><stop stop-color="#BDAEFF" offset=".3075"/><stop stop-color="#6D4AFF" offset="1"/></linearGradient><radialGradient id="SVGID_1_" cx="169.05" cy="788.91" r="1" gradientTransform="matrix(-16.88 45.338 60.416 22.494 -44786 -25421)" gradientUnits="userSpaceOnUse"><stop stop-color="#54B7FF" stop-opacity="0" offset=".5561"/><stop stop-color="#54B7FF" offset=".9944"/></radialGradient></defs><g stroke-width=".035694"><path class="st0" d="m5.0337e-7 6.425c0-1.9346 1.567-3.5016 3.5016-3.5016h26.853c1.9346 0 3.5016 1.567 3.5016 3.5016v21.017c0 1.9346-1.567 3.5016-3.5016 3.5016h-26.853c-1.9346 0-3.5016-1.567-3.5016-3.5016z" fill="#6851f6"/><path class="st1" d="m0.0071394 6.425c0-1.9346 1.5705-3.5016 3.5052-3.5016h26.853c1.9346 0 3.5016 1.567 3.5016 3.5016v21.017c0 1.9346-1.567 3.5016-3.5016 3.5016h-26.853c-1.9346 0-3.5016-1.567-3.5016-3.5016v-21.017z" fill="url(#SVGID_1_)"/><path class="st2" d="m15.373 29.312c0-0.83168 0.29626-1.6384 0.83524-2.2702l6.168-7.2388 0.19632 11.14h-7.1995z" fill="#bfd8ff"/><path d="m3.5016 2.9234c-1.9346 0-3.5016 1.567-3.5016 3.5016v0.68176h23.933c1.5063 0 2.7235 1.2207 2.7235 2.7235v13.914h7.1995v-17.319c0-1.9346-1.567-3.5016-3.5016-3.5016z" clip-rule="evenodd" fill="url(#SVGID_00000094620430057427565900000015311327790582914980_)" fill-rule="evenodd"/><path class="st4" d="m21.406 22.38c0-2.1488 1.7419-3.8907 3.8907-3.8907h8.563v12.454h-12.454z" fill="#fff"/><path class="st5" d="m24.811 26.496h1.2315c0.04997 0.21416 0.1749 0.40334 0.35337 0.53541 0.1749 0.13207 0.39264 0.19989 0.61394 0.18918 0.55683 0 0.92448-0.30697 0.92448-0.75672s-0.38193-0.69961-1.1386-0.69961h-0.48901v-1.0137h0.42476c0.73173 0 1.0316-0.26771 1.0316-0.67462 0-0.40334-0.32482-0.68176-0.77456-0.68176-0.19989-0.01071-0.39978 0.05354-0.54969 0.18561-0.15348 0.13207-0.24629 0.31768-0.26414 0.51757h-1.1886c0.04283-0.70674 0.59966-1.7205 1.9953-1.7205 1.1208 0 1.8954 0.63893 1.8954 1.5384 0 0.28912-0.08924 0.57111-0.26057 0.80312-0.17133 0.23201-0.41048 0.40691-0.68533 0.49258v0.01785c0.32125 0.05711 0.61037 0.22844 0.81383 0.48187 0.20346 0.25343 0.31054 0.57111 0.29983 0.89949 0 0.97445-0.89236 1.6169-2.0453 1.6169-1.2243 0.0071-2.0988-0.6889-2.1881-1.7312z" fill="#6d4aff"/><path class="st5" d="m31.197 22.473h0.89592v5.6718h-1.1565v-4.3511l-1.1137 0.75672v-1.1458z" fill="#6d4aff"/></g></svg>
|
Before Width: | Height: | Size: 2.7 KiB |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><path id="XMLID_107_" d="m16.959 5.8379c-3.5104 0-6.4858 2.3798-7.408 5.6042-0.80146-1.7103-2.5382-2.9085-4.5387-2.9085-2.7511 0-5.0126 2.2615-5.0126 5.0126 0 2.7511 2.2615 5.0137 5.0126 5.0137 2.0005 0 3.7373-1.1989 4.5387-2.9095 0.92217 3.2246 3.8975 5.6053 7.408 5.6053 3.4845 0 6.4447-2.3447 7.3904-5.533 0.81627 1.6717 2.5316 2.8372 4.5036 2.8372 2.7511 0 5.0137-2.2625 5.0137-5.0137 0-2.7511-2.2625-5.0126-5.0137-5.0126-1.9721 0-3.6874 1.1647-4.5036 2.8362-0.94575-3.188-3.9059-5.532-7.3904-5.532zm0 2.9425c2.65 0 4.7669 2.1159 4.7669 4.7659 0 2.65-2.1169 4.7669-4.7669 4.7669-2.65 0-4.7659-2.1169-4.7659-4.7669 0-2.65 2.1159-4.7659 4.7659-4.7659zm-11.947 2.6958c1.161 0 2.0711 0.90908 2.0711 2.0701 0 1.161-0.91012 2.0711-2.0711 2.0711-1.161 0-2.0701-0.91012-2.0701-2.0711 0-1.161 0.90909-2.0701 2.0701-2.0701zm23.841 0c1.161 0 2.0711 0.90908 2.0711 2.0701 0 1.161-0.91012 2.0711-2.0711 2.0711-1.161 0-2.0701-0.91012-2.0701-2.0711 0-1.161 0.90909-2.0701 2.0701-2.0701z" color="#000000" color-rendering="auto" fill="#0082c9" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="isolation:auto;mix-blend-mode:normal;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none;white-space:normal"/><g transform="matrix(.13987 0 0 .13987 3.3867 17.958)" fill="#0082c9"><path id="XMLID_121_" d="m37.67 48.9c5.9 0 9.2 4.2 9.2 10.5 0 0.6-0.5 1.1-1.1 1.1h-15.9c0.1 5.6 4 8.8 8.5 8.8 2.8 0 4.8-1.2 5.8-2 0.6-0.4 1.1-0.3 1.4 0.3l0.3 0.5c0.3 0.5 0.2 1-0.3 1.4-1.2 0.9-3.8 2.4-7.3 2.4-6.5 0-11.5-4.7-11.5-11.5 0.1-7.2 4.9-11.5 10.9-11.5zm6.1 9.4c-0.2-4.6-3-6.9-6.2-6.9-3.7 0-6.9 2.4-7.6 6.9z"/><path id="XMLID_119_" d="m76.9 52.1v-7.7c0-0.7 0.4-1.1 1.1-1.1h0.8c0.7 0 1 0.4 1 1.1v5.2h4.5c0.7 0 1.1 0.4 1.1 1.1v0.3c0 0.7-0.4 1-1.1 1h-4.5v11c0 5.1 3.1 5.7 4.8 5.8 0.9 0.1 1.2 0.3 1.2 1.1v0.6c0 0.7-0.3 1-1.2 1-4.8 0-7.7-2.9-7.7-8.1z"/><path id="XMLID_117_" d="m99.8 48.9c3.8 0 6.2 1.6 7.3 2.5 0.5 0.4 0.6 0.9 0.1 1.5l-0.3 0.5c-0.4 0.6-0.9 0.6-1.5 0.2-1-0.7-2.9-2-5.5-2-4.8 0-8.6 3.6-8.6 8.9 0 5.2 3.8 8.8 8.6 8.8 3.1 0 5.2-1.4 6.2-2.3 0.6-0.4 1-0.3 1.4 0.3l0.3 0.4c0.3 0.6 0.2 1-0.3 1.5-1.1 0.9-3.8 2.8-7.8 2.8-6.5 0-11.5-4.7-11.5-11.5 0.1-6.8 5.1-11.6 11.6-11.6z"/><path id="XMLID_115_" d="m113.1 41.8c0-0.7-0.4-1.1 0.3-1.1h0.8c0.7 0 1.8 0.4 1.8 1.1v23.9c0 2.8 1.3 3.1 2.3 3.2 0.5 0 0.9 0.3 0.9 1v0.7c0 0.7-0.3 1.1-1.1 1.1-1.8 0-5-0.6-5-5.4z"/><path id="XMLID_112_" d="m133.6 48.9c6.4 0 11.6 4.9 11.6 11.4 0 6.6-5.2 11.6-11.6 11.6s-11.6-5-11.6-11.6c0-6.5 5.2-11.4 11.6-11.4zm0 20.4c4.7 0 8.5-3.8 8.5-9 0-5-3.8-8.7-8.5-8.7s-8.6 3.8-8.6 8.7c0.1 5.1 3.9 9 8.6 9z"/><path id="XMLID_109_" d="m183.5 48.9c5.3 0 7.2 4.4 7.2 4.4h0.1s-0.1-0.7-0.1-1.7v-9.9c0-0.7-0.3-1.1 0.4-1.1h0.8c0.7 0 1.8 0.4 1.8 1.1v28.5c0 0.7-0.3 1.1-1 1.1h-0.7c-0.7 0-1.1-0.3-1.1-1v-1.7c0-0.8 0.2-1.4 0.2-1.4h-0.1s-1.9 4.6-7.6 4.6c-5.9 0-9.6-4.7-9.6-11.5-0.2-6.8 3.9-11.4 9.7-11.4zm0.1 20.4c3.7 0 7.1-2.6 7.1-8.9 0-4.5-2.3-8.8-7-8.8-3.9 0-7.1 3.2-7.1 8.8 0.1 5.4 2.9 8.9 7 8.9z"/><path id="XMLID_103_" d="m1 71.4h0.8c0.7 0 1.1-0.4 1.1-1.1v-21.472c0-3.4 3.7-5.8277 7.9-5.8277s7.9 2.4277 7.9 5.8277v21.472c0 0.7 0.4 1.1 1.1 1.1h0.8c0.7 0 1-0.4 1-1.1v-21.6c0-5.7-5.7-8.5-10.9-8.5-5 0-10.7 2.8-10.7 8.5v21.6c0 0.7 0.3 1.1 1 1.1z"/><path id="XMLID_102_" d="m167.9 49.4h-0.8c-0.7 0-1.1 0.4-1.1 1.1v12.1c0 3.4-2.2 6.5-6.5 6.5-4.2 0-6.5-3.1-6.5-6.5v-12.1c0-0.7-0.4-1.1-1.1-1.1h-0.8c-0.7 0-1 0.4-1 1.1v12.9c0 5.7 4.2 8.5 9.4 8.5s9.4-2.8 9.4-8.5v-12.9c0.1-0.7-0.3-1.1-1-1.1z"/><path d="m68.908 49.236c-0.24494 0.0391-0.4801 0.20259-0.70508 0.4707l-4.0469 4.8242-3.0293 3.6094-4.5859-5.4668-2.4883-2.9668c-0.22498-0.26812-0.47975-0.41472-0.74414-0.4375-0.26439-0.02278-0.53852 0.07775-0.80664 0.30273l-0.61328 0.51367c-0.53623 0.44995-0.50854 0.94814-0.05859 1.4844l4.0488 4.8242 3.3574 4-4.916 5.8574c-0.0037 0.0044-0.0061 0.0093-0.0098 0.01367l-2.4805 2.9551c-0.44995 0.53623-0.39953 1.1008 0.13672 1.5508l0.61328 0.51172c0.53623 0.44995 1.0227 0.33701 1.4727-0.19922l4.0469-4.8242 3.0293-3.6094 4.5859 5.4668c3e-3 0.0036 0.0067 0.0062 0.0098 0.0098l2.4805 2.957c0.44995 0.53623 1.0126 0.58474 1.5488 0.13476l0.61328-0.51367c0.53623-0.44995 0.50854-0.94814 0.05859-1.4844l-4.0488-4.8242-3.3574-4 4.916-5.8574c0.0037-0.0044 0.0061-0.0093 0.0098-0.01367l2.4805-2.9551c0.44995-0.53623 0.39953-1.1008-0.13672-1.5508l-0.61328-0.51367c-0.26812-0.22498-0.52264-0.30864-0.76758-0.26953z"/></g></svg>
|
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 2.7 KiB |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="SVGID_00000019652434788841659490000008021016220503567533_" x1="-12.632" x2="1173" y1="1195.6" y2="-107.33" gradientTransform="matrix(.035706 0 0 -.035706 -1.6667e-6 30.985)" gradientUnits="userSpaceOnUse"><stop stop-color="#6D4AFF" offset="0"/><stop stop-color="#AE8CFF" offset=".3593"/><stop stop-color="#F8CCFF" offset="1"/></linearGradient><radialGradient id="SVGID_1_" cx="169.06" cy="788.93" r="1" gradientTransform="matrix(-21.468 43.868 68.249 33.399 -50186 -33775)" gradientUnits="userSpaceOnUse"><stop stop-color="#FF62C0" stop-opacity="0" offset=".5561"/><stop stop-color="#FF62C0" offset=".9944"/></radialGradient></defs><g stroke-width=".035705"><path class="st0" d="m-1.6667e-6 27.447v-21.023c0-1.9352 1.5675-3.5027 3.5027-3.5027h6.5698c0.66412 0 1.3104 0.21066 1.8424 0.60342l2.1994 1.6139c0.53559 0.39276 1.1819 0.60343 1.8424 0.60343h14.404c1.9352 0 3.5027 1.5675 3.5027 3.5027v18.199c0 1.9352-1.5675 3.5027-3.5027 3.5027h-26.858c-1.9352 4e-3 -3.5027-1.5639-3.5027-3.4991z" fill="#6851f6"/><path class="st1" d="m-1.6667e-6 27.447v-21.023c0-1.9352 1.5675-3.5027 3.5027-3.5027h6.5698c0.66412 0 1.3104 0.21066 1.8424 0.60342l2.1994 1.6139c0.53559 0.39276 1.1819 0.60343 1.8424 0.60343h14.404c1.9352 0 3.5027 1.5675 3.5027 3.5027v18.199c0 1.9352-1.5675 3.5027-3.5027 3.5027h-26.858c-1.9352 4e-3 -3.5027-1.5639-3.5027-3.4991z" fill="url(#SVGID_1_)"/><path d="m15.96 5.7414h14.404c1.9352 0 3.5027 1.5675 3.5027 3.5027v18.199c0 1.9352-1.5675 3.5027-3.5027 3.5027h-3.6991v-18.278c0-1.5103-1.2283-2.735-2.7422-2.7243l-13.265 0.075c-0.57129 4e-3 -1.1283-0.17138-1.596-0.50344l-2.9528-2.0995c-0.4606-0.32849-1.014-0.50345-1.5782-0.50345h-4.531v-0.48916c0-1.9352 1.5675-3.5027 3.5027-3.5027h6.5698c0.66412 0 1.3104 0.21066 1.8424 0.60342l2.1994 1.6139c0.53559 0.39276 1.1819 0.60343 1.846 0.60343z" clip-rule="evenodd" fill="url(#SVGID_00000019652434788841659490000008021016220503567533_)" fill-rule="evenodd"/></g></svg>
|
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 2.0 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866"><g transform="matrix(-.49803 0 0 .49803 16.933 28.886)"><path fill="#fff" d="m64 30.117-5.6465 16.941h3.7637v62.117h3.7656v-62.117h3.7637l-5.6465-16.941z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path fill="#fff" d="m83.75 57.334-11.309 13.82 3.5195 1.3418-13.719 36.012 3.5156 1.3379 13.719-36.012 3.5195 1.3418 0.75391-17.842z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path fill="#fff" d="m44.25 57.334 0.75391 17.842 3.5195-1.3418 13.719 36.012 3.5156-1.3379-13.719-36.012 3.5195-1.3418-11.309-13.82z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><circle r="10" fill="red"/><g fill="#fff"><circle cy="-50" r="8" class="storage"/><circle cx="-14" cy="-35" r="8" class="storage"/><circle cx="14" cy="-35" r="8" class="storage"/></g></g></svg>
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866"><g transform="matrix(-.49803 0 0 .49803 16.933 28.886)"><path d="m64 30.117-5.6465 16.941h3.7637v62.117h3.7656v-62.117h3.7637l-5.6465-16.941z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m83.75 57.334-11.309 13.82 3.5195 1.3418-13.719 36.012 3.5156 1.3379 13.719-36.012 3.5195 1.3418 0.75391-17.842z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m44.25 57.334 0.75391 17.842 3.5195-1.3418 13.719 36.012 3.5156-1.3379-13.719-36.012 3.5195-1.3418-11.309-13.82z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><circle r="10" fill="red"/><g><circle cy="-50" r="8" class="storage"/><circle cx="-14" cy="-35" r="8" class="storage"/><circle cx="14" cy="-35" r="8" class="storage"/></g></g></svg>
|
Before Width: | Height: | Size: 2.3 KiB |
1
docs/assets/img/dns/adguard-home.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33.867 33.867"><g fill="none"><path fill="#68bc71" d="M16.933 0C11.703 0 5.393 1.214.2 3.887c0 5.773-.071 20.154 16.734 29.98C33.74 24.041 33.668 9.66 33.668 3.887 28.474 1.214 22.164 0 16.933 0z"/><path fill="#67b279" d="M16.916 33.857C.128 24.031.199 9.658.199 3.887 5.388 1.217 11.69.003 16.916 0z"/><path fill="#fff" d="m16.323 22.597 10.12-13.465c-.742-.586-1.393-.172-1.75.148l-.014.001-8.437 8.666-3.18-3.777c-1.516-1.73-3.577-.41-4.06-.062l7.32 8.49"/></g></svg>
|
After Width: | Height: | Size: 523 B |
@ -1,2 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="384" height="128" version="1.1" viewBox="0 0 101.6 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.05357 0 0 .05357 -2.7694 6.1687)"><path class="st0" d="m107.8 179.5c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l37-28.9c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-37 28.9c-1.8 1.5-3.9 2.4-6.1 2.7z" fill="#3ae7e1"/><path class="st1" d="m71.9 207.7c-4.6 0.7-9.5-1-12.6-4.9-4.5-5.8-3.5-14.1 2.3-18.7l3.5-2.7c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-3.5 2.7c-1.8 1.4-3.9 2.3-6.1 2.6z" fill="#f5f7fa"/><path class="st0" d="m67.1 283.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l81.2-63.4c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-81.2 63.5c-1.9 1.4-4 2.3-6.1 2.6z" fill="#3ae7e1"/><path class="st1" d="m182.8 193.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l12.9-10.1c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-12.9 10.1c-1.9 1.4-4 2.3-6.1 2.7z" fill="#f5f7fa"/><path class="st0" d="m175.7 271.1c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l66.6-52c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-66.6 52c-1.8 1.5-3.9 2.4-6.1 2.7z" fill="#3ae7e1"/><path class="st1" d="m139.3 300c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.2 2.3-18.7l4.7-3.7c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.2-2.3 18.7l-4.7 3.7c-1.9 1.5-4 2.4-6.1 2.7z" fill="#f5f7fa"/><path class="st0" d="m475 40.4h-308.8c-11.5 0-22.2 7.1-25.6 18.1-1.6 5.1-1.5 10.3 0 15 1.5 4.8 4.5 9.2 8.7 12.5 0 0 118.3 91.9 147.3 111.9 10.4 6.7 20.5 4.4 26.5-0.2l150.1-116.8v201.9c0 19.7-16 35.7-35.7 35.7h-283.7c-7.3 0-13.2 5.9-13.2 13.2 0 7.4 6 13.4 13.4 13.4h283.4c34.4 0 62.3-27.9 62.3-62.3v-217.7c0.1-13.6-11-24.7-24.7-24.7zm-213.6 110.1 0.1-0.7 0.4 0.6zm48.3 24-137.5-107.5h275.5z" fill="#3ae7e1"/><g fill="#3ae7e1"><path class="st0" d="m791.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.4-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z"/><path class="st0" d="m881.8 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 17-6.9 36.3-10.1 58.6-10.1z"/><path class="st0" d="m971.6 192.6c0-37.2 24.7-59.5 68.4-59.5 44 0 68.7 22.3 68.7 59.5v44c0 37.2-24.7 59.5-68.7 59.5-43.7 0-68.4-22.3-68.4-59.5zm102.6 0c0-18.1-12.5-28.2-34.2-28.2s-33.9 10.1-33.9 28.2v44c0 17.8 12.2 28.2 33.9 28.2s34.2-10.4 34.2-28.2z"/><path class="st0" d="m1207.7 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 16.9-6.9 36.3-10.1 58.6-10.1z"/></g><g fill="#f5f7fa"><path class="st1" d="m1477.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.5-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z"/><path class="st1" d="m1490.7 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.6-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z"/><path class="st1" d="m1651.9 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.5-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z"/><path class="st1" d="m1939.1 137.6c6.8 0 9.2 2.1 9.2 8.9v150.2c0 40.7-20.5 64.8-65.4 64.8-29.4 0-50.3-9.5-61.8-28.5-4.2-6.5-3-11.6 3.9-14.9l11.3-6.2c7.1-3.6 10.4-2.7 14.9 3.6 6.2 10.1 16.6 15.2 31.2 15.2 21.1 0 31.5-10.7 31.5-32.1v-14c-12.2 2.7-24.1 4.2-35.4 4.2-41.6 0-62.1-21.4-62.1-59.8v-82.4c0-6.8 2.4-8.9 9.2-8.9h16.4c6.8 0 8.9 2.1 8.9 8.9v81.2c0 19.6 10.7 29.4 32.4 29.4 9.8 0 19.9-1.5 30.6-4.2v-106.5c0-6.8 2.4-8.9 9.2-8.9z"/></g></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91 62"><g fill="none" fill-rule="nonzero"><path fill="#3AE7E1" d="M11.36 28.163a2.704 2.704 0 0 1-2.085-4.799l7.492-5.85a2.704 2.704 0 0 1 3.786.465 2.704 2.704 0 0 1-.466 3.786l-7.491 5.852c-.365.304-.79.486-1.235.546Z"/><path fill="#F5F7FA" d="M4.092 33.873a2.736 2.736 0 0 1-2.551-.992 2.704 2.704 0 0 1 .466-3.786l.708-.547a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-.709.547c-.364.283-.79.465-1.235.526Z"/><path fill="#3AE7E1" d="M3.12 49.24a2.704 2.704 0 0 1-2.085-4.799l16.44-12.836c1.175-.91 2.875-.708 3.787.466a2.704 2.704 0 0 1-.466 3.786L4.356 48.714c-.385.284-.81.466-1.236.527Z"/><path fill="#F5F7FA" d="M26.546 31.018a2.704 2.704 0 0 1-2.085-4.799l2.611-2.044a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-2.612 2.045c-.385.283-.81.465-1.235.546Z"/><path fill="#3AE7E1" d="M25.108 46.71a2.704 2.704 0 0 1-2.085-4.799l13.484-10.528c1.175-.911 2.876-.709 3.787.465a2.704 2.704 0 0 1-.466 3.787L26.344 46.163c-.365.304-.79.486-1.236.547Z"/><path fill="#F5F7FA" d="M17.739 52.561a2.706 2.706 0 0 1-2.552-1.012c-.91-1.175-.708-2.875.466-3.786l.952-.75c1.174-.91 2.875-.708 3.786.466s.709 2.875-.466 3.786l-.951.75a2.59 2.59 0 0 1-1.235.546Z"/><path fill="#3AE7E1" d="M85.708 0H23.185c-2.328 0-4.495 1.438-5.183 3.665a5.014 5.014 0 0 0 0 3.037 5.21 5.21 0 0 0 1.761 2.53S43.715 27.84 49.587 31.89c2.106 1.356 4.15.89 5.365-.04L85.343 8.2v40.879a7.232 7.232 0 0 1-7.228 7.228h-57.44a2.67 2.67 0 0 0-2.673 2.672 2.713 2.713 0 0 0 2.713 2.713h57.38c6.965 0 12.614-5.649 12.614-12.613V5C90.729 2.247 88.48 0 85.708 0ZM52.239 27.151 24.4 5.386H80.18L52.24 27.15Z"/></g></svg>
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 1.6 KiB |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="384" height="128" version="1.1" viewBox="0 0 101.6 33.867"><g id="XMLID_1_" transform="matrix(.05357 0 0 .05357 -2.7694 6.1687)"><g id="XMLID_29_"><path id="XMLID_41_" fill="#3ae7e1" d="m107.8 179.5c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l37-28.9c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-37 28.9c-1.8 1.5-3.9 2.4-6.1 2.7z" class="st0"/></g><g id="XMLID_30_"><path id="XMLID_40_" fill="#7b8794" d="m71.9 207.7c-4.6 0.7-9.5-1-12.6-4.9-4.5-5.8-3.5-14.1 2.3-18.7l3.5-2.7c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-3.5 2.7c-1.8 1.4-3.9 2.3-6.1 2.6z" class="st1"/></g><g id="XMLID_31_"><path id="XMLID_39_" fill="#3ae7e1" d="m67.1 283.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l81.2-63.4c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-81.2 63.5c-1.9 1.4-4 2.3-6.1 2.6z" class="st0"/></g><g id="XMLID_34_"><path id="XMLID_38_" fill="#7b8794" d="m182.8 193.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l12.9-10.1c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-12.9 10.1c-1.9 1.4-4 2.3-6.1 2.7z" class="st1"/></g><g id="XMLID_32_"><path id="XMLID_37_" fill="#3ae7e1" d="m175.7 271.1c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l66.6-52c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-66.6 52c-1.8 1.5-3.9 2.4-6.1 2.7z" class="st0"/></g><path id="XMLID_36_" fill="#7b8794" d="m139.3 300c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.2 2.3-18.7l4.7-3.7c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.2-2.3 18.7l-4.7 3.7c-1.9 1.5-4 2.4-6.1 2.7z" class="st1"/><path id="XMLID_44_" fill="#3ae7e1" d="m475 40.4h-308.8c-11.5 0-22.2 7.1-25.6 18.1-1.6 5.1-1.5 10.3 0 15 1.5 4.8 4.5 9.2 8.7 12.5 0 0 118.3 91.9 147.3 111.9 10.4 6.7 20.5 4.4 26.5-0.2l150.1-116.8v201.9c0 19.7-16 35.7-35.7 35.7h-283.7c-7.3 0-13.2 5.9-13.2 13.2 0 7.4 6 13.4 13.4 13.4h283.4c34.4 0 62.3-27.9 62.3-62.3v-217.7c0.1-13.6-11-24.7-24.7-24.7zm-213.6 110.1 0.1-0.7 0.4 0.6zm48.3 24-137.5-107.5h275.5z" class="st0"/><g id="XMLID_81_"><g id="XMLID_4_" fill="#3ae7e1"><path id="XMLID_25_" d="m791.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.4-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z" class="st0"/><path id="XMLID_28_" d="m881.8 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 17-6.9 36.3-10.1 58.6-10.1z" class="st0"/><path id="XMLID_65_" d="m971.6 192.6c0-37.2 24.7-59.5 68.4-59.5 44 0 68.7 22.3 68.7 59.5v44c0 37.2-24.7 59.5-68.7 59.5-43.7 0-68.4-22.3-68.4-59.5zm102.6 0c0-18.1-12.5-28.2-34.2-28.2s-33.9 10.1-33.9 28.2v44c0 17.8 12.2 28.2 33.9 28.2s34.2-10.4 34.2-28.2z" class="st0"/><path id="XMLID_68_" d="m1207.7 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 16.9-6.9 36.3-10.1 58.6-10.1z" class="st0"/></g><g id="XMLID_24_" fill="#7b8794"><path id="XMLID_70_" d="m1477.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.5-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z" class="st1"/><path id="XMLID_73_" d="m1490.7 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.6-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z" class="st1"/><path id="XMLID_76_" d="m1651.9 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.5-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z" class="st1"/><path id="XMLID_79_" d="m1939.1 137.6c6.8 0 9.2 2.1 9.2 8.9v150.2c0 40.7-20.5 64.8-65.4 64.8-29.4 0-50.3-9.5-61.8-28.5-4.2-6.5-3-11.6 3.9-14.9l11.3-6.2c7.1-3.6 10.4-2.7 14.9 3.6 6.2 10.1 16.6 15.2 31.2 15.2 21.1 0 31.5-10.7 31.5-32.1v-14c-12.2 2.7-24.1 4.2-35.4 4.2-41.6 0-62.1-21.4-62.1-59.8v-82.4c0-6.8 2.4-8.9 9.2-8.9h16.4c6.8 0 8.9 2.1 8.9 8.9v81.2c0 19.6 10.7 29.4 32.4 29.4 9.8 0 19.9-1.5 30.6-4.2v-106.5c0-6.8 2.4-8.9 9.2-8.9z" class="st1"/></g></g></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91 62"><g fill="none" fill-rule="nonzero"><path fill="#3AE7E1" d="M11.36 28.163a2.704 2.704 0 0 1-2.085-4.799l7.492-5.85a2.704 2.704 0 0 1 3.786.465 2.704 2.704 0 0 1-.466 3.786l-7.491 5.852c-.365.304-.79.486-1.235.546Z"/><path fill="#7B8794" d="M4.092 33.873a2.736 2.736 0 0 1-2.551-.992 2.704 2.704 0 0 1 .466-3.786l.708-.547a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-.709.547c-.364.283-.79.465-1.235.526Z"/><path fill="#3AE7E1" d="M3.12 49.24a2.704 2.704 0 0 1-2.085-4.799l16.44-12.836c1.175-.91 2.875-.708 3.787.466a2.704 2.704 0 0 1-.466 3.786L4.356 48.714c-.385.284-.81.466-1.236.527Z"/><path fill="#7B8794" d="M26.546 31.018a2.704 2.704 0 0 1-2.085-4.799l2.611-2.044a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-2.612 2.045c-.385.283-.81.465-1.235.546Z"/><path fill="#3AE7E1" d="M25.108 46.71a2.704 2.704 0 0 1-2.085-4.799l13.484-10.528c1.175-.911 2.876-.709 3.787.465a2.704 2.704 0 0 1-.466 3.787L26.344 46.163c-.365.304-.79.486-1.236.547Z"/><path fill="#7B8794" d="M17.739 52.561a2.706 2.706 0 0 1-2.552-1.012c-.91-1.175-.708-2.875.466-3.786l.952-.75c1.174-.91 2.875-.708 3.786.466s.709 2.875-.466 3.786l-.951.75a2.59 2.59 0 0 1-1.235.546Z"/><path fill="#3AE7E1" d="M85.708 0H23.185c-2.328 0-4.495 1.438-5.183 3.665a5.014 5.014 0 0 0 0 3.037 5.21 5.21 0 0 0 1.761 2.53S43.715 27.84 49.587 31.89c2.106 1.356 4.15.89 5.365-.04L85.343 8.2v40.879a7.232 7.232 0 0 1-7.228 7.228h-57.44a2.67 2.67 0 0 0-2.673 2.672 2.713 2.713 0 0 0 2.713 2.713h57.38c6.965 0 12.614-5.649 12.614-12.613V5C90.729 2.247 88.48 0 85.708 0ZM52.239 27.151 24.4 5.386H80.18L52.24 27.15Z"/></g></svg>
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 298 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91 62"><g fill="none" fill-rule="nonzero"><path fill="#3AE7E1" d="M11.36 28.163a2.704 2.704 0 0 1-2.085-4.799l7.492-5.85a2.704 2.704 0 0 1 3.786.465 2.704 2.704 0 0 1-.466 3.786l-7.491 5.852c-.365.304-.79.486-1.235.546Z"/><path fill="#F5F7FA" d="M4.092 33.873a2.736 2.736 0 0 1-2.551-.992 2.704 2.704 0 0 1 .466-3.786l.708-.547a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-.709.547c-.364.283-.79.465-1.235.526Z"/><path fill="#3AE7E1" d="M3.12 49.24a2.704 2.704 0 0 1-2.085-4.799l16.44-12.836c1.175-.91 2.875-.708 3.787.466a2.704 2.704 0 0 1-.466 3.786L4.356 48.714c-.385.284-.81.466-1.236.527Z"/><path fill="#F5F7FA" d="M26.546 31.018a2.704 2.704 0 0 1-2.085-4.799l2.611-2.044a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-2.612 2.045c-.385.283-.81.465-1.235.546Z"/><path fill="#3AE7E1" d="M25.108 46.71a2.704 2.704 0 0 1-2.085-4.799l13.484-10.528c1.175-.911 2.876-.709 3.787.465a2.704 2.704 0 0 1-.466 3.787L26.344 46.163c-.365.304-.79.486-1.236.547Z"/><path fill="#F5F7FA" d="M17.739 52.561a2.706 2.706 0 0 1-2.552-1.012c-.91-1.175-.708-2.875.466-3.786l.952-.75c1.174-.91 2.875-.708 3.786.466s.709 2.875-.466 3.786l-.951.75a2.59 2.59 0 0 1-1.235.546Z"/><path fill="#3AE7E1" d="M85.708 0H23.185c-2.328 0-4.495 1.438-5.183 3.665a5.014 5.014 0 0 0 0 3.037 5.21 5.21 0 0 0 1.761 2.53S43.715 27.84 49.587 31.89c2.106 1.356 4.15.89 5.365-.04L85.343 8.2v40.879a7.232 7.232 0 0 1-7.228 7.228h-57.44a2.67 2.67 0 0 0-2.673 2.672 2.713 2.713 0 0 0 2.713 2.713h57.38c6.965 0 12.614-5.649 12.614-12.613V5C90.729 2.247 88.48 0 85.708 0ZM52.239 27.151 24.4 5.386H80.18L52.24 27.15Z"/></g></svg>
|
Before Width: | Height: | Size: 1.6 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91 62"><g fill="none" fill-rule="nonzero"><path fill="#3AE7E1" d="M11.36 28.163a2.704 2.704 0 0 1-2.085-4.799l7.492-5.85a2.704 2.704 0 0 1 3.786.465 2.704 2.704 0 0 1-.466 3.786l-7.491 5.852c-.365.304-.79.486-1.235.546Z"/><path fill="#7B8794" d="M4.092 33.873a2.736 2.736 0 0 1-2.551-.992 2.704 2.704 0 0 1 .466-3.786l.708-.547a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-.709.547c-.364.283-.79.465-1.235.526Z"/><path fill="#3AE7E1" d="M3.12 49.24a2.704 2.704 0 0 1-2.085-4.799l16.44-12.836c1.175-.91 2.875-.708 3.787.466a2.704 2.704 0 0 1-.466 3.786L4.356 48.714c-.385.284-.81.466-1.236.527Z"/><path fill="#7B8794" d="M26.546 31.018a2.704 2.704 0 0 1-2.085-4.799l2.611-2.044a2.704 2.704 0 0 1 3.787.466 2.704 2.704 0 0 1-.466 3.786l-2.612 2.045c-.385.283-.81.465-1.235.546Z"/><path fill="#3AE7E1" d="M25.108 46.71a2.704 2.704 0 0 1-2.085-4.799l13.484-10.528c1.175-.911 2.876-.709 3.787.465a2.704 2.704 0 0 1-.466 3.787L26.344 46.163c-.365.304-.79.486-1.236.547Z"/><path fill="#7B8794" d="M17.739 52.561a2.706 2.706 0 0 1-2.552-1.012c-.91-1.175-.708-2.875.466-3.786l.952-.75c1.174-.91 2.875-.708 3.786.466s.709 2.875-.466 3.786l-.951.75a2.59 2.59 0 0 1-1.235.546Z"/><path fill="#3AE7E1" d="M85.708 0H23.185c-2.328 0-4.495 1.438-5.183 3.665a5.014 5.014 0 0 0 0 3.037 5.21 5.21 0 0 0 1.761 2.53S43.715 27.84 49.587 31.89c2.106 1.356 4.15.89 5.365-.04L85.343 8.2v40.879a7.232 7.232 0 0 1-7.228 7.228h-57.44a2.67 2.67 0 0 0-2.673 2.672 2.713 2.713 0 0 0 2.713 2.713h57.38c6.965 0 12.614-5.649 12.614-12.613V5C90.729 2.247 88.48 0 85.708 0ZM52.239 27.151 24.4 5.386H80.18L52.24 27.15Z"/></g></svg>
|
Before Width: | Height: | Size: 1.6 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 86 78"><path fill="#76BC21" fill-rule="nonzero" d="M52.597 44.165 85.369 21.72V0H7.923S-.003 0-.003 7.924v.217l52.6 36.024ZM7.923 77.151h77.446V33.243L54.677 54.168c-2.183 1.487-4.358-.01-4.358-.01L-.003 19.539v49.69s0 7.923 7.926 7.923"/></svg>
|
Before Width: | Height: | Size: 298 B |
@ -1,15 +0,0 @@
|
||||
<svg width="979" height="785" viewBox="0 0 979 785" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 22.5541C0 3.48617 22.2124 -6.94596 36.8738 5.23613L424.677 327.46C462.177 358.619 516.546 358.619 554.046 327.46L941.85 5.23618C956.511 -6.94591 978.723 3.48621 978.723 22.5541V683.7C978.723 739.646 933.393 785 877.476 785H101.247C45.3299 785 0 739.646 0 683.7V22.5541Z" fill="#6D4AFF"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M621.492 271.42L621.546 271.464L426.244 444.071C392.975 473.475 343.246 474.216 309.116 445.817L0 188.604V22.5541C0 3.48617 22.2124 -6.94596 36.8738 5.23613L424.677 327.46C462.177 358.619 516.546 358.619 554.046 327.46L621.492 271.42Z" fill="url(#paint0_linear_6150_150885)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M770.604 147.526V785H877.476C933.393 785 978.723 739.642 978.723 683.699V22.5548C978.723 3.4868 956.51 -6.94715 941.849 5.23724L770.604 147.526Z" fill="url(#paint1_linear_6150_150885)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_6150_150885" x1="738.261" y1="384.02" x2="514.95" y2="-568.829" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#E2DBFF"/>
|
||||
<stop offset="1" stop-color="#6D4AFF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_6150_150885" x1="1276.84" y1="1301.35" x2="514.868" y2="-325.532" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.271019" stop-color="#E2DBFF"/>
|
||||
<stop offset="1" stop-color="#6D4AFF"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.4 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 59"><defs><linearGradient id="a" x1="0%" x2="99.995%" y1="50%" y2="50%"><stop offset="0%" stop-color="#ED2E7C"/><stop offset="100%" stop-color="#A8288F"/></linearGradient></defs><path fill="url(#a)" fill-rule="nonzero" d="M96.523 0H25.005l-.903.933-.153.169a41.263 41.263 0 0 1-2.126 2.057A45.808 45.808 0 0 1 2.6 13.883c-.207.061-.406.107-.612.168l-.903.222-.206.903c-.077.329-.138.658-.207 1.002A38.1 38.1 0 0 0 0 23.223a37.415 37.415 0 0 0 22.343 34.244c.153.077.329.153.497.222.375.168.75.314 1.124.467l.452.168.06.015.031-.015a.26.26 0 0 0 .108.015h71.893a2.805 2.805 0 0 0 2.807-2.807V2.784A2.767 2.767 0 0 0 96.523 0Zm-4.857 4.483-29.93 26.09a1.628 1.628 0 0 1-2.143-.015l-9.76-8.651a35.554 35.554 0 0 0-.673-6.196 36.48 36.48 0 0 1-.092-.527l-.206-.903-.903-.237c-.222-.046-.436-.107-.658-.153a44.69 44.69 0 0 1-13.898-6.54l-3.235-2.86h61.498v-.008ZM51.378 29.105l-2.455 2.172c.282-1.243.502-2.499.658-3.763l1.797 1.59Zm-26.84 26.06a36.184 36.184 0 0 1-2.715-1.247 34.66 34.66 0 0 1-18.817-30.68c-.003-2.18.207-4.355.627-6.494a48.582 48.582 0 0 0 18.19-9.34A43.137 43.137 0 0 0 25.02 4.56 48.67 48.67 0 0 0 42.68 15.566a40.75 40.75 0 0 0 3.626 1.14c.138.78.268 1.575.344 2.37.144 1.28.218 2.568.222 3.856 0 .704-.015 1.407-.076 2.111a33.775 33.775 0 0 1-2.142 10.013 34.551 34.551 0 0 1-20.117 20.109Zm8.728-1.155A37.48 37.48 0 0 0 45.71 40.02l8.98-7.932 4.873 4.36c.616.543 1.54.543 2.157 0l4.964-4.406 24.92 21.937-58.338.03Zm36.807-24.92L95.008 6.93l.046 44.189-24.981-22.03ZM31.269 46.842a24.6 24.6 0 0 0 3.312-2.922l-3.312 2.922Zm11.114-25.686a31.669 31.669 0 0 0-.283-1.874 34.74 34.74 0 0 1-2.906-.933.015.015 0 0 1-.016-.015c-.252-.077-.482-.184-.734-.283a25.363 25.363 0 0 1-1.637-.72 19.24 19.24 0 0 1-1.14-.542 10.245 10.245 0 0 1-.81-.42 35.255 35.255 0 0 1-2.532-1.485 25.548 25.548 0 0 1-1.5-1.002.275.275 0 0 1-.107-.076c-.527-.36-1.047-.75-1.56-1.14a43.023 43.023 0 0 1-2.952-2.486c-.406-.36-.811-.734-1.201-1.124a54.541 54.541 0 0 1-3.182 2.845 38.333 38.333 0 0 1-14.006 7.42 27.794 27.794 0 0 0-.497 5.232A28.301 28.301 0 0 0 21.83 49.19c.905.496 1.837.94 2.792 1.33a31.993 31.993 0 0 0 1.698-.718c.452-.207.903-.42 1.346-.658.407-.203.803-.428 1.186-.673.13-.065.255-.14.375-.222.206-.122.405-.252.596-.375a.368.368 0 0 0 .123-.091c.35-.217.69-.452 1.017-.704a1.3 1.3 0 0 0 .314-.237l3.312-2.922c.03 0 .03 0 .03-.015a28.385 28.385 0 0 0 6.946-12.239 27.624 27.624 0 0 0 1.002-7.374 30.795 30.795 0 0 0-.184-3.136ZM26.26 37.205l-2.547 2.547h-.015l-10.54-10.54 3.235-3.266 7.32 7.32 2.547-2.547 8.888-8.904 3.251 3.251-12.139 12.139Z"/></svg>
|
Before Width: | Height: | Size: 2.6 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><g fill="none" fill-rule="nonzero"><path fill="#6573FF" d="M55.73 9.844V5.297A5.275 5.275 0 0 0 50.453.022H5.284A5.275 5.275 0 0 0 .007 5.297v4.461c2.097 2.006 21.3 20.222 27.956 20.222 7.043 0 25.592-18.003 27.767-20.136h-.002Z"/><path fill="#e5e8ff" d="M45.804 26.455c-7.608 6.855-13.613 10.332-17.849 10.332C18.347 36.787 2.08 22.23 0 20.34v30.128a5.276 5.276 0 0 0 5.275 5.275h45.17a5.275 5.275 0 0 0 5.276-5.275V16.43a133.421 133.421 0 0 1-9.918 10.023l.001.002Z"/></g></svg>
|
Before Width: | Height: | Size: 540 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><g fill="none" fill-rule="nonzero"><path fill="#6573FF" d="M55.73 9.844V5.297A5.275 5.275 0 0 0 50.453.022H5.284A5.275 5.275 0 0 0 .007 5.297v4.461c2.097 2.006 21.3 20.222 27.956 20.222 7.043 0 25.592-18.003 27.767-20.136h-.002Z"/><path fill="#202945" d="M45.804 26.455c-7.608 6.855-13.613 10.332-17.849 10.332C18.347 36.787 2.08 22.23 0 20.34v30.128a5.276 5.276 0 0 0 5.275 5.275h45.17a5.275 5.275 0 0 0 5.276-5.275V16.43a133.421 133.421 0 0 1-9.918 10.023l.001.002Z"/></g></svg>
|
Before Width: | Height: | Size: 540 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 257 237"><defs><path id="a" d="M22.875.003C10.235.003 0 10.249 0 22.875v211.23c0 .801.046 1.608.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-.814-.056-1.636-.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381.007-.611.18-1.25.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-.913 35.206-.724 36.399-8.244.035-.232.057-.463.057-.695.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 .393-.048.8-.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356.569-28.648 1.861-28.707 7.408-.007.323.049.66.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418V22.872C256.977 10.246 246.734 0 234.108 0H22.878l-.003.003Z"/></defs><use xlink:href="#a" fill="#A01E20" fill-rule="evenodd"/></svg>
|
Before Width: | Height: | Size: 881 B |
@ -1,23 +1,13 @@
|
||||
<svg width="4611" height="785" viewBox="0 0 4611 785" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3393.77 628.366V148.75H3518.26L3634.96 436.342C3645.32 460.412 3654.25 485.07 3661.71 510.19H3662.9C3670.4 485.085 3679.33 460.429 3689.65 436.342L3806.35 148.75H3930.84V628.366H3840.6V307.01C3840.5 296.426 3841 285.846 3842.09 275.318H3840.6C3837.85 286.656 3834.08 297.724 3829.35 308.392L3700.02 622.739H3625.48L3495.75 308.392C3491.08 297.627 3487.09 286.581 3483.8 275.318H3482.42C3483.42 285.852 3483.88 296.429 3483.8 307.01V628.366H3393.77Z" fill="#6D4AFF"/>
|
||||
<path d="M4239.47 311.946C4265.6 325.654 4287.2 346.641 4301.66 372.367C4317.16 400.305 4325 431.846 4324.37 463.788V628.367H4245.39L4239.76 579.003C4229.46 596.899 4214.34 611.54 4196.12 621.258C4176.6 631.406 4154.84 636.465 4132.84 635.969C4104.75 636.251 4077.14 628.732 4053.07 614.249C4028.72 599.465 4008.88 578.296 3995.71 553.038C3981.32 525.239 3974.1 494.293 3974.68 462.999C3974.29 432.197 3982.16 401.855 3997.49 375.131C4012.47 349.157 4034.24 327.756 4060.47 313.23C4087.63 298.137 4118.26 290.379 4149.33 290.72C4180.67 290.176 4211.66 297.473 4239.47 311.946V311.946ZM4210.54 533.391C4227.72 517.002 4236.21 493.9 4236.21 463.097C4237.29 437.923 4228.46 413.327 4211.62 394.581C4203.61 386.204 4193.97 379.537 4183.31 374.982C4172.65 370.428 4161.17 368.079 4149.57 368.079C4137.98 368.079 4126.5 370.428 4115.84 374.982C4105.17 379.537 4095.54 386.204 4087.52 394.581C4071.51 413.783 4062.74 437.995 4062.74 462.999C4062.74 488.002 4071.51 512.214 4087.52 531.417C4095.43 539.974 4105.06 546.75 4115.78 551.295C4126.51 555.84 4138.08 558.05 4149.72 557.777C4160.97 557.965 4172.15 555.905 4182.59 551.718C4193.03 547.53 4202.54 541.299 4210.54 533.391V533.391Z" fill="#6D4AFF"/>
|
||||
<path d="M4373.04 229.311C4367.73 224.46 4363.5 218.538 4360.64 211.935C4357.78 205.333 4356.35 198.199 4356.45 191.005C4356.37 183.756 4357.81 176.569 4360.66 169.905C4363.52 163.242 4367.73 157.247 4373.04 152.304C4383.53 141.862 4397.73 136 4412.53 136C4427.33 136 4441.53 141.862 4452.02 152.304C4457.29 157.267 4461.48 163.268 4464.32 169.928C4467.15 176.589 4468.58 183.765 4468.51 191.005C4468.6 198.189 4467.18 205.312 4464.34 211.911C4461.5 218.511 4457.3 224.439 4452.02 229.311C4441.41 239.519 4427.25 245.221 4412.53 245.221C4397.8 245.221 4383.65 239.519 4373.04 229.311ZM4457.05 628.366H4368.2V297.828H4457.05V628.366Z" fill="#6D4AFF"/>
|
||||
<path d="M4610.68 628.366H4521.82V148.75H4610.68V628.366Z" fill="#6D4AFF"/>
|
||||
<path d="M1549.54 147.559H1328V627.471H1415.77V508.406C1415.77 496.78 1420.39 485.631 1428.61 477.41C1436.83 469.19 1447.98 464.571 1459.6 464.571H1549.54C1591.44 464.571 1631.62 447.929 1661.24 418.305C1690.86 388.681 1707.51 348.502 1707.51 306.608C1707.65 285.773 1703.67 265.115 1695.8 245.824C1687.92 226.534 1676.31 208.992 1661.63 194.208C1646.94 179.425 1629.48 167.692 1610.25 159.686C1591.01 151.68 1570.38 147.558 1549.54 147.559ZM1618.65 305.522C1618.57 325.352 1610.63 344.341 1596.56 358.317C1582.49 372.293 1563.45 380.113 1543.62 380.061H1415.27V230.094H1543.62C1553.46 230.094 1563.2 232.033 1572.3 235.798C1581.39 239.564 1589.65 245.084 1596.61 252.042C1603.56 259 1609.08 267.261 1612.85 276.352C1616.62 285.444 1618.55 295.188 1618.55 305.028L1618.65 305.522Z" fill="#1B1340"/>
|
||||
<path d="M1721.33 627.476V437.13C1721.33 359.432 1766.74 297.53 1857.47 297.53C1872.06 297.319 1886.63 298.944 1900.81 302.367V380.757C1890.45 380.066 1881.07 380.066 1877.41 380.066C1829.33 380.066 1808.3 401.983 1808.3 446.707V627.476H1721.33Z" fill="#1B1340"/>
|
||||
<path d="M1926.88 465.96C1926.88 370.392 1999.05 297.531 2099.46 297.531C2199.86 297.531 2271.93 370.194 2271.93 465.96C2271.93 561.725 2199.76 635.079 2099.46 635.079C1999.15 635.079 1926.88 561.527 1926.88 465.96ZM2186.04 465.96C2186.04 411.66 2149.61 373.156 2099.46 373.156C2049.3 373.156 2012.77 411.66 2012.77 465.96C2012.77 520.26 2049.2 558.763 2099.46 558.763C2149.71 558.763 2186.04 520.951 2186.04 465.96Z" fill="#1B1340"/>
|
||||
<path d="M2524.87 373.845H2430.78V494.094C2430.78 536.053 2445.89 555.305 2489.13 555.305C2493.28 555.305 2503.64 555.305 2516.68 554.614V625.401C2500.15 630.24 2483.05 632.797 2465.83 633.003C2392.97 633.003 2343.41 588.971 2343.41 505.843V373.845H2285.06V304.736H2299.58C2311.2 304.736 2322.35 300.117 2330.57 291.897C2338.79 283.676 2343.41 272.526 2343.41 260.901V195.148H2430.78V304.439H2524.87V373.845Z" fill="#1B1340"/>
|
||||
<path d="M2551.03 465.96C2551.03 370.392 2623.2 297.531 2723.51 297.531C2823.81 297.531 2896.08 370.194 2896.08 465.96C2896.08 561.725 2823.91 635.079 2723.51 635.079C2623.1 635.079 2551.03 561.527 2551.03 465.96ZM2810.19 465.96C2810.19 411.66 2773.76 373.156 2723.51 373.156C2673.26 373.156 2636.92 411.66 2636.92 465.96C2636.92 520.26 2673.35 558.763 2723.51 558.763C2773.66 558.763 2810.19 520.951 2810.19 465.96Z" fill="#1B1340"/>
|
||||
<path d="M2941.4 627.477V443.944C2941.4 358.742 2995.7 297.531 3092.65 297.531C3189.6 297.531 3243.21 358.742 3243.21 443.944V627.477H3156.63V450.854C3156.63 403.367 3135.3 373.847 3092.65 373.847C3050 373.847 3028.77 403.465 3028.77 450.854V627.477H2941.4Z" fill="#1B1340"/>
|
||||
<svg width="979" height="785" viewBox="0 0 979 785" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 22.5541C0 3.48617 22.2124 -6.94596 36.8738 5.23613L424.677 327.46C462.177 358.619 516.546 358.619 554.046 327.46L941.85 5.23618C956.511 -6.94591 978.723 3.48621 978.723 22.5541V683.7C978.723 739.646 933.393 785 877.476 785H101.247C45.3299 785 0 739.646 0 683.7V22.5541Z" fill="#6D4AFF"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M621.492 271.42L621.546 271.464L426.244 444.071C392.975 473.475 343.246 474.216 309.116 445.817L0 188.604V22.5541C0 3.48617 22.2124 -6.94596 36.8738 5.23613L424.677 327.46C462.177 358.619 516.546 358.619 554.046 327.46L621.492 271.42Z" fill="url(#paint0_linear_6138_150267)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M770.604 147.526V785H877.476C933.393 785 978.723 739.642 978.723 683.699V22.5548C978.723 3.4868 956.51 -6.94715 941.849 5.23724L770.604 147.526Z" fill="url(#paint1_linear_6138_150267)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M621.492 271.42L621.546 271.464L426.244 444.071C392.975 473.475 343.246 474.216 309.116 445.817L0 188.604V22.5541C0 3.48617 22.2124 -6.94596 36.8738 5.23613L424.677 327.46C462.177 358.619 516.546 358.619 554.046 327.46L621.492 271.42Z" fill="url(#paint0_linear_6150_150885)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M770.604 147.526V785H877.476C933.393 785 978.723 739.642 978.723 683.699V22.5548C978.723 3.4868 956.51 -6.94715 941.849 5.23724L770.604 147.526Z" fill="url(#paint1_linear_6150_150885)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_6138_150267" x1="738.261" y1="384.02" x2="514.95" y2="-568.829" gradientUnits="userSpaceOnUse">
|
||||
<linearGradient id="paint0_linear_6150_150885" x1="738.261" y1="384.02" x2="514.95" y2="-568.829" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#E2DBFF"/>
|
||||
<stop offset="1" stop-color="#6D4AFF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_6138_150267" x1="1276.84" y1="1301.35" x2="514.868" y2="-325.532" gradientUnits="userSpaceOnUse">
|
||||
<linearGradient id="paint1_linear_6150_150885" x1="1276.84" y1="1301.35" x2="514.868" y2="-325.532" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.271019" stop-color="#E2DBFF"/>
|
||||
<stop offset="1" stop-color="#6D4AFF"/>
|
||||
</linearGradient>
|
||||
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 540 B |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 540 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 384 128"><defs><clipPath id="b"><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path id="a" d="m155.5 222.8c-12.64 0-22.875 10.246-22.875 22.872v211.23c0 0.801 0.046 1.608 0.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-0.814-0.056-1.636-0.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381 7e-3 -0.611 0.18-1.25 0.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-0.913 35.206-0.724 36.399-8.244 0.035-0.232 0.057-0.463 0.057-0.695 0.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 0.393-0.048 0.8-0.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356 0.569-28.648 1.861-28.707 7.408-7e-3 0.323 0.049 0.66 0.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418v-166.52c0-12.626-10.243-22.872-22.869-22.872h-211.23z"/></defs><path fill="#fff" stroke-width=".364" d="m131.6 49.002h-15.548v-2.9432h34.296v2.9432h-15.548v44.406h-3.1992v-44.406zm17.914 35.192v-24.378h3.0714v23.994c0 5.119 2.2396 7.6139 7.3583 7.6139 4.6711 0 8.5738-2.4312 12.733-6.3983v-25.21h3.0714v33.592h-3.0714v-5.5662c-3.7112 3.5185-8.0622 6.2705-12.989 6.2705-6.9744-3.6e-4 -10.174-3.8394-10.174-9.918zm39.734 1.7276v-23.355h-5.8867v-2.7512h5.8867v-12.221h3.0713v12.221h8.7658v2.7512h-8.7658v22.907c0 3.5834 1.2159 5.631 5.4388 5.631 1.28 0 2.5593-0.12818 3.5193-0.44792v2.8791c-1.0878 0.19191-2.3674 0.3201-3.7749 0.3201-5.5669 0-8.2545-2.2396-8.2545-7.934zm18.554-0.25601c0-6.3983 5.4388-11.198 23.099-14.141v-2.0477c0-5.1187-2.6875-7.678-7.2942-7.678-5.567 0-9.2781 2.1755-13.053 5.5669l-1.7913-1.9195c4.1591-3.839 8.4456-6.3346 14.908-6.3346 6.9744 0 10.302 3.9672 10.302 10.174v15.804c0 4.0954 0.25601 6.5902 0.95993 8.3178h-3.2632c-0.44792-1.4075-0.76766-3.0713-0.76766-4.9908-4.095 3.5193-8.5742 5.567-13.629 5.567-6.1427 0-9.4697-3.1992-9.4697-8.3182zm23.098-0.25601v-11.581c-16.38 2.8794-20.027 6.9103-20.027 11.645 0 3.7753 2.4956 5.823 6.6543 5.823 4.9912 3.6e-4 9.5338-2.1755 13.373-5.8867zm13.566 7.9981v-33.784h5.5666v5.0549c2.9435-2.8794 7.1667-5.7585 12.669-5.7585 6.4624 0 9.9817 3.7112 9.9817 10.11v24.378h-5.5029v-23.162c0-4.4788-1.9195-6.5906-6.2064-6.5906-4.0309 0-7.4224 2.1114-10.942 5.4388v24.314h-5.5666zm36.278-16.892c0-11.645 7.4224-17.596 15.741-17.596 8.2541 0 15.676 5.9508 15.676 17.596 0 11.581-7.4224 17.596-15.676 17.596s-15.741-6.0149-15.741-17.596zm25.85 0c0-7.0385-3.3914-12.861-10.11-12.861-6.4624 0-10.174 5.2468-10.174 12.861 0 7.1664 3.3274 12.925 10.174 12.925 6.3983 0 10.11-5.1831 10.11-12.925zm16.379 8.702v-21.051h-5.8867v-4.5429h5.8867v-12.029h5.5025v12.029h8.7661v4.5429h-8.7661v19.836c0 3.5834 1.1518 5.375 5.2468 5.375 1.2156 0 2.5593-0.19191 3.4552-0.44792v4.5429c-0.95993 0.19191-3.0717 0.38419-4.7989 0.38419-7.1023-7.3e-4 -9.4056-2.7516-9.4056-8.6387zm20.219 0.19191c0-6.8466 5.8222-11.709 22.586-14.077v-1.5357c0-4.2232-2.2392-6.2705-6.3983-6.2705-5.119 0-8.8939 2.2396-12.221 5.1187l-2.8794-3.4552c3.9031-3.583 8.958-6.2705 15.676-6.2705 8.0622 0 11.261 4.2232 11.261 11.261v14.908c0 4.0954 0.25601 6.5902 0.95993 8.3178h-5.6307c-0.44756-1.4075-0.76766-2.7512-0.76766-4.6708-3.7749 3.5193-7.9981 5.1828-13.053 5.1828-5.823 3.6e-4 -9.5338-3.0706-9.5338-8.5098zm22.586-0.76765v-9.4697c-12.861 2.0477-17.148 5.1828-17.148 9.4059 0 3.2633 2.1755 4.9912 5.6948 4.9912 4.4788-3.6e-4 8.3182-1.8561 11.453-4.9275zm4.3018-37.48c0-3.8769 3.0954-7.0021 6.9719-7.0021s6.942 3.1252 6.942 7.0021c0 3.9067-3.0655 7.032-6.942 7.032s-6.9719-3.1256-6.9719-7.032zm13.102 0c0-3.3958-2.7349-6.2206-6.1303-6.2206s-6.1303 2.8248-6.1303 6.2206c0 3.4257 2.7349 6.2203 6.1303 6.2203s6.1303-2.7946 6.1303-6.2203zm-8.6547-4.0269h2.6147c1.7425 0 2.7043 0.78149 2.7043 2.1034 0 1.2622-0.69081 1.8929-1.7425 2.1034l1.9829 3.6059h-0.99161l-1.9232-3.4858h-1.7731v3.4858h-0.87144zm2.5845 3.5156c1.142 0 1.863-0.3303 1.863-1.3824 0-0.96175-0.72104-1.292-1.8933-1.292h-1.6828v2.6744z"/><g fill="#a01e20" transform="translate(-132.63 -331.29)"><clipPath><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path d="m132.63 222.8h256.98v236.49h-256.98z" clip-path="url(#b)" transform="matrix(.36416 0 0 .36416 84.331 271.09)"/></g></svg>
|
Before Width: | Height: | Size: 4.2 KiB |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 384 128"><defs><clipPath id="b"><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path id="a" d="m155.5 222.8c-12.64 0-22.875 10.246-22.875 22.872v211.23c0 0.801 0.046 1.608 0.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-0.814-0.056-1.636-0.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381 7e-3 -0.611 0.18-1.25 0.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-0.913 35.206-0.724 36.399-8.244 0.035-0.232 0.057-0.463 0.057-0.695 0.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 0.393-0.048 0.8-0.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356 0.569-28.648 1.861-28.707 7.408-7e-3 0.323 0.049 0.66 0.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418v-166.52c0-12.626-10.243-22.872-22.869-22.872h-211.23z"/></defs><path stroke-width=".364" d="m131.6 49.002h-15.548v-2.9432h34.296v2.9432h-15.548v44.406h-3.1992v-44.406zm17.914 35.192v-24.378h3.0714v23.994c0 5.119 2.2396 7.6139 7.3583 7.6139 4.6711 0 8.5738-2.4312 12.733-6.3983v-25.21h3.0714v33.592h-3.0714v-5.5662c-3.7112 3.5185-8.0622 6.2705-12.989 6.2705-6.9744-3.6e-4 -10.174-3.8394-10.174-9.918zm39.734 1.7276v-23.355h-5.8867v-2.7512h5.8867v-12.221h3.0713v12.221h8.7658v2.7512h-8.7658v22.907c0 3.5834 1.2159 5.631 5.4388 5.631 1.28 0 2.5593-0.12818 3.5193-0.44792v2.8791c-1.0878 0.19191-2.3674 0.3201-3.7749 0.3201-5.5669 0-8.2545-2.2396-8.2545-7.934zm18.554-0.25601c0-6.3983 5.4388-11.198 23.099-14.141v-2.0477c0-5.1187-2.6875-7.678-7.2942-7.678-5.567 0-9.2781 2.1755-13.053 5.5669l-1.7913-1.9195c4.1591-3.839 8.4456-6.3346 14.908-6.3346 6.9744 0 10.302 3.9672 10.302 10.174v15.804c0 4.0954 0.25601 6.5902 0.95993 8.3178h-3.2632c-0.44792-1.4075-0.76766-3.0713-0.76766-4.9908-4.095 3.5193-8.5742 5.567-13.629 5.567-6.1427 0-9.4697-3.1992-9.4697-8.3182zm23.098-0.25601v-11.581c-16.38 2.8794-20.027 6.9103-20.027 11.645 0 3.7753 2.4956 5.823 6.6543 5.823 4.9912 3.6e-4 9.5338-2.1755 13.373-5.8867zm13.566 7.9981v-33.784h5.5666v5.0549c2.9435-2.8794 7.1667-5.7585 12.669-5.7585 6.4624 0 9.9817 3.7112 9.9817 10.11v24.378h-5.5029v-23.162c0-4.4788-1.9195-6.5906-6.2064-6.5906-4.0309 0-7.4224 2.1114-10.942 5.4388v24.314h-5.5666zm36.278-16.892c0-11.645 7.4224-17.596 15.741-17.596 8.2541 0 15.676 5.9508 15.676 17.596 0 11.581-7.4224 17.596-15.676 17.596s-15.741-6.0149-15.741-17.596zm25.85 0c0-7.0385-3.3914-12.861-10.11-12.861-6.4624 0-10.174 5.2468-10.174 12.861 0 7.1664 3.3274 12.925 10.174 12.925 6.3983 0 10.11-5.1831 10.11-12.925zm16.379 8.702v-21.051h-5.8867v-4.5429h5.8867v-12.029h5.5025v12.029h8.7661v4.5429h-8.7661v19.836c0 3.5834 1.1518 5.375 5.2468 5.375 1.2156 0 2.5593-0.19191 3.4552-0.44792v4.5429c-0.95993 0.19191-3.0717 0.38419-4.7989 0.38419-7.1023-7.3e-4 -9.4056-2.7516-9.4056-8.6387zm20.219 0.19191c0-6.8466 5.8222-11.709 22.586-14.077v-1.5357c0-4.2232-2.2392-6.2705-6.3983-6.2705-5.119 0-8.8939 2.2396-12.221 5.1187l-2.8794-3.4552c3.9031-3.583 8.958-6.2705 15.676-6.2705 8.0622 0 11.261 4.2232 11.261 11.261v14.908c0 4.0954 0.25601 6.5902 0.95993 8.3178h-5.6307c-0.44756-1.4075-0.76766-2.7512-0.76766-4.6708-3.7749 3.5193-7.9981 5.1828-13.053 5.1828-5.823 3.6e-4 -9.5338-3.0706-9.5338-8.5098zm22.586-0.76765v-9.4697c-12.861 2.0477-17.148 5.1828-17.148 9.4059 0 3.2633 2.1755 4.9912 5.6948 4.9912 4.4788-3.6e-4 8.3182-1.8561 11.453-4.9275zm4.3018-37.48c0-3.8769 3.0954-7.0021 6.9719-7.0021 3.8765 0 6.942 3.1252 6.942 7.0021 0 3.9067-3.0655 7.032-6.942 7.032-3.8765 0-6.9719-3.1256-6.9719-7.032zm13.102 0c0-3.3958-2.7349-6.2206-6.1303-6.2206s-6.1303 2.8248-6.1303 6.2206c0 3.4257 2.7349 6.2203 6.1303 6.2203s6.1303-2.7946 6.1303-6.2203zm-8.6547-4.0269h2.6147c1.7425 0 2.7043 0.78149 2.7043 2.1034 0 1.2622-0.69081 1.8929-1.7425 2.1034l1.9829 3.6059h-0.99161l-1.9232-3.4858h-1.7731v3.4858h-0.87144zm2.5845 3.5156c1.142 0 1.863-0.3303 1.863-1.3824 0-0.96175-0.72104-1.292-1.8933-1.292h-1.6828v2.6744z"/><g fill="#a01e20" transform="translate(-132.63 -331.29)"><clipPath><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path d="m132.63 222.8h256.98v236.49h-256.98z" clip-path="url(#b)" transform="matrix(.36416 0 0 .36416 84.331 271.09)"/></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 257 237"><defs><path id="a" d="M22.875.003C10.235.003 0 10.249 0 22.875v211.23c0 .801.046 1.608.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-.814-.056-1.636-.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381.007-.611.18-1.25.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-.913 35.206-.724 36.399-8.244.035-.232.057-.463.057-.695.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 .393-.048.8-.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356.569-28.648 1.861-28.707 7.408-.007.323.049.66.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418V22.872C256.977 10.246 246.734 0 234.108 0H22.878l-.003.003Z"/></defs><use xlink:href="#a" fill="#A01E20" fill-rule="evenodd"/></svg>
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 881 B |
1
docs/assets/img/file-sharing-sync/bitwarden.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g stroke-width=".033"><path id="Background" fill="#175ddc" d="m33.867 28.575c0 2.9236-2.368 5.2917-5.2917 5.2917h-23.283c-2.9236 0-5.2917-2.368-5.2917-5.2917v-23.283c0-2.9236 2.368-5.2917 5.2917-5.2917h23.283c2.9236 0 5.2917 2.368 5.2917 5.2917z" class="st0"/><path id="Identity" fill="#fff" d="m27.444 4.2532c-0.21497-0.21497-0.46964-0.32081-0.76068-0.32081h-19.5c-0.29435 0-0.5457 0.10583-0.76068 0.32081s-0.32081 0.46964-0.32081 0.76068v13.001c0 0.96904 0.18852 1.9315 0.56555 2.8873 0.37703 0.9525 0.84667 1.7992 1.4056 2.54 0.55893 0.73753 1.2237 1.4585 1.9976 2.1597 0.77391 0.70115 1.4883 1.2799 2.1398 1.7429 0.65484 0.46302 1.3361 0.89958 2.0472 1.313 0.71107 0.41341 1.2171 0.69122 1.5147 0.83674s0.53909 0.26128 0.71768 0.33734c0.1356 0.06615 0.28112 0.10253 0.43987 0.10253s0.30427-0.03307 0.43987-0.10253c0.1819-0.07937 0.42003-0.19182 0.72099-0.33734 0.29766-0.14552 0.80367-0.42664 1.5147-0.83674 0.71107-0.41341 1.3924-0.84997 2.0472-1.313 0.65484-0.46302 1.3692-1.0451 2.1431-1.7429 0.77391-0.70115 1.4387-1.4188 1.9976-2.1597 0.55893-0.74083 1.0253-1.5842 1.4056-2.54 0.37703-0.9525 0.56555-1.9149 0.56555-2.8873v-12.998c0.0033-0.29435-0.10583-0.54901-0.32081-0.76398zm-2.5135 13.884c0 4.7063-7.997 8.761-7.997 8.761v-20.181h7.997v11.42z" class="st1"/></g></svg>
|
After Width: | Height: | Size: 1.4 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><path d="m15.51 32.89c-2.1261-0.2739-4.3143-2.2842-4.62-4.6427-0.2932-1.9717 0.1298-4.2732 1.7597-5.5744 0.71488-0.48726 1.6873-1.0332 2.5449-0.96823 0.02568 0.8729-0.02568 1.9339 0 2.8068-1.0214 0.11372-2.0101 1.2747-1.9896 2.3377 0.02504 1.3833 0.63725 2.6543 1.9681 3.0683 1.4721 0.49534 3.1573 0.35446 4.52-0.46907 1.1258-0.87713 1.2299-2.5102 0.64111-3.753-0.26486-0.6839-0.83579-1.186-1.6107-1.1839v2.4347h-2.185v-5.2415h6.6168v1.8849l-1.8124 0.01676c1.6912 0.9641 1.8646 3.0449 1.7779 4.4885 0.06093 2.4798-2.389 4.5017-4.819 4.772-0.87912 0.06591-1.623 0.06938-2.792 0.02322z" style="fill:#666;stroke-width:.13483"/><path d="m10.783 20.663-0.01389-2.7507h12.404l-0.0014 2.7639-12.389-0.01325z" style="fill:#d8382d;stroke-width:.13483"/><path d="m15.511 16.946v-2.9437h-4.8088v-2.5617h4.8088v-3.3032h2.8763v3.3032h4.7863v2.5617h-4.7863l-0.04742 2.9376-2.8289 0.0061z" style="fill:#40bf4c;stroke-width:.13483"/><path d="m2.8693 0.94568-2.8693 4.0111h1.5926c0.00327 0.44336 0.040782 0.88004 0.10533 1.3061l2.5322-0.38341c-0.045291-0.30133-0.072595-0.60958-0.07584-0.92272h1.5842zm1.5589 5.8354-2.4479 0.73733c0.12454 0.41298 0.27594 0.81477 0.45504 1.2008l2.3215-1.0744c-0.1289-0.27809-0.23949-0.56604-0.32864-0.86373zm0.76682 1.6516-2.153 1.3862c0.96876 1.5022 2.3657 2.703 4.0195 3.4254l1.0238-2.3468c-1.1908-0.51967-2.194-1.3829-2.8903-2.4648zm3.7414 2.7639-0.69098 2.469c0.39093 0.10931 0.79089 0.19165 1.2008 0.24859l0.35392-2.5364c-0.29453-0.041434-0.58263-0.10254-0.86373-0.18117z" style="fill-rule:evenodd;fill:#40bf4c"/><path d="m30.997 0.94568-2.8693 4.0111h1.5926c-0.0032 0.31314-0.03055 0.62139-0.07584 0.92272l2.5322 0.38341c0.06455-0.42609 0.10206-0.86277 0.10533-1.3061h1.5842zm-1.5505 5.8354c-0.08915 0.29769-0.19974 0.58564-0.32864 0.86373l2.3215 1.0744c0.1791-0.38602 0.3305-0.78782 0.45504-1.2008zm-0.76682 1.6516c-0.69629 1.0819-1.6996 1.9451-2.8903 2.4648l1.0238 2.3468c1.6538-0.72247 3.0507-1.9232 4.0195-3.4254zm-3.7414 2.7639c-0.2811 0.07864-0.5692 0.13974-0.86373 0.18117l0.35392 2.5364c0.40991-0.05694 0.80986-0.13928 1.2008-0.24859z" style="fill-rule:evenodd;fill:#40bf4c"/></svg>
|
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 5.5 KiB |
26
docs/assets/img/health/drip.svg
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="223px" height="223px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g><path style="opacity:0.999" fill="#000d19" d="M 9.5,-0.5 C 77.1667,-0.5 144.833,-0.5 212.5,-0.5C 216.833,1.83333 220.167,5.16667 222.5,9.5C 222.5,77.1667 222.5,144.833 222.5,212.5C 220.167,216.833 216.833,220.167 212.5,222.5C 144.833,222.5 77.1667,222.5 9.5,222.5C 5.16667,220.167 1.83333,216.833 -0.5,212.5C -0.5,144.833 -0.5,77.1667 -0.5,9.5C 1.83333,5.16667 5.16667,1.83333 9.5,-0.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#f6f7f7" d="M 78.5,53.5 C 78.5,56.1667 78.5,58.8333 78.5,61.5C 78.5,85.8333 78.5,110.167 78.5,134.5C 75.8333,134.5 73.1667,134.5 70.5,134.5C 71.5807,127.856 70.2474,126.689 66.5,131C 63.6907,132.741 60.6907,133.908 57.5,134.5C 55.1667,134.5 52.8333,134.5 50.5,134.5C 40.9915,133.487 34.4915,128.487 31,119.5C 27.2248,102.379 33.7248,91.3791 50.5,86.5C 52.9496,86.298 55.283,86.6314 57.5,87.5C 62.1899,88.3436 66.3566,90.3436 70,93.5C 70.4997,85.1733 70.6664,76.84 70.5,68.5C 70.5,65.8333 70.5,63.1667 70.5,60.5C 70.5,55.5 70.5,50.5 70.5,45.5C 73.1667,45.5 75.8333,45.5 78.5,45.5C 78.5,48.1667 78.5,50.8333 78.5,53.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#4ba59e" d="M 173.5,87.5 C 170.833,87.5 168.167,87.5 165.5,87.5C 152.554,62.4243 131.887,50.591 103.5,52C 94.49,53.5098 86.1566,56.6765 78.5,61.5C 78.5,58.8333 78.5,56.1667 78.5,53.5C 110.195,38.9759 138.029,44.3092 162,69.5C 166.107,75.3951 169.941,81.3951 173.5,87.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#010e19" d="M 165.5,87.5 C 160.636,88.0153 156.469,90.0153 153,93.5C 152.505,91.5273 152.338,89.5273 152.5,87.5C 149.833,87.5 147.167,87.5 144.5,87.5C 143.668,111.663 143.168,135.997 143,160.5C 119.036,174.794 95.8698,173.628 73.5,157C 66.2896,150.713 60.9563,143.213 57.5,134.5C 60.6907,133.908 63.6907,132.741 66.5,131C 70.2474,126.689 71.5807,127.856 70.5,134.5C 73.1667,134.5 75.8333,134.5 78.5,134.5C 78.5,110.167 78.5,85.8333 78.5,61.5C 86.1566,56.6765 94.49,53.5098 103.5,52C 131.887,50.591 152.554,62.4243 165.5,87.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#4aa59e" d="M 70.5,60.5 C 70.5,63.1667 70.5,65.8333 70.5,68.5C 64.1798,73.4846 59.8465,79.818 57.5,87.5C 55.283,86.6314 52.9496,86.298 50.5,86.5C 52.6286,80.2417 55.7953,74.5751 60,69.5C 63.0977,65.8926 66.5977,62.8926 70.5,60.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#06121c" d="M 70.5,68.5 C 70.6664,76.84 70.4997,85.1733 70,93.5C 66.3566,90.3436 62.1899,88.3436 57.5,87.5C 59.8465,79.818 64.1798,73.4846 70.5,68.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#f1f1f1" d="M 125.5,72.5 C 131.758,73.4774 133.091,76.6441 129.5,82C 123.324,83.1875 121.158,80.6875 123,74.5C 123.995,73.9341 124.828,73.2674 125.5,72.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#f7f7f7" d="M 144.5,87.5 C 147.167,87.5 149.833,87.5 152.5,87.5C 152.338,89.5273 152.505,91.5273 153,93.5C 156.469,90.0153 160.636,88.0153 165.5,87.5C 168.167,87.5 170.833,87.5 173.5,87.5C 185.551,90.058 192.217,97.558 193.5,110C 192.227,123.766 184.894,131.932 171.5,134.5C 169.167,134.5 166.833,134.5 164.5,134.5C 160.347,133.197 156.514,131.197 153,128.5C 152.5,136.493 152.334,144.493 152.5,152.5C 152.5,155.5 152.5,158.5 152.5,161.5C 152.5,166.167 152.5,170.833 152.5,175.5C 149.833,175.5 147.167,175.5 144.5,175.5C 144.5,172.833 144.5,170.167 144.5,167.5C 144.5,140.833 144.5,114.167 144.5,87.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#acadaf" d="M 98.5,92.5 C 98.44,93.0431 98.1067,93.3764 97.5,93.5C 96.5481,91.9547 96.2148,90.288 96.5,88.5C 94.1667,88.5 91.8333,88.5 89.5,88.5C 89.5,103.5 89.5,118.5 89.5,133.5C 91.8333,133.5 94.1667,133.5 96.5,133.5C 96.1734,124.318 96.5067,115.318 97.5,106.5C 97.5,115.833 97.5,125.167 97.5,134.5C 94.5,134.5 91.5,134.5 88.5,134.5C 88.5,118.833 88.5,103.167 88.5,87.5C 91.5,87.5 94.5,87.5 97.5,87.5C 97.2155,89.4147 97.5489,91.0813 98.5,92.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#fafafa" d="M 97.5,106.5 C 96.5067,115.318 96.1734,124.318 96.5,133.5C 94.1667,133.5 91.8333,133.5 89.5,133.5C 89.5,118.5 89.5,103.5 89.5,88.5C 91.8333,88.5 94.1667,88.5 96.5,88.5C 96.2148,90.288 96.5481,91.9547 97.5,93.5C 98.1067,93.3764 98.44,93.0431 98.5,92.5C 102.199,88.4866 106.865,86.8199 112.5,87.5C 112.5,90.5 112.5,93.5 112.5,96.5C 104.826,95.8435 99.8257,99.1768 97.5,106.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#aaacad" d="M 122.5,87.5 C 125.5,87.5 128.5,87.5 131.5,87.5C 131.5,103.167 131.5,118.833 131.5,134.5C 128.5,134.5 125.5,134.5 122.5,134.5C 122.5,118.833 122.5,103.167 122.5,87.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#fefffe" d="M 123.5,88.5 C 125.833,88.5 128.167,88.5 130.5,88.5C 130.5,103.5 130.5,118.5 130.5,133.5C 128.167,133.5 125.833,133.5 123.5,133.5C 123.5,118.5 123.5,103.5 123.5,88.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#4ca59e" d="M 53.5,95.5 C 52.8355,100.492 52.1688,105.492 51.5,110.5C 52.1683,115.841 52.835,121.175 53.5,126.5C 50.7718,126.829 48.4385,126.163 46.5,124.5C 45.2032,115.495 45.2032,106.495 46.5,97.5C 46.6107,96.8826 46.944,96.3826 47.5,96C 49.4727,95.5045 51.4727,95.3379 53.5,95.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#04111b" d="M 53.5,95.5 C 66.8791,98.589 71.0458,106.589 66,119.5C 62.9153,123.792 58.7486,126.125 53.5,126.5C 52.835,121.175 52.1683,115.841 51.5,110.5C 52.1688,105.492 52.8355,100.492 53.5,95.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#06131c" d="M 168.5,95.5 C 169.373,100.126 170.04,104.792 170.5,109.5C 169.941,115.187 169.274,120.854 168.5,126.5C 159.224,125.223 154.558,119.89 154.5,110.5C 155.039,101.628 159.705,96.6284 168.5,95.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#4aa59d" d="M 168.5,95.5 C 171.495,95.2938 174.162,95.9605 176.5,97.5C 176.81,106.32 176.477,115.32 175.5,124.5C 173.485,125.924 171.152,126.59 168.5,126.5C 169.274,120.854 169.941,115.187 170.5,109.5C 170.04,104.792 169.373,100.126 168.5,95.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#07131c" d="M 46.5,97.5 C 45.2032,106.495 45.2032,115.495 46.5,124.5C 40.9043,121.818 38.2376,117.318 38.5,111C 38.2505,104.652 40.9172,100.152 46.5,97.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#06111b" d="M 176.5,97.5 C 184.903,102.999 186.736,110.332 182,119.5C 180.223,121.79 178.056,123.457 175.5,124.5C 176.477,115.32 176.81,106.32 176.5,97.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#02101a" d="M 164.5,134.5 C 162.495,141.837 158.495,147.837 152.5,152.5C 152.334,144.493 152.5,136.493 153,128.5C 156.514,131.197 160.347,133.197 164.5,134.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#4fa099" d="M 144.5,87.5 C 144.5,114.167 144.5,140.833 144.5,167.5C 143.508,167.328 142.842,167.662 142.5,168.5C 111.15,182.997 83.6503,177.663 60,152.5C 55.723,147.064 52.5564,141.064 50.5,134.5C 52.8333,134.5 55.1667,134.5 57.5,134.5C 60.9563,143.213 66.2896,150.713 73.5,157C 95.8698,173.628 119.036,174.794 143,160.5C 143.168,135.997 143.668,111.663 144.5,87.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#4ba59e" d="M 164.5,134.5 C 166.833,134.5 169.167,134.5 171.5,134.5C 167.922,145.415 161.589,154.415 152.5,161.5C 152.5,158.5 152.5,155.5 152.5,152.5C 158.495,147.837 162.495,141.837 164.5,134.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#62696a" d="M 142.5,168.5 C 142.842,167.662 143.508,167.328 144.5,167.5C 144.5,170.167 144.5,172.833 144.5,175.5C 143.833,173.167 143.167,170.833 142.5,168.5 Z"/></g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
29
docs/assets/img/health/euki.svg
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="240px" height="240px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g><path style="opacity:1" fill="#fefefe" d="M -0.5,-0.5 C 79.5,-0.5 159.5,-0.5 239.5,-0.5C 239.5,79.5 239.5,159.5 239.5,239.5C 159.5,239.5 79.5,239.5 -0.5,239.5C -0.5,159.5 -0.5,79.5 -0.5,-0.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#53786c" d="M 101.5,28.5 C 101.231,30.4286 101.731,32.0953 103,33.5C 103.974,31.1224 104.641,31.4557 105,34.5C 105.667,31.8333 106.333,31.8333 107,34.5C 109.316,33.6327 111.316,34.2993 113,36.5C 116.089,36.7819 119.256,36.7819 122.5,36.5C 126.361,37.8427 126.361,39.3427 122.5,41C 123.276,42.7698 123.11,44.6031 122,46.5C 121.667,46.1667 121.333,45.8333 121,45.5C 118.669,51.3163 116.169,56.483 113.5,61C 109.651,64.8464 105.484,68.3464 101,71.5C 100.667,71.1667 100.333,70.8333 100,70.5C 96.892,72.87 93.5587,74.87 90,76.5C 89.586,76.0426 89.086,75.7093 88.5,75.5C 87.4805,76.6872 86.3139,77.6872 85,78.5C 82.867,77.5823 80.7004,77.4156 78.5,78C 78.1667,77 77.8333,76 77.5,75C 80.1667,74.3333 80.1667,73.6667 77.5,73C 77.6158,71.7318 77.9491,70.3985 78.5,69C 77.6919,68.6924 77.0253,68.1924 76.5,67.5C 77.3966,67.3309 78.3966,66.9976 79.5,66.5C 78.3147,65.147 76.9814,63.9803 75.5,63C 77.9913,62.3741 77.9913,61.5407 75.5,60.5C 76.0253,59.8076 76.6919,59.3076 77.5,59C 73.1482,58.5811 72.8149,57.9145 76.5,57C 73.6384,56.0695 71.305,54.4029 69.5,52C 69.8333,51.6667 70.1667,51.3333 70.5,51C 69.552,50.5172 68.552,50.3505 67.5,50.5C 67.5,49.5 67.5,48.5 67.5,47.5C 78.1521,40.1684 89.4854,33.8351 101.5,28.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#558172" d="M 133.5,27.5 C 140.097,29.4651 146.097,32.4651 151.5,36.5C 153.05,39.1717 152.55,41.5051 150,43.5C 143.72,68.3435 129.72,86.3435 108,97.5C 106.927,96.7203 105.76,96.887 104.5,98C 106.301,98.3173 106.634,98.984 105.5,100C 100.86,100.871 97.1928,103.205 94.5,107C 94.8333,107.333 95.1667,107.667 95.5,108C 90.4919,108.76 88.1586,111.593 88.5,116.5C 88.9452,113.635 88.2785,111.135 86.5,109C 80.8431,108.501 75.1764,108.334 69.5,108.5C 69.5,105.5 69.5,102.5 69.5,99.5C 76.5079,99.6663 83.5079,99.4996 90.5,99C 93.3851,95.0562 93.0517,91.5562 89.5,88.5C 83.5,87.8333 77.5,87.1667 71.5,86.5C 76.5111,86.6659 81.5111,86.4993 86.5,86C 85.8333,85.3333 85.1667,84.6667 84.5,84C 87.1667,83.6667 89.8333,83.3333 92.5,83C 93.6667,82.5 94.5,81.6667 95,80.5C 95.6891,81.3567 96.5224,82.0233 97.5,82.5C 98.9122,81.1936 100.579,80.3603 102.5,80C 101.66,78.3335 102.16,78.1669 104,79.5C 107.834,77.753 110.834,75.0863 113,71.5C 115.695,70.4326 117.695,68.0993 119,64.5C 119.333,64.8333 119.667,65.1667 120,65.5C 124.702,59.7932 127.369,53.4599 128,46.5C 128.93,44.4476 130.43,42.9476 132.5,42C 131.601,39.4622 131.934,36.9622 133.5,34.5C 132.234,32.0276 132.234,29.6943 133.5,27.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#517c6f" d="M 133.5,27.5 C 132.234,29.6943 132.234,32.0276 133.5,34.5C 131.934,36.9622 131.601,39.4622 132.5,42C 130.43,42.9476 128.93,44.4476 128,46.5C 127.369,53.4599 124.702,59.7932 120,65.5C 119.667,65.1667 119.333,64.8333 119,64.5C 117.695,68.0993 115.695,70.4326 113,71.5C 110.834,75.0863 107.834,77.753 104,79.5C 102.16,78.1669 101.66,78.3335 102.5,80C 100.579,80.3603 98.9122,81.1936 97.5,82.5C 96.5224,82.0233 95.6891,81.3567 95,80.5C 94.5,81.6667 93.6667,82.5 92.5,83C 89.8333,83.3333 87.1667,83.6667 84.5,84C 85.1667,84.6667 85.8333,85.3333 86.5,86C 81.5111,86.4993 76.5111,86.6659 71.5,86.5C 64.343,86.7018 57.843,84.3684 52,79.5C 52.0016,75.3318 51.8349,71.1651 51.5,67C 52.2931,65.9148 52.9598,64.7481 53.5,63.5C 53.6837,61.5851 53.3503,59.5851 52.5,57.5C 56.9756,53.4254 61.9756,50.0921 67.5,47.5C 67.5,48.5 67.5,49.5 67.5,50.5C 68.552,50.3505 69.552,50.5172 70.5,51C 70.1667,51.3333 69.8333,51.6667 69.5,52C 71.305,54.4029 73.6384,56.0695 76.5,57C 72.8149,57.9145 73.1482,58.5811 77.5,59C 76.6919,59.3076 76.0253,59.8076 75.5,60.5C 77.9913,61.5407 77.9913,62.3741 75.5,63C 76.9814,63.9803 78.3147,65.147 79.5,66.5C 78.3966,66.9976 77.3966,67.3309 76.5,67.5C 77.0253,68.1924 77.6919,68.6924 78.5,69C 77.9491,70.3985 77.6158,71.7318 77.5,73C 80.1667,73.6667 80.1667,74.3333 77.5,75C 77.8333,76 78.1667,77 78.5,78C 80.7004,77.4156 82.867,77.5823 85,78.5C 86.3139,77.6872 87.4805,76.6872 88.5,75.5C 89.086,75.7093 89.586,76.0426 90,76.5C 93.5587,74.87 96.892,72.87 100,70.5C 100.333,70.8333 100.667,71.1667 101,71.5C 105.484,68.3464 109.651,64.8464 113.5,61C 116.169,56.483 118.669,51.3163 121,45.5C 121.333,45.8333 121.667,46.1667 122,46.5C 123.11,44.6031 123.276,42.7698 122.5,41C 126.361,39.3427 126.361,37.8427 122.5,36.5C 119.256,36.7819 116.089,36.7819 113,36.5C 111.316,34.2993 109.316,33.6327 107,34.5C 106.333,31.8333 105.667,31.8333 105,34.5C 104.641,31.4557 103.974,31.1224 103,33.5C 101.731,32.0953 101.231,30.4286 101.5,28.5C 107.267,25.6186 113.267,23.2853 119.5,21.5C 124.641,22.6051 129.307,24.6051 133.5,27.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#5a8674" d="M 151.5,36.5 C 159.986,39.5711 167.653,43.9044 174.5,49.5C 174.84,53.1309 174.006,56.4642 172,59.5C 171.667,59.1667 171.333,58.8333 171,58.5C 169.674,63.1603 167.341,67.1603 164,70.5C 162.334,69.6598 162.167,70.1598 163.5,72C 160.803,74.0395 158.137,76.0395 155.5,78C 154.5,80.3333 152.833,82 150.5,83C 150.833,83.3333 151.167,83.6667 151.5,84C 149.261,86.0865 146.927,87.9198 144.5,89.5C 141.59,88.1861 139.09,88.8527 137,91.5C 136.5,106.496 136.333,121.496 136.5,136.5C 135.829,133.242 134.996,129.909 134,126.5C 133.692,127.308 133.192,127.975 132.5,128.5C 132.167,127.833 131.833,127.167 131.5,126.5C 130.808,127.025 130.308,127.692 130,128.5C 129.828,122.319 129.328,116.319 128.5,110.5C 126.243,108.416 123.743,108.083 121,109.5C 119.755,115.39 119.088,121.39 119,127.5C 115.399,132.321 111.399,132.654 107,128.5C 105.804,122.581 105.138,116.581 105,110.5C 101.742,107.654 98.9083,107.987 96.5,111.5C 95.2114,117.191 95.2114,123.025 96.5,129C 93.9898,130.293 93.3231,132.126 94.5,134.5C 94.0428,136.598 93.0428,138.264 91.5,139.5C 91.9383,137.874 92.2716,136.207 92.5,134.5C 92.6598,132.645 91.9931,131.312 90.5,130.5C 83.6866,129.509 76.6866,129.175 69.5,129.5C 69.5,125.833 69.5,122.167 69.5,118.5C 75.1764,118.666 80.8431,118.499 86.5,118C 87.0442,117.283 87.7109,116.783 88.5,116.5C 88.1586,111.593 90.4919,108.76 95.5,108C 95.1667,107.667 94.8333,107.333 94.5,107C 97.1928,103.205 100.86,100.871 105.5,100C 106.634,98.984 106.301,98.3173 104.5,98C 105.76,96.887 106.927,96.7203 108,97.5C 129.72,86.3435 143.72,68.3435 150,43.5C 152.55,41.5051 153.05,39.1717 151.5,36.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#648d78" d="M 174.5,49.5 C 186.306,55.3033 195.973,63.6367 203.5,74.5C 199.523,78.3245 196.023,82.6578 193,87.5C 192.667,86.8333 192.333,86.1667 192,85.5C 188.962,89.5017 185.962,92.8351 183,95.5C 182.768,94.2625 182.268,93.2625 181.5,92.5C 181.586,91.5041 181.252,90.6708 180.5,90C 173.678,88.1624 171.178,90.6624 173,97.5C 173.708,98.3805 174.542,99.0472 175.5,99.5C 176.077,102.55 174.91,104.55 172,105.5C 171.138,107.087 170.471,108.754 170,110.5C 168.989,111.337 167.822,111.67 166.5,111.5C 166.657,112.873 166.49,114.207 166,115.5C 165.31,116.738 164.81,116.738 164.5,115.5C 165.999,111.831 164.832,109.498 161,108.5C 155.817,111.001 151.151,114.335 147,118.5C 146.667,109.167 146.333,99.8333 146,90.5C 145.617,89.944 145.117,89.6107 144.5,89.5C 146.927,87.9198 149.261,86.0865 151.5,84C 151.167,83.6667 150.833,83.3333 150.5,83C 152.833,82 154.5,80.3333 155.5,78C 158.137,76.0395 160.803,74.0395 163.5,72C 162.167,70.1598 162.334,69.6598 164,70.5C 167.341,67.1603 169.674,63.1603 171,58.5C 171.333,58.8333 171.667,59.1667 172,59.5C 174.006,56.4642 174.84,53.1309 174.5,49.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#6d9279" d="M 203.5,74.5 C 206.277,76.9505 208.277,79.9505 209.5,83.5C 201.726,91.5946 194.06,99.9279 186.5,108.5C 184.604,109.275 182.937,110.275 181.5,111.5C 179.947,108.746 177.614,107.913 174.5,109C 173.177,109.816 172.511,110.983 172.5,112.5C 171.671,120.657 171.171,128.99 171,137.5C 170.423,132.379 169.423,132.379 168,137.5C 167.722,136.584 167.222,135.918 166.5,135.5C 163.794,130.614 160.461,126.114 156.5,122C 159.331,119.999 161.997,117.833 164.5,115.5C 164.81,116.738 165.31,116.738 166,115.5C 166.49,114.207 166.657,112.873 166.5,111.5C 167.822,111.67 168.989,111.337 170,110.5C 170.471,108.754 171.138,107.087 172,105.5C 174.91,104.55 176.077,102.55 175.5,99.5C 180.323,99.6728 182.323,97.3394 181.5,92.5C 182.268,93.2625 182.768,94.2625 183,95.5C 185.962,92.8351 188.962,89.5017 192,85.5C 192.333,86.1667 192.667,86.8333 193,87.5C 196.023,82.6578 199.523,78.3245 203.5,74.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#467e6f" d="M 52.5,57.5 C 53.3503,59.5851 53.6837,61.5851 53.5,63.5C 52.9598,64.7481 52.2931,65.9148 51.5,67C 51.8349,71.1651 52.0016,75.3318 52,79.5C 57.843,84.3684 64.343,86.7018 71.5,86.5C 77.5,87.1667 83.5,87.8333 89.5,88.5C 80.4938,88.3336 71.4938,88.5002 62.5,89C 61.5838,89.3742 60.7504,89.8742 60,90.5C 58.5318,105.737 58.0318,121.07 58.5,136.5C 57.6695,125.674 57.1695,114.674 57,103.5C 56.8078,105.577 56.3078,107.577 55.5,109.5C 54.0944,108.332 52.9277,108.665 52,110.5C 50,107.833 48,107.833 46,110.5C 45.6667,110.167 45.3333,109.833 45,109.5C 42.5314,111.645 40.5314,110.979 39,107.5C 38.3333,110.167 37.6667,110.167 37,107.5C 34.0964,109.598 31.2631,109.931 28.5,108.5C 27.3044,108.846 27.3044,109.346 28.5,110C 23.9771,111.149 21.6438,113.982 21.5,118.5C 20.9635,92.5722 31.2968,72.2388 52.5,57.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#f7f9f8" d="M 89.5,88.5 C 93.0517,91.5562 93.3851,95.0562 90.5,99C 83.5079,99.4996 76.5079,99.6663 69.5,99.5C 69.5,102.5 69.5,105.5 69.5,108.5C 75.1764,108.334 80.8431,108.501 86.5,109C 88.2785,111.135 88.9452,113.635 88.5,116.5C 87.7109,116.783 87.0442,117.283 86.5,118C 80.8431,118.499 75.1764,118.666 69.5,118.5C 68.5166,122.298 68.1832,126.298 68.5,130.5C 75.8333,130.5 83.1667,130.5 90.5,130.5C 91.9931,131.312 92.6598,132.645 92.5,134.5C 92.2716,136.207 91.9383,137.874 91.5,139.5C 90.5084,139.328 89.8417,139.662 89.5,140.5C 80.1607,140.666 70.8274,140.5 61.5,140C 60.3636,138.855 59.3636,137.688 58.5,136.5C 58.0318,121.07 58.5318,105.737 60,90.5C 60.7504,89.8742 61.5838,89.3742 62.5,89C 71.4938,88.5002 80.4938,88.3336 89.5,88.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#fafbfa" d="M 144.5,89.5 C 145.117,89.6107 145.617,89.944 146,90.5C 146.333,99.8333 146.667,109.167 147,118.5C 151.151,114.335 155.817,111.001 161,108.5C 164.832,109.498 165.999,111.831 164.5,115.5C 161.997,117.833 159.331,119.999 156.5,122C 160.461,126.114 163.794,130.614 166.5,135.5C 166.532,140.213 164.199,141.713 159.5,140C 156,135.833 152.5,131.667 149,127.5C 148.586,127.957 148.086,128.291 147.5,128.5C 146.676,131.785 146.176,135.118 146,138.5C 145.302,139.691 144.469,140.691 143.5,141.5C 139.763,141.759 137.43,140.093 136.5,136.5C 136.333,121.496 136.5,106.496 137,91.5C 139.09,88.8527 141.59,88.1861 144.5,89.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#f4f6f5" d="M 181.5,92.5 C 182.323,97.3394 180.323,99.6728 175.5,99.5C 174.542,99.0472 173.708,98.3805 173,97.5C 171.178,90.6624 173.678,88.1624 180.5,90C 181.252,90.6708 181.586,91.5041 181.5,92.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#79987c" d="M 209.5,83.5 C 214.012,89.7035 216.346,96.7035 216.5,104.5C 216.719,105.675 216.386,106.675 215.5,107.5C 206.806,113.672 199.972,121.006 195,129.5C 193.184,131.441 191.184,132.108 189,131.5C 186.904,132.715 187.071,133.549 189.5,134C 188.747,135.487 187.914,135.654 187,134.5C 185.945,137.056 184.112,138.723 181.5,139.5C 181.5,130.167 181.5,120.833 181.5,111.5C 182.937,110.275 184.604,109.275 186.5,108.5C 194.06,99.9279 201.726,91.5946 209.5,83.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#4e8775" d="M 58.5,136.5 C 59.3636,137.688 60.3636,138.855 61.5,140C 70.8274,140.5 80.1607,140.666 89.5,140.5C 80.676,141.33 71.676,141.83 62.5,142C 63.8333,142.333 65.1667,142.667 66.5,143C 63.7372,146.435 60.4039,149.101 56.5,151C 56.8333,151.333 57.1667,151.667 57.5,152C 56.5,152.333 55.5,152.667 54.5,153C 51.4791,157.018 48.1458,160.684 44.5,164C 45.8333,165 47.1667,166 48.5,167C 48.2716,167.399 47.9382,167.565 47.5,167.5C 31.2433,155.326 22.5767,138.992 21.5,118.5C 21.6438,113.982 23.9771,111.149 28.5,110C 27.3044,109.346 27.3044,108.846 28.5,108.5C 31.2631,109.931 34.0964,109.598 37,107.5C 37.6667,110.167 38.3333,110.167 39,107.5C 40.5314,110.979 42.5314,111.645 45,109.5C 45.3333,109.833 45.6667,110.167 46,110.5C 48,107.833 50,107.833 52,110.5C 52.9277,108.665 54.0944,108.332 55.5,109.5C 56.3078,107.577 56.8078,105.577 57,103.5C 57.1695,114.674 57.6695,125.674 58.5,136.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#f9fafa" d="M 128.5,110.5 C 128.666,117.508 128.5,124.508 128,131.5C 121.85,140.647 113.683,142.981 103.5,138.5C 101.5,136.329 99.6665,133.996 98,131.5C 96.7264,124.897 96.2264,118.23 96.5,111.5C 98.9083,107.987 101.742,107.654 105,110.5C 105.138,116.581 105.804,122.581 107,128.5C 111.399,132.654 115.399,132.321 119,127.5C 119.088,121.39 119.755,115.39 121,109.5C 123.743,108.083 126.243,108.416 128.5,110.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#fafbfa" d="M 181.5,111.5 C 181.5,120.833 181.5,130.167 181.5,139.5C 179.621,140.341 177.621,140.675 175.5,140.5C 174.25,140.423 173.417,139.756 173,138.5C 172.5,129.84 172.334,121.173 172.5,112.5C 172.511,110.983 173.177,109.816 174.5,109C 177.614,107.913 179.947,108.746 181.5,111.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#d3dbd7" d="M 69.5,118.5 C 69.5,122.167 69.5,125.833 69.5,129.5C 76.6866,129.175 83.6866,129.509 90.5,130.5C 83.1667,130.5 75.8333,130.5 68.5,130.5C 68.1832,126.298 68.5166,122.298 69.5,118.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#82987d" d="M 216.5,104.5 C 220.235,128.213 213.235,148.213 195.5,164.5C 194.668,163.671 195.001,162.838 196.5,162C 194.729,159.887 193.229,160.053 192,162.5C 189.792,161.555 187.292,161.555 184.5,162.5C 182.436,160.739 180.269,160.405 178,161.5C 176.266,160.751 174.433,160.251 172.5,160C 173.672,159.581 174.672,158.915 175.5,158C 173.668,157.252 172.001,156.252 170.5,155C 171.951,155.263 173.284,155.096 174.5,154.5C 173.873,153.583 173.539,152.583 173.5,151.5C 173.938,151.565 174.272,151.399 174.5,151C 172.671,149.887 171.837,148.387 172,146.5C 173.637,144.19 175.804,142.69 178.5,142C 177.263,141.768 176.263,141.268 175.5,140.5C 177.621,140.675 179.621,140.341 181.5,139.5C 184.112,138.723 185.945,137.056 187,134.5C 187.914,135.654 188.747,135.487 189.5,134C 187.071,133.549 186.904,132.715 189,131.5C 191.184,132.108 193.184,131.441 195,129.5C 199.972,121.006 206.806,113.672 215.5,107.5C 216.386,106.675 216.719,105.675 216.5,104.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#678d7a" d="M 96.5,111.5 C 96.2264,118.23 96.7264,124.897 98,131.5C 99.6665,133.996 101.5,136.329 103.5,138.5C 100.658,139.172 98.1575,140.506 96,142.5C 95.6667,142.167 95.3333,141.833 95,141.5C 80.3684,150.109 67.5351,160.109 56.5,171.5C 56.8627,172.183 57.1961,172.85 57.5,173.5C 53.4945,172.502 50.1612,170.502 47.5,167.5C 47.9382,167.565 48.2716,167.399 48.5,167C 47.1667,166 45.8333,165 44.5,164C 48.1458,160.684 51.4791,157.018 54.5,153C 55.5,152.667 56.5,152.333 57.5,152C 57.1667,151.667 56.8333,151.333 56.5,151C 60.4039,149.101 63.7372,146.435 66.5,143C 65.1667,142.667 63.8333,142.333 62.5,142C 71.676,141.83 80.676,141.33 89.5,140.5C 89.8417,139.662 90.5084,139.328 91.5,139.5C 93.0428,138.264 94.0428,136.598 94.5,134.5C 93.3231,132.126 93.9898,130.293 96.5,129C 95.2114,123.025 95.2114,117.191 96.5,111.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#728d7b" d="M 128.5,110.5 C 129.328,116.319 129.828,122.319 130,128.5C 130.308,127.692 130.808,127.025 131.5,126.5C 131.833,127.167 132.167,127.833 132.5,128.5C 133.192,127.975 133.692,127.308 134,126.5C 134.996,129.909 135.829,133.242 136.5,136.5C 137.43,140.093 139.763,141.759 143.5,141.5C 141.49,142.693 139.324,142.693 137,141.5C 133.066,141.964 129.066,142.964 125,144.5C 124.667,144.167 124.333,143.833 124,143.5C 115.309,147.301 106.142,150.801 96.5,154C 85.9101,160.916 75.5768,168.249 65.5,176C 66.5707,176.852 67.5707,177.685 68.5,178.5C 64.4179,177.624 60.7512,175.957 57.5,173.5C 57.1961,172.85 56.8627,172.183 56.5,171.5C 67.5351,160.109 80.3684,150.109 95,141.5C 95.3333,141.833 95.6667,142.167 96,142.5C 98.1575,140.506 100.658,139.172 103.5,138.5C 113.683,142.981 121.85,140.647 128,131.5C 128.5,124.508 128.666,117.508 128.5,110.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#7c917c" d="M 172.5,112.5 C 172.334,121.173 172.5,129.84 173,138.5C 173.417,139.756 174.25,140.423 175.5,140.5C 176.263,141.268 177.263,141.768 178.5,142C 175.804,142.69 173.637,144.19 172,146.5C 171.837,148.387 172.671,149.887 174.5,151C 174.272,151.399 173.938,151.565 173.5,151.5C 171.533,151.739 169.699,151.406 168,150.5C 163.467,152.036 158.8,153.036 154,153.5C 149.118,152.871 143.618,152.704 137.5,153C 136.5,152.667 135.5,152.333 134.5,152C 136.623,151.185 138.623,150.185 140.5,149C 139.892,148.13 139.059,147.63 138,147.5C 119.823,150.136 102.323,156.303 85.5,166C 80.2114,169.62 75.2114,173.62 70.5,178C 71.5707,178.852 72.5707,179.685 73.5,180.5C 71.4471,180.598 69.7804,179.931 68.5,178.5C 67.5707,177.685 66.5707,176.852 65.5,176C 75.5768,168.249 85.9101,160.916 96.5,154C 106.142,150.801 115.309,147.301 124,143.5C 124.333,143.833 124.667,144.167 125,144.5C 129.066,142.964 133.066,141.964 137,141.5C 139.324,142.693 141.49,142.693 143.5,141.5C 144.469,140.691 145.302,139.691 146,138.5C 146.176,135.118 146.676,131.785 147.5,128.5C 148.086,128.291 148.586,127.957 149,127.5C 152.5,131.667 156,135.833 159.5,140C 164.199,141.713 166.532,140.213 166.5,135.5C 167.222,135.918 167.722,136.584 168,137.5C 169.423,132.379 170.423,132.379 171,137.5C 171.171,128.99 171.671,120.657 172.5,112.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#86907b" d="M 173.5,151.5 C 173.539,152.583 173.873,153.583 174.5,154.5C 173.284,155.096 171.951,155.263 170.5,155C 172.001,156.252 173.668,157.252 175.5,158C 174.672,158.915 173.672,159.581 172.5,160C 174.433,160.251 176.266,160.751 178,161.5C 180.269,160.405 182.436,160.739 184.5,162.5C 187.292,161.555 189.792,161.555 192,162.5C 193.229,160.053 194.729,159.887 196.5,162C 195.001,162.838 194.668,163.671 195.5,164.5C 189.837,170.006 183.17,174.006 175.5,176.5C 175.146,174.459 175.146,172.626 175.5,171C 174.833,170.333 174.167,169.667 173.5,169C 169.579,168.026 165.746,166.859 162,165.5C 160.984,166.634 160.317,166.301 160,164.5C 158.333,164.5 156.667,164.5 155,164.5C 154.667,163.833 154.333,163.167 154,162.5C 151.667,163.833 150.667,163.167 151,160.5C 152.135,160.273 153.302,159.94 154.5,159.5C 148.863,158.337 143.196,158.17 137.5,159C 134.128,159.134 130.961,159.968 128,161.5C 126.044,161.339 124.044,161.006 122,160.5C 115.047,162.615 108.213,165.115 101.5,168C 94.228,172.274 87.228,176.941 80.5,182C 82.3427,182.159 83.0093,182.659 82.5,183.5C 79.2154,183.072 76.2154,182.072 73.5,180.5C 72.5707,179.685 71.5707,178.852 70.5,178C 75.2114,173.62 80.2114,169.62 85.5,166C 102.323,156.303 119.823,150.136 138,147.5C 139.059,147.63 139.892,148.13 140.5,149C 138.623,150.185 136.623,151.185 134.5,152C 135.5,152.333 136.5,152.667 137.5,153C 143.618,152.704 149.118,152.871 154,153.5C 158.8,153.036 163.467,152.036 168,150.5C 169.699,151.406 171.533,151.739 173.5,151.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#93907b" d="M 175.5,176.5 C 170.618,179.464 165.285,181.464 159.5,182.5C 155.992,179.56 152.158,176.894 148,174.5C 130.584,170.68 114.084,173.847 98.5,184C 97.7476,184.671 97.4142,185.504 97.5,186.5C 92.1059,186.876 87.1059,185.876 82.5,183.5C 83.0093,182.659 82.3427,182.159 80.5,182C 87.228,176.941 94.228,172.274 101.5,168C 108.213,165.115 115.047,162.615 122,160.5C 124.044,161.006 126.044,161.339 128,161.5C 130.961,159.968 134.128,159.134 137.5,159C 143.196,158.17 148.863,158.337 154.5,159.5C 153.302,159.94 152.135,160.273 151,160.5C 150.667,163.167 151.667,163.833 154,162.5C 154.333,163.167 154.667,163.833 155,164.5C 156.667,164.5 158.333,164.5 160,164.5C 160.317,166.301 160.984,166.634 162,165.5C 165.746,166.859 169.579,168.026 173.5,169C 174.167,169.667 174.833,170.333 175.5,171C 175.146,172.626 175.146,174.459 175.5,176.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#a3907b" d="M 159.5,182.5 C 150.977,184.717 142.311,186.717 133.5,188.5C 133.389,187.883 133.056,187.383 132.5,187C 124.54,185.73 117.374,186.897 111,190.5C 110.329,189.748 109.496,189.414 108.5,189.5C 105.009,187.892 101.342,186.892 97.5,186.5C 97.4142,185.504 97.7476,184.671 98.5,184C 114.084,173.847 130.584,170.68 148,174.5C 152.158,176.894 155.992,179.56 159.5,182.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#b88f7b" d="M 133.5,188.5 C 129.88,190.285 127.047,192.952 125,196.5C 124.828,203.013 124.328,209.347 123.5,215.5C 123.666,210.489 123.499,205.489 123,200.5C 121.648,202.432 119.815,203.766 117.5,204.5C 116.808,203.975 116.308,203.308 116,202.5C 115.501,206.821 115.334,211.154 115.5,215.5C 114.672,209.347 114.172,203.013 114,196.5C 112.334,194.004 110.5,191.671 108.5,189.5C 109.496,189.414 110.329,189.748 111,190.5C 117.374,186.897 124.54,185.73 132.5,187C 133.056,187.383 133.389,187.883 133.5,188.5 Z"/></g>
|
||||
<g><path style="opacity:1" fill="#d08a75" d="M 123.5,215.5 C 120.757,218.059 118.09,218.059 115.5,215.5C 115.334,211.154 115.501,206.821 116,202.5C 116.308,203.308 116.808,203.975 117.5,204.5C 119.815,203.766 121.648,202.432 123,200.5C 123.499,205.489 123.666,210.489 123.5,215.5 Z"/></g>
|
||||
</svg>
|
After Width: | Height: | Size: 21 KiB |
2
docs/assets/img/how-tor-works/tor-encryption-dark.svg
Normal file
After Width: | Height: | Size: 16 KiB |
2
docs/assets/img/how-tor-works/tor-encryption.svg
Normal file
After Width: | Height: | Size: 16 KiB |
2
docs/assets/img/how-tor-works/tor-path-dark.svg
Normal file
After Width: | Height: | Size: 14 KiB |
2
docs/assets/img/how-tor-works/tor-path.svg
Normal file
After Width: | Height: | Size: 14 KiB |
2
docs/assets/img/messengers/molly.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="127.99" height="128" version="1.1" viewBox="0 0 33.864 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="translate(-48.383 -89.279)"><g transform="matrix(.083544 0 0 .083551 36.799 77.694)"><path d="m220.51 504.06 120.82 39.937 1.2e-4 4e-5 -143.92-5e-5zm323.49-162.73c0 111.93-90.737 202.67-202.67 202.67-111.93-1e-5 -202.67-90.737-202.67-202.67s90.737-202.67 202.67-202.67c111.93 0 202.67 90.737 202.67 202.67z" fill="#7663f0"/><g transform="translate(-5.1601e-6,-4.0973)"><circle cx="341" cy="433.47" r="23.536" fill="#f9f8fe" stroke-width=".64448"/><circle cx="439.19" cy="375.64" r="23.536" fill="#aaa4ce" stroke-width=".64448"/><circle cx="242.81" cy="375.64" r="23.536" fill="#cba1fe" stroke-width=".64447"/><g stroke-width=".64448"><circle cx="439.19" cy="433.47" r="23.536" fill="#f9f8fe"/><circle cx="439.19" cy="317.82" r="23.536" fill="#aacdf4"/><circle cx="242.81" cy="260" r="23.536" fill="#4b0f9f"/></g><circle cx="242.81" cy="317.82" r="23.536" fill="#aaa4ce" stroke-width=".64447"/><g stroke-width=".64448"><circle cx="242.81" cy="433.47" r="23.536" fill="#f9f8fe"/><circle cx="341" cy="317.82" r="23.536" fill="#4b0f9f"/><circle cx="341" cy="375.64" r="23.536" fill="#aacdf4"/></g><circle cx="439.19" cy="260" r="23.536" fill="#4b0f9f" stroke-width=".64447"/></g></g></g></svg>
|
After Width: | Height: | Size: 1.3 KiB |
8
docs/assets/img/metadata-removal/exiferaser.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="vector" version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="group" transform="matrix(2.5666 0 0 2.5666 -73.625 -74.595)">
|
||||
<path id="path" d="m28.686 54c0-6.611 2.629-12.958 7.304-17.632 4.674-4.675 11.021-7.304 17.632-7.304s12.958 2.629 17.633 7.304c4.674 4.674 7.303 11.021 7.303 17.632s-2.629 12.958-7.303 17.632c-4.675 4.675-11.022 7.304-17.633 7.304s-12.958-2.629-17.632-7.304c-4.675-4.674-7.304-11.021-7.304-17.632" fill="#fff"/>
|
||||
<path d="m48.42 40.201v21.793h21.795v-21.793zm2.8184 2.8184h16.156v11.051l-4.1621-4.0703-4.9883 5.3047-3.1465-3.0469-3.8594 4.1738zm6.4609 1.9727c-1.1964 0.01026-2.4063 1.0128-2.334 2.2812-0.0012 0.186 0.02158 0.37225 0.06641 0.55273 0.27682 1.4976 2.226 2.1821 3.4512 1.3633 1.3815-0.81242 1.3037-3.0455-0.04102-3.8496-0.34791-0.2441-0.74378-0.35108-1.1426-0.34766z" fill="#009688"/>
|
||||
<path d="m43.2 48.735c-0.807 0-1.461-0.654-1.461-1.461v-6.667c0-3.679 2.993-6.673 6.672-6.673s6.7339 2.5864 6.7339 6.2654l-2.9045 0.01627c0-2.068-1.7614-3.3587-3.8294-3.3587s-3.75 1.682-3.75 3.75v6.667c0 0.807-0.654 1.461-1.461 1.461zm0-6.787-7.013 6.818v20.141h14.026v-20.141zm0 7.429c-1.143 0-2.07-0.927-2.07-2.07s0.927-2.07 2.07-2.07 2.07 0.927 2.07 2.07-0.927 2.07-2.07 2.07z" fill="#00675b"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="matrix(.88305 0 0 .88305 -59.285 -61.488)"><circle cx="86.313" cy="88.808" r="19.176" style="fill:#d800d0"/><rect width="14.167" height="20.064" x="78.814" y="74.444" style="-inkscape-stroke:none;fill-rule:evenodd;fill:#80d6ff;font-variation-settings:normal;stop-color:#000;stroke-width:.26492"/><rect width="15.95" height="10.65" x="-4.845" y="121.46" transform="rotate(-44.162)" style="-inkscape-stroke:none;fill-rule:evenodd;fill:#42a5f5;font-variation-settings:normal;stop-color:#000;stroke-width:.29441"/><rect width="11.861" height="8.557" x="85.189" y="91.475" style="-inkscape-stroke:none;fill-rule:evenodd;fill:#0077c2;font-variation-settings:normal;stop-color:#000;stroke-width:.26458"/></g></svg>
|
Before Width: | Height: | Size: 828 B |
Before Width: | Height: | Size: 22 KiB |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(9.188 0 0 9.188 -199.4 -1004)"><g transform="matrix(.0067972 0 0 .0067972 21.591 109.2)" fill="#725794"><circle cx="74.91" cy="180.35" r="55"/><circle cx="137.6" cy="317.44" r="42.5"/><circle cx="189.82" cy="434.27" r="31"/></g><g transform="matrix(.0067972 0 0 .0067972 21.591 109.2)" fill="#dd6418"><circle cx="515.92" cy="412.86" r="26"/><circle cx="499.71" cy="484.31" r="21"/></g><path d="m24.895 110.26c-0.03969 0.0132-0.16933-5e-3 -0.16933-5e-3 0.03704 0.0238 0.06086 0.0873 0.05821 0.1323-0.127-0.0159-0.17727-0.0582-0.29369-0.11907 0 0 0.07937 0.0953 0.15875 0.15082 0.14288 0.10847 0.27252 0.23812 0.3519 0.36247 0.03969 0.0609 0.05027 0.0688 0.05292 0.0423a0.87312 0.87312 0 0 0-0.13758-0.49477c-0.01588-0.0238-0.01852-0.0503-0.02117-0.0688z" fill="#dd6418" style="stroke-width:.26458"/><path d="m21.837 109.27c-0.03969 0-0.06085 0.0344-0.03175 0.0609 1.3097 0.62177 1.1165 1.2092 1.2859 1.8838 0.04498 0.18256 0.34925 1.6034 1.95 1.741 0.06085 5e-3 0.07937-0.0661 0.01588-0.082-1.307-0.34925-1.6219-2.6326-0.70908-2.7173 0.127-0.0106 0.16669 0.0423 0.26458 0.0741 0.09525 0.0318 0.24606 0.0423 0.29104 0.0344 0.08467-0.15875-0.06615-0.33866-0.19315-0.47096 0.13758-0.09 0.58208-0.18785 0.635-0.21166 0.0344-0.0132 0.01852-0.0661-0.01058-0.0714-0.20373 0.0132-0.68792 0.0529-0.90752 0.13758-0.38365-0.23283-0.88371-0.0529-1.1377 0.34396-0.25929-0.37835-0.62442-0.48948-1.4552-0.72231zm2.1484 0.35454c0.19579 0 0.1905 0.082-0.0635 0.16933a0.99483 0.99483 0 0 0-0.62971 0.58209c-0.0291-0.045 0.11377-0.67734 0.69321-0.75142z" style="stroke-width:.26458"/></g></svg>
|
Before Width: | Height: | Size: 1.7 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><defs><linearGradient id="Gradient_1" x1="2.763" x2="94.027" y1="-.313" y2="95.408" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#56CCF2"/><stop offset="1" stop-color="#2F80ED"/></linearGradient></defs><g transform="matrix(.33867 0 0 .33867 .010977 .10601)"><path id="Shape" fill="url(#Gradient_1)" d="m63.697 1.417c0.657-1.036 1.832-1.725 3.066-1.73 1.729-4e-3 3.375 0.967 4.376 2.35 0.943 1.322 1.234 2.993 1.236 4.589-0.015 2.244-0.532 4.449-1.148 6.596-1.539 5.067-3.63 9.946-5.192 15.007-1.72 5.743-2.545 12.143-0.234 17.845 1.208-3.372 2.403-6.751 3.607-10.127 0.342-0.892 0.792-1.906 1.748-2.272 1.331-0.474 2.688 0.915 2.649 2.201-0.364 1.873-1.07 3.658-1.626 5.48-4.503 13.536-9.546 26.885-14.402 40.299 6.458-5.905 12.936-11.788 19.402-17.682 1.861-1.694 3.879-3.54 4.449-6.1 0.569-2.513-0.489-5.007-1.688-7.165-1.385-2.575-3.153-5.024-3.803-7.922-0.327-1.501-0.228-3.228 0.784-4.458 0.73-0.926 2.059-1.404 3.18-0.952 1.107 0.423 1.775 1.486 2.298 2.49 1.757 3.525 2.853 7.377 3.23 11.299 1.2-2.421 2.414-4.832 3.616-7.251 0.726-1.425 1.367-2.954 2.545-4.08 0.711-0.702 1.747-1.144 2.75-0.916 1.258 0.278 2.141 1.422 2.479 2.61 0.383 1.262-0.022 2.576-0.429 3.775-1.212 3.353-3.116 6.387-4.951 9.424-2.558 4.02-5.275 7.943-8.241 11.675 1.695-1.132 3.48-2.323 5.556-2.56 1.964-0.263 4.135 0.887 4.785 2.804 0.435 1.305-0.269 2.782-1.451 3.419-1.734 0.967-3.786 0.954-5.713 1.04-6.993 0.192-13.808 3.635-18.147 9.116-3.424 4.371-5.173 9.802-8.648 14.137-2.192 2.642-5.289 5.959-8.696 5.226-4.537-0.975-4.537-8.066-5.668-11.581-0.583-1.772-1.677-3.391-3.195-4.496-1.327-0.98-2.916-1.542-4.522-1.85-3.687-0.708-7.49-0.334-11.168-1.094-1.841-0.375-3.654-1.113-5.06-2.386-1.34-1.176-2.266-2.75-2.908-4.397-1.386-3.588-1.668-7.481-2.9-11.114-1.783-5.23-5.311-9.854-9.906-12.925-0.969-0.654-2.022-1.292-2.649-2.312-0.51-0.797-0.465-1.93 0.203-2.625 1.126-1.226 3.161-1.327 4.462-0.313 2.666 1.891 3.051 5.565 5.536 7.621 4e-3 -3.394-0.013-6.785-0.019-10.177 8e-3 -0.98-0.101-2.035 0.389-2.926 0.446-0.844 1.68-1.073 2.397-0.44 0.969 0.812 1.264 2.137 1.402 3.336 0.482 4.675 0.948 9.352 1.432 14.03 2.436-2.188 3.555-5.739 2.767-8.924-0.239-1.017-0.626-2.063-0.407-3.118 0.179-0.885 1.118-1.508 2.003-1.35 0.995 0.135 1.705 0.988 2.078 1.864 0.594 1.452 0.596 3.069 0.476 4.611-0.353 3.512-1.839 6.755-2.864 10.097-0.999 2.95-1.686 6.228-0.685 9.275 0.892 2.849 3.153 5.101 5.806 6.378 3.275 1.609 6.964 2.109 10.573 2.251-2.194-3.84-4.58-7.903-4.539-12.471 0.043-4.599 2.967-8.473 3.757-12.912 1.346-7.364-1.977-15.369-8.163-19.594-2.748-1.888-6.047-2.728-8.87-4.479-2.554-1.563-4.848-4.345-4.447-7.513 1.94-0.751 4.106-0.271 5.857 0.737 3.422 1.826 5.599 5.288 9.038 7.086 1.208 0.659 2.593 0.985 3.969 0.901 0.745-1.786 0-3.786-1.202-5.177-2.261-2.724-6.077-3.385-8.441-5.989-1.185-1.359-1.846-3.301-1.348-5.078 0.405-1.404 1.858-2.36 3.305-2.254 2.143 0.133 3.988 1.475 5.453 2.952 4.847 4.845 7.636 11.435 8.73 18.132 1.292 7.899 0.288 15.957-1.303 23.735-0.297 1.585-0.853 3.21-0.442 4.828 0.177 0.749 0.717 1.522 1.547 1.589 1.141 0.073 2.084-0.704 2.915-1.385 2.599-2.123 4.665-4.981 5.517-8.254 0.666-2.386 0.685-4.884 0.638-7.341 0.013-1.229-0.078-2.586 0.657-3.65 0.525-0.822 1.505-1.468 2.513-1.229 0.79 0.15 1.35 0.835 1.591 1.569 0.388 1.209 0.329 2.514 0.095 3.747-0.743 3.403-1.415 6.85-2.761 10.081-0.95 2.319-2.233 4.524-3.971 6.341-1.916 2.031-4.283 3.659-5.827 6.026-1.053 1.617-1.734 3.626-1.277 5.558 0.334 1.541 1.507 2.799 2.922 3.441 2.061 0.941 4.563 0.893 6.572-0.166 1.594-0.862 2.727-2.352 3.629-3.883 1.589-2.754 2.552-5.812 3.351-8.874 1.229-4.944 1.953-10.013 2.237-15.1 0.325-5.433-0.661-11.051-3.4-15.797-1.456-2.541-3.515-4.705-5.92-6.361-2.166-1.611-4.548-3.006-6.305-5.093-1.643-1.934-2.782-4.544-2.184-7.111 1.124-0.706 2.543-0.829 3.788-0.387 2.349 0.799 4.189 2.685 5.375 4.819 1.611 2.515 2.955 5.508 5.793 6.874-2.309-4.542-4.69-9.045-7.027-13.571-0.76-1.529-1.509-3.2-1.311-4.949 0.144-1.333 1.382-2.426 2.719-2.42 1.187 4e-3 2.3 0.672 3.007 1.602 0.807 1.047 1.193 2.337 1.557 3.59 1.862 6.482 3.723 12.961 5.592 19.441 2.349-4.475 3.342-9.66 2.674-14.682-0.292-2.662-1.074-5.233-1.694-7.83-0.422-1.699-0.295-3.605 0.674-5.101z" style="fill:url(#Gradient_1)"/></g></svg>
|
Before Width: | Height: | Size: 4.2 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g><path fill="#fff" d="m0 0 5.805-20.007c0.285-1.016 0.586-2.114 0.902-3.293 0.32-1.18 0.609-2.266 0.871-3.258h0.066c0.145 0.992 0.387 2.058 0.727 3.207 0.344 1.144 0.656 2.187 0.941 3.133l2.797 9.172c0.211 0.66 0.399 1.257 0.567 1.789 0.164 0.531 0.336 1.019 0.511 1.468 0.18 0.446 0.348 0.871 0.516 1.274 0.164 0.402 0.352 0.801 0.567 1.203v0.07l-4.18-0.281v5.523h13.773v-4.64c-0.969 0-1.816-0.317-2.547-0.953-0.734-0.637-1.363-1.395-1.894-2.266-0.535-0.875-0.969-1.75-1.313-2.621-0.343-0.875-0.597-1.547-0.761-2.02l-8.25-23.972h-7.684l-4.992 15.472c-0.141 0.379-0.32 0.918-0.531 1.614-0.211 0.695-0.43 1.453-0.657 2.265-0.222 0.817-0.461 1.661-0.707 2.532-0.246 0.875-0.476 1.699-0.691 2.48h-0.07c-0.141-1.016-0.372-2.156-0.692-3.418-0.316-1.262-0.648-2.496-0.992-3.699-0.34-1.203-0.66-2.289-0.953-3.258-0.297-0.969-0.516-1.652-0.656-2.055l-4-11.933h-7.188l-8.781 25.14c-0.332 0.922-0.59 1.664-0.781 2.231-0.188 0.566-0.348 1.059-0.477 1.473-0.133 0.41-0.23 0.781-0.301 1.113-0.07 0.332-0.156 0.707-0.25 1.133l-2.832-0.141v5.523h17.387v-4.64c-1.016-0.07-1.73-0.375-2.145-0.918-0.414-0.543-0.617-1.242-0.617-2.09-0.023-0.402 4e-3 -0.828 0.086-1.273 0.086-0.45 0.196-0.911 0.34-1.383l2.441-8.852c0.286-1.062 0.559-2.179 0.832-3.347 0.27-1.168 0.489-2.356 0.657-3.559h0.07c0.117 0.52 0.234 1.051 0.356 1.594 0.117 0.543 0.246 1.129 0.386 1.754 0.145 0.625 0.309 1.312 0.496 2.054 0.192 0.742 0.414 1.563 0.676 2.457l5.309 18.203z" transform="matrix(.52961 0 0 -.52961 18.079 7.2492)"/></g><g><path fill="#5bc4ee" d="m0 0c0-3.285-2.664-5.949-5.949-5.949s-5.945 2.664-5.945 5.949 2.66 5.949 5.945 5.949 5.949-2.664 5.949-5.949" transform="matrix(.52961 0 0 -.52961 33.867 23.467)"/></g></svg>
|
Before Width: | Height: | Size: 1.8 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g><path fill="#262424" d="m0 0 5.805-20.007c0.285-1.016 0.586-2.114 0.902-3.293 0.32-1.18 0.609-2.266 0.871-3.258h0.066c0.145 0.992 0.387 2.058 0.727 3.207 0.344 1.144 0.656 2.187 0.941 3.133l2.797 9.172c0.211 0.66 0.399 1.257 0.567 1.789 0.164 0.531 0.336 1.019 0.511 1.468 0.18 0.446 0.348 0.871 0.516 1.274 0.164 0.402 0.352 0.801 0.567 1.203v0.07l-4.18-0.281v5.523h13.773v-4.64c-0.969 0-1.816-0.317-2.547-0.953-0.734-0.637-1.363-1.395-1.894-2.266-0.535-0.875-0.969-1.75-1.313-2.621-0.343-0.875-0.597-1.547-0.761-2.02l-8.25-23.972h-7.684l-4.992 15.472c-0.141 0.379-0.32 0.918-0.531 1.614-0.211 0.695-0.43 1.453-0.657 2.265-0.222 0.817-0.461 1.661-0.707 2.532-0.246 0.875-0.476 1.699-0.691 2.48h-0.07c-0.141-1.016-0.372-2.156-0.692-3.418-0.316-1.262-0.648-2.496-0.992-3.699-0.34-1.203-0.66-2.289-0.953-3.258-0.297-0.969-0.516-1.652-0.656-2.055l-4-11.933h-7.188l-8.781 25.14c-0.332 0.922-0.59 1.664-0.781 2.231-0.188 0.566-0.348 1.059-0.477 1.473-0.133 0.41-0.23 0.781-0.301 1.113-0.07 0.332-0.156 0.707-0.25 1.133l-2.832-0.141v5.523h17.387v-4.64c-1.016-0.07-1.73-0.375-2.145-0.918-0.414-0.543-0.617-1.242-0.617-2.09-0.023-0.402 4e-3 -0.828 0.086-1.273 0.086-0.45 0.196-0.911 0.34-1.383l2.441-8.852c0.286-1.062 0.559-2.179 0.832-3.347 0.27-1.168 0.489-2.356 0.657-3.559h0.07c0.117 0.52 0.234 1.051 0.356 1.594 0.117 0.543 0.246 1.129 0.386 1.754 0.145 0.625 0.309 1.312 0.496 2.054 0.192 0.742 0.414 1.563 0.676 2.457l5.309 18.203z" transform="matrix(.52961 0 0 -.52961 18.079 7.2516)"/></g><g><path fill="#5bc4ee" d="m0 0c0-3.285-2.664-5.949-5.949-5.949s-5.945 2.664-5.945 5.949 2.66 5.949 5.945 5.949 5.949-2.664 5.949-5.949" transform="matrix(.52961 0 0 -.52961 33.867 23.464)"/></g></svg>
|
Before Width: | Height: | Size: 1.8 KiB |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.16306 0 0 .16306 -7.3167e-8 3.5791)" fill="none" fill-rule="evenodd"><g transform="translate(42.5)"><circle cx="60" cy="60" r="60" fill="#de5833" fill-rule="nonzero"/><path d="m110.8 38.5c-2.8-6.6-6.8-12.5-11.8-17.5-5.1-5.1-11-9-17.5-11.8-6.8-2.9-14-4.3-21.5-4.3-7.4 0-14.7 1.5-21.5 4.3-6.6 2.7-12.5 6.7-17.5 11.8-5.1 5.1-9 11-11.8 17.5-2.9 6.8-4.3 14-4.3 21.5s1.5 14.7 4.3 21.5c2.8 6.6 6.8 12.5 11.8 17.5 5.1 5.1 11 9 17.5 11.8 6.8 2.9 14 4.3 21.5 4.3 7.4 0 14.7-1.5 21.5-4.3 6.5-2.8 12.4-6.8 17.5-11.8 5.1-5.1 9-11 11.8-17.5 2.9-6.8 4.3-14 4.3-21.5s-1.4-14.7-4.3-21.5zm-38.8 71c-3.2-5.4-11.6-20.5-11.6-31.7 0-25.8 17.3-3.7 17.3-24.3 0-4.9-2.4-22.1-17.4-25.7-3.7-4.9-12.4-9.6-26.2-7.7 0 0 2.3 0.7 4.9 2 0 0-5 0.7-5.2 4.1 0 0 9.9-0.5 15.5 1.3-12.9 1.7-19.5 8.5-18.3 20.8 1.7 17.5 9.1 48.7 11.7 59.6-19.6-7-33.7-25.8-33.7-47.9 0-28.1 22.8-51 51-51s51 22.8 51 51c-0.1 24-16.7 44.1-39 49.5z" fill="#fff" fill-rule="nonzero"/><path d="m57.2 68.3c0-6.6 9-8.7 12.4-8.7 9.2 0 22.2-5.9 25.4-5.8 3.3 0.1 5.4 1.4 5.4 2.9 0 2.2-18.4 10.5-25.5 9.8-6.8-0.6-8.4 0.1-8.4 2.9 0 2.4 4.9 4.6 10.3 4.6 8.1 0 16-3.6 18.4-1.9 2.1 1.5-5.5 6.9-14.2 6.9s-23.8-4.1-23.8-10.7z" fill="#fed30a"/><g fill-rule="nonzero"><g fill="#2d4f8d"><path d="m73.2 40.3c-2.4-3.1-6.7-3.2-8.2 0.4 2.3-1.8 5.1-2.2 8.2-0.4zm-26.7 0.1c-3.3-2-8.8-2.2-8.5 4.1 1.6-3.9 3.8-4.6 8.5-4.1zm24.7 5.8c-1.8 0-3.3 1.5-3.3 3.3s1.5 3.3 3.3 3.3 3.3-1.5 3.3-3.3-1.5-3.3-3.3-3.3zm1.2 3.1c-0.5 0-1-0.4-1-1 0-0.5 0.4-1 1-1s1 0.4 1 1c-0.1 0.5-0.5 1-1 1zm-26.8-1.3c-2.1 0-3.8 1.7-3.8 3.8s1.7 3.8 3.8 3.8 3.8-1.7 3.8-3.8-1.7-3.8-3.8-3.8zm1.4 3.5c-0.6 0-1.1-0.5-1.1-1.1s0.5-1.1 1.1-1.1 1.1 0.5 1.1 1.1-0.5 1.1-1.1 1.1z"/></g><g fill="#d5d7d8"><path d="m37.3 31.8c-4.8 3.5-7 8.9-6.3 16.5 1.7 17.5 9.1 48.8 11.7 59.7l2.7 0.9c-1.6-6.6-9.3-38.8-12.7-63.5-0.9-6.6 1.7-10.5 4.6-13.6zm11.9-4.3c0.4 0 0.7-0.1 0.7-0.1-5.2-2.5-13.4-2.6-15.6-2.6-0.2 0.4-0.4 0.9-0.4 1.4-0.1 0.1 9.6-0.5 15.3 1.3zm-9.4-5.4c-1.6-1.1-2.9-1.8-3.7-2.2-0.7 0.1-1.3 0.1-2 0.2 0 0 2.3 0.7 4.9 2h-0.2z"/></g><path d="m80.1 88.6c-1.7-0.4-8.3 4.3-10.8 6.1-0.1-0.5-0.2-0.9-0.3-1.1-0.3-1-6.7-0.4-8.2 1.2-4-1.9-12-5.6-12.1-3.3-0.3 3 0 15.5 1.6 16.4 1.2 0.7 8-3 11.4-4.9h0.1c2.1 0.5 6 0 7.4-0.9 0.2-0.1 0.3-0.3 0.4-0.5 3.1 1.2 9.8 3.6 11.2 3.1 1.8-0.5 1.4-15.6-0.7-16.1z" fill="#67bd47"/><path d="m61.8 103c-2.1-0.4-1.4-2.5-1.4-7.4-0.5 0.3-0.9 0.7-0.9 1.1 0 4.9-0.8 7.1 1.4 7.4 2.1 0.5 6 0 7.6-0.9 0.3-0.2 0.4-0.5 0.5-1-1.5 0.9-5.2 1.3-7.2 0.8z" fill="#43a347"/></g></g><g fill="#fff" fill-rule="nonzero"><path d="m0 161.6v-24.6h8.9c8.5 0 12.4 6.2 12.4 12 0 6.3-3.8 12.6-12.4 12.6zm2.8-2.9h6.1c6.6 0 9.5-4.9 9.5-9.8 0-4.5-3-9.3-9.5-9.3h-6.1zm29.7 3.2c-4.6 0-7.5-3.1-7.5-8v-9.6h2.7v9.5c0 3.5 2 5.6 5.4 5.6 3.2 0 5.5-2.5 5.5-5.8v-9.3h2.7v17.3h-2.4l-0.2-3-0.4 0.5c-1.5 1.8-3.4 2.7-5.8 2.8zm21.7 0c-4.5 0-9-2.8-9-8.9 0-5.4 3.6-8.9 9-8.9 2.4 0 4.4 0.8 6.2 2.5l-1.7 1.7c-1.2-1.1-2.8-1.7-4.4-1.7-3.8 0-6.4 2.6-6.4 6.4 0 4.4 3.2 6.4 6.4 6.4 1.8 0 3.4-0.6 4.6-1.8l1.7 1.7c-1.8 1.7-4 2.6-6.4 2.6zm20.9-0.3-8.5-8.5v8.5h-2.6v-24.6h2.6v14.9l7.4-7.6h3.5l-8.2 8.1 9.2 9.1v0.1zm6.6 0v-24.6h8.9c8.5 0 12.4 6.2 12.4 12 0 6.3-3.8 12.6-12.4 12.6zm2.9-2.9h6.1c6.6 0 9.5-4.9 9.5-9.8 0-4.5-3-9.3-9.5-9.3h-6.1zm29.6 3.2c-4.6 0-7.5-3.1-7.5-8v-9.6h2.7v9.5c0 3.5 2 5.6 5.4 5.6 3.2 0 5.5-2.5 5.5-5.8v-9.3h2.7v17.3h-2.4l-0.1-3-0.4 0.5c-1.5 1.8-3.5 2.7-5.9 2.8zm21.7 0c-4.5 0-9-2.8-9-8.9 0-5.4 3.6-8.9 9-8.9 2.4 0 4.4 0.8 6.2 2.5l-1.7 1.7c-1.2-1.1-2.8-1.7-4.4-1.7-3.8 0-6.4 2.6-6.4 6.4 0 4.4 3.2 6.4 6.4 6.4 1.8 0 3.4-0.6 4.6-1.8l1.7 1.7-0.1 0.1c-1.7 1.7-3.8 2.5-6.3 2.5zm20.9-0.3-8.4-8.5v8.5h-2.6v-24.6h2.6v14.9l7.4-7.6h3.4l-8.1 8.1 9.1 9.1v0.1zm17.3 0.4c-9.5 0-12.8-6.8-12.8-12.5 0-3.8 1.3-7.1 3.6-9.5 2.3-2.3 5.5-3.5 9.2-3.5 3.4 0 6.5 1.3 8.9 3.6l-1.6 1.9c-1.9-1.8-4.7-2.9-7.3-2.9-6.9 0-10 5.4-10 10.4 0 4.9 3.1 9.9 10.1 9.9 2.5 0 4.9-0.9 6.8-2.5l0.1-0.1v-6.1h-7.7v-2.5h10.3v9.6c-2.7 2.9-5.8 4.2-9.6 4.2zm21.8-0.1c-5.2 0-8.9-3.7-8.9-8.9s3.8-9.1 8.9-9.1c5.3 0 9 3.7 9 9.1-0.1 5.1-3.8 8.9-9 8.9zm0-15.6c-3.7 0-6.3 2.7-6.3 6.6 0 3.7 2.6 6.4 6.3 6.4s6.3-2.6 6.4-6.4c-0.1-3.8-2.7-6.6-6.4-6.6z"/><path d="m206.4 162.2c0.2-0.1 0.3-0.2 0.3-0.4s-0.1-0.3-0.2-0.4-0.3-0.1-0.6-0.1-0.5 0-0.6 0.1v1.6h0.4v-0.7h0.2c0.2 0 0.3 0.1 0.3 0.3 0.1 0.2 0.1 0.3 0.1 0.4h0.4c0-0.1-0.1-0.2-0.1-0.4s-0.1-0.3-0.2-0.4zm-0.5-0.1h-0.2v-0.5h0.2c0.2 0 0.3 0.1 0.3 0.2 0.1 0.2 0 0.3-0.3 0.3z"/><path d="m206 160.5c-0.9 0-1.7 0.7-1.7 1.6s0.7 1.7 1.7 1.7c0.9 0 1.7-0.7 1.7-1.7 0-0.9-0.7-1.6-1.7-1.6zm0 3c-0.7 0-1.3-0.6-1.3-1.3s0.5-1.3 1.3-1.3c0.7 0 1.3 0.6 1.3 1.3s-0.6 1.3-1.3 1.3z"/></g></g></svg>
|
Before Width: | Height: | Size: 4.6 KiB |
@ -1,2 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.16306 0 0 .16306 -6.7576e-5 3.579)" fill="none" fill-rule="evenodd"><g transform="translate(42.5)"><circle cx="60" cy="60" r="60" fill="#de5833" fill-rule="nonzero"/><path d="m110.8 38.5c-2.8-6.6-6.8-12.5-11.8-17.5-5.1-5.1-11-9-17.5-11.8-6.8-2.9-14-4.3-21.5-4.3-7.4 0-14.7 1.5-21.5 4.3-6.6 2.7-12.5 6.7-17.5 11.8-5.1 5.1-9 11-11.8 17.5-2.9 6.8-4.3 14-4.3 21.5s1.5 14.7 4.3 21.5c2.8 6.6 6.8 12.5 11.8 17.5 5.1 5.1 11 9 17.5 11.8 6.8 2.9 14 4.3 21.5 4.3 7.4 0 14.7-1.5 21.5-4.3 6.5-2.8 12.4-6.8 17.5-11.8 5.1-5.1 9-11 11.8-17.5 2.9-6.8 4.3-14 4.3-21.5s-1.4-14.7-4.3-21.5zm-38.8 71c-3.2-5.4-11.6-20.5-11.6-31.7 0-25.8 17.3-3.7 17.3-24.3 0-4.9-2.4-22.1-17.4-25.7-3.7-4.9-12.4-9.6-26.2-7.7 0 0 2.3 0.7 4.9 2 0 0-5 0.7-5.2 4.1 0 0 9.9-0.5 15.5 1.3-12.9 1.7-19.5 8.5-18.3 20.8 1.7 17.5 9.1 48.7 11.7 59.6-19.6-7-33.7-25.8-33.7-47.9 0-28.1 22.8-51 51-51s51 22.8 51 51c-0.1 24-16.7 44.1-39 49.5z" fill="#fff" fill-rule="nonzero"/><path d="m57.2 68.3c0-6.6 9-8.7 12.4-8.7 9.2 0 22.2-5.9 25.4-5.8 3.3 0.1 5.4 1.4 5.4 2.9 0 2.2-18.4 10.5-25.5 9.8-6.8-0.6-8.4 0.1-8.4 2.9 0 2.4 4.9 4.6 10.3 4.6 8.1 0 16-3.6 18.4-1.9 2.1 1.5-5.5 6.9-14.2 6.9s-23.8-4.1-23.8-10.7z" fill="#fed30a"/><g fill-rule="nonzero"><g fill="#2d4f8d"><path d="m73.2 40.3c-2.4-3.1-6.7-3.2-8.2 0.4 2.3-1.8 5.1-2.2 8.2-0.4zm-26.7 0.1c-3.3-2-8.8-2.2-8.5 4.1 1.6-3.9 3.8-4.6 8.5-4.1zm24.7 5.8c-1.8 0-3.3 1.5-3.3 3.3s1.5 3.3 3.3 3.3 3.3-1.5 3.3-3.3-1.5-3.3-3.3-3.3zm1.2 3.1c-0.5 0-1-0.4-1-1 0-0.5 0.4-1 1-1s1 0.4 1 1c-0.1 0.5-0.5 1-1 1zm-26.8-1.3c-2.1 0-3.8 1.7-3.8 3.8s1.7 3.8 3.8 3.8 3.8-1.7 3.8-3.8-1.7-3.8-3.8-3.8zm1.4 3.5c-0.6 0-1.1-0.5-1.1-1.1s0.5-1.1 1.1-1.1 1.1 0.5 1.1 1.1-0.5 1.1-1.1 1.1z"/></g><g fill="#d5d7d8"><path d="m37.3 31.8c-4.8 3.5-7 8.9-6.3 16.5 1.7 17.5 9.1 48.8 11.7 59.7l2.7 0.9c-1.6-6.6-9.3-38.8-12.7-63.5-0.9-6.6 1.7-10.5 4.6-13.6zm11.9-4.3c0.4 0 0.7-0.1 0.7-0.1-5.2-2.5-13.4-2.6-15.6-2.6-0.2 0.4-0.4 0.9-0.4 1.4-0.1 0.1 9.6-0.5 15.3 1.3zm-9.4-5.4c-1.6-1.1-2.9-1.8-3.7-2.2-0.7 0.1-1.3 0.1-2 0.2 0 0 2.3 0.7 4.9 2h-0.2z"/></g><path d="m80.1 88.6c-1.7-0.4-8.3 4.3-10.8 6.1-0.1-0.5-0.2-0.9-0.3-1.1-0.3-1-6.7-0.4-8.2 1.2-4-1.9-12-5.6-12.1-3.3-0.3 3 0 15.5 1.6 16.4 1.2 0.7 8-3 11.4-4.9h0.1c2.1 0.5 6 0 7.4-0.9 0.2-0.1 0.3-0.3 0.4-0.5 3.1 1.2 9.8 3.6 11.2 3.1 1.8-0.5 1.4-15.6-0.7-16.1z" fill="#67bd47"/><path d="m61.8 103c-2.1-0.4-1.4-2.5-1.4-7.4-0.5 0.3-0.9 0.7-0.9 1.1 0 4.9-0.8 7.1 1.4 7.4 2.1 0.5 6 0 7.6-0.9 0.3-0.2 0.4-0.5 0.5-1-1.5 0.9-5.2 1.3-7.2 0.8z" fill="#43a347"/></g></g><g fill="#4c4c4c" fill-rule="nonzero"><path d="m0 161.6v-24.6h8.9c8.5 0 12.4 6.2 12.4 12 0 6.3-3.8 12.6-12.4 12.6zm2.8-2.9h6.1c6.6 0 9.5-4.9 9.5-9.8 0-4.5-3-9.3-9.5-9.3h-6.1zm29.7 3.2c-4.6 0-7.5-3.1-7.5-8v-9.6h2.7v9.5c0 3.5 2 5.6 5.4 5.6 3.2 0 5.5-2.5 5.5-5.8v-9.3h2.7v17.3h-2.4l-0.2-3-0.4 0.5c-1.5 1.8-3.4 2.7-5.8 2.8zm21.7 0c-4.5 0-9-2.8-9-8.9 0-5.4 3.6-8.9 9-8.9 2.4 0 4.4 0.8 6.2 2.5l-1.7 1.7c-1.2-1.1-2.8-1.7-4.4-1.7-3.8 0-6.4 2.6-6.4 6.4 0 4.4 3.2 6.4 6.4 6.4 1.8 0 3.4-0.6 4.6-1.8l1.7 1.7c-1.8 1.7-4 2.6-6.4 2.6zm20.9-0.3-8.5-8.5v8.5h-2.6v-24.6h2.6v14.9l7.4-7.6h3.5l-8.2 8.1 9.2 9.1v0.1zm6.6 0v-24.6h8.9c8.5 0 12.4 6.2 12.4 12 0 6.3-3.8 12.6-12.4 12.6zm2.9-2.9h6.1c6.6 0 9.5-4.9 9.5-9.8 0-4.5-3-9.3-9.5-9.3h-6.1zm29.6 3.2c-4.6 0-7.5-3.1-7.5-8v-9.6h2.7v9.5c0 3.5 2 5.6 5.4 5.6 3.2 0 5.5-2.5 5.5-5.8v-9.3h2.7v17.3h-2.4l-0.1-3-0.4 0.5c-1.5 1.8-3.5 2.7-5.9 2.8zm21.7 0c-4.5 0-9-2.8-9-8.9 0-5.4 3.6-8.9 9-8.9 2.4 0 4.4 0.8 6.2 2.5l-1.7 1.7c-1.2-1.1-2.8-1.7-4.4-1.7-3.8 0-6.4 2.6-6.4 6.4 0 4.4 3.2 6.4 6.4 6.4 1.8 0 3.4-0.6 4.6-1.8l1.7 1.7-0.1 0.1c-1.7 1.7-3.8 2.5-6.3 2.5zm20.9-0.3-8.4-8.5v8.5h-2.6v-24.6h2.6v14.9l7.4-7.6h3.4l-8.1 8.1 9.1 9.1v0.1zm17.3 0.4c-9.5 0-12.8-6.8-12.8-12.5 0-3.8 1.3-7.1 3.6-9.5 2.3-2.3 5.5-3.5 9.2-3.5 3.4 0 6.5 1.3 8.9 3.6l-1.6 1.9c-1.9-1.8-4.7-2.9-7.3-2.9-6.9 0-10 5.4-10 10.4 0 4.9 3.1 9.9 10.1 9.9 2.5 0 4.9-0.9 6.8-2.5l0.1-0.1v-6.1h-7.7v-2.5h10.3v9.6c-2.7 2.9-5.8 4.2-9.6 4.2zm21.8-0.1c-5.2 0-8.9-3.7-8.9-8.9s3.8-9.1 8.9-9.1c5.3 0 9 3.7 9 9.1-0.1 5.1-3.8 8.9-9 8.9zm0-15.6c-3.7 0-6.3 2.7-6.3 6.6 0 3.7 2.6 6.4 6.3 6.4s6.3-2.6 6.4-6.4c-0.1-3.8-2.7-6.6-6.4-6.6z"/><path d="m206.4 162.2c0.2-0.1 0.3-0.2 0.3-0.4s-0.1-0.3-0.2-0.4-0.3-0.1-0.6-0.1-0.5 0-0.6 0.1v1.6h0.4v-0.7h0.2c0.2 0 0.3 0.1 0.3 0.3 0.1 0.2 0.1 0.3 0.1 0.4h0.4c0-0.1-0.1-0.2-0.1-0.4s-0.1-0.3-0.2-0.4zm-0.5-0.1h-0.2v-0.5h0.2c0.2 0 0.3 0.1 0.3 0.2 0.1 0.2 0 0.3-0.3 0.3z"/><path d="m206 160.5c-0.9 0-1.7 0.7-1.7 1.6s0.7 1.7 1.7 1.7c0.9 0 1.7-0.7 1.7-1.7 0-0.9-0.7-1.6-1.7-1.6zm0 3c-0.7 0-1.3-0.6-1.3-1.3s0.5-1.3 1.3-1.3c0.7 0 1.3 0.6 1.3 1.3s-0.6 1.3-1.3 1.3z"/></g></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="matrix(.28222 0 0 .28222 -18.909 -5.3622)"><circle cx="127" cy="79" r="60" fill="#de5833"/><path fill="#fff" d="m177.8 57.5c-2.8-6.6-6.8-12.5-11.8-17.5-5.1-5.1-11-9-17.5-11.8-6.8-2.9-14-4.3-21.5-4.3-7.4 0-14.7 1.5-21.5 4.3-6.6 2.7-12.5 6.7-17.5 11.8-5.1 5.1-9 11-11.8 17.5-2.9 6.8-4.3 14-4.3 21.5s1.5 14.7 4.3 21.5c2.8 6.6 6.8 12.5 11.8 17.5 5.1 5.1 11 9 17.5 11.8 6.8 2.9 14 4.3 21.5 4.3 7.4 0 14.7-1.5 21.5-4.3 6.5-2.8 12.4-6.8 17.5-11.8 5.1-5.1 9-11 11.8-17.5 2.9-6.8 4.3-14 4.3-21.5s-1.4-14.7-4.3-21.5zm-38.8 71c-3.2-5.4-11.6-20.5-11.6-31.7 0-25.8 17.3-3.7 17.3-24.3 0-4.9-2.4-22.1-17.4-25.7-3.7-4.9-12.4-9.6-26.2-7.7 0 0 2.3 0.7 4.9 2 0 0-5 0.7-5.2 4.1 0 0 9.9-0.5 15.5 1.3-12.9 1.7-19.5 8.5-18.3 20.8 1.7 17.5 9.1 48.7 11.7 59.6-19.6-7-33.7-25.8-33.7-47.9 0-28.1 22.8-51 51-51s51 22.8 51 51c-0.1 24-16.7 44.1-39 49.5z"/><path fill="#fed30a" fill-rule="evenodd" d="m124.2 87.3c0-6.6 9-8.7 12.4-8.7 9.2 0 22.2-5.9 25.4-5.8 3.3 0.1 5.4 1.4 5.4 2.9 0 2.2-18.4 10.5-25.5 9.8-6.8-0.6-8.4 0.1-8.4 2.9 0 2.4 4.9 4.6 10.3 4.6 8.1 0 16-3.6 18.4-1.9 2.1 1.5-5.5 6.9-14.2 6.9s-23.8-4.1-23.8-10.7z" clip-rule="evenodd"/><g fill="#2d4f8d"><path d="m140.2 59.3c-2.4-3.1-6.7-3.2-8.2 0.4 2.3-1.8 5.1-2.2 8.2-0.4zm-26.7 0.1c-3.3-2-8.8-2.2-8.5 4.1 1.6-3.9 3.8-4.6 8.5-4.1zm24.7 5.8c-1.8 0-3.3 1.5-3.3 3.3s1.5 3.3 3.3 3.3 3.3-1.5 3.3-3.3-1.5-3.3-3.3-3.3zm1.2 3.1c-0.5 0-1-0.4-1-1 0-0.5 0.4-1 1-1s1 0.4 1 1c-0.1 0.5-0.5 1-1 1zm-26.8-1.3c-2.1 0-3.8 1.7-3.8 3.8s1.7 3.8 3.8 3.8 3.8-1.7 3.8-3.8-1.7-3.8-3.8-3.8zm1.4 3.5c-0.6 0-1.1-0.5-1.1-1.1s0.5-1.1 1.1-1.1 1.1 0.5 1.1 1.1-0.5 1.1-1.1 1.1z"/></g><g fill="#d5d7d8"><path d="m104.3 50.8c-4.8 3.5-7 8.9-6.3 16.5 1.7 17.5 9.1 48.8 11.7 59.7l2.7 0.9c-1.6-6.6-9.3-38.8-12.7-63.5-0.9-6.6 1.7-10.5 4.6-13.6zm11.9-4.3c0.4 0 0.7-0.1 0.7-0.1-5.2-2.5-13.4-2.6-15.6-2.6-0.2 0.4-0.4 0.9-0.4 1.4-0.1 0.1 9.6-0.5 15.3 1.3zm-9.4-5.4c-1.6-1.1-2.9-1.8-3.7-2.2-0.7 0.1-1.3 0.1-2 0.2 0 0 2.3 0.7 4.9 2h-0.2z"/></g><path fill="#67bd47" d="m147.1 107.6c-1.7-0.4-8.3 4.3-10.8 6.1-0.1-0.5-0.2-0.9-0.3-1.1-0.3-1-6.7-0.4-8.2 1.2-4-1.9-12-5.6-12.1-3.3-0.3 3 0 15.5 1.6 16.4 1.2 0.7 8-3 11.4-4.9h0.1c2.1 0.5 6 0 7.4-0.9 0.2-0.1 0.3-0.3 0.4-0.5 3.1 1.2 9.8 3.6 11.2 3.1 1.8-0.5 1.4-15.6-0.7-16.1z"/><path fill="#43a347" d="m128.8 122c-2.1-0.4-1.4-2.5-1.4-7.4-0.5 0.3-0.9 0.7-0.9 1.1 0 4.9-0.8 7.1 1.4 7.4 2.1 0.5 6 0 7.6-0.9 0.3-0.2 0.4-0.5 0.5-1-1.5 0.9-5.2 1.3-7.2 0.8z"/></g></svg>
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 2.5 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="matrix(.28222 0 0 .28222 -18.909 -5.3622)"><circle cx="127" cy="79" r="60" fill="#de5833"/><path fill="#fff" d="m177.8 57.5c-2.8-6.6-6.8-12.5-11.8-17.5-5.1-5.1-11-9-17.5-11.8-6.8-2.9-14-4.3-21.5-4.3-7.4 0-14.7 1.5-21.5 4.3-6.6 2.7-12.5 6.7-17.5 11.8-5.1 5.1-9 11-11.8 17.5-2.9 6.8-4.3 14-4.3 21.5s1.5 14.7 4.3 21.5c2.8 6.6 6.8 12.5 11.8 17.5 5.1 5.1 11 9 17.5 11.8 6.8 2.9 14 4.3 21.5 4.3 7.4 0 14.7-1.5 21.5-4.3 6.5-2.8 12.4-6.8 17.5-11.8 5.1-5.1 9-11 11.8-17.5 2.9-6.8 4.3-14 4.3-21.5s-1.4-14.7-4.3-21.5zm-38.8 71c-3.2-5.4-11.6-20.5-11.6-31.7 0-25.8 17.3-3.7 17.3-24.3 0-4.9-2.4-22.1-17.4-25.7-3.7-4.9-12.4-9.6-26.2-7.7 0 0 2.3 0.7 4.9 2 0 0-5 0.7-5.2 4.1 0 0 9.9-0.5 15.5 1.3-12.9 1.7-19.5 8.5-18.3 20.8 1.7 17.5 9.1 48.7 11.7 59.6-19.6-7-33.7-25.8-33.7-47.9 0-28.1 22.8-51 51-51s51 22.8 51 51c-0.1 24-16.7 44.1-39 49.5z"/><path fill="#fed30a" fill-rule="evenodd" d="m124.2 87.3c0-6.6 9-8.7 12.4-8.7 9.2 0 22.2-5.9 25.4-5.8 3.3 0.1 5.4 1.4 5.4 2.9 0 2.2-18.4 10.5-25.5 9.8-6.8-0.6-8.4 0.1-8.4 2.9 0 2.4 4.9 4.6 10.3 4.6 8.1 0 16-3.6 18.4-1.9 2.1 1.5-5.5 6.9-14.2 6.9s-23.8-4.1-23.8-10.7z" clip-rule="evenodd"/><g fill="#2d4f8d"><path d="m140.2 59.3c-2.4-3.1-6.7-3.2-8.2 0.4 2.3-1.8 5.1-2.2 8.2-0.4zm-26.7 0.1c-3.3-2-8.8-2.2-8.5 4.1 1.6-3.9 3.8-4.6 8.5-4.1zm24.7 5.8c-1.8 0-3.3 1.5-3.3 3.3s1.5 3.3 3.3 3.3 3.3-1.5 3.3-3.3-1.5-3.3-3.3-3.3zm1.2 3.1c-0.5 0-1-0.4-1-1 0-0.5 0.4-1 1-1s1 0.4 1 1c-0.1 0.5-0.5 1-1 1zm-26.8-1.3c-2.1 0-3.8 1.7-3.8 3.8s1.7 3.8 3.8 3.8 3.8-1.7 3.8-3.8-1.7-3.8-3.8-3.8zm1.4 3.5c-0.6 0-1.1-0.5-1.1-1.1s0.5-1.1 1.1-1.1 1.1 0.5 1.1 1.1-0.5 1.1-1.1 1.1z"/></g><g fill="#d5d7d8"><path d="m104.3 50.8c-4.8 3.5-7 8.9-6.3 16.5 1.7 17.5 9.1 48.8 11.7 59.7l2.7 0.9c-1.6-6.6-9.3-38.8-12.7-63.5-0.9-6.6 1.7-10.5 4.6-13.6zm11.9-4.3c0.4 0 0.7-0.1 0.7-0.1-5.2-2.5-13.4-2.6-15.6-2.6-0.2 0.4-0.4 0.9-0.4 1.4-0.1 0.1 9.6-0.5 15.3 1.3zm-9.4-5.4c-1.6-1.1-2.9-1.8-3.7-2.2-0.7 0.1-1.3 0.1-2 0.2 0 0 2.3 0.7 4.9 2h-0.2z"/></g><path fill="#67bd47" d="m147.1 107.6c-1.7-0.4-8.3 4.3-10.8 6.1-0.1-0.5-0.2-0.9-0.3-1.1-0.3-1-6.7-0.4-8.2 1.2-4-1.9-12-5.6-12.1-3.3-0.3 3 0 15.5 1.6 16.4 1.2 0.7 8-3 11.4-4.9h0.1c2.1 0.5 6 0 7.4-0.9 0.2-0.1 0.3-0.3 0.4-0.5 3.1 1.2 9.8 3.6 11.2 3.1 1.8-0.5 1.4-15.6-0.7-16.1z"/><path fill="#43a347" d="m128.8 122c-2.1-0.4-1.4-2.5-1.4-7.4-0.5 0.3-0.9 0.7-0.9 1.1 0 4.9-0.8 7.1 1.4 7.4 2.1 0.5 6 0 7.6-0.9 0.3-0.2 0.4-0.5 0.5-1-1.5 0.9-5.2 1.3-7.2 0.8z"/></g></svg>
|
Before Width: | Height: | Size: 2.5 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="matrix(.36928 0 0 .36928 -15.111 -6.7595)"><circle cx="75" cy="92" r="0" style="fill:none;stroke-width:12;stroke:#000"/><circle cx="75.921" cy="53.903" r="30" style="fill:none;stroke-width:10;stroke:#3050ff"/><path d="m67.515 37.915a18 18 0 0 1 21.051 3.3124 18 18 0 0 1 3.1373 21.078" style="fill:none;stroke-width:5;stroke:#3050ff"/><rect width="18.846" height="39.963" x="3.706" y="122.09" ry="0" transform="rotate(-46.235)" style="fill:#3050ff"/></g></svg>
|
Before Width: | Height: | Size: 581 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 109 122"><g fill="none" fill-rule="nonzero"><path fill="#6573FF" d="M19.61 43.202c.468-12.964 10.896-23.35 23.862-23.767 12.966-.417 24.04 9.28 25.338 22.187 6.56.067 13.113.247 19.66.54C87.332 18.182 67.285-.518 43.284.011 19.284.54.08 20.106 0 44.112v.89a577.397 577.397 0 0 1 19.61-1.8Z"/><path fill="#E5E8FF" d="m78.68 71.932.2-.25a43.63 43.63 0 0 0 9.27-21.83c-6.667-.04-13.333.037-20 .23a24.68 24.68 0 0 1-46.8 3.29c-6.6.74-13.193 1.594-19.78 2.56 5.337 19.169 22.792 32.433 42.69 32.44A43.8 43.8 0 0 0 63 84.202l.28-.13.2.24 27.52 33.3a9.76 9.76 0 0 0 7.55 3.55 9.88 9.88 0 0 0 6.24-2.24c4.159-3.453 4.74-9.62 1.3-13.79l-27.41-33.2Z"/></g></svg>
|
Before Width: | Height: | Size: 705 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 109 122"><g fill="none" fill-rule="nonzero"><path fill="#6573FF" d="M19.61 43.202c.468-12.964 10.896-23.35 23.862-23.767 12.966-.417 24.04 9.28 25.338 22.187 6.56.067 13.113.247 19.66.54C87.332 18.182 67.285-.518 43.284.011 19.284.54.08 20.106 0 44.112v.89a577.397 577.397 0 0 1 19.61-1.8Z"/><path fill="#212649" d="m78.68 71.932.2-.25a43.63 43.63 0 0 0 9.27-21.83c-6.667-.04-13.333.037-20 .23a24.68 24.68 0 0 1-46.8 3.29c-6.6.74-13.193 1.594-19.78 2.56 5.337 19.169 22.792 32.433 42.69 32.44A43.8 43.8 0 0 0 63 84.202l.28-.13.2.24 27.52 33.3a9.76 9.76 0 0 0 7.55 3.55 9.88 9.88 0 0 0 6.24-2.24c4.159-3.453 4.74-9.62 1.3-13.79l-27.41-33.2Z"/></g></svg>
|
Before Width: | Height: | Size: 705 B |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 581 B |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 705 B |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 705 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77 77"><g fill="none" fill-rule="nonzero"><path fill="#192E45" d="M0 38.274c0 21.152 17.152 38.274 38.274 38.274s38.274-17.122 38.274-38.274S59.426 0 38.274 0 0 17.122 0 38.274Z"/><path fill="#D0933A" d="m5.121 33.698 2.91-4.06-.182 5.848.818-4.394c2.424 4.91 8.364 11.697 13.788 15.334.576.394 1.061.818 1.394 1.242.697.273 1.394.425 2.091.546.364.06.758.09 1.122.121.363.03.757.03 1.12.03.365 0 .728-.03 1.092-.06.363-.03.727-.091 1.09-.152.364-.06.728-.12 1.061-.242.364-.091.697-.182 1.061-.303.333-.091.697-.243 1.03-.364.334-.151.667-.273 1-.454.334-.182.667-.334.97-.516.334-.151.637-.363.97-.545.333-.182.636-.394.97-.576.333-.182.636-.394.94-.576.302-.212.635-.394.938-.606.304-.212.637-.394.97-.606l.303-.182.152.091 2.182 1.455-2.213-.576c-.212.243-.424.485-.666.727-.273.273-.576.546-.849.819-.303.242-.606.515-.94.727-.333.242-.636.455-1 .667-.666.424-1.393.788-2.15 1.09-.364.152-.758.304-1.122.425-.394.121-.758.242-1.152.333-.394.091-.788.182-1.181.243-.394.06-.788.09-1.182.151-.788.03-1.606.03-2.394-.09-.394-.061-.788-.122-1.182-.213-.394-.09-.758-.212-1.121-.333a10.463 10.463 0 0 1-1.849-.91s-2.091.304-1.242 1.88c.848 1.575 2.12 1.424 1.515 3.272-.425 1-1.03 1.97-1.697 2.88-1.394 1.878-3.576 3.545-3.364 4.545 9.91 12.212 32.244 10.515 40.729-.394-.122-1.576-2.606-2.334-4.334-6.182.485.151 1.212.364 1.212.333 0-.03-2.06-3.364-2.151-3.697l1.333.091s-1.757-2.182-1.818-2.394l1.788-.242s-2.243-2.576-2.273-2.788l2.273.363-2.485-3h1.182l-1.394-2.03c-.243-.091-.485-.152-.728-.212l-.909-.273c-3.394-1.06-6.606-2.03-9.697-3.97-4.333-2.697-8.212-6-11.122-8.576l-5.848-2.849c-5.607-.424-10.88-.272-14.092.364l2.061-3.515-3.152 3.788c-.212-.06-.272-.182-.272-.182l.212-4.667-1 4.212c-.303-.151-.667-.212-1.03-.212A2.509 2.509 0 0 0 5.09 26.85c0 1.273.94 2.334 2.182 2.485l-2.152 4.364Z"/><path fill="#FFCC86" d="M8.637 24.486a2.813 2.813 0 0 0-1-.212 2.509 2.509 0 0 0-2.516 2.515c0 1.212.88 2.242 2.03 2.485h.061c.758-.243 2.273-2.273 2.03-3.546a2.807 2.807 0 0 0-.605-1.242Z"/><path fill="#FDD321" d="M30.728 21.243c-.454-1.242-.333-2.848.303-4.364.91-2.09 2.637-3.485 4.273-3.485.334 0 .637.061.94.182.94-.848 2.03-1.545 3.242-2.03 6.698-2.667 16.486 2.09 19.001 8.667 1.212 3.182.849 6.667-.182 9.849-.848 2.606-3.94 6.364-2.788 9.212-.454-.121-10.03-3.09-12.697-4.788-4.273-2.667-8.122-5.94-11-8.485l-.092-.091-9.727-4.606a3.306 3.306 0 0 1-.334-.182c1.394 0 6.698.636 9.061.121"/><path fill="#FFF" d="M33.607 22.334a1.58 1.58 0 0 1-.697-.151c-.485-.212-.848-.606-1.09-1.213-.425-1.03-.304-2.454.272-3.788.758-1.727 2.182-2.939 3.485-2.939.243 0 .485.06.727.151.637.273 1.091.91 1.243 1.819.182.97.03 2.09-.455 3.151-.757 1.728-2.212 2.97-3.485 2.97Z"/><path fill="#192E45" d="M35.547 14.728c.182 0 .363.03.545.121.485.212.849.758.97 1.485.151.879.03 1.91-.424 2.879-.667 1.545-1.97 2.667-3.061 2.667-.182 0-.364-.03-.515-.091-.455-.182-.697-.606-.818-.94-.364-.909-.273-2.242.242-3.454.697-1.546 1.97-2.667 3.06-2.667m0-.91c-1.454 0-3.06 1.334-3.908 3.243-.637 1.425-.728 2.97-.273 4.152.273.697.727 1.182 1.303 1.455.273.12.576.181.909.181 1.455 0 3.06-1.333 3.879-3.242.515-1.152.667-2.364.485-3.425-.182-1.06-.728-1.818-1.515-2.151-.243-.152-.546-.212-.88-.212Z"/></g></svg>
|
Before Width: | Height: | Size: 3.2 KiB |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="SVGID_00000142168627081468672430000006527680084326249886_"><use xlink:href="#SVGID_1_"/></clipPath><linearGradient id="SVGID_00000088853459014864040730000009902632102805990829_" x1="536.6" x2="292.94" y1="1113.2" y2="64.084" gradientTransform="matrix(1,0,0,-1,0,788)" gradientUnits="userSpaceOnUse"><stop stop-color="#24ECC6" stop-opacity="0" offset=".4799"/><stop stop-color="#24ECC6" offset=".9944"/></linearGradient><linearGradient id="SVGID_00000075863372972845837890000016599907698185993344_" x1="759.68" x2="219.42" y1="79.312" y2="1003.2" gradientTransform="matrix(1,0,0,-1,0,788)" gradientUnits="userSpaceOnUse"><stop stop-color="#ABFFEF" offset=".066012"/><stop stop-color="#CAC9FF" offset=".4499"/><stop stop-color="#6D4AFF" offset="1"/></linearGradient><rect id="SVGID_1_" width="862" height="787"/></defs><g transform="matrix(.039294 0 0 .039294 3.7235e-7 1.4686)"><clipPath><use xlink:href="#SVGID_1_"/></clipPath><g clip-path="url(#SVGID_00000142168627081468672430000006527680084326249886_)"><path class="st1" d="m346.1 740.3c32.8 59.3 116.9 62.6 154 5.9l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.4-78.1c-72.7-8.3-124.4 68.9-89.1 132.9z" clip-rule="evenodd" fill="#6851f6" fill-rule="evenodd"/><path d="m346.3 740.3c32.8 59.3 116.9 62.6 154 5.9l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.4-78.2c-72.7-8.3-124.4 68.9-89 132.9z" clip-rule="evenodd" fill="url(#SVGID_00000088853459014864040730000009902632102805990829_)" fill-rule="evenodd"/><path d="m396.4 638.7-30.8 46.3c-12.5 18.7-40.4 17.6-51.2-2.1l31.7 57.5c5.7 10.2 12.8 18.8 21.1 25.7 39.3 33 102.2 27.1 133-19.8l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.5-78.2c-72.7-8.4-124.4 68.9-89.1 132.9l2.7 4.9 580.1 67.1c37 4.3 56.5 46 36 77.1z" fill="url(#SVGID_00000075863372972845837890000016599907698185993344_)"/></g></g></svg>
|
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 3.2 KiB |
@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="384" height="128" version="1.1" viewBox="0 0 101.6 33.867" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="SVGID_00000124143326424118090040000000686822535870151078_"><use xlink:href="#SVGID_1_"/></clipPath><linearGradient id="SVGID_00000083796956185287615240000010885015769944861357_" x1="536.48" x2="292.82" y1="1113.2" y2="64.084" gradientTransform="matrix(1,0,0,-1,0,788)" gradientUnits="userSpaceOnUse"><stop stop-color="#24ECC6" stop-opacity="0" offset=".4799"/><stop stop-color="#24ECC6" offset=".9944"/></linearGradient><linearGradient id="SVGID_00000005978595599017039650000002259067875620926859_" x1="759.68" x2="219.42" y1="79.312" y2="1003.2" gradientTransform="matrix(1,0,0,-1,0,788)" gradientUnits="userSpaceOnUse"><stop stop-color="#ABFFEF" offset=".066012"/><stop stop-color="#CAC9FF" offset=".4499"/><stop stop-color="#6D4AFF" offset="1"/></linearGradient><rect id="SVGID_1_" width="4520" height="787"/></defs><g transform="matrix(.022482 0 0 .022482 -.00026509 8.0851)"><clipPath><use xlink:href="#SVGID_1_"/></clipPath><g clip-path="url(#SVGID_00000124143326424118090040000000686822535870151078_)"><g fill="#6d4aff"><path class="st1" d="m3909.1 150h-223.4v483.9h88.5v-120.5c0-11.7 4.7-23 13-31.3s19.5-12.9 31.2-12.9h90.7c42.2 0 82.7-16.8 112.6-46.6 29.9-29.9 46.7-70.4 46.7-112.6 0.1-21-4-41.8-11.9-61.2-8-19.4-19.7-37-34.5-51.9s-32.4-26.7-51.8-34.7c-19.4-8.1-40.2-12.2-61.1-12.2zm69.6 158.8c0 9.9-1.9 19.7-5.8 28.9-3.8 9.2-9.4 17.5-16.4 24.5s-15.4 12.6-24.5 16.3c-9.2 3.8-19 5.7-28.9 5.7h-129.4v-150.8h129.4c10 0 19.8 2 29 5.8s17.5 9.4 24.5 16.5c7 7 12.6 15.4 16.3 24.6 3.8 9.2 5.7 19.1 5.6 29z"/><path class="st1" d="m3374.9 632.1-178.3-483.5h100.7l117.3 346c4.6 12.4 7.9 25.2 9.9 38.2h1c1.4-13.2 4.8-26 9.9-38.2l117.6-346h101.3l-179.2 483.5z"/><path class="st1" d="m4101.3 632.1v-483.5h77.5l228.3 299.9c8.2 10.3 15.3 21.5 21.3 33.2h1.4c-1.5-14.6-2.3-29.2-2.2-43.9v-289.2h91.5v483.5h-77.5l-228.9-299.9c-8.1-10.4-15.2-21.5-21.2-33.2h-0.8c1.2 14.6 1.7 29.2 1.5 43.9v289.3h-90.9z"/></g><g fill="#1b1340"><path class="st2" d="m1434.2 147.2h-223.4v483.9h88.5v-120.5c0-11.7 4.7-23 12.9-31.3 8.3-8.3 19.5-12.9 31.2-12.9h90.7c42.2 0 82.7-16.8 112.6-46.6s46.6-70.4 46.6-112.6c0.1-21-4-41.8-11.9-61.2-8-19.4-19.7-37-34.5-51.9s-32.4-26.7-51.8-34.7c-19.2-8.1-39.9-12.2-60.9-12.2zm69.7 158.8c0 9.9-1.9 19.7-5.8 28.9-3.8 9.2-9.4 17.5-16.4 24.5s-15.3 12.6-24.5 16.3c-9.2 3.8-19 5.7-28.9 5.7h-129.4v-150.8h129.4c9.9 0 19.8 2 29 5.8s17.5 9.4 24.5 16.5c7 7 12.6 15.4 16.3 24.6 3.8 9.2 5.7 19.1 5.6 29z"/><path class="st2" d="m1607.4 631.3v-192c0-78.3 45.8-140.6 137.3-140.6 14.7-0.2 29.4 1.4 43.7 4.8v79c-10.4-0.7-19.9-0.7-23.6-0.7-48.5 0-69.7 22.2-69.7 67.2v182.4h-87.7z"/><path class="st2" d="m1814.6 468.3c0-96.3 72.8-169.7 174-169.7s173.9 73.5 173.9 169.7c0 96.3-72.8 170.5-173.9 170.5s-174-74.1-174-170.5zm261.3 0c0-54.7-36.7-93.6-87.3-93.6s-87.4 38.8-87.4 93.6c0 54.7 36.7 93.6 87.4 93.6s87.3-38.1 87.3-93.6z"/><path class="st2" d="m2417.5 375.4h-94.9v121.3c0 42.3 15.2 61.6 58.8 61.6 4.2 0 14.6 0 27.8-0.7v71.5c-16.7 4.8-33.9 7.3-51.3 7.6-73.5 0-123.4-44.3-123.4-128.2v-133.1h-58.8v-69.7h14.6c11.7 0 23-4.7 31.2-12.9 8.3-8.3 12.9-19.5 12.9-31.2v-66.3h88.1v110.2h94.9v69.9z"/><path class="st2" d="m2443.9 468.3c0-96.3 72.8-169.7 173.9-169.7s174 73.5 174 169.7c0 96.3-72.8 170.5-174 170.5s-173.9-74.1-173.9-170.5zm261.3 0c0-54.7-36.7-93.6-87.4-93.6s-87.3 38.8-87.3 93.6c0 54.7 36.7 93.6 87.3 93.6s87.4-38.1 87.4-93.6z"/><path class="st2" d="m2837.5 631.3v-185.5c0-86 54.8-147.6 152.5-147.6 97.8 0 151.8 62 151.8 147.6v185h-87.3v-177.7c0-47.8-21.5-77.6-64.5-77.6s-64.4 29.9-64.4 77.6v178.2z"/></g><path class="st3" d="m346.1 740.3c32.8 59.3 116.9 62.6 154 5.9l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.4-78.1c-72.7-8.4-124.4 68.9-89.1 132.9z" clip-rule="evenodd" fill="#6d4aff" fill-rule="evenodd"/><path d="m346.1 740.3c32.8 59.3 116.9 62.6 154 5.9l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.4-78.2c-72.6-8.3-124.4 68.9-89 132.9z" clip-rule="evenodd" fill="url(#SVGID_00000083796956185287615240000010885015769944861357_)" fill-rule="evenodd"/><path d="m396.4 638.7-30.8 46.3c-12.5 18.7-40.4 17.6-51.2-2.1l31.7 57.5c5.7 10.2 12.8 18.8 21.1 25.7 39.3 33 102.2 27.1 133-19.8l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.5-78.2c-72.7-8.4-124.4 68.9-89.1 132.9l2.7 4.9 580.1 67.1c37 4.3 56.5 46 36 77.1z" fill="url(#SVGID_00000005978595599017039650000002259067875620926859_)"/></g></g></svg>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="SVGID_00000142168627081468672430000006527680084326249886_"><use xlink:href="#SVGID_1_"/></clipPath><linearGradient id="SVGID_00000088853459014864040730000009902632102805990829_" x1="536.6" x2="292.94" y1="1113.2" y2="64.084" gradientTransform="matrix(1,0,0,-1,0,788)" gradientUnits="userSpaceOnUse"><stop stop-color="#24ECC6" stop-opacity="0" offset=".4799"/><stop stop-color="#24ECC6" offset=".9944"/></linearGradient><linearGradient id="SVGID_00000075863372972845837890000016599907698185993344_" x1="759.68" x2="219.42" y1="79.312" y2="1003.2" gradientTransform="matrix(1,0,0,-1,0,788)" gradientUnits="userSpaceOnUse"><stop stop-color="#ABFFEF" offset=".066012"/><stop stop-color="#CAC9FF" offset=".4499"/><stop stop-color="#6D4AFF" offset="1"/></linearGradient><rect id="SVGID_1_" width="862" height="787"/></defs><g transform="matrix(.039294 0 0 .039294 3.7235e-7 1.4686)"><clipPath><use xlink:href="#SVGID_1_"/></clipPath><g clip-path="url(#SVGID_00000142168627081468672430000006527680084326249886_)"><path class="st1" d="m346.1 740.3c32.8 59.3 116.9 62.6 154 5.9l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.4-78.1c-72.7-8.3-124.4 68.9-89.1 132.9z" clip-rule="evenodd" fill="#6851f6" fill-rule="evenodd"/><path d="m346.3 740.3c32.8 59.3 116.9 62.6 154 5.9l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.4-78.2c-72.7-8.3-124.4 68.9-89 132.9z" clip-rule="evenodd" fill="url(#SVGID_00000088853459014864040730000009902632102805990829_)" fill-rule="evenodd"/><path d="m396.4 638.7-30.8 46.3c-12.5 18.7-40.4 17.6-51.2-2.1l31.7 57.5c5.7 10.2 12.8 18.8 21.1 25.7 39.3 33 102.2 27.1 133-19.8l346.7-528.4c36.8-56 1.6-131.2-65-138.8l-681.5-78.2c-72.7-8.4-124.4 68.9-89.1 132.9l2.7 4.9 580.1 67.1c37 4.3 56.5 46 36 77.1z" fill="url(#SVGID_00000075863372972845837890000016599907698185993344_)"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 2.0 KiB |
34
docs/assets/stylesheets/blog.css
Normal file
@ -0,0 +1,34 @@
|
||||
/* Homepage hero section */
|
||||
|
||||
.mdx-hero {
|
||||
color: var(--pg-hero-color);
|
||||
margin: 0 0.8rem;
|
||||
text-align: center;
|
||||
}
|
||||
.mdx-hero h1 {
|
||||
color: currentcolor;
|
||||
margin-bottom: 1rem;
|
||||
font-size: 2.6rem;
|
||||
}
|
||||
@media screen and (max-width: 29.9375em) {
|
||||
.mdx-hero h1 {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
}
|
||||
.mdx-hero__content {
|
||||
margin-top: 2rem;
|
||||
padding-bottom: 0rem;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .mdx-hero .md-button--primary {
|
||||
color: var(--md-primary-fg-color);
|
||||
}
|
||||
.mdx-hero .md-button--primary {
|
||||
color: var(--md-primary-fg-color);
|
||||
background-color: var(--pg-hero-color);
|
||||
border-color: transparent;
|
||||
margin-right: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
nav[class="md-tabs"] {
|
||||
border-bottom: none;
|
||||
}
|
@ -62,13 +62,55 @@
|
||||
|
||||
/* Define brand */
|
||||
:root, [data-md-color-scheme="default"] {
|
||||
--md-primary-fg-color: #FFD06F;
|
||||
--md-primary-fg-color--light: #ffdd98;
|
||||
--md-default-bg-color: rgb(247, 247, 252);
|
||||
--md-primary-fg-color: rgb(255, 255, 255);
|
||||
--md-primary-fg-color--light: #FFD06F;
|
||||
--md-primary-fg-color--dark: #db9d21;
|
||||
--md-primary-bg-color: rgba(0,0,0,.75);
|
||||
--md-primary-bg-color--light: rgba(0,0,0,.54);
|
||||
--md-accent-fg-color: #4e30e6;
|
||||
--md-text-font: "Public Sans", -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
|
||||
--md-code-font: "DM Mono", SFMono-Regular, Consolas, Menlo, monospace;
|
||||
--pg-light-border: rgb(229, 231, 235);
|
||||
--pg-hero-color: rgb(45, 45, 45);
|
||||
--pg-purple: #603aa0;
|
||||
--pg-red: #c0322f;
|
||||
--pg-orange: #ac2f09;
|
||||
--pg-teal: #04756a;
|
||||
--pg-brown: #8d6e62;
|
||||
--pg-blue: #0e66ae;
|
||||
--pg-green: #2e7e31;
|
||||
--pg-blue-gray: #546d78;
|
||||
}
|
||||
:root, [data-md-color-scheme="slate"] {
|
||||
--md-default-bg-color: rgb(26, 26, 27);
|
||||
--md-primary-fg-color: rgb(15, 15, 15);
|
||||
--md-primary-fg-color--light: #FFD06F;
|
||||
--md-primary-fg-color--dark: #db9d21;
|
||||
--md-primary-bg-color: rgba(0,0,0,.75);
|
||||
--md-primary-bg-color--light: rgba(0,0,0,.54);
|
||||
--md-accent-fg-color: #ffdb57;
|
||||
--md-text-font: "Public Sans", -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
|
||||
--md-code-font: "DM Mono", SFMono-Regular, Consolas, Menlo, monospace;
|
||||
--pg-light-border: rgb(47, 47, 47);
|
||||
--pg-hero-color: #FFD06F;
|
||||
--pg-purple: #af94de;
|
||||
--pg-red: #ff6c6a;
|
||||
--pg-orange: #e97b5a;
|
||||
--pg-teal: #8dc6c1;
|
||||
--pg-brown: #b6988c;
|
||||
--pg-blue: #74b9f1;
|
||||
--pg-green: #72cd75;
|
||||
--pg-blue-gray: #9ab2bc;
|
||||
--md-footer-bg-color--dark: var(--md-default-bg-color);
|
||||
}
|
||||
|
||||
/* Better contrast link colors */
|
||||
[data-md-color-scheme="default"] > * {
|
||||
--md-typeset-a-color: rgb(79, 70, 229);
|
||||
}
|
||||
[data-md-color-scheme="slate"] > * {
|
||||
--md-typeset-a-color: rgb(255, 208, 111);
|
||||
}
|
||||
|
||||
/* Hide shadow under navigation */
|
||||
@ -77,30 +119,52 @@
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Better contrast link colors */
|
||||
[data-md-color-scheme="default"] > * {
|
||||
--md-typeset-a-color: rgb(79, 70, 229);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] {
|
||||
--md-typeset-a-color: #CBBDFF;
|
||||
}
|
||||
|
||||
/* Purple buttons */
|
||||
/* buttons */
|
||||
.md-typeset .md-button {
|
||||
color: var(--md-typeset-a-color);
|
||||
margin-bottom: 5px;
|
||||
color: var(--md-typeset-color);
|
||||
background: none;
|
||||
border: 1px solid var(--pg-light-border);
|
||||
border-radius: 6px;
|
||||
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||
}
|
||||
.md-typeset .md-button--primary {
|
||||
color: white;
|
||||
background-color: var(--md-typeset-a-color);
|
||||
border-color: var(--md-typeset-a-color);
|
||||
}
|
||||
[data-md-color-scheme="slate"] .md-typeset .md-button--primary {
|
||||
color: var(--md-primary-bg-color);
|
||||
color: var(--md-typeset-a-color);
|
||||
background-color: var(--md-primary-fg-color);
|
||||
}
|
||||
|
||||
.md-typeset .grid.cards > :is(ul, ol) > li, .md-typeset .grid > .card { /* Firefox */
|
||||
color: var(--md-typeset-color);
|
||||
background: var(--md-primary-fg-color);
|
||||
border: 1px solid var(--pg-light-border);
|
||||
border-radius: 6px;
|
||||
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.md-typeset .grid.cards>:-webkit-any(ul,ol)>li, .md-typeset .grid>.card { /* Webkit */
|
||||
color: var(--md-typeset-color);
|
||||
background: var(--md-primary-fg-color);
|
||||
border: 1px solid var(--pg-light-border);
|
||||
border-radius: 6px;
|
||||
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.md-typeset .grid.cards > :is(ul, ol) > li:is(:focus-within, :hover), .md-typeset .grid > .card:is(:focus-within, :hover) { /* Firefox */
|
||||
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||
border-color: var(--md-accent-fg-color);
|
||||
}
|
||||
|
||||
.md-typeset .grid.cards>:-webkit-any(ul,ol)>li:-webkit-any(:focus-within,:hover) { /* Webkit */
|
||||
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||
border-color: var(--md-accent-fg-color);
|
||||
}
|
||||
|
||||
/* header font */
|
||||
|
||||
.md-header__topic:first-child {
|
||||
font-weight: 300;
|
||||
}
|
||||
h1, h2, h3, .md-header__topic {
|
||||
font-family: "Bagnard", serif;
|
||||
}
|
||||
@ -108,13 +172,9 @@ h1, h2, h3, .md-header__topic {
|
||||
/* Recommendation cards */
|
||||
.md-typeset .admonition.recommendation,
|
||||
.md-typeset details.recommendation {
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid var(--pg-light-border);
|
||||
font-size: inherit;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.recommendation,
|
||||
[data-md-color-scheme="slate"] .md-typeset details.recommendation {
|
||||
border: 1px solid #666;
|
||||
}
|
||||
.md-typeset .recommendation > .admonition-title,
|
||||
.md-typeset .recommendation > summary {
|
||||
background-color: rgba(43, 155, 70, 0.0);
|
||||
@ -151,13 +211,31 @@ h1, h2, h3, .md-header__topic {
|
||||
right:auto;
|
||||
}
|
||||
|
||||
.downloads p > a {
|
||||
padding-left: 0.5em;
|
||||
.downloads > ul > li {
|
||||
padding: 0.5em 0 !important;
|
||||
}
|
||||
|
||||
.downloads > ul .twemoji {
|
||||
width: .9rem
|
||||
}
|
||||
|
||||
details[class="downloads annotate"] > p .md-annotation span span::before {
|
||||
vertical-align: 0;
|
||||
}
|
||||
|
||||
.downloads > ul {
|
||||
display: grid!important;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
align-items: center;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.downloads > ul {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
/* Card links */
|
||||
.md-typeset .card-link {
|
||||
color: var(--md-default-fg-color--light);
|
||||
@ -199,52 +277,28 @@ details[class="downloads annotate"] > p .md-annotation span span::before {
|
||||
|
||||
/* Badge colors */
|
||||
.pg-purple {
|
||||
color: #603aa0;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-purple {
|
||||
color: #af94de;
|
||||
color: var(--pg-purple);
|
||||
}
|
||||
.pg-red {
|
||||
color: #c0322f;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-red {
|
||||
color: #ff6c6a;
|
||||
color: var(--pg-red);
|
||||
}
|
||||
.pg-orange {
|
||||
color: #ac2f09;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-orange {
|
||||
color: #e97b5a;
|
||||
color: var(--pg-orange);
|
||||
}
|
||||
.pg-teal {
|
||||
color: #04756a;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-teal {
|
||||
color: #8dc6c1;
|
||||
color: var(--pg-teal);
|
||||
}
|
||||
.pg-brown {
|
||||
color: #8d6e62;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-brown {
|
||||
color: #b6988c;
|
||||
color: var(--pg-brown);
|
||||
}
|
||||
.pg-blue {
|
||||
color: #0e66ae;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-blue {
|
||||
color: #74b9f1;
|
||||
color: var(--pg-blue);
|
||||
}
|
||||
.pg-green {
|
||||
color: #2e7e31;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-green {
|
||||
color: #72cd75;
|
||||
color: var(--pg-green);
|
||||
}
|
||||
.pg-blue-gray {
|
||||
color: #546d78;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .pg-blue-gray {
|
||||
color: #9ab2bc;
|
||||
color: var(--pg-blue-gray);
|
||||
}
|
||||
|
||||
/* Make light/dark mode icon smaller */
|
||||
@ -253,47 +307,187 @@ label[class="md-header__button md-icon"] svg {
|
||||
width: 1rem;
|
||||
}
|
||||
|
||||
/* Custom header + nav */
|
||||
.md-header >*, .md-tabs {
|
||||
background: none;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-header >*, [data-md-color-scheme="slate"] .md-tabs {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.md-header__button {
|
||||
color: var(--md-default-fg-color--light);
|
||||
}
|
||||
|
||||
.md-header, .md-tabs { /* firefox fallback */
|
||||
background-color: rgba(255, 255, 255, .95);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-header, [data-md-color-scheme="slate"] .md-tabs { /* firefox fallback */
|
||||
background-color: rgba(9, 9, 9, 0.95);
|
||||
}
|
||||
|
||||
@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
|
||||
.md-header, .md-tabs {
|
||||
background-color: rgba(255, 255, 255, .6);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
backdrop-filter: blur(12px);
|
||||
}
|
||||
[data-md-color-scheme="slate"] .md-header, [data-md-color-scheme="slate"] .md-tabs {
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
backdrop-filter: blur(12px);
|
||||
}
|
||||
}
|
||||
|
||||
[data-md-color-scheme="default"] img[src$="#only-dark"] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] img[src$="#only-light"] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title[for="__drawer"] {
|
||||
color: var(--md-typeset-a-color)
|
||||
}
|
||||
|
||||
@media screen and (max-width: 59.9375em) {
|
||||
.md-nav__source {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
header[class="md-header md-header--shadow"], nav[class="md-tabs"] {
|
||||
border-bottom: 1px solid var(--pg-light-border);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 60em) {
|
||||
.md-search__overlay {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.md-search__form {
|
||||
border: 1px solid var(--pg-light-border);
|
||||
background-color: var(--md-primary-fg-color) !important;
|
||||
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.02) 0px 1px 3px 0px, rgba(0, 0, 0, 0.02) 0px 1px 2px -1px;
|
||||
border-radius: 6px;
|
||||
height: 1.4rem;
|
||||
}
|
||||
|
||||
[data-md-toggle="search"]:checked ~ .md-header .md-search__form {
|
||||
border-radius: 6px 6px 0 0;
|
||||
}
|
||||
|
||||
[dir="ltr"] .md-search__output {
|
||||
top: initial;
|
||||
border-radius: 0 0 6px 6px;
|
||||
}
|
||||
|
||||
[data-md-toggle="search"]:checked ~ .md-header .md-search__output {
|
||||
box-shadow: 0 0 .6rem rgba(0,0,0,.07);
|
||||
}
|
||||
|
||||
.md-search__input {
|
||||
font-size: .6rem;
|
||||
}
|
||||
|
||||
.md-search__options {
|
||||
top: .05rem;
|
||||
}
|
||||
|
||||
.md-search__icon, .md-search__input::placeholder {
|
||||
color: var(--md-default-fg-color--light) !important;
|
||||
}
|
||||
|
||||
.md-search__icon svg {
|
||||
width: .75rem;
|
||||
height: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
div[class="md-source__icon md-icon"], div[class="md-source__repository md-source__repository--active"] *:not(.md-source__facts):not(.md-source__fact) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.md-source__fact::before {
|
||||
color: var(--md-default-fg-color--light);
|
||||
}
|
||||
|
||||
.md-header__option {
|
||||
transition: max-width 0ms,opacity 0ms;
|
||||
}
|
||||
|
||||
.md-header__source {
|
||||
text-align: right;
|
||||
width: initial;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
[dir="ltr"] .md-source__icon + .md-source__repository {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.md-source__repository {
|
||||
max-width: initial;
|
||||
}
|
||||
|
||||
form[class="md-header__option"] > label[class="md-header__button md-icon"] > svg {
|
||||
fill: none !important;
|
||||
}
|
||||
|
||||
.md-tabs__link--active {
|
||||
background:
|
||||
radial-gradient(farthest-side, var(--md-primary-fg-color--light) 98%,transparent 100%) bottom right/2px 2px,
|
||||
radial-gradient(farthest-side, var(--md-primary-fg-color--light) 98%,transparent 100%) bottom left /2px 2px,
|
||||
linear-gradient(var(--md-primary-fg-color--light),var(--md-primary-fg-color--light)) bottom/calc(100% - 2px) 2px;
|
||||
background-repeat:no-repeat;
|
||||
background-origin: padding-box;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
/* Redesigned admonitions */
|
||||
|
||||
.md-typeset .admonition.recommendation {
|
||||
border: 1px solid var(--pg-light-border);
|
||||
}
|
||||
|
||||
.md-typeset :is(.admonition, details) {
|
||||
background-color: var(--md-primary-fg-color);
|
||||
box-shadow: none;
|
||||
border-radius: 6px;
|
||||
border: 1px solid;
|
||||
border-left-width: 1px!important;
|
||||
}
|
||||
|
||||
.md-typeset :is(.admonition-title, summary) {
|
||||
margin-left: -0.6rem!important;
|
||||
}
|
||||
|
||||
.md-typeset details:not(.downloads, [open]) summary:hover {
|
||||
box-shadow: inset 0 0 100px 100px rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset details:not(.downloads, [open]) summary:hover {
|
||||
box-shadow: inset 0 0 100px 100px rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
[data-md-color-scheme="default"] .md-search__form {
|
||||
background-color: hsla(0,0%,100%,.3);
|
||||
}
|
||||
.md-search__form:hover {
|
||||
background-color: hsla(0,0%,100%,.9);
|
||||
}
|
||||
[data-md-color-scheme="slate"] .md-search__form:hover {
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.md-search__form, .md-typeset .grid.cards > :is(ul, ol) > li, .md-typeset .grid > .card {
|
||||
border-radius: 6px;
|
||||
}
|
||||
[data-md-toggle="search"]:checked ~ .md-header .md-search__form {
|
||||
border-radius: 6px 6px 0 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
[data-md-toggle="search"]:checked ~ .md-header .md-search__output {
|
||||
border-radius: 0 0 6px 6px;
|
||||
box-shadow: none;
|
||||
|
||||
.md-typeset .recommendation img[align="right"] {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
/* Custom tooltips */
|
||||
.md-tooltip {
|
||||
background-color: var(--md-primary-fg-color);
|
||||
border-radius: 6px;
|
||||
box-shadow: none;
|
||||
border: 1px solid rgba(128, 128, 128, 0.3);
|
||||
}
|
||||
.md-typeset .grid.cards > :is(ul, ol) > li:is(:focus-within, :hover), .md-typeset .grid > .card:is(:focus-within, :hover) {
|
||||
box-shadow: none;
|
||||
border-color: rgba(128, 128, 128, 0.5);
|
||||
|
||||
path[d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"] {
|
||||
d: path('M16.937 3.722a2.363 2.363 0 1 1 3.341 3.341L19.342 8 16 4.658l.937-.936ZM13.467 7 3 17.467V21h3.532L17 10.533 13.465 7h.001Z')
|
||||
}
|
||||
|
||||
/* Custom footer */
|
||||
button[class="md-feedback__icon md-icon"] svg {
|
||||
fill: none !important;
|
||||
}
|
||||
|
@ -1,23 +1,21 @@
|
||||
/* Homepage hero section */
|
||||
.mdx-container {
|
||||
background: url("data:image/svg+xml;utf8,<svg width='100%' height='100%' viewBox='0 0 1123 258' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'><g transform='matrix(-1.01432,0,0,0.388868,1134.41,161.501)'><path d='M1124,2L1124,258L-1,258L-1,210C-1,210 15,215 54,215C170,215 251,123 379,123C500,123 493,169 633,169C773,169 847,2 1205,3L1124,2Z' style='fill:white;fill-rule:nonzero;'/></g></svg>")
|
||||
background: url("data:image/svg+xml;utf8,<svg width='100%' height='100%' viewBox='0 0 1123 258' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'><g transform='matrix(-1.01432,0,0,0.388868,1134.41,161.501)'><path d='M1124,2L1124,258L-1,258L-1,210C-1,210 15,215 54,215C170,215 251,123 379,123C500,123 493,169 633,169C773,169 847,2 1205,3L1124,2Z' style='fill:rgb(247, 247, 252);fill-rule:nonzero;'/></g></svg>")
|
||||
no-repeat bottom,
|
||||
linear-gradient(to bottom, var(--md-primary-fg-color), var(--md-primary-fg-color--light) 99%, var(--md-default-bg-color) 99%);
|
||||
linear-gradient(to bottom, rgb(255 255 255/.8), #ffdd98 99%, var(--md-default-bg-color) 99%);
|
||||
padding-top: 1rem;
|
||||
}
|
||||
[data-md-color-scheme="slate"] .mdx-container {
|
||||
background: url("data:image/svg+xml;utf8,<svg width='100%' height='100%' viewBox='0 0 1123 258' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'><g transform='matrix(-1.01432,0,0,0.388868,1134.41,161.501)'><path d='M1124,2L1124,258L-1,258L-1,210C-1,210 15,215 54,215C170,215 251,123 379,123C500,123 493,169 633,169C773,169 847,2 1205,3L1124,2Z' style='fill:rgb(46,48,62);fill-rule:nonzero;'/></g></svg>")
|
||||
no-repeat bottom,
|
||||
linear-gradient(to bottom, var(--md-primary-fg-color), var(--md-primary-fg-color--dark) 99%, var(--md-default-bg-color) 99%);
|
||||
background: url("data:image/svg+xml;utf8,<svg width='100%' height='100%' viewBox='0 0 1123 258' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'><g transform='matrix(-1.01432,0,0,0.388868,1134.41,161.501)'><path d='M1124,2L1124,258L-1,258L-1,210C-1,210 15,215 54,215C170,215 251,123 379,123C500,123 493,169 633,169C773,169 847,2 1205,3L1124,2Z' style='fill:rgb(26, 26, 27);fill-rule:nonzero;'/></g></svg>")
|
||||
no-repeat bottom, rgba(9, 9, 9, 0.95);
|
||||
}
|
||||
|
||||
.mdx-hero {
|
||||
color: var(--md-primary-bg-color);
|
||||
color: var(--pg-hero-color);
|
||||
margin: 0 0.8rem;
|
||||
}
|
||||
.mdx-hero h1 {
|
||||
color: currentcolor;
|
||||
font-weight: 700;
|
||||
margin-bottom: 1rem;
|
||||
font-size: 2.6rem;
|
||||
}
|
||||
@ -51,18 +49,19 @@
|
||||
}
|
||||
}
|
||||
.mdx-hero .md-button {
|
||||
color: var(--md-primary-bg-color);
|
||||
color: var(--pg-hero-color);
|
||||
border-color: var(--pg-hero-color);
|
||||
}
|
||||
[data-md-color-scheme="slate"] .mdx-hero .md-button--primary {
|
||||
color: var(--md-primary-fg-color);
|
||||
}
|
||||
.mdx-hero .md-button--primary {
|
||||
color: var(--md-primary-fg-color);
|
||||
background-color: var(--md-primary-bg-color);
|
||||
background-color: var(--pg-hero-color);
|
||||
border-color: transparent;
|
||||
margin-right: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.mdx-hero .md-button--primary:is(:focus, :hover) {
|
||||
color: white;
|
||||
nav[class="md-tabs"] {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ Desktop platforms also often have a password manager which may help you recover
|
||||
- Windows [Credential Manager](https://support.microsoft.com/en-us/windows/accessing-credential-manager-1b5c916a-6a16-889f-8581-fc16e8165ac0)
|
||||
- macOS [Passwords](https://support.apple.com/en-us/HT211145)
|
||||
- iOS [Passwords](https://support.apple.com/en-us/HT211146)
|
||||
- Linux, Gnome Keyring, which can be accessed through [Seahorse](https://help.gnome.org/users/seahorse/stable/passwords-view.html.en), or [KDE Wallet Manager](https://userbase.kde.org/KDE_Wallet_Manager)
|
||||
- Linux, Gnome Keyring, which can be accessed through [Seahorse](https://help.gnome.org/users/seahorse/stable/passwords-view.html.en) or [KDE Wallet Manager](https://userbase.kde.org/KDE_Wallet_Manager)
|
||||
|
||||
### Email
|
||||
|
||||
@ -34,11 +34,11 @@ If you didn't use a password manager in the past or you think you have accounts
|
||||
|
||||
In order to delete your old accounts, you'll need to first make sure you can log in to them. Again, if the account was in your password manager, this step is easy. If not, you can try to guess your password. Failing that, there are typically options to regain access to your account, commonly available through a "forgot password" link on the login page. It may also be possible that accounts you've abandoned have already been deleted—sometimes services prune all old accounts.
|
||||
|
||||
When attempting to regain access, if the site returns an error message saying that email is not associated with an account, or you never receive a reset link after multiple attempts, then you do not have an account under that email address and should try a different one. If you can't figure out which email address you used, or you no longer have access to that email, you can try contacting the service's customer support. Unfortunately there is no guarantee that you will be able to reclaim access your account.
|
||||
When attempting to regain access, if the site returns an error message saying that email is not associated with an account, or you never receive a reset link after multiple attempts, then you do not have an account under that email address and should try a different one. If you can't figure out which email address you used, or you no longer have access to that email, you can try contacting the service's customer support. Unfortunately, there is no guarantee that you will be able to reclaim access your account.
|
||||
|
||||
### GDPR (EEA residents only)
|
||||
|
||||
Residents of the EEA have additional rights regarding data erasure specified in [Article 17](https://www.gdpr.org/regulation/article-17.html) of the GDPR. If it's applicable to you, read the privacy policy for any given service to find information on how to exercise your right to erasure. Reading the privacy policy can prove important, as some services have a "Delete Account" option that only disables your account and for real deletion you have to take additional action. Sometimes actual deletion may involve filling out surveys, emailing the data protection officer of the service, or even proving your residence in the EEA. If you plan to go this way, do **not** overwrite account information—your identity as an EEA resident may be required. Note that the location of the service does not matter; GDPR applies to anyone serving European users. If the service does not respect your right to erasure, you can contact your national [Data Protection Authority](https://ec.europa.eu/info/law/law-topic/data-protection/reform/rights-citizens/redress/what-should-i-do-if-i-think-my-personal-data-protection-rights-havent-been-respected_en) and you may be entitled to monetary compensation.
|
||||
Residents of the EEA have additional rights regarding data erasure specified in [Article 17](https://www.gdpr.org/regulation/article-17.html) of the GDPR. If it's applicable to you, read the privacy policy for any given service to find information on how to exercise your right to erasure. Reading the privacy policy can prove important, as some services have a "Delete Account" option that only disables your account and for real deletion you have to take additional action. Sometimes actual deletion may involve filling out surveys, emailing the data protection officer of the service or even proving your residence in the EEA. If you plan to go this way, do **not** overwrite account information—your identity as an EEA resident may be required. Note that the location of the service does not matter; GDPR applies to anyone serving European users. If the service does not respect your right to erasure, you can contact your national [Data Protection Authority](https://ec.europa.eu/info/law/law-topic/data-protection/reform/rights-citizens/redress/what-should-i-do-if-i-think-my-personal-data-protection-rights-havent-been-respected_en) and you may be entitled to monetary compensation.
|
||||
|
||||
### Overwriting Account information
|
||||
|
||||
@ -50,7 +50,7 @@ For the account email, either create a new alternate email account via your prov
|
||||
|
||||
You can check [JustDeleteMe](https://justdeleteme.xyz) for instructions on deleting the account for a specific service. Some sites will graciously have a "Delete Account" option, while others will go as far as to force you to speak with a support agent. The deletion process can vary from site to site, with account deletion being impossible on some.
|
||||
|
||||
For services that don't allow account deletion, the best thing to do is falsify all your information as previously mentioned and strengthen account security. To do so, enable [MFA](basics/multi-factor-authentication) and any extra security features offered. As well, change the password to a randomly-generated one that is the maximum allowed size (a [password manager](/passwords/#local-password-managers) can be useful for this).
|
||||
For services that don't allow account deletion, the best thing to do is falsify all your information as previously mentioned and strengthen account security. To do so, enable [MFA](multi-factor-authentication.md) and any extra security features offered. As well, change the password to a randomly-generated one that is the maximum allowed size (a [password manager](/passwords/#local-password-managers) can be useful for this).
|
||||
|
||||
If you're satisfied that all information you care about is removed, you can safely forget about this account. If not, it might be a good idea to keep the credentials stored with your other passwords and occasionally re-login to reset the password.
|
||||
|
||||
@ -58,6 +58,4 @@ Even when you are able to delete an account, there is no guarantee that all your
|
||||
|
||||
## Avoid New Accounts
|
||||
|
||||
As the old saying goes, "an ounce of prevention is worth a pound of cure." Whenever you feel tempted to sign up for a new account, ask yourself "Do I really need this? Can I accomplish what I need to without an account?" It can often be much harder to delete an account than to create one. And even after deleting or changing the info on your account, there might be a cached version from a third party—like the [Internet Archive](https://archive.org/). Avoid the temptation when you're able to—your future self will thank you!
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
As the old saying goes, "an ounce of prevention is worth a pound of cure." Whenever you feel tempted to sign up for a new account, ask yourself, "Do I really need this? Can I accomplish what I need to without an account?" It can often be much harder to delete an account than to create one. And even after deleting or changing the info on your account, there might be a cached version from a third-party—like the [Internet Archive](https://archive.org/). Avoid the temptation when you're able to—your future self will thank you!
|
||||
|
@ -28,7 +28,7 @@ Whistleblowers and journalists, for example, can have a much more extreme threat
|
||||
|
||||
<span class="pg-orange">:material-bug-outline: Passive Attacks</span>
|
||||
|
||||
Security and privacy are often conflated, because you need security to obtain any semblance of privacy: Using tools which appear private is futile if they could easily be exploited by attackers to release your data later. However, the inverse is not necessarily true; the most secure service in the world *isn't necessarily* private. The best example of this is trusting data to Google, who, given their scale, have had minimal security incidents by employing industry-leading security experts to secure their infrastructure. Even though Google provides a very secure service, very few would consider their data private in their hands.
|
||||
Security and privacy are often conflated, because you need security to obtain any semblance of privacy: Using tools which appear private is futile if they could easily be exploited by attackers to release your data later. However, the inverse is not necessarily true; the most secure service in the world *isn't necessarily* private. The best example of this is trusting data to Google, who, given their scale, have had minimal security incidents by employing industry-leading security experts to secure their infrastructure. Even though Google provides a very secure service, very few would consider their data private in Google's free consumer products (Gmail, YouTube, etc).
|
||||
|
||||
When it comes to application security, we generally do not (and sometimes cannot) know if the software that we use is malicious, or might one day become malicious. Even with the most trustworthy developers, there is generally no guarantee that their software does not have a serious vulnerability that could later be exploited.
|
||||
|
||||
@ -38,7 +38,7 @@ To minimize the potential damage that a malicious piece of software can do, you
|
||||
|
||||
Mobile operating systems are generally safer than desktop operating systems when it comes to application sandboxing. Apps cannot obtain root access and only have access to system resources which you grant them.
|
||||
|
||||
Desktop operating systems generally lag behind on proper sandboxing. Chrome OS has similar sandboxing properties to Android, and macOS has full system permission control and opt-in (for developers) sandboxing for applications, however these operating systems do transmit identifying information to their respective OEMs. Linux tends to not submit information to system vendors, but it has poor protection against exploits and malicious apps. This can be mitigated somewhat with specialized distributions which make heavy use of VMs or containers, such as Qubes OS.
|
||||
Desktop operating systems generally lag behind on proper sandboxing. ChromeOS has similar sandboxing properties to Android, and macOS has full system permission control and opt-in (for developers) sandboxing for applications, however these operating systems do transmit identifying information to their respective OEMs. Linux tends to not submit information to system vendors, but it has poor protection against exploits and malicious apps. This can be mitigated somewhat with specialized distributions which make heavy use of virtual machines or containers, such as Qubes OS.
|
||||
|
||||
<span class="pg-red">:material-target-account: Targeted Attacks</span>
|
||||
|
||||
@ -48,7 +48,7 @@ Targeted attacks against a specific user are more problematic to deal with. Comm
|
||||
|
||||
**Web browsers**, **email clients**, and **office applications** all typically run untrusted code sent to you from third-parties by design. Running multiple virtual machines to separate applications like these from your host system as well as each other is one technique you can use to avoid an exploit in these applications from compromising the rest of your system. Technologies like Qubes OS or Microsoft Defender Application Guard on Windows provide convenient methods to do this seamlessly, for example.
|
||||
|
||||
If you are concerned about **physical attacks** you should use an operating system with a secure verified boot implementation, such as Android, iOS, or macOS. You should also make sure that your drive is encrypted, and that the operating system uses a TPM or Secure Element for rate limiting attempts to enter the encryption passphrase. You should avoid sharing your computer with people you don't trust, because most desktop operating systems do not encrypt data separately per-user.
|
||||
If you are concerned about **physical attacks** you should use an operating system with a secure verified boot implementation, such as Android, iOS, macOS, [Windows (with TPM)](https://docs.microsoft.com/en-us/windows/security/information-protection/secure-the-windows-10-boot-process). You should also make sure that your drive is encrypted, and that the operating system uses a TPM or Secure [Enclave](https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/1/web/1) or [Element](https://developers.google.com/android/security/android-ready-se) for rate limiting attempts to enter the encryption passphrase. You should avoid sharing your computer with people you don't trust, because most desktop operating systems do not encrypt data separately per-user.
|
||||
|
||||
## Privacy From Service Providers
|
||||
|
||||
@ -82,11 +82,11 @@ Online, you can be tracked via a wide variety of methods, including but not limi
|
||||
- Your browser or device fingerprint
|
||||
- Payment method correlation
|
||||
|
||||
Therefore your goals could be to segregate your online identities from each other, to blend in with other users, and to simply avoid giving out identifying information to anyone as much as possible.
|
||||
Therefore, your goals could be to segregate your online identities from each other, to blend in with other users, and to simply avoid giving out identifying information to anyone as much as possible.
|
||||
|
||||
<span class="pg-blue">:material-eye-outline: Mass Surveillance</span>
|
||||
|
||||
Governments often cite mass surveillance programs as necessary to combat terrorism and prevent crime, however it is most often used to disproportionately target minorities, political dissidents, and many other groups to create a chilling effect on free speech.
|
||||
Governments often cite mass surveillance programs as necessary to combat terrorism and prevent crime, however it is most often used to disproportionately target minorities, political dissidents and many other groups to create a chilling effect on free speech.
|
||||
|
||||
!!! quote "ACLU: [The Privacy Lesson of 9/11: Mass Surveillance is Not the Way Forward](https://www.aclu.org/news/national-security/the-privacy-lesson-of-9-11-mass-surveillance-is-not-the-way-forward)"
|
||||
|
||||
@ -108,7 +108,7 @@ Additionally, even companies outside of the ad-tech/tracking space can share you
|
||||
|
||||
The best way to ensure your data is private is to simply not put it out there in the first place. Deleting information you find about yourself online is one of the best first steps you can take to regain your privacy.
|
||||
|
||||
- [View our guide on account deletion :material-arrow-right:](account-deletion.md)
|
||||
- [View our guide on account deletion :hero-arrow-circle-right-fill:](account-deletion.md)
|
||||
|
||||
On sites where you do share information, checking the privacy settings of your account to limit how widely that data is spread is very important. For example, if your accounts have a "private mode," enable it to make sure your account isn't being indexed by search engines and can't be viewed by people you don't vet beforehand.
|
||||
|
||||
@ -130,19 +130,19 @@ People concerned with the threat of censorship can use technologies like Tor to
|
||||
|
||||
You should consider what aspects of the network your adversary can observe, and whether you have plausible deniability for your actions. For example, using encrypted DNS can help you bypass rudimentary censorship systems based solely on DNS, but it cannot truly hide what you are visiting from your ISP. A VPN or Tor can help hide what you are visiting from the network administrators, but cannot hide that you are using those networks. Pluggable transports like Obfs4proxy, Meek or Shadowsocks can help you evade firewalls that block common VPN protocols or Tor, but an adversary can still figure out that you are actively trying to bypass their censorship system as opposed to just protecting your privacy through probing or deep packet inspection.
|
||||
|
||||
You must always consider the risks involved with trying to bypass censorship, what the potential consequences are, and how sophisticated your adversary may be. Be extra cautious with your software selection, and have a backup plan in case you are caught.
|
||||
You must always consider the risks involved with trying to bypass censorship, what the potential consequences are, and how sophisticated your adversary may be. Be extra cautious with your software selection and have a backup plan in case you are caught.
|
||||
|
||||
## Common Misconceptions
|
||||
|
||||
:material-numeric-1-circle: **Open source software is always secure** or **Proprietary software is more secure**
|
||||
:material-numeric-1-circle: **Open-source software is always secure** or **Proprietary software is more secure**
|
||||
|
||||
These myths stem from a number of prejudices, but the source-availability and licensure of a software product does not inherently affect its security in any way. ==Open-source software has the *potential* to be more secure than proprietary software, but there is absolutely no guarantee this is the case.== When you evaluate software, you need to look at the reputation and security of each tool on an individual basis.
|
||||
|
||||
Open-source software *can* be audited by third-parties, and is often more transparent regarding potential vulnerabilities than their proprietary counterparts. They can also be more flexible, allowing you to delve into the code and disable any suspicious functionality you find yourself. However, unless you review the code yourself there is no guarantee that code has ever been evaluated, especially with smaller software projects, and the open development process can sometimes be exploited by malicious parties to introduce new vulnerabilities into even large projects.[^4]
|
||||
Open-source software *can* be audited by third-parties and is often more transparent regarding potential vulnerabilities than their proprietary counterparts. They can also be more flexible, allowing you to delve into the code and disable any suspicious functionality you find yourself. However, unless you review the code yourself there is no guarantee that code has ever been evaluated, especially with smaller software projects, and the open development process can sometimes be exploited by malicious parties to introduce new vulnerabilities into even large projects.[^4]
|
||||
|
||||
On the flip side, proprietary software is less transparent, but that does not imply it is not secure. Major proprietary software projects can be audited internally and by third-party agencies, and independent security researchers can still find vulnerabilities with techniques like reverse engineering.
|
||||
|
||||
At the end of the day, it is **vital** that you research and evaluate the privacy and security properties of each piece of software being used, and avoid making decisions based on biases.
|
||||
At the end of the day, it is **vital** that you research and evaluate the privacy and security properties of each piece of software being used and avoid making decisions based on biases.
|
||||
|
||||
:material-numeric-2-circle: **Shifting trust can increase privacy**
|
||||
|
||||
@ -153,10 +153,40 @@ We talk about "shifting trust" a lot when discussing solutions like VPNs, which
|
||||
|
||||
:material-numeric-3-circle: **Privacy-focused solutions are inherently trustworthy**
|
||||
|
||||
Focusing solely on the privacy policies and marketing of a tool or provider can blind you to its weaknesses. When you're looking for a privacy solution you should determine what the underlying problem is and find technical solutions to that problem. For example, you may want to avoid Google Drive, which gives Google access to all of your data. The underlying problem in this case is a lack of end-to-end encryption, so you should make sure the provider you switch to actually implements end-to-end encryption, or use a tool like Cryptomator which provides end-to-end encryption on any cloud provider. Blindly switching to a "privacy-focused" provider which does not provide end-to-end encryption does not solve your problem, it merely shifts trust from Google to that provider.
|
||||
Focusing solely on the privacy policies and marketing of a tool or provider can blind you to its weaknesses. When you're looking for a privacy solution, you should determine what the underlying problem is and find technical solutions to that problem. For example, you may want to avoid Google Drive, which gives Google access to all of your data. The underlying problem, in this case, is a lack of end-to-end encryption, so you should make sure the provider you switch to actually implements end-to-end encryption or use a tool like Cryptomator which provides end-to-end encryption on any cloud provider. Blindly switching to a "privacy-focused" provider which does not provide end-to-end encryption does not solve your problem, it merely shifts trust from Google to that provider.
|
||||
|
||||
The privacy policies and business practices of a provider you choose are very important, but should be considered secondary to technical guarantees of your privacy: Don't elect to merely shift trust to another provider when trusting a provider isn't a requirement at all.
|
||||
|
||||
:material-numeric-4-circle: **Complicated is better**
|
||||
|
||||
We often see people describing privacy threat models that are overly complex. Often, these solutions include problems like many different email accounts or complicated setups with a lot of moving parts and conditions. The replies are usually answers to, "What is the best way to do X?".
|
||||
|
||||
Finding the "best" solution for yourself doesn't necessarily mean you are after an infallible solution with dozens of conditions—these solutions are often difficult to work with realistically. As we discussed previously, security often comes at the cost of convenience. Below, we provide some tips:
|
||||
|
||||
1. <mark>Actions need to serve a particular purpose</mark>, think about how to do what you want with the least amount of actions.
|
||||
2. <mark>Remove human failure points</mark> (don't have a bunch of conditions you must remember to do what with which accounts). Humans fail, they get tired, they forget things... don't have many conditions or manual processes you must remember in order to maintain operational security.
|
||||
3. <mark>Use the right level of protection for what you intend.</mark> We often see recommendations of so-called law-enforcement, subpoena proof solutions. These require a lot of special case knowledge (knowing about how things truly work under the hood) and are generally not what people want. There is no point in building an intricately anonymous threat model if you can be easily de-anonymized by a simple oversight.
|
||||
|
||||
So, how might this look?
|
||||
|
||||
One of the clearest threat models is one where people *know who you are* and one where they do not. There will always be situations where you must declare your legal name and places where you can get away without doing so.
|
||||
|
||||
1. **Known identity** - A known identity is used for things where you must declare your name. There are many such legal documents and contracts where a legal identity is required. This could range from opening a bank account, signing a property lease, obtaining a passport, a customs declaration when importing an item or otherwise dealing with your Government. These things will usually always lead back credentials such as credit cards, credit rating checks, account numbers and possibly physical addresses.
|
||||
|
||||
We don't suggest using a VPN or Tor for any of these things as your identity is already known through other means.
|
||||
|
||||
!!! tip
|
||||
|
||||
When shopping online, the use of a [parcel locker](https://en.wikipedia.org/wiki/Parcel_locker) can help keep your physical address private.
|
||||
|
||||
2. **Unknown identity** - An unknown identity could be a stable pseudonym that you regularly use. It is not anonymous because it doesn't change. If you're a part of an online community, you may wish to retain a persona that others know. The reason this is not anonymous is that if monitored over a period of time details about the owner may reveal further information, such as the way they write (linguistics), general knowledge about topics of interest, etc.
|
||||
|
||||
You may wish to use a VPN for this to mask your IP address. Financial transactions are more difficult and for this we'd suggest using anonymous cryptocurrencies such as Monero. Employing alt-coin shifting may also help disguise where your currency originated. Typically exchanges require KYC (know your customer) to be completed before they will allow you to exchange fiat currency into any kind of cryptocurrency. Local meet-up options may also be a solution, however those often are more expensive and sometimes also require KYC.
|
||||
|
||||
3. **Anonymous identity** - Anonymous identities are difficult to maintain over long periods of time for even the most experienced. They should be short-term and short lived identities which are rotated regularly.
|
||||
|
||||
Using Tor can help with this, it's also worth noting greater anonymity is possible through asynchronous (not real-time communication). Real-time communication is vulnerable to typing analysis patterns (more than a slab of text distributed on a forum, email, etc) that you've had time to think about, maybe even put through a translator and back again.
|
||||
|
||||
[^1]: United States Privacy and Civil Liberties Oversight Board: [Report on the Telephone Records Program Conducted under Section 215](https://documents.pclob.gov/prod/Documents/OversightReport/ec542143-1079-424a-84b3-acc354698560/215-Report_on_the_Telephone_Records_Program.pdf)
|
||||
[^2]: Wikipedia: [Surveillance capitalism](https://en.wikipedia.org/wiki/Surveillance_capitalism)
|
||||
[^3]: "[Enumerating badness](https://www.ranum.com/security/computer_security/editorials/dumb/)" (or, "listing all the bad things that we know about") as many adblockers and antivirus programs do, fails to adequately protect you from new and unknown threats because they have not yet been added to the filter list. You need to additionally employ other mitigation techniques to be fully protected.
|
||||
|
@ -79,7 +79,7 @@ Encrypted DNS can refer to one of a number of protocols, the most common ones be
|
||||
|
||||
[**DNS over HTTPS**](https://en.wikipedia.org/wiki/DNS_over_HTTPS) as defined in [RFC 8484](https://datatracker.ietf.org/doc/html/rfc8484) packages queries in the [HTTP/2](https://en.wikipedia.org/wiki/HTTP/2) protocol and provides security with HTTPS. Support was first added in web browsers such as Firefox 60 and Chrome 83.
|
||||
|
||||
Native implementation of DoH showed up in iOS 14, macOS 11, Microsoft Windows, and Android 13 (however it won't be enabled [by default](https://android-review.googlesource.com/c/platform/packages/modules/DnsResolver/+/1833144)). General Linux desktop support is waiting on the systemd [implementation](https://github.com/systemd/systemd/issues/8639) so [installing third party software is still required](../dns.md#linux).
|
||||
Native implementation of DoH showed up in iOS 14, macOS 11, Microsoft Windows, and Android 13 (however, it won't be enabled [by default](https://android-review.googlesource.com/c/platform/packages/modules/DnsResolver/+/1833144)). General Linux desktop support is waiting on the systemd [implementation](https://github.com/systemd/systemd/issues/8639) so [installing third-party software is still required](../dns.md#linux).
|
||||
|
||||
## What can an outside party see?
|
||||
|
||||
@ -117,7 +117,7 @@ When we do a DNS lookup, it's generally because we want to access a resource. Be
|
||||
|
||||
The simplest way to determine browsing activity might be to look at the IP addresses your devices are accessing. For example, if the observer knows that `privacyguides.org` is at `198.98.54.105`, and your device is requesting data from `198.98.54.105`, there is a good chance you're visiting Privacy Guides.
|
||||
|
||||
This method is only useful when the IP address belongs to a server that only hosts few websites. It's also not very useful if the site is hosted on a shared platform, (e.g. Github Pages, Cloudflare Pages, Netlify, WordPress, Blogger, etc). It also isn't very useful if the server is hosted behind a [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy), which is very common on the modern Internet.
|
||||
This method is only useful when the IP address belongs to a server that only hosts few websites. It's also not very useful if the site is hosted on a shared platform (e.g. Github Pages, Cloudflare Pages, Netlify, WordPress, Blogger, etc). It also isn't very useful if the server is hosted behind a [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy), which is very common on the modern Internet.
|
||||
|
||||
### Server Name Indication (SNI)
|
||||
|
||||
@ -163,7 +163,7 @@ Governments, in particular [China](https://www.zdnet.com/article/china-is-now-bl
|
||||
|
||||
### Online Certificate Status Protocol (OCSP)
|
||||
|
||||
Another way your browser can disclose your browsing activities is with the [Online Certificate Status Protocol](https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol). When visiting a HTTPS website, the browser might check to see if the website's [certificate](https://en.wikipedia.org/wiki/Public_key_certificate) has been revoked. This is generally done through the HTTP protocol, meaning it is **not** encrypted.
|
||||
Another way your browser can disclose your browsing activities is with the [Online Certificate Status Protocol](https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol). When visiting an HTTPS website, the browser might check to see if the website's [certificate](https://en.wikipedia.org/wiki/Public_key_certificate) has been revoked. This is generally done through the HTTP protocol, meaning it is **not** encrypted.
|
||||
|
||||
The OCSP request contains the certificate "[serial number](https://en.wikipedia.org/wiki/Public_key_certificate#Common_fields)", which is unique. It is sent to the "OCSP responder" in order to check its status.
|
||||
|
||||
@ -224,7 +224,7 @@ We can simulate what a browser would do using the [`openssl`](https://en.wikiped
|
||||
wireshark -r /tmp/pg_ocsp.pcap
|
||||
```
|
||||
|
||||
There will be two packets with the "OCSP" protocol; a "Request" and a "Response". For the "Request" we can see the "serial number" by expanding the triangle ▸ next to each field:
|
||||
There will be two packets with the "OCSP" protocol: a "Request" and a "Response". For the "Request" we can see the "serial number" by expanding the triangle ▸ next to each field:
|
||||
|
||||
```bash
|
||||
▸ Online Certificate Status Protocol
|
||||
@ -275,7 +275,7 @@ graph TB
|
||||
ispDNS --> | No | nothing(Do nothing)
|
||||
```
|
||||
|
||||
Encrypted DNS with a 3rd party should only be used to get around redirects and basic [DNS blocking](https://en.wikipedia.org/wiki/DNS_blocking) when you can be sure there won't be any consequences or you're interested in a provider that does some rudimentary filtering.
|
||||
Encrypted DNS with a third-party should only be used to get around redirects and basic [DNS blocking](https://en.wikipedia.org/wiki/DNS_blocking) when you can be sure there won't be any consequences or you're interested in a provider that does some rudimentary filtering.
|
||||
|
||||
[List of recommended DNS servers](../dns.md){ .md-button }
|
||||
|
||||
@ -304,5 +304,3 @@ The [EDNS Client Subnet](https://en.wikipedia.org/wiki/EDNS_Client_Subnet) is a
|
||||
It's intended to "speed up" delivery of data by giving the client an answer that belongs to a server that is close to them such as a [content delivery network](https://en.wikipedia.org/wiki/Content_delivery_network), which are often used in video streaming and serving JavaScript web apps.
|
||||
|
||||
This feature does come at a privacy cost, as it tells the DNS server some information about the client's location.
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
@ -17,17 +17,17 @@ Even if you use OpenPGP, it does not support [forward secrecy](https://en.wikipe
|
||||
|
||||
### What Email Clients Support E2EE?
|
||||
|
||||
Email providers which allow you to use standard access protocols like IMAP and SMTP can be used with any of the [email clients we recommend](../email-clients.md). This can be less secure as you are now relying on email providers to ensure that their encryption implementation works and has not been compromised in anyway.
|
||||
Email providers which allow you to use standard access protocols like IMAP and SMTP can be used with any of the [email clients we recommend](../email-clients.md). Depending on the authentication method, this may lead to the decrease security if either the provider or the email client does not support OATH or a bridge application as [multi-factor authentication](/basics/multi-factor-authentication/) is not possible with plain password authentication.
|
||||
|
||||
### How Do I Protect My Private Keys?
|
||||
|
||||
A smartcard (such as a [Yubikey](https://support.yubico.com/hc/en-us/articles/360013790259-Using-Your-YubiKey-with-OpenPGP) or [Nitrokey](https://www.nitrokey.com)) works by receiving an encrypted email message from a device (phone, tablet, computer etc) running an email/webmail client. The message is then decrypted by the smartcard and the decrypted content is sent back to the device.
|
||||
A smartcard (such as a [Yubikey](https://support.yubico.com/hc/en-us/articles/360013790259-Using-Your-YubiKey-with-OpenPGP) or [Nitrokey](https://www.nitrokey.com)) works by receiving an encrypted email message from a device (phone, tablet, computer, etc) running an email/webmail client. The message is then decrypted by the smartcard and the decrypted content is sent back to the device.
|
||||
|
||||
It is advantageous for the decryption to occur on the smartcard so as to avoid possibly exposing your private key to a compromised device.
|
||||
|
||||
## Email Metadata Overview
|
||||
|
||||
Email metadata is stored in the [message header](https://en.wikipedia.org/wiki/Email#Message_header) of the email message, and includes some visible headers that you may have seen such as: `To`, `From`, `Cc`, `Date`, `Subject`. There are also a number of hidden headers included by many email clients and providers that can reveal information about your account.
|
||||
Email metadata is stored in the [message header](https://en.wikipedia.org/wiki/Email#Message_header) of the email message and includes some visible headers that you may have seen such as: `To`, `From`, `Cc`, `Date`, `Subject`. There are also a number of hidden headers included by many email clients and providers that can reveal information about your account.
|
||||
|
||||
Client software may use email metadata to show who a message is from and what time it was received. Servers may use it to determine where an email message must be sent, among [other purposes](https://en.wikipedia.org/wiki/Email#Message_header) which are not always transparent.
|
||||
|
||||
@ -38,5 +38,3 @@ Email metadata is protected from outside observers with [Opportunistic TLS](http
|
||||
### Why Can't Metadata be E2EE?
|
||||
|
||||
Email metadata is crucial to the most basic functionality of email (where it came from, and where it has to go). E2EE was not built into the email protocols originally, instead requiring add-on software like OpenPGP. Because OpenPGP messages still have to work with traditional email providers, it cannot encrypt email metadata, only the message body itself. That means that even when using OpenPGP, outside observers can see lots of information about your messages, such as who you're emailing, the subject lines, when you're emailing, etc.
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
|
@ -6,7 +6,7 @@ icon: 'material/two-factor-authentication'
|
||||
|
||||
Normally, if a hacker (or adversary) is able to figure out your password then they’d gain access to the account that password belongs to. An account with MFA forces the hacker to have both the password (something you *know*) and a device that you own (something you *have*), like your phone.
|
||||
|
||||
MFA methods vary in security, but are based on the premise that the more difficult it is for an attacker to gain access to your MFA method, the better. Examples of MFA methods (from weakest to strongest) include SMS, Email codes, app push notifications, TOTP, Yubico OTP, and FIDO.
|
||||
MFA methods vary in security, but are based on the premise that the more difficult it is for an attacker to gain access to your MFA method, the better. Examples of MFA methods (from weakest to strongest) include SMS, Email codes, app push notifications, TOTP, Yubico OTP and FIDO.
|
||||
|
||||
## MFA Method Comparison
|
||||
|
||||
@ -24,13 +24,13 @@ The security of push notification MFA is dependent on both the quality of the ap
|
||||
|
||||
### Time-based One-time Password (TOTP)
|
||||
|
||||
TOTP is one of the most common forms of MFA available. When you set up TOTP you are generally required to scan a [QR Code](https://en.wikipedia.org/wiki/QR_code) which establishes a "[shared secret](https://en.wikipedia.org/wiki/Shared_secret)" with the service that you intend to use. The shared secret is secured inside of the authenticator app's data, and is sometimes protected by a password.
|
||||
TOTP is one of the most common forms of MFA available. When you set up TOTP, you are generally required to scan a [QR Code](https://en.wikipedia.org/wiki/QR_code) which establishes a "[shared secret](https://en.wikipedia.org/wiki/Shared_secret)" with the service that you intend to use. The shared secret is secured inside of the authenticator app's data, and is sometimes protected by a password.
|
||||
|
||||
The time-limited code is then derived from the shared secret and the current time. As the code is only valid for a short time, without access to the shared secret an adversary cannot generate new codes.
|
||||
The time-limited code is then derived from the shared secret and the current time. As the code is only valid for a short time, without access to the shared secret, an adversary cannot generate new codes.
|
||||
|
||||
If you have a hardware security key with TOTP support (such as a YubiKey with [Yubico Authenticator](https://www.yubico.com/products/yubico-authenticator/)), we recommend that you store your "shared secrets" on the hardware. Hardware such as the YubiKey was developed with the intention of making the "shared secret" difficult to extract and copy. A YubiKey is also not connected to the Internet, unlike a phone with a TOTP app.
|
||||
|
||||
Unlike [WebAuthn](#fido-fast-identity-online), TOTP offers no protection against [phishing](https://en.wikipedia.org/wiki/Phishing) or reuse attacks. If an adversary obtains a valid code from you they may use it as many times as they like until it expires (generally 60 seconds).
|
||||
Unlike [WebAuthn](#fido-fast-identity-online), TOTP offers no protection against [phishing](https://en.wikipedia.org/wiki/Phishing) or reuse attacks. If an adversary obtains a valid code from you, they may use it as many times as they like until it expires (generally 60 seconds).
|
||||
|
||||
An adversary could set up a website to imitate an official service in an attempt to trick you into giving out your username, password and current TOTP code. If the adversary then uses those recorded credentials they may be able to log into the real service and hijack the account.
|
||||
|
||||
@ -38,7 +38,7 @@ Although not perfect, TOTP is secure enough for most people, and when [hardware
|
||||
|
||||
### Hardware security keys
|
||||
|
||||
The YubiKey stores data on a tamper-resistant solid-state chip which is [impossible to access](https://security.stackexchange.com/a/245772) non-destructively without a expensive processes and a forensics laboratory.
|
||||
The YubiKey stores data on a tamper-resistant solid-state chip which is [impossible to access](https://security.stackexchange.com/a/245772) non-destructively without an expensive process and a forensics laboratory.
|
||||
|
||||
These keys are generally multi-function and provide a number of methods to authenticate. Below are the most common ones.
|
||||
|
||||
@ -48,7 +48,7 @@ Yubico OTP is an authentication protocol typically implemented in hardware secur
|
||||
|
||||
When logging into a website, all you need to do is to physically touch the security key. The security key will emulate a keyboard and print out a one-time password into the password field.
|
||||
|
||||
The service will then forward the one-time password to the Yubico OTP server for validation. A counter is incremented both on the key and Yubico's validation server. The OTP can only only be used once, and when a successful authentication occurs the counter is increased which prevents reuse of the OTP. Yubico provides a [detailed document](https://developers.yubico.com/OTP/OTPs_Explained.html) about the process.
|
||||
The service will then forward the one-time password to the Yubico OTP server for validation. A counter is incremented both on the key and Yubico's validation server. The OTP can only be used once, and when a successful authentication occurs, the counter is increased which prevents reuse of the OTP. Yubico provides a [detailed document](https://developers.yubico.com/OTP/OTPs_Explained.html) about the process.
|
||||
|
||||
<figure markdown>
|
||||

|
||||
@ -56,7 +56,7 @@ The service will then forward the one-time password to the Yubico OTP server for
|
||||
|
||||
There are some benefits and disadvantages to using Yubico OTP when compared to TOTP.
|
||||
|
||||
The Yubico validation server is a cloud based service, and you're placing trust in Yubico that they are storing data securely and not profiling you. The public ID associated with Yubico OTP is reused on every website and could be another avenue for third parties to profile you. Like TOTP, Yubico OTP does not provide phishing resistance.
|
||||
The Yubico validation server is a cloud based service, and you're placing trust in Yubico that they are storing data securely and not profiling you. The public ID associated with Yubico OTP is reused on every website and could be another avenue for third-parties to profile you. Like TOTP, Yubico OTP does not provide phishing resistance.
|
||||
|
||||
If your threat model requires you to have different identities on different websites, **do not** use Yubico OTP with the same hardware security key across those websites as public ID is unique to each security key.
|
||||
|
||||
@ -66,13 +66,13 @@ If your threat model requires you to have different identities on different webs
|
||||
|
||||
U2F and FIDO2 refer to the [Client to Authenticator Protocol](https://en.wikipedia.org/wiki/Client_to_Authenticator_Protocol), which is the protocol between the security key and the computer, such as a laptop or phone. It complements WebAuthn which is the component used to authenticate with the website (the "Relying Party") you're trying to log in on.
|
||||
|
||||
WebAuthn is the most secure and private form of second factor authentication. While the authentication experience is similar to Yubico OTP, the key does not print out a one-time password and validate with a third party server. Instead it uses [public key cryptography](https://en.wikipedia.org/wiki/Public-key_cryptography) for authentication.
|
||||
WebAuthn is the most secure and private form of second factor authentication. While the authentication experience is similar to Yubico OTP, the key does not print out a one-time password and validate with a third-party server. Instead, it uses [public key cryptography](https://en.wikipedia.org/wiki/Public-key_cryptography) for authentication.
|
||||
|
||||
<figure markdown>
|
||||

|
||||
</figure>
|
||||
|
||||
When you create an account the public key is sent to the service, then when you log in, the service will require you to "sign" some data with your private key. The benefit of this is that no password data is ever stored by the service, so there is nothing for an adversary to steal.
|
||||
When you create an account, the public key is sent to the service, then when you log in, the service will require you to "sign" some data with your private key. The benefit of this is that no password data is ever stored by the service, so there is nothing for an adversary to steal.
|
||||
|
||||
This presentation discusses the history of password authentication, the pitfalls (such as password reuse), and discussion of FIDO2 and [WebAuthn](https://webauthn.guide) standards.
|
||||
|
||||
@ -84,7 +84,7 @@ FIDO2 and WebAuthn have superior security and privacy properties when compared t
|
||||
|
||||
Typically for web services it is used with WebAuthn which is a part of the [W3C recommendations](https://en.wikipedia.org/wiki/World_Wide_Web_Consortium#W3C_recommendation_(REC)). It uses public key authentication and is more secure than shared secrets used in Yubico OTP and TOTP methods, as it includes the origin name (usually, the domain name) during authentication. Attestation is provided to protect you from phishing attacks, as it helps you to determine that you are using the authentic service and not a fake copy.
|
||||
|
||||
Unlike Yubico OTP, WebAuthn does not use any public ID, so the key is **not** identifiable across different websites. It also does not use any third party cloud server for authentication. All communication is completed between the key and the website you are logging into. FIDO also uses a counter which is incremented upon use in order to prevent session reuse and cloned keys.
|
||||
Unlike Yubico OTP, WebAuthn does not use any public ID, so the key is **not** identifiable across different websites. It also does not use any third-party cloud server for authentication. All communication is completed between the key and the website you are logging into. FIDO also uses a counter which is incremented upon use in order to prevent session reuse and cloned keys.
|
||||
|
||||
If a website or service supports WebAuthn for the authentication, it is highly recommended that you use it over any other form of MFA.
|
||||
|
||||
@ -98,13 +98,13 @@ When configuring your MFA method, keep in mind that it is only as secure as your
|
||||
|
||||
### Backups
|
||||
|
||||
You should always have backups for your MFA method. Hardware security keys can get lost, stolen, or simply stop working over time. It is recommended that you have a pair of hardware security keys with the same access to your accounts instead of just one.
|
||||
You should always have backups for your MFA method. Hardware security keys can get lost, stolen or simply stop working over time. It is recommended that you have a pair of hardware security keys with the same access to your accounts instead of just one.
|
||||
|
||||
When using TOTP with an authenticator app, be sure to back up your recovery keys or the app itself, or copy the "shared secrets" to another instance of the app on a different phone or to an encrypted container (e.g [VeraCrypt](../encryption.md#veracrypt)).
|
||||
When using TOTP with an authenticator app, be sure to back up your recovery keys or the app itself, or copy the "shared secrets" to another instance of the app on a different phone or to an encrypted container (e.g. [VeraCrypt](../encryption.md#veracrypt)).
|
||||
|
||||
### Initial Set Up
|
||||
|
||||
When buying a security key, it is important that you change the default credentials, set up password protection for the key, and enable touch confirmation if your key supports it. Products such as the YubiKey) have multiple interfaces with separate credentials for each one of them, so you should go over each interface and set up protection as well.
|
||||
When buying a security key, it is important that you change the default credentials, set up password protection for the key, and enable touch confirmation if your key supports it. Products such as the YubiKey have multiple interfaces with separate credentials for each one of them, so you should go over each interface and set up protection as well.
|
||||
|
||||
### Email and SMS
|
||||
|
||||
@ -142,7 +142,7 @@ The command will prevent an adversary from bypassing MFA when the computer boots
|
||||
|
||||
If the hostname of your system changes (such as due to DHCP), you would be unable to login. It is vital that you set up a proper hostname for your computer before following this guide.
|
||||
|
||||
The `pam_u2f` module on Linux can provide two factor authentication for logging in on most popular Linux distributions. If you have a hardware security key that supports U2F, you can set up MFA authentication for your login. Yubico has a guide [Ubuntu Linux Login Guide - U2F](https://support.yubico.com/hc/en-us/articles/360016649099-Ubuntu-Linux-Login-Guide-U2F) which should work on any distribution. The package manager commands—such as `apt-get`—and package names may however differ. This guide does **not** apply to Qubes OS.
|
||||
The `pam_u2f` module on Linux can provide two-factor authentication for logging in on most popular Linux distributions. If you have a hardware security key that supports U2F, you can set up MFA authentication for your login. Yubico has a guide [Ubuntu Linux Login Guide - U2F](https://support.yubico.com/hc/en-us/articles/360016649099-Ubuntu-Linux-Login-Guide-U2F) which should work on any distribution. The package manager commands—such as `apt-get`—and package names may however differ. This guide does **not** apply to Qubes OS.
|
||||
|
||||
### Qubes OS
|
||||
|
||||
@ -160,6 +160,4 @@ SSH MFA can also be set up using TOTP. DigitalOcean has provided a tutorial [How
|
||||
|
||||
### KeePass (and KeePassXC)
|
||||
|
||||
KeePass and KeePassXC databases can be secured using Challenge-Response or HOTP as a second factor authentication. Yubico has provided a document for KeePass [Using Your YubiKey with KeePass](https://support.yubico.com/hc/en-us/articles/360013779759-Using-Your-YubiKey-with-KeePass) and there is also one on the [KeePassXC](https://keepassxc.org/docs/#faq-yubikey-2fa) website.
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
KeePass and KeePassXC databases can be secured using Challenge-Response or HOTP as a second-factor authentication. Yubico has provided a document for KeePass [Using Your YubiKey with KeePass](https://support.yubico.com/hc/en-us/articles/360013779759-Using-Your-YubiKey-with-KeePass) and there is also one on the [KeePassXC](https://keepassxc.org/docs/#faq-yubikey-2fa) website.
|
||||
|
@ -3,7 +3,7 @@ title: "Threat Modeling"
|
||||
icon: 'material/target-account'
|
||||
---
|
||||
|
||||
Balancing security, privacy, and usability is one of the first and most difficult tasks you'll face on your privacy journey. Everything is a trade-off: The more secure something is, the more restricting or inconvenient it generally is, et cetera. Often people find that the problem with the tools they see recommended is they're just too hard to start using!
|
||||
Balancing security, privacy and usability is one of the first and most difficult tasks you'll face on your privacy journey. Everything is a trade-off: The more secure something is, the more restricting or inconvenient it generally is, et cetera. Often people find that the problem with the tools they see recommended is they're just too hard to start using!
|
||||
|
||||
If you wanted to use the **most** secure tools available, you'd have to sacrifice *a lot* of usability. And even then, ==nothing is ever fully secure.== There's **high** security, but never **full** security. That's why threat models are important.
|
||||
|
||||
@ -31,11 +31,11 @@ An “asset” is something you value and want to protect. In the context of dig
|
||||
|
||||
### Who do I want to protect it from?
|
||||
|
||||
To answer this question, it's important to identify who might want to target you or your information. ==A person or entity that poses a threat to your assets is an “adversary.”== Examples of potential adversaries are your boss, your former partner, your business competition, your government, or a hacker on a public network.
|
||||
To answer this question, it's important to identify who might want to target you or your information. ==A person or entity that poses a threat to your assets is an “adversary”.== Examples of potential adversaries are your boss, your former partner, your business competition, your government, or a hacker on a public network.
|
||||
|
||||
*Make a list of your adversaries, or those who might want to get ahold of your assets. Your list may include individuals, a government agency, or corporations.*
|
||||
*Make a list of your adversaries or those who might want to get ahold of your assets. Your list may include individuals, a government agency, or corporations.*
|
||||
|
||||
Depending on who your adversaries are, under some circumstances this list might be something you want to destroy after you're done security planning.
|
||||
Depending on who your adversaries are, under some circumstances, this list might be something you want to destroy after you're done security planning.
|
||||
|
||||
### How likely is it that I will need to protect it?
|
||||
|
||||
@ -61,7 +61,7 @@ Security planning involves understanding how bad the consequences could be if an
|
||||
|
||||
==There is no perfect option for security.== Not everyone has the same priorities, concerns, or access to resources. Your risk assessment will allow you to plan the right strategy for you, balancing convenience, cost, and privacy.
|
||||
|
||||
For example, an attorney representing a client in a national security case may be willing to go to greater lengths to protect communications about that case, such as using encrypted email, than a mother who regularly emails her daughter funny cat videos.
|
||||
For example, an attorney representing a client in a national security case may be willing to go to greater lengths to protect communications about that case, such as using encrypted email than a mother who regularly emails her daughter funny cat videos.
|
||||
|
||||
*Write down what options you have available to you to help mitigate your unique threats. Note if you have any financial constraints, technical constraints, or social constraints.*
|
||||
|
||||
@ -69,7 +69,7 @@ For example, an attorney representing a client in a national security case may b
|
||||
|
||||
These questions can apply to a wide variety of situations, online and offline. As a generic demonstration of how these questions work, let's build a plan to keep your house and possessions safe.
|
||||
|
||||
**What do you want to protect? (Or, *what do you have that is worth protecting?*)**
|
||||
**What do you want to protect? (Or *what do you have that is worth protecting?*)**
|
||||
|
||||
: Your assets might include jewelry, electronics, important documents, or photos.
|
||||
|
||||
@ -89,7 +89,7 @@ These questions can apply to a wide variety of situations, online and offline. A
|
||||
|
||||
: Are you willing to buy a safe for sensitive documents? Can you afford to buy a high-quality lock? Do you have time to open a security box at your local bank and keep your valuables there?
|
||||
|
||||
Only once you have asked yourself these questions will you be in a position to assess what measures to take. If your possessions are valuable, but the probability of a break-in is low, then you may not want to invest too much money in a lock. But, if the probability of a break-in is high, you'll want to get the best lock on the market, and consider adding a security system.
|
||||
Only once you have asked yourself these questions will you be in a position to assess what measures to take. If your possessions are valuable, but the probability of a break-in is low, then you may not want to invest too much money in a lock. But, if the probability of a break-in is high, you'll want to get the best lock on the market and consider adding a security system.
|
||||
|
||||
Making a security plan will help you to understand the threats that are unique to you and to evaluate your assets, your adversaries, and your adversaries' capabilities, along with the likelihood of risks you face.
|
||||
|
||||
@ -97,7 +97,7 @@ Making a security plan will help you to understand the threats that are unique t
|
||||
|
||||
For people looking to increase their privacy and security online, we've compiled a list of common threats our visitors face or goals our visitors have, to give you some inspiration and demonstrate the basis of our recommendations.
|
||||
|
||||
- [Common Goals and Threats :material-arrow-right:](common-threats.md)
|
||||
- [Common Goals and Threats :hero-arrow-circle-right-fill:](common-threats.md)
|
||||
|
||||
## Sources
|
||||
|
||||
|
79
docs/basics/tor-overview.md
Normal file
@ -0,0 +1,79 @@
|
||||
---
|
||||
title: "Tor Overview"
|
||||
icon: 'pg/tor'
|
||||
---
|
||||
|
||||
Tor is a free to use, decentralized network designed for using the internet with as much privacy as possible. If used properly, the network enables private and anonymous browsing and communications.
|
||||
|
||||
## Path Building
|
||||
|
||||
Tor works by routing your traffic through a network comprised of thousands of volunteer-run servers called nodes (or relays).
|
||||
|
||||
Every time you connect to Tor, it will choose three nodes to build a path to the internet—this path is called a "circuit." Each of these nodes has its own function:
|
||||
|
||||
### The Entry Node
|
||||
|
||||
The entry node, often called the guard node, is the first node to which your Tor client connects. The entry node is able to see your IP address, however it is unable to see what you are connecting to.
|
||||
|
||||
Unlike the other nodes, the Tor client will randomly select an entry node and stick with it for two to three months to protect you from certain attacks.[^1]
|
||||
|
||||
[^1]: The first relay in your circuit is called an "entry guard" or "guard". It is a fast and stable relay that remains the first one in your circuit for 2-3 months in order to protect against a known anonymity-breaking attack. The rest of your circuit changes with every new website you visit, and all together these relays provide the full privacy protections of Tor. For more information on how guard relays work, see this [blog post](https://blog.torproject.org/improving-tors-anonymity-changing-guard-parameters) and [paper](https://www-users.cs.umn.edu/~hoppernj/single_guard.pdf) on entry guards. ([https://support.torproject.org/tbb/tbb-2/](https://support.torproject.org/tbb/tbb-2/))
|
||||
|
||||
### The Middle Node
|
||||
|
||||
The middle node is the second node to which your Tor client connects. It can see which node the traffic came from—the entry node—and to which node it goes to next. The middle node cannot, see your IP address or the domain you are connecting to.
|
||||
|
||||
For each new circuit, the middle node is randomly selected out of all available Tor nodes.
|
||||
|
||||
### The Exit Node
|
||||
|
||||
The exit node is the point in which your web traffic leaves the Tor network and is forwarded to your desired destination. The exit node is unable to see your IP address, but it does know what site it's connecting to.
|
||||
|
||||
The exit node will be chosen at random from all available Tor nodes ran with an exit relay flag.[^2]
|
||||
|
||||
[^2]: Relay flag: a special (dis-)qualification of relays for circuit positions (for example, "Guard", "Exit", "BadExit"), circuit properties (for example, "Fast", "Stable"), or roles (for example, "Authority", "HSDir"), as assigned by the directory authorities and further defined in the directory protocol specification. ([https://metrics.torproject.org/glossary.html](https://metrics.torproject.org/glossary.html))
|
||||
|
||||
<figure markdown>
|
||||

|
||||

|
||||
<figcaption>Tor circuit pathway</figcaption>
|
||||
</figure>
|
||||
|
||||
## Encryption
|
||||
|
||||
Tor encrypts each packet (a block of transmitted data) three times with the keys from the exit, middle, and entry node—in that order.
|
||||
|
||||
Once Tor has built a circuit, data transmission is done as follows:
|
||||
|
||||
1. Firstly: when the packet arrives at the entry node, the first layer of encryption is removed. In this encrypted packet, the entry node will find another encrypted packet with the middle node’s address. The entry node will then forward the packet to the middle node.
|
||||
|
||||
2. Secondly: when the middle node receives the packet from the entry node, it too will remove a layer of encryption with its key, and this time finds an encrypted packet with the exit node's address. The middle node will then forward the packet to the exit node.
|
||||
|
||||
3. Lastly: when the exit node receives its packet, it will remove the last layer of encryption with its key. The exit node will see the destination address and forward the packet to that address.
|
||||
|
||||
Below is an alternative diagram showing the process. Each node removes its own layer of encryption, and when the destination server returns data, the same process happens entirely in reverse. For example, the exit node does not know who you are, but it does know which node it came from, and so it adds its own layer of encryption and sends it back.
|
||||
|
||||
<figure markdown>
|
||||

|
||||

|
||||
<figcaption>Sending and receiving data through the Tor Network</figcaption>
|
||||
</figure>
|
||||
|
||||
Tor allows us to connect to a server without any single party knowing the entire path. The entry node knows who you are, but not where you are going; the middle node doesn’t know who you are or where you are going; and the exit node knows where you are going, but not who you are. Because the exit node is what makes the final connection, the destination server will never know your IP address.
|
||||
|
||||
## Caveats
|
||||
|
||||
Though Tor does provide strong privacy guarantees, one must be aware that Tor is not perfect:
|
||||
|
||||
- Well-funded adversaries with the capability to passively watch most network traffic over the globe have a chance of deanonymizing Tor users by means of advanced traffic analysis. Nor Tor does not protect you from exposing yourself by mistake, such as if you share to much information about your real identity.
|
||||
- Tor exit nodes can also monitor traffic that passes through them. This means traffic which is not encrypted, such as plain HTTP traffic, can be recorded and monitored. If such traffic contains personally identifiable information, then it can deanonymize you to that exit node. Thus, we recommend using HTTPS over Tor where possible.
|
||||
|
||||
If you wish to use Tor for browsing the web, we only recommend the **official** Tor Browser—it is designed to prevent fingerprinting.
|
||||
|
||||
- [Browsers: Tor Browser :hero-arrow-circle-right-fill:](../desktop-browsers.md#tor-browser)
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Tor Browser User Manual](https://tb-manual.torproject.org)
|
||||
- [How Tor Works - Computerphile](https://www.youtube-nocookie.com/embed/QRYzre4bf7I) <small>(YouTube)</small>
|
||||
- [Tor Onion Services - Computerphile](https://www.youtube-nocookie.com/embed/lVcbq_a5N9I) <small>(YouTube)</small>
|
@ -3,19 +3,19 @@ title: VPN Overview
|
||||
icon: material/vpn
|
||||
---
|
||||
|
||||
Virtual Private Networks are a way of extending the end of your network to exit somewhere else in the world. An ISP can see the flow of internet traffic entering and exiting your network termination device (ie. modem).
|
||||
Virtual Private Networks are a way of extending the end of your network to exit somewhere else in the world. An ISP can see the flow of internet traffic entering and exiting your network termination device (i.e. modem).
|
||||
|
||||
Encryption protocols such as HTTPS are commonly used on the internet, so they may not be able to see exactly what you're posting or reading but they can get an idea of the [domains you request](/basics/dns.md/#why-shouldnt-i-use-encrypted-dns).
|
||||
Encryption protocols such as HTTPS are commonly used on the internet, so they may not be able to see exactly what you're posting or reading but they can get an idea of the [domains you request](dns-overview.md#why-shouldnt-i-use-encrypted-dns).
|
||||
|
||||
A VPN can help as it can shift trust to a server somewhere else in the world. As a result, the ISP then only sees that you are connected to a VPN and nothing about the activity that you're passing into it.
|
||||
|
||||
## Should I use a VPN?
|
||||
|
||||
**Yes**, unless you are already using Tor. A VPN does 2 things: shifting the risks from your Internet Service Provider to itself and hiding your IP from a third party service.
|
||||
**Yes**, unless you are already using Tor. A VPN does two things: shifting the risks from your Internet Service Provider to itself and hiding your IP from a third-party service.
|
||||
|
||||
VPNs cannot encrypt data outside of the connection between your device and the VPN server. VPN providers can see and modify your traffic the same way your ISP could. And there is no way to verify a VPN provider's "no logging" policies in any way.
|
||||
|
||||
However, they do hide your actual IP from a third party service, provided that there are no IP leaks. They help you blend in with others and mitigate IP based tracking.
|
||||
However, they do hide your actual IP from a third-party service, provided that there are no IP leaks. They help you blend in with others and mitigate IP based tracking.
|
||||
|
||||
## What about encryption?
|
||||
|
||||
@ -25,23 +25,23 @@ In order to keep what you actually do on the websites you visit private and secu
|
||||
|
||||
## Should I use encrypted DNS with a VPN?
|
||||
|
||||
Unless your VPN provider hosts the encrypted DNS servers, **no**. Using DOH/DOT (or any other form of encrypted DNS) with third party servers will simply add more entities to trust, and does **absolutely nothing** to improve your privacy/security. Your VPN provider can still see which websites you visit based on the IP addresses and other methods. Instead of just trusting your VPN provider, you are now trusting both the VPN provider and the DNS provider.
|
||||
Unless your VPN provider hosts the encrypted DNS servers, **no**. Using DOH/DOT (or any other form of encrypted DNS) with third-party servers will simply add more entities to trust and does **absolutely nothing** to improve your privacy/security. Your VPN provider can still see which websites you visit based on the IP addresses and other methods. Instead of just trusting your VPN provider, you are now trusting both the VPN provider and the DNS provider.
|
||||
|
||||
A common reason to recommend encrypted DNS is that it helps against DNS spoofing. However, your browser should already be checking for [TLS certificates](https://en.wikipedia.org/wiki/Transport_Layer_Security#Digital_certificates) with **HTTPS** and warn you about it. If you are not using **HTTPS**, then an adversary can still just modify anything other than your DNS queries and the end result will be little different.
|
||||
|
||||
Needless to say, **you shouldn't use encrypted DNS with Tor**. This would direct all of your DNS requests through a single circuit, and would allow the encrypted DNS provider to deanonymize you.
|
||||
Needless to say, **you shouldn't use encrypted DNS with Tor**. This would direct all of your DNS requests through a single circuit and would allow the encrypted DNS provider to deanonymize you.
|
||||
|
||||
## Should I use Tor *and* a VPN?
|
||||
|
||||
By using a VPN with Tor, you're creating essentially a permanent entry node, often with a money trail attached. This provides zero additional benefit to you, while increasing the attack surface of your connection dramatically. If you wish to hide your Tor usage from your ISP or your government, Tor has a built-in solution for that: Tor bridges. [Read more about Tor bridges and why using a VPN is not necessary](https://web.archive.org/web/20210116140725/https://write.privacytools.io/my-thoughts-on-security/slicing-onions-part-2-onion-recipes-vpn-not-required).
|
||||
By using a VPN with Tor, you're creating essentially a permanent entry node, often with a money trail attached. This provides zero additional benefits to you, while increasing the attack surface of your connection dramatically. If you wish to hide your Tor usage from your ISP or your government, Tor has a built-in solution for that: Tor bridges. [Read more about Tor bridges and why using a VPN is not necessary](tor-overview.md).
|
||||
|
||||
## What if I need anonymity?
|
||||
|
||||
VPNs cannot provide anonymity. Your VPN provider will still see your real IP address, and often has a money trail that can be linked directly back to you. You cannot rely on "no logging" policies to protect your data. Use [Tor](https://www.torproject.org/) instead.
|
||||
|
||||
## What about VPN providers that provides Tor nodes?
|
||||
## What about VPN providers that provide Tor nodes?
|
||||
|
||||
Do not use that feature. The point of using Tor is that you do not trust your VPN provider. Currently Tor only supports the [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) protocol. [UDP](https://en.wikipedia.org/wiki/User_Datagram_Protocol) (used in [WebRTC](https://en.wikipedia.org/wiki/WebRTC) for voice and video sharing, the new [http3/QUIC](https://en.wikipedia.org/wiki/HTTP/3) protocol, etc), [ICMP](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol) and other packets will be dropped. To compensate for this, VPN providers typically will route all non TCP packets through their VPN server (your first hop). This is the case with [ProtonVPN](https://protonvpn.com/support/tor-vpn/). Additionally, when using this Tor over VPN setup, you do not have control over other important Tor features such as [Isolated Destination Address](https://www.whonix.org/wiki/Stream_Isolation) (using a different Tor circuit for every domain you visit).
|
||||
Do not use that feature. The point of using Tor is that you do not trust your VPN provider. Currently Tor only supports the [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) protocol. [UDP](https://en.wikipedia.org/wiki/User_Datagram_Protocol) (used in [WebRTC](https://en.wikipedia.org/wiki/WebRTC) for voice and video sharing, the new [HTTP3/QUIC](https://en.wikipedia.org/wiki/HTTP/3) protocol, etc), [ICMP](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol) and other packets will be dropped. To compensate for this, VPN providers typically will route all non-TCP packets through their VPN server (your first hop). This is the case with [ProtonVPN](https://protonvpn.com/support/tor-vpn/). Additionally, when using this Tor over VPN setup, you do not have control over other important Tor features such as [Isolated Destination Address](https://www.whonix.org/wiki/Stream_Isolation) (using a different Tor circuit for every domain you visit).
|
||||
|
||||
Thus, this feature should be viewed as a convenient way to access the Tor Network, not to stay anonymous. For true anonymity, use the Tor Browser Bundle, TorSocks, or a Tor gateway.
|
||||
|
||||
@ -51,7 +51,7 @@ A VPN may still be useful to you in a variety of scenarios, such as:
|
||||
|
||||
1. Hiding your traffic from **only** your Internet Service Provider.
|
||||
2. Hiding your downloads (such as torrents) from your ISP and anti-piracy organizations.
|
||||
3. Hiding your IP from third party websites and services, preventing IP based tracking.
|
||||
3. Hiding your IP from third-party websites and services, preventing IP based tracking.
|
||||
|
||||
For use cases like these, or if you have another compelling reason, the VPN providers we listed above are who we think are the most trustworthy. However, using a VPN provider still means you're *trusting* the provider. In pretty much any other scenario you should be using a secure**-by-design** tool such as Tor.
|
||||
|
||||
@ -59,28 +59,13 @@ For use cases like these, or if you have another compelling reason, the VPN prov
|
||||
|
||||
1. [VPN - a Very Precarious Narrative](https://schub.io/blog/2019/04/08/very-precarious-narrative.html) by Dennis Schubert
|
||||
2. [The self-contained networks](../self-contained-networks.md) recommended by Privacy Guides are able to replace a VPN that allows access to services on local area network
|
||||
3. [Slicing Onions: Part 1 – Myth-busting Tor](https://medium.com/privacyguides/slicing-onions-part-1-myth-busting-tor-9ec188ae1904) by blacklight447
|
||||
4. [Slicing Onions: Part 2 – Onion recipes; VPN not required](https://web.archive.org/web/20210116140725/https://write.privacytools.io/my-thoughts-on-security/slicing-onions-part-2-onion-recipes-vpn-not-required) by blacklight447
|
||||
5. [IVPN Privacy Guides](https://www.ivpn.net/privacy-guides)
|
||||
6. ["Do I need a VPN?"](https://www.doineedavpn.com), a tool developed by IVPN to challenge aggressive VPN marketing by helping individuals decide if a VPN is right for them.
|
||||
3. [Tor Network Overview](tor-overview.md) by blacklight447
|
||||
4. [IVPN Privacy Guides](https://www.ivpn.net/privacy-guides)
|
||||
5. ["Do I need a VPN?"](https://www.doineedavpn.com), a tool developed by IVPN to challenge aggressive VPN marketing by helping individuals decide if a VPN is right for them.
|
||||
|
||||
## Related VPN Information
|
||||
|
||||
- [The Trouble with VPN and Privacy Review Sites](https://medium.com/privacyguides/the-trouble-with-vpn-and-privacy-review-sites-ae9b29eda8fd)
|
||||
- [Proxy.sh VPN Provider Sniffed Server Traffic to Catch Hacker](https://torrentfreak.com/proxy-sh-vpn-provider-monitored-traffic-to-catch-hacker-130930/)
|
||||
- [blackVPN announced to delete connection logs after disconnection](https://medium.com/@blackVPN/no-logs-6d65d95a3016)
|
||||
- [Don't use LT2P IPSec, use other protocols.](https://gist.github.com/kennwhite/1f3bc4d889b02b35d8aa)
|
||||
- [The Trouble with VPN and Privacy Review Sites](https://jonaharagon.com/2019/11/the-trouble-with-vpn-and-privacy-review-sites/)
|
||||
- [Free VPN App Investigation](https://www.top10vpn.com/free-vpn-app-investigation/)
|
||||
- [Hidden VPN owners unveiled: 101 VPN products run by just 23 companies](https://vpnpro.com/blog/hidden-vpn-owners-unveiled-97-vpns-23-companies/)
|
||||
- [This Chinese company is secretly behind 24 popular apps seeking dangerous permissions](https://vpnpro.com/blog/chinese-company-secretly-behind-popular-apps-seeking-dangerous-permissions/)
|
||||
|
||||
## VPN Security Breaches
|
||||
|
||||
Some examples of why external security auditing is important:
|
||||
|
||||
- ["Zero logs" VPN exposes millions of logs including user passwords, claims data is anonymous](https://www.comparitech.com/blog/vpn-privacy/ufo-vpn-data-exposure/) July 2020
|
||||
- [NordVPN HTTP POST bug exposed customer information, no authentication required](https://www.zdnet.com/article/nordvpn-http-post-bug-exposed-sensitive-customer-information/) March 2020
|
||||
- [Row erupts over who to blame after NordVPN says: One of our servers was hacked via remote management tool](https://www.theregister.com/2019/10/21/nordvpn_security_issue/) October 2019
|
||||
- [VPN servers seized by Ukrainian authorities weren't encrypted and allowed authorities to impersonate Windscribe servers and capture and decrypt traffic passing through them](https://arstechnica.com/gadgets/2021/07/vpn-servers-seized-by-ukrainian-authorities-werent-encrypted/) July 2021
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
|
56
docs/blog/2021/09/14/welcome-to-privacy-guides.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
title: Welcome to Privacy Guides
|
||||
created: "2021-09-14"
|
||||
author: 'Jonah'
|
||||
template: overrides/blog.en.html
|
||||
---
|
||||
We are excited to announce the launch of [Privacy Guides](https://www.privacyguides.org/) and [r/PrivacyGuides](https://www.reddit.com/r/PrivacyGuides/), and welcome the privacy community to participate in our crowdsourced software recommendations and share tips and tricks for keeping your data safe online. Our goal is to be a central resource for privacy and security-related tips that are usable by anybody, and to carry on the trusted legacy of PrivacyTools.
|
||||
|
||||
As we [announced](https://web.archive.org/web/20210729184422/https://blog.privacytools.io/the-future-of-privacytools/) on the PrivacyTools blog in July, we made the decision to migrate off our former privacytools.io domain for various reasons, including an inability to contact the current domain holder for over a year and [growing](http://www.thedarksideof.io/) [issues](https://fortune.com/2020/08/31/crypto-fraud-io-domain-chagos-islands-uk-colonialism-cryptocurrency/) [with the .IO top-level domain](https://github.com/privacytools/privacytools.io/issues/1324). As attempts to regain ownership of the domain have proven fruitless, we found it necessary to make this switch sooner rather than later to ensure people would find out about this transition as soon as possible. This gives us adequate time to transition the domain name, which is currently redirecting to [www.privacyguides.org](https://www.privacyguides.org/), and it hopefully gives everyone enough time to notice the change, update bookmarks and websites, etc.
|
||||
|
||||
We chose the name Privacy Guides because it represents two things for us as an organization: An expansion beyond simple recommendation lists, and a goal of acting as the trusted guides to anyone newly learning about protecting their personal data.
|
||||
|
||||
As a name, it moves us past recommendations of various tools and focuses us more on the bigger picture. We want to provide more _education_ — rather than _direction_ — surrounding privacy-related topics. You can see the very beginnings of this work in our new page on [threat modeling](https://www.privacyguides.org/basics/threat-modeling/), or our [VPN](https://www.privacyguides.org/vpn) and [Email Provider](https://www.privacyguides.org/email) recommendations, but this is just the start of what we eventually hope to accomplish.
|
||||
|
||||
## Website Development
|
||||
|
||||
Our project has always been community-oriented and open-sourced. The source code for PrivacyTools is currently archived at [https://github.com/privacytools/privacytools.io](https://github.com/privacytools/privacytools.io). This repository will remain online as an archive of everything on PrivacyTools up to this transition.
|
||||
|
||||
The source code for our new website is available at [https://github.com/privacyguides/privacyguides.org](https://github.com/privacyguides/privacyguides.org). All updates from PrivacyTools have been merged into this new repository, and this is where all future work will take place.
|
||||
|
||||
## Services
|
||||
|
||||
PrivacyTools also runs a number of online services in use by many users. Some of these services are federated, namely Mastodon, Matrix, and PeerTube. Due to the technical nature of federation, it is impossible for us to change the domain name on these services, and because we cannot guarantee the future of the privacytools.io domain name we will be shutting down these services in the coming months.
|
||||
|
||||
We strongly urge users of these services to migrate to alternative providers in the near future. We hope that we will be able to provide enough time to make this as seamless of a transition as possible for our users.
|
||||
|
||||
At this time we do not plan on launching public Matrix, Mastodon, or PeerTube instances under the Privacy Guides domain. Any users affected by this transition can get in touch with [@jonah:aragon.sh](https://matrix.to/#/@jonah:aragon.sh) on Matrix if any assistance is needed.
|
||||
|
||||
Other services being operated by PrivacyTools currently will be discontinued. This includes Searx, WriteFreely, and GhostBin.
|
||||
|
||||
Our future direction for online services is uncertain, but will be a longer-term discussion within our community after our work is complete on this initial transition. We are very aware that whatever direction we move from here will have to be done in a way that is sustainable in the very long term.
|
||||
|
||||
## r/PrivacyGuides
|
||||
|
||||
PrivacyTools has a sizable community on Reddit, but to ensure a unified image we have created a new Subreddit at [r/PrivacyGuides](https://www.reddit.com/r/PrivacyGuides/) that we encourage all Reddit users to join.
|
||||
|
||||
In the coming weeks our current plan is to wind down discussions on r/privacytoolsIO. We will be opening r/PrivacyGuides to lots of the discussions most people are used to shortly, but encouraging general “privacy news” or headline-type posts to be posted on [r/Privacy](https://www.reddit.com/r/privacy/) instead. In our eyes, r/Privacy is the “who/what/when/where” of the privacy community on Reddit, the best place to find the latest news and information; while r/PrivacyGuides is the “how”: a place to share and discuss tools, tips, tricks, and other advice. We think focusing on these strong points will serve to strengthen both communities, and we hope the good moderators of r/Privacy agree 🙂
|
||||
|
||||
## Final Thoughts
|
||||
|
||||
The former active team at PrivacyTools universally agrees on this direction towards Privacy Guides, and will be working exclusively on Privacy Guides rather than any “PrivacyTools” related projects. We intend to redirect PriavcyTools to new Privacy Guides properties for as long as possible, and archive existing PrivacyTools work as a pre-transition snapshot.
|
||||
|
||||
Privacy Guides additionally welcomes back PrivacyTools’ former sysadmin [Jonah](https://twitter.com/JonahAragon), who will be joining the project’s leadership team.
|
||||
|
||||
We are not accepting sponsorships or donations at this time, while we work out our financial plan. We will be in touch with existing sponsors on PrivacyTools’ OpenCollective to determine what the best way forward is soon.
|
||||
|
||||
We are all very excited about this new brand and direction, and hope to have your continued support through all of this. If you have any questions, concerns, or suggestions, please reach out to us. We are always happy to receive guidance and input from our community! ❤
|
||||
|
||||
---
|
||||
|
||||
**_Privacy Guides_** _is a socially motivated website that provides information for protecting your data security and privacy._
|
||||
|
||||
- [Join r/PrivacyGuides on Reddit](https://www.reddit.com/r/privacyguides)
|
||||
- [Follow @privacy_guides on Twitter](https://twitter.com/privacy_guides)
|
||||
- [Collaborate with us on GitHub](https://github.com/privacyguides/privacyguides.org)
|
||||
- [Join our chat on Matrix](https://matrix.to/#/#privacyguides:aragon.sh)
|
BIN
docs/blog/2021/11/01/virtual-insanity.jpg
Normal file
After Width: | Height: | Size: 440 KiB |
30
docs/blog/2021/11/01/virtual-insanity.md
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
title: Virtual Insanity
|
||||
image: 'blog/2021/11/01/virtual-insanity.jpg'
|
||||
created: "2021-11-01"
|
||||
author: 'Freddy'
|
||||
template: overrides/blog.en.html
|
||||
---
|
||||
Not so long ago, the world was predicting the end for Facebook. Now it is no more. Gone from the face of the planet – never to be seen again. Except it isn’t.
|
||||
|
||||
Facebook has not disappeared. No, not even the damning ‘Facebook Papers’ can shut it down. Mark Zuckerberg stood up on stage, and announced that it had changed its name to: Meta.
|
||||
|
||||
A key part of this new vision for the company is the idea of the metaverse. If it sounds like something out of a sci-fi movie or novel, that’s because it is. The term was first coined by author Neal Stephenson in his 1992 book _Snow Crash_. Zuckerberg’s only problem is that novel was dystopian. Here’s a brief snippet of Stephenson’s description of the metaverse:
|
||||
|
||||
> “Your avatar can look any way you want it to, up to the limitations of your equipment. If you’re ugly, you can make your avatar beautiful. If you’ve just gotten out of bed, your avatar can still be wearing beautiful clothes and professionally applied makeup. You can look like a gorilla or a dragon or a giant talking penis in the Metaverse. Spend five minutes walking down the Street and you will see all of these.”
|
||||
|
||||
In fairness, that doesn’t seem unlike the sort of content you see on Facebook today. Compare this to what Zuckerberg [wrote](https://about.fb.com/news/2021/10/founders-letter/) in his 2021 Founders Letter:
|
||||
|
||||
> “In this future, you will be able to teleport instantly as a hologram to be at the office without a commute, at a concert with friends, or in your parents’ living room to catch up. This will open up more opportunity no matter where you live. You’ll be able to spend more time on what matters to you, cut down time in traffic, and reduce your carbon footprint.”
|
||||
|
||||
The similarities are uncanny.
|
||||
|
||||
This wouldn’t be the first time that Facebook has been described as dystopian. One _Mashable_ article [called](https://mashable.com/article/facebook-dystopia) the social media giant ‘Orwellian and Huxleyan at the same time.’ Quite a feat.
|
||||
|
||||
The ‘Facebook Papers’ have some pretty shocking - though not entirely surprising - revelations as well. The leaked documents demonstrate the extent to which Facebook values engagement above all else (including a good experience). For instance, we learnt that the algorithm is [optimised](https://www.wired.com/story/facebook-transparency-biggest-sites-pages-links/) for low quality content, [prioritises](https://www.washingtonpost.com/technology/2021/10/26/facebook-angry-emoji-algorithm/) rage over happiness for profit, and [promotes](https://www.theatlantic.com/ideas/archive/2021/10/facebook-papers-democracy-election-zuckerberg/620478/) extremist content. Most alarming was that the firm [failed](https://apnews.com/article/the-facebook-papers-covid-vaccine-misinformation-c8bbc569be7cc2ca583dadb4236a0613) to reduce disinformation during the pandemic even when given the opportunity. Zuckerberg said no to this, presumably because it would reduce engagement and, in turn, Facebook’s advertising revenue.
|
||||
|
||||
Let’s not forget all Facebook’s previous scandals. From the Cambridge Analytica kerfuffle to [conducting](https://www.theregister.com/2014/06/29/researchers_mess_with_facebook_users_emotions/) manipulative social experiments in secret.
|
||||
|
||||
In light of this, the name change makes sense. It deceives you into thinking the company has evolved into a benevolent corporation, when it simply hasn’t. Zuckerberg would much prefer you to think about Meta as a playful universe where you can meet with friends across the globe in virtual reality. Where humans train themselves to sound like heavily discounted robots. Where Facebook is not a Horrid Company.
|
||||
|
||||
Despite all this: Meta _is_ Facebook, just worse. It doesn’t matter about the new name, the company has not changed. It will still be violating our privacy, daily, on an unprecedented scale. It will still be as reliably scandalous as a Carry On film. It will still be terrible. Plus it will have all the added claptrap of a sub-par holographic universe attached.
|
60
docs/blog/2021/12/01/firefox-privacy-2021-update.md
Normal file
@ -0,0 +1,60 @@
|
||||
---
|
||||
title: 'Firefox Privacy: 2021 Update'
|
||||
image: 'blog/2021/12/01/firefox-privacy-2021-update.png'
|
||||
created: "2021-12-01"
|
||||
author: 'Daniel'
|
||||
template: overrides/blog.en.html
|
||||
---
|
||||
A lot changed between 2019 and now, not least in regards to Firefox. Since our last post, Mozilla has [improved](https://blog.mozilla.org/en/products/firefox/latest-firefox-rolls-out-enhanced-tracking-protection-2-0-blocking-redirect-trackers-by-default/) privacy with [Enhanced Tracking Protection (ETP)](https://blog.mozilla.org/en/products/firefox/firefox-now-available-with-enhanced-tracking-protection-by-default/). Earlier this year Mozilla introduced [Total Cookie Protection](https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/) (Dynamic First Party Isolation dFPI). This was then further tightened with [Enhanced Cookie Clearing](https://blog.mozilla.org/security/2021/08/10/firefox-91-introduces-enhanced-cookie-clearing/). We’re also looking very forward to [Site Isolation](https://blog.mozilla.org/security/2021/05/18/introducing-site-isolation-in-firefox/) (code named Fission) being enabled by default in the coming releases.
|
||||
|
||||
Now that so many privacy features are built into the browser, there is little need for extensions made by third-party developers. Accordingly, we have updated our very outdated [browser](https://www.privacyguides.org/browsers) section. If you’ve got an old browser profile we suggest **creating a new one**. Some of the old advice may make your browser _more_ unique.
|
||||
|
||||
#### Privacy Tweaks “about:config”
|
||||
|
||||
We’re no longer recommending that users set `about:config` switches manually. Those switches need to be up to date and continuously maintained. They should be studied before blindly making modifications. Sometimes their behaviour changes in between Firefox releases, is superseded by other keys or they are removed entirely. We do not see any point in duplicating the efforts of the community [Arkenfox](https://github.com/arkenfox/user.js) project. Arkenfox has very good documentation in their [wiki](https://github.com/arkenfox/user.js/wiki) and we use it ourselves.
|
||||
|
||||
#### LocalCDN and Decentraleyes
|
||||
|
||||
These extensions aren’t required with Total Cookie Protection (TCP), which is enabled if you’ve set Enhanced Tracking Protection (ETP) to **Strict**.
|
||||
|
||||
Replacing scripts on CDNs with local versions is not a comprehensive solution and is a form of [enumeration of badness](https://www.ranum.com/security/computer_security/editorials/dumb/). While it may work with some scripts that are included it doesn’t help with most other third-party connections.
|
||||
|
||||
CDN extensions never really improved privacy as far as sharing your IP address was concerned and their usage is fingerprintable as this Tor Project developer [points out](https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/22089#note_2639603). They are the wrong tool for the job and are not a substitute for a good VPN or Tor. Its worth noting the [resources](https://git.synz.io/Synzvato/decentraleyes/-/tree/master/resources) for Decentraleyes are hugely out of date and would not be likely used anyway.
|
||||
|
||||
#### NeatURLs and ClearURLS
|
||||
|
||||
Previously we recommended ClearURLs to remove tracking parameters from URLs you might visit. These extensions are no longer needed with uBlock Origin’s [`removeparam`](https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#removeparam) feature.
|
||||
|
||||
#### HTTPS Everywhere
|
||||
|
||||
The EFF announced back in September they were [deprecating HTTPS-Everywhere](https://www.eff.org/deeplinks/2021/09/https-actually-everywhere) as most browsers now have an HTTPS-Only feature. We are pleased to see privacy features built into the browser and Firefox 91 introduced [HTTPS by Default in Private Browsing](https://blog.mozilla.org/security/2021/08/10/firefox-91-introduces-https-by-default-in-private-browsing/).
|
||||
|
||||
#### Multi Account Containers and Temporary Containers
|
||||
|
||||
Container extensions aren’t as important as they used to be for privacy now that we have [Total Cookie Protection](https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/).
|
||||
|
||||
Multi Account Container will still have some use if you use [Mozilla VPN](https://en.wikipedia.org/wiki/Mozilla_VPN) as it is going to be [integrated](https://github.com/mozilla/multi-account-containers/issues/2210) allowing you to configure specified containers to use a particular VPN server. Another use might be if you want to login to multiple accounts on the same domain.
|
||||
|
||||
#### Just-In-Time Compilation (JIT)
|
||||
|
||||
What is “Disable JIT” in Bromite? This option disables the JavaScript performance feature [JIT](https://en.wikipedia.org/wiki/Just-in-time_compilation). It can increase security but at the cost of performance. Those trade-offs vary wildly and are explored in [this](https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/) publication by Johnathan Norman from the Microsoft Edge team. This option is very much a security vs performance option.
|
||||
|
||||
#### Mozilla browsers on Android
|
||||
|
||||
We don’t recommend any Mozilla based browsers on Android. This is because we don’t feel that [GeckoView](https://mozilla.github.io/geckoview) is quite as secure as it could be as it doesn’t support [site isolation](https://hacks.mozilla.org/2021/05/introducing-firefox-new-site-isolation-security-architecture), soon to be coming in desktop browsers or [isolated processes](https://bugzilla.mozilla.org/show_bug.cgi?id=1565196).
|
||||
|
||||
We also noticed that there isn’t an option for [HTTPS-Only mode](https://github.com/mozilla-mobile/fenix/issues/16952#issuecomment-907960218). The only way to get something similar is to install the [deprecated](https://www.eff.org/deeplinks/2021/09/https-actually-everywhere) extension [HTTPS Everywhere](https://www.eff.org/https-everywhere).
|
||||
|
||||
There are places which Firefox on Android shines for example browsing news websites where you may want to _partially_ load some JavaScript (but not all) using medium or hard [blocking mode](https://github.com/gorhill/uBlock/wiki/Blocking-mode). The [reader view](https://support.mozilla.org/en-US/kb/view-articles-reader-view-firefox-android) is also pretty cool. We expect things will change in the future, so we’re keeping a close eye on this.
|
||||
|
||||
#### Fingerprinting
|
||||
|
||||
Firefox has the ability to block known third party [fingerprinting resources](https://blog.mozilla.org/security/2020/01/07/firefox-72-fingerprinting/). Mozilla has [advanced protection](https://support.mozilla.org/kb/firefox-protection-against-fingerprinting) against fingerprinting (RFP is enabled with Arkenfox).
|
||||
|
||||
We do not recommend extensions that promise to change your [browser fingerprint](https://blog.torproject.org/browser-fingerprinting-introduction-and-challenges-ahead/). Some of those extensions [are detectable](https://www.cse.chalmers.se/~andrei/codaspy17.pdf) by websites through JavaScript and [CSS](https://hal.archives-ouvertes.fr/hal-03152176/file/style-fingerprinting-usenix.pdf) methods, particularly those which inject anything into the web content.
|
||||
|
||||
This includes **all** extensions that try to change the user agent or other browser behaviour to prevent fingerprinting. We see these often recommended on Reddit and would like to say that they will likely make you more unique and can be circumvented. Arkenfox has [a good list](https://github.com/arkenfox/user.js/wiki/4.1-Extensions#small_orange_diamond-%EF%B8%8F-anti-fingerprinting-extensions-fk-no) of extensions you shouldn’t be using. They also have [another list](https://github.com/arkenfox/user.js/wiki/4.1-Extensions#small_orange_diamond-dont-bother) of extensions you needn’t bother with either. We also like to say testing sites which show you how unique you are in a set of users are often using hugely tainted results that are not indicative of real-world usage.
|
||||
|
||||
----------
|
||||
|
||||
_Special thanks to [Thorin-Oakenpants](https://github.com/Thorin-Oakenpants) and [Tommy](https://tommytran.io) for their help with providing advice and further documentation during the research phase.
|
BIN
docs/blog/2021/12/01/firefox-privacy-2021-update.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
docs/blog/2022/04/04/move-fast-and-break-things.jpg
Normal file
After Width: | Height: | Size: 358 KiB |
28
docs/blog/2022/04/04/move-fast-and-break-things.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
title: '"Move Fast and Break Things"'
|
||||
image: 'blog/2022/04/04/move-fast-and-break-things.jpg'
|
||||
created: "2022-04-04"
|
||||
author: 'Freddy'
|
||||
template: overrides/blog.en.html
|
||||
---
|
||||
Mark Zuckerberg does not look comfortable on stage. Yet, there he was proclaiming that “the future is private”. If someone has to tell you that they care about your privacy, they probably don’t.
|
||||
|
||||
For someone trying not to appear like a cartoon villain, Zuckerberg doesn’t do a great job. He gives the impression of some strange cyborg algorithmically attempting to impersonate human life. His movements are not quite robotic, but he lacks the charisma you might expect from one of the most powerful people on the planet. A _New Yorker_ [profile](https://www.newyorker.com/magazine/2018/09/17/can-mark-zuckerberg-fix-facebook-before-it-breaks-democracy) of him revealed that he had an affinity for Emperor Augustus, an ancient Roman tyrant. ‘Through a really harsh approach, [Augustus] established two hundred years of world peace,’ he said.
|
||||
|
||||
It’s the first part of that sentence that is worrying.
|
||||
|
||||
Is this what Zuckerberg sees himself as: a modern-day emperor hellbent on using any means he can to gain world peace? Probably not, but it would have been reassuring if he just told us he liked doing Sudoku and dad-dancing with his daughter (interestingly named August).
|
||||
|
||||
The Zuck once [joked](https://www.esquire.com/uk/latest-news/a19490586/mark-zuckerberg-called-people-who-handed-over-their-data-dumb-f/) to a friend that he could get them ‘info’ about anyone in Harvard. He had email addresses, pictures, real addresses: the lot. When the friend asked how, this was his riposte: ‘People just submitted it. I don’t know why. They trust me. Dumb f*cks.’ We now live in a reality where Zuckerberg can get ‘info’ about almost anyone in the world.
|
||||
|
||||
Like a depraved tabloid journalist fishing through a minor celebrity’s trash, Facebook collects everything it can about its users. Even if it means sifting through garbage, they want that data. But Facebook is not technically in the data business. It is in what author and professor Carissa Véliz [terms](https://aeon.co/essays/privacy-matters-because-it-empowers-us-all) ‘the business of power’ – which sounds rather more sinister than flogging off mildly irritating adverts.
|
||||
|
||||
Véliz argues that privacy is a form of power. It is the power to influence you, show you adverts and predict your behaviour. In this sense, personal data is being used to make us do things we otherwise would not do: to buy a certain product or to vote a certain way. Filmmaker Laura Poitras [described](https://www.washingtonpost.com/news/the-switch/wp/2014/10/23/snowden-filmmaker-laura-poitras-facebook-is-a-gift-to-intelligence-agencies/) Facebook as ‘a gift to intelligence agencies’. It allows governments to arrest people planning to participate in protests before they have even begun.
|
||||
|
||||
The social media giant is tip-toeing ever closer into our personal lives. When Facebook encountered competition it just bought it, adding Instagram and WhatsApp to its roster. The company even tried to make its own cryptocurrency so that one day the Facebook would control all our purchases too. Earlier this year, the project was [killed](https://www.ft.com/content/a88fb591-72d5-4b6b-bb5d-223adfb893f3) by regulators. It is worth noting that when Zuckerberg purchased WhatsApp and Instagram, they had no revenue. Author Tim Wu notes in his book _The Attention Merchants_ that Facebook is ‘a business with an exceedingly low ratio of invention to success’. Perhaps that is a part of Zuck’s genius.
|
||||
|
||||
‘Move fast and break things’ was the old company motto. When there were a few too many scandals, they moved fast and [rebranded](https://www.privacyguides.org/blog/2021/11/01/virtual-insanity) to Meta. No one expected online privacy to be the ‘thing’ they broke.
|
||||
|
||||
Before it became a global behemoth, Facebook started out as a dorm-room project. Zuckerberg sat at his keyboard after a few drinks and built it mainly because he could. It now has nearly three billion users. In the same way, Facebook [conducted](https://www.theguardian.com/technology/2014/jul/02/facebook-apologises-psychological-experiments-on-users) social experiments seemingly just for fun. Why he did it doesn’t really matter. As John Lanchester [put it](https://www.lrb.co.uk/the-paper/v39/n16/john-lanchester/you-are-the-product): he simply did it _because_.
|
||||
|
||||
It is unfair to say that Zuckerberg does not care about privacy – he does. That’s why he [spared](https://www.theguardian.com/technology/2013/oct/11/mark-zuckerberg-facebook-neighbouring-houses) no expense buying the houses that surrounded his home. Zuckerberg knows the power of privacy, which is painfully ironic given he has built his career on exploiting it. For Zuckerberg, at least, the future is private. It’s the rest of us that should be worried.
|
BIN
docs/blog/2022/06/09/hide-nothing.jpg
Normal file
After Width: | Height: | Size: 774 KiB |
42
docs/blog/2022/06/09/hide-nothing.md
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
title: '"Hide Nothing"'
|
||||
image: 'blog/2022/06/09/hide-nothing.jpg'
|
||||
created: "2022-06-09"
|
||||
author: 'Dan Arel'
|
||||
template: overrides/blog.en.html
|
||||
---
|
||||
In the wake of the September 11, 2001, attack on the United States, the US government enacted laws that weakened citizen privacy in the name of national emergency. This sent up many red flags for human rights and privacy advocates.
|
||||
|
||||
These concerns were met with “if you have nothing to hide, you have nothing to fear.” The argument goes that if you're not doing anything illegal, then these violations of your privacy shouldn't bother you. If you care about privacy, you clearly can't be up to anything good.
|
||||
|
||||
On the surface, this seems true to many people – but the reality is very different. We may not have had anything to hide in the immediate aftermath of 9/11, but that was not the only information being sought after by governments. Indeed, following the passage of the Patriot Act in the US, the FBI issued 192,499 [National Security Letters](https://www.aclu.org/other/national-security-letters), meaning they collected the records and online activity of nearly 200,000 people.
|
||||
|
||||
In the end it only convicted one person.
|
||||
|
||||
Now, many have argued that stopping one terrorist might be worth giving up some security for, but [according](https://www.aclu.org/issues/national-security/privacy-and-surveillance/surveillance-under-patriot-act) to the ACLU, the conviction would have occurred without the Patriot Act.
|
||||
|
||||
Many legal actions you take today could be deemed illegal by future laws or future government. In the US today there is discussion around the possibility of Roe v. Wade being overturned, allowing states to outlaw abortions. You may not currently feel the need to hide internet searches, menstrual cycle apps, or donations to women's health clinics today because it's not illegal, but tomorrow that information could be used against you.
|
||||
|
||||
In countries were organizing around political dissent is legal, that doesn't mean the government is tracking those taking part and using that information to create informants or infiltrate such groups. Or worse, when or if laws change, using that surveillance to punish those involved.
|
||||
|
||||
And even if you break away from the legal aspects, we all have something to hide. You may not be ready to reveal your sexual or gender identity, but your internet usage could potentially do that for you. You don't want to make your bank account public; you have that information to hide. And you can continue to list things about your life you'd just rather not make public, regardless of potential legality.
|
||||
|
||||
In July of 2021, a Catholic priest by the name of Jeffrey Burrill lost his job and was forced to resign after data collected through his cell phone showed that he was active on the Gay dating app Grindr, and that he had visited multiple gay bars in the area. [According](https://www.washingtonpost.com/religion/2021/07/20/bishop-misconduct-resign-burrill/) to the *Washington Post*:
|
||||
|
||||
> “A mobile device correlated to Burrill emitted app data signals from the location-based hookup app Grindr on a near-daily basis during parts of 2018, 2019, and 2020 —– at both his USCCB office and his USCCB-owned residence, as well as during USCCB meetings and events in other cities,” the Pillar reported.
|
||||
|
||||
> “The data obtained and analyzed by The Pillar conveys mobile app date signals during two 26-week periods, the first in 2018 and the second in 2019 and 2020. The data was obtained from a data vendor and authenticated by an independent data consulting firm contracted by The Pillar,” the site reported. It did not identify who the vendor was or if the site bought the information or got it from a third party.
|
||||
|
||||
> The Pillar story says app data “correlated” to Burrill's phone shows the priest visited gay bars, including while traveling for the USCCB.
|
||||
|
||||
While it was not clear who was tracking Burrill's device, the Post went on to say that:
|
||||
|
||||
> Privacy experts have long raised concerns about “anonymized” data collected by apps and sold to or shared with aggregators and marketing companies. While the information is typically stripped of obviously identifying fields, like a user's name or phone number, it can contain everything from age and gender to a device ID. It's possible for experts to de-anonymize some of this data and connect it to real people.
|
||||
|
||||
While Burrill was without a doubt in violation of his works own code of conduct, he did decide on his own to be a priest. However, his personal life was not harming others and was just that, his personal life. While the question looms about who was tracking him to begin with and why, the fact it was so easy to do is alarming.
|
||||
|
||||
What if Burrill wasn't a priest, but just happened to work for someone who held anti-homosexual views who used this data to out him, humiliate him, and fire him under false pretenses? This data, which should be private could (and likely did in the real-life circumstance) ruin his life.
|
||||
|
||||
That is what makes internet privacy so important. It's not hiding nefarious activity, it's that we all have an innate right to our privacy.
|
||||
|
||||
You might not feel today that you have anything to hide, but you might not feel that way tomorrow and once something is public, it cannot be made private again.
|
@ -2,20 +2,18 @@
|
||||
title: "Calendar and Contact Sync"
|
||||
icon: material/calendar
|
||||
---
|
||||
Calendaring and contacts are some of the most sensitive data posess. Use only products that use E2EE at rest. This prevents a provider from reading your data.
|
||||
Calendars and contacts contain some of your most sensitive data; use products that implement E2EE at rest to prevent a provider from reading them.
|
||||
|
||||
## Cloud/SaaS Providers
|
||||
|
||||
These products are included with an subscription with their respective [email providers](email.md).
|
||||
|
||||
### Tutanota
|
||||
## Tutanota
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Tutanota** offers a free and encrypted calendar across their supported platforms. Features include: automatic E2EE of all data, sharing features, import/export functionality, and [more](https://tutanota.com/calendar-app-comparison/). Multiple calendars and extended sharing functionality is limited to paid subscribers.
|
||||
**Tutanota** offers a free and encrypted calendar across their supported platforms. Features include: automatic E2EE of all data, sharing features, import/export functionality, multi-factor authentication, and [more](https://tutanota.com/calendar-app-comparison/).
|
||||
|
||||
Multiple calendars and extended sharing functionality is limited to paid subscribers.
|
||||
|
||||
[:octicons-home-16: Homepage](https://tutanota.com/calendar){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://tutanota.com/privacy){ .card-link title="Privacy Policy" }
|
||||
@ -25,46 +23,24 @@ These products are included with an subscription with their respective [email pr
|
||||
|
||||
??? downloads
|
||||
|
||||
[:octicons-browser-16:](https://mail.tutanota.com/){ .card-link title=Web }
|
||||
[:fontawesome-brands-windows:](https://tutanota.com/blog/posts/desktop-clients/){ .card-link title=Windows }
|
||||
[:fontawesome-brands-apple:](https://tutanota.com/blog/posts/desktop-clients/){ .card-link title=macOS }
|
||||
[:fontawesome-brands-linux:](https://tutanota.com/blog/posts/desktop-clients/){ .card-link title=Linux }
|
||||
[:pg-flathub:](https://flathub.org/apps/details/com.tutanota.Tutanota){ .card-link title=Flatpak }
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=de.tutao.tutanota){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://f-droid.org/en/packages/de.tutao.tutanota){ .card-link title=F-Droid }
|
||||
[:fontawesome-brands-app-store-ios:](https://apps.apple.com/us/app/tutanota/id922429609){ .card-link title="App Store" }
|
||||
- [:octicons-browser-16: Web](https://mail.tutanota.com/)
|
||||
- [:fontawesome-brands-windows: Windows](https://tutanota.com/blog/posts/desktop-clients/)
|
||||
- [:fontawesome-brands-apple: macOS](https://tutanota.com/blog/posts/desktop-clients/)
|
||||
- [:fontawesome-brands-linux: Linux](https://tutanota.com/blog/posts/desktop-clients/)
|
||||
- [:pg-flathub: Flatpak](https://flathub.org/apps/details/com.tutanota.Tutanota)
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=de.tutao.tutanota)
|
||||
- [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/de.tutao.tutanota)
|
||||
- [:fontawesome-brands-app-store-ios: App Store](https://apps.apple.com/us/app/tutanota/id922429609)
|
||||
|
||||
### Proton Calendar
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
|
||||
**Proton Calendar** is an encrypted calendar serivce available to Proton Mail members. Features include: automatic E2EE of all data, sharing features, import/export functionality, and [more](https://proton.me/support/proton-calendar-guide). Those on the free tier get access to a single calendar, whereas paid subscribers can create up to 20 calendars. Extended sharing functionality is also limited to paid subscribers. Proton Calendar is currently only available for the web and Android.
|
||||
|
||||
[:octicons-home-16: Homepage](https://proton.me/calendar){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://proton.me/legal/privacy){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://proton.me/support/proton-calendar-guide){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/ProtonMail/WebClients){ .card-link title="Source Code" }
|
||||
|
||||
??? downloads
|
||||
|
||||
[:octicons-browser-16:](https://calendar.proton.me){ .card-link title=Web }
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=me.proton.android.calendar){ .card-link title="Google Play" }
|
||||
|
||||
## Self-hostable
|
||||
|
||||
Some of these options are self-hostable, but could be offered by third party SaaS providers for a fee:
|
||||
|
||||
### EteSync
|
||||
## EteSync
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
|
||||
**EteSync** is a secure, end-to-end encrypted, and privacy-respecting cloud backup and synchronization software for your personal information (e.g. contacts and calendars). There are native clients for Android, iOS, and the web, and an adapter layer for most desktop clients.
|
||||
**EteSync** is a secure, end-to-end encrypted, and privacy-respecting cloud backup and synchronization software for your personal information, including contacts and calendars. There are native clients for Android, iOS, with a web client and an adapter layer for most desktop clients available too. Etesync does [not](https://www.etesync.com/faq/#2fa) currently support multi-factor authentication.
|
||||
|
||||
EteSync also offers optional software as a service for [$24 per year](https://dashboard.etebase.com/user/partner/pricing/) to use, or you can host the server yourself for free.
|
||||
EteSync offers a SaaS for [$24/year](https://dashboard.etebase.com/user/partner/pricing/), or you can host the server yourself for free.
|
||||
|
||||
[:octicons-home-16: Homepage](https://www.etesync.com){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://www.etesync.com/tos/#privacy){ .card-link title="Privacy Policy" }
|
||||
@ -74,55 +50,31 @@ Some of these options are self-hostable, but could be offered by third party Saa
|
||||
|
||||
??? downloads
|
||||
|
||||
[:octicons-device-desktop-16:](https://github.com/etesync/etesync-dav/blob/master/README.md#specific-client-notes-and-instructions){ .card-link title="Client Setup" }
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=com.etesync.syncadapter){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://f-droid.org/app/com.etesync.syncadapter){ .card-link title=F-Droid }
|
||||
[:fontawesome-brands-app-store-ios:](https://apps.apple.com/us/app/apple-store/id1489574285){ .card-link title="App Store" }
|
||||
- [:octicons-device-desktop-16: Client Setup](https://github.com/etesync/etesync-dav/blob/master/README.md#specific-client-notes-and-instructions)
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=com.etesync.syncadapter)
|
||||
- [:pg-f-droid: F-Droid](https://f-droid.org/app/com.etesync.syncadapter)
|
||||
- [:fontawesome-brands-app-store-ios: App Store](https://apps.apple.com/us/app/apple-store/id1489574285)
|
||||
- [:fontawesome-brands-docker: Docker Hub](https://hub.docker.com/r/victorrds/etesync)
|
||||
|
||||
### Nextcloud
|
||||
## Proton Calendar
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Nextcloud** is a suite of client-server software for creating and using file hosting services. This includes calendar sync via CalDAV and contacts sync via CardDAV. Nextcloud is free and open-source, thereby allowing anyone to install and operate it without charge on a private server.
|
||||
**Proton Calendar** is an encrypted calendar service available to Proton members via web or mobile clients. Features include: automatic E2EE of all data, sharing features, import/export functionality, and [more](https://proton.me/support/proton-calendar-guide). Those on the free tier get access to a single calendar, whereas paid subscribers can create up to 20 calendars. Extended sharing functionality is also limited to paid subscribers.
|
||||
|
||||
You can self-host Nextcloud or pay for service from a [provider](https://nextcloud.com/signup/).
|
||||
**Proton Mail** can be used to synchronize contacts. Likewise, the service is currently only available via the web and mobile clients.
|
||||
|
||||
[:octicons-home-16: Homepage](https://nextcloud.com/){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://nextcloud.com/privacy/){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://nextcloud.com/support/){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/nextcloud){ .card-link title="Source Code" }
|
||||
[:octicons-heart-16:](https://nextcloud.com/contribute/){ .card-link title=Contribute }
|
||||
[:octicons-home-16: Homepage](https://proton.me/calendar){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://proton.me/legal/privacy){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://proton.me/support/proton-calendar-guide){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/ProtonMail/WebClients){ .card-link title="Source Code" }
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-windows:](https://nextcloud.com/install/#install-clients){ .card-link title=Windows }
|
||||
[:fontawesome-brands-apple:](https://nextcloud.com/install/#install-clients){ .card-link title=macOS }
|
||||
[:fontawesome-brands-linux:](https://nextcloud.com/install/#install-clients){ .card-link title=Linux }
|
||||
[:pg-flathub:](https://flathub.org/apps/details/com.nextcloud.desktopclient.nextcloud){ .card-link title=Flatpak }
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=com.nextcloud.client){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://f-droid.org/packages/com.nextcloud.client){ .card-link title=F-Droid }
|
||||
[:fontawesome-brands-app-store-ios:](https://apps.apple.com/us/app/nextcloud/id1125420102){ .card-link title="App Store" }
|
||||
- [:octicons-browser-16: Web](https://calendar.proton.me)
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=me.proton.android.calendar)
|
||||
|
||||
### DecSync CC
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
|
||||
**DecSync CC** synchronizes contacts, calendars and tasks using DecSync. It stores this data in a shared directory, using [Syncthing](file-sharing/#syncthing), or any other file synchronization service.
|
||||
|
||||
There are [plugins](https://github.com/39aldo39/DecSync#rss) to sync other types of data such as [RSS](news-aggregators.md).
|
||||
|
||||
[:octicons-repo-16: Repository](https://github.com/39aldo39/DecSync){ .md-button .md-button--primary }
|
||||
[:octicons-info-16:](https://github.com/39aldo39/DecSync/blob/master/design.md){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/39aldo39/DecSync){ .card-link title="Source Code" }
|
||||
[:octicons-heart-16:](https://github.com/39aldo39/DecSync#donations){ .card-link title=Contribute }
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=org.decsync.cc){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://f-droid.org/packages/org.decsync.cc){ .card-link title=F-Droid }
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
!!! warning
|
||||
Proton [does not](https://proton.me/support/proton-contacts#verify) use E2EE for your contact names and email addresses.
|
||||
|
@ -6,6 +6,20 @@ Many cloud storage providers require your full trust that they will not look at
|
||||
|
||||
If these alternatives do not fit your needs, we suggest you look into [Encryption Software](encryption.md).
|
||||
|
||||
## Cryptee
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Cryptee** is a web-based, encrypted, secure photo storage service and documents editor.
|
||||
|
||||
[:octicons-home-16: Homepage](https://crypt.ee){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://crypt.ee/privacy){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://crypt.ee/help){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/cryptee){ .card-link title="Source Code" }
|
||||
|
||||
## Nextcloud
|
||||
|
||||
!!! recommendation
|
||||
@ -22,19 +36,19 @@ If these alternatives do not fit your needs, we suggest you look into [Encryptio
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-windows:](https://nextcloud.com/install/#install-clients){ .card-link title=Windows }
|
||||
[:fontawesome-brands-apple:](https://nextcloud.com/install/#install-clients){ .card-link title=macOS }
|
||||
[:fontawesome-brands-linux:](https://nextcloud.com/install/#install-clients){ .card-link title=Linux }
|
||||
[:fontawesome-brands-freebsd:](https://www.freshports.org/www/nextcloud){ .card-link title=FreeBSD }
|
||||
[:pg-openbsd:](https://openports.se/www/nextcloud){ .card-link title=OpenBSD }
|
||||
[:pg-netbsd:](https://pkgsrc.se/www/php-nextcloud){ .card-link title=NetBSD }
|
||||
[:fontawesome-brands-google-play:](https://play.google.com/store/apps/details?id=com.nextcloud.client){ .card-link title="Google Play" }
|
||||
[:pg-f-droid:](https://f-droid.org/packages/com.nextcloud.client){ .card-link title=F-Droid }
|
||||
[:fontawesome-brands-app-store-ios:](https://apps.apple.com/app/id1125420102){ .card-link title=App Store }
|
||||
- [:fontawesome-brands-windows: Windows](https://nextcloud.com/install/#install-clients)
|
||||
- [:fontawesome-brands-apple: macOS](https://nextcloud.com/install/#install-clients)
|
||||
- [:fontawesome-brands-linux: Linux](https://nextcloud.com/install/#install-clients)
|
||||
- [:fontawesome-brands-freebsd: FreeBSD](https://www.freshports.org/www/nextcloud)
|
||||
- [:pg-openbsd: OpenBSD](https://openports.se/www/nextcloud)
|
||||
- [:pg-netbsd: NetBSD](https://pkgsrc.se/www/php-nextcloud)
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=com.nextcloud.client)
|
||||
- [:pg-f-droid: F-Droid](https://f-droid.org/packages/com.nextcloud.client)
|
||||
- [:fontawesome-brands-app-store-ios: App Store](https://apps.apple.com/app/id1125420102)
|
||||
|
||||
We recommend checking if your Nextcloud provider supports E2EE, otherwise you have to trust the provider to not look at your files.
|
||||
|
||||
When self-hosting Nextcloud, you should also enable E2EE to protect against your hosting provider snooping on your data.
|
||||
When self-hosting, you should also enable E2EE to protect against your hosting provider snooping on your data.
|
||||
|
||||
## Proton Drive
|
||||
|
||||
@ -49,48 +63,10 @@ When self-hosting Nextcloud, you should also enable E2EE to protect against your
|
||||
[:octicons-info-16:](https://proton.me/support/drive){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/ProtonMail/WebClients){ .card-link title="Source Code" }
|
||||
|
||||
Proton Drive is currently in beta and only is only available through a web client.
|
||||
|
||||
When using a web client, you are placing trust in the server to send you proper JavaScript code to derive the decryption key and authentication token locally in your browser. A compromised server can send you malicious JavaScript code to steal your master password and decrypt your data. If this does not fit your [threat model](basics/threat-modeling.md), consider using an alternative.
|
||||
|
||||
## Cryptee
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Cryptee** is a web-based, encrypted, secure photo storage service and documents editor.
|
||||
|
||||
[:octicons-home-16: Homepage](https://crypt.ee){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://crypt.ee/privacy){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://crypt.ee/help){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://github.com/cryptee){ .card-link title="Source Code" }
|
||||
|
||||
## Tahoe-LAFS
|
||||
|
||||
!!! note
|
||||
|
||||
Due to the complexity of the system and the amount of nodes needed to set it up, Tahoe-LAFS is only recommended for seasoned system administrators.
|
||||
|
||||
|
||||
!!! recommendation
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Tahoe-LAFS** is a free, open, and decentralized cloud storage system. It distributes your data across multiple servers. Even if some of the servers fail or are taken over by an attacker, the entire file store continues to function correctly, preserving your privacy and security. The servers used as storage pools do not have access to your data.
|
||||
|
||||
[:octicons-home-16: Homepage](https://www.tahoe-lafs.org){ .md-button .md-button--primary }
|
||||
[:octicons-info-16:](https://tahoe-lafs.readthedocs.io/en/latest/){ .card-link title=Documentation}
|
||||
[:octicons-code-16:](https://www.tahoe-lafs.org/trac/tahoe-lafs/browser){ .card-link title="Source Code" }
|
||||
[:octicons-heart-16:](https://tahoe-lafs.readthedocs.io/en/latest/donations.html){ .card-link title=Contribute }
|
||||
|
||||
??? downloads
|
||||
|
||||
[:fontawesome-brands-windows:](https://tahoe-lafs.readthedocs.io/en/latest/Installation/install-tahoe.html#microsoft-windows){ .card-link title=Windows }
|
||||
[:fontawesome-brands-apple:](https://tahoe-lafs.readthedocs.io/en/latest/Installation/install-tahoe.html#linux-bsd-or-macos){ .card-link title=macOS }
|
||||
[:fontawesome-brands-linux:](https://tahoe-lafs.readthedocs.io/en/latest/Installation/install-tahoe.html#linux-bsd-or-macos){ .card-link title=Linux }
|
||||
[:pg-netbsd:](https://tahoe-lafs.readthedocs.io/en/latest/Installation/install-tahoe.html#linux-bsd-or-macos){ .card-link title=NetBSD }
|
||||
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=me.proton.android.drive)
|
||||
|
||||
--8<-- "includes/abbreviations.en.md"
|
||||
Proton Drive is currently in beta and is only available through a web client and an Android app.
|
||||
|
||||
When using a web client, you are placing trust in the server to send you proper JavaScript code to derive the decryption key and authentication token locally in your browser. A compromised server can send you malicious JavaScript code to steal your master password and decrypt your data. If this does not fit your [threat model](basics/threat-modeling.md), consider using an alternative.
|
||||
|