@hpcc-js/comms 2.66.0 → 2.68.0
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/dist/index.es6.js +197 -199
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +85 -101
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.node.js +173 -216
- package/dist/index.node.js.map +1 -1
- package/dist/index.node.min.js +1 -1
- package/dist/index.node.min.js.map +1 -1
- package/lib-es6/__package__.js +2 -2
- package/lib-es6/clienttools/eclMeta.js +4 -4
- package/lib-es6/clienttools/eclMeta.js.map +1 -1
- package/lib-es6/clienttools/eclcc.js +18 -18
- package/lib-es6/clienttools/eclcc.js.map +1 -1
- package/lib-es6/connection.js +6 -6
- package/lib-es6/connection.js.map +1 -1
- package/lib-es6/ecl/graph.js +5 -5
- package/lib-es6/ecl/graph.js.map +1 -1
- package/lib-es6/ecl/logicalFile.js +2 -2
- package/lib-es6/ecl/logicalFile.js.map +1 -1
- package/lib-es6/ecl/result.js +1 -1
- package/lib-es6/ecl/result.js.map +1 -1
- package/lib-es6/ecl/scope.js +5 -5
- package/lib-es6/ecl/scope.js.map +1 -1
- package/lib-es6/ecl/store.js +4 -4
- package/lib-es6/ecl/store.js.map +1 -1
- package/lib-es6/ecl/targetCluster.js +2 -2
- package/lib-es6/ecl/targetCluster.js.map +1 -1
- package/lib-es6/ecl/topology.js +1 -1
- package/lib-es6/ecl/topology.js.map +1 -1
- package/lib-es6/ecl/workunit.js +4 -4
- package/lib-es6/ecl/workunit.js.map +1 -1
- package/lib-es6/espConnection.js +1 -1
- package/lib-es6/espConnection.js.map +1 -1
- package/lib-es6/services/wsEcl.js +3 -3
- package/lib-es6/services/wsEcl.js.map +1 -1
- package/package.json +21 -20
- package/src/__package__.ts +2 -2
- package/src/ecl/topology.ts +1 -1
- package/types/__package__.d.ts +2 -2
- package/types/ecl/activity.d.ts +1 -1
- package/types/ecl/activity.d.ts.map +1 -1
- package/types/ecl/topology.d.ts.map +1 -1
- package/types-3.4/__package__.d.ts +2 -2
- package/types-3.4/ecl/activity.d.ts +1 -1
package/dist/index.node.js
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
|
+
|
|
5
7
|
var util = require('@hpcc-js/util');
|
|
6
8
|
var xmldom = require('@xmldom/xmldom');
|
|
7
|
-
var fetch$1 = require('node-fetch');
|
|
8
|
-
var AbortController = require('abort-controller');
|
|
9
|
+
var fetch$1 = _interopDefault(require('node-fetch'));
|
|
10
|
+
var AbortController = _interopDefault(require('abort-controller'));
|
|
9
11
|
var https = require('https');
|
|
10
12
|
var safeBuffer = require('safe-buffer');
|
|
11
13
|
var cp = require('child_process');
|
|
@@ -14,40 +16,11 @@ var os = require('os');
|
|
|
14
16
|
var path = require('path');
|
|
15
17
|
var tmp = require('tmp');
|
|
16
18
|
|
|
17
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
-
|
|
19
|
-
function _interopNamespace(e) {
|
|
20
|
-
if (e && e.__esModule) return e;
|
|
21
|
-
var n = Object.create(null);
|
|
22
|
-
if (e) {
|
|
23
|
-
Object.keys(e).forEach(function (k) {
|
|
24
|
-
if (k !== 'default') {
|
|
25
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function () { return e[k]; }
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
n["default"] = e;
|
|
34
|
-
return Object.freeze(n);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
var fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch$1);
|
|
38
|
-
var AbortController__default = /*#__PURE__*/_interopDefaultLegacy(AbortController);
|
|
39
|
-
var https__namespace = /*#__PURE__*/_interopNamespace(https);
|
|
40
|
-
var cp__namespace = /*#__PURE__*/_interopNamespace(cp);
|
|
41
|
-
var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
|
|
42
|
-
var os__namespace = /*#__PURE__*/_interopNamespace(os);
|
|
43
|
-
var path__namespace = /*#__PURE__*/_interopNamespace(path);
|
|
44
|
-
var tmp__namespace = /*#__PURE__*/_interopNamespace(tmp);
|
|
45
|
-
|
|
46
19
|
var trustwave = "\nTrustwave Secure Global Extended Validation CA, Level 1\nSecureTrust Corporation\n00F6F61CE4A3635BB0CA8AACEEFCB2D0F0\n-----BEGIN CERTIFICATE-----\nMIIE+DCCA+CgAwIBAgIRAPb2HOSjY1uwyoqs7vyy0PAwDQYJKoZIhvcNAQELBQAw\nSjELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRkwFwYDVQQDExBTZWN1cmUgR2xvYmFsIENBMB4XDTE1MDgxMjIwMTcyOVoXDTI1\nMDgwOTIwMTcyOVowgbgxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQ\nMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMUAwPgYDVQQDEzdUcnVzdHdhdmUgU2VjdXJlIEdsb2JhbCBFeHRlbmRlZCBW\nYWxpZGF0aW9uIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdh\ndmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx6D45slgLGq8\n2G/NPFnuFscv7UM1eRoQyx3h0DdSTfoRvHkkNv4Gf6OudZDOXqwV86v/SjcNEP87\nnjMOEqQ7dKQPtiYzEkK0MOrjbRySFC5dvCTI9T8tnBgFpYA9YXwbpUqXxEi0Ayoq\nhA7UQhS7Q+YGrVwZaJ6LiWrQw+x8ACPLqEvPmMZhrxagKwrsKbylMsAQ1ljk8X74\nJ76TSxi/AZpxos7tHD0XbO8elXFZexfsgPLDRpMs6jREVeQj1jVCWLtg9twiXzcI\naUCchBsTSc92WGkKwBnH70dlL2N8kT/BNe3tAsXuBpZRILANY59jLrLnHEJNfado\nt6ZpougolQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E\nFgQUx33qXRmrVNT6P+ZKc956sjwdbC4wDgYDVR0PAQH/BAQDAgGGMD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TR0NBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NHQ0EuY3J0MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr\nBgEFBQcDATAfBgNVHSMEGDAWgBSvRATCQX5Ig9tOOQLs7IR65s7JpDANBgkqhkiG\n9w0BAQsFAAOCAQEAkn/4wKQRLo41fDRkZtfF+3o8JtUmfQXf2zoo9Ll29hhCiz8k\nBOpIek9MrFd/cdNgUw1nckIi+J3udyFrbO5p64JBvtc0K4kAOPFSKpHssFcnRLPx\nFXgGxXq6ohD4Py+xaEApslYFfMy89N6DKs/v/10/+/xD831RFEUMUoQxBimsmmNf\n+cLoMwF5bpoSz9JcWqCmSlK0Nla1dPphaoA/MObLN2iQPpeM3yF5dTUm1tPxe39W\nOlr6nLU1xO+yRDrlGLXrVDP1l1/qGVuwi+xufIAcdFycLLBjSSNX7LOIK3tbva7A\nWctLUs+qhIlUrbPyFERm7YOY4SttWdozeYFNfg==\n-----END CERTIFICATE-----\n\nSecureTrust Domain Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E80B1BAF9870A7C4B6CBE401A32D68\n-----BEGIN CERTIFICATE-----\nMIIEfzCCA2egAwIBAgITBvHsAOgLG6+YcKfEtsvkAaMtaDANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfDEyMDAGA1UEAxMpU2VjdXJlVHJ1c3QgRG9tYWluIFZhbGlk\nYXRpb24gQ0EsIExldmVsIDExFDASBgNVBAoTC1NlY3VyZVRydXN0MRAwDgYDVQQH\nEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjRHBw8iIivBBrfE6HqexQK0oMt2Y/\nx8jO3fN96KEazZwEoGidwloRBk2Q7VfVvZ0ZDk+qwJZGLZJLS1ntGaZLH4/Iel+r\nPnp36IVF7J5MNDB+K81a/y9svEMfDu0p3FdlBUyhHvizZ/zFNP3tolmQfZ7T0mGL\n7lutlNAzFYoVTUlVeF5cSC8Yca906TEKyizYXuXcY8Diee+t+fQRHmSI5Hk5kyXD\nYFWcf2tXEfdkuFlDjJ7HPdFyfJzrNjD+cbqt8R5rZKnK1GNVP1dXm0cIYS+BMlMa\nCC1yF18oygbnOZLw5fDv9bxs4MOgF8E/Iypw0hLQHVkuD8wAvxVgPsqvAgMBAAGj\nggEsMIIBKDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNV\nHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUYt6tehfefLfDfCMXo7Em5UbXOvQw\nHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYDVR0gBDowODA2BgRV\nHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2VjdXJldHJ1c3QuY29t\nL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9T\nVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9vY3Nw\nLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQAHXPYhl+++o//di2Qm\naWGmC1ijxbGbKA4jOSDRvQfxlWOVkqPF11Dpxz+V8Rxw7QFFVoJ5mHpfoXtQOijV\ntsCFknxTKgzQeArNkZrkXBNpYOJAcuc5v0eX0OllBWgVdIvZRl2TM5L/u1WFrlPr\nqwWdEYTkinQwgAHXVV/7WZi6c4StcqNnlw93mlvN6Vspzaf/mWtcYp+aqT9vrqHt\nyNR1k8Ri5eIRPIU0B8woiXTj3bifLg6/O217SY5cWwQKCMFsa6nGWoRVCJ0JJXa0\nZ+m3mPQD2OcW5YMrynhL2VWohyfZAjB8l/NZaeRT7M+vki56fxbx3Bk2lqy8Z1Zz\nWd5m\n-----END CERTIFICATE-----\n\nSecureTrust Extended Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E31E46D341B2B2633CE480D915F81D\n-----BEGIN CERTIFICATE-----\nMIIEizCCA3OgAwIBAgITBvHsAOMeRtNBsrJjPOSA2RX4HTANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfjE0MDIGA1UEAxMrU2VjdXJlVHJ1c3QgRXh0ZW5kZWQgVmFs\naWRhdGlvbiBDQSwgTGV2ZWwgMTEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxEDAOBgNV\nBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS6vRtFpCJBJ7zJODH07Y3k54Qn\nVIBhnQmmWoqFqzCVMX97GAyAfzjcQrhl/TNiJiRCrVQWPI4n0R8eUd91Ab1Qzfsr\nnp+0NRbagVDa6+nF0KcNxbSZ6/iZQ7Ac3HyhCvJS2rH2CVYlzqdsrxDXcZk69jOO\ndPV8+w+7eNIn34BKpB/ZF7iXApDoAKG81kg1VtpGOxJhxTsKLuJmURT4pQjtZqF+\nF6rN64j5T2DOK0gOA4G7BLoTdOQuXkPS38LXKgZ43lKqEenjmiOaMF/XuLYzaHrW\nGYgCM2wJsykgdB9hCsTTEwsHRZzt2q9mLBDvYYWVhql1/kR4K/RN4JdESEECAwEA\nAaOCATYwggEyMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0G\nA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQUA6uAxlUKKpWh\n4Nf+GubAynjMsJYwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYD\nVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2Vj\ndXJldHJ1c3QuY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9TVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQB1\nfzAmGGmtbJyIvOfjq2McCpUoYkXAq6JTN51+nb9NDAihhDoTKMde+801bC1/l54h\nxPPm4HImM6GK6LFckDew/FGwbdRbEznUOJ7uVL5ploNBIjte23kTBUZa9fx3+aXK\nhUTAipSyPtNjnOwVVBVXzrMynfMhdsyRRe7gLXNFYCXIxtks3IkIpuYnc86NAuV9\nnBLFlZzgmbAsW+tMc5QsNvQJ9pQ539K8cqZaM+HFCScreDERxmNtHHbMw+hCa2yL\nOj4ntekgWLO8KQbE0lPUNLIM17QK8aktJavj+GezBztKMmJJwhVYQy9nxS388ApX\nxcZsEgIzOCeH0SOWg4FA\n-----END CERTIFICATE-----\n\nSecureTrust Organization Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E58E9ADD372C871D25843FDAB852D9\n-----BEGIN CERTIFICATE-----\nMIIEkDCCA3igAwIBAgITBvHsAOWOmt03LIcdJYQ/2rhS2TANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowgYIxODA2BgNVBAMTL1NlY3VyZVRydXN0IE9yZ2FuaXphdGlv\nbiBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMRQwEgYDVQQKEwtTZWN1cmVUcnVzdDEQ\nMA4GA1UEBxMHQ2hpY2FnbzERMA8GA1UECBMISWxsaW5vaXMxCzAJBgNVBAYTAlVT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4QVBCdYToXFIfzd1SQfi\nTEgg1bwHXM2cE2VsyxwWK8NEFH8zMYdKy2hYOAjbfpm0xE6q4TQzS8KL2vAtCNyY\nVrwX7d3IvKR25H5s1LUDeQXSl1JBBZCtgJf2caJcwaYa6n2pZ0EKt3wBB+QteSFn\n57ENB37T13y7Nn8gCt9ZZaPYqRWxHcPaIWO3CVzQZ3tXjCLqzJMCV2KqhK85DZk3\nwo33Zb6cyYDkerDbWyric+10dJ/wdgE49dkfyZxVxEGpHg1SCSJdHjGb4z85Zx/u\neBpxBS6g3dfrkDjjT3MUxyNS4EaRTZp7o/2EqVCYDWJDM1HcOZL64kyWyi0d9jqA\n7wIDAQABo4IBNjCCATIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBR/QuNI\nbljpLrlhyGp3tPcDuM1qWjAfBgNVHSMEGDAWgBRCMrYW+gT9/l1LesP990xAHVpD\nrzBBBgNVHSAEOjA4MDYGBFUdIAAwLjAsBggrBgEFBQcCARYgaHR0cHM6Ly9jZXJ0\ncy5zZWN1cmV0cnVzdC5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2Ny\nbC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMDYGCCsGAQUFBwEBBCowKDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wDQYJKoZIhvcNAQELBQAD\nggEBAIwGM/ejz4Hbjf7Vc11gS8jzf+BwtZq9N4t1Nibj4rIDsW2G2jDE0S7fCN2m\nMhq76xkfnwfXhBbXDEKz6rj/M0G2u1kHw4Y8ZtKSzYEyRtgpeBFm4qU6voCSREpD\nFJXsL+Go2/YLRSE6xkWVSocklxppx4hi5o/RVdMMQept6ooOSFzBpH5XZYUoblKi\n99Yj0FUe8egIa9qSts42TObTpH1YVRMDnH3k2MNX3rcgPf9v/QO9Cf8W6RQ2+X3R\nCaYMPdL5OIKh4RGYjxXe3LpgiTKBWik/ZWTFL5sZSjetrJFl50NONzTc8E+BJtrx\nVCHAI2OcWyloxrYd4zMipw0YjDw=\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00DDEDF6F64298490E694C36EFA422C88F\n-----BEGIN CERTIFICATE-----\nMIIE7jCCA9agAwIBAgIRAN3t9vZCmEkOaUw276QiyI8wDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMDExOTIyMzJaFw0yNDA5\nMjgxOTIyMzJaMIGvMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE3MDUGA1UEAxMuVHJ1c3R3YXZlIERvbWFpbiBWYWxpZGF0aW9uIFNIQTI1NiBD\nQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNvbTCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNr4Z91k7AKM+Pz5XXWTIuVeMts\nPU2W/pI4WdEHG9Zab1EOWPLbthB6fzUJLLLBBk1wy2OM9yG1HywB/CwfGHcoKS8Z\n/efGV+ZKTzEpIestriUWx7wUnzxKzGML48Xv7sNuY1Crru5Hgce1Ax5uOfP7OB6t\norbMunvKQC10WcSrqFg6LapZ0UhgGmQzdjYguOBF6WZJR3QLghQaNrSUZuA6neXR\ncUsBgmzrxiEVHyzt+lmnYFMFvKVwGOyIZ2RU2LAFthS6UDDrSLGsJysxc1MK1Sti\n/VP8e8wj9rJdmiWNfA+lz6hDAPzRbv+WVJNoHEGbIx8rai+rVMiLy2HIbPsCAwEA\nAaOCAWkwggFlMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPQc4jqvtqTk\n2emd/u8cd6VjPe+IMA4GA1UdDwEB/wQEAwIBhjBIBgNVHSAEQTA/MD0GDysGAQQB\nge0YAwMDAwQFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TVENBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IB\nAQAjoDrTysopn7t+onDZ6rZSQW8rYlWZQpSiNHrq9xAAcMExrhcN0bQC9OQ+VRci\noMDascvwum7hVkyh2w2Ad7lC3Ir9gIuA8HycjqQJ4t1eSF3geYyf8lp259ztZ/TO\nxSAwJ9W0Szc8fslOA0SWlyA3lnRVcYVu54Idc1dPXXBxwlQ1NUCYgcsXZs+6QjLL\nYhYL85DhuitQSddoYemGpfVJnaYH9tBiWmwtzwc4qsVqTsKEJ/1zYAy2GrEAv8sB\nFKSfMNMopBmmDA8/aCIW/tH6KTD2DC15QQwL6yAUbSa5mhzFSA9O8zmF881YwBVG\nn+z3isMPClgpNw/eWSbaSLZ+\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n390A3F7EECA8FB4347DCAF701861662B\n-----BEGIN CERTIFICATE-----\nMIIE/zCCA+egAwIBAgIQOQo/fuyo+0NH3K9wGGFmKzANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzMloXDTI0MDky\nOTE0MzUzMlowga8xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTcwNQYDVQQDEy5UcnVzdHdhdmUgRG9tYWluIFZhbGlkYXRpb24gU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs2vhn3WTsAoz4/PlddZMi5V4y2w9\nTZb+kjhZ0Qcb1lpvUQ5Y8tu2EHp/NQksssEGTXDLY4z3IbUfLAH8LB8YdygpLxn9\n58ZX5kpPMSkh6y2uJRbHvBSfPErMYwvjxe/uw25jUKuu7keBx7UDHm458/s4Hq2i\ntsy6e8pALXRZxKuoWDotqlnRSGAaZDN2NiC44EXpZklHdAuCFBo2tJRm4Dqd5dFx\nSwGCbOvGIRUfLO36WadgUwW8pXAY7IhnZFTYsAW2FLpQMOtIsawnKzFzUwrVK2L9\nU/x7zCP2sl2aJY18D6XPqEMA/NFu/5ZUk2gcQZsjHytqL6tUyIvLYchs+wIDAQAB\no4IBezCCAXcwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU9BziOq+2pOTZ\n6Z3+7xx3pWM974gwDgYDVR0PAQH/BAQDAgGGMDIGA1UdHwQrMCkwJ6AloCOGIWh0\ndHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9TVENBLmNybDA9BgNVHSAENjA0MDIGBFUd\nIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3YXZlLmNvbS9DQTBs\nBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnRydXN0d2F2\nZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1\nZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIy\nthb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRydXN0d2F2ZS5jb20w\nDQYJKoZIhvcNAQELBQADggEBAFcdG0/3P/CkeGb76tz/mn1viDZiftD05i9Jw70k\nH9ulRwdCHgzhSZVN5zHvG919oHA9WHbxH04J+iAnVl1+FjoDNN+A+2icy2WXqH9w\ngaNUGyUwLdo0JCfgUeGbrCF6WUYCj47pS7zAY02CdGlstZZsqouXK3RnOMKOD3Dq\nf5kiSh56KvhW/F0OZY7PAbdV79LVAiSTiAFdoe/jMjmj8fqXOiCIjllqH/O9/DAm\nRwQStFpauwR+nBbFhq4sYwlZQvJ0NvIxN5JOTECTkMM+X21kf8mrwRdxBfw0YEPa\nUTeZhFr48Fwvnt4jpo7gqpJzt7jjsbWPd1FHtey2Q8zmSHY=\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00C1BD27B383958D0D8BCA5E4F08D009D9\n-----BEGIN CERTIFICATE-----\nMIIFGDCCBACgAwIBAgIRAMG9J7ODlY0Ni8peTwjQCdkwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMTMxODE3MzlaFw0yNDEw\nMTAxODE3MzlaMIGxMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE5MDcGA1UEAxMwVHJ1c3R3YXZlIEV4dGVuZGVkIFZhbGlkYXRpb24gU0hBMjU2\nIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAre9mHLqiv689FWIk7PaeQLuW\nos8ldRX4rNLHeD7/X7JrTfaXuIQaLfrUODtyRaZs0LtJsEHgpr7dUonDIH69PjBP\nrHg+hBLu7ob4udEx3J03NQSdnR/fqPY0ZMH2NP7e9TFSKKctZ/SmzA8jGclVmdiT\nGg1bTx6xgWuPWq9OprIQSgkP5NRe1GeTQ7U/E1zxLqaw6PeQWjESHPGeilyw0jr6\nqVyHM5ack9ps60sN3CKNGushyaQe3w2bYxRJ9RRH/sILCAmmTbjc/cXrGQMGdaYt\naiGnXbc45r39cqfbynZ71hPPNEtFbOdqk3C7I8vrhIHiKaAtFkTMRSWmHHk4HwID\nAQABo4IBkTCCAY0wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU5eQkWRUy\nJ8kgs0ICbLDvMt6bIFowDgYDVR0PAQH/BAQDAgGGMGYGA1UdIARfMF0wDAYKKwYB\nBAGB7RgDADAOBgxghkgBhv1kAQECBAEwPQYPKwYBBAGB7RgDAwMDBAMDMCowKAYI\nKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCsw\nKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMGwGCCsG\nAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3YXZlLmNv\nbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMv\nU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQY\nMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IBAQCly1p1\nrvcOlRS+ODBLb2kYHd4q+cXDl65X+IQ7hOlXg9dpa7CzSAGNNpzhyYMbE48mB/RE\nBXxbZkMzEhWPFj+4jdGNsmX0zjEWatJWsnNVxpA7hDR0iZssezu86oDQ/sbVoaXj\n0a5jB2cZsnMS5287CNDk5i+ImruhbMAYV9sadliXoDy3y01Sv+FLMx39C5UhYhWU\ngvoT9igbSCoc/DPOukEDqsnKMmDqTf3JzuFI1CbJcR6M8R1hAda4mZrxIdGcbT8R\nXp8JQ8Vuv/+plPMcAiZ2Bzed0hPVr5A1Mz8K8w9OyORGlRwjWS65jsr26bjMCcfj\npvuAANrc0Alu4nJC\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n35962F305C5A0BEC400D4E9877528C65\n-----BEGIN CERTIFICATE-----\nMIIFCzCCA/OgAwIBAgIQNZYvMFxaC+xADU6Yd1KMZTANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzNFoXDTI0MDky\nOTE0MzUzNFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTkwNwYDVQQDEzBUcnVzdHdhdmUgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTSEEyNTYg\nQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNhQHRydXN0d2F2ZS5jb20wggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt72YcuqK/rz0VYiTs9p5Au5ai\nzyV1Ffis0sd4Pv9fsmtN9pe4hBot+tQ4O3JFpmzQu0mwQeCmvt1SicMgfr0+ME+s\neD6EEu7uhvi50THcnTc1BJ2dH9+o9jRkwfY0/t71MVIopy1n9KbMDyMZyVWZ2JMa\nDVtPHrGBa49ar06mshBKCQ/k1F7UZ5NDtT8TXPEuprDo95BaMRIc8Z6KXLDSOvqp\nXIczlpyT2mzrSw3cIo0a6yHJpB7fDZtjFEn1FEf+wgsICaZNuNz9xesZAwZ1pi1q\nIaddtzjmvf1yp9vKdnvWE880S0Vs52qTcLsjy+uEgeIpoC0WRMxFJaYceTgfAgMB\nAAGjggGFMIIBgTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTl5CRZFTIn\nySCzQgJssO8y3psgWjAOBgNVHQ8BAf8EBAMCAYYwMgYDVR0fBCswKTAnoCWgI4Yh\naHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMD0GA1UdIAQ2MDQwMgYE\nVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NB\nMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lz\nc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRy\ndXN0d2F2ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAGUMIDkrvlMJ0wHLuP3lkneC\nwGU6mZ3g17jyU2RJwhRinYctraryG7Jh20DQ9/ppTHoxTIADw2JDsC5ByplabteQ\nnLghrl17K1b6PO+rzWA/NFKVwo6u8Gh7Lz0iUuit7ZBD4eKcRedxRZcPQlnD9KTR\nIs94SRpootsuCv/Y5b+1FMPV1KrYtbco9yEVlaNEWLpmiEsqvLjxiWEmt71rzz+0\nS59OtA/ihnbGP9Xrnhe7wf1ybCNOO5gZQMKr/OszfLZ7oVKACGOPLlcSZRRW98gA\nszE+1ZvlHkdjamfTSs4yMvUorYn9NhXnjAWl28NuD9m3FPiE2O50ezEDnHTiaOQ=\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n4B2C6646F434775B67DF34A04DD504E6\n-----BEGIN CERTIFICATE-----\nMIIE/TCCA+WgAwIBAgIQSyxmRvQ0d1tn3zSgTdUE5jANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE0MTAwMTE5MjIzNloXDTI0MDky\nODE5MjIzNlowgbUxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMT0wOwYDVQQDEzRUcnVzdHdhdmUgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU0hB\nMjU2IENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29t\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA49OohlJHBJ/juiQTmibO\nS28pHvCCp1bPOc6elQ62DCYE/A14JXUtI8yaUc9nFjh6dNzR7KjFPEq/qDplQl7f\n1Tvh5ifBNNP2wQ6e820TWlPO4HhR/5g4+3iFmJ1N7kFrxDp1/P8e3+9lcJsXckXC\ntfFkQ9slogJqnaCsipgdrH4gQhicFAL5YqHw2AKfctZLSPpxhI3xISMV/lIQwZPW\nI2221v9ALckokh5pW6dTK8x8yNUUye1zt5msWzqunfBjVYVUj5/LXu46hS99Mfxu\n80ARJRyHsXIuHbMzwVXGqKVPZfKAdHBl5e3ElCjNwNy+Hgi09vS7PoAUhjCf/wbO\nnQIDAQABo4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUys4d\nGAN3HhzzfFiymnCoCIAW9K4wDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYP\nKwYBBAGB7RgDAwMDBAQDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0\nd2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdh\ndmUuY29tL1NUQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50\ncnVzdHdhdmUuY29tL2lzc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUH\nAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0G\nCSqGSIb3DQEBCwUAA4IBAQBN/Qb6x5VSQHIt/FqvXAkjfCI7jwXGzRoxThavUqv0\npJr1azXKv2L2ye9Sl4OCqiDHZ8ZJZ/Z19Ae1yvGTpG++0O5dWTHZ8qy/JSj17Mg1\nvWiefVpJKtkYflzhC9B9/eB3QuKVTRKDqm1ZC9kbm3MWOwtnEOw4WURWS1X2v4Hv\n2AJaXe11ZRqjx7/c6U50tYp3eVpRDCw7bOIXRffLG0oibhjHiEu8dgq7KkTSrx9m\nQFS6T2x9GLiJKhj2mEfPuGr73TfBPyKsRBymOpG67LThKVnwoUfH3pghA6VkZp5Z\n1Vm6AcDm+eelf5XPvZtNve4evLVPYueA3TmGyxXh1m2d\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n0092B8744F71CED0E26C72A3D8D5D925B2\n-----BEGIN CERTIFICATE-----\nMIIFEDCCA/igAwIBAgIRAJK4dE9xztDibHKj2NXZJbIwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNjA5MDExNDM1MzVaFw0yNDA5\nMjkxNDM1MzVaMIG1MQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE9MDsGA1UEAxM0VHJ1c3R3YXZlIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIFNI\nQTI1NiBDQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNv\nbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPTqIZSRwSf47okE5om\nzktvKR7wgqdWzznOnpUOtgwmBPwNeCV1LSPMmlHPZxY4enTc0eyoxTxKv6g6ZUJe\n39U74eYnwTTT9sEOnvNtE1pTzuB4Uf+YOPt4hZidTe5Ba8Q6dfz/Ht/vZXCbF3JF\nwrXxZEPbJaICap2grIqYHax+IEIYnBQC+WKh8NgCn3LWS0j6cYSN8SEjFf5SEMGT\n1iNtttb/QC3JKJIeaVunUyvMfMjVFMntc7eZrFs6rp3wY1WFVI+fy17uOoUvfTH8\nbvNAESUch7FyLh2zM8FVxqilT2XygHRwZeXtxJQozcDcvh4ItPb0uz6AFIYwn/8G\nzp0CAwEAAaOCAYUwggGBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMrO\nHRgDdx4c83xYsppwqAiAFvSuMA4GA1UdDwEB/wQEAwIBhjAyBgNVHR8EKzApMCeg\nJaAjhiFodHRwOi8vY3JsLnRydXN0d2F2ZS5jb20vU1RDQS5jcmwwPQYDVR0gBDYw\nNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwbAYIKwYBBQUHAQEEYDBeMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC50\ncnVzdHdhdmUuY29tMDUGCCsGAQUFBzAChilodHRwOi8vc3NsLnRydXN0d2F2ZS5j\nb20vaXNzdWVycy9TVENBLmNydDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wGwYDVR0RBBQwEoEQ\nY2FAdHJ1c3R3YXZlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAC0OvN7/UJBcRDXch\nA4b2qJo7mBD05+XR96N7vucMaanz26CnUxs1o8DcBckpqyEXCxdOanIr+/UJNbBL\nXLJCzNLJEJcgV9TjbVu33eQR23yMuXD+cZsqLMF+L5IIM47W8dlwKJvMy0xs7Jb1\nS3NOIhcoVu+XPzRsgKv8Yi2B6l278RfzegiCx4vYJv0pBjFzizEiFH9bWTYIOlIJ\nJSM57hoICgjCTS8BoEgndwWIyc/nEmlYaUwmCo9QynY+UmW1WPWmVITEJPMdMK6A\nZqvvaWmuHJ6/vURaz+Hoc5D3z0yJDDCkv52bXV04ZoF6cbcWry7JvNA+djvay/4B\nRR4SZQ==\n-----END CERTIFICATE-----\n\nSecureTrust TWG Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C25181828DAC4F5F7DE4AFC87AD132\n-----BEGIN CERTIFICATE-----\nMIIG2zCCBMOgAwIBAgITBy8w6cJRgYKNrE9ffeSvyHrRMjANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMjAxMDA4MDY0OTQwWhcNMzAxMDA4MDY0ODQwWjBWMQswCQYDVQQGEwJVUzEUMBIG\nA1UEChMLU2VjdXJlVHJ1c3QxMTAvBgNVBAMTKFNlY3VyZVRydXN0IFRXRyBTZWN1\ncmUgRW1haWwgQ0EsIExldmVsIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCcD5Wc7H480gOv3ae6SELBls0oNOvpw1ZFjK55nLw+W6PhgqTGNEHlO/Ga\nWt13yS1iO1/WzRaUc2XsFRGcjv3QIfDZb+6UzhL1LL9ZE8zcs0B6fepn4smQg1yK\ngtAWGoD70Z9kEBtypkG23sO5xIiRACJWgRWVZ/891pQBBz+ElCxUnIyDGghHlWCD\nzn5dLoBIVic69Pfpi384uNoNfHV/WATUQEEnwY+5yMMUALAWrRD6Jeh5R4m9qKxG\nUlrO9ObDebK9mFEJvrCPtkTIWT1He4ZD58Lt0NIkaItQ7KsKF9wgwH7BTsRGwQXb\nP6/0LvfO8UDRKNE/4C39u9dwUw/Zpu2iNXTadVWBtaSDsrPFVb5rBu+pvn4l4Hw5\njtySyHAOWn4mhuxDXMuKBtaoTi/qF94d7N0CbqPdN9WSN79Cy2O0BexTGHSJVndX\nEbKyn96b5STPshKVpG9DmUekfnDtnHR9dmH74a05X/A8k/XeSJWXphM6NvyZap2A\nWiIkrS7MsfwnCdZlX+9WGY2qHxnm4Y6JdNah0qxozBbQHkqHsSN4k8O7zr2lfZhC\nuarm0Q1t6tjsmp7PUh26u6PCe0m+MctIrD6ZckUzZeuPduRb55K2p8MxjQSVNH1S\nJ2aaHp77qOYV+rvHXIL7le4OR5lDWyzYtXLc8u17/kLbUtgnmQIDAQABo4IBbTCC\nAWkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwQwHQYDVR0OBBYEFKpD9MNsQCriSoEcg6nez7XhG7bOMB8GA1Ud\nIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMEEGA1UdIAQ6MDgwNgYEVR0gADAu\nMCwGCCsGAQUFBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA1\nBgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dD\nQS5jcmwwdAYIKwYBBQUHAQEEaDBmMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5z\nZWN1cmV0cnVzdC5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8vY2VydHMuc2VjdXJl\ndHJ1c3QuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBb\ntCXryLFewOafyNENB3NzgAQVVztwaWSyvF5FYSqav95JKcoHZzy3wG7aKlTPtGnq\n1QzJst03qPmZJ3j63obz2AvfEEzLEMlsPmOTy3B9oIrNzd2QhpGW1oF6pIgGB/VP\n5zh7U2ibUC+zRLmihwt+j2+7NBbuLbPozgxDTWh2f9O4rJb5bv98Q8RdbGrypBb9\nhOhDvmNCCfjSe+Q8myqsvawEG5p7s8gsIK/V3xbyqDihXjsGc7xeEWNftlU91jBL\nKPRbrLmXhhWnHJjYs4y5IHu735HA3aAT4TqURS9dGHOMVDRumkFpLqR2W7ptpDki\nOtIFZjO5smU29OD4AlcNUXqQuKEFasyTtkRlORnWhU37c36HB8dc57xWQKOf8pMq\n7lK+ublO9G4mO1Aqr9mioTN4oMONFJG4W5dWwG9baNg682ZACkvPaw45MqSztL3A\nKb4s2cDTWu/D34hV3oafkTwu8B7B2mFZnWRJ9q4akPmZF45uw4RZx2ALaYGGGs67\n+r5qS300As9ONg8hxfVkFQSHOc00IiBkgi3OpoCofEKTgDwZwHVqOJyyPjk6H9Sh\nZANmUOT2mGDLwl86Ar5bTu8ipzlsyDYQMFjho7WaVs8I5OXyVdONXDYLIOtpITGT\n1fRcXFzxYHhrNuFwrdj2zBVyvVD4O6xV97/9nv2Eng==\n-----END CERTIFICATE-----\n\nTrustwave Global Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AD30465CF22697F246B101EC92953B\n-----BEGIN CERTIFICATE-----\nMIIHCDCCBPCgAwIBAgITBs6C2a0wRlzyJpfyRrEB7JKVOzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBjjE3MDUGA1UEAxMuVHJ1c3R3\nYXZlIEdsb2JhbCBEb21haW4gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UE\nChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGljYWdvMREw\nDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQChh5brvvk/kFUZwhlUhqdsUmsMCBjzYqBBLnTyNrKPr4nd\nS9s2h2JvA+9TY7NnJc/Mq1eN5V6zqvbn/LN3c8W06f76xrVvFEKs5SzCefUS/V3Z\nC18dgwXXFrP+RgfK2kqfTHGIPrWoRSnUiLn3iUNEBtJ06oXjAqAMnAyL5AzD+eHm\nZzRK/yCw/gMPnVp2S7Dstka607fS4fW9Sl33mOMNwJRxEjQWHHR25PAb4muP6wjN\nvmoLMgiDMKseHSFVtC7SpmO89PsrUV6MahKJrZcAfquAyoO1zR2c2eGaCI/m8oSx\n3B7KiMZJ3NZims/siMp/5szemsutf36WJ31nmr7PqLJGJdVpoxbLckWIhZnNYSFm\n/pTutpNONqpyYC2gGSXdw5LuxU61913SbAPpk8DZiHi3WslHBo26ghXG++sgJUGj\nhtKZhiYlp8uD21WTP6/60wngpXyCtt9cpHxW1lXmqcxwe2J4/2S3xjHz1dC6BKxb\nr61HCPVrbTD90CZUpMI8JPdsVbz5eegv+SIyybHxZe4S0D9Kv5pgWfqdXf0BAiJC\nTbGwYmFr4uisKhkfMThyOgWEH+CRBzQqdZREQ5lTIlVyzi3jGPuu9Q6brAS9U9Ue\nQhUwX8TtY8Igfo8HlhjugDpy6WvDYQ9i+tG3AC6v8sJLdOOU83Lr+2C1LEF5ZwID\nAQABo4IBYTCCAV0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYw\nEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFIaZQQzOP7aMcEnlkwfwhgcd\nLXqVMB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMD0GA1UdIAQ2MDQw\nMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29t\nL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9U\nV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzABhhpodHRwOi8vb2Nz\ncC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAmn0jp\n+lNp188KxjKQZtpJ3mixLmuqGdH6SVpRs40BYQg/68xOPH3C6AJ17tqE6IwZMW9s\nlgiO4B7khR3ESA6Sct3zmkA8woR/KJVzzegjscHhtQUifQ+Eb9Gi0ORNnetGV+5g\n5vlrFZMptBRGUxXMo2xa+Z/NTyimpMopfXj7qCW/nQWQbzvkQGchK9IokyqV2wra\ntX68/P3zleG+LLwzoJd5AhHYSXWrIRJpClZHN+LQKkbI3MYW7+upo/1e9HEmFKxu\n5SFV3nuQm5wSOsz/ZtIL1AS8IoZYxcSe1Q/yuV9GjnxtL1jkPbzsBx4eBGxUrcIe\nsBat6SI8G58uHTpIPpqUxRYsg8w0FdjK3kNBB5QWDeXiDxzqIRzA0iE1kHeTXRZ3\n7qgGXUcce7ciW5KqeRApjQbD5BSZG2EKkQ7aaOhvxK0LiuxHZnjPW4/fdEcaCuku\nMT5qMDiF2U85V9BvanEy/xkYn4I2UeK4EdSXe7q6j+CIJz9WnoLQDbIS04GqIWe0\nVRQUlx3idUWYSJU/SG8KrEHhlJLmgSjshCwtT6qo4vHwT5WcWDLIbjMqgL1iQ6JS\n4gxXuOGia3d0I4/wec5x23EWwx9V8BtDJ8N7NDeRNmZ8RXOHSYJsVQYIQuFUEXE1\nv3WMSIxuyQMyR5FYSCG9xnKRFzNmiPngDil5IA==\n-----END CERTIFICATE-----\n\nTrustwave Global Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D99FB3B180C281020314A2D1C7640017\n-----BEGIN CERTIFICATE-----\nMIIHFDCCBPygAwIBAgITBs6C2Z+zsYDCgQIDFKLRx2QAFzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBkDE5MDcGA1UEAxMwVHJ1c3R3\nYXZlIEdsb2JhbCBFeHRlbmRlZCBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMSEwHwYD\nVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xEDAOBgNVBAcTB0NoaWNhZ28x\nETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAMRO7orfWjfmz6Y6qoAmDp2lqCJcdvbRQ8w18rl1JE3j\nf/1CScZLrnLg4RDm8JiRcvFuvoMXn/XNUWy5ICG57tjG2nO7jvBuXfvbdkGA+foN\n3yJKMTX/PmmGlN4qpzFtsB0kLrP14/0TRGeJB7qDfAFH0ReFk0ftQobLBGBOpEca\n+bv+LhcTe40/uNUSK2yQ9GpIw200mcsD3B9c29Im4tSZFuA2o1vnEeizYW5M4sPX\nHu7p5ZCxjJrXVNqWUPM38rShhMUNL5uaVYWoi7TG5JXbg0Lmt2nq1k5nnig9Yp/W\nlAFooWXjKQzHf/z+XZ57bqPe7SzLW5pzpZdSmY2VRybAwEmzMjCXgHiP2ru3TpAD\n+giakPDoz3ZmbKjwYKZ5PmnOmXx0Z2GloO37MjamjPor/+fZohfyma7VAQE8znJt\nI9MVoRN3G3gW/tuT3jXfzYdFBlfGoO7OYyLN1LK5YBKH2qXrCHD8rG2DauBt7U+w\nfOvwfkp8FcdTnfQ92Xe65U3Xdu0eCgQJbChxZtWhhLnbY6xhmwAWyJ1my+Im72Kx\nGP/XcA8SH2sz6/k0782BjRckDuFpVVpTNYl9wqe/tuOrZhWPapOsRlfsDTuhgGu5\n2inM9sU3CAzmFE85zoRQFZQSof3kFN2rUZF20bmTak99cBNLli6/ja3+KntpZ08d\nAgMBAAGjggFrMIIBZzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB\nhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFHM4IMZH\nbabGL3tQ4EDe3sedR958MB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6H\nMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50\ncnVzdHdhdmUuY29tL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9UV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzAB\nhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDov\nL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEB\nCwUAA4ICAQBwnSHECaf+hfGrm3Cg+aRr57ytoOSzI1DjlTNcM7k4uSt6kJRPHJ4c\nldIujMaETV52RgE6ykaMGkuIwQOIsLI6SXwjU1f5gXFUbDTS3KTWc/jwQeyLmdOe\nhvc+wBSFv8d10Sx/Qiti8mqsTqr0+N94Cx01+SkiWxWWoSZOAPkz8DMQGlD4yndK\nceTMGtQ03cLnD/36Mv6tz/Ds9l/OExrJGGxHD0tmYwYwBZpPHm7BBY2ZzycVxLcg\n+uuggcX1pg5MhJ1rDyod+7X+ilvTgH7ftHCmxvR7viMLwSUuytZ05zb2teRQgU+8\niWnPEHO/ADm5VD1Zb5Rx0579/YEENBJtGUPPJzo+JEpiZIOIlwZ69ETWWNCLZr0V\nvoi+SDl65cr+dgR9JreJ2I4W9FzS45ruxYEC8LGKEmV46sAk1YLbnIBmhehAKy9t\nP8RVz3QXYJ6rLOAuXF7R2eVV0SqfivW9bVzvBZTUTFsbdSMBAAF1BJjdRqYR63DI\ncQASY7CRoUiak1NTgPkzeV8VcNJmUt8c2eKJIifqBAjquH6+6UXs9Ol0aMPn6v0y\nB+TSuxhX2sSrpna9QcOh/QyoR5Hvcd81rZSbMc7yasKoUMXviotV1SfEqs3RU5Ts\nwnU4NHPn5ITRiuh5VMuvB/VnjnPC953u5uqAGtZ8BkC7X9cu5E0rMQ==\n-----END CERTIFICATE-----\n\nTrustwave Global Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A69703AEFE5D37D18858C74026B004\n-----BEGIN CERTIFICATE-----\nMIIHGDCCBQCgAwIBAgITBs6C2aaXA67+XTfRiFjHQCawBDANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBlDE9MDsGA1UEAxM0VHJ1c3R3\nYXZlIEdsb2JhbCBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEh\nMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGlj\nYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3\nDQEBAQUAA4ICDwAwggIKAoICAQC8BzZtA3eWejFOGHc2DLgex6P471dLWIIHSlrF\nY4a2BCtzAd/VlpQ3gslWnTgthOmK2/hCc+WSaOLPVZzZf3lGnxbb0+Y87Kx+nS1m\nIfJ/4OR6o8XLMLoCTAI1jsWxggiB4NBMqsW2xXQ5VAvBb66KEQYbshNlRpTbtBFq\nEed4YIvCdjbnCUOy1zubgVHUVyCFHzN4XPjEQCtT5vZM576Lt10Je9COnqG0CtPU\nQNP2tjnSmOOYdWcVRZ0UqXUl2fMBfmSDHd8902foigjpP04AYYbq6AetqEgqdvQP\nxz5pVbZqzy8UrE/s/raJLFyTuIAYVt18M0whSgWzGgUWkq2xRqbfn7b1hd56dwRb\nR7pKc51FyTbeocnKlYLC+Dlzp7iKQ3Pb7WHRwLhaJB7u4CzwqhUxHc0xplMYsq92\nMbZ6WN5L5mI7hxY8gLMOR7vNX9CKz9XcYRS01iCDe5Y/9muW8bzGyNXLX1YaHAy4\n+6ncksb3Y3RUKj3f0+T4nbiRISmGazravJKSssBLP3kPa9h5aX+Vd00eL+Q7sXrh\nFO7xz+oWtOL5rfVszyc87JQvjw1sDHA710nViqzUE1bJZNe61EXdCb/RV+Wsu+rO\ncAMSr5x2j/wW875sh+U3EJmTzdEBUBxHnBD2mDTyonT7wL47TRXTEO1IaS4mVbnv\no0jWvQIDAQABo4IBazCCAWcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E\nBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBS3\n/VNzOCaKcKuTyoupCOrH07fj/TAfBgNVHSMEGDAWgBSZ4BlnDWLbdrPaPbhb6P1C\n0jEOhzA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9z\nc2wudHJ1c3R3YXZlLmNvbS9DQTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnRydXN0d2F2ZS5jb20vVFdHQ0EuY3JsMG4GCCsGAQUFBwEBBGIwYDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wNgYIKwYBBQUHMAKGKmh0\ndHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR0NBLmNydDANBgkqhkiG\n9w0BAQsFAAOCAgEAFXwfmELpEGKUguzVTMix79XbUnkfLa7IXcqBOrwOWEF1V8F1\nxGY6jLlUTtoEXRYZwCpqOK/i4m4nmWCYE45O7URR8nqeFffceTi62t4Yvh6LkC9g\nUnj3aChLiO/Zdxilq6vfsXO0mKafrGtZXwjyskS250Pj9DsANs57QqvYN4hqbplJ\nzc95p09OUvEhPiyRyx6FyY28U+3X6+mSNMJWd4Nhr+3HtvmItLIXP2JCLxuYtu/K\n6nKcpFCFFKeF8K3PWpjsAb0hfXL4vc3WfyCYsQnvJeisyAh7yEuge2iDwl1/xXIo\nEOAyyYAxvy5UnzcAa0Z2lwjptve+jZ4gQ+A1ioYUavR3pSfBNzuJW30nZCWFadKc\nNXOPoAPkK8JLxgRBH3JboeBCXG6xgy/pXrTjyhW7/SS+Z+7eKkp9jgdTVQ12yUtc\nCiYWUuM4l240D/z+s03WOEcLTluESwFkJhzs3D9i5crTL72uSkDDmlh8HXoPAyYO\nl3Mn9cGWhd8M8IeQRXmb6O7gvvQZDoSXDVDbjBKcW1lFpi0wBxIBzLaOi4CX4OhI\nJHJ/H3duOMaltuzXLSLkc26jwHzMeq8seQRSXraXJi1t5oBKlmEWFEgq6xlH7mLW\n3TOqS19cuiSWl/CsnlLGaW8MH5YHmk+MJxQE1BcLBs6ciapvHlhLEd9EUpU=\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-256 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C4627001DECFEBF6BF5D3B1066D7E3\n-----BEGIN CERTIFICATE-----\nMIIDbTCCAxKgAwIBAgITBy8w6cRicAHez+v2v107EGbX4zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTI1NiBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAT4KazLm94aiykBGkNQVkBrjmK77RlP627D2n3EwK3s\n49ljRkN6wiTWXHx3jPD5BBE/7mWhGWnphzGu1Deb6yzco4IBdTCCAXEwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUH\nAwQwHQYDVR0OBBYEFHMQ2nwjQr8tFHfBImxM7ct8lbBYMB8GA1UdIwQYMBaAFKNB\nBqyQbdFK63WlShCZs7Ghi0r3MEEGA1UdIAQ6MDgwNgYEVR0gADAuMCwGCCsGAQUF\nBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA5BgNVHR8EMjAw\nMC6gLKAqhihodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dQMjU2Q0EuY3Js\nMHgGCCsGAQUFBwEBBGwwajAoBggrBgEFBQcwAYYcaHR0cDovL29jc3Auc2VjdXJl\ndHJ1c3QuY29tLzA+BggrBgEFBQcwAoYyaHR0cDovL2NlcnRzLnNlY3VyZXRydXN0\nLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAN8G\nPwKUpMgV3LZjq7fuKS96f15BrwBjmTlKhOwgX83BAiEA9WpWhzRRoKeJGAqqXrMk\nZ8RE9xRtOFBqYdv9H5CeTVk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AF531423847B85FB677932AAF80508\n-----BEGIN CERTIFICATE-----\nMIIDmDCCAz+gAwIBAgITBs6C2a9TFCOEe4X7Z3kyqvgFCDAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\nWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATWpfTIQFPkZIoXXMDN9utRU+AbLGcg\nBmLA06x2qqdcpCMlYFoJhuRWzYCiqz1mKrAvNlQYkgoHfemk92sf8iaro4IBaTCC\nAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwEwHQYDVR0OBBYEFA/DUGGZflb1xtmcOeiDWJAHuhq0MB8GA1Ud\nIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2MDQwMgYEVR0gADAq\nMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1Ud\nHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMjU2Q0Eu\nY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1\nc3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNv\nbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDRwAwRAIgICvA5ttD\n0oeUcd37iYvoQ7iMIpZINp4e1j5NrlI3UnYCIEZhimm9+1dUWAfx9ZkGmIu0HiHR\nzEZifAHbPM3SJbRu\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A20A3797CD878EB3DAA41D08680AF7\n-----BEGIN CERTIFICATE-----\nMIIDpjCCA0ugAwIBAgITBs6C2aIKN5fNh46z2qQdCGgK9zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKXHfFxFDVI6uYWZlWciFFKtYzuJ\n+IBhot3PQGikE3sjU8d9dARkZCkInqmDyP/+XiLzgrYPMy7NS8lZcRsE5p2jggFz\nMIIBbzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUE\nFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFAwlVqqzYgakv+7gGxtX\nzC8s9g1QMB8GA1UdIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9UV0dQMjU2Q0EuY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wu\ndHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwID\nSQAwRgIhALahroq1NScrFeCvG5uMgMKH/bo190D+Mkh2ZIojrUOfAiEAosFXFE73\n0WLRPjX2uOkLhXuA4cQEb1R1oeGDH4MNVOo=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A8B57C104843994DACD79E28633E5F\n-----BEGIN CERTIFICATE-----\nMIIDqDCCA0+gAwIBAgITBs6C2ai1fBBIQ5lNrNeeKGM+XzAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmHWo0mogvX1J61xysTqsn\n6qV06wxUH68/QJ2aDIka6beTrDoTZv3mIkyPxFTPy+9idjgSAERlBsDirgO2/NiY\no4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBSv+Ju8XTSl3tA+\nFCldDY4lrbClhTAfBgNVHSMEGDAWgBSjQQaskG3RSut1pUoQmbOxoYtK9zA9BgNV\nHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9DQTA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLnRydXN0d2F2\nZS5jb20vVFdHUDI1NkNBLmNybDByBggrBgEFBQcBAQRmMGQwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8v\nc3NsLnRydXN0d2F2ZS5jb20vaXNzdWVycy9UV0dQMjU2Q0EuY3J0MAoGCCqGSM49\nBAMCA0cAMEQCIGa3JyBYlXxRN5GIIulLaDxnANNRnY4j1Et166CCC5h+AiAVUlzJ\nIJTfUDBU7jnSTKSw/F+bLIPvaC6frMZv0h+RTA==\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-384 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C58D91DEF98A7F9EB2666CFE7BE1EE\n-----BEGIN CERTIFICATE-----\nMIIDqjCCAy+gAwIBAgITBy8w6cWNkd75in+esmZs/nvh7jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTM4NCBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwdjAQBgcqhkjO\nPQIBBgUrgQQAIgNiAAR4nTJ6MvtPBb7+L3tklhdDw0tr5FNY5Q1hsp6NR5OzZVeG\nx/X3VrCvkOsae1OEZHNqWCnnI1s/ix9qn/2+q0pPpXrT6wkN/HOQzpQaJWzCF7yX\nIfIB0o+x1Pr17UOX2qGjggF1MIIBcTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud\nDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDBDAdBgNVHQ4EFgQUJd3xyUp6\n6EP6L9hCmkRrWAcU2mwwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ymB07I552+gpAw\nQQYDVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMu\nc2VjdXJldHJ1c3QuY29tL0NBMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu\nc2VjdXJldHJ1c3QuY29tL1RXR1AzODRDQS5jcmwweAYIKwYBBQUHAQEEbDBqMCgG\nCCsGAQUFBzABhhxodHRwOi8vb2NzcC5zZWN1cmV0cnVzdC5jb20vMD4GCCsGAQUF\nBzAChjJodHRwOi8vY2VydHMuc2VjdXJldHJ1c3QuY29tL2lzc3VlcnMvVFdHUDM4\nNENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA8X5zwZHtdHjLIn60rwG3Z3NAa6cU\n6gOFxyF+ksTCXvWCUP0oFUqsRPMKMYE2mtdQAjEA2diuEHTPUgCQ0ynhLjged8BO\nFyzL3UlFieGGp90v58gUpfjoFq0BReAw7MPYo/Qa\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9B07A17CC5376157813389A2930A44A\n-----BEGIN CERTIFICATE-----\nMIID1TCCA1ygAwIBAgITBs6C2bB6F8xTdhV4EziaKTCkSjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAASxlBEflNumTKsypgdOscM2x6ZRpQGSyB4B\nhJScRQI81UhZvzYSwxPWcxNZwFQoV457HfqR51pviJnHltRS8MJhJ9Q9Rf1sSmy4\nW6SPsM9qnBjwfBRxghByIsEIaTW/PKyjggFpMIIBZTASBgNVHRMBAf8ECDAGAQH/\nAgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4E\nFgQUp6etGGS1u/oGGEfIwJ68Zf9pAWAwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ym\nB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBz\nOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDov\nL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYIKwYBBQUHAQEEZjBk\nMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA6BggrBgEF\nBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHUDM4NENB\nLmNydDAKBggqhkjOPQQDAwNnADBkAjA6fS1jRjt+DvnWSI58v4lX+8DCXbdEhDaB\nbBOS/rXwS/ntsFXqTf0B90GPv3AWlFMCMBbz6nXMwX0jKRkaFZOZx9tvwUapdq7M\n6jYpT/NnAzH68x1t3/7ysZ8lPuKIqAwdKQ==\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A331594530006781829387E40DBCB6\n-----BEGIN CERTIFICATE-----\nMIID4zCCA2igAwIBAgITBs6C2aMxWUUwAGeBgpOH5A28tjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABKcVGieqBjW3BuVza9VhkBlpGLHLZqQg\nI0GXaTpt5CogNWz6BmlZ1yAPjRnDUVfVwl57ATRtV7u+5TPFzKZ+RheFVc0iA8vl\nQ2JINGRz8XLDaivvuygQtFKSzCWn4e66cKOCAXMwggFvMBIGA1UdEwEB/wQIMAYB\nAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF\nBQcDATAdBgNVHQ4EFgQUMFfit09gayJACkNfT/oNzXO8JCcwHwYDVR0jBBgwFoAU\nVamEidLBMr0Yy2ymB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYB\nBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAs\noCqgKIYmaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYI\nKwYBBQUHAQEEZjBkMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUu\nY29tLzA6BggrBgEFBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3Vl\ncnMvVFdHUDM4NENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA6pScrGT+SruK7iON\n7iDJZfhQsjfQIhaq9sHiEXd89B8ibWOb57no/K265dPxeuALAjEA27NTMZM344eT\nX3df9B22dY5ZshsUMIiRcMo1K4B/GBO8SIA0jParkHS5g4WO5K7O\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A9D8E29837EF90BEAF59DC6551BED6\n-----BEGIN CERTIFICATE-----\nMIID5jCCA2ygAwIBAgITBs6C2anY4pg375C+r1ncZVG+1jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATvG09PrsO8UQZhH5Zw54rwgcUw\nKjC9D2V3myjD5WOa8uxdTL8PzdwPk4TCcSf6UUG1Tt74j/I+vBOi2tgMcDt68Zld\nvTj+jZT1BBYTQtYh6/dOUjmiapQU5XqoFMRNubGjggFzMIIBbzASBgNVHRMBAf8E\nCDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYI\nKwYBBQUHAwEwHQYDVR0OBBYEFDoXwH5iO1eguEDKzDRHzZZ+/AmIMB8GA1UdIwQY\nMBaAFFWphInSwTK9GMtspgdOyOedvoKQMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgG\nCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1UdHwQw\nMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMzg0Q0EuY3Js\nMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9p\nc3N1ZXJzL1RXR1AzODRDQS5jcnQwCgYIKoZIzj0EAwMDaAAwZQIwMyHlVCVMacxP\nO0fC+uc4M7Eq1F9woaWBmLSSNC6EWe3nShMqsR9HrNWrOHBHucNWAjEArwrzEM8g\nJkR4iZxbyYNIn2sNEkNZt2pxqJn4G2cDDDFfOarykKVzP1aJ9OMdYUvs\n-----END CERTIFICATE-----\n\nTrustwave S/MIME SHA256 CA, Level 1\nXRamp Security Services Inc\n3A83B71EE02C3CCA1CE1A2643E9B66EA\n-----BEGIN CERTIFICATE-----\nMIIFHTCCBAWgAwIBAgIQOoO3HuAsPMoc4aJkPptm6jANBgkqhkiG9w0BAQsFADCB\ngjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk\nMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY\nUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQxMDAxMTky\nMjM4WhcNMjQwOTI4MTkyMjM4WjCBpDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCEls\nbGlub2lzMRAwDgYDVQQHEwdDaGljYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9s\nZGluZ3MsIEluYy4xLDAqBgNVBAMTI1RydXN0d2F2ZSBTL01JTUUgU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4c5I5giD0wEh+RuoLIJkD7a6mBlm\n+YzTtXSefGejVVYtpjclkUl4C4hEfQMCUcrBnU3ORHVprXi/Q82dKNFPac8FI9bj\n8mtq0cjdSDfXJKfdf52wPXnTjASwKyhJt+CoJik+Fz72KAkjxi+OUSpWdQBeAQra\ndbtu4UGFTgPcuU/cwpF8J0g4CGk/saVKkkJNpq5wqpfQRYl025FyKbzmRjqhB/Ta\npoHlbHMQ7aeoZ+qtDC+eWnE3AqTUHx14Z5fegjLQRmPWqqdeZafthouglbEuHt4A\neyzefTDNwyXjUiRD/n0kaNNW+lcsLpw7ouw1OU8mwQ0C7LoPJljpXRjvOwIDAQAB\no4IBaTCCAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUDDOjV6rjq9ZL\ncBs2nqPtYVDmr3QwDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYPKwYBBAGB\n7RgDAwMFBAMDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29t\nL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29j\nc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwQwHwYD\nVR0jBBgwFoAUxk+iPQZjhAmczmLkBKyNXLXpthswDQYJKoZIhvcNAQELBQADggEB\nAIdGLHufUegzFKVBQVWs3YAIFqCcJvdak14TMRImxJsnQWLz+jIW0olC0JATY6Ng\nxAbjIJA4wtW/tA+rgE6WcA5y3bLN3bRMQVDSu6X26hkVjvwo4/VYykOp3e9Cqlfe\ngJAsrqBQKXkUpEbYEmmorXxj6/74e//xwXTz0XS0BS9cXhONlTQffyJnMeLaunzQ\nS1x/MvALfPCHCZCTOfLDmwylKtHHu+V2Ks0HV+ZrzCBRR5W3MhGTU7PpNEMQwyGF\n+MG5eZTd0jyxOSOjaXQm7iDh0tG/iKZZegn5AhNdaHE74QEHTjK+teLQlo60QGBk\necyzakgVYZ/Ezalz8nQwhCA=\n-----END CERTIFICATE-----\n\nTrustwave XRamp Global Extended Validation CA, Level 1\nXRamp Security Services Inc\n00D3D519C2B2EB5C7040F64CBC957BBD2C\n-----BEGIN CERTIFICATE-----\nMIIFMDCCBBigAwIBAgIRANPVGcKy61xwQPZMvJV7vSwwDQYJKoZIhvcNAQELBQAw\ngYIxCzAJBgNVBAYTAlVTMR4wHAYDVQQLExV3d3cueHJhbXBzZWN1cml0eS5jb20x\nJDAiBgNVBAoTG1hSYW1wIFNlY3VyaXR5IFNlcnZpY2VzIEluYzEtMCsGA1UEAxMk\nWFJhbXAgR2xvYmFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MDgxMjIw\nMTczMVoXDTI1MDgwOTIwMTczMVowgbcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJ\nbGxpbm9pczEQMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhv\nbGRpbmdzLCBJbmMuMT8wPQYDVQQDEzZUcnVzdHdhdmUgWFJhbXAgR2xvYmFsIEV4\ndGVuZGVkIFZhbGlkYXRpb24gQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNh\nQHRydXN0d2F2ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9\nAAbj9SknrNJT9pDatGvlR386KRi0SkqIOGr+C5W91+8E8PqydEHwjrnrWt/MTLGO\n+2kfEO3TEJlWxQQqbHy8SdhjCANefLzOT1cfTfjroWBIS9yiHpBIQytAaz/td95Y\n+JKrRBVCnIR/wB5qMMQ982RWwqggD763XLma0c1AIndsZL+dXp1zET4KBreoxn3q\nRYzMIsZIL2mAJoiCOTYuOGrOMVuaQn0HSu3K7bU+CpkdLQ/j+ikcQiI10IL9oOcO\nU9Gnt/hRyUX66Gk91RIpYXhla2tIYrg7ezrAnFoZIZCb891JjFtbSEOvAAK9F5d6\nfkkjPx0432o/v1c5GRFPAgMBAAGjggFoMIIBZDASBgNVHRMBAf8ECDAGAQH/AgEA\nMB0GA1UdDgQWBBTFzrk7QkXAzQnlaOhIOoNdbI6rGDAOBgNVHQ8BAf8EBAMCAYYw\nPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRy\ndXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVz\ndHdhdmUuY29tL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZ\naHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3Nz\nbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwHQYDVR0lBBYwFAYIKwYB\nBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMZPoj0GY4QJnM5i5ASsjVy16bYb\nMA0GCSqGSIb3DQEBCwUAA4IBAQCA2N/WVTGYRGNTuvF2qKWPrQUx0/6pKmGqELl6\nNXs1bwRXCci98SkeNjiaa2dHEwcGR43/M1Y0nekXP8QCEFVqGOwaY0pnTb8wL+CI\n/HTp1zfmoCYNvtzt1fIq/+9ynLYEjX8rsrf51HIEjJJK8K3k/Ub3cFT+yJKNN2YN\nJS0IvJYlbpqS6VbcInwLcW7WvJmXUuL7t0Vtt0d2q1h5UdnJQP+skiOmN/B0zPut\nbRC4v5pNGJJmwbk58UlOSeviH2qzDGutamOJ6dFNWqQFoZorAT7fUsr3WDA4HKtx\neraYdCIRJX7weW9xpdMNsVO7Wy/Ma7Fz9fzKnOH5mnInBOof\n-----END CERTIFICATE-----\n\nSecure Global CA\nSecureTrust Corporation\n075622A4E8D48A894DF413C8F0F8EAA5\n-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx\nMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg\nQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ\niQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa\n/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ\njnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI\nHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7\nsFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w\ngZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw\nKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG\nAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L\nURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO\nH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm\nI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY\niNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc\nf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW\n-----END CERTIFICATE-----\n\nSecureTrust CA\nSecureTrust Corporation\n0CF08E5C0816A5AD427FF0EB271859D0\n-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz\nMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv\ncnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz\nZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO\n0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao\nwW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj\n7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS\n8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT\nBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg\nJYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3\n6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/\n3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm\nD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS\nCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR\n3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=\n-----END CERTIFICATE-----\n\nTrustwave Global Certification Authority\nTrustwave Holdings, Inc.\n05F70E86DA49F346352EBAB2\n-----BEGIN CERTIFICATE-----\nMIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw\nCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x\nITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1\nc3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx\nOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI\nSWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI\nb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn\nswuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu\n7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8\n1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW\n80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP\nJqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l\nRtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw\nhI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10\ncoos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc\nBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n\ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud\nDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W\n0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe\nuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q\nlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB\naCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE\nsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT\nMaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe\nqu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh\nVicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8\nh6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9\nEEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK\nyeC2nOnOcXHebD8WpHk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P256 Certification Authority\nTrustwave Holdings, Inc.\n0D6A5F083F285C3E5195DF5D\n-----BEGIN CERTIFICATE-----\nMIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG\nSM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN\nFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w\nDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw\nCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh\nDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P384 Certification Authority\nTrustwave Holdings, Inc.\n08BD85976C9927A48068473B\n-----BEGIN CERTIFICATE-----\nMIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ\nj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF\n1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\nA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3\nAZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC\nMGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu\nSw==\n-----END CERTIFICATE-----\n";
|
|
47
20
|
|
|
48
21
|
var PKG_NAME = "@hpcc-js/comms";
|
|
49
|
-
var PKG_VERSION = "2.
|
|
50
|
-
var BUILD_VERSION = "2.
|
|
22
|
+
var PKG_VERSION = "2.68.0";
|
|
23
|
+
var BUILD_VERSION = "2.99.0";
|
|
51
24
|
|
|
52
25
|
/*! *****************************************************************************
|
|
53
26
|
Copyright (c) Microsoft Corporation.
|
|
@@ -136,10 +109,10 @@ function __spreadArray(to, from, pack) {
|
|
|
136
109
|
ar[i] = from[i];
|
|
137
110
|
}
|
|
138
111
|
}
|
|
139
|
-
return to.concat(ar ||
|
|
112
|
+
return to.concat(ar || from);
|
|
140
113
|
}
|
|
141
114
|
|
|
142
|
-
var logger
|
|
115
|
+
var logger = util.scopedLogger("comms/connection.ts");
|
|
143
116
|
function instanceOfIOptions(object) {
|
|
144
117
|
return "baseUrl" in object;
|
|
145
118
|
}
|
|
@@ -178,20 +151,20 @@ function serializeRequest(obj, encodeRequest, prefix) {
|
|
|
178
151
|
obj[key].forEach(function (row, i) {
|
|
179
152
|
if (typeof row === "object") {
|
|
180
153
|
includeItemCount_1 = true;
|
|
181
|
-
str.push(serializeRequest(row, encodeRequest, prefix + encode(
|
|
154
|
+
str.push(serializeRequest(row, encodeRequest, prefix + encode(key + "." + i, encodeRequest)));
|
|
182
155
|
}
|
|
183
156
|
else {
|
|
184
|
-
str.push(prefix + encode(
|
|
157
|
+
str.push(prefix + encode(key + "_i" + i, encodeRequest) + "=" + serializeRequest(row, encodeRequest));
|
|
185
158
|
}
|
|
186
159
|
});
|
|
187
160
|
if (includeItemCount_1) {
|
|
188
|
-
str.push(prefix + encode(
|
|
161
|
+
str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key].length);
|
|
189
162
|
}
|
|
190
163
|
}
|
|
191
164
|
else if (typeof obj[key] === "object") {
|
|
192
165
|
if (obj[key] && obj[key]["Item"] instanceof Array) { // Specific to ws_machine.GetTargetClusterInfo?
|
|
193
166
|
str.push(serializeRequest(obj[key]["Item"], encodeRequest, prefix + encode(key, encodeRequest)));
|
|
194
|
-
str.push(prefix + encode(
|
|
167
|
+
str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key]["Item"].length);
|
|
195
168
|
}
|
|
196
169
|
else {
|
|
197
170
|
str.push(serializeRequest(obj[key], encodeRequest, prefix + encode(key, encodeRequest)));
|
|
@@ -241,12 +214,12 @@ function jsonp(opts, action, request, responseType, header) {
|
|
|
241
214
|
respondedTimeout -= respondedTick;
|
|
242
215
|
if (respondedTimeout <= 0) {
|
|
243
216
|
clearInterval(progress);
|
|
244
|
-
logger
|
|
217
|
+
logger.error("Request timeout: " + script.src);
|
|
245
218
|
doCallback();
|
|
246
219
|
reject(Error("Request timeout: " + script.src));
|
|
247
220
|
}
|
|
248
221
|
else {
|
|
249
|
-
logger
|
|
222
|
+
logger.debug("Request pending (" + respondedTimeout / 1000 + " sec): " + script.src);
|
|
250
223
|
}
|
|
251
224
|
}
|
|
252
225
|
}, respondedTick);
|
|
@@ -257,7 +230,7 @@ function jsonp(opts, action, request, responseType, header) {
|
|
|
257
230
|
});
|
|
258
231
|
}
|
|
259
232
|
function authHeader(opts) {
|
|
260
|
-
return opts.userID ? { Authorization: "Basic "
|
|
233
|
+
return opts.userID ? { Authorization: "Basic " + btoa(opts.userID + ":" + opts.password) } : {};
|
|
261
234
|
}
|
|
262
235
|
// _omitMap is a workaround for older HPCC-Platform instances without credentials ---
|
|
263
236
|
var _omitMap = {};
|
|
@@ -316,7 +289,7 @@ function get(opts, action, request, responseType, header) {
|
|
|
316
289
|
abortSignal = request.abortSignal_;
|
|
317
290
|
delete request.abortSignal_;
|
|
318
291
|
}
|
|
319
|
-
return doFetch(opts,
|
|
292
|
+
return doFetch(opts, action + "?" + serializeRequest(request, opts.encodeRequest), {
|
|
320
293
|
method: "get",
|
|
321
294
|
signal: abortSignal
|
|
322
295
|
}, __assign({}, header), responseType);
|
|
@@ -395,7 +368,7 @@ var ESPExceptions = /** @class */ (function (_super) {
|
|
|
395
368
|
_this.Source = exceptions.Source;
|
|
396
369
|
_this.Exception = exceptions.Exception;
|
|
397
370
|
if (exceptions.Exception.length) {
|
|
398
|
-
_this.message =
|
|
371
|
+
_this.message = exceptions.Exception[0].Code + ": " + exceptions.Exception[0].Message;
|
|
399
372
|
}
|
|
400
373
|
else {
|
|
401
374
|
_this.message = "";
|
|
@@ -715,7 +688,7 @@ var EclService = /** @class */ (function (_super) {
|
|
|
715
688
|
};
|
|
716
689
|
EclService.prototype.requestJson = function (querySet, queryId) {
|
|
717
690
|
// http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display
|
|
718
|
-
return this._connection.send("example/request/query/"
|
|
691
|
+
return this._connection.send("example/request/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
|
|
719
692
|
var requestSchema = JSON.parse(response);
|
|
720
693
|
for (var key in requestSchema) {
|
|
721
694
|
return requestSchema[key];
|
|
@@ -725,7 +698,7 @@ var EclService = /** @class */ (function (_super) {
|
|
|
725
698
|
};
|
|
726
699
|
EclService.prototype.responseJson = function (querySet, queryId) {
|
|
727
700
|
// http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display
|
|
728
|
-
return this._connection.send("example/response/query/"
|
|
701
|
+
return this._connection.send("example/response/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
|
|
729
702
|
var responseSchema = JSON.parse(response);
|
|
730
703
|
for (var key in responseSchema) {
|
|
731
704
|
return responseSchema[key].Results;
|
|
@@ -741,7 +714,7 @@ var EclService = /** @class */ (function (_super) {
|
|
|
741
714
|
};
|
|
742
715
|
EclService.prototype.submit = function (querySet, queryId, request) {
|
|
743
716
|
// http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json
|
|
744
|
-
var action = "submit/query/"
|
|
717
|
+
var action = "submit/query/" + querySet + "/" + queryId;
|
|
745
718
|
return this._connection.send(action, request, "json2").then(function (response) {
|
|
746
719
|
if (response.Results && response.Results.Exception) {
|
|
747
720
|
throw new ESPExceptions(action, request, {
|
|
@@ -791,7 +764,7 @@ function ascendingComparator(f) {
|
|
|
791
764
|
};
|
|
792
765
|
}
|
|
793
766
|
|
|
794
|
-
bisector(ascending);
|
|
767
|
+
var ascendingBisect = bisector(ascending);
|
|
795
768
|
|
|
796
769
|
function number(x) {
|
|
797
770
|
return x === null ? NaN : +x;
|
|
@@ -1012,18 +985,13 @@ var StoreService = /** @class */ (function (_super) {
|
|
|
1012
985
|
return StoreService;
|
|
1013
986
|
}(Service));
|
|
1014
987
|
|
|
1015
|
-
/*
|
|
1016
|
-
Response structures generated via:
|
|
1017
|
-
* http://localhost:8010/WsTopology/TpLogicalClusterQuery?respjson_
|
|
1018
|
-
* http://json2ts.com/
|
|
1019
|
-
*/
|
|
1020
|
-
exports.TpLogicalClusterQuery = void 0;
|
|
1021
988
|
(function (TpLogicalClusterQuery) {
|
|
989
|
+
var RoxieQueueFilter;
|
|
1022
990
|
(function (RoxieQueueFilter) {
|
|
1023
991
|
RoxieQueueFilter["All"] = "All";
|
|
1024
992
|
RoxieQueueFilter["QueriesOnly"] = "QueriesOnly";
|
|
1025
993
|
RoxieQueueFilter["WorkunitsOnly"] = "WorkunitsOnly";
|
|
1026
|
-
})(TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
|
|
994
|
+
})(RoxieQueueFilter = TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
|
|
1027
995
|
})(exports.TpLogicalClusterQuery || (exports.TpLogicalClusterQuery = {}));
|
|
1028
996
|
var TopologyService = /** @class */ (function (_super) {
|
|
1029
997
|
__extends(TopologyService, _super);
|
|
@@ -1079,13 +1047,6 @@ var TopologyService = /** @class */ (function (_super) {
|
|
|
1079
1047
|
return TopologyService;
|
|
1080
1048
|
}(Service));
|
|
1081
1049
|
|
|
1082
|
-
/*
|
|
1083
|
-
Response structures generated via:
|
|
1084
|
-
* http://localhost:8010/WsWorkunits/WUInfo?reqjson_
|
|
1085
|
-
* http://localhost:8010/WsWorkunits/WUInfo?respjson_
|
|
1086
|
-
* http://json2ts.com/
|
|
1087
|
-
*/
|
|
1088
|
-
exports.WUStateID = void 0;
|
|
1089
1050
|
(function (WUStateID) {
|
|
1090
1051
|
WUStateID[WUStateID["Unknown"] = 0] = "Unknown";
|
|
1091
1052
|
WUStateID[WUStateID["Compiled"] = 1] = "Compiled";
|
|
@@ -1110,8 +1071,8 @@ exports.WUStateID = void 0;
|
|
|
1110
1071
|
function isECLResult(_) {
|
|
1111
1072
|
return typeof _.Name === "string";
|
|
1112
1073
|
}
|
|
1113
|
-
exports.WUUpdate = void 0;
|
|
1114
1074
|
(function (WUUpdate) {
|
|
1075
|
+
var Action;
|
|
1115
1076
|
(function (Action) {
|
|
1116
1077
|
Action[Action["Unknown"] = 0] = "Unknown";
|
|
1117
1078
|
Action[Action["Compile"] = 1] = "Compile";
|
|
@@ -1123,7 +1084,7 @@ exports.WUUpdate = void 0;
|
|
|
1123
1084
|
Action[Action["Resume"] = 7] = "Resume";
|
|
1124
1085
|
Action[Action["Debug"] = 8] = "Debug";
|
|
1125
1086
|
Action[Action["__size"] = 9] = "__size";
|
|
1126
|
-
})(WUUpdate.Action || (WUUpdate.Action = {}));
|
|
1087
|
+
})(Action = WUUpdate.Action || (WUUpdate.Action = {}));
|
|
1127
1088
|
})(exports.WUUpdate || (exports.WUUpdate = {}));
|
|
1128
1089
|
function isWUQueryECLWorkunit(_) {
|
|
1129
1090
|
return _.TotalClusterTime !== undefined;
|
|
@@ -1325,8 +1286,6 @@ var day = newInterval(function(date) {
|
|
|
1325
1286
|
return date.getDate() - 1;
|
|
1326
1287
|
});
|
|
1327
1288
|
|
|
1328
|
-
var timeDay = day;
|
|
1329
|
-
|
|
1330
1289
|
function weekday(i) {
|
|
1331
1290
|
return newInterval(function(date) {
|
|
1332
1291
|
date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
|
|
@@ -1340,11 +1299,11 @@ function weekday(i) {
|
|
|
1340
1299
|
|
|
1341
1300
|
var sunday = weekday(0);
|
|
1342
1301
|
var monday = weekday(1);
|
|
1343
|
-
weekday(2);
|
|
1344
|
-
weekday(3);
|
|
1302
|
+
var tuesday = weekday(2);
|
|
1303
|
+
var wednesday = weekday(3);
|
|
1345
1304
|
var thursday = weekday(4);
|
|
1346
|
-
weekday(5);
|
|
1347
|
-
weekday(6);
|
|
1305
|
+
var friday = weekday(5);
|
|
1306
|
+
var saturday = weekday(6);
|
|
1348
1307
|
|
|
1349
1308
|
var year = newInterval(function(date) {
|
|
1350
1309
|
date.setMonth(0, 1);
|
|
@@ -1368,8 +1327,6 @@ year.every = function(k) {
|
|
|
1368
1327
|
});
|
|
1369
1328
|
};
|
|
1370
1329
|
|
|
1371
|
-
var timeYear = year;
|
|
1372
|
-
|
|
1373
1330
|
var utcDay = newInterval(function(date) {
|
|
1374
1331
|
date.setUTCHours(0, 0, 0, 0);
|
|
1375
1332
|
}, function(date, step) {
|
|
@@ -1380,8 +1337,6 @@ var utcDay = newInterval(function(date) {
|
|
|
1380
1337
|
return date.getUTCDate() - 1;
|
|
1381
1338
|
});
|
|
1382
1339
|
|
|
1383
|
-
var utcDay$1 = utcDay;
|
|
1384
|
-
|
|
1385
1340
|
function utcWeekday(i) {
|
|
1386
1341
|
return newInterval(function(date) {
|
|
1387
1342
|
date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
|
|
@@ -1395,11 +1350,11 @@ function utcWeekday(i) {
|
|
|
1395
1350
|
|
|
1396
1351
|
var utcSunday = utcWeekday(0);
|
|
1397
1352
|
var utcMonday = utcWeekday(1);
|
|
1398
|
-
utcWeekday(2);
|
|
1399
|
-
utcWeekday(3);
|
|
1353
|
+
var utcTuesday = utcWeekday(2);
|
|
1354
|
+
var utcWednesday = utcWeekday(3);
|
|
1400
1355
|
var utcThursday = utcWeekday(4);
|
|
1401
|
-
utcWeekday(5);
|
|
1402
|
-
utcWeekday(6);
|
|
1356
|
+
var utcFriday = utcWeekday(5);
|
|
1357
|
+
var utcSaturday = utcWeekday(6);
|
|
1403
1358
|
|
|
1404
1359
|
var utcYear = newInterval(function(date) {
|
|
1405
1360
|
date.setUTCMonth(0, 1);
|
|
@@ -1423,8 +1378,6 @@ utcYear.every = function(k) {
|
|
|
1423
1378
|
});
|
|
1424
1379
|
};
|
|
1425
1380
|
|
|
1426
|
-
var utcYear$1 = utcYear;
|
|
1427
|
-
|
|
1428
1381
|
function localDate(d) {
|
|
1429
1382
|
if (0 <= d.y && d.y < 100) {
|
|
1430
1383
|
var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
|
|
@@ -1613,7 +1566,7 @@ function formatLocale(locale) {
|
|
|
1613
1566
|
return function(string) {
|
|
1614
1567
|
var d = newDate(1900, undefined, 1),
|
|
1615
1568
|
i = parseSpecifier(d, specifier, string += "", 0),
|
|
1616
|
-
week, day;
|
|
1569
|
+
week, day$1;
|
|
1617
1570
|
if (i != string.length) return null;
|
|
1618
1571
|
|
|
1619
1572
|
// If a UNIX timestamp is specified, return it.
|
|
@@ -1634,25 +1587,25 @@ function formatLocale(locale) {
|
|
|
1634
1587
|
if (d.V < 1 || d.V > 53) return null;
|
|
1635
1588
|
if (!("w" in d)) d.w = 1;
|
|
1636
1589
|
if ("Z" in d) {
|
|
1637
|
-
week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
|
|
1638
|
-
week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
|
|
1639
|
-
week = utcDay
|
|
1590
|
+
week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay();
|
|
1591
|
+
week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week);
|
|
1592
|
+
week = utcDay.offset(week, (d.V - 1) * 7);
|
|
1640
1593
|
d.y = week.getUTCFullYear();
|
|
1641
1594
|
d.m = week.getUTCMonth();
|
|
1642
1595
|
d.d = week.getUTCDate() + (d.w + 6) % 7;
|
|
1643
1596
|
} else {
|
|
1644
|
-
week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
|
|
1645
|
-
week = day > 4 || day === 0 ? monday.ceil(week) : monday(week);
|
|
1646
|
-
week =
|
|
1597
|
+
week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay();
|
|
1598
|
+
week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week);
|
|
1599
|
+
week = day.offset(week, (d.V - 1) * 7);
|
|
1647
1600
|
d.y = week.getFullYear();
|
|
1648
1601
|
d.m = week.getMonth();
|
|
1649
1602
|
d.d = week.getDate() + (d.w + 6) % 7;
|
|
1650
1603
|
}
|
|
1651
1604
|
} else if ("W" in d || "U" in d) {
|
|
1652
1605
|
if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
|
|
1653
|
-
day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
|
|
1606
|
+
day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
|
|
1654
1607
|
d.m = 0;
|
|
1655
|
-
d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
|
|
1608
|
+
d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7;
|
|
1656
1609
|
}
|
|
1657
1610
|
|
|
1658
1611
|
// If a time zone is specified, all fields are interpreted as UTC and then
|
|
@@ -1938,7 +1891,7 @@ function formatHour12(d, p) {
|
|
|
1938
1891
|
}
|
|
1939
1892
|
|
|
1940
1893
|
function formatDayOfYear(d, p) {
|
|
1941
|
-
return pad(1 +
|
|
1894
|
+
return pad(1 + day.count(year(d), d), p, 3);
|
|
1942
1895
|
}
|
|
1943
1896
|
|
|
1944
1897
|
function formatMilliseconds(d, p) {
|
|
@@ -1967,7 +1920,7 @@ function formatWeekdayNumberMonday(d) {
|
|
|
1967
1920
|
}
|
|
1968
1921
|
|
|
1969
1922
|
function formatWeekNumberSunday(d, p) {
|
|
1970
|
-
return pad(sunday.count(
|
|
1923
|
+
return pad(sunday.count(year(d) - 1, d), p, 2);
|
|
1971
1924
|
}
|
|
1972
1925
|
|
|
1973
1926
|
function dISO(d) {
|
|
@@ -1977,7 +1930,7 @@ function dISO(d) {
|
|
|
1977
1930
|
|
|
1978
1931
|
function formatWeekNumberISO(d, p) {
|
|
1979
1932
|
d = dISO(d);
|
|
1980
|
-
return pad(thursday.count(
|
|
1933
|
+
return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2);
|
|
1981
1934
|
}
|
|
1982
1935
|
|
|
1983
1936
|
function formatWeekdayNumberSunday(d) {
|
|
@@ -1985,7 +1938,7 @@ function formatWeekdayNumberSunday(d) {
|
|
|
1985
1938
|
}
|
|
1986
1939
|
|
|
1987
1940
|
function formatWeekNumberMonday(d, p) {
|
|
1988
|
-
return pad(monday.count(
|
|
1941
|
+
return pad(monday.count(year(d) - 1, d), p, 2);
|
|
1989
1942
|
}
|
|
1990
1943
|
|
|
1991
1944
|
function formatYear(d, p) {
|
|
@@ -2027,7 +1980,7 @@ function formatUTCHour12(d, p) {
|
|
|
2027
1980
|
}
|
|
2028
1981
|
|
|
2029
1982
|
function formatUTCDayOfYear(d, p) {
|
|
2030
|
-
return pad(1 + utcDay
|
|
1983
|
+
return pad(1 + utcDay.count(utcYear(d), d), p, 3);
|
|
2031
1984
|
}
|
|
2032
1985
|
|
|
2033
1986
|
function formatUTCMilliseconds(d, p) {
|
|
@@ -2056,7 +2009,7 @@ function formatUTCWeekdayNumberMonday(d) {
|
|
|
2056
2009
|
}
|
|
2057
2010
|
|
|
2058
2011
|
function formatUTCWeekNumberSunday(d, p) {
|
|
2059
|
-
return pad(utcSunday.count(utcYear
|
|
2012
|
+
return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
|
|
2060
2013
|
}
|
|
2061
2014
|
|
|
2062
2015
|
function UTCdISO(d) {
|
|
@@ -2066,7 +2019,7 @@ function UTCdISO(d) {
|
|
|
2066
2019
|
|
|
2067
2020
|
function formatUTCWeekNumberISO(d, p) {
|
|
2068
2021
|
d = UTCdISO(d);
|
|
2069
|
-
return pad(utcThursday.count(utcYear
|
|
2022
|
+
return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
|
|
2070
2023
|
}
|
|
2071
2024
|
|
|
2072
2025
|
function formatUTCWeekdayNumberSunday(d) {
|
|
@@ -2074,7 +2027,7 @@ function formatUTCWeekdayNumberSunday(d) {
|
|
|
2074
2027
|
}
|
|
2075
2028
|
|
|
2076
2029
|
function formatUTCWeekNumberMonday(d, p) {
|
|
2077
|
-
return pad(utcMonday.count(utcYear
|
|
2030
|
+
return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
|
|
2078
2031
|
}
|
|
2079
2032
|
|
|
2080
2033
|
function formatUTCYear(d, p) {
|
|
@@ -2113,6 +2066,8 @@ function formatUnixTimestampSeconds(d) {
|
|
|
2113
2066
|
}
|
|
2114
2067
|
|
|
2115
2068
|
var locale;
|
|
2069
|
+
var timeFormat;
|
|
2070
|
+
var timeParse;
|
|
2116
2071
|
var utcFormat;
|
|
2117
2072
|
var utcParse;
|
|
2118
2073
|
|
|
@@ -2129,6 +2084,8 @@ defaultLocale({
|
|
|
2129
2084
|
|
|
2130
2085
|
function defaultLocale(definition) {
|
|
2131
2086
|
locale = formatLocale(definition);
|
|
2087
|
+
timeFormat = locale.format;
|
|
2088
|
+
timeParse = locale.parse;
|
|
2132
2089
|
utcFormat = locale.utcFormat;
|
|
2133
2090
|
utcParse = locale.utcParse;
|
|
2134
2091
|
return locale;
|
|
@@ -2226,12 +2183,12 @@ var GraphCache = /** @class */ (function (_super) {
|
|
|
2226
2183
|
}
|
|
2227
2184
|
return GraphCache;
|
|
2228
2185
|
}(util.Cache));
|
|
2229
|
-
function walkXmlJson
|
|
2186
|
+
function walkXmlJson(node, callback, stack) {
|
|
2230
2187
|
stack = stack || [];
|
|
2231
2188
|
stack.push(node);
|
|
2232
2189
|
callback(node.name, node.$, node.children(), stack);
|
|
2233
2190
|
node.children().forEach(function (childNode) {
|
|
2234
|
-
walkXmlJson
|
|
2191
|
+
walkXmlJson(childNode, callback, stack);
|
|
2235
2192
|
});
|
|
2236
2193
|
stack.pop();
|
|
2237
2194
|
}
|
|
@@ -2280,7 +2237,7 @@ function createXGMMLGraph(id, graphs) {
|
|
|
2280
2237
|
return item._["id"];
|
|
2281
2238
|
});
|
|
2282
2239
|
var stack = [graph.root];
|
|
2283
|
-
walkXmlJson
|
|
2240
|
+
walkXmlJson(graphs, function (tag, attributes, childNodes, _stack) {
|
|
2284
2241
|
var top = stack[stack.length - 1];
|
|
2285
2242
|
switch (tag) {
|
|
2286
2243
|
case "graph":
|
|
@@ -2355,7 +2312,7 @@ function createGraph(scopes) {
|
|
|
2355
2312
|
scopeStack.pop();
|
|
2356
2313
|
}
|
|
2357
2314
|
if (!scopeParent1) {
|
|
2358
|
-
console.log("Missing SG:Parent ("
|
|
2315
|
+
console.log("Missing SG:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2359
2316
|
}
|
|
2360
2317
|
else {
|
|
2361
2318
|
var parent1 = scopeParent1;
|
|
@@ -2365,7 +2322,7 @@ function createGraph(scopes) {
|
|
|
2365
2322
|
case "activity":
|
|
2366
2323
|
var scopeParent2 = subgraphs[scope.parentScope()];
|
|
2367
2324
|
if (!scopeParent2) {
|
|
2368
|
-
console.log("Missing A:Parent ("
|
|
2325
|
+
console.log("Missing A:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2369
2326
|
}
|
|
2370
2327
|
else {
|
|
2371
2328
|
vertices[scope.ScopeName] = scopeParent2.createVertex(scope);
|
|
@@ -2377,7 +2334,7 @@ function createGraph(scopes) {
|
|
|
2377
2334
|
case "function":
|
|
2378
2335
|
var scopeParent3 = vertices[scope.parentScope()];
|
|
2379
2336
|
if (!scopeParent3) {
|
|
2380
|
-
console.log("Missing F:Parent ("
|
|
2337
|
+
console.log("Missing F:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2381
2338
|
}
|
|
2382
2339
|
else {
|
|
2383
2340
|
scopeParent3._.children().push(scope);
|
|
@@ -2389,7 +2346,7 @@ function createGraph(scopes) {
|
|
|
2389
2346
|
var scope = edges[id];
|
|
2390
2347
|
var scopeParent3 = subgraphs[scope.parentScope()];
|
|
2391
2348
|
if (!scopeParent3) {
|
|
2392
|
-
console.log("Missing E:Parent ("
|
|
2349
|
+
console.log("Missing E:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2393
2350
|
}
|
|
2394
2351
|
else {
|
|
2395
2352
|
var parent3 = scopeParent3;
|
|
@@ -2401,7 +2358,7 @@ function createGraph(scopes) {
|
|
|
2401
2358
|
catch (e) {
|
|
2402
2359
|
// const sourceIndex = scope.attr("SourceIndex").RawValue;
|
|
2403
2360
|
// const targetIndex = scope.attr("TargetIndex").RawValue;
|
|
2404
|
-
console.log("Invalid Edge: "
|
|
2361
|
+
console.log("Invalid Edge: " + id);
|
|
2405
2362
|
}
|
|
2406
2363
|
}
|
|
2407
2364
|
}
|
|
@@ -2694,7 +2651,7 @@ var GlobalResultCache = /** @class */ (function (_super) {
|
|
|
2694
2651
|
__extends(GlobalResultCache, _super);
|
|
2695
2652
|
function GlobalResultCache() {
|
|
2696
2653
|
return _super.call(this, function (obj) {
|
|
2697
|
-
return
|
|
2654
|
+
return obj.BaseUrl + "-" + obj.Wuid + "-" + obj.ResultName;
|
|
2698
2655
|
}) || this;
|
|
2699
2656
|
}
|
|
2700
2657
|
return GlobalResultCache;
|
|
@@ -3165,21 +3122,21 @@ var BaseScope = /** @class */ (function (_super) {
|
|
|
3165
3122
|
var label = "";
|
|
3166
3123
|
var rows = [];
|
|
3167
3124
|
label = this.Id;
|
|
3168
|
-
rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">"
|
|
3125
|
+
rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">" + this.Id + "</td></tr>");
|
|
3169
3126
|
if (parentScope) {
|
|
3170
|
-
rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">"
|
|
3127
|
+
rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">" + parentScope.Id + "</td></tr>");
|
|
3171
3128
|
}
|
|
3172
|
-
rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">"
|
|
3129
|
+
rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">" + this.ScopeName + "</td></tr>");
|
|
3173
3130
|
var attrs = this.formattedAttrs();
|
|
3174
3131
|
for (var key in attrs) {
|
|
3175
3132
|
if (key === "Label") {
|
|
3176
3133
|
label = attrs[key];
|
|
3177
3134
|
}
|
|
3178
3135
|
else {
|
|
3179
|
-
rows.push("<tr><td class=\"key\">"
|
|
3136
|
+
rows.push("<tr><td class=\"key\">" + key + "</td><td class=\"value\">" + attrs[key] + "</td></tr>");
|
|
3180
3137
|
}
|
|
3181
3138
|
}
|
|
3182
|
-
return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">"
|
|
3139
|
+
return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">" + label + "</h4>\n <table>\n " + rows.join("") + "\n </table>\n </div>";
|
|
3183
3140
|
};
|
|
3184
3141
|
return BaseScope;
|
|
3185
3142
|
}(util.StateObject));
|
|
@@ -3319,7 +3276,7 @@ var WorkunitCache = /** @class */ (function (_super) {
|
|
|
3319
3276
|
__extends(WorkunitCache, _super);
|
|
3320
3277
|
function WorkunitCache() {
|
|
3321
3278
|
return _super.call(this, function (obj) {
|
|
3322
|
-
return
|
|
3279
|
+
return obj.BaseUrl + "-" + obj.Wuid;
|
|
3323
3280
|
}) || this;
|
|
3324
3281
|
}
|
|
3325
3282
|
return WorkunitCache;
|
|
@@ -4526,12 +4483,12 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
4526
4483
|
var optsStr = "";
|
|
4527
4484
|
for (var key in opts) {
|
|
4528
4485
|
if (opts.hasOwnProperty(key)) {
|
|
4529
|
-
optsStr += " "
|
|
4486
|
+
optsStr += " " + key + "='" + opts[key] + "'";
|
|
4530
4487
|
}
|
|
4531
4488
|
}
|
|
4532
4489
|
return this.connection.WUCDebug({
|
|
4533
4490
|
Wuid: this.Wuid,
|
|
4534
|
-
Command: "<debug:"
|
|
4491
|
+
Command: "<debug:" + command + " uid='" + this.Wuid + "'" + optsStr + "/>"
|
|
4535
4492
|
}).then(function (response) {
|
|
4536
4493
|
return response;
|
|
4537
4494
|
});
|
|
@@ -4662,7 +4619,7 @@ function getECLDefinition(vertex) {
|
|
|
4662
4619
|
column: +_col
|
|
4663
4620
|
};
|
|
4664
4621
|
}
|
|
4665
|
-
throw new Error("Bad definition: "
|
|
4622
|
+
throw new Error("Bad definition: " + vertex._[ATTR_DEFINITION]);
|
|
4666
4623
|
}
|
|
4667
4624
|
function breakpointLocations(graph, path) {
|
|
4668
4625
|
var retVal = [];
|
|
@@ -4851,12 +4808,12 @@ var LogicalFileCache = /** @class */ (function (_super) {
|
|
|
4851
4808
|
__extends(LogicalFileCache, _super);
|
|
4852
4809
|
function LogicalFileCache() {
|
|
4853
4810
|
return _super.call(this, function (obj) {
|
|
4854
|
-
return
|
|
4811
|
+
return obj.BaseUrl + "-" + obj.Cluster + "-" + obj.Name;
|
|
4855
4812
|
}) || this;
|
|
4856
4813
|
}
|
|
4857
4814
|
return LogicalFileCache;
|
|
4858
4815
|
}(util.Cache));
|
|
4859
|
-
var _store
|
|
4816
|
+
var _store = new LogicalFileCache();
|
|
4860
4817
|
var LogicalFile = /** @class */ (function (_super) {
|
|
4861
4818
|
__extends(LogicalFile, _super);
|
|
4862
4819
|
function LogicalFile(optsConnection, Cluster, Name) {
|
|
@@ -5139,14 +5096,14 @@ var LogicalFile = /** @class */ (function (_super) {
|
|
|
5139
5096
|
configurable: true
|
|
5140
5097
|
});
|
|
5141
5098
|
LogicalFile.attach = function (optsConnection, Cluster, Name) {
|
|
5142
|
-
var retVal = _store
|
|
5099
|
+
var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster: Cluster, Name: Name }, function () {
|
|
5143
5100
|
return new LogicalFile(optsConnection, Cluster, Name);
|
|
5144
5101
|
});
|
|
5145
5102
|
return retVal;
|
|
5146
5103
|
};
|
|
5147
5104
|
LogicalFile.prototype.filePartsOnCluster = function () {
|
|
5148
5105
|
var _a;
|
|
5149
|
-
return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || [])
|
|
5106
|
+
return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || []));
|
|
5150
5107
|
};
|
|
5151
5108
|
LogicalFile.prototype.fileParts = function () {
|
|
5152
5109
|
var _a, _b;
|
|
@@ -5593,12 +5550,12 @@ var StoreCache = /** @class */ (function (_super) {
|
|
|
5593
5550
|
__extends(StoreCache, _super);
|
|
5594
5551
|
function StoreCache() {
|
|
5595
5552
|
return _super.call(this, function (obj) {
|
|
5596
|
-
return
|
|
5553
|
+
return obj.BaseUrl + "-" + obj.Name + ":" + obj.UserSpecific + "-" + obj.Namespace;
|
|
5597
5554
|
}) || this;
|
|
5598
5555
|
}
|
|
5599
5556
|
return StoreCache;
|
|
5600
5557
|
}(util.Cache));
|
|
5601
|
-
var _store = new StoreCache();
|
|
5558
|
+
var _store$1 = new StoreCache();
|
|
5602
5559
|
var ValueChangedMessage = /** @class */ (function (_super) {
|
|
5603
5560
|
__extends(ValueChangedMessage, _super);
|
|
5604
5561
|
function ValueChangedMessage(key, value, oldValue) {
|
|
@@ -5647,7 +5604,7 @@ var Store = /** @class */ (function () {
|
|
|
5647
5604
|
Store.attach = function (optsConnection, Name, Namespace, UserSpecific) {
|
|
5648
5605
|
if (Name === void 0) { Name = "HPCCApps"; }
|
|
5649
5606
|
if (UserSpecific === void 0) { UserSpecific = true; }
|
|
5650
|
-
var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
|
|
5607
|
+
var retVal = _store$1.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
|
|
5651
5608
|
return new Store(optsConnection, Name, Namespace, UserSpecific);
|
|
5652
5609
|
});
|
|
5653
5610
|
return retVal;
|
|
@@ -5671,7 +5628,7 @@ var Store = /** @class */ (function () {
|
|
|
5671
5628
|
_this._dispatch.post(new ValueChangedMessage(key, value, oldValue));
|
|
5672
5629
|
}
|
|
5673
5630
|
}).catch(function (e) {
|
|
5674
|
-
console.error("Store.set(\""
|
|
5631
|
+
console.error("Store.set(\"" + key + "\", \"" + value + "\") failed:", e);
|
|
5675
5632
|
});
|
|
5676
5633
|
};
|
|
5677
5634
|
Store.prototype.get = function (key, broadcast) {
|
|
@@ -5690,7 +5647,7 @@ var Store = /** @class */ (function () {
|
|
|
5690
5647
|
}
|
|
5691
5648
|
return response.Value;
|
|
5692
5649
|
}).catch(function (e) {
|
|
5693
|
-
console.error("Store.get("
|
|
5650
|
+
console.error("Store.get(" + key + ") failed:", e);
|
|
5694
5651
|
return undefined;
|
|
5695
5652
|
});
|
|
5696
5653
|
};
|
|
@@ -5740,7 +5697,7 @@ var Store = /** @class */ (function () {
|
|
|
5740
5697
|
_this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));
|
|
5741
5698
|
}
|
|
5742
5699
|
}).catch(function (e) {
|
|
5743
|
-
console.error("Store.delete("
|
|
5700
|
+
console.error("Store.delete(" + key + ") failed:", e);
|
|
5744
5701
|
});
|
|
5745
5702
|
};
|
|
5746
5703
|
Store.prototype.monitor = function (callback) {
|
|
@@ -5753,7 +5710,7 @@ var TargetClusterCache = /** @class */ (function (_super) {
|
|
|
5753
5710
|
__extends(TargetClusterCache, _super);
|
|
5754
5711
|
function TargetClusterCache() {
|
|
5755
5712
|
return _super.call(this, function (obj) {
|
|
5756
|
-
return
|
|
5713
|
+
return obj.BaseUrl + "-" + obj.Name;
|
|
5757
5714
|
}) || this;
|
|
5758
5715
|
}
|
|
5759
5716
|
return TargetClusterCache;
|
|
@@ -5852,7 +5809,7 @@ var TargetCluster = /** @class */ (function (_super) {
|
|
|
5852
5809
|
var _this = this;
|
|
5853
5810
|
if (request === void 0) { request = {}; }
|
|
5854
5811
|
return this.machineConnection.GetTargetClusterInfo(__assign({ TargetClusters: {
|
|
5855
|
-
Item: [
|
|
5812
|
+
Item: [this.Type + ":" + this.Name]
|
|
5856
5813
|
} }, request)).then(function (response) {
|
|
5857
5814
|
var retVal = [];
|
|
5858
5815
|
for (var _i = 0, _a = response.TargetClusterInfoList.TargetClusterInfo; _i < _a.length; _i++) {
|
|
@@ -6018,7 +5975,7 @@ var Topology = /** @class */ (function (_super) {
|
|
|
6018
5975
|
}
|
|
6019
5976
|
}
|
|
6020
5977
|
}
|
|
6021
|
-
return
|
|
5978
|
+
return rootProtocol + "//" + ip + ":" + port + "/";
|
|
6022
5979
|
});
|
|
6023
5980
|
};
|
|
6024
5981
|
Topology.prototype.fetchTargetClusters = function () {
|
|
@@ -6084,7 +6041,7 @@ var Topology = /** @class */ (function (_super) {
|
|
|
6084
6041
|
return Topology;
|
|
6085
6042
|
}(util.StateObject));
|
|
6086
6043
|
|
|
6087
|
-
util.scopedLogger("clienttools/eclmeta");
|
|
6044
|
+
var logger$2 = util.scopedLogger("clienttools/eclmeta");
|
|
6088
6045
|
var Attr = /** @class */ (function () {
|
|
6089
6046
|
function Attr(xmlAttr) {
|
|
6090
6047
|
this.__attrs = xmlAttr.$;
|
|
@@ -6116,7 +6073,7 @@ var ECLScope = /** @class */ (function () {
|
|
|
6116
6073
|
if (end === void 0) { end = Number.MAX_VALUE; }
|
|
6117
6074
|
this.name = name;
|
|
6118
6075
|
this.type = type;
|
|
6119
|
-
this.sourcePath =
|
|
6076
|
+
this.sourcePath = path.normalize(sourcePath);
|
|
6120
6077
|
this.line = +line - 1;
|
|
6121
6078
|
this.start = +start;
|
|
6122
6079
|
this.body = +body;
|
|
@@ -6241,7 +6198,7 @@ var Source = /** @class */ (function (_super) {
|
|
|
6241
6198
|
fakeNode.appendAttribute("ref", nameParts.join("."));
|
|
6242
6199
|
_this.imports = __spreadArray([
|
|
6243
6200
|
new Import(fakeNode)
|
|
6244
|
-
], _this.parseImports(xmlSource.children("Import"))
|
|
6201
|
+
], _this.parseImports(xmlSource.children("Import")));
|
|
6245
6202
|
return _this;
|
|
6246
6203
|
}
|
|
6247
6204
|
Source.prototype.parseImports = function (imports) {
|
|
@@ -6269,10 +6226,10 @@ var Source = /** @class */ (function (_super) {
|
|
|
6269
6226
|
};
|
|
6270
6227
|
return Source;
|
|
6271
6228
|
}(ECLScope));
|
|
6272
|
-
var isHiddenDirectory = function (source) { return
|
|
6273
|
-
var isDirectory = function (source) { return
|
|
6274
|
-
var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(
|
|
6275
|
-
var modAttrs = function (source) { return
|
|
6229
|
+
var isHiddenDirectory = function (source) { return path.basename(source).indexOf(".") === 0; };
|
|
6230
|
+
var isDirectory = function (source) { return fs.lstatSync(source).isDirectory() && !isHiddenDirectory(source); };
|
|
6231
|
+
var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(path.extname(source).toLowerCase()) >= 0; };
|
|
6232
|
+
var modAttrs = function (source) { return fs.readdirSync(source).map(function (name) { return path.join(source, name); }).filter(function (path) { return isDirectory(path) || isEcl(path); }); };
|
|
6276
6233
|
var File = /** @class */ (function (_super) {
|
|
6277
6234
|
__extends(File, _super);
|
|
6278
6235
|
function File(name, sourcePath) {
|
|
@@ -6291,7 +6248,7 @@ var Folder = /** @class */ (function (_super) {
|
|
|
6291
6248
|
Folder.prototype.suggestions = function () {
|
|
6292
6249
|
return modAttrs(this.sourcePath).map(function (folder) {
|
|
6293
6250
|
return {
|
|
6294
|
-
name:
|
|
6251
|
+
name: path.basename(folder, ".ecl"),
|
|
6295
6252
|
type: "folder"
|
|
6296
6253
|
};
|
|
6297
6254
|
});
|
|
@@ -6318,7 +6275,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6318
6275
|
}).then(function (paths) {
|
|
6319
6276
|
for (var _i = 0, _a = ["ECLCC_ECLLIBRARY_PATH", "ECLCC_PLUGIN_PATH"]; _i < _a.length; _i++) {
|
|
6320
6277
|
var knownFolder = _a[_i];
|
|
6321
|
-
if (paths[knownFolder] &&
|
|
6278
|
+
if (paths[knownFolder] && fs.existsSync(paths[knownFolder])) {
|
|
6322
6279
|
_this.walkChildFolders(paths[knownFolder], paths[knownFolder]);
|
|
6323
6280
|
}
|
|
6324
6281
|
}
|
|
@@ -6326,7 +6283,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6326
6283
|
});
|
|
6327
6284
|
};
|
|
6328
6285
|
Workspace.prototype.primeWorkspace = function () {
|
|
6329
|
-
if (
|
|
6286
|
+
if (fs.existsSync(this._workspacePath)) {
|
|
6330
6287
|
this.visitFolder(this._workspacePath, this._workspacePath);
|
|
6331
6288
|
}
|
|
6332
6289
|
};
|
|
@@ -6344,16 +6301,16 @@ var Workspace = /** @class */ (function () {
|
|
|
6344
6301
|
};
|
|
6345
6302
|
Workspace.prototype.visitFile = function (filePath, refPath, force) {
|
|
6346
6303
|
if (force === void 0) { force = false; }
|
|
6347
|
-
var filePathInfo =
|
|
6348
|
-
var pathNoExt =
|
|
6349
|
-
var name =
|
|
6304
|
+
var filePathInfo = path.parse(filePath);
|
|
6305
|
+
var pathNoExt = path.join(filePathInfo.dir, filePathInfo.name);
|
|
6306
|
+
var name = path.relative(refPath, pathNoExt).split(path.sep).join(".");
|
|
6350
6307
|
if (force || !this._test.has(name)) {
|
|
6351
6308
|
this._test.set(name, new File("", filePath));
|
|
6352
6309
|
}
|
|
6353
6310
|
};
|
|
6354
6311
|
Workspace.prototype.visitFolder = function (folderPath, refPath, force) {
|
|
6355
6312
|
if (force === void 0) { force = false; }
|
|
6356
|
-
var name =
|
|
6313
|
+
var name = path.relative(refPath, folderPath).split(path.sep).join(".");
|
|
6357
6314
|
if (force || !this._test.has(name)) {
|
|
6358
6315
|
this._test.set(name, new Folder(name, folderPath));
|
|
6359
6316
|
this.walkChildFolders(folderPath, refPath, force);
|
|
@@ -6364,7 +6321,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6364
6321
|
if (removeDupID && parentStack[parentStack.length - 1] === nameStack[0]) {
|
|
6365
6322
|
nameStack.shift();
|
|
6366
6323
|
}
|
|
6367
|
-
var stack = __spreadArray(__spreadArray([], parentStack
|
|
6324
|
+
var stack = __spreadArray(__spreadArray([], parentStack), nameStack);
|
|
6368
6325
|
var qid = stack.join(".");
|
|
6369
6326
|
return {
|
|
6370
6327
|
stack: stack,
|
|
@@ -6413,10 +6370,10 @@ var Workspace = /** @class */ (function () {
|
|
|
6413
6370
|
if (depth > 1) {
|
|
6414
6371
|
var sourcePath = source.sourcePath;
|
|
6415
6372
|
while (depth > 1) {
|
|
6416
|
-
sourcePath =
|
|
6373
|
+
sourcePath = path.dirname(sourcePath);
|
|
6417
6374
|
--depth;
|
|
6418
6375
|
}
|
|
6419
|
-
this.visitFolder(sourcePath,
|
|
6376
|
+
this.visitFolder(sourcePath, path.dirname(sourcePath));
|
|
6420
6377
|
}
|
|
6421
6378
|
}
|
|
6422
6379
|
this.walkSource(source);
|
|
@@ -6427,7 +6384,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6427
6384
|
var metaParser = new MetaParser();
|
|
6428
6385
|
metaParser.parse(metaXML);
|
|
6429
6386
|
this.parseSources(metaParser.sources);
|
|
6430
|
-
return metaParser.sources.map(function (source) { return
|
|
6387
|
+
return metaParser.sources.map(function (source) { return path.normalize(source.$.sourcePath); });
|
|
6431
6388
|
};
|
|
6432
6389
|
Workspace.prototype.resolveQualifiedID = function (filePath, qualifiedID, charOffset) {
|
|
6433
6390
|
var retVal;
|
|
@@ -6455,7 +6412,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6455
6412
|
retVal = this._test.get(realQID).scope;
|
|
6456
6413
|
}
|
|
6457
6414
|
if (!retVal) {
|
|
6458
|
-
realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")
|
|
6415
|
+
realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")), qualifiedIDParts).join(".");
|
|
6459
6416
|
if (this._test.has(realQID)) {
|
|
6460
6417
|
retVal = this._test.get(realQID).scope;
|
|
6461
6418
|
}
|
|
@@ -6474,7 +6431,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6474
6431
|
}());
|
|
6475
6432
|
var workspaceCache = new util.Dictionary();
|
|
6476
6433
|
function attachWorkspace(_workspacePath, eclccPath) {
|
|
6477
|
-
var workspacePath =
|
|
6434
|
+
var workspacePath = path.normalize(_workspacePath);
|
|
6478
6435
|
if (!workspaceCache.has(workspacePath)) {
|
|
6479
6436
|
var workspace = new Workspace(workspacePath, eclccPath);
|
|
6480
6437
|
workspaceCache.set(workspacePath, workspace);
|
|
@@ -6512,8 +6469,8 @@ var MetaParser = /** @class */ (function (_super) {
|
|
|
6512
6469
|
return MetaParser;
|
|
6513
6470
|
}(util.SAXStackParser));
|
|
6514
6471
|
|
|
6515
|
-
var logger = util.scopedLogger("clienttools/eclcc");
|
|
6516
|
-
var exeExt =
|
|
6472
|
+
var logger$3 = util.scopedLogger("clienttools/eclcc");
|
|
6473
|
+
var exeExt = os.type() === "Windows_NT" ? ".exe" : "";
|
|
6517
6474
|
function tidyCRLF(inStr) {
|
|
6518
6475
|
return inStr.split("\r\n").join("\n").split("\r").join("\n");
|
|
6519
6476
|
}
|
|
@@ -6559,7 +6516,7 @@ var Version = /** @class */ (function () {
|
|
|
6559
6516
|
return this.postfix.localeCompare(other.postfix);
|
|
6560
6517
|
};
|
|
6561
6518
|
Version.prototype.toString = function () {
|
|
6562
|
-
return
|
|
6519
|
+
return this.prefix + "_" + this.major + "." + this.minor + "." + this.patch + "-" + this.postfix;
|
|
6563
6520
|
};
|
|
6564
6521
|
return Version;
|
|
6565
6522
|
}());
|
|
@@ -6608,7 +6565,7 @@ var EclccErrors = /** @class */ (function (_super) {
|
|
|
6608
6565
|
function EclccErrors(stdErr, checked) {
|
|
6609
6566
|
var _this = _super.call(this, checked) || this;
|
|
6610
6567
|
if (stdErr && stdErr.length) {
|
|
6611
|
-
for (var _i = 0, _a = stdErr.split(
|
|
6568
|
+
for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
|
|
6612
6569
|
var errLine = _a[_i];
|
|
6613
6570
|
var match = /([a-zA-Z]:\\(?:[- \w\.\d]+\\)*(?:[- \w\.\d]+)?|(?:\/[\w\.\-]+)+)\((\d*),(\d*)\) ?: ?(error|warning|info) C(\d*) ?: ?(.*)/.exec(errLine);
|
|
6614
6571
|
if (match) {
|
|
@@ -6629,7 +6586,7 @@ var EclccErrors = /** @class */ (function (_super) {
|
|
|
6629
6586
|
if (match) {
|
|
6630
6587
|
continue;
|
|
6631
6588
|
}
|
|
6632
|
-
logger.warning("parseECLErrors: Unable to parse \""
|
|
6589
|
+
logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
|
|
6633
6590
|
_this.errOther.push(errLine);
|
|
6634
6591
|
}
|
|
6635
6592
|
}
|
|
@@ -6642,16 +6599,16 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6642
6599
|
__extends(EnvchkErrors, _super);
|
|
6643
6600
|
function EnvchkErrors(filePath, stdErr, checked) {
|
|
6644
6601
|
var _this = _super.call(this, checked) || this;
|
|
6645
|
-
var content =
|
|
6602
|
+
var content = fs.readFileSync(filePath, "utf8");
|
|
6646
6603
|
content = content.replace(/\r\n/g, "\n");
|
|
6647
6604
|
_this._lines = content.split("\n");
|
|
6648
6605
|
if (stdErr && stdErr.length) {
|
|
6649
|
-
for (var _i = 0, _a = stdErr.split(
|
|
6606
|
+
for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
|
|
6650
6607
|
var errLine = _a[_i];
|
|
6651
6608
|
var match = /(Warning|Error) : Path\=(\S*?)(\[\S*\])? Message\=(.*)/.exec(errLine);
|
|
6652
6609
|
if (match) {
|
|
6653
6610
|
var severity = match[1], _path = match[2], _attr = match[3], _msg = match[4];
|
|
6654
|
-
var msg =
|
|
6611
|
+
var msg = _path + " " + (_attr ? _attr : "") + ": " + _msg;
|
|
6655
6612
|
var _b = _this.locate(_path), line = _b[0], col = _b[1];
|
|
6656
6613
|
_this.errWarn.push({ filePath: filePath, line: line, col: col, msg: msg, severity: severity });
|
|
6657
6614
|
continue;
|
|
@@ -6659,7 +6616,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6659
6616
|
if (match) {
|
|
6660
6617
|
continue;
|
|
6661
6618
|
}
|
|
6662
|
-
logger.warning("parseECLErrors: Unable to parse \""
|
|
6619
|
+
logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
|
|
6663
6620
|
_this.errOther.push(errLine);
|
|
6664
6621
|
}
|
|
6665
6622
|
}
|
|
@@ -6690,7 +6647,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6690
6647
|
};
|
|
6691
6648
|
return EnvchkErrors;
|
|
6692
6649
|
}(Errors));
|
|
6693
|
-
function walkXmlJson(node, callback, stack) {
|
|
6650
|
+
function walkXmlJson$1(node, callback, stack) {
|
|
6694
6651
|
stack = stack || [];
|
|
6695
6652
|
stack.push(node);
|
|
6696
6653
|
for (var key in node) {
|
|
@@ -6699,11 +6656,11 @@ function walkXmlJson(node, callback, stack) {
|
|
|
6699
6656
|
callback(key, childNode, stack);
|
|
6700
6657
|
if (childNode instanceof Array) {
|
|
6701
6658
|
childNode.forEach(function (child) {
|
|
6702
|
-
walkXmlJson(child, callback, stack);
|
|
6659
|
+
walkXmlJson$1(child, callback, stack);
|
|
6703
6660
|
});
|
|
6704
6661
|
}
|
|
6705
6662
|
else if (typeof childNode === "object") {
|
|
6706
|
-
walkXmlJson(childNode, callback, stack);
|
|
6663
|
+
walkXmlJson$1(childNode, callback, stack);
|
|
6707
6664
|
}
|
|
6708
6665
|
}
|
|
6709
6666
|
}
|
|
@@ -6717,7 +6674,7 @@ var LocalWorkunit = /** @class */ (function () {
|
|
|
6717
6674
|
var retVal = [];
|
|
6718
6675
|
if (util.exists("W_LOCAL.Graphs", this.jsonWU)) {
|
|
6719
6676
|
var id_1 = "";
|
|
6720
|
-
walkXmlJson(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
|
|
6677
|
+
walkXmlJson$1(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
|
|
6721
6678
|
if (key === "$" && item.id) {
|
|
6722
6679
|
id_1 = item.id;
|
|
6723
6680
|
}
|
|
@@ -6746,10 +6703,10 @@ var ClientTools = /** @class */ (function () {
|
|
|
6746
6703
|
if (args === void 0) { args = []; }
|
|
6747
6704
|
this._paths = {};
|
|
6748
6705
|
this.eclccPath = eclccPath;
|
|
6749
|
-
this.binPath =
|
|
6750
|
-
this.envchkPath =
|
|
6751
|
-
this.eclBundlePath =
|
|
6752
|
-
this.cwd =
|
|
6706
|
+
this.binPath = path.dirname(this.eclccPath);
|
|
6707
|
+
this.envchkPath = path.join(this.binPath, "envchk" + exeExt);
|
|
6708
|
+
this.eclBundlePath = path.join(this.binPath, "ecl-bundle" + exeExt);
|
|
6709
|
+
this.cwd = path.normalize(cwd || this.binPath);
|
|
6753
6710
|
this.includeFolders = includeFolders;
|
|
6754
6711
|
this._legacyMode = legacyMode;
|
|
6755
6712
|
this._args = args;
|
|
@@ -6762,7 +6719,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6762
6719
|
};
|
|
6763
6720
|
ClientTools.prototype.exists = function (filePath) {
|
|
6764
6721
|
try {
|
|
6765
|
-
|
|
6722
|
+
fs.accessSync(filePath);
|
|
6766
6723
|
return true;
|
|
6767
6724
|
}
|
|
6768
6725
|
catch (e) { }
|
|
@@ -6770,12 +6727,12 @@ var ClientTools = /** @class */ (function () {
|
|
|
6770
6727
|
};
|
|
6771
6728
|
ClientTools.prototype.args = function (additionalItems) {
|
|
6772
6729
|
if (additionalItems === void 0) { additionalItems = []; }
|
|
6773
|
-
var retVal = __spreadArray([], this._args
|
|
6730
|
+
var retVal = __spreadArray([], this._args);
|
|
6774
6731
|
if (this._legacyMode) {
|
|
6775
6732
|
retVal.push("-legacy");
|
|
6776
6733
|
}
|
|
6777
6734
|
return retVal.concat(this.includeFolders.map(function (includePath) {
|
|
6778
|
-
return "-I" +
|
|
6735
|
+
return "-I" + path.normalize(includePath);
|
|
6779
6736
|
})).concat(additionalItems);
|
|
6780
6737
|
};
|
|
6781
6738
|
ClientTools.prototype.version = function () {
|
|
@@ -6783,7 +6740,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6783
6740
|
if (this._version) {
|
|
6784
6741
|
return Promise.resolve(this._version);
|
|
6785
6742
|
}
|
|
6786
|
-
return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find "
|
|
6743
|
+
return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6787
6744
|
_this._version = new Version(response.stdout);
|
|
6788
6745
|
return _this._version;
|
|
6789
6746
|
});
|
|
@@ -6793,7 +6750,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6793
6750
|
};
|
|
6794
6751
|
ClientTools.prototype.paths = function () {
|
|
6795
6752
|
var _this = this;
|
|
6796
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find "
|
|
6753
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6797
6754
|
if (response && response.stdout && response.stdout.length) {
|
|
6798
6755
|
var paths = response.stdout.split(/\r?\n/);
|
|
6799
6756
|
for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {
|
|
@@ -6809,20 +6766,20 @@ var ClientTools = /** @class */ (function () {
|
|
|
6809
6766
|
};
|
|
6810
6767
|
ClientTools.prototype.loadXMLDoc = function (filePath, removeOnRead) {
|
|
6811
6768
|
return new Promise(function (resolve, _reject) {
|
|
6812
|
-
var fileData =
|
|
6769
|
+
var fileData = fs.readFileSync(filePath, "ascii");
|
|
6813
6770
|
var retVal = util.xml2json(fileData);
|
|
6814
6771
|
if (removeOnRead) {
|
|
6815
|
-
|
|
6772
|
+
fs.unlink(filePath, function (err) { });
|
|
6816
6773
|
}
|
|
6817
6774
|
resolve(retVal);
|
|
6818
6775
|
});
|
|
6819
6776
|
};
|
|
6820
6777
|
ClientTools.prototype.createWU = function (filename) {
|
|
6821
6778
|
var _this = this;
|
|
6822
|
-
var tmpName =
|
|
6779
|
+
var tmpName = tmp.tmpNameSync({ prefix: "eclcc-wu-tmp", postfix: "" });
|
|
6823
6780
|
var args = ["-o" + tmpName, "-wu"].concat([filename]);
|
|
6824
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find "
|
|
6825
|
-
var xmlPath =
|
|
6781
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (_response) {
|
|
6782
|
+
var xmlPath = path.normalize(tmpName + ".xml");
|
|
6826
6783
|
var contentPromise = _this.exists(xmlPath) ? _this.loadXMLDoc(xmlPath, true) : Promise.resolve({});
|
|
6827
6784
|
return contentPromise.then(function (content) {
|
|
6828
6785
|
return new LocalWorkunit(content);
|
|
@@ -6831,7 +6788,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6831
6788
|
};
|
|
6832
6789
|
ClientTools.prototype.createArchive = function (filename) {
|
|
6833
6790
|
var args = ["-E"].concat([filename]);
|
|
6834
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find "
|
|
6791
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6835
6792
|
return {
|
|
6836
6793
|
content: response.stdout,
|
|
6837
6794
|
err: new EclccErrors(response.stderr, [])
|
|
@@ -6844,7 +6801,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6844
6801
|
ClientTools.prototype.fetchMeta = function (filePath) {
|
|
6845
6802
|
return Promise.all([
|
|
6846
6803
|
attachWorkspace(this.cwd),
|
|
6847
|
-
this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find "
|
|
6804
|
+
this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find " + this.eclccPath)
|
|
6848
6805
|
]).then(function (_a) {
|
|
6849
6806
|
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6850
6807
|
if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {
|
|
@@ -6857,7 +6814,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6857
6814
|
if (args === void 0) { args = ["-syntax"]; }
|
|
6858
6815
|
return Promise.all([
|
|
6859
6816
|
attachWorkspace(this.cwd),
|
|
6860
|
-
this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args
|
|
6817
|
+
this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), ["-M", filePath])), "eclcc", "Cannot find " + this.eclccPath)
|
|
6861
6818
|
]).then(function (_a) {
|
|
6862
6819
|
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6863
6820
|
var checked = [];
|
|
@@ -6871,9 +6828,9 @@ var ClientTools = /** @class */ (function () {
|
|
|
6871
6828
|
if (args === void 0) { args = []; }
|
|
6872
6829
|
return Promise.all([
|
|
6873
6830
|
attachWorkspace(this.cwd),
|
|
6874
|
-
this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args
|
|
6831
|
+
this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), [filePath])), "envchk", "Cannot find " + this.envchkPath)
|
|
6875
6832
|
]).then(function (_a) {
|
|
6876
|
-
_a[0]
|
|
6833
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6877
6834
|
return new EnvchkErrors(filePath, execFileResponse ? execFileResponse.stderr : "", []);
|
|
6878
6835
|
});
|
|
6879
6836
|
};
|
|
@@ -6896,13 +6853,13 @@ var ClientTools = /** @class */ (function () {
|
|
|
6896
6853
|
}
|
|
6897
6854
|
return retVal;
|
|
6898
6855
|
}),
|
|
6899
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find "
|
|
6856
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6900
6857
|
.then(function (installedText) {
|
|
6901
6858
|
return tidyCRLF(installedText.stdout).split("\n");
|
|
6902
6859
|
}).then(function (installedItems) {
|
|
6903
6860
|
var allProps = {};
|
|
6904
6861
|
return Promise.all(installedItems.filter(function (ii) { return !!ii; }).map(function (ii) {
|
|
6905
|
-
return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find "
|
|
6862
|
+
return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find " + _this.eclBundlePath)
|
|
6906
6863
|
.then(function (infoText) {
|
|
6907
6864
|
return tidyCRLF(infoText.stdout).split("\n");
|
|
6908
6865
|
}).then(function (info) {
|
|
@@ -6942,25 +6899,25 @@ var ClientTools = /** @class */ (function () {
|
|
|
6942
6899
|
ClientTools.prototype.bundleInstall = function (bundleUrl) {
|
|
6943
6900
|
return Promise.all([
|
|
6944
6901
|
attachWorkspace(this.cwd),
|
|
6945
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find "
|
|
6902
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6946
6903
|
]).then(function (_a) {
|
|
6947
|
-
_a[0]
|
|
6904
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6948
6905
|
return execFileResponse;
|
|
6949
6906
|
});
|
|
6950
6907
|
};
|
|
6951
6908
|
ClientTools.prototype.bundleUninstall = function (name) {
|
|
6952
6909
|
return Promise.all([
|
|
6953
6910
|
attachWorkspace(this.cwd),
|
|
6954
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find "
|
|
6911
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6955
6912
|
]).then(function (_a) {
|
|
6956
|
-
_a[0]
|
|
6913
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6957
6914
|
return execFileResponse;
|
|
6958
6915
|
});
|
|
6959
6916
|
};
|
|
6960
6917
|
ClientTools.prototype.execFile = function (cmd, cwd, args, _toolName, _notFoundError) {
|
|
6961
6918
|
return new Promise(function (resolve, _reject) {
|
|
6962
|
-
logger.debug(
|
|
6963
|
-
var child =
|
|
6919
|
+
logger$3.debug(cmd + " " + args.join(" "));
|
|
6920
|
+
var child = cp.spawn(cmd, args, { cwd: cwd });
|
|
6964
6921
|
var stdOut = "";
|
|
6965
6922
|
var stdErr = "";
|
|
6966
6923
|
child.stdout.on("data", function (data) {
|
|
@@ -6982,18 +6939,18 @@ var ClientTools = /** @class */ (function () {
|
|
|
6982
6939
|
}());
|
|
6983
6940
|
function locateClientToolsInFolder(rootFolder, clientTools) {
|
|
6984
6941
|
if (rootFolder) {
|
|
6985
|
-
var hpccSystemsFolder_1 =
|
|
6986
|
-
if (
|
|
6987
|
-
if (
|
|
6988
|
-
var eclccPath =
|
|
6989
|
-
if (
|
|
6942
|
+
var hpccSystemsFolder_1 = path.join(rootFolder, "HPCCSystems");
|
|
6943
|
+
if (fs.existsSync(hpccSystemsFolder_1) && fs.statSync(hpccSystemsFolder_1).isDirectory()) {
|
|
6944
|
+
if (os.type() !== "Windows_NT") {
|
|
6945
|
+
var eclccPath = path.join(hpccSystemsFolder_1, "bin", "eclcc");
|
|
6946
|
+
if (fs.existsSync(eclccPath)) {
|
|
6990
6947
|
clientTools.push(new ClientTools(eclccPath));
|
|
6991
6948
|
}
|
|
6992
6949
|
}
|
|
6993
|
-
|
|
6994
|
-
var eclccPath =
|
|
6995
|
-
if (
|
|
6996
|
-
var name_1 =
|
|
6950
|
+
fs.readdirSync(hpccSystemsFolder_1).forEach(function (versionFolder) {
|
|
6951
|
+
var eclccPath = path.join(hpccSystemsFolder_1, versionFolder, "clienttools", "bin", "eclcc" + exeExt);
|
|
6952
|
+
if (fs.existsSync(eclccPath)) {
|
|
6953
|
+
var name_1 = path.basename(versionFolder);
|
|
6997
6954
|
var version = new Version(name_1);
|
|
6998
6955
|
if (version.exists()) {
|
|
6999
6956
|
clientTools.push(new ClientTools(eclccPath));
|
|
@@ -7008,7 +6965,7 @@ function locateAllClientTools() {
|
|
|
7008
6965
|
if (allClientToolsCache)
|
|
7009
6966
|
return allClientToolsCache;
|
|
7010
6967
|
var clientTools = [];
|
|
7011
|
-
switch (
|
|
6968
|
+
switch (os.type()) {
|
|
7012
6969
|
case "Windows_NT":
|
|
7013
6970
|
var rootFolder86 = process.env["ProgramFiles(x86)"] || "";
|
|
7014
6971
|
if (rootFolder86) {
|
|
@@ -7037,9 +6994,9 @@ function locateAllClientTools() {
|
|
|
7037
6994
|
}
|
|
7038
6995
|
var eclccPathMsg = "";
|
|
7039
6996
|
function logEclccPath(eclccPath) {
|
|
7040
|
-
var msg = "Using eclccPath setting: "
|
|
6997
|
+
var msg = "Using eclccPath setting: " + eclccPath;
|
|
7041
6998
|
if (eclccPathMsg !== msg) {
|
|
7042
|
-
logger.info(msg);
|
|
6999
|
+
logger$3.info(msg);
|
|
7043
7000
|
eclccPathMsg = msg;
|
|
7044
7001
|
}
|
|
7045
7002
|
}
|
|
@@ -7050,7 +7007,7 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
|
|
|
7050
7007
|
if (includeFolders === void 0) { includeFolders = []; }
|
|
7051
7008
|
if (legacyMode === void 0) { legacyMode = false; }
|
|
7052
7009
|
if (args === void 0) { args = []; }
|
|
7053
|
-
if (overridePath &&
|
|
7010
|
+
if (overridePath && fs.existsSync(overridePath)) {
|
|
7054
7011
|
logEclccPath(overridePath);
|
|
7055
7012
|
return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode, args));
|
|
7056
7013
|
}
|
|
@@ -7082,33 +7039,33 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
|
|
|
7082
7039
|
// DOM Parser polyfill ---
|
|
7083
7040
|
util.root.DOMParser = xmldom.DOMParser;
|
|
7084
7041
|
if (typeof util.root.fetch === "undefined") {
|
|
7085
|
-
util.root.fetch =
|
|
7042
|
+
util.root.fetch = fetch$1;
|
|
7086
7043
|
}
|
|
7087
7044
|
if (typeof util.root.AbortController === "undefined") {
|
|
7088
|
-
util.root.AbortController =
|
|
7045
|
+
util.root.AbortController = AbortController;
|
|
7089
7046
|
}
|
|
7090
|
-
util.root.fetch.__rejectUnauthorizedAgent = new
|
|
7047
|
+
util.root.fetch.__rejectUnauthorizedAgent = new https.Agent({
|
|
7091
7048
|
rejectUnauthorized: false
|
|
7092
7049
|
});
|
|
7093
7050
|
var globalCA = "";
|
|
7094
|
-
if (
|
|
7095
|
-
if (Array.isArray(
|
|
7096
|
-
if (typeof
|
|
7097
|
-
globalCA =
|
|
7051
|
+
if (https.globalAgent.options.ca !== undefined) {
|
|
7052
|
+
if (Array.isArray(https.globalAgent.options.ca) && https.globalAgent.options.ca.length) {
|
|
7053
|
+
if (typeof https.globalAgent.options.ca[0] === "string") {
|
|
7054
|
+
globalCA = https.globalAgent.options.ca.join("\n");
|
|
7098
7055
|
}
|
|
7099
|
-
else if (
|
|
7100
|
-
globalCA =
|
|
7056
|
+
else if (https.globalAgent.options.ca[0] instanceof safeBuffer.Buffer) {
|
|
7057
|
+
globalCA = https.globalAgent.options.ca.map(function (row) { return row.toString(); }).join("\n");
|
|
7101
7058
|
}
|
|
7102
7059
|
}
|
|
7103
|
-
else if (typeof
|
|
7104
|
-
globalCA =
|
|
7060
|
+
else if (typeof https.globalAgent.options.ca === "string") {
|
|
7061
|
+
globalCA = https.globalAgent.options.ca;
|
|
7105
7062
|
}
|
|
7106
|
-
else if (
|
|
7107
|
-
globalCA =
|
|
7063
|
+
else if (https.globalAgent.options.ca instanceof safeBuffer.Buffer) {
|
|
7064
|
+
globalCA = https.globalAgent.options.ca.toString();
|
|
7108
7065
|
}
|
|
7109
7066
|
globalCA += "\n";
|
|
7110
7067
|
}
|
|
7111
|
-
util.root.fetch.__trustwaveAgent = new
|
|
7068
|
+
util.root.fetch.__trustwaveAgent = new https.Agent({
|
|
7112
7069
|
ca: globalCA + trustwave
|
|
7113
7070
|
});
|
|
7114
7071
|
if (typeof util.root.btoa === "undefined") {
|
|
@@ -7212,5 +7169,5 @@ exports.send = send;
|
|
|
7212
7169
|
exports.serializeRequest = serializeRequest;
|
|
7213
7170
|
exports.setTransportFactory = setTransportFactory;
|
|
7214
7171
|
exports.targetClusters = targetClusters;
|
|
7215
|
-
exports.walkXmlJson = walkXmlJson;
|
|
7172
|
+
exports.walkXmlJson = walkXmlJson$1;
|
|
7216
7173
|
//# sourceMappingURL=index.node.js.map
|