yes-https 3.0.1 → 4.0.3
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/.github/workflows/ci.yaml +56 -22
- package/.github/workflows/codeql.yml +41 -0
- package/.github/workflows/release.yaml +51 -0
- package/.release-please-manifest.json +3 -0
- package/AGENTS.md +36 -0
- package/CHANGELOG.md +49 -0
- package/README.md +11 -4
- package/SECURITY.md +39 -0
- package/biome.json +30 -0
- package/docs/assets/yes-https.png +0 -0
- package/example/app.js +4 -4
- package/example/package-lock.json +283 -267
- package/example/package.json +1 -1
- package/lib/index.js +33 -30
- package/package.json +11 -14
- package/release-please-config.json +10 -0
- package/renovate.json +12 -4
- package/test/certs/ca.crt +19 -12
- package/test/certs/ca.key +28 -18
- package/test/certs/server.crt +17 -12
- package/test/certs/server.csr +14 -9
- package/test/certs/server.key +28 -15
- package/test/test.js +233 -80
- package/.releaserc.json +0 -3
package/example/package.json
CHANGED
package/lib/index.js
CHANGED
|
@@ -2,40 +2,43 @@ import process from 'node:process';
|
|
|
2
2
|
|
|
3
3
|
// eslint-disable-next-line import/no-anonymous-default-export
|
|
4
4
|
export default function (options) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
options ||= {};
|
|
6
|
+
const maxAge = options.maxAge || 86_400;
|
|
7
|
+
const includeSubDomains =
|
|
8
|
+
options.includeSubDomains ?? options.includeSubdomains ?? true;
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
return (request, response, next) => {
|
|
11
|
+
let ignoreRequest = process.env.NODE_ENV !== 'production';
|
|
12
|
+
const secure =
|
|
13
|
+
request.connection.encrypted ||
|
|
14
|
+
request.get('X-Forwarded-Proto') === 'https';
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
if (options.ignoreFilter) {
|
|
17
|
+
ignoreRequest ||= options.ignoreFilter(request);
|
|
18
|
+
}
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
if (ignoreRequest) {
|
|
21
|
+
next();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
if (secure) {
|
|
26
|
+
let header = `max-age=${maxAge}`;
|
|
27
|
+
if (includeSubDomains) {
|
|
28
|
+
header += '; includeSubDomains';
|
|
29
|
+
}
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
if (options.preload) {
|
|
32
|
+
header += '; preload';
|
|
33
|
+
}
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
response.setHeader('Strict-Transport-Security', header);
|
|
36
|
+
next();
|
|
37
|
+
} else {
|
|
38
|
+
response.writeHead(301, {
|
|
39
|
+
Location: `https://${request.get('host')}${request.url}`,
|
|
40
|
+
});
|
|
41
|
+
response.end();
|
|
42
|
+
}
|
|
43
|
+
};
|
|
41
44
|
}
|
package/package.json
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yes-https",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.3",
|
|
4
4
|
"description": "A simple utility to force https for connect based node.js apps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": "./lib/index.js",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"test": "NODE_ENV=production
|
|
9
|
-
"lint": "
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
"repository": {
|
|
14
|
-
"type": "git",
|
|
15
|
-
"url": "git+https://github.com/JustinBeckwith/yes-https.git"
|
|
8
|
+
"test": "NODE_ENV=production node --test",
|
|
9
|
+
"lint": "biome check .",
|
|
10
|
+
"renovate-config": "renovate-config-validator --strict",
|
|
11
|
+
"fix": "biome check --write .",
|
|
12
|
+
"coverage": "NODE_ENV=production node --test --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout --test-reporter=lcov --test-reporter-destination=lcov.info"
|
|
16
13
|
},
|
|
14
|
+
"repository": "JustinBeckwith/yes-https",
|
|
17
15
|
"keywords": [
|
|
18
16
|
"hsts",
|
|
19
17
|
"https"
|
|
@@ -25,11 +23,10 @@
|
|
|
25
23
|
},
|
|
26
24
|
"homepage": "https://github.com/JustinBeckwith/yes-https#readme",
|
|
27
25
|
"devDependencies": {
|
|
28
|
-
"
|
|
29
|
-
"express": "^
|
|
30
|
-
"
|
|
31
|
-
"supertest": "^
|
|
32
|
-
"xo": "^0.58.0"
|
|
26
|
+
"@biomejs/biome": "^2.2.6",
|
|
27
|
+
"express": "^5.0.0",
|
|
28
|
+
"renovate": "^43.110.16",
|
|
29
|
+
"supertest": "^7.0.0"
|
|
33
30
|
},
|
|
34
31
|
"engines": {
|
|
35
32
|
"node": ">=18"
|
package/renovate.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
2
3
|
"extends": [
|
|
3
|
-
"config:
|
|
4
|
-
":
|
|
4
|
+
"config:recommended",
|
|
5
|
+
":enableVulnerabilityAlerts",
|
|
6
|
+
":configMigration",
|
|
7
|
+
":rebaseStalePrs"
|
|
5
8
|
],
|
|
6
|
-
"
|
|
7
|
-
"
|
|
9
|
+
"dependencyDashboard": false,
|
|
10
|
+
"packageRules": [
|
|
11
|
+
{
|
|
12
|
+
"matchUpdateTypes": ["minor", "patch"],
|
|
13
|
+
"enabled": false
|
|
14
|
+
}
|
|
15
|
+
]
|
|
8
16
|
}
|
package/test/certs/ca.crt
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
MIIDfTCCAmWgAwIBAgIUYkwcQmvBpwKpUXecLY1R2KOZo34wDQYJKoZIhvcNAQEL
|
|
3
|
+
BQAwTjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMREwDwYDVQQHDAhCZWxsZXZ1
|
|
4
|
+
ZTEPMA0GA1UECgwGR29vZ2xlMQ4wDAYDVQQLDAVDbG91ZDAeFw0yNTEwMTQxNjMy
|
|
5
|
+
NTlaFw0zNTEwMTIxNjMyNTlaME4xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTER
|
|
6
|
+
MA8GA1UEBwwIQmVsbGV2dWUxDzANBgNVBAoMBkdvb2dsZTEOMAwGA1UECwwFQ2xv
|
|
7
|
+
dWQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCKRX6tIsp52+JoDb/N
|
|
8
|
+
uH3NR0c2jiSVnGVPWrtAUtg3TiuFnga0DDtl7/FwagXaqPb45pqQySx6cRzV5TnZ
|
|
9
|
+
/aCp75/hNgnQSJBUzftw3wx7P6yIPosBoBP5pKpWbCJei5XqcEjIzcM+2n7RbU7B
|
|
10
|
+
HILa54DAJs8nO3YJNAYC5JPXMBpmnWmGpQd8go+5gnYah8yhFsqq4QXbziRL351y
|
|
11
|
+
TOmJFr25mcDoxW9m6Wk3CPTSe+gqkGDCY7tTroWFk2Y/5ETO7cn3Hqev39qtgflb
|
|
12
|
+
C7Liyx2garCHUsw7waOehV8kfSUI2MV+nvKEd0TYrw38uqOoUDnZep/TAYbffVgq
|
|
13
|
+
++XLAgMBAAGjUzBRMB0GA1UdDgQWBBS0ihqFxafQY+gZm9cXht33zhVqEzAfBgNV
|
|
14
|
+
HSMEGDAWgBS0ihqFxafQY+gZm9cXht33zhVqEzAPBgNVHRMBAf8EBTADAQH/MA0G
|
|
15
|
+
CSqGSIb3DQEBCwUAA4IBAQBGv3FtVgSzhlK1JQDD6hVfo1C7xqUXD62b9mxl+tG9
|
|
16
|
+
hSAfzco+aLkv0SLs3f6nu5gImn8MW3ZKVoYlDpypXQBIQEDqT0UfBRJFKGqq7PdK
|
|
17
|
+
Q2iD47TnwvBajTJIl7U9G+5/xP5wAcy+3ZldtQ+n3TR/oJmyn04l3OANbWVMW80H
|
|
18
|
+
U9aEvCzBO6CYjei0XH+HQL6ew/fp+0d/sTOD/ELUYTUVz8WsAcuKC0kiFbouGOnH
|
|
19
|
+
qIjqvFp30dlrBEga4hwidvmaVUYSWfI59JZ7A46TFFioiy18IgWn4fy9i6khsuLW
|
|
20
|
+
8ltAmCaMZWHhajNP2TRAImABmMs8773uH0I0ozC0lK1r
|
|
14
21
|
-----END CERTIFICATE-----
|
package/test/certs/ca.key
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
|
-
-----BEGIN
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCKRX6tIsp52+Jo
|
|
3
|
+
Db/NuH3NR0c2jiSVnGVPWrtAUtg3TiuFnga0DDtl7/FwagXaqPb45pqQySx6cRzV
|
|
4
|
+
5TnZ/aCp75/hNgnQSJBUzftw3wx7P6yIPosBoBP5pKpWbCJei5XqcEjIzcM+2n7R
|
|
5
|
+
bU7BHILa54DAJs8nO3YJNAYC5JPXMBpmnWmGpQd8go+5gnYah8yhFsqq4QXbziRL
|
|
6
|
+
351yTOmJFr25mcDoxW9m6Wk3CPTSe+gqkGDCY7tTroWFk2Y/5ETO7cn3Hqev39qt
|
|
7
|
+
gflbC7Liyx2garCHUsw7waOehV8kfSUI2MV+nvKEd0TYrw38uqOoUDnZep/TAYbf
|
|
8
|
+
fVgq++XLAgMBAAECggEAD4tLd9xC5dsdwzPUfaSBY/vg2hW1sCoCS574EP2fN+xu
|
|
9
|
+
QRmoSEJdxRJp0ojgupmnFgkalC9BdExWAQfBbquwDZqWHyPLi6I0s4vqeeBhT1Oz
|
|
10
|
+
qidZyid8R2LHEWsbnARWKKJR1F0pV14JxrJimZwCa+h9lVxnilIJbXRvPpECu7yO
|
|
11
|
+
1d1DEt3OxhZGrN0PXrayu5jDU8IzXfP8VXyZb86IeZcxLrCiNnGLUEm2FVi6uPd8
|
|
12
|
+
AwyZ6+UFEpAmfyLasOdT2IWw3E7gdY4Lw5Jx6k9fAvAt2eUSx5SNQkXfx/14pCaj
|
|
13
|
+
vZeeb31hJAcGzWhdJ8TlzS5ZzQcVOWlNhunWVPHrJQKBgQC9NgUotKpob2X/dEI9
|
|
14
|
+
4xrxx3ExOO0+KJzANZNe9R1lqzghjCD7zmSjkKM9g4vMU+h4R00Zyo32VzwrYCHd
|
|
15
|
+
Yn7CIwkgHmkIcG151g/APmdT5dyilbR/Tcy/GWaxKwKYkM7cg/4GpLn5JfN7TV8b
|
|
16
|
+
f1FalWX2BHroKZnpOmd7n7i7DwKBgQC7FFeFdXf7/Hu6HmDAkoeufDHFsedNLQ51
|
|
17
|
+
xj4ayh3wy3uE2VZ6Uwq37sUfw3HCOgMzwaz6rkb6HJj0Rl8kWX7Zj+K9M2QzOJ5o
|
|
18
|
+
xvgAEMQVhY0KF++E4//Po0ND1XjIA7+Fi1tp1p4ECjHk4Amd4DaNVP+9Rxhp95o1
|
|
19
|
+
udEbC13ZhQKBgCCkMxukn0lI/oWlXtAiX8GaMJLXSUZR50jZdUUKcDnb4eEXtZD7
|
|
20
|
+
OC1nhGHWUcW8K/ykAE8UvIzk28J34R+6IDgJp0ddN613B8ve+/SkT1sP6pI51Vuo
|
|
21
|
+
5kuJbEfgLaB4SteMBcTLojGzNF/vJxstSbGg2GgqubFXi+/KXZPcKBhNAoGBAJ+Z
|
|
22
|
+
+BzknYs92LRtDC/eEqEaVUAKyYD+6nIxwXQLcMWoY2VwIaXUSLWon0W88MU5xteV
|
|
23
|
+
6KQooGbqlNb5XlvdeinT5iVxvY8xQ3uyG4u6wf52ZF/zEaV2+hvDdjRd32AMSo18
|
|
24
|
+
2W0O6toZdH2FYM7upLuog1GQYNSup0Ikl6+R3+wdAoGBAK8psHbNWir53j+Kji9J
|
|
25
|
+
cWUstBcwsnAVTVSUuZ0wxtghqUiyjyl7dN5lmpnT8XeqAKYWRVOR9DGTd/fehI50
|
|
26
|
+
QCjQLRGHJXshGpaB63cGyteqdflvS9kOh+ejGJGxfPGMA9EdoaljiS/JLVtqsDHZ
|
|
27
|
+
wf8Lt+YP9Yhc6UUspjERXsUC
|
|
28
|
+
-----END PRIVATE KEY-----
|
package/test/certs/server.crt
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
MIIDJTCCAg2gAwIBAgIUCHJi6SkNut17iBSU+6zwrzsTwHwwDQYJKoZIhvcNAQEL
|
|
3
|
+
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI2MDQxMjAwNTkyNFoXDTM2MDQw
|
|
4
|
+
OTAwNTkyNFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
|
|
5
|
+
AAOCAQ8AMIIBCgKCAQEAy4X8/+UjtlhXxHzHr34HWQmSNeHR9FL7RUvsDxlZZ6VL
|
|
6
|
+
TMC1hCXUO0iKmBigtgQ54jJ9753T5yMmDGk4mTU33acoYm3d/EHhxMv4Pu2o0R0Q
|
|
7
|
+
yhU6HStxcCACBOI7Kehuy0ZDFf2YiIsZHMTLZvfBKuZP9LtPmaDrOSV+cXaEsvnc
|
|
8
|
+
CCaB855HprGFE3fukslCQ8sPM8xudRF0raj5hL1/aAMbKaGtaBEc1tj2k3GlArBw
|
|
9
|
+
Uu89qZeC77MSmlDxoFWpcEbMZ7lPzYAoC6vMIHHBCuHXvJUudIPIdZseYE57aW+5
|
|
10
|
+
jyBQ/6kRZSpOSyvhIOovFmjNnSSio+/IsXQX3UrLDQIDAQABo28wbTAdBgNVHQ4E
|
|
11
|
+
FgQUGh54PJnDeLmHtM5N27Pl+pvtIg0wHwYDVR0jBBgwFoAUGh54PJnDeLmHtM5N
|
|
12
|
+
27Pl+pvtIg0wDwYDVR0TAQH/BAUwAwEB/zAaBgNVHREEEzARgglsb2NhbGhvc3SH
|
|
13
|
+
BH8AAAEwDQYJKoZIhvcNAQELBQADggEBACoXlufc6bCHtuGEfKw9+x9b4ZiZrNX+
|
|
14
|
+
rIDS4+tzq0SkbRF9naNepUfNU3Z0cx+kTDvTmH8bjBRxm2YORLUOot/mtrsI6hrK
|
|
15
|
+
poCcSrJA15STe2ftvNVlft9v4xPswzusWrsxTZ2oS5C1ys1UbOjFTb2qCkeYEjBw
|
|
16
|
+
4dfl/0lat9x9XRbfYBCWCdFo5izRhGXbgtBAl25fkEyKG7bz8q6zWFKm0xw8978U
|
|
17
|
+
kCKz2laAcuETBm1jCuVEd3OHAlv2/7vDKH2PpOvKwtWe2kBhILnjuDsa5LyzNJDR
|
|
18
|
+
ECVpOnoxrGGd8c2ezkbfH5r55aFRjFWNivt6cdbXpAgU+iqE8fISlmA=
|
|
14
19
|
-----END CERTIFICATE-----
|
package/test/certs/server.csr
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
-----BEGIN CERTIFICATE REQUEST-----
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
MIICkzCCAXsCAQAwTjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMREwDwYDVQQH
|
|
3
|
+
DAhCZWxsZXZ1ZTEPMA0GA1UECgwGR29vZ2xlMQ4wDAYDVQQLDAVDbG91ZDCCASIw
|
|
4
|
+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKmaMmoRFHvPHD8lyf4mQXF4UP7y
|
|
5
|
+
+sqCNYNhSsgNR4Vy2/W2tgLKLPtPd98Xw9q+KvfbYpXbaFp/87SvgA7dkkjehBzC
|
|
6
|
+
K0H+j0HO/AorhRxCUeE5NqxHEwXiATtXI0sm/i1YzpII5fnyQIukUSrofLI/hQ13
|
|
7
|
+
PFBfX5lyyWNXD5xilsLQ+MOQiFzR+wYVw10S07fUqkFVh5Kkgw2ZIhbI3tERJbo2
|
|
8
|
+
RW+5XUPB/Dw/ifqWXI1pUr9somxfxd4wURneruFtOw5UKgK6ISB1HcdixIvHXpop
|
|
9
|
+
pF8VnNehCDs6zJy3dUClFTJ2t9yoRuHRv7ErEH6xbnqELjZmXT9DnZA8MRkCAwEA
|
|
10
|
+
AaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAWF6Xa2G/qXVNoEX9lfC1dmOaCIHPkY7JS
|
|
11
|
+
gfVtAVUYaPyAF1Y8hN97hVKR6Vv4KjdjitTzVMtTzcC0ScH7rkAsjY03wLXWNdmq
|
|
12
|
+
QElLxxISumjP5sysoyog7yiXQzokCtMiqUE9VEZUOGp/FrHxn880zNYK7qLN1+sn
|
|
13
|
+
W39igT0ES2TjPKkHTjg6RXZY09Kba8jHpnvh45rJv9MXVWmfH8Wp8TEByEWtdy5V
|
|
14
|
+
JxpKIsXw1IFSb18SL5F8XFdNmQnEXOQ5ULM7GnlRv91+tNNGNB7hNZlfz3knH4/U
|
|
15
|
+
PzsG/1MPLGJ/+ps6u2ZfGmbYpeOfT5VoeK6I19AQRAVN6aefgE+P
|
|
11
16
|
-----END CERTIFICATE REQUEST-----
|
package/test/certs/server.key
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
|
-
-----BEGIN
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDLhfz/5SO2WFfE
|
|
3
|
+
fMevfgdZCZI14dH0UvtFS+wPGVlnpUtMwLWEJdQ7SIqYGKC2BDniMn3vndPnIyYM
|
|
4
|
+
aTiZNTfdpyhibd38QeHEy/g+7ajRHRDKFTodK3FwIAIE4jsp6G7LRkMV/ZiIixkc
|
|
5
|
+
xMtm98Eq5k/0u0+ZoOs5JX5xdoSy+dwIJoHznkemsYUTd+6SyUJDyw8zzG51EXSt
|
|
6
|
+
qPmEvX9oAxspoa1oERzW2PaTcaUCsHBS7z2pl4LvsxKaUPGgValwRsxnuU/NgCgL
|
|
7
|
+
q8wgccEK4de8lS50g8h1mx5gTntpb7mPIFD/qRFlKk5LK+Eg6i8WaM2dJKKj78ix
|
|
8
|
+
dBfdSssNAgMBAAECggEAH1y3Xut9dFTquXGNB+MA2NybtkflJaQ/6i7H4o/CcjFL
|
|
9
|
+
iDlN/14g9T25dbSd106RaOTk+S61/7Ev5Mu2GA3WXQasN3a8tWmlk8DmsTPIRukW
|
|
10
|
+
tD1PJj2SjnewN/ZwrYWOxS4/mjzo62mb5g4BVg2pq6Wv/oN6wa7FcJnxgSSFUFrg
|
|
11
|
+
DpUhecBXTSLHMisls2Oyn90g2NcKbvuxjPxet1F9+Swa0wU1kjr9u9ecElTkO4yg
|
|
12
|
+
Qjy34rQmEX0h7T5F2OPiPpoYS/78dVP7c5vCKDWp7QT7Z4P7DgIyXRXtLEsrfQpp
|
|
13
|
+
EAWU75B2ypwfqPY1zAw2ijfR5Z5Fl3DV8ZjLD5j2QQKBgQDlvsXTYlVklzYBkZIz
|
|
14
|
+
ZFBuP0Op7QjrRLJ0OfZTTRUUlccfpk1JvNIP9PCcteilBMpYIayUN7UzVpp8Qybn
|
|
15
|
+
vmrgGD3nBpE4E0v6iuM6l9rq/TmqUqUOt6nqmOWwUw/e9FBOLZ7jhGYQ4MkYANTG
|
|
16
|
+
MkOZ+i0l6MnGurvcCPEM2iaR0QKBgQDiyBfAUJk9+bSkXHK50w2gcYk6Yvrkp8mH
|
|
17
|
+
v3fY2OxYZqamvhz8lqyIpAWbJAGlqXb4Gp/RB4TA3eNk+fNiPsCNNCHEGAr0gnM5
|
|
18
|
+
9baaGjLbKBKu71CdA1CkkO7dQJ5PMDOExQjx2bo8It02dzYbW0vk32/Yin/WhNXL
|
|
19
|
+
L8F2BqoYfQKBgQC+XCnSEmIq7NeEyTdYeb/i+Wx5ObvwJIWwo+4j63SSD+BjqwnT
|
|
20
|
+
FS8ApbVQQ7G2OZfnGk/Cp73uAc4TNBjiX/ZyI+P2roxY6DRGLhpFDFoJ5zOGmt/E
|
|
21
|
+
qA2UIof+Z3R5CfoYLNjAL43aYkZ9KwMiDbfRt2b9SDsX/NV3ZblFKuRWYQKBgGlU
|
|
22
|
+
dCufg71USEF6qtKCIzcc5JbYuB0RjTnehSSThBp++vJBJKdwuAvy2qO28ojmD9qm
|
|
23
|
+
SwpECrWlmWMh8Jf1+2raBsDURepQ2IHYDQrAFlTR5POZNYDntEHrCvZ6d8zh31vQ
|
|
24
|
+
RBpIfQZHTyVn8xp7qeFQodsaYMvbAI2RzbIq4D/lAoGAcAGtnnCta3vsqInMICOP
|
|
25
|
+
cgElgTgrBvcCYOQAwMZimhwl6gJjmm0PXEAplHK0BIeO4Xu18ZjvIN/pJynToo9W
|
|
26
|
+
bvpgh3W9P9LkVdkaHEr9zlSvhAGE80NNjUeO3Ur7GonkclwNXwpbET/Qiv594Osn
|
|
27
|
+
gm6J9stVFd5jicl3SyYh5iw=
|
|
28
|
+
-----END PRIVATE KEY-----
|