Sending web server logs to Qrator Labs servers allows you to analyze and clean up HTTP traffic going to these web servers at the application layer (L7 under the OSI/ISO model) in situations where it is not technically possible to analyze HTTP traffic itself.
For instance, it is recommended to configure log sending if you're using reverse TCP proxy Qrator Labs. This proxy analyzes traffic at the transport layer (L4), but, with the help of log analysis, can also protect against some application layer (L7) attacks.
To transmit logs to the Qrator Labs network:
- Choose the IP addresses and ports for log sending
- Configure the log format.
- Configure log collection and sending.
Warning
For analysis, you need the logs of the web server on your network that receives external requests first, regardless of where it routes or proxies them later. In this case, only access logs are needed. It is not necessary to send error logs.
1. Choose the IP addresses and ports for log sending
This step should be done by you and Qrator Labs technical support team. On your side, you need to set which IP address the logs will be sent from. On the Qrator Labs side, the IP address and port of the log listener will be assigned. The assigned IP address may be different from Qrator IP specified in your dashboard.
2. Configure the log format
Configure the server such that access logs are written in a certain format from which the Qrator Labs reverse TCP proxy can extract all the information needed for analysis. Log format requirements may change in the future, in which case Qrator Labs tech support specialists will inform you about the changes beforehand.
Below are the current log formats for popular web servers.
Specify the following line in the log_format option.
'2xFFFFFF|:,_|$bytes_sent|:,_|$http_accept|:,_|$http_accept_encoding|:,_|$http_accept_language|:,_|$http_cookie|:,_|$http_host|:,_|$http_referer|:,_|$http_user_agent|:,_|$http_x_forwarded_for|:,_|$remote_addr|:,_|$request|:,_|$request_time|:,_|$status|:,_|$time_local|:,_|$upstream_response_time|:,_|$http_x_requested_with|:,_|$http_authorization|:,_|$remote_port|:,_|-|:,_|$msec|:,_|'
Specify the following line in CustomLog.
'5xFFFFFF|:,_|%O|:,_|%{Accept}i|:,_|%{Accept-Encoding}i|:,_|%{Accept-Language}i|:,_|%{Cookie}i|:,_|%{Host}i|:,_|%{Referer}i|:,_|%{User-Agent}i|:,_|%{X-Forwarded-For}i|:,_|%a|:,_|%r|:,_|%{ms}T|:,_|%s|:,_|%t|:,_|%D|:,_|%{X-Requested-With}i|:,_|%{Authorization}i|:,_|%{remote}p|:,_|%{sec}t.%{msec_frac}t|:,_|-|:,_|'
Specify the following line when configuring request logging according to the Configuring Request Logging guide.
'3xFFFFFF|:,_|$RESPONSE_SIZE|:,_|$Accept|:,_|${Accept-Encoding}|:,_|${Accept-Language}|:,_|$Cookie|:,_|$Host|:,_|$Referer|:,_|${User-Agent}|:,_|${X-Forwarded-For}|:,_|$CLIENT_IP|:,_|$CLIENT_PORT|:,_|$HTTP_REQUEST|:,_|$RESPONSE_MSECS|:,_|$HTTP_STATCODE|:,_|$DATE_YYYY/$DATE_MM/${DATE_DD}_$TIME_HH24:$TIME_MM:$TIME_SS|:,_|$HTTP_KEEPALIVE|:,_|$SERVER_IP|:,_|$SERVER_PORT|:,_|$BIGIP_CACHED|:,_|${X-Requested-With}|:,_|${Authorization}|:,_|$CLIENT_PORT|:,_|$TIME_MSECS|:,_|-|:,_|'
Insert the following snippet into configuration file HAProxy.
capture request header Accept len 4096
capture request header Accept-Encoding len 4096
capture request header Accept-Language len 4096
capture request header Cookie len 16384
capture request header Host len 4096
capture request header Referer len 4096
capture request header User-Agent len 4096
capture request header X-Forwarded-For len 4096
capture request header X-Requested-With len 4096
capture request header Authorization len 4096
log-format "4xFFFFFF|:,_|%B|:,_|%[capture.req.hdr(0)]|:,_|%[capture.req.hdr(1)]|:,_|%[capture.req.hdr(2)]|:,_|%[capture.req.hdr(3)]|:,_|%[capture.req.hdr(4)]|:,_|%[capture.req.hdr(5)]|:,_|%[capture.req.hdr(6)]|:,_|%[capture.req.hdr(7)]|:,_|%ci|:,_|%r|:,_|%Ta|:,_|%ST|:,_|%Tl|:,_|%Tr|:,_|%[capture.req.hdr(8)]|:,_|%[capture.req.hdr(9)]|:,_|%cp|:,_|%Ts.%ms|:,_|-|:,_|"
3. Configure log collection and sending
Depending on the web server you use, you may have different ways of sending logs to Qrator Labs. The easiest way is to send logs directly from the web server if it supports such. A more universal solution is to use a log management system for any web server.
Note that the log listener on the Qrator Labs side accepts logs via syslog over the TCP transport protocol. Some web servers only support syslog over UDP or over Unix sockets. In that case, it is recommended to collect them using a logging system that would redirect the logs to Qrator Labs.

