@hpcc-js/comms 2.62.0 → 2.66.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.
Files changed (61) hide show
  1. package/dist/index.es6.js +209 -198
  2. package/dist/index.es6.js.map +1 -1
  3. package/dist/index.js +111 -86
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.min.js +1 -1
  6. package/dist/index.min.js.map +1 -1
  7. package/dist/index.node.js +226 -174
  8. package/dist/index.node.js.map +1 -1
  9. package/dist/index.node.min.js +1 -1
  10. package/dist/index.node.min.js.map +1 -1
  11. package/lib-es6/__package__.js +2 -2
  12. package/lib-es6/clienttools/eclMeta.js +4 -4
  13. package/lib-es6/clienttools/eclMeta.js.map +1 -1
  14. package/lib-es6/clienttools/eclcc.js +18 -18
  15. package/lib-es6/clienttools/eclcc.js.map +1 -1
  16. package/lib-es6/connection.js +6 -6
  17. package/lib-es6/connection.js.map +1 -1
  18. package/lib-es6/ecl/activity.js +7 -0
  19. package/lib-es6/ecl/activity.js.map +1 -1
  20. package/lib-es6/ecl/graph.js +5 -5
  21. package/lib-es6/ecl/graph.js.map +1 -1
  22. package/lib-es6/ecl/logicalFile.js +2 -2
  23. package/lib-es6/ecl/logicalFile.js.map +1 -1
  24. package/lib-es6/ecl/result.js +2 -1
  25. package/lib-es6/ecl/result.js.map +1 -1
  26. package/lib-es6/ecl/scope.js +5 -5
  27. package/lib-es6/ecl/scope.js.map +1 -1
  28. package/lib-es6/ecl/store.js +4 -4
  29. package/lib-es6/ecl/store.js.map +1 -1
  30. package/lib-es6/ecl/targetCluster.js +2 -2
  31. package/lib-es6/ecl/targetCluster.js.map +1 -1
  32. package/lib-es6/ecl/topology.js +3 -2
  33. package/lib-es6/ecl/topology.js.map +1 -1
  34. package/lib-es6/ecl/workunit.js +4 -4
  35. package/lib-es6/ecl/workunit.js.map +1 -1
  36. package/lib-es6/espConnection.js +1 -1
  37. package/lib-es6/espConnection.js.map +1 -1
  38. package/lib-es6/services/wsDFU.js.map +1 -1
  39. package/lib-es6/services/wsEcl.js +3 -3
  40. package/lib-es6/services/wsEcl.js.map +1 -1
  41. package/lib-es6/services/wsWorkunits.js.map +1 -1
  42. package/package.json +21 -20
  43. package/src/__package__.ts +2 -2
  44. package/src/ecl/activity.ts +9 -0
  45. package/src/ecl/result.ts +1 -0
  46. package/src/ecl/topology.ts +2 -2
  47. package/src/services/wsDFU.ts +1 -0
  48. package/src/services/wsWorkunits.ts +2 -0
  49. package/types/__package__.d.ts +2 -2
  50. package/types/ecl/activity.d.ts +2 -1
  51. package/types/ecl/activity.d.ts.map +1 -1
  52. package/types/ecl/result.d.ts.map +1 -1
  53. package/types/ecl/topology.d.ts.map +1 -1
  54. package/types/services/wsDFU.d.ts +1 -0
  55. package/types/services/wsDFU.d.ts.map +1 -1
  56. package/types/services/wsWorkunits.d.ts +2 -0
  57. package/types/services/wsWorkunits.d.ts.map +1 -1
  58. package/types-3.4/__package__.d.ts +2 -2
  59. package/types-3.4/ecl/activity.d.ts +2 -1
  60. package/types-3.4/services/wsDFU.d.ts +1 -0
  61. package/types-3.4/services/wsWorkunits.d.ts +2 -0
@@ -2,12 +2,10 @@
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
-
7
5
  var util = require('@hpcc-js/util');
8
6
  var xmldom = require('@xmldom/xmldom');
9
- var fetch$1 = _interopDefault(require('node-fetch'));
10
- var AbortController = _interopDefault(require('abort-controller'));
7
+ var fetch$1 = require('node-fetch');
8
+ var AbortController = require('abort-controller');
11
9
  var https = require('https');
12
10
  var safeBuffer = require('safe-buffer');
13
11
  var cp = require('child_process');
@@ -16,11 +14,40 @@ var os = require('os');
16
14
  var path = require('path');
17
15
  var tmp = require('tmp');
18
16
 
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
+
19
46
  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";
20
47
 
21
48
  var PKG_NAME = "@hpcc-js/comms";
22
- var PKG_VERSION = "2.62.0";
23
- var BUILD_VERSION = "2.91.0";
49
+ var PKG_VERSION = "2.66.0";
50
+ var BUILD_VERSION = "2.97.0";
24
51
 
