@networkpro/web 1.7.2 → 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CODE_OF_CONDUCT.md +4 -4
- package/LICENSE.md +4 -4
- package/README.md +3 -3
- package/cspell.json +7 -0
- package/netlify-functions/cspReport.js +8 -0
- package/package.json +4 -4
- package/src/lib/components/foss/FossFeatures.svelte +0 -23
- package/src/lib/components/foss/FossItemContent.svelte +1 -2
- package/src/lib/data/fossData.js +76 -4
- package/src/lib/images.js +6 -2
- package/src/lib/img/posts/hboard.png +0 -0
- package/src/lib/img/posts/hboard.webp +0 -0
- package/src/lib/pages/AboutContent.svelte +50 -32
- package/src/lib/pages/LicenseContent.svelte +18 -22
- package/src/lib/pages/TermsConditionsContent.svelte +1 -4
- package/src/lib/styles/css/default.css +25 -2
- package/src/lib/styles/global.min.css +1 -1
- package/static/assets/bin/contact.vcf +13 -0
- package/static/assets/bin/linksheet.json +8 -0
- package/static/assets/consulting-terms.pdf +0 -0
- package/static/assets/license/CC-BY-4.0-rdfa.xml +741 -0
- package/static/assets/license/CC-BY-4.0.html +884 -0
- package/static/assets/license/CC-BY-4.0.md +367 -0
- package/static/assets/license/CC-BY-4.0.txt +156 -0
- package/static/assets/license/CC-BY-4.0.xml +25 -0
- package/static/assets/license/COPYING-rdfa.xml +1187 -0
- package/static/assets/license/COPYING.html +1062 -0
- package/static/assets/license/COPYING.md +611 -0
- package/static/assets/license/COPYING.odt +0 -0
- package/static/assets/license/COPYING.txt +232 -0
- package/static/disableSw.js +8 -0
- package/static/offline.html +3 -0
- package/static/sitemap.xml +40 -4
- package/static/styles/brands.min.css +6 -0
- package/static/styles/fontawesome.min.css +9 -0
- package/static/styles/global.min.css +6 -0
- package/static/styles/solid.min.css +6 -0
- package/assets/nsa-happy-dance.png +0 -0
- package/tsconfig.custom.jsonc +0 -40
- /package/{assets/bin/contact@s.neteng.pro.aexpk → static/assets/bin/contact@s.neteng.pro.asc} +0 -0
- /package/{assets/bin/github@sl.neteng.cc.aexpk → static/assets/bin/github@sl.neteng.cc.asc} +0 -0
- /package/{assets/bin/support@neteng.pro.aexpk → static/assets/bin/support@neteng.pro.asc} +0 -0
package/CODE_OF_CONDUCT.md
CHANGED
|
@@ -8,8 +8,8 @@ This file is part of Network Pro.
|
|
|
8
8
|
|
|
9
9
|
<a name="top"></a>
|
|
10
10
|
|
|
11
|
-
[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info):
|
|
12
|
-
`CC-BY-4.0 OR GPL-3.0-or-later
|
|
11
|
+
<sup>[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info):
|
|
12
|
+
`CC-BY-4.0 OR GPL-3.0-or-later`</sup>
|
|
13
13
|
|
|
14
14
|
# Contributor Covenant Code of Conduct
|
|
15
15
|
|
|
@@ -152,12 +152,12 @@ For answers to common questions about this code of conduct, see the FAQ at
|
|
|
152
152
|
|
|
153
153
|
---
|
|
154
154
|
|
|
155
|
-
<
|
|
155
|
+
<span style="font-size: 12px; font-weight: bold; text-align: center;">
|
|
156
156
|
|
|
157
157
|
[Home](https://netwk.pro) | [Terms of Use](https://netwk.pro/terms-of-use)
|
|
158
158
|
[Privacy Policy](https://netwk.pro/privacy) | [Legal](https://netwk.pro/license)
|
|
159
159
|
|
|
160
|
-
</
|
|
160
|
+
</span>
|
|
161
161
|
|
|
162
162
|
|
|
163
163
|
|
package/LICENSE.md
CHANGED
|
@@ -6,8 +6,8 @@ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
|
6
6
|
This file is part of Network Pro.
|
|
7
7
|
====================================================================== -->
|
|
8
8
|
|
|
9
|
-
[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/):
|
|
10
|
-
`CC-BY-4.0 OR GPL-3.0-or-later
|
|
9
|
+
<sup>[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/):
|
|
10
|
+
`CC-BY-4.0 OR GPL-3.0-or-later`</sup>
|
|
11
11
|
|
|
12
12
|
<a name="top"></a>
|
|
13
13
|
|
|
@@ -112,7 +112,7 @@ This work is dual-licensed under:
|
|
|
112
112
|
|
|
113
113
|
## 7. Creative Commons License (CC BY 4.0)
|
|
114
114
|
|
|
115
|
-
<sup>Formats: [HTML](https://
|
|
115
|
+
<sup>Formats: [HTML](https://netwk.pro/assets/license/CC-BY-4.0.html) | [Markdown](https://netwk.pro/assets/license/CC-BY-4.0.md) | [Text](https://netwk.pro/assets/license/CC-BY-4.0.txt) | [RDFa](https://netwk.pro/assets/license/CC-BY-4.0-rdfa.xml) | [XMP](https://netwk.pro/assets/license/CC-BY-4.0.xml)</sup>
|
|
116
116
|
|
|
117
117
|
Network Pro™ (the "Licensed Material") is licensed under **Creative
|
|
118
118
|
Commons Attribution 4.0 International** (CC BY 4.0)
|
|
@@ -138,7 +138,7 @@ Permissions beyond the scope of this License—or instead of those permitted by
|
|
|
138
138
|
|
|
139
139
|
## 8. GNU General Public License (GPL)
|
|
140
140
|
|
|
141
|
-
<sup>Formats: [HTML](https://
|
|
141
|
+
<sup>Formats: [HTML](https://netwk.pro/assets/license/COPYING.html) | [Markdown](https://netwk.pro/assets/license/COPYING.md) | [Text](https://netwk.pro/assets/license/COPYING.txt) | [RDFa](https://netwk.pro/assets/license/COPYING-rdfa.xml) | [ODT](https://netwk.pro/assets/license/COPYING.odt)</sup>
|
|
142
142
|
|
|
143
143
|
Network Pro™ is free software: you can redistribute it and/or modify it under the terms of the **GNU General Public License** (GNU GPL) as published by the [Free Software Foundation](https://www.fsf.org/), either version 3 of the License, or (at your option) any later version.
|
|
144
144
|
|
package/README.md
CHANGED
|
@@ -226,15 +226,15 @@ Located at `src/hooks.client.ts`, it is automatically used by the SvelteKit runt
|
|
|
226
226
|
To receive and inspect CSP violation reports in development or production, the repo includes a Netlify-compatible function at:
|
|
227
227
|
|
|
228
228
|
```bash
|
|
229
|
-
netlify-functions/
|
|
229
|
+
netlify-functions/cspReport.js
|
|
230
230
|
```
|
|
231
231
|
|
|
232
|
-
This function receives reports sent to `/functions/
|
|
232
|
+
This function receives reports sent to `/functions/cspReport` and logs them to the console. You can later integrate with logging tools or alerts (e.g., via email, Slack, or SIEM ingestion).
|
|
233
233
|
|
|
234
234
|
Make sure to include the `report-uri` directive in your CSP header:
|
|
235
235
|
|
|
236
236
|
```bash
|
|
237
|
-
Content-Security-Policy: ...; report-uri /.netlify/functions/
|
|
237
|
+
Content-Security-Policy: ...; report-uri /.netlify/functions/cspReport;
|
|
238
238
|
```
|
|
239
239
|
|
|
240
240
|
|
package/cspell.json
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"language": "en",
|
|
4
4
|
"words": [
|
|
5
5
|
"acode",
|
|
6
|
+
"anonymization",
|
|
6
7
|
"autocapture",
|
|
7
8
|
"autorun",
|
|
8
9
|
"beforeinstallprompt",
|
|
@@ -13,7 +14,9 @@
|
|
|
13
14
|
"esbuild",
|
|
14
15
|
"foss",
|
|
15
16
|
"geolocation",
|
|
17
|
+
"heliboard",
|
|
16
18
|
"homescreen",
|
|
19
|
+
"Izzy",
|
|
17
20
|
"lhci",
|
|
18
21
|
"lighthouseci",
|
|
19
22
|
"lighthouserc",
|
|
@@ -30,12 +33,16 @@
|
|
|
30
33
|
"noreferrer",
|
|
31
34
|
"nosniff",
|
|
32
35
|
"nosw",
|
|
36
|
+
"npmjs",
|
|
33
37
|
"obtainium",
|
|
34
38
|
"posthog",
|
|
35
39
|
"SIEM",
|
|
40
|
+
"SPDY",
|
|
36
41
|
"stylelintignore",
|
|
37
42
|
"Subsite",
|
|
38
43
|
"subsites",
|
|
44
|
+
"Supercookie",
|
|
45
|
+
"supercookies",
|
|
39
46
|
"urlcheck",
|
|
40
47
|
"vcard",
|
|
41
48
|
"vite",
|
|
@@ -6,6 +6,14 @@ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
|
6
6
|
This file is part of Network Pro.
|
|
7
7
|
========================================================================== */
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* @file cspReport.js
|
|
11
|
+
* @description Sets up a CSP reporting endpoint with email notifications, to be deployed as a Netlify function.
|
|
12
|
+
* @module netlify-functions
|
|
13
|
+
* @author SunDevil311
|
|
14
|
+
* @updated 2025-05-29
|
|
15
|
+
*/
|
|
16
|
+
|
|
9
17
|
import nodemailer from "nodemailer";
|
|
10
18
|
|
|
11
19
|
/**
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"./.netlify/shims.js"
|
|
6
6
|
],
|
|
7
|
-
"version": "1.7.
|
|
7
|
+
"version": "1.7.4",
|
|
8
8
|
"description": "Locking Down Networks, Unlocking Confidence | Security, Networking, Privacy — Network Pro Strategies",
|
|
9
9
|
"keywords": [
|
|
10
10
|
"advisory",
|
|
@@ -78,13 +78,13 @@
|
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
80
|
"nodemailer": "^7.0.3",
|
|
81
|
-
"posthog-js": "^1.
|
|
81
|
+
"posthog-js": "^1.249.0",
|
|
82
82
|
"semver": "^7.7.2",
|
|
83
83
|
"svelte": "5.33.10"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@eslint/compat": "^1.2.9",
|
|
87
|
-
"@eslint/js": "^9.
|
|
87
|
+
"@eslint/js": "^9.28.0",
|
|
88
88
|
"@lhci/cli": "^0.14.0",
|
|
89
89
|
"@playwright/test": "^1.52.0",
|
|
90
90
|
"@sveltejs/adapter-netlify": "^5.0.2",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"@vitest/coverage-v8": "^3.1.4",
|
|
96
96
|
"autoprefixer": "^10.4.21",
|
|
97
97
|
"browserslist": "^4.25.0",
|
|
98
|
-
"eslint": "^9.
|
|
98
|
+
"eslint": "^9.28.0",
|
|
99
99
|
"eslint-config-prettier": "^10.1.5",
|
|
100
100
|
"eslint-plugin-jsdoc": "^50.6.17",
|
|
101
101
|
"eslint-plugin-svelte": "^3.9.0",
|
|
@@ -52,27 +52,4 @@ This file is part of Network Pro.
|
|
|
52
52
|
font-weight: 600;
|
|
53
53
|
margin-bottom: 0.5em;
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
.emoji {
|
|
57
|
-
margin-right: 8px;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.headline {
|
|
61
|
-
display: block; /* Ensure it is on its own line */
|
|
62
|
-
font-weight: bold; /* Keep the first item bold */
|
|
63
|
-
font-style: italic; /* Only make the first item italic */
|
|
64
|
-
margin-bottom: 4px; /* Add space between headline and the rest */
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.label {
|
|
68
|
-
font-weight: bold; /* Keep the label bold */
|
|
69
|
-
font-family: inherit; /* Ensure it uses the same font-family as normal text */
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.description {
|
|
73
|
-
display: inline; /* Keep description inline */
|
|
74
|
-
font-weight: normal; /* Ensure the description is normal (not bold) */
|
|
75
|
-
font-family: inherit; /* Ensure it uses the same font-family as normal text */
|
|
76
|
-
font-style: normal; /* Remove italic for the description */
|
|
77
|
-
}
|
|
78
55
|
</style>
|
|
@@ -126,8 +126,7 @@ This file is part of Network Pro.
|
|
|
126
126
|
><i class="fas fa-file-arrow-down" style="margin-left: 8px;"></i
|
|
127
127
|
></span>
|
|
128
128
|
<a
|
|
129
|
-
|
|
130
|
-
href="https://raw.githubusercontent.com/netwk-pro/dev-sveltekit/refs/heads/master/assets/bin/linksheet.json"
|
|
129
|
+
href="/assets/bin/linksheet.json"
|
|
131
130
|
download
|
|
132
131
|
type="application/json"
|
|
133
132
|
style="margin-left: 8px;"
|
package/src/lib/data/fossData.js
CHANGED
|
@@ -6,12 +6,82 @@ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
|
6
6
|
This file is part of Network Pro.
|
|
7
7
|
========================================================================== */
|
|
8
8
|
|
|
9
|
-
// cspell:ignore lsheet eauth bolditalic tosdr
|
|
10
|
-
|
|
11
9
|
// Import FOSS images
|
|
12
|
-
import { acodePng, acodeWbp, eauthPng, eauthWbp, lsheetPng, lsheetWbp, pmxPng, pmxWbp, tosPng, tosWbp, urlPng, urlWbp } from "$lib";
|
|
10
|
+
import { acodePng, acodeWbp, eauthPng, eauthWbp, hboardPng, hboardWbp, lsheetPng, lsheetWbp, pmxPng, pmxWbp, tosPng, tosWbp, urlPng, urlWbp } from "$lib";
|
|
13
11
|
|
|
14
12
|
export const fossData = [
|
|
13
|
+
{
|
|
14
|
+
id: "heliboard",
|
|
15
|
+
images: {
|
|
16
|
+
webp: hboardWbp,
|
|
17
|
+
png: hboardPng,
|
|
18
|
+
},
|
|
19
|
+
imgAlt: "HeliBoard",
|
|
20
|
+
title: "HeliBoard",
|
|
21
|
+
headline: "⌨️ A privacy-first keyboard that respects your data. Always.",
|
|
22
|
+
headlineDescription: `
|
|
23
|
+
<p>
|
|
24
|
+
Meet <strong>HeliBoard</strong> — a fully open-source Android keyboard that puts privacy and user control first. No internet permissions. No telemetry. No tracking. Just a lightweight, seamless typing experience built by developers who genuinely care about digital freedom and transparency.
|
|
25
|
+
</p>
|
|
26
|
+
`,
|
|
27
|
+
features: [
|
|
28
|
+
{
|
|
29
|
+
emoji: "💡",
|
|
30
|
+
label: "Why Make the Switch to HeliBoard?",
|
|
31
|
+
isIntro: true
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
emoji: "✔️",
|
|
35
|
+
label: "Material Design interface",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
emoji: "✔️",
|
|
39
|
+
label: "Built-in themes with dark mode support",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
emoji: "✔️",
|
|
43
|
+
label: "No ads, data collection, or background connections",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
emoji: "✔️",
|
|
47
|
+
label: "Emoji support, gesture input, and smart customization",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
emoji: "✔️",
|
|
51
|
+
label: "Actively developed on GitHub",
|
|
52
|
+
description: "get involved!"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
detailsDescription: `
|
|
56
|
+
<p>
|
|
57
|
+
Whether you're switching from Gboard or just want something more minimal and ethical, HeliBoard brings you that true FOSS flavor while keeping your taps smooth and secure.
|
|
58
|
+
</p>
|
|
59
|
+
<p>
|
|
60
|
+
🛠️ Open-source. Lightweight. Transparent. HeliBoard isn't just a keyboard—it's a philosophy.
|
|
61
|
+
</p>
|
|
62
|
+
<p>
|
|
63
|
+
✨ <strong>Weekly FOSS gems like this remind us: we have powerful alternatives, built by passionate devs, made for people who care. <em>Let's support that</em>.</strong>
|
|
64
|
+
</p>
|
|
65
|
+
|
|
66
|
+
`,
|
|
67
|
+
links: [
|
|
68
|
+
{
|
|
69
|
+
label: "GitHub",
|
|
70
|
+
href: "https://github.com/Helium314/HeliBoard",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
label: "F-Droid",
|
|
74
|
+
href: "https://f-droid.org/packages/helium314.keyboard/",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
label: "IzzyOnDroid",
|
|
78
|
+
href: "https://apt.izzysoft.de/fdroid/index/apk/helium314.keyboard",
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
notes: [
|
|
82
|
+
"Network Pro™ <strong>highly recommends</strong> that Android users choose an open-source keyboard—ideally one that does not require internet permissions. Concerns remain valid around proprietary keyboards like Gboard and Microsoft SwiftKey, which may collect and store user input data."
|
|
83
|
+
],
|
|
84
|
+
},
|
|
15
85
|
{
|
|
16
86
|
id: "eauth",
|
|
17
87
|
images: {
|
|
@@ -23,7 +93,7 @@ export const fossData = [
|
|
|
23
93
|
headline: "🔐 Elevate Your 2FA Game with Ente Auth — The Cross-Platform Open-Source Powerhouse!",
|
|
24
94
|
headlineDescription: `
|
|
25
95
|
<p>
|
|
26
|
-
|
|
96
|
+
Discover <strong>Ente Auth</strong> — the sleek, open-source 2FA authenticator that's putting privacy and usability front and center.
|
|
27
97
|
</p>
|
|
28
98
|
<p>
|
|
29
99
|
Whether you're a dev, a cybersecurity enthusiast, or simply serious about protecting your accounts, <strong>Ente Auth</strong> offers a next-level authentication experience — <strong>backed by encryption, not ads.</strong>
|
|
@@ -434,3 +504,5 @@ export const fossData = [
|
|
|
434
504
|
notes: [],
|
|
435
505
|
},
|
|
436
506
|
];
|
|
507
|
+
|
|
508
|
+
// cspell:ignore hboard gboard lsheet eauth tosdr
|
package/src/lib/images.js
CHANGED
|
@@ -15,7 +15,7 @@ This file is part of Network Pro.
|
|
|
15
15
|
* @description Provides convenient access to images in the src/lib/img directory
|
|
16
16
|
* @module src/lib
|
|
17
17
|
* @author SunDevil311
|
|
18
|
-
* @updated 2025-05-
|
|
18
|
+
* @updated 2025-05-30
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
// Import favicon images
|
|
@@ -41,6 +41,8 @@ import acodePng from "$lib/img/posts/acode.png";
|
|
|
41
41
|
import acodeWbp from "$lib/img/posts/acode.webp";
|
|
42
42
|
import eauthPng from "$lib/img/posts/eauth.png";
|
|
43
43
|
import eauthWbp from "$lib/img/posts/eauth.webp";
|
|
44
|
+
import hboardPng from "$lib/img/posts/hboard.png";
|
|
45
|
+
import hboardWbp from "$lib/img/posts/hboard.webp";
|
|
44
46
|
import lsheetPng from "$lib/img/posts/linksheet.png";
|
|
45
47
|
import lsheetWbp from "$lib/img/posts/linksheet.webp";
|
|
46
48
|
import pmxPng from "$lib/img/posts/pmx.png";
|
|
@@ -67,6 +69,8 @@ export {
|
|
|
67
69
|
eauthWbp,
|
|
68
70
|
faviconSvg,
|
|
69
71
|
gplBadge,
|
|
72
|
+
hboardPng,
|
|
73
|
+
hboardWbp,
|
|
70
74
|
logoPng,
|
|
71
75
|
logoWbp,
|
|
72
76
|
lsheetPng,
|
|
@@ -84,4 +88,4 @@ export {
|
|
|
84
88
|
vcfSrc
|
|
85
89
|
};
|
|
86
90
|
|
|
87
|
-
// cspell:ignore eauth
|
|
91
|
+
// cspell:ignore eauth hboard
|
|
Binary file
|
|
Binary file
|
|
@@ -76,26 +76,30 @@ This file is part of Network Pro.
|
|
|
76
76
|
label: "support@neteng.pro",
|
|
77
77
|
qrSrc: pgpSupport,
|
|
78
78
|
keySearch: "https://keys.openpgp.org/search?q=support%40neteng.pro",
|
|
79
|
-
fingerprint: ["
|
|
79
|
+
fingerprint: ["6590B992E2E3EFF12738", "7BCE2AF093E9DEC61BA0"],
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
label: "contact@s.neteng.pro",
|
|
83
83
|
qrSrc: pgpContact,
|
|
84
84
|
keySearch: "https://keys.openpgp.org/search?q=contact%40s.neteng.pro",
|
|
85
|
-
fingerprint: ["
|
|
85
|
+
fingerprint: ["DF118BAA6C2D9DCDEBDC", "2DDCF99373499495F957"],
|
|
86
86
|
},
|
|
87
87
|
];
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
|
-
*
|
|
91
|
-
* @
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* }
|
|
90
|
+
* @typedef {Object} ContactAssets
|
|
91
|
+
* @property {string} vcf - Path to the contact vCard (.vcf file)
|
|
92
|
+
* @property {string} qrSrc - Path to QR image for contact info
|
|
93
|
+
* @property {string} supportAsc - Support PGP public key file (.asc)
|
|
94
|
+
* @property {string} contactAsc - Contact PGP public key file (.asc)
|
|
95
95
|
*/
|
|
96
|
-
|
|
96
|
+
|
|
97
|
+
/** @type {ContactAssets} */
|
|
98
|
+
const contactAssets = {
|
|
99
|
+
vcf: "/assets/bin/contact.vcf",
|
|
97
100
|
qrSrc: vcfSrc,
|
|
98
|
-
|
|
101
|
+
supportAsc: "/assets/bin/support@neteng.pro.asc",
|
|
102
|
+
contactAsc: "/assets/bin/contact@s.neteng.pro.asc",
|
|
99
103
|
};
|
|
100
104
|
</script>
|
|
101
105
|
|
|
@@ -192,7 +196,7 @@ This file is part of Network Pro.
|
|
|
192
196
|
<div class="spacer"></div>
|
|
193
197
|
|
|
194
198
|
<p>
|
|
195
|
-
<a
|
|
199
|
+
<a href="https://netwk.pro/contact" target="_self">Let's connect</a>
|
|
196
200
|
to discuss how we can help secure and strengthen your business today.
|
|
197
201
|
</p>
|
|
198
202
|
|
|
@@ -222,17 +226,25 @@ This file is part of Network Pro.
|
|
|
222
226
|
alt={`PGP Key - ${pgpKeys[0].label}`} />
|
|
223
227
|
</td>
|
|
224
228
|
<td class="pgp-col2">
|
|
225
|
-
<a
|
|
226
|
-
{rel}
|
|
227
|
-
href={pgpKeys[0].keySearch}
|
|
228
|
-
download
|
|
229
|
-
type="application/pgp-keys"
|
|
230
|
-
target={tgtBlank}>
|
|
229
|
+
<a {rel} href={pgpKeys[0].keySearch} target={tgtBlank}>
|
|
231
230
|
<strong>{pgpKeys[0].label}</strong>
|
|
232
231
|
</a>
|
|
233
|
-
<p
|
|
234
|
-
|
|
235
|
-
|
|
232
|
+
<p
|
|
233
|
+
><strong
|
|
234
|
+
><a
|
|
235
|
+
href={contactAssets.supportAsc}
|
|
236
|
+
type="application/pgp-keys"
|
|
237
|
+
download
|
|
238
|
+
target={tgtBlank}
|
|
239
|
+
>asc
|
|
240
|
+
<span class="fas fa-file-arrow-down"></span></a
|
|
241
|
+
></strong>
|
|
242
|
+
</p>
|
|
243
|
+
<p
|
|
244
|
+
>Fingerprint:<br />
|
|
245
|
+
<span class="fingerprint">
|
|
246
|
+
{pgpKeys[0].fingerprint.join("\n")}
|
|
247
|
+
</span>
|
|
236
248
|
</p>
|
|
237
249
|
</td>
|
|
238
250
|
</tr>
|
|
@@ -240,17 +252,24 @@ This file is part of Network Pro.
|
|
|
240
252
|
<!-- Row 1 (Second row) has its columns swapped -->
|
|
241
253
|
<tr>
|
|
242
254
|
<td class="pgp-col1">
|
|
243
|
-
<a
|
|
244
|
-
{rel}
|
|
245
|
-
href={pgpKeys[1].keySearch}
|
|
246
|
-
download
|
|
247
|
-
type="application/pgp-keys"
|
|
248
|
-
target={tgtBlank}>
|
|
255
|
+
<a {rel} href={pgpKeys[1].keySearch} target={tgtBlank}>
|
|
249
256
|
<strong>{pgpKeys[1].label}</strong>
|
|
250
257
|
</a>
|
|
251
|
-
<p>
|
|
252
|
-
|
|
253
|
-
|
|
258
|
+
<p>
|
|
259
|
+
<strong
|
|
260
|
+
><a
|
|
261
|
+
href={contactAssets.contactAsc}
|
|
262
|
+
type="application/pgp-keys"
|
|
263
|
+
download
|
|
264
|
+
target={tgtBlank}
|
|
265
|
+
>asc <span class="fas fa-file-arrow-down"></span></a
|
|
266
|
+
></strong>
|
|
267
|
+
</p>
|
|
268
|
+
<p
|
|
269
|
+
>Fingerprint:<br />
|
|
270
|
+
<span class="fingerprint">
|
|
271
|
+
{pgpKeys[1].fingerprint.join("\n")}
|
|
272
|
+
</span>
|
|
254
273
|
</p>
|
|
255
274
|
</td>
|
|
256
275
|
<td class="pgp-col2">
|
|
@@ -269,7 +288,7 @@ This file is part of Network Pro.
|
|
|
269
288
|
<img
|
|
270
289
|
{decoding}
|
|
271
290
|
{loading}
|
|
272
|
-
src={
|
|
291
|
+
src={contactAssets.qrSrc}
|
|
273
292
|
class="pgp-image"
|
|
274
293
|
alt="vCard" />
|
|
275
294
|
</td>
|
|
@@ -277,10 +296,9 @@ This file is part of Network Pro.
|
|
|
277
296
|
<strong>vCard</strong>
|
|
278
297
|
<p>
|
|
279
298
|
<a
|
|
280
|
-
{
|
|
281
|
-
href={vCard.vcf}
|
|
282
|
-
download
|
|
299
|
+
href={contactAssets.vcf}
|
|
283
300
|
type="text/vcard"
|
|
301
|
+
download
|
|
284
302
|
target={tgtBlank}>
|
|
285
303
|
<strong>vcf</strong>
|
|
286
304
|
</a>
|
|
@@ -220,30 +220,28 @@ This file is part of Network Pro.
|
|
|
220
220
|
<p class={constants.classSmall}>
|
|
221
221
|
Formats:
|
|
222
222
|
<a
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
target={constants.
|
|
223
|
+
href="/assets/license/CC-BY-4.0.html"
|
|
224
|
+
download
|
|
225
|
+
target={constants.targetBlank}>HTML</a>
|
|
226
226
|
|
|
|
227
227
|
<a
|
|
228
|
-
|
|
229
|
-
|
|
228
|
+
href="/assets/license/CC-BY-4.0.md"
|
|
229
|
+
download
|
|
230
230
|
target={constants.targetBlank}>Markdown</a>
|
|
231
231
|
|
|
|
232
232
|
<a
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
href="/assets/license/CC-BY-4.0.txt"
|
|
234
|
+
download
|
|
235
235
|
target={constants.targetBlank}>Text</a>
|
|
236
236
|
|
|
|
237
237
|
<a
|
|
238
|
-
|
|
238
|
+
href="/assets/license/CC-BY-4.0-rdfa.xml"
|
|
239
239
|
download
|
|
240
|
-
href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/CC-BY-4.0-rdfa.xml"
|
|
241
240
|
target={constants.targetBlank}>RDFa</a>
|
|
242
241
|
|
|
|
243
242
|
<a
|
|
244
|
-
|
|
243
|
+
href="/assets/license/CC-BY-4.0.xml"
|
|
245
244
|
download
|
|
246
|
-
href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/CC-BY-4.0.xml"
|
|
247
245
|
target={constants.targetBlank}>XMP</a>
|
|
248
246
|
</p>
|
|
249
247
|
|
|
@@ -325,30 +323,28 @@ This file is part of Network Pro.
|
|
|
325
323
|
<p class={constants.classSmall}>
|
|
326
324
|
Formats:
|
|
327
325
|
<a
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
target={constants.
|
|
326
|
+
href="/assets/license/COPYING.html"
|
|
327
|
+
download
|
|
328
|
+
target={constants.targetBlank}>HTML</a>
|
|
331
329
|
|
|
|
332
330
|
<a
|
|
333
|
-
|
|
334
|
-
|
|
331
|
+
href="/assets/license/COPYING.md"
|
|
332
|
+
download
|
|
335
333
|
target={constants.targetBlank}>Markdown</a>
|
|
336
334
|
|
|
|
337
335
|
<a
|
|
338
|
-
|
|
339
|
-
|
|
336
|
+
href="/assets/license/COPYING.txt"
|
|
337
|
+
download
|
|
340
338
|
target={constants.targetBlank}>Text</a>
|
|
341
339
|
|
|
|
342
340
|
<a
|
|
343
|
-
|
|
341
|
+
href="/assets/license/COPYING-rdfa.xml"
|
|
344
342
|
download
|
|
345
|
-
href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/COPYING-rdfa.xml"
|
|
346
343
|
target={constants.targetBlank}>RDFa</a>
|
|
347
344
|
|
|
|
348
345
|
<a
|
|
349
|
-
|
|
346
|
+
href="/assets/license/COPYING.odt"
|
|
350
347
|
download
|
|
351
|
-
href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/COPYING.odt"
|
|
352
348
|
target={constants.targetBlank}>ODT</a>
|
|
353
349
|
</p>
|
|
354
350
|
|
|
@@ -114,10 +114,7 @@ This file is part of Network Pro.
|
|
|
114
114
|
|
|
|
115
115
|
<a href={tandcLink} target={constants.targetSelf}>Docs</a>
|
|
116
116
|
|
|
|
117
|
-
<a
|
|
118
|
-
rel={constants.rel}
|
|
119
|
-
href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/consulting-terms.pdf"
|
|
120
|
-
target={constants.targetBlank}>
|
|
117
|
+
<a href="/assets/consulting-terms.pdf" target={constants.targetBlank}>
|
|
121
118
|
PDF <span class="fas fa-file-arrow-down"></span>
|
|
122
119
|
</a>
|
|
123
120
|
</sup>
|
|
@@ -463,8 +463,8 @@ footer .container {
|
|
|
463
463
|
}
|
|
464
464
|
|
|
465
465
|
.pgp-image {
|
|
466
|
-
width:
|
|
467
|
-
height:
|
|
466
|
+
width: 150px;
|
|
467
|
+
height: 150px;
|
|
468
468
|
}
|
|
469
469
|
|
|
470
470
|
.spacer {
|
|
@@ -474,3 +474,26 @@ footer .container {
|
|
|
474
474
|
.separator {
|
|
475
475
|
margin: 0 0.5rem;
|
|
476
476
|
}
|
|
477
|
+
|
|
478
|
+
.emoji {
|
|
479
|
+
margin-right: 8px;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
.headline {
|
|
483
|
+
display: block; /* Ensure it is on its own line */
|
|
484
|
+
font-weight: bold; /* Keep the first item bold */
|
|
485
|
+
font-style: italic; /* Only make the first item italic */
|
|
486
|
+
margin-bottom: 4px; /* Add space between headline and the rest */
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
.label {
|
|
490
|
+
font-weight: bold; /* Keep the label bold */
|
|
491
|
+
font-family: inherit; /* Ensure it uses the same font-family as normal text */
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.description {
|
|
495
|
+
display: inline; /* Keep description inline */
|
|
496
|
+
font-weight: normal; /* Ensure the description is normal (not bold) */
|
|
497
|
+
font-family: inherit; /* Ensure it uses the same font-family as normal text */
|
|
498
|
+
font-style: normal; /* Remove italic for the description */
|
|
499
|
+
}
|
|
@@ -3,4 +3,4 @@ Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
|
3
3
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
4
4
|
This file is part of Network Pro.
|
|
5
5
|
========================================================================== */
|
|
6
|
-
html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:focus{color:#191919;background-color:#ffc627}a:visited,a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.visited{color:#7f6227}.center-nav{text-align:center;padding:5px;font-size:.875rem;line-height:1.125rem}.block{resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-size:.75rem;line-height:1.125rem}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:
|
|
6
|
+
html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:focus{color:#191919;background-color:#ffc627}a:visited,a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.visited{color:#7f6227}.center-nav{text-align:center;padding:5px;font-size:.875rem;line-height:1.125rem}.block{resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-size:.75rem;line-height:1.125rem}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:150px;height:150px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}.emoji{margin-right:8px}.headline{margin-bottom:4px;font-style:italic;font-weight:700;display:block}.label{font-family:inherit;font-weight:700}.description{font-family:inherit;font-style:normal;font-weight:400;display:inline}
|