Send logs directly
If the web server handling user requests is capable of sending logs to Qrator Labs via the syslog protocol itself, then you only need to configure that web server accordingly. For example, instructions on how to send logs directly from F5 BIG-IP can be found here: Configuring BIG-IP to log to a remote syslog server.
To use the secure TLS to send logs, even if the web server itself does not support this protocol, you can use the optional Stunnel as described here: SSL Encrypting Syslog with Stunnel.
Using log management systems
A logging system is software that can act as an intermediate host between your web server and Qrator Labs log receiver. Examples of such systems for Unix-like operating systems are rsyslog and syslog-ng; for Windows – Snare. When selecting a logging system, note that Qrator Labs accepts syslog over TCP transport protocol, not UDP.
Note
Popular logging systems also support encryption of sent logs using TLS, for example:
Interaction between the web server and the logging system can be configured in a variety of ways, including reading logs from a text file, over a Unix socket, or over TCP or UDP. The method you choose depends on whether the web server and the logging system are on the same server or on different servers.
You also usually need to configure the web server itself in order to send logs to the right file, socket, or address. Read more in the documentation for the particular web server you are using, e.g:
Warning
When using logging system rsyslog, you must additionally configure the action queues and their discard rules. You can read more here: Action Queue cfg discarding local messages.
rsyslog configuration examples
Below are examples of rsyslog configuration files for HAProxy and NGINX. The required configuration file should be placed in the /etc/rsyslog.d/ directory and then rsyslog should be restarted. To use TLS, it is also required to substitute the path to Qrator Labs certificate in the configuration file.
$AddUnixListenSocket /var/lib/haproxy/dev/log
if ($programname startswith 'haproxy') then {
if ($msg contains '4xFFFFFF') then {
$template codename-fwd,"<%PRI%>1 %timegenerated:::date-rfc3339% codename %syslogtag:1:32% - - %msg:::drop-last-lf%\n"
action(type="omfwd"
Target="<receiver IP address>"
Port="<receiver port>"
protocol="tcp"
queue.filename="codename-fwd-q1"
queue.discardSeverity="4"
queue.discardMark="25000"
queue.size="30000"
queue.highWatermark="10000"
queue.lowWatermark="0"
queue.timeoutEnqueue="500"
queue.maxDiskSpace="20m"
queue.timeoutWorkerthreadShutdown="-1"
queue.saveOnShutdown="on"
queue.type="LinkedList"
Action.ResumeRetryCount="-1"
template="codename-fwd"
)
}
}
$AddUnixListenSocket /var/lib/haproxy/dev/log
global(
DefaultNetstreamDriverCAFile="<path to the receiver certificate file>"
)
if ($programname startswith 'haproxy') then {
if ($msg contains '4xFFFFFF') then {
$template codename-fwd,"<%PRI%>1 %timegenerated:::date-rfc3339% codename %syslogtag:1:32% - - %msg:::drop-last-lf%\n"
action(type="omfwd"
Target="<receiver IP address>"
Port="<receiver port>"
protocol="tcp"
queue.filename="codename-fwd-q1"
queue.discardSeverity="4"
queue.discardMark="25000"
queue.size="30000"
queue.highWatermark="10000"
queue.lowWatermark="0"
queue.timeoutEnqueue="500"
queue.maxDiskSpace="20m"
queue.timeoutWorkerthreadShutdown="-1"
queue.saveOnShutdown="on"
queue.type="LinkedList"
Action.ResumeRetryCount="-1"
template="codename-fwd"
)
}
}
input(type="imuxsock"
Socket="/var/log/nginx/nginx.sock")
template(name="codename-fwd" type="string"
string="<%PRI%>1 %timegenerated:::date-rfc3339% codename %syslogtag:1:32% - - %msg:::drop-last-lf%\n"
)
if ($programname startswith 'nginx') then {
if ($msg contains '2xFFFFFF') then {
action(type="omfwd"
Target="<receiver IP address>"
Port="<receiver port>"
protocol="tcp"
StreamDriver="gtls"
StreamDriverMode="1"
StreamDriverAuthMode="anon"
queue.filename="codename-fwd-q1"
queue.discardSeverity="4"
queue.discardMark="30000"
queue.size="30000"
queue.highWatermark="10000"
queue.lowWatermark="0"
queue.timeoutEnqueue="500"
queue.maxDiskSpace="20m"
queue.timeoutWorkerthreadShutdown="-1"
queue.saveOnShutdown="on"
queue.type="LinkedList"
Action.ResumeRetryCount="-1"
template="codename-fwd"
)
& stop
}
}
input(type="imuxsock"
Socket="/var/log/nginx/nginx.sock")
template(name="codename-fwd" type="string"
string="<%PRI%>1 %timegenerated:::date-rfc3339% codename %syslogtag:1:32% - - %msg:::drop-last-lf%\n"
)
global(
DefaultNetstreamDriverCAFile="<path to the receiver certificate file>"
)
if ($programname startswith 'nginx') then {
if ($msg contains '2xFFFFFF') then {
action(type="omfwd"
Target="<receiver IP address>"
Port="<receiver port>"
protocol="tcp"
StreamDriver="gtls"
StreamDriverMode="1"
StreamDriverAuthMode="anon"
queue.filename="codename-fwd-q1"
queue.discardSeverity="4"
queue.discardMark="30000"
queue.size="30000"
queue.highWatermark="10000"
queue.lowWatermark="0"
queue.timeoutEnqueue="500"
queue.maxDiskSpace="20m"
queue.timeoutWorkerthreadShutdown="-1"
queue.saveOnShutdown="on"
queue.type="LinkedList"
Action.ResumeRetryCount="-1"
template="codename-fwd"
)
& stop
}
}
Qrator Labs certificates
To send data over the TLS transport protocol, you must use a Qrator Labs log receiver certificate.
Different receivers on the Qrator Labs side use different certificates. Contact Qrator Labs tech support to find out which receiver you need to send the logs to. You can also check the authenticity of the CA (certificate authority) that signed these certificates.
Save the required certificate to a file, e.g. /etc/rsyslog.d/codename-syslog-ca.crt, and specify this in the logging system configuration path. Configuration files for rsyslog can be found at rsyslog configuration examples.
-----BEGIN CERTIFICATE-----
MIIFoDCCA4igAwIBAgIUSm2ENhIrqiVbcdGikZvsaic1ChcwDQYJKoZIhvcNAQEL
BQAwUTEZMBcGA1UEAwwQUXJhdG9yIFN5c2xvZyBDQTEUMBIGA1UECgwLUXJhdG9y
IExhYnMxHjAcBgkqhkiG9w0BCQEWD21haWxAcXJhdG9yLm5ldDAeFw0yNjA3MDgy
MDQzNDJaFw0zMTA3MDcyMDQzNDJaME8xFDASBgNVBAoMC1FyYXRvciBMYWJzMRcw
FQYDVQQDDA4xNzguMjQ4LjIzOS4yOTEeMBwGCSqGSIb3DQEJARYPbWFpbEBxcmF0
b3IubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAusYLrODkJPkf
OhZzaLupR+yO1L5SxDka8tW89Mf8mYkpmLPVd42B/8Zw4aqR+YYmsvob8sJYlhv6
zPl1dRocPZ3qXkbvVRj+IrWWzKRvVIiN7RS/Ducw+PcDxWA+3Gq7YFO2z8nxctn2
YqfIUCsitjQAFxx/UNpCvk3w1gQUSsDh2rPvZZNy1DlmpKyOArkA8r3qaLqY55vk
qq37cHDsf+ycZxQ4cj8Yxj+yltX7XIx7nOcE/s2esb/fzeqB0fVxugZe3Cqumkq+
oI3m0NJsT/F35hu4eFlqK/yRvmwsFqgFBozZ2FuyxStWocYdKyYYIe3OX1NQSS2y
1f1FRPwae6MAydnotHmBRCWdrFK38y7AdmztcFN68qF9iKG5WhOk3sAg39Korlt/
86Ki3Eeggml4IkKPxi7bOW+fCVIJCN7y2eMMUlZVDabJk1Bq0nwZ1f+UEmYXBJ7L
Ys5rr71hpTcjYe2QFjZH6FtIRbMwlW5tLY31OR1iy9ybDZmirbQVfEXSdokDBZjm
W5UhrnWipO0XFek74WffnbGaOmbDUL4iFvfzR1qOO/YTB5LK3RzXZesl0kSk3InK
eXhcSTjeGLisxiSsGRlZqcJhA4tHywr0poIZvMeZHoejsTgvvAxhaCSX0NbWj88u
Qbrkl4FqzLJdtaAt3KhCtPfwaZi9QDMCAwEAAaNyMHAwHQYDVR0OBBYEFPWE0qob
GzPsWrrg22lwhjsAtqiHMB8GA1UdIwQYMBaAFGyR/xVNsHdETvLwhPDkBYlAEBAo
MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMB
MA0GCSqGSIb3DQEBCwUAA4ICAQBsKcJW8WrHFFzQ5KFxiyDmxQGFUdGGsq3l4VLE
qIReEW2uLnFaCxvBCzaW4OIQ6VqBg5zOT4blMxA+P7s3VVka6cl3epUa6ytOPl+U
N+0uIdmhpzchEUTNf8VCBHYWhZGJMRa3Bpa7i2PnFAu1eC9kCaOvIvdxaJcvn2EA
sSt/P+VBcS9zduY1+woeflwyT896EZ0/Td+WDqG6I81U1z5684tBZKXao9rffioV
WdKUFxd0f1ECilZdj5ADFY7Znu6o0gk3X59Lo43Yp37tfJiIniKSxc1N2LPghU8z
rkxUHa3MK/6nbk/anF6PwAIE2Rm5oCaoK5xNuQU87u9O3mEIKQS3Ps/x1Qdu+JJZ
/nD7lIM9QFAbjpoFcBWR/2O9c4x275CL8L9yzLxsqJQKX+zpAguXrNUnIVPvTI5v
9YsuCrrcdwK9OlgrRXFerF14jgAdKIDYk2p0cBHfPyNlm5GQKotp2JwHwcR+sN5G
5vlVVoMK5YdE7HxYM7XKBBCdyTqjMcdJVQO+QAxb3mwTy23S4ckuwGk5NI5W3OLE
/xZhpj0lMtRAoNogDIYu4z31+YNJe1M0Xu5A/f/Tt2MIhVlaPiOVb43vaEu4mFaT
vml2e9/qPuX3CyBbwLGJBy3DmP5iaCxuBCnNKMawce0sRuFmGgotFlWY2uzP3nKr
G0+f3g==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFoDCCA4igAwIBAgIUH3aOxgrPp8ReTBS0xgwMiDo+RzYwDQYJKoZIhvcNAQEL
BQAwUTEZMBcGA1UEAwwQUXJhdG9yIFN5c2xvZyBDQTEUMBIGA1UECgwLUXJhdG9y
IExhYnMxHjAcBgkqhkiG9w0BCQEWD21haWxAcXJhdG9yLm5ldDAeFw0yNjA3MDgy
MDQzNDRaFw0zMTA3MDcyMDQzNDRaME8xFDASBgNVBAoMC1FyYXRvciBMYWJzMRcw
FQYDVQQDDA4xNzguMjQ4LjIzOS4zMDEeMBwGCSqGSIb3DQEJARYPbWFpbEBxcmF0
b3IubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAusYLrODkJPkf
OhZzaLupR+yO1L5SxDka8tW89Mf8mYkpmLPVd42B/8Zw4aqR+YYmsvob8sJYlhv6
zPl1dRocPZ3qXkbvVRj+IrWWzKRvVIiN7RS/Ducw+PcDxWA+3Gq7YFO2z8nxctn2
YqfIUCsitjQAFxx/UNpCvk3w1gQUSsDh2rPvZZNy1DlmpKyOArkA8r3qaLqY55vk
qq37cHDsf+ycZxQ4cj8Yxj+yltX7XIx7nOcE/s2esb/fzeqB0fVxugZe3Cqumkq+
oI3m0NJsT/F35hu4eFlqK/yRvmwsFqgFBozZ2FuyxStWocYdKyYYIe3OX1NQSS2y
1f1FRPwae6MAydnotHmBRCWdrFK38y7AdmztcFN68qF9iKG5WhOk3sAg39Korlt/
86Ki3Eeggml4IkKPxi7bOW+fCVIJCN7y2eMMUlZVDabJk1Bq0nwZ1f+UEmYXBJ7L
Ys5rr71hpTcjYe2QFjZH6FtIRbMwlW5tLY31OR1iy9ybDZmirbQVfEXSdokDBZjm
W5UhrnWipO0XFek74WffnbGaOmbDUL4iFvfzR1qOO/YTB5LK3RzXZesl0kSk3InK
eXhcSTjeGLisxiSsGRlZqcJhA4tHywr0poIZvMeZHoejsTgvvAxhaCSX0NbWj88u
Qbrkl4FqzLJdtaAt3KhCtPfwaZi9QDMCAwEAAaNyMHAwHQYDVR0OBBYEFPWE0qob
GzPsWrrg22lwhjsAtqiHMB8GA1UdIwQYMBaAFGyR/xVNsHdETvLwhPDkBYlAEBAo
MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMB
MA0GCSqGSIb3DQEBCwUAA4ICAQBpf//Kfr6Ya1sNVOaQWB9a3MOlqZ2hmpf0SPi3
AddwWpmXLa50DRpDR6TeV88TPyhyj9AWaA7KXZCdK1a798o4FNYwZRieNN4QOugk
gUekvTy9fSjKgAhMSeX0LgVMi5DaKC71mdGDaD1SfBp2irC6ZT6tPOmQHCJ/iqJg
HMd1KG2+mtwWnhAHLGYLm/yUUhdzToDDUjS2kwVJuFB9uIFP1xZiQz6mZUdrI4ZA
ao2Umdm8u5NJ4Xfy52JrcsPsAK4nptpys8YmoQd2FBfYLS8kkz1S9tziCDejB/3d
CeBAK6RPpzHeVG3c7l3yUAgmLpgmn5diXw6Fyxq7pbTqknI3d6hOTrnAYJGgdfvb
l8N8TBoGjr7Uw4yFbefp4pEcyFD+UalakRoSk4Eb0c6DhsYpGRSST/4wbatbdudo
PbeMMs0vjtihpahz7lWKpGZOVdDdXUCi/voSQL2mg//R90AS3kCKFYAlV01yaxL6
vv9Ccq7uT2Hbv7zMWHdjZS0M3fsUh9/Vd4ygy+D3NoUsmptpsQJy/ffFgaLZWw6e
Gu8C17PfYn6vFD9vP90YYKY8LoghbeMQpXPUx0BGYzzQoLBtusIUVUblRcQDfYvC
QnL8tT739AFEe5oRtjGzaETpKJEQtOxltI3LFh1wvm1CMQo//s0Gx2lXDFBt1gXS
XivWYw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFoDCCA4igAwIBAgIUcPorCucj1+yBchknNH0qa76Ax5EwDQYJKoZIhvcNAQEL
BQAwUTEZMBcGA1UEAwwQUXJhdG9yIFN5c2xvZyBDQTEUMBIGA1UECgwLUXJhdG9y
IExhYnMxHjAcBgkqhkiG9w0BCQEWD21haWxAcXJhdG9yLm5ldDAeFw0yNjA3MDgy
MDQzNDVaFw0zMTA3MDcyMDQzNDVaME8xFDASBgNVBAoMC1FyYXRvciBMYWJzMRcw
FQYDVQQDDA4xODUuOTQuMTA4LjI1NDEeMBwGCSqGSIb3DQEJARYPbWFpbEBxcmF0
b3IubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAusYLrODkJPkf
OhZzaLupR+yO1L5SxDka8tW89Mf8mYkpmLPVd42B/8Zw4aqR+YYmsvob8sJYlhv6
zPl1dRocPZ3qXkbvVRj+IrWWzKRvVIiN7RS/Ducw+PcDxWA+3Gq7YFO2z8nxctn2
YqfIUCsitjQAFxx/UNpCvk3w1gQUSsDh2rPvZZNy1DlmpKyOArkA8r3qaLqY55vk
qq37cHDsf+ycZxQ4cj8Yxj+yltX7XIx7nOcE/s2esb/fzeqB0fVxugZe3Cqumkq+
oI3m0NJsT/F35hu4eFlqK/yRvmwsFqgFBozZ2FuyxStWocYdKyYYIe3OX1NQSS2y
1f1FRPwae6MAydnotHmBRCWdrFK38y7AdmztcFN68qF9iKG5WhOk3sAg39Korlt/
86Ki3Eeggml4IkKPxi7bOW+fCVIJCN7y2eMMUlZVDabJk1Bq0nwZ1f+UEmYXBJ7L
Ys5rr71hpTcjYe2QFjZH6FtIRbMwlW5tLY31OR1iy9ybDZmirbQVfEXSdokDBZjm
W5UhrnWipO0XFek74WffnbGaOmbDUL4iFvfzR1qOO/YTB5LK3RzXZesl0kSk3InK
eXhcSTjeGLisxiSsGRlZqcJhA4tHywr0poIZvMeZHoejsTgvvAxhaCSX0NbWj88u
Qbrkl4FqzLJdtaAt3KhCtPfwaZi9QDMCAwEAAaNyMHAwHQYDVR0OBBYEFPWE0qob
GzPsWrrg22lwhjsAtqiHMB8GA1UdIwQYMBaAFGyR/xVNsHdETvLwhPDkBYlAEBAo
MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMB
MA0GCSqGSIb3DQEBCwUAA4ICAQB9lYRBwR2uLybwHEiHJ5vNPAv65ZUxZKIaqN5T
VYSfr3R3zpZRzcUYLSicCe6YoTZqavaIAxsmqxDEsK/C9JLOTdw3WdLhbOCxiqzT
7rmx/X3OOGuM9BdGmglVti9s7J67Mj+U9q+t9qrQnPmDPQYom9sWnTZ7fT6lwiGy
+QXJAW+I9XrxScU0KOBemdCYTCFHpBEJanYTtBbA+0jtCRw8WZ0cRtmJYiuni1IT
dk/mAHvKppGrOd8vxsXT98TpWqLyyYpdQC7eprIwfbsl+cix6LzN7kw5BoMNcd+N
2Y5J9EJNSnDSh1FTkuU2tg4Kzem+15rZzAUBOrY+8pQDjlepMqY9e6IC9kthKmf4
Okm5pFX4OLkqK2nTLpqF4H9Ias6Io16ROpJ8Gd437MnnE3X+ZqNpnu9fCiajUwjF
4hBCPHBVLHK0fC81s1vZkzggcXq0zY4SVMoFaEbcjRtlUrdRLBik9PldpvJLxAdQ
/LlGEjf9EOTr6Rrb5qGovKmQGnyujrTMoWeV7AegODFxv0OSZk3oukmJnLn4BF4E
Kbbqa5tmwJlB+FtUGdRadH8Jk8urlCwF3TL62uAjbwfdq7yU6dp6g/Vl7tEq7dlC
SolMjcfWnUkFu9f8pcgD6SKNxNxRRwlnyQUNfKoat/n4MwnYuN2hJT+jcj4ILf6M
EgK5VA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFnjCCA4agAwIBAgIUEJgBKIAHq2QIM+1t4Oi+dtltjSwwDQYJKoZIhvcNAQEL
BQAwUTEZMBcGA1UEAwwQUXJhdG9yIFN5c2xvZyBDQTEUMBIGA1UECgwLUXJhdG9y
IExhYnMxHjAcBgkqhkiG9w0BCQEWD21haWxAcXJhdG9yLm5ldDAeFw0yNjA3MDgy
MDQzMzZaFw0zMTA3MDcyMDQzMzZaME0xFDASBgNVBAoMC1FyYXRvciBMYWJzMRUw
EwYDVQQDDAwxMDAuNjQuMS4yNTQxHjAcBgkqhkiG9w0BCQEWD21haWxAcXJhdG9y
Lm5ldDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALrGC6zg5CT5HzoW
c2i7qUfsjtS+UsQ5GvLVvPTH/JmJKZiz1XeNgf/GcOGqkfmGJrL6G/LCWJYb+sz5
dXUaHD2d6l5G71UY/iK1lsykb1SIje0Uvw7nMPj3A8VgPtxqu2BTts/J8XLZ9mKn
yFArIrY0ABccf1DaQr5N8NYEFErA4dqz72WTctQ5ZqSsjgK5APK96mi6mOeb5Kqt
+3Bw7H/snGcUOHI/GMY/spbV+1yMe5znBP7NnrG/383qgdH1cboGXtwqrppKvqCN
5tDSbE/xd+YbuHhZaiv8kb5sLBaoBQaM2dhbssUrVqHGHSsmGCHtzl9TUEktstX9
RUT8GnujAMnZ6LR5gUQlnaxSt/MuwHZs7XBTevKhfYihuVoTpN7AIN/SqK5bf/Oi
otxHoIJpeCJCj8Yu2zlvnwlSCQje8tnjDFJWVQ2myZNQatJ8GdX/lBJmFwSey2LO
a6+9YaU3I2HtkBY2R+hbSEWzMJVubS2N9TkdYsvcmw2Zoq20FXxF0naJAwWY5luV
Ia51oqTtFxXpO+Fn352xmjpmw1C+Ihb380dajjv2EweSyt0c12XrJdJEpNyJynl4
XEk43hi4rMYkrBkZWanCYQOLR8sK9KaCGbzHmR6Ho7E4L7wMYWgkl9DW1o/PLkG6
5JeBasyyXbWgLdyoQrT38GmYvUAzAgMBAAGjcjBwMB0GA1UdDgQWBBT1hNKqGxsz
7Fq64NtpcIY7ALaohzAfBgNVHSMEGDAWgBRskf8VTbB3RE7y8ITw5AWJQBAQKDAJ
BgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIF4DATBgNVHSUEDDAKBggrBgEFBQcDATAN
BgkqhkiG9w0BAQsFAAOCAgEAk77DkGwJld0cCF2KJysst2ycm0s4Et0cunM4D96s
pMkbBVs513shGM6Hq+RQy9rknrQuM4RoP2/ZctIc+Eny8YWMyHkcp7Uog43wDlEO
niYUde9HMgT6XjsgKKmFw2p8si60zIOKQktbMZUn4ORBBLwStPWVam/X4IZeKfT0
J5I/0ka6V2bIJGeUxL7PjxtAoTuH+vvsh7EE9ZdNNNTy43B1C4czCoEir55v+S98
GJpUnKVs57aQ3GjXiqpZJmM+Z8RmmamLgNhtSrplHf6sNKLMITgPZCZP9gEjjcqq
cHpGXFnPC21aUdjb6ArD8KpRqGGAPWN5adZpkDWV43o3GxY63vrBZUbvLKYTf75Q
CN0MIS6cEihouWw0U9Q3qab+BrEdsr6oUBplazfMWRRZwz6vBuKzh5ncWDvb1NpJ
rIHWkGNk9yR2Z2JWHZS5Xh1y9uKBbXtdy0BFECyek/CwmyhwSkeKnnFYGuwIiH/t
pw9qBWbVUQXX1NPAkYNdT6k9Js98h+QYOJ3JvwqzsIZQGyHM86OmG6CxLBqZSGyo
TDhNhCSVcvUl1rKFwx7/+aqKVIloqR0Rk3MzHDVQJ6ZloqogLYcSBT7WH2hNnfu8
XLBbS6htklXPcDiACuZe53sStwWkOxZQfOiMJgUk8R8dPZNkoUuvLgnlj2UN9m5Q
sbM=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIENDCCA52gAwIBAgICBHYwDQYJKoZIhvcNAQELBQAwgYQxCzAJBgNVBAYTAlJV
MQ8wDQYDVQQIEwZNb3Njb3cxDzANBgNVBAcTBk1vc2NvdzEMMAoGA1UEChMDSExM
MQ8wDQYDVQQLEwZRcmF0b3IxFDASBgNVBAMTC1FyYXRvciBOb2RlMR4wHAYJKoZI
hvcNAQkBFg9tYWlsQHFyYXRvci5uZXQwHhcNMjEwNzEyMTUyMjM5WhcNMzEwNzEw
MTUyMjM5WjBRMRkwFwYDVQQDDBBRcmF0b3IgU3lzbG9nIENBMRQwEgYDVQQKDAtR
cmF0b3IgTGFiczEeMBwGCSqGSIb3DQEJARYPbWFpbEBxcmF0b3IubmV0MIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmQmcErDsVsHgz3+C+Q1EEVlMN2Hg
bnBBlVWu5d0Cp9Em2T5+L2XrvGb6fd1XEEgDi4qiOd6DtCPO15NaUCr4su7RVpxw
/flzuHcq7DyS0kyjEA0dkaZ3L20n1Lx5jjmnC8i+5vdaDhC94NfWdQdkHnTTO47P
kB80RkaJTVACZAIA8ab86L02PmL54YOiTSX+/IUoO5SILElZewVJ8fkjnOwmGPiP
X0dkP9YAV/6qfoQfa9PVUkPeV9UHNUpW2laN09hAog4UybeIzTV0bWweiCnlj5TW
16zn0JcfTViiNn9HUw3EWmbi8YUhv86yTiLjMXHDafhFzQqTDKkg5J4dn7ye0Aqz
qXUo09OjrBC4+fX5RgImJoXMeFS2exSB5f8PxDpBS95LQVuSZzXesuDUzQVJD9T0
JT57u/27EBlTwQqMLgqo39RE8iaroduibUjFKAzBn3xXAOMx5EbPK0aliymq82PD
BwB69JDm/i0xSeRIa5r7C/mAjVfcDQxQVz97IfJXek0FChUjHkddgWpHuYqYQreq
5sZX218te+86yh5RjRmgN52gb9c4KppJEE04fAXJYhMARuMhuswyCzWLPP8SHIO/
QeHD4ifw+FyT8jh/qiFhcIcY48wC2/4IOsfP5OWTUfzfjuZF+g6SSGXhDdKidAWU
Z2mBa/UsZZsMvsECAwEAAaNjMGEwHQYDVR0OBBYEFGyR/xVNsHdETvLwhPDkBYlA
EBAoMB8GA1UdIwQYMBaAFAbuy5jX1iZn8znnGOwGytbFKt/XMA8GA1UdEwEB/wQF
MAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4GBAI5bpB87OoTP
MLGE4ZsTSa2LmjYPLz9i0ZOubzUAZwz7B81RxSdFDz90Y2QNmUOx7Pztzz13IW5X
smtRqOf3Q7jRUWSzBi/JFTEqWALVcGrFixzA9QOPJ/nOo1FC8hlxmwxA6yoXRnW3
ntngAJiziHrrtNKkjILT0Jv4zbk25Jtm
-----END CERTIFICATE-----