@hpcc-js/comms 2.66.0 → 2.70.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 +259 -200
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +149 -102
- 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 +237 -217
- 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/__package__.js.map +1 -1
- 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 +7 -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/index-common.js +2 -0
- package/lib-es6/index-common.js.map +1 -1
- package/lib-es6/services/wsDFU.js +1 -1
- package/lib-es6/services/wsDFU.js.map +1 -1
- package/lib-es6/services/wsEcl.js +3 -3
- package/lib-es6/services/wsEcl.js.map +1 -1
- package/lib-es6/services/wsLogaccess.js +11 -0
- package/lib-es6/services/wsLogaccess.js.map +1 -0
- package/lib-es6/services/wsResources.js +11 -0
- package/lib-es6/services/wsResources.js.map +1 -0
- package/lib-es6/services/wsdl/WsLogaccess/v1/WsLogaccess.js +28 -0
- package/lib-es6/services/wsdl/WsLogaccess/v1/WsLogaccess.js.map +1 -0
- package/lib-es6/services/wsdl/WsResources/v1.01/WsResources.js +20 -0
- package/lib-es6/services/wsdl/WsResources/v1.01/WsResources.js.map +1 -0
- package/package.json +36 -21
- package/src/__package__.ts +2 -2
- package/src/ecl/topology.ts +1 -1
- package/src/ecl/workunit.ts +3 -0
- package/src/index-common.ts +2 -0
- package/src/services/wsDFU.ts +3 -2
- package/src/services/wsLogaccess.ts +8 -0
- package/src/services/wsResources.ts +8 -0
- package/src/services/wsdl/WsLogaccess/v1/WsLogaccess.ts +78 -0
- package/src/services/wsdl/WsResources/v1.01/WsResources.ts +119 -0
- package/types/__package__.d.ts +2 -2
- package/types/__package__.d.ts.map +1 -1
- 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/ecl/workunit.d.ts.map +1 -1
- package/types/index-common.d.ts +2 -0
- package/types/index-common.d.ts.map +1 -1
- package/types/services/wsDFU.d.ts +2 -1
- package/types/services/wsDFU.d.ts.map +1 -1
- package/types/services/wsLogaccess.d.ts +5 -0
- package/types/services/wsLogaccess.d.ts.map +1 -0
- package/types/services/wsResources.d.ts +5 -0
- package/types/services/wsResources.d.ts.map +1 -0
- package/types/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts +51 -0
- package/types/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts.map +1 -0
- package/types/services/wsdl/WsResources/v1.01/WsResources.d.ts +85 -0
- package/types/services/wsdl/WsResources/v1.01/WsResources.d.ts.map +1 -0
- package/types-3.4/__package__.d.ts +2 -2
- package/types-3.4/ecl/activity.d.ts +1 -1
- package/types-3.4/index-common.d.ts +2 -0
- package/types-3.4/services/wsDFU.d.ts +2 -1
- package/types-3.4/services/wsLogaccess.d.ts +5 -0
- package/types-3.4/services/wsResources.d.ts +5 -0
- package/types-3.4/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts +51 -0
- package/types-3.4/services/wsdl/WsResources/v1.01/WsResources.d.ts +85 -0
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.70.0";
|
|
23
|
+
var BUILD_VERSION = "2.101.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 = "";
|
|
@@ -585,7 +558,7 @@ var CodesignService = /** @class */ (function () {
|
|
|
585
558
|
var DFUService = /** @class */ (function (_super) {
|
|
586
559
|
__extends(DFUService, _super);
|
|
587
560
|
function DFUService(optsConnection) {
|
|
588
|
-
return _super.call(this, optsConnection, "WsDfu", "1.
|
|
561
|
+
return _super.call(this, optsConnection, "WsDfu", "1.62") || this;
|
|
589
562
|
}
|
|
590
563
|
DFUService.prototype.DFUQuery = function (request) {
|
|
591
564
|
return this._connection.send("DFUQuery", request);
|
|
@@ -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, {
|
|
@@ -755,6 +728,39 @@ var EclService = /** @class */ (function (_super) {
|
|
|
755
728
|
return EclService;
|
|
756
729
|
}(Service));
|
|
757
730
|
|
|
731
|
+
var LogAccessType;
|
|
732
|
+
(function (LogAccessType) {
|
|
733
|
+
LogAccessType[LogAccessType["All"] = 0] = "All";
|
|
734
|
+
LogAccessType[LogAccessType["ByJobIdID"] = 1] = "ByJobIdID";
|
|
735
|
+
LogAccessType[LogAccessType["ByComponent"] = 2] = "ByComponent";
|
|
736
|
+
LogAccessType[LogAccessType["ByLogType"] = 3] = "ByLogType";
|
|
737
|
+
LogAccessType[LogAccessType["ByTargetAudience"] = 4] = "ByTargetAudience";
|
|
738
|
+
})(LogAccessType || (LogAccessType = {}));
|
|
739
|
+
var LogaccessService = /** @class */ (function (_super) {
|
|
740
|
+
__extends(LogaccessService, _super);
|
|
741
|
+
function LogaccessService(optsConnection) {
|
|
742
|
+
return _super.call(this, optsConnection, "WsLogaccess", "1") || this;
|
|
743
|
+
}
|
|
744
|
+
LogaccessService.prototype.GetLogAccessInfo = function (request) {
|
|
745
|
+
return this._connection.send("GetLogAccessInfo", request);
|
|
746
|
+
};
|
|
747
|
+
LogaccessService.prototype.GetLogs = function (request) {
|
|
748
|
+
return this._connection.send("GetLogs", request);
|
|
749
|
+
};
|
|
750
|
+
LogaccessService.prototype.Ping = function (request) {
|
|
751
|
+
return this._connection.send("Ping", request);
|
|
752
|
+
};
|
|
753
|
+
return LogaccessService;
|
|
754
|
+
}(Service));
|
|
755
|
+
|
|
756
|
+
var LogaccessServiceEx = /** @class */ (function (_super) {
|
|
757
|
+
__extends(LogaccessServiceEx, _super);
|
|
758
|
+
function LogaccessServiceEx() {
|
|
759
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
760
|
+
}
|
|
761
|
+
return LogaccessServiceEx;
|
|
762
|
+
}(LogaccessService));
|
|
763
|
+
|
|
758
764
|
function ascending(a, b) {
|
|
759
765
|
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
|
760
766
|
}
|
|
@@ -791,7 +797,7 @@ function ascendingComparator(f) {
|
|
|
791
797
|
};
|
|
792
798
|
}
|
|
793
799
|
|
|
794
|
-
bisector(ascending);
|
|
800
|
+
var ascendingBisect = bisector(ascending);
|
|
795
801
|
|
|
796
802
|
function number(x) {
|
|
797
803
|
return x === null ? NaN : +x;
|
|
@@ -915,6 +921,31 @@ var MachineService = /** @class */ (function () {
|
|
|
915
921
|
return MachineService;
|
|
916
922
|
}());
|
|
917
923
|
|
|
924
|
+
var ResourcesService = /** @class */ (function (_super) {
|
|
925
|
+
__extends(ResourcesService, _super);
|
|
926
|
+
function ResourcesService(optsConnection) {
|
|
927
|
+
return _super.call(this, optsConnection, "WsResources", "1.01") || this;
|
|
928
|
+
}
|
|
929
|
+
ResourcesService.prototype.Ping = function (request) {
|
|
930
|
+
return this._connection.send("Ping", request);
|
|
931
|
+
};
|
|
932
|
+
ResourcesService.prototype.ServiceQuery = function (request) {
|
|
933
|
+
return this._connection.send("ServiceQuery", request);
|
|
934
|
+
};
|
|
935
|
+
ResourcesService.prototype.WebLinksQuery = function (request) {
|
|
936
|
+
return this._connection.send("WebLinksQuery", request);
|
|
937
|
+
};
|
|
938
|
+
return ResourcesService;
|
|
939
|
+
}(Service));
|
|
940
|
+
|
|
941
|
+
var ResourcesServiceEx = /** @class */ (function (_super) {
|
|
942
|
+
__extends(ResourcesServiceEx, _super);
|
|
943
|
+
function ResourcesServiceEx() {
|
|
944
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
945
|
+
}
|
|
946
|
+
return ResourcesServiceEx;
|
|
947
|
+
}(ResourcesService));
|
|
948
|
+
|
|
918
949
|
var SMCService = /** @class */ (function () {
|
|
919
950
|
function SMCService(optsConnection) {
|
|
920
951
|
this._connection = new ESPConnection(optsConnection, "WsSMC", "1.24");
|
|
@@ -1012,18 +1043,13 @@ var StoreService = /** @class */ (function (_super) {
|
|
|
1012
1043
|
return StoreService;
|
|
1013
1044
|
}(Service));
|
|
1014
1045
|
|
|
1015
|
-
/*
|
|
1016
|
-
Response structures generated via:
|
|
1017
|
-
* http://localhost:8010/WsTopology/TpLogicalClusterQuery?respjson_
|
|
1018
|
-
* http://json2ts.com/
|
|
1019
|
-
*/
|
|
1020
|
-
exports.TpLogicalClusterQuery = void 0;
|
|
1021
1046
|
(function (TpLogicalClusterQuery) {
|
|
1047
|
+
var RoxieQueueFilter;
|
|
1022
1048
|
(function (RoxieQueueFilter) {
|
|
1023
1049
|
RoxieQueueFilter["All"] = "All";
|
|
1024
1050
|
RoxieQueueFilter["QueriesOnly"] = "QueriesOnly";
|
|
1025
1051
|
RoxieQueueFilter["WorkunitsOnly"] = "WorkunitsOnly";
|
|
1026
|
-
})(TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
|
|
1052
|
+
})(RoxieQueueFilter = TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
|
|
1027
1053
|
})(exports.TpLogicalClusterQuery || (exports.TpLogicalClusterQuery = {}));
|
|
1028
1054
|
var TopologyService = /** @class */ (function (_super) {
|
|
1029
1055
|
__extends(TopologyService, _super);
|
|
@@ -1079,13 +1105,6 @@ var TopologyService = /** @class */ (function (_super) {
|
|
|
1079
1105
|
return TopologyService;
|
|
1080
1106
|
}(Service));
|
|
1081
1107
|
|
|
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
1108
|
(function (WUStateID) {
|
|
1090
1109
|
WUStateID[WUStateID["Unknown"] = 0] = "Unknown";
|
|
1091
1110
|
WUStateID[WUStateID["Compiled"] = 1] = "Compiled";
|
|
@@ -1110,8 +1129,8 @@ exports.WUStateID = void 0;
|
|
|
1110
1129
|
function isECLResult(_) {
|
|
1111
1130
|
return typeof _.Name === "string";
|
|
1112
1131
|
}
|
|
1113
|
-
exports.WUUpdate = void 0;
|
|
1114
1132
|
(function (WUUpdate) {
|
|
1133
|
+
var Action;
|
|
1115
1134
|
(function (Action) {
|
|
1116
1135
|
Action[Action["Unknown"] = 0] = "Unknown";
|
|
1117
1136
|
Action[Action["Compile"] = 1] = "Compile";
|
|
@@ -1123,7 +1142,7 @@ exports.WUUpdate = void 0;
|
|
|
1123
1142
|
Action[Action["Resume"] = 7] = "Resume";
|
|
1124
1143
|
Action[Action["Debug"] = 8] = "Debug";
|
|
1125
1144
|
Action[Action["__size"] = 9] = "__size";
|
|
1126
|
-
})(WUUpdate.Action || (WUUpdate.Action = {}));
|
|
1145
|
+
})(Action = WUUpdate.Action || (WUUpdate.Action = {}));
|
|
1127
1146
|
})(exports.WUUpdate || (exports.WUUpdate = {}));
|
|
1128
1147
|
function isWUQueryECLWorkunit(_) {
|
|
1129
1148
|
return _.TotalClusterTime !== undefined;
|
|
@@ -1325,8 +1344,6 @@ var day = newInterval(function(date) {
|
|
|
1325
1344
|
return date.getDate() - 1;
|
|
1326
1345
|
});
|
|
1327
1346
|
|
|
1328
|
-
var timeDay = day;
|
|
1329
|
-
|
|
1330
1347
|
function weekday(i) {
|
|
1331
1348
|
return newInterval(function(date) {
|
|
1332
1349
|
date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
|
|
@@ -1340,11 +1357,11 @@ function weekday(i) {
|
|
|
1340
1357
|
|
|
1341
1358
|
var sunday = weekday(0);
|
|
1342
1359
|
var monday = weekday(1);
|
|
1343
|
-
weekday(2);
|
|
1344
|
-
weekday(3);
|
|
1360
|
+
var tuesday = weekday(2);
|
|
1361
|
+
var wednesday = weekday(3);
|
|
1345
1362
|
var thursday = weekday(4);
|
|
1346
|
-
weekday(5);
|
|
1347
|
-
weekday(6);
|
|
1363
|
+
var friday = weekday(5);
|
|
1364
|
+
var saturday = weekday(6);
|
|
1348
1365
|
|
|
1349
1366
|
var year = newInterval(function(date) {
|
|
1350
1367
|
date.setMonth(0, 1);
|
|
@@ -1368,8 +1385,6 @@ year.every = function(k) {
|
|
|
1368
1385
|
});
|
|
1369
1386
|
};
|
|
1370
1387
|
|
|
1371
|
-
var timeYear = year;
|
|
1372
|
-
|
|
1373
1388
|
var utcDay = newInterval(function(date) {
|
|
1374
1389
|
date.setUTCHours(0, 0, 0, 0);
|
|
1375
1390
|
}, function(date, step) {
|
|
@@ -1380,8 +1395,6 @@ var utcDay = newInterval(function(date) {
|
|
|
1380
1395
|
return date.getUTCDate() - 1;
|
|
1381
1396
|
});
|
|
1382
1397
|
|
|
1383
|
-
var utcDay$1 = utcDay;
|
|
1384
|
-
|
|
1385
1398
|
function utcWeekday(i) {
|
|
1386
1399
|
return newInterval(function(date) {
|
|
1387
1400
|
date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
|
|
@@ -1395,11 +1408,11 @@ function utcWeekday(i) {
|
|
|
1395
1408
|
|
|
1396
1409
|
var utcSunday = utcWeekday(0);
|
|
1397
1410
|
var utcMonday = utcWeekday(1);
|
|
1398
|
-
utcWeekday(2);
|
|
1399
|
-
utcWeekday(3);
|
|
1411
|
+
var utcTuesday = utcWeekday(2);
|
|
1412
|
+
var utcWednesday = utcWeekday(3);
|
|
1400
1413
|
var utcThursday = utcWeekday(4);
|
|
1401
|
-
utcWeekday(5);
|
|
1402
|
-
utcWeekday(6);
|
|
1414
|
+
var utcFriday = utcWeekday(5);
|
|
1415
|
+
var utcSaturday = utcWeekday(6);
|
|
1403
1416
|
|
|
1404
1417
|
var utcYear = newInterval(function(date) {
|
|
1405
1418
|
date.setUTCMonth(0, 1);
|
|
@@ -1423,8 +1436,6 @@ utcYear.every = function(k) {
|
|
|
1423
1436
|
});
|
|
1424
1437
|
};
|
|
1425
1438
|
|
|
1426
|
-
var utcYear$1 = utcYear;
|
|
1427
|
-
|
|
1428
1439
|
function localDate(d) {
|
|
1429
1440
|
if (0 <= d.y && d.y < 100) {
|
|
1430
1441
|
var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
|
|
@@ -1613,7 +1624,7 @@ function formatLocale(locale) {
|
|
|
1613
1624
|
return function(string) {
|
|
1614
1625
|
var d = newDate(1900, undefined, 1),
|
|
1615
1626
|
i = parseSpecifier(d, specifier, string += "", 0),
|
|
1616
|
-
week, day;
|
|
1627
|
+
week, day$1;
|
|
1617
1628
|
if (i != string.length) return null;
|
|
1618
1629
|
|
|
1619
1630
|
// If a UNIX timestamp is specified, return it.
|
|
@@ -1634,25 +1645,25 @@ function formatLocale(locale) {
|
|
|
1634
1645
|
if (d.V < 1 || d.V > 53) return null;
|
|
1635
1646
|
if (!("w" in d)) d.w = 1;
|
|
1636
1647
|
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
|
|
1648
|
+
week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay();
|
|
1649
|
+
week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week);
|
|
1650
|
+
week = utcDay.offset(week, (d.V - 1) * 7);
|
|
1640
1651
|
d.y = week.getUTCFullYear();
|
|
1641
1652
|
d.m = week.getUTCMonth();
|
|
1642
1653
|
d.d = week.getUTCDate() + (d.w + 6) % 7;
|
|
1643
1654
|
} 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 =
|
|
1655
|
+
week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay();
|
|
1656
|
+
week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week);
|
|
1657
|
+
week = day.offset(week, (d.V - 1) * 7);
|
|
1647
1658
|
d.y = week.getFullYear();
|
|
1648
1659
|
d.m = week.getMonth();
|
|
1649
1660
|
d.d = week.getDate() + (d.w + 6) % 7;
|
|
1650
1661
|
}
|
|
1651
1662
|
} else if ("W" in d || "U" in d) {
|
|
1652
1663
|
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();
|
|
1664
|
+
day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
|
|
1654
1665
|
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;
|
|
1666
|
+
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
1667
|
}
|
|
1657
1668
|
|
|
1658
1669
|
// If a time zone is specified, all fields are interpreted as UTC and then
|
|
@@ -1938,7 +1949,7 @@ function formatHour12(d, p) {
|
|
|
1938
1949
|
}
|
|
1939
1950
|
|
|
1940
1951
|
function formatDayOfYear(d, p) {
|
|
1941
|
-
return pad(1 +
|
|
1952
|
+
return pad(1 + day.count(year(d), d), p, 3);
|
|
1942
1953
|
}
|
|
1943
1954
|
|
|
1944
1955
|
function formatMilliseconds(d, p) {
|
|
@@ -1967,7 +1978,7 @@ function formatWeekdayNumberMonday(d) {
|
|
|
1967
1978
|
}
|
|
1968
1979
|
|
|
1969
1980
|
function formatWeekNumberSunday(d, p) {
|
|
1970
|
-
return pad(sunday.count(
|
|
1981
|
+
return pad(sunday.count(year(d) - 1, d), p, 2);
|
|
1971
1982
|
}
|
|
1972
1983
|
|
|
1973
1984
|
function dISO(d) {
|
|
@@ -1977,7 +1988,7 @@ function dISO(d) {
|
|
|
1977
1988
|
|
|
1978
1989
|
function formatWeekNumberISO(d, p) {
|
|
1979
1990
|
d = dISO(d);
|
|
1980
|
-
return pad(thursday.count(
|
|
1991
|
+
return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2);
|
|
1981
1992
|
}
|
|
1982
1993
|
|
|
1983
1994
|
function formatWeekdayNumberSunday(d) {
|
|
@@ -1985,7 +1996,7 @@ function formatWeekdayNumberSunday(d) {
|
|
|
1985
1996
|
}
|
|
1986
1997
|
|
|
1987
1998
|
function formatWeekNumberMonday(d, p) {
|
|
1988
|
-
return pad(monday.count(
|
|
1999
|
+
return pad(monday.count(year(d) - 1, d), p, 2);
|
|
1989
2000
|
}
|
|
1990
2001
|
|
|
1991
2002
|
function formatYear(d, p) {
|
|
@@ -2027,7 +2038,7 @@ function formatUTCHour12(d, p) {
|
|
|
2027
2038
|
}
|
|
2028
2039
|
|
|
2029
2040
|
function formatUTCDayOfYear(d, p) {
|
|
2030
|
-
return pad(1 + utcDay
|
|
2041
|
+
return pad(1 + utcDay.count(utcYear(d), d), p, 3);
|
|
2031
2042
|
}
|
|
2032
2043
|
|
|
2033
2044
|
function formatUTCMilliseconds(d, p) {
|
|
@@ -2056,7 +2067,7 @@ function formatUTCWeekdayNumberMonday(d) {
|
|
|
2056
2067
|
}
|
|
2057
2068
|
|
|
2058
2069
|
function formatUTCWeekNumberSunday(d, p) {
|
|
2059
|
-
return pad(utcSunday.count(utcYear
|
|
2070
|
+
return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
|
|
2060
2071
|
}
|
|
2061
2072
|
|
|
2062
2073
|
function UTCdISO(d) {
|
|
@@ -2066,7 +2077,7 @@ function UTCdISO(d) {
|
|
|
2066
2077
|
|
|
2067
2078
|
function formatUTCWeekNumberISO(d, p) {
|
|
2068
2079
|
d = UTCdISO(d);
|
|
2069
|
-
return pad(utcThursday.count(utcYear
|
|
2080
|
+
return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
|
|
2070
2081
|
}
|
|
2071
2082
|
|
|
2072
2083
|
function formatUTCWeekdayNumberSunday(d) {
|
|
@@ -2074,7 +2085,7 @@ function formatUTCWeekdayNumberSunday(d) {
|
|
|
2074
2085
|
}
|
|
2075
2086
|
|
|
2076
2087
|
function formatUTCWeekNumberMonday(d, p) {
|
|
2077
|
-
return pad(utcMonday.count(utcYear
|
|
2088
|
+
return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
|
|
2078
2089
|
}
|
|
2079
2090
|
|
|
2080
2091
|
function formatUTCYear(d, p) {
|
|
@@ -2113,6 +2124,8 @@ function formatUnixTimestampSeconds(d) {
|
|
|
2113
2124
|
}
|
|
2114
2125
|
|
|
2115
2126
|
var locale;
|
|
2127
|
+
var timeFormat;
|
|
2128
|
+
var timeParse;
|
|
2116
2129
|
var utcFormat;
|
|
2117
2130
|
var utcParse;
|
|
2118
2131
|
|
|
@@ -2129,6 +2142,8 @@ defaultLocale({
|
|
|
2129
2142
|
|
|
2130
2143
|
function defaultLocale(definition) {
|
|
2131
2144
|
locale = formatLocale(definition);
|
|
2145
|
+
timeFormat = locale.format;
|
|
2146
|
+
timeParse = locale.parse;
|
|
2132
2147
|
utcFormat = locale.utcFormat;
|
|
2133
2148
|
utcParse = locale.utcParse;
|
|
2134
2149
|
return locale;
|
|
@@ -2226,12 +2241,12 @@ var GraphCache = /** @class */ (function (_super) {
|
|
|
2226
2241
|
}
|
|
2227
2242
|
return GraphCache;
|
|
2228
2243
|
}(util.Cache));
|
|
2229
|
-
function walkXmlJson
|
|
2244
|
+
function walkXmlJson(node, callback, stack) {
|
|
2230
2245
|
stack = stack || [];
|
|
2231
2246
|
stack.push(node);
|
|
2232
2247
|
callback(node.name, node.$, node.children(), stack);
|
|
2233
2248
|
node.children().forEach(function (childNode) {
|
|
2234
|
-
walkXmlJson
|
|
2249
|
+
walkXmlJson(childNode, callback, stack);
|
|
2235
2250
|
});
|
|
2236
2251
|
stack.pop();
|
|
2237
2252
|
}
|
|
@@ -2280,7 +2295,7 @@ function createXGMMLGraph(id, graphs) {
|
|
|
2280
2295
|
return item._["id"];
|
|
2281
2296
|
});
|
|
2282
2297
|
var stack = [graph.root];
|
|
2283
|
-
walkXmlJson
|
|
2298
|
+
walkXmlJson(graphs, function (tag, attributes, childNodes, _stack) {
|
|
2284
2299
|
var top = stack[stack.length - 1];
|
|
2285
2300
|
switch (tag) {
|
|
2286
2301
|
case "graph":
|
|
@@ -2355,7 +2370,7 @@ function createGraph(scopes) {
|
|
|
2355
2370
|
scopeStack.pop();
|
|
2356
2371
|
}
|
|
2357
2372
|
if (!scopeParent1) {
|
|
2358
|
-
console.log("Missing SG:Parent ("
|
|
2373
|
+
console.log("Missing SG:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2359
2374
|
}
|
|
2360
2375
|
else {
|
|
2361
2376
|
var parent1 = scopeParent1;
|
|
@@ -2365,7 +2380,7 @@ function createGraph(scopes) {
|
|
|
2365
2380
|
case "activity":
|
|
2366
2381
|
var scopeParent2 = subgraphs[scope.parentScope()];
|
|
2367
2382
|
if (!scopeParent2) {
|
|
2368
|
-
console.log("Missing A:Parent ("
|
|
2383
|
+
console.log("Missing A:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2369
2384
|
}
|
|
2370
2385
|
else {
|
|
2371
2386
|
vertices[scope.ScopeName] = scopeParent2.createVertex(scope);
|
|
@@ -2377,7 +2392,7 @@ function createGraph(scopes) {
|
|
|
2377
2392
|
case "function":
|
|
2378
2393
|
var scopeParent3 = vertices[scope.parentScope()];
|
|
2379
2394
|
if (!scopeParent3) {
|
|
2380
|
-
console.log("Missing F:Parent ("
|
|
2395
|
+
console.log("Missing F:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2381
2396
|
}
|
|
2382
2397
|
else {
|
|
2383
2398
|
scopeParent3._.children().push(scope);
|
|
@@ -2389,7 +2404,7 @@ function createGraph(scopes) {
|
|
|
2389
2404
|
var scope = edges[id];
|
|
2390
2405
|
var scopeParent3 = subgraphs[scope.parentScope()];
|
|
2391
2406
|
if (!scopeParent3) {
|
|
2392
|
-
console.log("Missing E:Parent ("
|
|
2407
|
+
console.log("Missing E:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2393
2408
|
}
|
|
2394
2409
|
else {
|
|
2395
2410
|
var parent3 = scopeParent3;
|
|
@@ -2401,7 +2416,7 @@ function createGraph(scopes) {
|
|
|
2401
2416
|
catch (e) {
|
|
2402
2417
|
// const sourceIndex = scope.attr("SourceIndex").RawValue;
|
|
2403
2418
|
// const targetIndex = scope.attr("TargetIndex").RawValue;
|
|
2404
|
-
console.log("Invalid Edge: "
|
|
2419
|
+
console.log("Invalid Edge: " + id);
|
|
2405
2420
|
}
|
|
2406
2421
|
}
|
|
2407
2422
|
}
|
|
@@ -2694,7 +2709,7 @@ var GlobalResultCache = /** @class */ (function (_super) {
|
|
|
2694
2709
|
__extends(GlobalResultCache, _super);
|
|
2695
2710
|
function GlobalResultCache() {
|
|
2696
2711
|
return _super.call(this, function (obj) {
|
|
2697
|
-
return
|
|
2712
|
+
return obj.BaseUrl + "-" + obj.Wuid + "-" + obj.ResultName;
|
|
2698
2713
|
}) || this;
|
|
2699
2714
|
}
|
|
2700
2715
|
return GlobalResultCache;
|
|
@@ -3165,21 +3180,21 @@ var BaseScope = /** @class */ (function (_super) {
|
|
|
3165
3180
|
var label = "";
|
|
3166
3181
|
var rows = [];
|
|
3167
3182
|
label = this.Id;
|
|
3168
|
-
rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">"
|
|
3183
|
+
rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">" + this.Id + "</td></tr>");
|
|
3169
3184
|
if (parentScope) {
|
|
3170
|
-
rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">"
|
|
3185
|
+
rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">" + parentScope.Id + "</td></tr>");
|
|
3171
3186
|
}
|
|
3172
|
-
rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">"
|
|
3187
|
+
rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">" + this.ScopeName + "</td></tr>");
|
|
3173
3188
|
var attrs = this.formattedAttrs();
|
|
3174
3189
|
for (var key in attrs) {
|
|
3175
3190
|
if (key === "Label") {
|
|
3176
3191
|
label = attrs[key];
|
|
3177
3192
|
}
|
|
3178
3193
|
else {
|
|
3179
|
-
rows.push("<tr><td class=\"key\">"
|
|
3194
|
+
rows.push("<tr><td class=\"key\">" + key + "</td><td class=\"value\">" + attrs[key] + "</td></tr>");
|
|
3180
3195
|
}
|
|
3181
3196
|
}
|
|
3182
|
-
return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">"
|
|
3197
|
+
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
3198
|
};
|
|
3184
3199
|
return BaseScope;
|
|
3185
3200
|
}(util.StateObject));
|
|
@@ -3319,7 +3334,7 @@ var WorkunitCache = /** @class */ (function (_super) {
|
|
|
3319
3334
|
__extends(WorkunitCache, _super);
|
|
3320
3335
|
function WorkunitCache() {
|
|
3321
3336
|
return _super.call(this, function (obj) {
|
|
3322
|
-
return
|
|
3337
|
+
return obj.BaseUrl + "-" + obj.Wuid;
|
|
3323
3338
|
}) || this;
|
|
3324
3339
|
}
|
|
3325
3340
|
return WorkunitCache;
|
|
@@ -4167,6 +4182,9 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
4167
4182
|
case "cnt":
|
|
4168
4183
|
props[scopeProperty.Name] = +scopeProperty.RawValue;
|
|
4169
4184
|
break;
|
|
4185
|
+
case "cost":
|
|
4186
|
+
props[scopeProperty.Name] = +scopeProperty.RawValue / 1000000;
|
|
4187
|
+
break;
|
|
4170
4188
|
case "cpu":
|
|
4171
4189
|
case "skw":
|
|
4172
4190
|
case "node":
|
|
@@ -4526,12 +4544,12 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
4526
4544
|
var optsStr = "";
|
|
4527
4545
|
for (var key in opts) {
|
|
4528
4546
|
if (opts.hasOwnProperty(key)) {
|
|
4529
|
-
optsStr += " "
|
|
4547
|
+
optsStr += " " + key + "='" + opts[key] + "'";
|
|
4530
4548
|
}
|
|
4531
4549
|
}
|
|
4532
4550
|
return this.connection.WUCDebug({
|
|
4533
4551
|
Wuid: this.Wuid,
|
|
4534
|
-
Command: "<debug:"
|
|
4552
|
+
Command: "<debug:" + command + " uid='" + this.Wuid + "'" + optsStr + "/>"
|
|
4535
4553
|
}).then(function (response) {
|
|
4536
4554
|
return response;
|
|
4537
4555
|
});
|
|
@@ -4662,7 +4680,7 @@ function getECLDefinition(vertex) {
|
|
|
4662
4680
|
column: +_col
|
|
4663
4681
|
};
|
|
4664
4682
|
}
|
|
4665
|
-
throw new Error("Bad definition: "
|
|
4683
|
+
throw new Error("Bad definition: " + vertex._[ATTR_DEFINITION]);
|
|
4666
4684
|
}
|
|
4667
4685
|
function breakpointLocations(graph, path) {
|
|
4668
4686
|
var retVal = [];
|
|
@@ -4851,12 +4869,12 @@ var LogicalFileCache = /** @class */ (function (_super) {
|
|
|
4851
4869
|
__extends(LogicalFileCache, _super);
|
|
4852
4870
|
function LogicalFileCache() {
|
|
4853
4871
|
return _super.call(this, function (obj) {
|
|
4854
|
-
return
|
|
4872
|
+
return obj.BaseUrl + "-" + obj.Cluster + "-" + obj.Name;
|
|
4855
4873
|
}) || this;
|
|
4856
4874
|
}
|
|
4857
4875
|
return LogicalFileCache;
|
|
4858
4876
|
}(util.Cache));
|
|
4859
|
-
var _store
|
|
4877
|
+
var _store = new LogicalFileCache();
|
|
4860
4878
|
var LogicalFile = /** @class */ (function (_super) {
|
|
4861
4879
|
__extends(LogicalFile, _super);
|
|
4862
4880
|
function LogicalFile(optsConnection, Cluster, Name) {
|
|
@@ -5139,14 +5157,14 @@ var LogicalFile = /** @class */ (function (_super) {
|
|
|
5139
5157
|
configurable: true
|
|
5140
5158
|
});
|
|
5141
5159
|
LogicalFile.attach = function (optsConnection, Cluster, Name) {
|
|
5142
|
-
var retVal = _store
|
|
5160
|
+
var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster: Cluster, Name: Name }, function () {
|
|
5143
5161
|
return new LogicalFile(optsConnection, Cluster, Name);
|
|
5144
5162
|
});
|
|
5145
5163
|
return retVal;
|
|
5146
5164
|
};
|
|
5147
5165
|
LogicalFile.prototype.filePartsOnCluster = function () {
|
|
5148
5166
|
var _a;
|
|
5149
|
-
return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || [])
|
|
5167
|
+
return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || []));
|
|
5150
5168
|
};
|
|
5151
5169
|
LogicalFile.prototype.fileParts = function () {
|
|
5152
5170
|
var _a, _b;
|
|
@@ -5593,12 +5611,12 @@ var StoreCache = /** @class */ (function (_super) {
|
|
|
5593
5611
|
__extends(StoreCache, _super);
|
|
5594
5612
|
function StoreCache() {
|
|
5595
5613
|
return _super.call(this, function (obj) {
|
|
5596
|
-
return
|
|
5614
|
+
return obj.BaseUrl + "-" + obj.Name + ":" + obj.UserSpecific + "-" + obj.Namespace;
|
|
5597
5615
|
}) || this;
|
|
5598
5616
|
}
|
|
5599
5617
|
return StoreCache;
|
|
5600
5618
|
}(util.Cache));
|
|
5601
|
-
var _store = new StoreCache();
|
|
5619
|
+
var _store$1 = new StoreCache();
|
|
5602
5620
|
var ValueChangedMessage = /** @class */ (function (_super) {
|
|
5603
5621
|
__extends(ValueChangedMessage, _super);
|
|
5604
5622
|
function ValueChangedMessage(key, value, oldValue) {
|
|
@@ -5647,7 +5665,7 @@ var Store = /** @class */ (function () {
|
|
|
5647
5665
|
Store.attach = function (optsConnection, Name, Namespace, UserSpecific) {
|
|
5648
5666
|
if (Name === void 0) { Name = "HPCCApps"; }
|
|
5649
5667
|
if (UserSpecific === void 0) { UserSpecific = true; }
|
|
5650
|
-
var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
|
|
5668
|
+
var retVal = _store$1.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
|
|
5651
5669
|
return new Store(optsConnection, Name, Namespace, UserSpecific);
|
|
5652
5670
|
});
|
|
5653
5671
|
return retVal;
|
|
@@ -5671,7 +5689,7 @@ var Store = /** @class */ (function () {
|
|
|
5671
5689
|
_this._dispatch.post(new ValueChangedMessage(key, value, oldValue));
|
|
5672
5690
|
}
|
|
5673
5691
|
}).catch(function (e) {
|
|
5674
|
-
console.error("Store.set(\""
|
|
5692
|
+
console.error("Store.set(\"" + key + "\", \"" + value + "\") failed:", e);
|
|
5675
5693
|
});
|
|
5676
5694
|
};
|
|
5677
5695
|
Store.prototype.get = function (key, broadcast) {
|
|
@@ -5690,7 +5708,7 @@ var Store = /** @class */ (function () {
|
|
|
5690
5708
|
}
|
|
5691
5709
|
return response.Value;
|
|
5692
5710
|
}).catch(function (e) {
|
|
5693
|
-
console.error("Store.get("
|
|
5711
|
+
console.error("Store.get(" + key + ") failed:", e);
|
|
5694
5712
|
return undefined;
|
|
5695
5713
|
});
|
|
5696
5714
|
};
|
|
@@ -5740,7 +5758,7 @@ var Store = /** @class */ (function () {
|
|
|
5740
5758
|
_this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));
|
|
5741
5759
|
}
|
|
5742
5760
|
}).catch(function (e) {
|
|
5743
|
-
console.error("Store.delete("
|
|
5761
|
+
console.error("Store.delete(" + key + ") failed:", e);
|
|
5744
5762
|
});
|
|
5745
5763
|
};
|
|
5746
5764
|
Store.prototype.monitor = function (callback) {
|
|
@@ -5753,7 +5771,7 @@ var TargetClusterCache = /** @class */ (function (_super) {
|
|
|
5753
5771
|
__extends(TargetClusterCache, _super);
|
|
5754
5772
|
function TargetClusterCache() {
|
|
5755
5773
|
return _super.call(this, function (obj) {
|
|
5756
|
-
return
|
|
5774
|
+
return obj.BaseUrl + "-" + obj.Name;
|
|
5757
5775
|
}) || this;
|
|
5758
5776
|
}
|
|
5759
5777
|
return TargetClusterCache;
|
|
@@ -5852,7 +5870,7 @@ var TargetCluster = /** @class */ (function (_super) {
|
|
|
5852
5870
|
var _this = this;
|
|
5853
5871
|
if (request === void 0) { request = {}; }
|
|
5854
5872
|
return this.machineConnection.GetTargetClusterInfo(__assign({ TargetClusters: {
|
|
5855
|
-
Item: [
|
|
5873
|
+
Item: [this.Type + ":" + this.Name]
|
|
5856
5874
|
} }, request)).then(function (response) {
|
|
5857
5875
|
var retVal = [];
|
|
5858
5876
|
for (var _i = 0, _a = response.TargetClusterInfoList.TargetClusterInfo; _i < _a.length; _i++) {
|
|
@@ -6018,7 +6036,7 @@ var Topology = /** @class */ (function (_super) {
|
|
|
6018
6036
|
}
|
|
6019
6037
|
}
|
|
6020
6038
|
}
|
|
6021
|
-
return
|
|
6039
|
+
return rootProtocol + "//" + ip + ":" + port + "/";
|
|
6022
6040
|
});
|
|
6023
6041
|
};
|
|
6024
6042
|
Topology.prototype.fetchTargetClusters = function () {
|
|
@@ -6084,7 +6102,7 @@ var Topology = /** @class */ (function (_super) {
|
|
|
6084
6102
|
return Topology;
|
|
6085
6103
|
}(util.StateObject));
|
|
6086
6104
|
|
|
6087
|
-
util.scopedLogger("clienttools/eclmeta");
|
|
6105
|
+
var logger$2 = util.scopedLogger("clienttools/eclmeta");
|
|
6088
6106
|
var Attr = /** @class */ (function () {
|
|
6089
6107
|
function Attr(xmlAttr) {
|
|
6090
6108
|
this.__attrs = xmlAttr.$;
|
|
@@ -6116,7 +6134,7 @@ var ECLScope = /** @class */ (function () {
|
|
|
6116
6134
|
if (end === void 0) { end = Number.MAX_VALUE; }
|
|
6117
6135
|
this.name = name;
|
|
6118
6136
|
this.type = type;
|
|
6119
|
-
this.sourcePath =
|
|
6137
|
+
this.sourcePath = path.normalize(sourcePath);
|
|
6120
6138
|
this.line = +line - 1;
|
|
6121
6139
|
this.start = +start;
|
|
6122
6140
|
this.body = +body;
|
|
@@ -6241,7 +6259,7 @@ var Source = /** @class */ (function (_super) {
|
|
|
6241
6259
|
fakeNode.appendAttribute("ref", nameParts.join("."));
|
|
6242
6260
|
_this.imports = __spreadArray([
|
|
6243
6261
|
new Import(fakeNode)
|
|
6244
|
-
], _this.parseImports(xmlSource.children("Import"))
|
|
6262
|
+
], _this.parseImports(xmlSource.children("Import")));
|
|
6245
6263
|
return _this;
|
|
6246
6264
|
}
|
|
6247
6265
|
Source.prototype.parseImports = function (imports) {
|
|
@@ -6269,10 +6287,10 @@ var Source = /** @class */ (function (_super) {
|
|
|
6269
6287
|
};
|
|
6270
6288
|
return Source;
|
|
6271
6289
|
}(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
|
|
6290
|
+
var isHiddenDirectory = function (source) { return path.basename(source).indexOf(".") === 0; };
|
|
6291
|
+
var isDirectory = function (source) { return fs.lstatSync(source).isDirectory() && !isHiddenDirectory(source); };
|
|
6292
|
+
var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(path.extname(source).toLowerCase()) >= 0; };
|
|
6293
|
+
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
6294
|
var File = /** @class */ (function (_super) {
|
|
6277
6295
|
__extends(File, _super);
|
|
6278
6296
|
function File(name, sourcePath) {
|
|
@@ -6291,7 +6309,7 @@ var Folder = /** @class */ (function (_super) {
|
|
|
6291
6309
|
Folder.prototype.suggestions = function () {
|
|
6292
6310
|
return modAttrs(this.sourcePath).map(function (folder) {
|
|
6293
6311
|
return {
|
|
6294
|
-
name:
|
|
6312
|
+
name: path.basename(folder, ".ecl"),
|
|
6295
6313
|
type: "folder"
|
|
6296
6314
|
};
|
|
6297
6315
|
});
|
|
@@ -6318,7 +6336,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6318
6336
|
}).then(function (paths) {
|
|
6319
6337
|
for (var _i = 0, _a = ["ECLCC_ECLLIBRARY_PATH", "ECLCC_PLUGIN_PATH"]; _i < _a.length; _i++) {
|
|
6320
6338
|
var knownFolder = _a[_i];
|
|
6321
|
-
if (paths[knownFolder] &&
|
|
6339
|
+
if (paths[knownFolder] && fs.existsSync(paths[knownFolder])) {
|
|
6322
6340
|
_this.walkChildFolders(paths[knownFolder], paths[knownFolder]);
|
|
6323
6341
|
}
|
|
6324
6342
|
}
|
|
@@ -6326,7 +6344,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6326
6344
|
});
|
|
6327
6345
|
};
|
|
6328
6346
|
Workspace.prototype.primeWorkspace = function () {
|
|
6329
|
-
if (
|
|
6347
|
+
if (fs.existsSync(this._workspacePath)) {
|
|
6330
6348
|
this.visitFolder(this._workspacePath, this._workspacePath);
|
|
6331
6349
|
}
|
|
6332
6350
|
};
|
|
@@ -6344,16 +6362,16 @@ var Workspace = /** @class */ (function () {
|
|
|
6344
6362
|
};
|
|
6345
6363
|
Workspace.prototype.visitFile = function (filePath, refPath, force) {
|
|
6346
6364
|
if (force === void 0) { force = false; }
|
|
6347
|
-
var filePathInfo =
|
|
6348
|
-
var pathNoExt =
|
|
6349
|
-
var name =
|
|
6365
|
+
var filePathInfo = path.parse(filePath);
|
|
6366
|
+
var pathNoExt = path.join(filePathInfo.dir, filePathInfo.name);
|
|
6367
|
+
var name = path.relative(refPath, pathNoExt).split(path.sep).join(".");
|
|
6350
6368
|
if (force || !this._test.has(name)) {
|
|
6351
6369
|
this._test.set(name, new File("", filePath));
|
|
6352
6370
|
}
|
|
6353
6371
|
};
|
|
6354
6372
|
Workspace.prototype.visitFolder = function (folderPath, refPath, force) {
|
|
6355
6373
|
if (force === void 0) { force = false; }
|
|
6356
|
-
var name =
|
|
6374
|
+
var name = path.relative(refPath, folderPath).split(path.sep).join(".");
|
|
6357
6375
|
if (force || !this._test.has(name)) {
|
|
6358
6376
|
this._test.set(name, new Folder(name, folderPath));
|
|
6359
6377
|
this.walkChildFolders(folderPath, refPath, force);
|
|
@@ -6364,7 +6382,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6364
6382
|
if (removeDupID && parentStack[parentStack.length - 1] === nameStack[0]) {
|
|
6365
6383
|
nameStack.shift();
|
|
6366
6384
|
}
|
|
6367
|
-
var stack = __spreadArray(__spreadArray([], parentStack
|
|
6385
|
+
var stack = __spreadArray(__spreadArray([], parentStack), nameStack);
|
|
6368
6386
|
var qid = stack.join(".");
|
|
6369
6387
|
return {
|
|
6370
6388
|
stack: stack,
|
|
@@ -6413,10 +6431,10 @@ var Workspace = /** @class */ (function () {
|
|
|
6413
6431
|
if (depth > 1) {
|
|
6414
6432
|
var sourcePath = source.sourcePath;
|
|
6415
6433
|
while (depth > 1) {
|
|
6416
|
-
sourcePath =
|
|
6434
|
+
sourcePath = path.dirname(sourcePath);
|
|
6417
6435
|
--depth;
|
|
6418
6436
|
}
|
|
6419
|
-
this.visitFolder(sourcePath,
|
|
6437
|
+
this.visitFolder(sourcePath, path.dirname(sourcePath));
|
|
6420
6438
|
}
|
|
6421
6439
|
}
|
|
6422
6440
|
this.walkSource(source);
|
|
@@ -6427,7 +6445,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6427
6445
|
var metaParser = new MetaParser();
|
|
6428
6446
|
metaParser.parse(metaXML);
|
|
6429
6447
|
this.parseSources(metaParser.sources);
|
|
6430
|
-
return metaParser.sources.map(function (source) { return
|
|
6448
|
+
return metaParser.sources.map(function (source) { return path.normalize(source.$.sourcePath); });
|
|
6431
6449
|
};
|
|
6432
6450
|
Workspace.prototype.resolveQualifiedID = function (filePath, qualifiedID, charOffset) {
|
|
6433
6451
|
var retVal;
|
|
@@ -6455,7 +6473,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6455
6473
|
retVal = this._test.get(realQID).scope;
|
|
6456
6474
|
}
|
|
6457
6475
|
if (!retVal) {
|
|
6458
|
-
realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")
|
|
6476
|
+
realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")), qualifiedIDParts).join(".");
|
|
6459
6477
|
if (this._test.has(realQID)) {
|
|
6460
6478
|
retVal = this._test.get(realQID).scope;
|
|
6461
6479
|
}
|
|
@@ -6474,7 +6492,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6474
6492
|
}());
|
|
6475
6493
|
var workspaceCache = new util.Dictionary();
|
|
6476
6494
|
function attachWorkspace(_workspacePath, eclccPath) {
|
|
6477
|
-
var workspacePath =
|
|
6495
|
+
var workspacePath = path.normalize(_workspacePath);
|
|
6478
6496
|
if (!workspaceCache.has(workspacePath)) {
|
|
6479
6497
|
var workspace = new Workspace(workspacePath, eclccPath);
|
|
6480
6498
|
workspaceCache.set(workspacePath, workspace);
|
|
@@ -6512,8 +6530,8 @@ var MetaParser = /** @class */ (function (_super) {
|
|
|
6512
6530
|
return MetaParser;
|
|
6513
6531
|
}(util.SAXStackParser));
|
|
6514
6532
|
|
|
6515
|
-
var logger = util.scopedLogger("clienttools/eclcc");
|
|
6516
|
-
var exeExt =
|
|
6533
|
+
var logger$3 = util.scopedLogger("clienttools/eclcc");
|
|
6534
|
+
var exeExt = os.type() === "Windows_NT" ? ".exe" : "";
|
|
6517
6535
|
function tidyCRLF(inStr) {
|
|
6518
6536
|
return inStr.split("\r\n").join("\n").split("\r").join("\n");
|
|
6519
6537
|
}
|
|
@@ -6559,7 +6577,7 @@ var Version = /** @class */ (function () {
|
|
|
6559
6577
|
return this.postfix.localeCompare(other.postfix);
|
|
6560
6578
|
};
|
|
6561
6579
|
Version.prototype.toString = function () {
|
|
6562
|
-
return
|
|
6580
|
+
return this.prefix + "_" + this.major + "." + this.minor + "." + this.patch + "-" + this.postfix;
|
|
6563
6581
|
};
|
|
6564
6582
|
return Version;
|
|
6565
6583
|
}());
|
|
@@ -6608,7 +6626,7 @@ var EclccErrors = /** @class */ (function (_super) {
|
|
|
6608
6626
|
function EclccErrors(stdErr, checked) {
|
|
6609
6627
|
var _this = _super.call(this, checked) || this;
|
|
6610
6628
|
if (stdErr && stdErr.length) {
|
|
6611
|
-
for (var _i = 0, _a = stdErr.split(
|
|
6629
|
+
for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
|
|
6612
6630
|
var errLine = _a[_i];
|
|
6613
6631
|
var match = /([a-zA-Z]:\\(?:[- \w\.\d]+\\)*(?:[- \w\.\d]+)?|(?:\/[\w\.\-]+)+)\((\d*),(\d*)\) ?: ?(error|warning|info) C(\d*) ?: ?(.*)/.exec(errLine);
|
|
6614
6632
|
if (match) {
|
|
@@ -6629,7 +6647,7 @@ var EclccErrors = /** @class */ (function (_super) {
|
|
|
6629
6647
|
if (match) {
|
|
6630
6648
|
continue;
|
|
6631
6649
|
}
|
|
6632
|
-
logger.warning("parseECLErrors: Unable to parse \""
|
|
6650
|
+
logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
|
|
6633
6651
|
_this.errOther.push(errLine);
|
|
6634
6652
|
}
|
|
6635
6653
|
}
|
|
@@ -6642,16 +6660,16 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6642
6660
|
__extends(EnvchkErrors, _super);
|
|
6643
6661
|
function EnvchkErrors(filePath, stdErr, checked) {
|
|
6644
6662
|
var _this = _super.call(this, checked) || this;
|
|
6645
|
-
var content =
|
|
6663
|
+
var content = fs.readFileSync(filePath, "utf8");
|
|
6646
6664
|
content = content.replace(/\r\n/g, "\n");
|
|
6647
6665
|
_this._lines = content.split("\n");
|
|
6648
6666
|
if (stdErr && stdErr.length) {
|
|
6649
|
-
for (var _i = 0, _a = stdErr.split(
|
|
6667
|
+
for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
|
|
6650
6668
|
var errLine = _a[_i];
|
|
6651
6669
|
var match = /(Warning|Error) : Path\=(\S*?)(\[\S*\])? Message\=(.*)/.exec(errLine);
|
|
6652
6670
|
if (match) {
|
|
6653
6671
|
var severity = match[1], _path = match[2], _attr = match[3], _msg = match[4];
|
|
6654
|
-
var msg =
|
|
6672
|
+
var msg = _path + " " + (_attr ? _attr : "") + ": " + _msg;
|
|
6655
6673
|
var _b = _this.locate(_path), line = _b[0], col = _b[1];
|
|
6656
6674
|
_this.errWarn.push({ filePath: filePath, line: line, col: col, msg: msg, severity: severity });
|
|
6657
6675
|
continue;
|
|
@@ -6659,7 +6677,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6659
6677
|
if (match) {
|
|
6660
6678
|
continue;
|
|
6661
6679
|
}
|
|
6662
|
-
logger.warning("parseECLErrors: Unable to parse \""
|
|
6680
|
+
logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
|
|
6663
6681
|
_this.errOther.push(errLine);
|
|
6664
6682
|
}
|
|
6665
6683
|
}
|
|
@@ -6690,7 +6708,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6690
6708
|
};
|
|
6691
6709
|
return EnvchkErrors;
|
|
6692
6710
|
}(Errors));
|
|
6693
|
-
function walkXmlJson(node, callback, stack) {
|
|
6711
|
+
function walkXmlJson$1(node, callback, stack) {
|
|
6694
6712
|
stack = stack || [];
|
|
6695
6713
|
stack.push(node);
|
|
6696
6714
|
for (var key in node) {
|
|
@@ -6699,11 +6717,11 @@ function walkXmlJson(node, callback, stack) {
|
|
|
6699
6717
|
callback(key, childNode, stack);
|
|
6700
6718
|
if (childNode instanceof Array) {
|
|
6701
6719
|
childNode.forEach(function (child) {
|
|
6702
|
-
walkXmlJson(child, callback, stack);
|
|
6720
|
+
walkXmlJson$1(child, callback, stack);
|
|
6703
6721
|
});
|
|
6704
6722
|
}
|
|
6705
6723
|
else if (typeof childNode === "object") {
|
|
6706
|
-
walkXmlJson(childNode, callback, stack);
|
|
6724
|
+
walkXmlJson$1(childNode, callback, stack);
|
|
6707
6725
|
}
|
|
6708
6726
|
}
|
|
6709
6727
|
}
|
|
@@ -6717,7 +6735,7 @@ var LocalWorkunit = /** @class */ (function () {
|
|
|
6717
6735
|
var retVal = [];
|
|
6718
6736
|
if (util.exists("W_LOCAL.Graphs", this.jsonWU)) {
|
|
6719
6737
|
var id_1 = "";
|
|
6720
|
-
walkXmlJson(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
|
|
6738
|
+
walkXmlJson$1(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
|
|
6721
6739
|
if (key === "$" && item.id) {
|
|
6722
6740
|
id_1 = item.id;
|
|
6723
6741
|
}
|
|
@@ -6746,10 +6764,10 @@ var ClientTools = /** @class */ (function () {
|
|
|
6746
6764
|
if (args === void 0) { args = []; }
|
|
6747
6765
|
this._paths = {};
|
|
6748
6766
|
this.eclccPath = eclccPath;
|
|
6749
|
-
this.binPath =
|
|
6750
|
-
this.envchkPath =
|
|
6751
|
-
this.eclBundlePath =
|
|
6752
|
-
this.cwd =
|
|
6767
|
+
this.binPath = path.dirname(this.eclccPath);
|
|
6768
|
+
this.envchkPath = path.join(this.binPath, "envchk" + exeExt);
|
|
6769
|
+
this.eclBundlePath = path.join(this.binPath, "ecl-bundle" + exeExt);
|
|
6770
|
+
this.cwd = path.normalize(cwd || this.binPath);
|
|
6753
6771
|
this.includeFolders = includeFolders;
|
|
6754
6772
|
this._legacyMode = legacyMode;
|
|
6755
6773
|
this._args = args;
|
|
@@ -6762,7 +6780,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6762
6780
|
};
|
|
6763
6781
|
ClientTools.prototype.exists = function (filePath) {
|
|
6764
6782
|
try {
|
|
6765
|
-
|
|
6783
|
+
fs.accessSync(filePath);
|
|
6766
6784
|
return true;
|
|
6767
6785
|
}
|
|
6768
6786
|
catch (e) { }
|
|
@@ -6770,12 +6788,12 @@ var ClientTools = /** @class */ (function () {
|
|
|
6770
6788
|
};
|
|
6771
6789
|
ClientTools.prototype.args = function (additionalItems) {
|
|
6772
6790
|
if (additionalItems === void 0) { additionalItems = []; }
|
|
6773
|
-
var retVal = __spreadArray([], this._args
|
|
6791
|
+
var retVal = __spreadArray([], this._args);
|
|
6774
6792
|
if (this._legacyMode) {
|
|
6775
6793
|
retVal.push("-legacy");
|
|
6776
6794
|
}
|
|
6777
6795
|
return retVal.concat(this.includeFolders.map(function (includePath) {
|
|
6778
|
-
return "-I" +
|
|
6796
|
+
return "-I" + path.normalize(includePath);
|
|
6779
6797
|
})).concat(additionalItems);
|
|
6780
6798
|
};
|
|
6781
6799
|
ClientTools.prototype.version = function () {
|
|
@@ -6783,7 +6801,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6783
6801
|
if (this._version) {
|
|
6784
6802
|
return Promise.resolve(this._version);
|
|
6785
6803
|
}
|
|
6786
|
-
return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find "
|
|
6804
|
+
return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6787
6805
|
_this._version = new Version(response.stdout);
|
|
6788
6806
|
return _this._version;
|
|
6789
6807
|
});
|
|
@@ -6793,7 +6811,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6793
6811
|
};
|
|
6794
6812
|
ClientTools.prototype.paths = function () {
|
|
6795
6813
|
var _this = this;
|
|
6796
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find "
|
|
6814
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6797
6815
|
if (response && response.stdout && response.stdout.length) {
|
|
6798
6816
|
var paths = response.stdout.split(/\r?\n/);
|
|
6799
6817
|
for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {
|
|
@@ -6809,20 +6827,20 @@ var ClientTools = /** @class */ (function () {
|
|
|
6809
6827
|
};
|
|
6810
6828
|
ClientTools.prototype.loadXMLDoc = function (filePath, removeOnRead) {
|
|
6811
6829
|
return new Promise(function (resolve, _reject) {
|
|
6812
|
-
var fileData =
|
|
6830
|
+
var fileData = fs.readFileSync(filePath, "ascii");
|
|
6813
6831
|
var retVal = util.xml2json(fileData);
|
|
6814
6832
|
if (removeOnRead) {
|
|
6815
|
-
|
|
6833
|
+
fs.unlink(filePath, function (err) { });
|
|
6816
6834
|
}
|
|
6817
6835
|
resolve(retVal);
|
|
6818
6836
|
});
|
|
6819
6837
|
};
|
|
6820
6838
|
ClientTools.prototype.createWU = function (filename) {
|
|
6821
6839
|
var _this = this;
|
|
6822
|
-
var tmpName =
|
|
6840
|
+
var tmpName = tmp.tmpNameSync({ prefix: "eclcc-wu-tmp", postfix: "" });
|
|
6823
6841
|
var args = ["-o" + tmpName, "-wu"].concat([filename]);
|
|
6824
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find "
|
|
6825
|
-
var xmlPath =
|
|
6842
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (_response) {
|
|
6843
|
+
var xmlPath = path.normalize(tmpName + ".xml");
|
|
6826
6844
|
var contentPromise = _this.exists(xmlPath) ? _this.loadXMLDoc(xmlPath, true) : Promise.resolve({});
|
|
6827
6845
|
return contentPromise.then(function (content) {
|
|
6828
6846
|
return new LocalWorkunit(content);
|
|
@@ -6831,7 +6849,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6831
6849
|
};
|
|
6832
6850
|
ClientTools.prototype.createArchive = function (filename) {
|
|
6833
6851
|
var args = ["-E"].concat([filename]);
|
|
6834
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find "
|
|
6852
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6835
6853
|
return {
|
|
6836
6854
|
content: response.stdout,
|
|
6837
6855
|
err: new EclccErrors(response.stderr, [])
|
|
@@ -6844,7 +6862,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6844
6862
|
ClientTools.prototype.fetchMeta = function (filePath) {
|
|
6845
6863
|
return Promise.all([
|
|
6846
6864
|
attachWorkspace(this.cwd),
|
|
6847
|
-
this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find "
|
|
6865
|
+
this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find " + this.eclccPath)
|
|
6848
6866
|
]).then(function (_a) {
|
|
6849
6867
|
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6850
6868
|
if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {
|
|
@@ -6857,7 +6875,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6857
6875
|
if (args === void 0) { args = ["-syntax"]; }
|
|
6858
6876
|
return Promise.all([
|
|
6859
6877
|
attachWorkspace(this.cwd),
|
|
6860
|
-
this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args
|
|
6878
|
+
this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), ["-M", filePath])), "eclcc", "Cannot find " + this.eclccPath)
|
|
6861
6879
|
]).then(function (_a) {
|
|
6862
6880
|
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6863
6881
|
var checked = [];
|
|
@@ -6871,9 +6889,9 @@ var ClientTools = /** @class */ (function () {
|
|
|
6871
6889
|
if (args === void 0) { args = []; }
|
|
6872
6890
|
return Promise.all([
|
|
6873
6891
|
attachWorkspace(this.cwd),
|
|
6874
|
-
this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args
|
|
6892
|
+
this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), [filePath])), "envchk", "Cannot find " + this.envchkPath)
|
|
6875
6893
|
]).then(function (_a) {
|
|
6876
|
-
_a[0]
|
|
6894
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6877
6895
|
return new EnvchkErrors(filePath, execFileResponse ? execFileResponse.stderr : "", []);
|
|
6878
6896
|
});
|
|
6879
6897
|
};
|
|
@@ -6896,13 +6914,13 @@ var ClientTools = /** @class */ (function () {
|
|
|
6896
6914
|
}
|
|
6897
6915
|
return retVal;
|
|
6898
6916
|
}),
|
|
6899
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find "
|
|
6917
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6900
6918
|
.then(function (installedText) {
|
|
6901
6919
|
return tidyCRLF(installedText.stdout).split("\n");
|
|
6902
6920
|
}).then(function (installedItems) {
|
|
6903
6921
|
var allProps = {};
|
|
6904
6922
|
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 "
|
|
6923
|
+
return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find " + _this.eclBundlePath)
|
|
6906
6924
|
.then(function (infoText) {
|
|
6907
6925
|
return tidyCRLF(infoText.stdout).split("\n");
|
|
6908
6926
|
}).then(function (info) {
|
|
@@ -6942,25 +6960,25 @@ var ClientTools = /** @class */ (function () {
|
|
|
6942
6960
|
ClientTools.prototype.bundleInstall = function (bundleUrl) {
|
|
6943
6961
|
return Promise.all([
|
|
6944
6962
|
attachWorkspace(this.cwd),
|
|
6945
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find "
|
|
6963
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6946
6964
|
]).then(function (_a) {
|
|
6947
|
-
_a[0]
|
|
6965
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6948
6966
|
return execFileResponse;
|
|
6949
6967
|
});
|
|
6950
6968
|
};
|
|
6951
6969
|
ClientTools.prototype.bundleUninstall = function (name) {
|
|
6952
6970
|
return Promise.all([
|
|
6953
6971
|
attachWorkspace(this.cwd),
|
|
6954
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find "
|
|
6972
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6955
6973
|
]).then(function (_a) {
|
|
6956
|
-
_a[0]
|
|
6974
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6957
6975
|
return execFileResponse;
|
|
6958
6976
|
});
|
|
6959
6977
|
};
|
|
6960
6978
|
ClientTools.prototype.execFile = function (cmd, cwd, args, _toolName, _notFoundError) {
|
|
6961
6979
|
return new Promise(function (resolve, _reject) {
|
|
6962
|
-
logger.debug(
|
|
6963
|
-
var child =
|
|
6980
|
+
logger$3.debug(cmd + " " + args.join(" "));
|
|
6981
|
+
var child = cp.spawn(cmd, args, { cwd: cwd });
|
|
6964
6982
|
var stdOut = "";
|
|
6965
6983
|
var stdErr = "";
|
|
6966
6984
|
child.stdout.on("data", function (data) {
|
|
@@ -6982,18 +7000,18 @@ var ClientTools = /** @class */ (function () {
|
|
|
6982
7000
|
}());
|
|
6983
7001
|
function locateClientToolsInFolder(rootFolder, clientTools) {
|
|
6984
7002
|
if (rootFolder) {
|
|
6985
|
-
var hpccSystemsFolder_1 =
|
|
6986
|
-
if (
|
|
6987
|
-
if (
|
|
6988
|
-
var eclccPath =
|
|
6989
|
-
if (
|
|
7003
|
+
var hpccSystemsFolder_1 = path.join(rootFolder, "HPCCSystems");
|
|
7004
|
+
if (fs.existsSync(hpccSystemsFolder_1) && fs.statSync(hpccSystemsFolder_1).isDirectory()) {
|
|
7005
|
+
if (os.type() !== "Windows_NT") {
|
|
7006
|
+
var eclccPath = path.join(hpccSystemsFolder_1, "bin", "eclcc");
|
|
7007
|
+
if (fs.existsSync(eclccPath)) {
|
|
6990
7008
|
clientTools.push(new ClientTools(eclccPath));
|
|
6991
7009
|
}
|
|
6992
7010
|
}
|
|
6993
|
-
|
|
6994
|
-
var eclccPath =
|
|
6995
|
-
if (
|
|
6996
|
-
var name_1 =
|
|
7011
|
+
fs.readdirSync(hpccSystemsFolder_1).forEach(function (versionFolder) {
|
|
7012
|
+
var eclccPath = path.join(hpccSystemsFolder_1, versionFolder, "clienttools", "bin", "eclcc" + exeExt);
|
|
7013
|
+
if (fs.existsSync(eclccPath)) {
|
|
7014
|
+
var name_1 = path.basename(versionFolder);
|
|
6997
7015
|
var version = new Version(name_1);
|
|
6998
7016
|
if (version.exists()) {
|
|
6999
7017
|
clientTools.push(new ClientTools(eclccPath));
|
|
@@ -7008,7 +7026,7 @@ function locateAllClientTools() {
|
|
|
7008
7026
|
if (allClientToolsCache)
|
|
7009
7027
|
return allClientToolsCache;
|
|
7010
7028
|
var clientTools = [];
|
|
7011
|
-
switch (
|
|
7029
|
+
switch (os.type()) {
|
|
7012
7030
|
case "Windows_NT":
|
|
7013
7031
|
var rootFolder86 = process.env["ProgramFiles(x86)"] || "";
|
|
7014
7032
|
if (rootFolder86) {
|
|
@@ -7037,9 +7055,9 @@ function locateAllClientTools() {
|
|
|
7037
7055
|
}
|
|
7038
7056
|
var eclccPathMsg = "";
|
|
7039
7057
|
function logEclccPath(eclccPath) {
|
|
7040
|
-
var msg = "Using eclccPath setting: "
|
|
7058
|
+
var msg = "Using eclccPath setting: " + eclccPath;
|
|
7041
7059
|
if (eclccPathMsg !== msg) {
|
|
7042
|
-
logger.info(msg);
|
|
7060
|
+
logger$3.info(msg);
|
|
7043
7061
|
eclccPathMsg = msg;
|
|
7044
7062
|
}
|
|
7045
7063
|
}
|
|
@@ -7050,7 +7068,7 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
|
|
|
7050
7068
|
if (includeFolders === void 0) { includeFolders = []; }
|
|
7051
7069
|
if (legacyMode === void 0) { legacyMode = false; }
|
|
7052
7070
|
if (args === void 0) { args = []; }
|
|
7053
|
-
if (overridePath &&
|
|
7071
|
+
if (overridePath && fs.existsSync(overridePath)) {
|
|
7054
7072
|
logEclccPath(overridePath);
|
|
7055
7073
|
return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode, args));
|
|
7056
7074
|
}
|
|
@@ -7082,33 +7100,33 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
|
|
|
7082
7100
|
// DOM Parser polyfill ---
|
|
7083
7101
|
util.root.DOMParser = xmldom.DOMParser;
|
|
7084
7102
|
if (typeof util.root.fetch === "undefined") {
|
|
7085
|
-
util.root.fetch =
|
|
7103
|
+
util.root.fetch = fetch$1;
|
|
7086
7104
|
}
|
|
7087
7105
|
if (typeof util.root.AbortController === "undefined") {
|
|
7088
|
-
util.root.AbortController =
|
|
7106
|
+
util.root.AbortController = AbortController;
|
|
7089
7107
|
}
|
|
7090
|
-
util.root.fetch.__rejectUnauthorizedAgent = new
|
|
7108
|
+
util.root.fetch.__rejectUnauthorizedAgent = new https.Agent({
|
|
7091
7109
|
rejectUnauthorized: false
|
|
7092
7110
|
});
|
|
7093
7111
|
var globalCA = "";
|
|
7094
|
-
if (
|
|
7095
|
-
if (Array.isArray(
|
|
7096
|
-
if (typeof
|
|
7097
|
-
globalCA =
|
|
7112
|
+
if (https.globalAgent.options.ca !== undefined) {
|
|
7113
|
+
if (Array.isArray(https.globalAgent.options.ca) && https.globalAgent.options.ca.length) {
|
|
7114
|
+
if (typeof https.globalAgent.options.ca[0] === "string") {
|
|
7115
|
+
globalCA = https.globalAgent.options.ca.join("\n");
|
|
7098
7116
|
}
|
|
7099
|
-
else if (
|
|
7100
|
-
globalCA =
|
|
7117
|
+
else if (https.globalAgent.options.ca[0] instanceof safeBuffer.Buffer) {
|
|
7118
|
+
globalCA = https.globalAgent.options.ca.map(function (row) { return row.toString(); }).join("\n");
|
|
7101
7119
|
}
|
|
7102
7120
|
}
|
|
7103
|
-
else if (typeof
|
|
7104
|
-
globalCA =
|
|
7121
|
+
else if (typeof https.globalAgent.options.ca === "string") {
|
|
7122
|
+
globalCA = https.globalAgent.options.ca;
|
|
7105
7123
|
}
|
|
7106
|
-
else if (
|
|
7107
|
-
globalCA =
|
|
7124
|
+
else if (https.globalAgent.options.ca instanceof safeBuffer.Buffer) {
|
|
7125
|
+
globalCA = https.globalAgent.options.ca.toString();
|
|
7108
7126
|
}
|
|
7109
7127
|
globalCA += "\n";
|
|
7110
7128
|
}
|
|
7111
|
-
util.root.fetch.__trustwaveAgent = new
|
|
7129
|
+
util.root.fetch.__trustwaveAgent = new https.Agent({
|
|
7112
7130
|
ca: globalCA + trustwave
|
|
7113
7131
|
});
|
|
7114
7132
|
if (typeof util.root.btoa === "undefined") {
|
|
@@ -7144,6 +7162,7 @@ exports.GlobalResultCache = GlobalResultCache;
|
|
|
7144
7162
|
exports.GraphCache = GraphCache;
|
|
7145
7163
|
exports.Import = Import;
|
|
7146
7164
|
exports.LocalWorkunit = LocalWorkunit;
|
|
7165
|
+
exports.LogaccessServiceEx = LogaccessServiceEx;
|
|
7147
7166
|
exports.LogicalFile = LogicalFile;
|
|
7148
7167
|
exports.LogicalFileCache = LogicalFileCache;
|
|
7149
7168
|
exports.Machine = Machine;
|
|
@@ -7153,6 +7172,7 @@ exports.PKG_NAME = PKG_NAME;
|
|
|
7153
7172
|
exports.PKG_VERSION = PKG_VERSION;
|
|
7154
7173
|
exports.Query = Query;
|
|
7155
7174
|
exports.Resource = Resource;
|
|
7175
|
+
exports.ResourcesServiceEx = ResourcesServiceEx;
|
|
7156
7176
|
exports.Result = Result;
|
|
7157
7177
|
exports.ResultCache = ResultCache;
|
|
7158
7178
|
exports.SMCService = SMCService;
|
|
@@ -7212,5 +7232,5 @@ exports.send = send;
|
|
|
7212
7232
|
exports.serializeRequest = serializeRequest;
|
|
7213
7233
|
exports.setTransportFactory = setTransportFactory;
|
|
7214
7234
|
exports.targetClusters = targetClusters;
|
|
7215
|
-
exports.walkXmlJson = walkXmlJson;
|
|
7235
|
+
exports.walkXmlJson = walkXmlJson$1;
|
|
7216
7236
|
//# sourceMappingURL=index.node.js.map
|