25
52
  /*! *****************************************************************************
26
53
  Copyright (c) Microsoft Corporation.
@@ -109,10 +136,10 @@ function __spreadArray(to, from, pack) {
109
136
  ar[i] = from[i];
110
137
  }
111
138
  }
112
- return to.concat(ar || from);
139
+ return to.concat(ar || Array.prototype.slice.call(from));
113
140
  }
114
141
 
115
- var logger = util.scopedLogger("comms/connection.ts");
142
+ var logger$2 = util.scopedLogger("comms/connection.ts");
116
143
  function instanceOfIOptions(object) {
117
144
  return "baseUrl" in object;
118
145
  }
@@ -151,20 +178,20 @@ function serializeRequest(obj, encodeRequest, prefix) {
151
178
  obj[key].forEach(function (row, i) {
152
179
  if (typeof row === "object") {
153
180
  includeItemCount_1 = true;
154
- str.push(serializeRequest(row, encodeRequest, prefix + encode(key + "." + i, encodeRequest)));
181
+ str.push(serializeRequest(row, encodeRequest, prefix + encode("".concat(key, ".").concat(i), encodeRequest)));
155
182
  }
156
183
  else {
157
- str.push(prefix + encode(key + "_i" + i, encodeRequest) + "=" + serializeRequest(row, encodeRequest));
184
+ str.push(prefix + encode("".concat(key, "_i").concat(i), encodeRequest) + "=" + serializeRequest(row, encodeRequest));
158
185
  }
159
186
  });
160
187
  if (includeItemCount_1) {
161
- str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key].length);
188
+ str.push(prefix + encode("".concat(key, ".itemcount"), encodeRequest) + "=" + obj[key].length);
162
189
  }
163
190
  }
164
191
  else if (typeof obj[key] === "object") {
165
192
  if (obj[key] && obj[key]["Item"] instanceof Array) { // Specific to ws_machine.GetTargetClusterInfo?
166
193
  str.push(serializeRequest(obj[key]["Item"], encodeRequest, prefix + encode(key, encodeRequest)));
167
- str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key]["Item"].length);
194
+ str.push(prefix + encode("".concat(key, ".itemcount"), encodeRequest) + "=" + obj[key]["Item"].length);
168
195
  }
169
196
  else {
170
197
  str.push(serializeRequest(obj[key], encodeRequest, prefix + encode(key, encodeRequest)));
@@ -214,12 +241,12 @@ function jsonp(opts, action, request, responseType, header) {
214
241
  respondedTimeout -= respondedTick;
215
242
  if (respondedTimeout <= 0) {
216
243
  clearInterval(progress);
217
- logger.error("Request timeout: " + script.src);
244
+ logger$2.error("Request timeout: " + script.src);
218
245
  doCallback();
219
246
  reject(Error("Request timeout: " + script.src));
220
247
  }
221
248
  else {
222
- logger.debug("Request pending (" + respondedTimeout / 1000 + " sec): " + script.src);
249
+ logger$2.debug("Request pending (" + respondedTimeout / 1000 + " sec): " + script.src);
223
250
  }
224
251
  }
225
252
  }, respondedTick);
@@ -230,7 +257,7 @@ function jsonp(opts, action, request, responseType, header) {
230
257
  });
231
258
  }
232
259
  function authHeader(opts) {
233
- return opts.userID ? { Authorization: "Basic " + btoa(opts.userID + ":" + opts.password) } : {};
260
+ return opts.userID ? { Authorization: "Basic ".concat(btoa("".concat(opts.userID, ":").concat(opts.password))) } : {};
234
261
  }
235
262
  // _omitMap is a workaround for older HPCC-Platform instances without credentials ---
236
263
  var _omitMap = {};
@@ -289,7 +316,7 @@ function get(opts, action, request, responseType, header) {
289
316
  abortSignal = request.abortSignal_;
290
317
  delete request.abortSignal_;
291
318
  }
292
- return doFetch(opts, action + "?" + serializeRequest(request, opts.encodeRequest), {
319
+ return doFetch(opts, "".concat(action, "?").concat(serializeRequest(request, opts.encodeRequest)), {
293
320
  method: "get",
294
321
  signal: abortSignal
295
322
  }, __assign({}, header), responseType);
@@ -368,7 +395,7 @@ var ESPExceptions = /** @class */ (function (_super) {
368
395
  _this.Source = exceptions.Source;
369
396
  _this.Exception = exceptions.Exception;
370
397
  if (exceptions.Exception.length) {
371
- _this.message = exceptions.Exception[0].Code + ": " + exceptions.Exception[0].Message;
398
+ _this.message = "".concat(exceptions.Exception[0].Code, ": ").concat(exceptions.Exception[0].Message);
372
399
  }
373
400
  else {
374
401
  _this.message = "";
@@ -688,7 +715,7 @@ var EclService = /** @class */ (function (_super) {
688
715
  };
689
716
  EclService.prototype.requestJson = function (querySet, queryId) {
690
717
  // http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display
691
- return this._connection.send("example/request/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
718
+ return this._connection.send("example/request/query/".concat(querySet, "/").concat(queryId, "/json"), {}, "text").then(function (response) {
692
719
  var requestSchema = JSON.parse(response);
693
720
  for (var key in requestSchema) {
694
721
  return requestSchema[key];
@@ -698,7 +725,7 @@ var EclService = /** @class */ (function (_super) {
698
725
  };
699
726
  EclService.prototype.responseJson = function (querySet, queryId) {
700
727
  // http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display
701
- return this._connection.send("example/response/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
728
+ return this._connection.send("example/response/query/".concat(querySet, "/").concat(queryId, "/json"), {}, "text").then(function (response) {
702
729
  var responseSchema = JSON.parse(response);
703
730
  for (var key in responseSchema) {
704
731
  return responseSchema[key].Results;
@@ -714,7 +741,7 @@ var EclService = /** @class */ (function (_super) {
714
741
  };
715
742
  EclService.prototype.submit = function (querySet, queryId, request) {
716
743
  // http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json
717
- var action = "submit/query/" + querySet + "/" + queryId;
744
+ var action = "submit/query/".concat(querySet, "/").concat(queryId);
718
745
  return this._connection.send(action, request, "json2").then(function (response) {
719
746
  if (response.Results && response.Results.Exception) {
720
747
  throw new ESPExceptions(action, request, {
@@ -764,7 +791,7 @@ function ascendingComparator(f) {
764
791
  };
765
792
  }
766
793
 
767
- var ascendingBisect = bisector(ascending);
794
+ bisector(ascending);
768
795
 
769
796
  function number(x) {
770
797
  return x === null ? NaN : +x;
@@ -985,13 +1012,18 @@ var StoreService = /** @class */ (function (_super) {
985
1012
  return StoreService;
986
1013
  }(Service));
987
1014
 
1015
+ /*
1016
+ Response structures generated via:
1017
+ * http://localhost:8010/WsTopology/TpLogicalClusterQuery?respjson_
1018
+ * http://json2ts.com/
1019
+ */
1020
+ exports.TpLogicalClusterQuery = void 0;
988
1021
  (function (TpLogicalClusterQuery) {
989
- var RoxieQueueFilter;
990
1022
  (function (RoxieQueueFilter) {
991
1023
  RoxieQueueFilter["All"] = "All";
992
1024
  RoxieQueueFilter["QueriesOnly"] = "QueriesOnly";
993
1025
  RoxieQueueFilter["WorkunitsOnly"] = "WorkunitsOnly";
994
- })(RoxieQueueFilter = TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
1026
+ })(TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
995
1027
  })(exports.TpLogicalClusterQuery || (exports.TpLogicalClusterQuery = {}));
996
1028
  var TopologyService = /** @class */ (function (_super) {
997
1029
  __extends(TopologyService, _super);
@@ -1047,6 +1079,13 @@ var TopologyService = /** @class */ (function (_super) {
1047
1079
  return TopologyService;
1048
1080
  }(Service));
1049
1081
 
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;
1050
1089
  (function (WUStateID) {
1051
1090
  WUStateID[WUStateID["Unknown"] = 0] = "Unknown";
1052
1091
  WUStateID[WUStateID["Compiled"] = 1] = "Compiled";
@@ -1071,8 +1110,8 @@ var TopologyService = /** @class */ (function (_super) {
1071
1110
  function isECLResult(_) {
1072
1111
  return typeof _.Name === "string";
1073
1112
  }
1113
+ exports.WUUpdate = void 0;
1074
1114
  (function (WUUpdate) {
1075
- var Action;
1076
1115
  (function (Action) {
1077
1116
  Action[Action["Unknown"] = 0] = "Unknown";
1078
1117
  Action[Action["Compile"] = 1] = "Compile";
@@ -1084,7 +1123,7 @@ function isECLResult(_) {
1084
1123
  Action[Action["Resume"] = 7] = "Resume";
1085
1124
  Action[Action["Debug"] = 8] = "Debug";
1086
1125
  Action[Action["__size"] = 9] = "__size";
1087
- })(Action = WUUpdate.Action || (WUUpdate.Action = {}));
1126
+ })(WUUpdate.Action || (WUUpdate.Action = {}));
1088
1127
  })(exports.WUUpdate || (exports.WUUpdate = {}));
1089
1128
  function isWUQueryECLWorkunit(_) {
1090
1129
  return _.TotalClusterTime !== undefined;
@@ -1286,6 +1325,8 @@ var day = newInterval(function(date) {
1286
1325
  return date.getDate() - 1;
1287
1326
  });
1288
1327
 
1328
+ var timeDay = day;
1329
+
1289
1330
  function weekday(i) {
1290
1331
  return newInterval(function(date) {
1291
1332
  date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
@@ -1299,11 +1340,11 @@ function weekday(i) {
1299
1340
 
1300
1341
  var sunday = weekday(0);
1301
1342
  var monday = weekday(1);
1302
- var tuesday = weekday(2);
1303
- var wednesday = weekday(3);
1343
+ weekday(2);
1344
+ weekday(3);
1304
1345
  var thursday = weekday(4);
1305
- var friday = weekday(5);
1306
- var saturday = weekday(6);
1346
+ weekday(5);
1347
+ weekday(6);
1307
1348
 
1308
1349
  var year = newInterval(function(date) {
1309
1350
  date.setMonth(0, 1);
@@ -1327,6 +1368,8 @@ year.every = function(k) {
1327
1368
  });
1328
1369
  };
1329
1370
 
1371
+ var timeYear = year;
1372
+
1330
1373
  var utcDay = newInterval(function(date) {
1331
1374
  date.setUTCHours(0, 0, 0, 0);
1332
1375
  }, function(date, step) {
@@ -1337,6 +1380,8 @@ var utcDay = newInterval(function(date) {
1337
1380
  return date.getUTCDate() - 1;
1338
1381
  });
1339
1382
 
1383
+ var utcDay$1 = utcDay;
1384
+
1340
1385
  function utcWeekday(i) {
1341
1386
  return newInterval(function(date) {
1342
1387
  date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
@@ -1350,11 +1395,11 @@ function utcWeekday(i) {
1350
1395
 
1351
1396
  var utcSunday = utcWeekday(0);
1352
1397
  var utcMonday = utcWeekday(1);
1353
- var utcTuesday = utcWeekday(2);
1354
- var utcWednesday = utcWeekday(3);
1398
+ utcWeekday(2);
1399
+ utcWeekday(3);
1355
1400
  var utcThursday = utcWeekday(4);
1356
- var utcFriday = utcWeekday(5);
1357
- var utcSaturday = utcWeekday(6);
1401
+ utcWeekday(5);
1402
+ utcWeekday(6);
1358
1403
 
1359
1404
  var utcYear = newInterval(function(date) {
1360
1405
  date.setUTCMonth(0, 1);
@@ -1378,6 +1423,8 @@ utcYear.every = function(k) {
1378
1423
  });
1379
1424
  };
1380
1425
 
1426
+ var utcYear$1 = utcYear;
1427
+
1381
1428
  function localDate(d) {
1382
1429
  if (0 <= d.y && d.y < 100) {
1383
1430
  var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
@@ -1566,7 +1613,7 @@ function formatLocale(locale) {
1566
1613
  return function(string) {
1567
1614
  var d = newDate(1900, undefined, 1),
1568
1615
  i = parseSpecifier(d, specifier, string += "", 0),
1569
- week, day$1;
1616
+ week, day;
1570
1617
  if (i != string.length) return null;
1571
1618
 
1572
1619
  // If a UNIX timestamp is specified, return it.
@@ -1587,25 +1634,25 @@ function formatLocale(locale) {
1587
1634
  if (d.V < 1 || d.V > 53) return null;
1588
1635
  if (!("w" in d)) d.w = 1;
1589
1636
  if ("Z" in d) {
1590
- week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay();
1591
- week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week);
1592
- week = utcDay.offset(week, (d.V - 1) * 7);
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$1.offset(week, (d.V - 1) * 7);
1593
1640
  d.y = week.getUTCFullYear();
1594
1641
  d.m = week.getUTCMonth();
1595
1642
  d.d = week.getUTCDate() + (d.w + 6) % 7;
1596
1643
  } else {
1597
- week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay();
1598
- week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week);
1599
- week = day.offset(week, (d.V - 1) * 7);
1644
+ week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
1645
+ week = day > 4 || day === 0 ? monday.ceil(week) : monday(week);
1646
+ week = timeDay.offset(week, (d.V - 1) * 7);
1600
1647
  d.y = week.getFullYear();
1601
1648
  d.m = week.getMonth();
1602
1649
  d.d = week.getDate() + (d.w + 6) % 7;
1603
1650
  }
1604
1651
  } else if ("W" in d || "U" in d) {
1605
1652
  if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
1606
- day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
1653
+ day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
1607
1654
  d.m = 0;
1608
- d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7;
1655
+ d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
1609
1656
  }
1610
1657
 
1611
1658
  // If a time zone is specified, all fields are interpreted as UTC and then
@@ -1891,7 +1938,7 @@ function formatHour12(d, p) {
1891
1938
  }
1892
1939
 
1893
1940
  function formatDayOfYear(d, p) {
1894
- return pad(1 + day.count(year(d), d), p, 3);
1941
+ return pad(1 + timeDay.count(timeYear(d), d), p, 3);
1895
1942
  }
1896
1943
 
1897
1944
  function formatMilliseconds(d, p) {
@@ -1920,7 +1967,7 @@ function formatWeekdayNumberMonday(d) {
1920
1967
  }
1921
1968
 
1922
1969
  function formatWeekNumberSunday(d, p) {
1923
- return pad(sunday.count(year(d) - 1, d), p, 2);
1970
+ return pad(sunday.count(timeYear(d) - 1, d), p, 2);
1924
1971
  }
1925
1972
 
1926
1973
  function dISO(d) {
@@ -1930,7 +1977,7 @@ function dISO(d) {
1930
1977
 
1931
1978
  function formatWeekNumberISO(d, p) {
1932
1979
  d = dISO(d);
1933
- return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2);
1980
+ return pad(thursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
1934
1981
  }
1935
1982
 
1936
1983
  function formatWeekdayNumberSunday(d) {
@@ -1938,7 +1985,7 @@ function formatWeekdayNumberSunday(d) {
1938
1985
  }
1939
1986
 
1940
1987
  function formatWeekNumberMonday(d, p) {
1941
- return pad(monday.count(year(d) - 1, d), p, 2);
1988
+ return pad(monday.count(timeYear(d) - 1, d), p, 2);
1942
1989
  }
1943
1990
 
1944
1991
  function formatYear(d, p) {
@@ -1980,7 +2027,7 @@ function formatUTCHour12(d, p) {
1980
2027
  }
1981
2028
 
1982
2029
  function formatUTCDayOfYear(d, p) {
1983
- return pad(1 + utcDay.count(utcYear(d), d), p, 3);
2030
+ return pad(1 + utcDay$1.count(utcYear$1(d), d), p, 3);
1984
2031
  }
1985
2032
 
1986
2033
  function formatUTCMilliseconds(d, p) {
@@ -2009,7 +2056,7 @@ function formatUTCWeekdayNumberMonday(d) {
2009
2056
  }
2010
2057
 
2011
2058
  function formatUTCWeekNumberSunday(d, p) {
2012
- return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
2059
+ return pad(utcSunday.count(utcYear$1(d) - 1, d), p, 2);
2013
2060
  }
2014
2061
 
2015
2062
  function UTCdISO(d) {
@@ -2019,7 +2066,7 @@ function UTCdISO(d) {
2019
2066
 
2020
2067
  function formatUTCWeekNumberISO(d, p) {
2021
2068
  d = UTCdISO(d);
2022
- return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
2069
+ return pad(utcThursday.count(utcYear$1(d), d) + (utcYear$1(d).getUTCDay() === 4), p, 2);
2023
2070
  }
2024
2071
 
2025
2072
  function formatUTCWeekdayNumberSunday(d) {
@@ -2027,7 +2074,7 @@ function formatUTCWeekdayNumberSunday(d) {
2027
2074
  }
2028
2075
 
2029
2076
  function formatUTCWeekNumberMonday(d, p) {
2030
- return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
2077
+ return pad(utcMonday.count(utcYear$1(d) - 1, d), p, 2);
2031
2078
  }
2032
2079
 
2033
2080
  function formatUTCYear(d, p) {
@@ -2066,8 +2113,6 @@ function formatUnixTimestampSeconds(d) {
2066
2113
  }
2067
2114
 
2068
2115
  var locale;
2069
- var timeFormat;
2070
- var timeParse;
2071
2116
  var utcFormat;
2072
2117
  var utcParse;
2073
2118
 
@@ -2084,8 +2129,6 @@ defaultLocale({
2084
2129
 
2085
2130
  function defaultLocale(definition) {
2086
2131
  locale = formatLocale(definition);
2087
- timeFormat = locale.format;
2088
- timeParse = locale.parse;
2089
2132
  utcFormat = locale.utcFormat;
2090
2133
  utcParse = locale.utcParse;
2091
2134
  return locale;
@@ -2183,12 +2226,12 @@ var GraphCache = /** @class */ (function (_super) {
2183
2226
  }
2184
2227
  return GraphCache;
2185
2228
  }(util.Cache));
2186
- function walkXmlJson(node, callback, stack) {
2229
+ function walkXmlJson$1(node, callback, stack) {
2187
2230
  stack = stack || [];
2188
2231
  stack.push(node);
2189
2232
  callback(node.name, node.$, node.children(), stack);
2190
2233
  node.children().forEach(function (childNode) {
2191
- walkXmlJson(childNode, callback, stack);
2234
+ walkXmlJson$1(childNode, callback, stack);
2192
2235
  });
2193
2236
  stack.pop();
2194
2237
  }
@@ -2237,7 +2280,7 @@ function createXGMMLGraph(id, graphs) {
2237
2280
  return item._["id"];
2238
2281
  });
2239
2282
  var stack = [graph.root];
2240
- walkXmlJson(graphs, function (tag, attributes, childNodes, _stack) {
2283
+ walkXmlJson$1(graphs, function (tag, attributes, childNodes, _stack) {
2241
2284
  var top = stack[stack.length - 1];
2242
2285
  switch (tag) {
2243
2286
  case "graph":
@@ -2312,7 +2355,7 @@ function createGraph(scopes) {
2312
2355
  scopeStack.pop();
2313
2356
  }
2314
2357
  if (!scopeParent1) {
2315
- console.log("Missing SG:Parent (" + scope.Id + "): " + scope.parentScope());
2358
+ console.log("Missing SG:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2316
2359
  }
2317
2360
  else {
2318
2361
  var parent1 = scopeParent1;
@@ -2322,7 +2365,7 @@ function createGraph(scopes) {
2322
2365
  case "activity":
2323
2366
  var scopeParent2 = subgraphs[scope.parentScope()];
2324
2367
  if (!scopeParent2) {
2325
- console.log("Missing A:Parent (" + scope.Id + "): " + scope.parentScope());
2368
+ console.log("Missing A:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2326
2369
  }
2327
2370
  else {
2328
2371
  vertices[scope.ScopeName] = scopeParent2.createVertex(scope);
@@ -2334,7 +2377,7 @@ function createGraph(scopes) {
2334
2377
  case "function":
2335
2378
  var scopeParent3 = vertices[scope.parentScope()];
2336
2379
  if (!scopeParent3) {
2337
- console.log("Missing F:Parent (" + scope.Id + "): " + scope.parentScope());
2380
+ console.log("Missing F:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2338
2381
  }
2339
2382
  else {
2340
2383
  scopeParent3._.children().push(scope);
@@ -2346,7 +2389,7 @@ function createGraph(scopes) {
2346
2389
  var scope = edges[id];
2347
2390
  var scopeParent3 = subgraphs[scope.parentScope()];
2348
2391
  if (!scopeParent3) {
2349
- console.log("Missing E:Parent (" + scope.Id + "): " + scope.parentScope());
2392
+ console.log("Missing E:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2350
2393
  }
2351
2394
  else {
2352
2395
  var parent3 = scopeParent3;
@@ -2358,7 +2401,7 @@ function createGraph(scopes) {
2358
2401
  catch (e) {
2359
2402
  // const sourceIndex = scope.attr("SourceIndex").RawValue;
2360
2403
  // const targetIndex = scope.attr("TargetIndex").RawValue;
2361
- console.log("Invalid Edge: " + id);
2404
+ console.log("Invalid Edge: ".concat(id));
2362
2405
  }
2363
2406
  }
2364
2407
  }
@@ -2651,7 +2694,7 @@ var GlobalResultCache = /** @class */ (function (_super) {
2651
2694
  __extends(GlobalResultCache, _super);
2652
2695
  function GlobalResultCache() {
2653
2696
  return _super.call(this, function (obj) {
2654
- return obj.BaseUrl + "-" + obj.Wuid + "-" + obj.ResultName;
2697
+ return "".concat(obj.BaseUrl, "-").concat(obj.Wuid, "-").concat(obj.ResultName);
2655
2698
  }) || this;
2656
2699
  }
2657
2700
  return GlobalResultCache;
@@ -2794,6 +2837,7 @@ var Result = /** @class */ (function (_super) {
2794
2837
  retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: name_sequence_eclResult.Name }, function () {
2795
2838
  return new Result(optsConnection, wuid, name_sequence_eclResult, resultViews);
2796
2839
  });
2840
+ retVal.set(name_sequence_eclResult);
2797
2841
  }
2798
2842
  else if (typeof resultViews === "undefined") {
2799
2843
  if (typeof name_sequence_eclResult === "number") {
@@ -3121,21 +3165,21 @@ var BaseScope = /** @class */ (function (_super) {
3121
3165
  var label = "";
3122
3166
  var rows = [];
3123
3167
  label = this.Id;
3124
- rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">" + this.Id + "</td></tr>");
3168
+ rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">".concat(this.Id, "</td></tr>"));
3125
3169
  if (parentScope) {
3126
- rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">" + parentScope.Id + "</td></tr>");
3170
+ rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">".concat(parentScope.Id, "</td></tr>"));
3127
3171
  }
3128
- rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">" + this.ScopeName + "</td></tr>");
3172
+ rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">".concat(this.ScopeName, "</td></tr>"));
3129
3173
  var attrs = this.formattedAttrs();
3130
3174
  for (var key in attrs) {
3131
3175
  if (key === "Label") {
3132
3176
  label = attrs[key];
3133
3177
  }
3134
3178
  else {
3135
- rows.push("<tr><td class=\"key\">" + key + "</td><td class=\"value\">" + attrs[key] + "</td></tr>");
3179
+ rows.push("<tr><td class=\"key\">".concat(key, "</td><td class=\"value\">").concat(attrs[key], "</td></tr>"));
3136
3180
  }
3137
3181
  }
3138
- 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>";
3182
+ return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">".concat(label, "</h4>\n <table>\n ").concat(rows.join(""), "\n </table>\n </div>");
3139
3183
  };
3140
3184
  return BaseScope;
3141
3185
  }(util.StateObject));
@@ -3275,7 +3319,7 @@ var WorkunitCache = /** @class */ (function (_super) {
3275
3319
  __extends(WorkunitCache, _super);
3276
3320
  function WorkunitCache() {
3277
3321
  return _super.call(this, function (obj) {
3278
- return obj.BaseUrl + "-" + obj.Wuid;
3322
+ return "".concat(obj.BaseUrl, "-").concat(obj.Wuid);
3279
3323
  }) || this;
3280
3324
  }
3281
3325
  return WorkunitCache;
@@ -4482,12 +4526,12 @@ var Workunit = /** @class */ (function (_super) {
4482
4526
  var optsStr = "";
4483
4527
  for (var key in opts) {
4484
4528
  if (opts.hasOwnProperty(key)) {
4485
- optsStr += " " + key + "='" + opts[key] + "'";
4529
+ optsStr += " ".concat(key, "='").concat(opts[key], "'");
4486
4530
  }
4487
4531
  }
4488
4532
  return this.connection.WUCDebug({
4489
4533
  Wuid: this.Wuid,
4490
- Command: "<debug:" + command + " uid='" + this.Wuid + "'" + optsStr + "/>"
4534
+ Command: "<debug:".concat(command, " uid='").concat(this.Wuid, "'").concat(optsStr, "/>")
4491
4535
  }).then(function (response) {
4492
4536
  return response;
4493
4537
  });
@@ -4618,7 +4662,7 @@ function getECLDefinition(vertex) {
4618
4662
  column: +_col
4619
4663
  };
4620
4664
  }
4621
- throw new Error("Bad definition: " + vertex._[ATTR_DEFINITION]);
4665
+ throw new Error("Bad definition: ".concat(vertex._[ATTR_DEFINITION]));
4622
4666
  }
4623
4667
  function breakpointLocations(graph, path) {
4624
4668
  var retVal = [];
@@ -4786,6 +4830,13 @@ var Activity = /** @class */ (function (_super) {
4786
4830
  if (clusterName === void 0) { clusterName = ""; }
4787
4831
  return this.Running.ActiveWorkunit.filter(function (awu) { return clusterName === "" || awu.ClusterName === clusterName; }).map(function (awu) { return Workunit.attach(_this.connection.connectionOptions(), awu.Wuid, awu); });
4788
4832
  };
4833
+ Activity.prototype.setBanner = function (request) {
4834
+ var _this = this;
4835
+ return this.connection.SetBanner(__assign({}, request)).then(function (response) {
4836
+ _this.set(response);
4837
+ return _this;
4838
+ });
4839
+ };
4789
4840
  Activity.prototype.refresh = function () {
4790
4841
  return __awaiter(this, void 0, void 0, function () {
4791
4842
  return __generator(this, function (_a) {
@@ -4800,12 +4851,12 @@ var LogicalFileCache = /** @class */ (function (_super) {
4800
4851
  __extends(LogicalFileCache, _super);
4801
4852
  function LogicalFileCache() {
4802
4853
  return _super.call(this, function (obj) {
4803
- return obj.BaseUrl + "-" + obj.Cluster + "-" + obj.Name;
4854
+ return "".concat(obj.BaseUrl, "-").concat(obj.Cluster, "-").concat(obj.Name);
4804
4855
  }) || this;
4805
4856
  }
4806
4857
  return LogicalFileCache;
4807
4858
  }(util.Cache));
4808
- var _store = new LogicalFileCache();
4859
+ var _store$1 = new LogicalFileCache();
4809
4860
  var LogicalFile = /** @class */ (function (_super) {
4810
4861
  __extends(LogicalFile, _super);
4811
4862
  function LogicalFile(optsConnection, Cluster, Name) {
@@ -5088,14 +5139,14 @@ var LogicalFile = /** @class */ (function (_super) {
5088
5139
  configurable: true
5089
5140
  });
5090
5141
  LogicalFile.attach = function (optsConnection, Cluster, Name) {
5091
- var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster: Cluster, Name: Name }, function () {
5142
+ var retVal = _store$1.get({ BaseUrl: optsConnection.baseUrl, Cluster: Cluster, Name: Name }, function () {
5092
5143
  return new LogicalFile(optsConnection, Cluster, Name);
5093
5144
  });
5094
5145
  return retVal;
5095
5146
  };
5096
5147
  LogicalFile.prototype.filePartsOnCluster = function () {
5097
5148
  var _a;
5098
- return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || []));
5149
+ return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || []), true);
5099
5150
  };
5100
5151
  LogicalFile.prototype.fileParts = function () {
5101
5152
  var _a, _b;
@@ -5542,12 +5593,12 @@ var StoreCache = /** @class */ (function (_super) {
5542
5593
  __extends(StoreCache, _super);
5543
5594
  function StoreCache() {
5544
5595
  return _super.call(this, function (obj) {
5545
- return obj.BaseUrl + "-" + obj.Name + ":" + obj.UserSpecific + "-" + obj.Namespace;
5596
+ return "".concat(obj.BaseUrl, "-").concat(obj.Name, ":").concat(obj.UserSpecific, "-").concat(obj.Namespace);
5546
5597
  }) || this;
5547
5598
  }
5548
5599
  return StoreCache;
5549
5600
  }(util.Cache));
5550
- var _store$1 = new StoreCache();
5601
+ var _store = new StoreCache();
5551
5602
  var ValueChangedMessage = /** @class */ (function (_super) {
5552
5603
  __extends(ValueChangedMessage, _super);
5553
5604
  function ValueChangedMessage(key, value, oldValue) {
@@ -5596,7 +5647,7 @@ var Store = /** @class */ (function () {
5596
5647
  Store.attach = function (optsConnection, Name, Namespace, UserSpecific) {
5597
5648
  if (Name === void 0) { Name = "HPCCApps"; }
5598
5649
  if (UserSpecific === void 0) { UserSpecific = true; }
5599
- var retVal = _store$1.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
5650
+ var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
5600
5651
  return new Store(optsConnection, Name, Namespace, UserSpecific);
5601
5652
  });
5602
5653
  return retVal;
@@ -5620,7 +5671,7 @@ var Store = /** @class */ (function () {
5620
5671
  _this._dispatch.post(new ValueChangedMessage(key, value, oldValue));
5621
5672
  }
5622
5673
  }).catch(function (e) {
5623
- console.error("Store.set(\"" + key + "\", \"" + value + "\") failed:", e);
5674
+ console.error("Store.set(\"".concat(key, "\", \"").concat(value, "\") failed:"), e);
5624
5675
  });
5625
5676
  };
5626
5677
  Store.prototype.get = function (key, broadcast) {
@@ -5639,7 +5690,7 @@ var Store = /** @class */ (function () {
5639
5690
  }
5640
5691
  return response.Value;
5641
5692
  }).catch(function (e) {
5642
- console.error("Store.get(" + key + ") failed:", e);
5693
+ console.error("Store.get(".concat(key, ") failed:"), e);
5643
5694
  return undefined;
5644
5695
  });
5645
5696
  };
@@ -5689,7 +5740,7 @@ var Store = /** @class */ (function () {
5689
5740
  _this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));
5690
5741
  }
5691
5742
  }).catch(function (e) {
5692
- console.error("Store.delete(" + key + ") failed:", e);
5743
+ console.error("Store.delete(".concat(key, ") failed:"), e);
5693
5744
  });
5694
5745
  };
5695
5746
  Store.prototype.monitor = function (callback) {
@@ -5702,7 +5753,7 @@ var TargetClusterCache = /** @class */ (function (_super) {
5702
5753
  __extends(TargetClusterCache, _super);
5703
5754
  function TargetClusterCache() {
5704
5755
  return _super.call(this, function (obj) {
5705
- return obj.BaseUrl + "-" + obj.Name;
5756
+ return "".concat(obj.BaseUrl, "-").concat(obj.Name);
5706
5757
  }) || this;
5707
5758
  }
5708
5759
  return TargetClusterCache;
@@ -5801,7 +5852,7 @@ var TargetCluster = /** @class */ (function (_super) {
5801
5852
  var _this = this;
5802
5853
  if (request === void 0) { request = {}; }
5803
5854
  return this.machineConnection.GetTargetClusterInfo(__assign({ TargetClusters: {
5804
- Item: [this.Type + ":" + this.Name]
5855
+ Item: ["".concat(this.Type, ":").concat(this.Name)]
5805
5856
  } }, request)).then(function (response) {
5806
5857
  var retVal = [];
5807
5858
  for (var _i = 0, _a = response.TargetClusterInfoList.TargetClusterInfo; _i < _a.length; _i++) {
@@ -5967,14 +6018,15 @@ var Topology = /** @class */ (function (_super) {
5967
6018
  }
5968
6019
  }
5969
6020
  }
5970
- return rootProtocol + "//" + ip + ":" + port + "/";
6021
+ return "".concat(rootProtocol, "//").concat(ip, ":").concat(port, "/");
5971
6022
  });
5972
6023
  };
5973
6024
  Topology.prototype.fetchTargetClusters = function () {
5974
6025
  var _this = this;
5975
6026
  return this.connection.TpTargetClusterQuery({ Type: "ROOT" }).then(function (response) {
6027
+ var _a, _b;
5976
6028
  _this.set({
5977
- TargetClusters: response.TpTargetClusters.TpTargetCluster
6029
+ TargetClusters: (_b = (_a = response.TpTargetClusters) === null || _a === void 0 ? void 0 : _a.TpTargetCluster) !== null && _b !== void 0 ? _b : []
5978
6030
  });
5979
6031
  return _this.CTargetClusters;
5980
6032
  });
@@ -6032,7 +6084,7 @@ var Topology = /** @class */ (function (_super) {
6032
6084
  return Topology;
6033
6085
  }(util.StateObject));
6034
6086
 
6035
- var logger$2 = util.scopedLogger("clienttools/eclmeta");
6087
+ util.scopedLogger("clienttools/eclmeta");
6036
6088
  var Attr = /** @class */ (function () {
6037
6089
  function Attr(xmlAttr) {
6038
6090
  this.__attrs = xmlAttr.$;
@@ -6064,7 +6116,7 @@ var ECLScope = /** @class */ (function () {
6064
6116
  if (end === void 0) { end = Number.MAX_VALUE; }
6065
6117
  this.name = name;
6066
6118
  this.type = type;
6067
- this.sourcePath = path.normalize(sourcePath);
6119
+ this.sourcePath = path__namespace.normalize(sourcePath);
6068
6120
  this.line = +line - 1;
6069
6121
  this.start = +start;
6070
6122
  this.body = +body;
@@ -6189,7 +6241,7 @@ var Source = /** @class */ (function (_super) {
6189
6241
  fakeNode.appendAttribute("ref", nameParts.join("."));
6190
6242
  _this.imports = __spreadArray([
6191
6243
  new Import(fakeNode)
6192
- ], _this.parseImports(xmlSource.children("Import")));
6244
+ ], _this.parseImports(xmlSource.children("Import")), true);
6193
6245
  return _this;
6194
6246
  }
6195
6247
  Source.prototype.parseImports = function (imports) {
@@ -6217,10 +6269,10 @@ var Source = /** @class */ (function (_super) {
6217
6269
  };
6218
6270
  return Source;
6219
6271
  }(ECLScope));
6220
- var isHiddenDirectory = function (source) { return path.basename(source).indexOf(".") === 0; };
6221
- var isDirectory = function (source) { return fs.lstatSync(source).isDirectory() && !isHiddenDirectory(source); };
6222
- var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(path.extname(source).toLowerCase()) >= 0; };
6223
- var modAttrs = function (source) { return fs.readdirSync(source).map(function (name) { return path.join(source, name); }).filter(function (path) { return isDirectory(path) || isEcl(path); }); };
6272
+ var isHiddenDirectory = function (source) { return path__namespace.basename(source).indexOf(".") === 0; };
6273
+ var isDirectory = function (source) { return fs__namespace.lstatSync(source).isDirectory() && !isHiddenDirectory(source); };
6274
+ var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(path__namespace.extname(source).toLowerCase()) >= 0; };
6275
+ var modAttrs = function (source) { return fs__namespace.readdirSync(source).map(function (name) { return path__namespace.join(source, name); }).filter(function (path) { return isDirectory(path) || isEcl(path); }); };
6224
6276
  var File = /** @class */ (function (_super) {
6225
6277
  __extends(File, _super);
6226
6278
  function File(name, sourcePath) {
@@ -6239,7 +6291,7 @@ var Folder = /** @class */ (function (_super) {
6239
6291
  Folder.prototype.suggestions = function () {
6240
6292
  return modAttrs(this.sourcePath).map(function (folder) {
6241
6293
  return {
6242
- name: path.basename(folder, ".ecl"),
6294
+ name: path__namespace.basename(folder, ".ecl"),
6243
6295
  type: "folder"
6244
6296
  };
6245
6297
  });
@@ -6266,7 +6318,7 @@ var Workspace = /** @class */ (function () {
6266
6318
  }).then(function (paths) {
6267
6319
  for (var _i = 0, _a = ["ECLCC_ECLLIBRARY_PATH", "ECLCC_PLUGIN_PATH"]; _i < _a.length; _i++) {
6268
6320
  var knownFolder = _a[_i];
6269
- if (paths[knownFolder] && fs.existsSync(paths[knownFolder])) {
6321
+ if (paths[knownFolder] && fs__namespace.existsSync(paths[knownFolder])) {
6270
6322
  _this.walkChildFolders(paths[knownFolder], paths[knownFolder]);
6271
6323
  }
6272
6324
  }
@@ -6274,7 +6326,7 @@ var Workspace = /** @class */ (function () {
6274
6326
  });
6275
6327
  };
6276
6328
  Workspace.prototype.primeWorkspace = function () {
6277
- if (fs.existsSync(this._workspacePath)) {
6329
+ if (fs__namespace.existsSync(this._workspacePath)) {
6278
6330
  this.visitFolder(this._workspacePath, this._workspacePath);
6279
6331
  }
6280
6332
  };
@@ -6292,16 +6344,16 @@ var Workspace = /** @class */ (function () {
6292
6344
  };
6293
6345
  Workspace.prototype.visitFile = function (filePath, refPath, force) {
6294
6346
  if (force === void 0) { force = false; }
6295
- var filePathInfo = path.parse(filePath);
6296
- var pathNoExt = path.join(filePathInfo.dir, filePathInfo.name);
6297
- var name = path.relative(refPath, pathNoExt).split(path.sep).join(".");
6347
+ var filePathInfo = path__namespace.parse(filePath);
6348
+ var pathNoExt = path__namespace.join(filePathInfo.dir, filePathInfo.name);
6349
+ var name = path__namespace.relative(refPath, pathNoExt).split(path__namespace.sep).join(".");
6298
6350
  if (force || !this._test.has(name)) {
6299
6351
  this._test.set(name, new File("", filePath));
6300
6352
  }
6301
6353
  };
6302
6354
  Workspace.prototype.visitFolder = function (folderPath, refPath, force) {
6303
6355
  if (force === void 0) { force = false; }
6304
- var name = path.relative(refPath, folderPath).split(path.sep).join(".");
6356
+ var name = path__namespace.relative(refPath, folderPath).split(path__namespace.sep).join(".");
6305
6357
  if (force || !this._test.has(name)) {
6306
6358
  this._test.set(name, new Folder(name, folderPath));
6307
6359
  this.walkChildFolders(folderPath, refPath, force);
@@ -6312,7 +6364,7 @@ var Workspace = /** @class */ (function () {
6312
6364
  if (removeDupID && parentStack[parentStack.length - 1] === nameStack[0]) {
6313
6365
  nameStack.shift();
6314
6366
  }
6315
- var stack = __spreadArray(__spreadArray([], parentStack), nameStack);
6367
+ var stack = __spreadArray(__spreadArray([], parentStack, true), nameStack, true);
6316
6368
  var qid = stack.join(".");
6317
6369
  return {
6318
6370
  stack: stack,
@@ -6361,10 +6413,10 @@ var Workspace = /** @class */ (function () {
6361
6413
  if (depth > 1) {
6362
6414
  var sourcePath = source.sourcePath;
6363
6415
  while (depth > 1) {
6364
- sourcePath = path.dirname(sourcePath);
6416
+ sourcePath = path__namespace.dirname(sourcePath);
6365
6417
  --depth;
6366
6418
  }
6367
- this.visitFolder(sourcePath, path.dirname(sourcePath));
6419
+ this.visitFolder(sourcePath, path__namespace.dirname(sourcePath));
6368
6420
  }
6369
6421
  }
6370
6422
  this.walkSource(source);
@@ -6375,7 +6427,7 @@ var Workspace = /** @class */ (function () {
6375
6427
  var metaParser = new MetaParser();
6376
6428
  metaParser.parse(metaXML);
6377
6429
  this.parseSources(metaParser.sources);
6378
- return metaParser.sources.map(function (source) { return path.normalize(source.$.sourcePath); });
6430
+ return metaParser.sources.map(function (source) { return path__namespace.normalize(source.$.sourcePath); });
6379
6431
  };
6380
6432
  Workspace.prototype.resolveQualifiedID = function (filePath, qualifiedID, charOffset) {
6381
6433
  var retVal;
@@ -6403,7 +6455,7 @@ var Workspace = /** @class */ (function () {
6403
6455
  retVal = this._test.get(realQID).scope;
6404
6456
  }
6405
6457
  if (!retVal) {
6406
- realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")), qualifiedIDParts).join(".");
6458
+ realQID = __spreadArray(__spreadArray([], eclSource.name.split("."), true), qualifiedIDParts, true).join(".");
6407
6459
  if (this._test.has(realQID)) {
6408
6460
  retVal = this._test.get(realQID).scope;
6409
6461
  }
@@ -6422,7 +6474,7 @@ var Workspace = /** @class */ (function () {
6422
6474
  }());
6423
6475
  var workspaceCache = new util.Dictionary();
6424
6476
  function attachWorkspace(_workspacePath, eclccPath) {
6425
- var workspacePath = path.normalize(_workspacePath);
6477
+ var workspacePath = path__namespace.normalize(_workspacePath);
6426
6478
  if (!workspaceCache.has(workspacePath)) {
6427
6479
  var workspace = new Workspace(workspacePath, eclccPath);
6428
6480
  workspaceCache.set(workspacePath, workspace);
@@ -6460,8 +6512,8 @@ var MetaParser = /** @class */ (function (_super) {
6460
6512
  return MetaParser;
6461
6513
  }(util.SAXStackParser));
6462
6514
 
6463
- var logger$3 = util.scopedLogger("clienttools/eclcc");
6464
- var exeExt = os.type() === "Windows_NT" ? ".exe" : "";
6515
+ var logger = util.scopedLogger("clienttools/eclcc");
6516
+ var exeExt = os__namespace.type() === "Windows_NT" ? ".exe" : "";
6465
6517
  function tidyCRLF(inStr) {
6466
6518
  return inStr.split("\r\n").join("\n").split("\r").join("\n");
6467
6519
  }
@@ -6507,7 +6559,7 @@ var Version = /** @class */ (function () {
6507
6559
  return this.postfix.localeCompare(other.postfix);
6508
6560
  };
6509
6561
  Version.prototype.toString = function () {
6510
- return this.prefix + "_" + this.major + "." + this.minor + "." + this.patch + "-" + this.postfix;
6562
+ return "".concat(this.prefix, "_").concat(this.major, ".").concat(this.minor, ".").concat(this.patch, "-").concat(this.postfix);
6511
6563
  };
6512
6564
  return Version;
6513
6565
  }());
@@ -6556,7 +6608,7 @@ var EclccErrors = /** @class */ (function (_super) {
6556
6608
  function EclccErrors(stdErr, checked) {
6557
6609
  var _this = _super.call(this, checked) || this;
6558
6610
  if (stdErr && stdErr.length) {
6559
- for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
6611
+ for (var _i = 0, _a = stdErr.split(os__namespace.EOL); _i < _a.length; _i++) {
6560
6612
  var errLine = _a[_i];
6561
6613
  var match = /([a-zA-Z]:\\(?:[- \w\.\d]+\\)*(?:[- \w\.\d]+)?|(?:\/[\w\.\-]+)+)\((\d*),(\d*)\) ?: ?(error|warning|info) C(\d*) ?: ?(.*)/.exec(errLine);
6562
6614
  if (match) {
@@ -6577,7 +6629,7 @@ var EclccErrors = /** @class */ (function (_super) {
6577
6629
  if (match) {
6578
6630
  continue;
6579
6631
  }
6580
- logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
6632
+ logger.warning("parseECLErrors: Unable to parse \"".concat(errLine, "\""));
6581
6633
  _this.errOther.push(errLine);
6582
6634
  }
6583
6635
  }
@@ -6590,16 +6642,16 @@ var EnvchkErrors = /** @class */ (function (_super) {
6590
6642
  __extends(EnvchkErrors, _super);
6591
6643
  function EnvchkErrors(filePath, stdErr, checked) {
6592
6644
  var _this = _super.call(this, checked) || this;
6593
- var content = fs.readFileSync(filePath, "utf8");
6645
+ var content = fs__namespace.readFileSync(filePath, "utf8");
6594
6646
  content = content.replace(/\r\n/g, "\n");
6595
6647
  _this._lines = content.split("\n");
6596
6648
  if (stdErr && stdErr.length) {
6597
- for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
6649
+ for (var _i = 0, _a = stdErr.split(os__namespace.EOL); _i < _a.length; _i++) {
6598
6650
  var errLine = _a[_i];
6599
6651
  var match = /(Warning|Error) : Path\=(\S*?)(\[\S*\])? Message\=(.*)/.exec(errLine);
6600
6652
  if (match) {
6601
6653
  var severity = match[1], _path = match[2], _attr = match[3], _msg = match[4];
6602
- var msg = _path + " " + (_attr ? _attr : "") + ": " + _msg;
6654
+ var msg = "".concat(_path, " ").concat(_attr ? _attr : "", ": ").concat(_msg);
6603
6655
  var _b = _this.locate(_path), line = _b[0], col = _b[1];
6604
6656
  _this.errWarn.push({ filePath: filePath, line: line, col: col, msg: msg, severity: severity });
6605
6657
  continue;
@@ -6607,7 +6659,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
6607
6659
  if (match) {
6608
6660
  continue;
6609
6661
  }
6610
- logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
6662
+ logger.warning("parseECLErrors: Unable to parse \"".concat(errLine, "\""));
6611
6663
  _this.errOther.push(errLine);
6612
6664
  }
6613
6665
  }
@@ -6638,7 +6690,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
6638
6690
  };
6639
6691
  return EnvchkErrors;
6640
6692
  }(Errors));
6641
- function walkXmlJson$1(node, callback, stack) {
6693
+ function walkXmlJson(node, callback, stack) {
6642
6694
  stack = stack || [];
6643
6695
  stack.push(node);
6644
6696
  for (var key in node) {
@@ -6647,11 +6699,11 @@ function walkXmlJson$1(node, callback, stack) {
6647
6699
  callback(key, childNode, stack);
6648
6700
  if (childNode instanceof Array) {
6649
6701
  childNode.forEach(function (child) {
6650
- walkXmlJson$1(child, callback, stack);
6702
+ walkXmlJson(child, callback, stack);
6651
6703
  });
6652
6704
  }
6653
6705
  else if (typeof childNode === "object") {
6654
- walkXmlJson$1(childNode, callback, stack);
6706
+ walkXmlJson(childNode, callback, stack);
6655
6707
  }
6656
6708
  }
6657
6709
  }
@@ -6665,7 +6717,7 @@ var LocalWorkunit = /** @class */ (function () {
6665
6717
  var retVal = [];
6666
6718
  if (util.exists("W_LOCAL.Graphs", this.jsonWU)) {
6667
6719
  var id_1 = "";
6668
- walkXmlJson$1(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
6720
+ walkXmlJson(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
6669
6721
  if (key === "$" && item.id) {
6670
6722
  id_1 = item.id;
6671
6723
  }
@@ -6694,10 +6746,10 @@ var ClientTools = /** @class */ (function () {
6694
6746
  if (args === void 0) { args = []; }
6695
6747
  this._paths = {};
6696
6748
  this.eclccPath = eclccPath;
6697
- this.binPath = path.dirname(this.eclccPath);
6698
- this.envchkPath = path.join(this.binPath, "envchk" + exeExt);
6699
- this.eclBundlePath = path.join(this.binPath, "ecl-bundle" + exeExt);
6700
- this.cwd = path.normalize(cwd || this.binPath);
6749
+ this.binPath = path__namespace.dirname(this.eclccPath);
6750
+ this.envchkPath = path__namespace.join(this.binPath, "envchk" + exeExt);
6751
+ this.eclBundlePath = path__namespace.join(this.binPath, "ecl-bundle" + exeExt);
6752
+ this.cwd = path__namespace.normalize(cwd || this.binPath);
6701
6753
  this.includeFolders = includeFolders;
6702
6754
  this._legacyMode = legacyMode;
6703
6755
  this._args = args;
@@ -6710,7 +6762,7 @@ var ClientTools = /** @class */ (function () {
6710
6762
  };
6711
6763
  ClientTools.prototype.exists = function (filePath) {
6712
6764
  try {
6713
- fs.accessSync(filePath);
6765
+ fs__namespace.accessSync(filePath);
6714
6766
  return true;
6715
6767
  }
6716
6768
  catch (e) { }
@@ -6718,12 +6770,12 @@ var ClientTools = /** @class */ (function () {
6718
6770
  };
6719
6771
  ClientTools.prototype.args = function (additionalItems) {
6720
6772
  if (additionalItems === void 0) { additionalItems = []; }
6721
- var retVal = __spreadArray([], this._args);
6773
+ var retVal = __spreadArray([], this._args, true);
6722
6774
  if (this._legacyMode) {
6723
6775
  retVal.push("-legacy");
6724
6776
  }
6725
6777
  return retVal.concat(this.includeFolders.map(function (includePath) {
6726
- return "-I" + path.normalize(includePath);
6778
+ return "-I" + path__namespace.normalize(includePath);
6727
6779
  })).concat(additionalItems);
6728
6780
  };
6729
6781
  ClientTools.prototype.version = function () {
@@ -6731,7 +6783,7 @@ var ClientTools = /** @class */ (function () {
6731
6783
  if (this._version) {
6732
6784
  return Promise.resolve(this._version);
6733
6785
  }
6734
- return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
6786
+ return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (response) {
6735
6787
  _this._version = new Version(response.stdout);
6736
6788
  return _this._version;
6737
6789
  });
@@ -6741,7 +6793,7 @@ var ClientTools = /** @class */ (function () {
6741
6793
  };
6742
6794
  ClientTools.prototype.paths = function () {
6743
6795
  var _this = this;
6744
- return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
6796
+ return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (response) {
6745
6797
  if (response && response.stdout && response.stdout.length) {
6746
6798
  var paths = response.stdout.split(/\r?\n/);
6747
6799
  for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {
@@ -6757,20 +6809,20 @@ var ClientTools = /** @class */ (function () {
6757
6809
  };
6758
6810
  ClientTools.prototype.loadXMLDoc = function (filePath, removeOnRead) {
6759
6811
  return new Promise(function (resolve, _reject) {
6760
- var fileData = fs.readFileSync(filePath, "ascii");
6812
+ var fileData = fs__namespace.readFileSync(filePath, "ascii");
6761
6813
  var retVal = util.xml2json(fileData);
6762
6814
  if (removeOnRead) {
6763
- fs.unlink(filePath, function (err) { });
6815
+ fs__namespace.unlink(filePath, function (err) { });
6764
6816
  }
6765
6817
  resolve(retVal);
6766
6818
  });
6767
6819
  };
6768
6820
  ClientTools.prototype.createWU = function (filename) {
6769
6821
  var _this = this;
6770
- var tmpName = tmp.tmpNameSync({ prefix: "eclcc-wu-tmp", postfix: "" });
6822
+ var tmpName = tmp__namespace.tmpNameSync({ prefix: "eclcc-wu-tmp", postfix: "" });
6771
6823
  var args = ["-o" + tmpName, "-wu"].concat([filename]);
6772
- return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (_response) {
6773
- var xmlPath = path.normalize(tmpName + ".xml");
6824
+ return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (_response) {
6825
+ var xmlPath = path__namespace.normalize(tmpName + ".xml");
6774
6826
  var contentPromise = _this.exists(xmlPath) ? _this.loadXMLDoc(xmlPath, true) : Promise.resolve({});
6775
6827
  return contentPromise.then(function (content) {
6776
6828
  return new LocalWorkunit(content);
@@ -6779,7 +6831,7 @@ var ClientTools = /** @class */ (function () {
6779
6831
  };
6780
6832
  ClientTools.prototype.createArchive = function (filename) {
6781
6833
  var args = ["-E"].concat([filename]);
6782
- return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
6834
+ return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (response) {
6783
6835
  return {
6784
6836
  content: response.stdout,
6785
6837
  err: new EclccErrors(response.stderr, [])
@@ -6792,7 +6844,7 @@ var ClientTools = /** @class */ (function () {
6792
6844
  ClientTools.prototype.fetchMeta = function (filePath) {
6793
6845
  return Promise.all([
6794
6846
  attachWorkspace(this.cwd),
6795
- this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find " + this.eclccPath)
6847
+ this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find ".concat(this.eclccPath))
6796
6848
  ]).then(function (_a) {
6797
6849
  var metaWorkspace = _a[0], execFileResponse = _a[1];
6798
6850
  if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {
@@ -6805,7 +6857,7 @@ var ClientTools = /** @class */ (function () {
6805
6857
  if (args === void 0) { args = ["-syntax"]; }
6806
6858
  return Promise.all([
6807
6859
  attachWorkspace(this.cwd),
6808
- this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), ["-M", filePath])), "eclcc", "Cannot find " + this.eclccPath)
6860
+ this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args, true), ["-M", filePath], false)), "eclcc", "Cannot find ".concat(this.eclccPath))
6809
6861
  ]).then(function (_a) {
6810
6862
  var metaWorkspace = _a[0], execFileResponse = _a[1];
6811
6863
  var checked = [];
@@ -6819,9 +6871,9 @@ var ClientTools = /** @class */ (function () {
6819
6871
  if (args === void 0) { args = []; }
6820
6872
  return Promise.all([
6821
6873
  attachWorkspace(this.cwd),
6822
- this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), [filePath])), "envchk", "Cannot find " + this.envchkPath)
6874
+ this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args, true), [filePath], false)), "envchk", "Cannot find ".concat(this.envchkPath))
6823
6875
  ]).then(function (_a) {
6824
- var metaWorkspace = _a[0], execFileResponse = _a[1];
6876
+ _a[0]; var execFileResponse = _a[1];
6825
6877
  return new EnvchkErrors(filePath, execFileResponse ? execFileResponse.stderr : "", []);
6826
6878
  });
6827
6879
  };
@@ -6844,13 +6896,13 @@ var ClientTools = /** @class */ (function () {
6844
6896
  }
6845
6897
  return retVal;
6846
6898
  }),
6847
- this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
6899
+ this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find ".concat(this.eclBundlePath))
6848
6900
  .then(function (installedText) {
6849
6901
  return tidyCRLF(installedText.stdout).split("\n");
6850
6902
  }).then(function (installedItems) {
6851
6903
  var allProps = {};
6852
6904
  return Promise.all(installedItems.filter(function (ii) { return !!ii; }).map(function (ii) {
6853
- return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find " + _this.eclBundlePath)
6905
+ return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find ".concat(_this.eclBundlePath))
6854
6906
  .then(function (infoText) {
6855
6907
  return tidyCRLF(infoText.stdout).split("\n");
6856
6908
  }).then(function (info) {
@@ -6890,25 +6942,25 @@ var ClientTools = /** @class */ (function () {
6890
6942
  ClientTools.prototype.bundleInstall = function (bundleUrl) {
6891
6943
  return Promise.all([
6892
6944
  attachWorkspace(this.cwd),
6893
- this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
6945
+ this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find ".concat(this.eclBundlePath))
6894
6946
  ]).then(function (_a) {
6895
- var metaWorkspace = _a[0], execFileResponse = _a[1];
6947
+ _a[0]; var execFileResponse = _a[1];
6896
6948
  return execFileResponse;
6897
6949
  });
6898
6950
  };
6899
6951
  ClientTools.prototype.bundleUninstall = function (name) {
6900
6952
  return Promise.all([
6901
6953
  attachWorkspace(this.cwd),
6902
- this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
6954
+ this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find ".concat(this.eclBundlePath))
6903
6955
  ]).then(function (_a) {
6904
- var metaWorkspace = _a[0], execFileResponse = _a[1];
6956
+ _a[0]; var execFileResponse = _a[1];
6905
6957
  return execFileResponse;
6906
6958
  });
6907
6959
  };
6908
6960
  ClientTools.prototype.execFile = function (cmd, cwd, args, _toolName, _notFoundError) {
6909
6961
  return new Promise(function (resolve, _reject) {
6910
- logger$3.debug(cmd + " " + args.join(" "));
6911
- var child = cp.spawn(cmd, args, { cwd: cwd });
6962
+ logger.debug("".concat(cmd, " ").concat(args.join(" ")));
6963
+ var child = cp__namespace.spawn(cmd, args, { cwd: cwd });
6912
6964
  var stdOut = "";
6913
6965
  var stdErr = "";
6914
6966
  child.stdout.on("data", function (data) {
@@ -6930,18 +6982,18 @@ var ClientTools = /** @class */ (function () {
6930
6982
  }());
6931
6983
  function locateClientToolsInFolder(rootFolder, clientTools) {
6932
6984
  if (rootFolder) {
6933
- var hpccSystemsFolder_1 = path.join(rootFolder, "HPCCSystems");
6934
- if (fs.existsSync(hpccSystemsFolder_1) && fs.statSync(hpccSystemsFolder_1).isDirectory()) {
6935
- if (os.type() !== "Windows_NT") {
6936
- var eclccPath = path.join(hpccSystemsFolder_1, "bin", "eclcc");
6937
- if (fs.existsSync(eclccPath)) {
6985
+ var hpccSystemsFolder_1 = path__namespace.join(rootFolder, "HPCCSystems");
6986
+ if (fs__namespace.existsSync(hpccSystemsFolder_1) && fs__namespace.statSync(hpccSystemsFolder_1).isDirectory()) {
6987
+ if (os__namespace.type() !== "Windows_NT") {
6988
+ var eclccPath = path__namespace.join(hpccSystemsFolder_1, "bin", "eclcc");
6989
+ if (fs__namespace.existsSync(eclccPath)) {
6938
6990
  clientTools.push(new ClientTools(eclccPath));
6939
6991
  }
6940
6992
  }
6941
- fs.readdirSync(hpccSystemsFolder_1).forEach(function (versionFolder) {
6942
- var eclccPath = path.join(hpccSystemsFolder_1, versionFolder, "clienttools", "bin", "eclcc" + exeExt);
6943
- if (fs.existsSync(eclccPath)) {
6944
- var name_1 = path.basename(versionFolder);
6993
+ fs__namespace.readdirSync(hpccSystemsFolder_1).forEach(function (versionFolder) {
6994
+ var eclccPath = path__namespace.join(hpccSystemsFolder_1, versionFolder, "clienttools", "bin", "eclcc" + exeExt);
6995
+ if (fs__namespace.existsSync(eclccPath)) {
6996
+ var name_1 = path__namespace.basename(versionFolder);
6945
6997
  var version = new Version(name_1);
6946
6998
  if (version.exists()) {
6947
6999
  clientTools.push(new ClientTools(eclccPath));
@@ -6956,7 +7008,7 @@ function locateAllClientTools() {
6956
7008
  if (allClientToolsCache)
6957
7009
  return allClientToolsCache;
6958
7010
  var clientTools = [];
6959
- switch (os.type()) {
7011
+ switch (os__namespace.type()) {
6960
7012
  case "Windows_NT":
6961
7013
  var rootFolder86 = process.env["ProgramFiles(x86)"] || "";
6962
7014
  if (rootFolder86) {
@@ -6985,9 +7037,9 @@ function locateAllClientTools() {
6985
7037
  }
6986
7038
  var eclccPathMsg = "";
6987
7039
  function logEclccPath(eclccPath) {
6988
- var msg = "Using eclccPath setting: " + eclccPath;
7040
+ var msg = "Using eclccPath setting: ".concat(eclccPath);
6989
7041
  if (eclccPathMsg !== msg) {
6990
- logger$3.info(msg);
7042
+ logger.info(msg);
6991
7043
  eclccPathMsg = msg;
6992
7044
  }
6993
7045
  }
@@ -6998,7 +7050,7 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
6998
7050
  if (includeFolders === void 0) { includeFolders = []; }
6999
7051
  if (legacyMode === void 0) { legacyMode = false; }
7000
7052
  if (args === void 0) { args = []; }
7001
- if (overridePath && fs.existsSync(overridePath)) {
7053
+ if (overridePath && fs__namespace.existsSync(overridePath)) {
7002
7054
  logEclccPath(overridePath);
7003
7055
  return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode, args));
7004
7056
  }
@@ -7030,33 +7082,33 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
7030
7082
  // DOM Parser polyfill ---
7031
7083
  util.root.DOMParser = xmldom.DOMParser;
7032
7084
  if (typeof util.root.fetch === "undefined") {
7033
- util.root.fetch = fetch$1;
7085
+ util.root.fetch = fetch__default["default"];
7034
7086
  }
7035
7087
  if (typeof util.root.AbortController === "undefined") {
7036
- util.root.AbortController = AbortController;
7088
+ util.root.AbortController = AbortController__default["default"];
7037
7089
  }
7038
- util.root.fetch.__rejectUnauthorizedAgent = new https.Agent({
7090
+ util.root.fetch.__rejectUnauthorizedAgent = new https__namespace.Agent({
7039
7091
  rejectUnauthorized: false
7040
7092
  });
7041
7093
  var globalCA = "";
7042
- if (https.globalAgent.options.ca !== undefined) {
7043
- if (Array.isArray(https.globalAgent.options.ca) && https.globalAgent.options.ca.length) {
7044
- if (typeof https.globalAgent.options.ca[0] === "string") {
7045
- globalCA = https.globalAgent.options.ca.join("\n");
7094
+ if (https__namespace.globalAgent.options.ca !== undefined) {
7095
+ if (Array.isArray(https__namespace.globalAgent.options.ca) && https__namespace.globalAgent.options.ca.length) {
7096
+ if (typeof https__namespace.globalAgent.options.ca[0] === "string") {
7097
+ globalCA = https__namespace.globalAgent.options.ca.join("\n");
7046
7098
  }
7047
- else if (https.globalAgent.options.ca[0] instanceof safeBuffer.Buffer) {
7048
- globalCA = https.globalAgent.options.ca.map(function (row) { return row.toString(); }).join("\n");
7099
+ else if (https__namespace.globalAgent.options.ca[0] instanceof safeBuffer.Buffer) {
7100
+ globalCA = https__namespace.globalAgent.options.ca.map(function (row) { return row.toString(); }).join("\n");
7049
7101
  }
7050
7102
  }
7051
- else if (typeof https.globalAgent.options.ca === "string") {
7052
- globalCA = https.globalAgent.options.ca;
7103
+ else if (typeof https__namespace.globalAgent.options.ca === "string") {
7104
+ globalCA = https__namespace.globalAgent.options.ca;
7053
7105
  }
7054
- else if (https.globalAgent.options.ca instanceof safeBuffer.Buffer) {
7055
- globalCA = https.globalAgent.options.ca.toString();
7106
+ else if (https__namespace.globalAgent.options.ca instanceof safeBuffer.Buffer) {
7107
+ globalCA = https__namespace.globalAgent.options.ca.toString();
7056
7108
  }
7057
7109
  globalCA += "\n";
7058
7110
  }
7059
- util.root.fetch.__trustwaveAgent = new https.Agent({
7111
+ util.root.fetch.__trustwaveAgent = new https__namespace.Agent({
7060
7112
  ca: globalCA + trustwave
7061
7113
  });
7062
7114
  if (typeof util.root.btoa === "undefined") {
@@ -7160,5 +7212,5 @@ exports.send = send;
7160
7212
  exports.serializeRequest = serializeRequest;
7161
7213
  exports.setTransportFactory = setTransportFactory;
7162
7214
  exports.targetClusters = targetClusters;
7163
- exports.walkXmlJson = walkXmlJson$1;
7215
+ exports.walkXmlJson = walkXmlJson;
7164
7216
  //# sourceMappingURL=index.node.js.map