From 6c1c99a2c0dd4b5fa771c931b1b95c5185482c26 Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Tue, 8 Aug 2023 14:56:35 +0200 Subject: [PATCH 01/13] Initial import OSGi configuration for WebHook Audit Processor --- ...ookAuditMessageProcessorConfiguration.java | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java new file mode 100644 index 0000000..3ac6476 --- /dev/null +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java @@ -0,0 +1,171 @@ +/* + Copyright 2009-present Antonio Musarra's Blog - https://www.dontesta.it + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration; + +import aQute.bnd.annotation.metatype.Meta; +import com.liferay.portal.configuration.metatype.annotations.ExtendedObjectClassDefinition; + +/** + * @author Antonio Musarra + */ +@ExtendedObjectClassDefinition(category = "audit") +@Meta.OCD( + id = "it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.WebHookAuditMessageProcessorConfiguration", + localization = "content/Language", + name = "webhook-audit-message-processor-configuration-name" +) +public interface WebHookAuditMessageProcessorConfiguration { + + @Meta.AD( + deflt = "false", description = "audit-message-processor-enabled-help", + name = "audit-message-processor-enabled", required = false + ) + public boolean enabled(); + + @Meta.AD( + deflt = "https://webhook.site/audit/message/processor", + description = "webhook-audit-message-processor-endpoint-url-help", + name = "webhook-audit-message-processor-endpoint-url", + required = false + ) + public String endPointUrl(); + + @Meta.AD( + deflt = "true", description = "webhook-common-name-check-description", + name = "webhook-common-name-check-name", required = false + ) + public boolean commonNameCheck(); + + @Meta.AD( + deflt = "true", description = "webhook-hostname-verifier-description", + name = "webhook-hostname-verifier-name", required = false + ) + public boolean hostnameVerifier(); + + @Meta.AD( + deflt = "60000", description = "webhook-client-connection-timeout-description", + name = "webhook-client-connection-timeout-name", required = false + ) + public long clientConnectionTimeOut(); + + @Meta.AD( + deflt = "60000", description = "webhook-client-receive-timeout-description", + name = "webhook-client-receive-timeout-name", required = false + ) + public long clientReceiveTimeout(); + + @Meta.AD( + deflt = "PKCS12", description = "webhook-trust-store-description", + name = "webhook-trust-store-name", + optionLabels = { + "JKS (Java Keystore)", + "PKCS (Public-Key Cryptography Standards) #12" + }, + optionValues = {"JKS", "PKCS12"}, required = false + ) + public String trustStoreType(); + + @Meta.AD( + deflt = "PKCS12", description = "webhook-key-store-description", + name = "webhook-key-store-name", + optionLabels = { + "JKS (Java Keystore)", + "PKCS (Public-Key Cryptography Standards) #12" + }, + optionValues = {"JKS", "PKCS12"}, required = false + ) + public String keyStoreType(); + + @Meta.AD( + deflt = "", description = "webhook-trust-store-file-description", + name = "webhook-trust-store-file-name", required = false + ) + public String trustStoreFile(); + + @Meta.AD( + deflt = "", description = "webhook-key-store-file-description", + name = "webhook-key-store-file-name", required = false + ) + public String keyStoreFile(); + + @Meta.AD( + deflt = "", description = "webhook-trust-store-password-description", + name = "webhook-trust-store-password-name", required = false, + type = Meta.Type.Password + ) + public String trustStorePassword(); + + @Meta.AD( + deflt = "", description = "webhook-key-store-password-description", + name = "webhook-key-store-password-name", required = false, + type = Meta.Type.Password + ) + public String keyStorePassword(); + + @Meta.AD( + deflt = "TLSv1.2", description = "webhook-https-protocol-description", + name = "webhook-https-protocol-name", + optionLabels = { + "Transport Layer Security (TLS) 1.1", + "Transport Layer Security (TLS) 1.2", + "Transport Layer Security (TLS) 1.3" + }, + optionValues = {"TLSv1.1", "TLSv1.2", "TLSv1.3"}, required = false + ) + public String httpsProtocol(); + + @Meta.AD( + deflt = "", description = "webhook-api-key-description", + name = "webhook-api-key-name", required = false, + type = Meta.Type.Password + ) + public String apiKey(); + + @Meta.AD( + deflt = "header", description = "webhook-api-key-location-description", + name = "webhook-api-key-location-name", + optionLabels = { + "HTTP Header", + "HTTP Cookie", + "HTTP URL Query Parameter" + }, + optionValues = {"header", "cookie", "urlQuery"}, required = false + ) + public String apiKeyLocation(); + + @Meta.AD( + deflt = "", description = "webhook-api-key-param-description", + name = "webhook-api-key-param-name", required = false + ) + public String apiKeyParam(); + + @Meta.AD( + deflt = "api-key", description = "webhook-auth-type-description", + name = "webhook-auth-type-name", + optionLabels = { + "None", + "HTTP Basic", + "HTTPS Mutual Authentication" + }, + optionValues = {"none", "basic", "mutual"}, required = false + ) + public String authType(); + +} From 60535894691422d8bdb36c9013649736f897e18f Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Tue, 15 Aug 2023 17:16:29 +0200 Subject: [PATCH 02/13] Initial import for WebHook Audit Processor --- .../bnd.bnd | 3 + .../build.gradle | 1 + .../WebHookAuditMessageProcessor.java | 179 ++++++++++++++++++ ...ookAuditMessageProcessorConfiguration.java | 104 ++-------- 4 files changed, 197 insertions(+), 90 deletions(-) create mode 100644 portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java diff --git a/portal-security-audit-message-processor/bnd.bnd b/portal-security-audit-message-processor/bnd.bnd index bcf4d53..b7417cf 100644 --- a/portal-security-audit-message-processor/bnd.bnd +++ b/portal-security-audit-message-processor/bnd.bnd @@ -14,6 +14,9 @@ Import-Package:\ \ org.slf4j.impl;resolution:=optional,\ \ + org.apache.avalon.framework.logger;resolution:=optional,\ + \ + org.apache.log;resolution:=optional,\ * Liferay-Releng-Module-Group-Description: Liferay Portal Security Audit Liferay-Releng-Module-Group-Title: Audit \ No newline at end of file diff --git a/portal-security-audit-message-processor/build.gradle b/portal-security-audit-message-processor/build.gradle index 0bc2db5..975367a 100644 --- a/portal-security-audit-message-processor/build.gradle +++ b/portal-security-audit-message-processor/build.gradle @@ -3,6 +3,7 @@ apply plugin: "com.liferay.plugin" dependencies { compileInclude group: "com.cloudbees", name: "syslog-java-client", version: "1.1.7" compileInclude group: "com.rabbitmq", name: "amqp-client", version: "5.13.1" + compileInclude group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' compileOnly group: "com.liferay.portal", name: "release.portal.api", version: "7.4.3.85-ga85" compileOnly group: "javax.mail", name: "mail", version: "1.4" diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java new file mode 100644 index 0000000..56e98f9 --- /dev/null +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java @@ -0,0 +1,179 @@ +/* + Copyright 2009-present Antonio Musarra's Blog - https://www.dontesta.it + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +package it.dontesta.labs.liferay.portal.security.audit.message.processor; + +import com.liferay.petra.string.StringPool; +import com.liferay.portal.configuration.metatype.bnd.util.ConfigurableUtil; +import com.liferay.portal.kernel.audit.AuditMessage; +import com.liferay.portal.kernel.log.Log; +import com.liferay.portal.kernel.log.LogFactoryUtil; +import com.liferay.portal.kernel.util.Validator; +import com.liferay.portal.security.audit.AuditMessageProcessor; +import it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.WebHookAuditMessageProcessorConfiguration; +import java.io.IOException; +import java.util.Map; +import javax.ws.rs.core.Response; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Modified; + +/** + * @author Antonio Musarra + */ +@Component( + configurationPid = + "it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.WebHookAuditMessageProcessorConfiguration", + immediate = true, + property = "eventTypes=" + StringPool.STAR, + service = AuditMessageProcessor.class) +public class WebHookAuditMessageProcessor implements AuditMessageProcessor { + + @Override + public void process(AuditMessage auditMessage) { + try { + doProcess(auditMessage); + } catch (Exception e) { + _log.fatal("Unable to process audit message " + auditMessage, e); + } + } + + @Activate + @Modified + protected void activate(Map properties) { + _webHookAuditMessageProcessorConfiguration = + ConfigurableUtil.createConfigurable( + WebHookAuditMessageProcessorConfiguration.class, properties); + + if (_log.isInfoEnabled()) { + _log.info( + "Cloud AMQP Audit Message Processor enabled: " + + _webHookAuditMessageProcessorConfiguration.enabled()); + } + } + + protected void doProcess(AuditMessage auditMessage) throws IOException { + + if (_webHookAuditMessageProcessorConfiguration.enabled()) { + if (_log.isDebugEnabled()) { + _log.debug( + "WebHook Audit Message processor processing " + + "this Audit Message => " + + auditMessage.toJSONObject()); + } + + RequestConfig requestConfig = + RequestConfig.custom() + .setConnectTimeout(_getClientConnectionTimeOut()) + .setSocketTimeout(_getClientReceiveTimeout()) + .build(); + + // Create HTTP client + try (CloseableHttpClient httpClient = + HttpClients.custom().setDefaultRequestConfig(requestConfig).build()) { + // Create HTTP POST request + HttpPost httpPost = new HttpPost(_getEndPointUrl()); + + if (_getApiKeyLocationType() + .equals(_webHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_HEADER) + && Validator.isNotNull(_getApiKey())) { + httpPost.setHeader(_getApiKeyLocationName(), _getApiKey()); + _log.info("Setting API Key in HTTP Header"); + } + + if (_getApiKeyLocationType() + .equals(_webHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_URL_QUERY) + && Validator.isNotNull(_getApiKey())) { + httpPost.setURI( + httpPost + .getURI() + .resolve(String.format("?%s=%s", _getApiKeyLocationName(), _getApiKey()))); + _log.info("Setting API Key in HTTP URL Query Parameter"); + } + + // Set JSON content + StringEntity entity = new StringEntity(auditMessage.toJSONObject().toJSONString()); + entity.setContentType("application/json"); + httpPost.setEntity(entity); + + // Execute the request + try (CloseableHttpResponse response = httpClient.execute(httpPost)) { + // Process the response + int statusCode = response.getStatusLine().getStatusCode(); + + if (statusCode != Response.Status.OK.getStatusCode()) { + _log.error( + String.format( + "Error on send Audit Message to Slack: {response code: %s, response content: %s}", + statusCode, response.getEntity().getContent())); + } + + // You can also handle the response content here if needed + } catch (IOException ioException) { + throw ioException; + } + } catch (IOException ioException) { + throw ioException; + } + } + } + + private String _getApiKey() { + _log.info("API Key => " + _webHookAuditMessageProcessorConfiguration.apiKey()); + return _webHookAuditMessageProcessorConfiguration.apiKey(); + } + + private String _getApiKeyLocationType() { + _log.info( + "API Key Location Type => " + + _webHookAuditMessageProcessorConfiguration.apiKeyLocationType()); + return _webHookAuditMessageProcessorConfiguration.apiKeyLocationType(); + } + + private String _getApiKeyLocationName() { + _log.info( + "API Key Location Name => " + + _webHookAuditMessageProcessorConfiguration.apiKeyLocationName()); + return _webHookAuditMessageProcessorConfiguration.apiKeyLocationName(); + } + + private int _getClientConnectionTimeOut() { + return _webHookAuditMessageProcessorConfiguration.clientConnectionTimeOut(); + } + + private int _getClientReceiveTimeout() { + return _webHookAuditMessageProcessorConfiguration.clientReceiveTimeout(); + } + + private String _getEndPointUrl() { + return _webHookAuditMessageProcessorConfiguration.endPointUrl(); + } + + private static final Log _log = LogFactoryUtil.getLog(WebHookAuditMessageProcessor.class); + + private WebHookAuditMessageProcessorConfiguration _webHookAuditMessageProcessorConfiguration; +} diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java index 3ac6476..1ce039b 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java @@ -47,89 +47,17 @@ public interface WebHookAuditMessageProcessorConfiguration { ) public String endPointUrl(); - @Meta.AD( - deflt = "true", description = "webhook-common-name-check-description", - name = "webhook-common-name-check-name", required = false - ) - public boolean commonNameCheck(); - - @Meta.AD( - deflt = "true", description = "webhook-hostname-verifier-description", - name = "webhook-hostname-verifier-name", required = false - ) - public boolean hostnameVerifier(); - @Meta.AD( deflt = "60000", description = "webhook-client-connection-timeout-description", name = "webhook-client-connection-timeout-name", required = false ) - public long clientConnectionTimeOut(); + public int clientConnectionTimeOut(); @Meta.AD( deflt = "60000", description = "webhook-client-receive-timeout-description", name = "webhook-client-receive-timeout-name", required = false ) - public long clientReceiveTimeout(); - - @Meta.AD( - deflt = "PKCS12", description = "webhook-trust-store-description", - name = "webhook-trust-store-name", - optionLabels = { - "JKS (Java Keystore)", - "PKCS (Public-Key Cryptography Standards) #12" - }, - optionValues = {"JKS", "PKCS12"}, required = false - ) - public String trustStoreType(); - - @Meta.AD( - deflt = "PKCS12", description = "webhook-key-store-description", - name = "webhook-key-store-name", - optionLabels = { - "JKS (Java Keystore)", - "PKCS (Public-Key Cryptography Standards) #12" - }, - optionValues = {"JKS", "PKCS12"}, required = false - ) - public String keyStoreType(); - - @Meta.AD( - deflt = "", description = "webhook-trust-store-file-description", - name = "webhook-trust-store-file-name", required = false - ) - public String trustStoreFile(); - - @Meta.AD( - deflt = "", description = "webhook-key-store-file-description", - name = "webhook-key-store-file-name", required = false - ) - public String keyStoreFile(); - - @Meta.AD( - deflt = "", description = "webhook-trust-store-password-description", - name = "webhook-trust-store-password-name", required = false, - type = Meta.Type.Password - ) - public String trustStorePassword(); - - @Meta.AD( - deflt = "", description = "webhook-key-store-password-description", - name = "webhook-key-store-password-name", required = false, - type = Meta.Type.Password - ) - public String keyStorePassword(); - - @Meta.AD( - deflt = "TLSv1.2", description = "webhook-https-protocol-description", - name = "webhook-https-protocol-name", - optionLabels = { - "Transport Layer Security (TLS) 1.1", - "Transport Layer Security (TLS) 1.2", - "Transport Layer Security (TLS) 1.3" - }, - optionValues = {"TLSv1.1", "TLSv1.2", "TLSv1.3"}, required = false - ) - public String httpsProtocol(); + public int clientReceiveTimeout(); @Meta.AD( deflt = "", description = "webhook-api-key-description", @@ -139,33 +67,29 @@ public interface WebHookAuditMessageProcessorConfiguration { public String apiKey(); @Meta.AD( - deflt = "header", description = "webhook-api-key-location-description", + deflt = API_KEY_LOCATION_HEADER, description = "webhook-api-key-location-description", name = "webhook-api-key-location-name", optionLabels = { "HTTP Header", - "HTTP Cookie", "HTTP URL Query Parameter" }, - optionValues = {"header", "cookie", "urlQuery"}, required = false + optionValues = {API_KEY_LOCATION_HEADER, API_KEY_LOCATION_URL_QUERY}, required = false ) - public String apiKeyLocation(); + public String apiKeyLocationType(); @Meta.AD( - deflt = "", description = "webhook-api-key-param-description", - name = "webhook-api-key-param-name", required = false + deflt = "", description = "webhook-api-key-location-name-description", + name = "webhook-api-key-location-name-name", + required = false ) - public String apiKeyParam(); + public String apiKeyLocationName(); @Meta.AD( - deflt = "api-key", description = "webhook-auth-type-description", - name = "webhook-auth-type-name", - optionLabels = { - "None", - "HTTP Basic", - "HTTPS Mutual Authentication" - }, - optionValues = {"none", "basic", "mutual"}, required = false + deflt = "", description = "webhook-api-key-param-description", + name = "webhook-api-key-param-name", required = false ) - public String authType(); + public String apiKeyParam(); + public String API_KEY_LOCATION_HEADER = "header"; + public String API_KEY_LOCATION_URL_QUERY = "urlQuery"; } From 98b94c156a7d9c8a590d01040f6fe9c0d62b103a Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Wed, 16 Aug 2023 00:29:26 +0200 Subject: [PATCH 03/13] Updated the Language.properties --- .../main/resources/content/Language.properties | 17 ++++++++++++++++- .../resources/content/Language_ar.properties | 17 ++++++++++++++++- .../resources/content/Language_bg.properties | 17 ++++++++++++++++- .../resources/content/Language_ca.properties | 17 ++++++++++++++++- .../resources/content/Language_cs.properties | 17 ++++++++++++++++- .../resources/content/Language_da.properties | 17 ++++++++++++++++- .../resources/content/Language_de.properties | 17 ++++++++++++++++- .../resources/content/Language_el.properties | 17 ++++++++++++++++- .../resources/content/Language_en.properties | 17 ++++++++++++++++- .../resources/content/Language_en_AU.properties | 17 ++++++++++++++++- .../resources/content/Language_en_GB.properties | 17 ++++++++++++++++- .../resources/content/Language_es.properties | 17 ++++++++++++++++- .../resources/content/Language_es_AR.properties | 17 ++++++++++++++++- .../resources/content/Language_es_CO.properties | 17 ++++++++++++++++- .../resources/content/Language_es_MX.properties | 17 ++++++++++++++++- .../resources/content/Language_et.properties | 17 ++++++++++++++++- .../resources/content/Language_eu.properties | 17 ++++++++++++++++- .../resources/content/Language_fa.properties | 17 ++++++++++++++++- .../resources/content/Language_fi.properties | 17 ++++++++++++++++- .../resources/content/Language_fr.properties | 17 ++++++++++++++++- .../resources/content/Language_fr_CA.properties | 17 ++++++++++++++++- .../resources/content/Language_gl.properties | 17 ++++++++++++++++- .../resources/content/Language_hi_IN.properties | 17 ++++++++++++++++- .../resources/content/Language_hr.properties | 17 ++++++++++++++++- .../resources/content/Language_hu.properties | 17 ++++++++++++++++- .../resources/content/Language_in.properties | 17 ++++++++++++++++- .../resources/content/Language_it.properties | 17 ++++++++++++++++- .../resources/content/Language_iw.properties | 17 ++++++++++++++++- .../resources/content/Language_ja.properties | 17 ++++++++++++++++- .../resources/content/Language_kk.properties | 17 ++++++++++++++++- .../resources/content/Language_km.properties | 17 ++++++++++++++++- .../resources/content/Language_ko.properties | 17 ++++++++++++++++- .../resources/content/Language_lo.properties | 17 ++++++++++++++++- .../resources/content/Language_lt.properties | 17 ++++++++++++++++- .../resources/content/Language_ms.properties | 17 ++++++++++++++++- .../resources/content/Language_nb.properties | 17 ++++++++++++++++- .../resources/content/Language_nl.properties | 17 ++++++++++++++++- .../resources/content/Language_nl_BE.properties | 17 ++++++++++++++++- .../resources/content/Language_pl.properties | 17 ++++++++++++++++- .../resources/content/Language_pt_BR.properties | 17 ++++++++++++++++- .../resources/content/Language_pt_PT.properties | 17 ++++++++++++++++- .../resources/content/Language_ro.properties | 17 ++++++++++++++++- .../resources/content/Language_ru.properties | 17 ++++++++++++++++- .../resources/content/Language_sk.properties | 17 ++++++++++++++++- .../resources/content/Language_sl.properties | 17 ++++++++++++++++- .../resources/content/Language_sr_RS.properties | 17 ++++++++++++++++- .../content/Language_sr_RS_latin.properties | 17 ++++++++++++++++- .../resources/content/Language_sv.properties | 17 ++++++++++++++++- .../resources/content/Language_ta_IN.properties | 17 ++++++++++++++++- .../resources/content/Language_th.properties | 17 ++++++++++++++++- .../resources/content/Language_tr.properties | 17 ++++++++++++++++- .../resources/content/Language_uk.properties | 17 ++++++++++++++++- .../resources/content/Language_vi.properties | 17 ++++++++++++++++- .../resources/content/Language_zh_CN.properties | 17 ++++++++++++++++- .../resources/content/Language_zh_TW.properties | 17 ++++++++++++++++- 55 files changed, 880 insertions(+), 55 deletions(-) diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language.properties b/portal-security-audit-message-processor/src/main/resources/content/Language.properties index bac6ee0..fed69ef 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity syslog-audit-message-processor-severity-help=Syslog severities syslog-audit-message-processor-ssl=Enable SSL/TLS -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS +webhook-api-key-description=The value of the API Key +webhook-api-key-location-description=Where the API Key is located (http header or query string) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key +webhook-api-key-location-header-name-name=API Key Header Name +webhook-api-key-location-name=API Key Location +webhook-api-key-location-query-description=The API Key query parameter name +webhook-api-key-location-query-name=URL Query Parameter Name +webhook-api-key-name=API Key +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL +webhook-client-connection-timeout-description=The http connection timeout in milliseconds +webhook-client-connection-timeout-name=HTTP Connection Timeout +webhook-client-receive-timeout-description=The http receive timeout in milliseconds +webhook-client-receive-timeout-name=HTTP Receive Timeout \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ar.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ar.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ar.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ar.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_bg.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_bg.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_bg.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_bg.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ca.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ca.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ca.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ca.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_cs.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_cs.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_cs.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_cs.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_da.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_da.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_da.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_da.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_de.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_de.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_de.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_de.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_el.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_el.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_el.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_el.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_en.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_en.properties index bac6ee0..fed69ef 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_en.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_en.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity syslog-audit-message-processor-severity-help=Syslog severities syslog-audit-message-processor-ssl=Enable SSL/TLS -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS +webhook-api-key-description=The value of the API Key +webhook-api-key-location-description=Where the API Key is located (http header or query string) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key +webhook-api-key-location-header-name-name=API Key Header Name +webhook-api-key-location-name=API Key Location +webhook-api-key-location-query-description=The API Key query parameter name +webhook-api-key-location-query-name=URL Query Parameter Name +webhook-api-key-name=API Key +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL +webhook-client-connection-timeout-description=The http connection timeout in milliseconds +webhook-client-connection-timeout-name=HTTP Connection Timeout +webhook-client-receive-timeout-description=The http receive timeout in milliseconds +webhook-client-receive-timeout-name=HTTP Receive Timeout \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_en_AU.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_en_AU.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_en_AU.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_en_AU.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_en_GB.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_en_GB.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_en_GB.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_en_GB.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_es.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_es.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_es.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_es.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_es_AR.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_es_AR.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_es_AR.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_es_AR.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_es_CO.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_es_CO.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_es_CO.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_es_CO.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_es_MX.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_es_MX.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_es_MX.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_es_MX.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_et.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_et.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_et.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_et.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_eu.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_eu.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_eu.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_eu.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_fa.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_fa.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_fa.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_fa.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_fi.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_fi.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_fi.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_fi.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_fr.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_fr.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_fr.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_fr.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_fr_CA.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_fr_CA.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_fr_CA.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_fr_CA.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_gl.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_gl.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_gl.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_gl.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_hi_IN.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_hi_IN.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_hi_IN.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_hi_IN.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_hr.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_hr.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_hr.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_hr.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_hu.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_hu.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_hu.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_hu.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_in.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_in.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_in.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_in.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_it.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_it.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_it.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_it.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_iw.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_iw.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_iw.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_iw.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ja.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ja.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ja.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ja.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_kk.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_kk.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_kk.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_kk.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_km.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_km.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_km.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_km.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ko.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ko.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ko.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ko.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_lo.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_lo.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_lo.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_lo.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_lt.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_lt.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_lt.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_lt.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ms.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ms.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ms.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ms.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_nb.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_nb.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_nb.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_nb.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_nl.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_nl.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_nl.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_nl.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_nl_BE.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_nl_BE.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_nl_BE.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_nl_BE.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_pl.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_pl.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_pl.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_pl.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_pt_BR.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_pt_BR.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_pt_BR.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_pt_BR.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_pt_PT.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_pt_PT.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_pt_PT.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_pt_PT.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ro.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ro.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ro.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ro.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ru.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ru.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ru.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ru.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_sk.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_sk.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_sk.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_sk.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_sl.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_sl.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_sl.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_sl.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS_latin.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS_latin.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS_latin.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_sr_RS_latin.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_sv.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_sv.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_sv.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_sv.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_ta_IN.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_ta_IN.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_ta_IN.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_ta_IN.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_th.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_th.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_th.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_th.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_tr.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_tr.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_tr.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_tr.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_uk.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_uk.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_uk.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_uk.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_vi.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_vi.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_vi.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_vi.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_zh_CN.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_zh_CN.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_zh_CN.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_zh_CN.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/resources/content/Language_zh_TW.properties b/portal-security-audit-message-processor/src/main/resources/content/Language_zh_TW.properties index 378c613..c99ac06 100644 --- a/portal-security-audit-message-processor/src/main/resources/content/Language_zh_TW.properties +++ b/portal-security-audit-message-processor/src/main/resources/content/Language_zh_TW.properties @@ -36,4 +36,19 @@ syslog-audit-message-processor-protocol-help=Supported protocols are UDP and TCP syslog-audit-message-processor-severity=Severity (Automatic Copy) syslog-audit-message-processor-severity-help=Syslog severities (Automatic Copy) syslog-audit-message-processor-ssl=Enable SSL/TLS (Automatic Copy) -syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) \ No newline at end of file +syslog-audit-message-processor-ssl-help=Enable or disable support for SSL/TLS (Automatic Copy) +webhook-api-key-description=The value of the API Key (Automatic Copy) +webhook-api-key-location-description=Where the API Key is located (http header or query string) (Automatic Copy) +webhook-api-key-location-header-name-description=The name of the http header containing the API Key (Automatic Copy) +webhook-api-key-location-header-name-name=API Key Header Name (Automatic Copy) +webhook-api-key-location-name=API Key Location (Automatic Copy) +webhook-api-key-location-query-description=The API Key query parameter name (Automatic Copy) +webhook-api-key-location-query-name=URL Query Parameter Name (Automatic Copy) +webhook-api-key-name=API Key (Automatic Copy) +webhook-audit-message-processor-configuration-name=Web Hook Audit Message Processor (Automatic Copy) +webhook-audit-message-processor-endpoint-url-description=Web Hook URL (es: https://webhook.site/46e8f18c-b6ac-490a-bfed-1d41de5c1c9e) (Automatic Copy) +webhook-audit-message-processor-endpoint-url-name=Web Hook URL (Automatic Copy) +webhook-client-connection-timeout-description=The http connection timeout in milliseconds (Automatic Copy) +webhook-client-connection-timeout-name=HTTP Connection Timeout (Automatic Copy) +webhook-client-receive-timeout-description=The http receive timeout in milliseconds (Automatic Copy) +webhook-client-receive-timeout-name=HTTP Receive Timeout (Automatic Copy) \ No newline at end of file From 76221bc05f2b0d08950d6d808b4de969613f2d40 Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Wed, 16 Aug 2023 00:44:17 +0200 Subject: [PATCH 04/13] General code review --- .../WebHookAuditMessageProcessor.java | 50 +++++++++---------- ...ookAuditMessageProcessorConfiguration.java | 16 +++--- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java index 56e98f9..f0a99d1 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java @@ -71,7 +71,7 @@ protected void activate(Map properties) { if (_log.isInfoEnabled()) { _log.info( - "Cloud AMQP Audit Message Processor enabled: " + "Web Hook Audit Message Processor enabled: " + _webHookAuditMessageProcessorConfiguration.enabled()); } } @@ -92,37 +92,33 @@ protected void doProcess(AuditMessage auditMessage) throws IOException { .setSocketTimeout(_getClientReceiveTimeout()) .build(); - // Create HTTP client try (CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build()) { - // Create HTTP POST request + HttpPost httpPost = new HttpPost(_getEndPointUrl()); - if (_getApiKeyLocationType() - .equals(_webHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_HEADER) - && Validator.isNotNull(_getApiKey())) { - httpPost.setHeader(_getApiKeyLocationName(), _getApiKey()); - _log.info("Setting API Key in HTTP Header"); + if (Validator.isNotNull(_getApiKey()) + && _getApiKeyLocationType() + .equals(WebHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_HEADER)) { + + httpPost.setHeader(_getApiKeyLocationHeaderName(), _getApiKey()); } - if (_getApiKeyLocationType() - .equals(_webHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_URL_QUERY) - && Validator.isNotNull(_getApiKey())) { + if (Validator.isNotNull(_getApiKey()) + && _getApiKeyLocationType() + .equals(WebHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_URL_QUERY)) { + httpPost.setURI( httpPost .getURI() - .resolve(String.format("?%s=%s", _getApiKeyLocationName(), _getApiKey()))); - _log.info("Setting API Key in HTTP URL Query Parameter"); + .resolve(String.format("?%s=%s", _getApiKeyQueryParam(), _getApiKey()))); } - // Set JSON content StringEntity entity = new StringEntity(auditMessage.toJSONObject().toJSONString()); entity.setContentType("application/json"); httpPost.setEntity(entity); - // Execute the request try (CloseableHttpResponse response = httpClient.execute(httpPost)) { - // Process the response int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != Response.Status.OK.getStatusCode()) { @@ -132,7 +128,12 @@ protected void doProcess(AuditMessage auditMessage) throws IOException { statusCode, response.getEntity().getContent())); } - // You can also handle the response content here if needed + if (_log.isDebugEnabled()) { + _log.debug( + String.format( + "Audit Message sent to Slack: {response code: %s, response content: %s}", + statusCode, response.getEntity().getContent())); + } } catch (IOException ioException) { throw ioException; } @@ -143,22 +144,19 @@ protected void doProcess(AuditMessage auditMessage) throws IOException { } private String _getApiKey() { - _log.info("API Key => " + _webHookAuditMessageProcessorConfiguration.apiKey()); return _webHookAuditMessageProcessorConfiguration.apiKey(); } private String _getApiKeyLocationType() { - _log.info( - "API Key Location Type => " - + _webHookAuditMessageProcessorConfiguration.apiKeyLocationType()); return _webHookAuditMessageProcessorConfiguration.apiKeyLocationType(); } - private String _getApiKeyLocationName() { - _log.info( - "API Key Location Name => " - + _webHookAuditMessageProcessorConfiguration.apiKeyLocationName()); - return _webHookAuditMessageProcessorConfiguration.apiKeyLocationName(); + private String _getApiKeyLocationHeaderName() { + return _webHookAuditMessageProcessorConfiguration.apiKeyLocationHeaderName(); + } + + private String _getApiKeyQueryParam() { + return _webHookAuditMessageProcessorConfiguration.apiKeyQueryParam(); } private int _getClientConnectionTimeOut() { diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java index 1ce039b..7d84915 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java @@ -41,8 +41,8 @@ public interface WebHookAuditMessageProcessorConfiguration { @Meta.AD( deflt = "https://webhook.site/audit/message/processor", - description = "webhook-audit-message-processor-endpoint-url-help", - name = "webhook-audit-message-processor-endpoint-url", + description = "webhook-audit-message-processor-endpoint-url-description", + name = "webhook-audit-message-processor-endpoint-url-name", required = false ) public String endPointUrl(); @@ -78,17 +78,17 @@ public interface WebHookAuditMessageProcessorConfiguration { public String apiKeyLocationType(); @Meta.AD( - deflt = "", description = "webhook-api-key-location-name-description", - name = "webhook-api-key-location-name-name", + deflt = "", description = "webhook-api-key-location-header-name-description", + name = "webhook-api-key-location-header-name-name", required = false ) - public String apiKeyLocationName(); + public String apiKeyLocationHeaderName(); @Meta.AD( - deflt = "", description = "webhook-api-key-param-description", - name = "webhook-api-key-param-name", required = false + deflt = "", description = "webhook-api-key-location-query-description", + name = "webhook-api-key-location-query-name", required = false ) - public String apiKeyParam(); + public String apiKeyQueryParam(); public String API_KEY_LOCATION_HEADER = "header"; public String API_KEY_LOCATION_URL_QUERY = "urlQuery"; From 31da1f8a01235ddf12fcbbc6775e56624fcc8860 Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Wed, 16 Aug 2023 00:55:54 +0200 Subject: [PATCH 05/13] Liferay SF (source formatter) --- .../bnd.bnd | 6 +- .../build.gradle | 4 +- .../CloudAMQPAuditMessageProcessor.java | 12 +- .../processor/DummyAuditMessageProcessor.java | 8 +- .../processor/SlackAuditMessageProcessor.java | 250 ++++++++------- .../SysLogAuditMessageProcessor.java | 32 +- .../WebHookAuditMessageProcessor.java | 284 ++++++++++-------- ...ackAuditMessageProcessorConfiguration.java | 7 +- ...ookAuditMessageProcessorConfiguration.java | 44 +-- 9 files changed, 369 insertions(+), 278 deletions(-) diff --git a/portal-security-audit-message-processor/bnd.bnd b/portal-security-audit-message-processor/bnd.bnd index b7417cf..8c81fa4 100644 --- a/portal-security-audit-message-processor/bnd.bnd +++ b/portal-security-audit-message-processor/bnd.bnd @@ -12,11 +12,11 @@ Import-Package:\ \ io.micrometer.core.instrument;resolution:=optional,\ \ - org.slf4j.impl;resolution:=optional,\ + org.apache.avalon.framework.logger;resolution:=optional,\ + org.apache.log;resolution:=optional,\ \ - org.apache.avalon.framework.logger;resolution:=optional,\ + org.slf4j.impl;resolution:=optional,\ \ - org.apache.log;resolution:=optional,\ * Liferay-Releng-Module-Group-Description: Liferay Portal Security Audit Liferay-Releng-Module-Group-Title: Audit \ No newline at end of file diff --git a/portal-security-audit-message-processor/build.gradle b/portal-security-audit-message-processor/build.gradle index 975367a..e30d12e 100644 --- a/portal-security-audit-message-processor/build.gradle +++ b/portal-security-audit-message-processor/build.gradle @@ -3,7 +3,7 @@ apply plugin: "com.liferay.plugin" dependencies { compileInclude group: "com.cloudbees", name: "syslog-java-client", version: "1.1.7" compileInclude group: "com.rabbitmq", name: "amqp-client", version: "5.13.1" - compileInclude group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' + compileInclude group: "org.apache.httpcomponents", name: "httpclient", version: "4.5.14" compileOnly group: "com.liferay.portal", name: "release.portal.api", version: "7.4.3.85-ga85" compileOnly group: "javax.mail", name: "mail", version: "1.4" @@ -13,4 +13,4 @@ version = "1.3.0-SNAPSHOT" jar { bnd ('Bundle-Version': project.version) -} +} \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/CloudAMQPAuditMessageProcessor.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/CloudAMQPAuditMessageProcessor.java index 2f301a6..242a4b4 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/CloudAMQPAuditMessageProcessor.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/CloudAMQPAuditMessageProcessor.java @@ -96,7 +96,8 @@ protected void doProcess(AuditMessage auditMessage) factory.setUri(_buildAMQPURI()); - //Recommended settings + // Recommended settings + factory.setRequestedHeartbeat(30); factory.setConnectionTimeout(30000); @@ -105,13 +106,16 @@ protected void doProcess(AuditMessage auditMessage) _log.debug("Try to connect " + _buildAMQPURI() + "..."); } - //durable - RabbitMQ will never lose the queue if a crash occurs + // durable - RabbitMQ will never lose the queue if a crash occurs + boolean durable = true; - //exclusive - if queue only will be used by one connection + // exclusive - if queue only will be used by one connection + boolean exclusive = false; - //autodelete - queue is deleted when last consumer unsubscribes + // autodelete - queue is deleted when last consumer unsubscribes + boolean autoDelete = true; try (Channel channel = connection.createChannel()) { diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/DummyAuditMessageProcessor.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/DummyAuditMessageProcessor.java index b4eb9d5..d6d6a5f 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/DummyAuditMessageProcessor.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/DummyAuditMessageProcessor.java @@ -24,13 +24,15 @@ of this software and associated documentation files (the "Software"), to deal import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.security.audit.AuditMessageProcessor; + import it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.DummyAuditMessageProcessorConfiguration; + +import java.util.Map; + import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Modified; -import java.util.Map; - /** * @author Antonio Musarra */ @@ -63,7 +65,7 @@ protected void doProcess(AuditMessage auditMessage) { if (_dummyAuditMessageProcessorConfiguration.enabled()) { _log.info( "Dummy processor processing this Audit Message => " + - auditMessage.toJSONObject()); + auditMessage.toJSONObject()); } } diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SlackAuditMessageProcessor.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SlackAuditMessageProcessor.java index ca37e49..dc02992 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SlackAuditMessageProcessor.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SlackAuditMessageProcessor.java @@ -30,10 +30,15 @@ of this software and associated documentation files (the "Software"), to deal import com.liferay.portal.kernel.util.Http; import com.liferay.portal.kernel.util.HttpUtil; import com.liferay.portal.security.audit.AuditMessageProcessor; + import it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.SlackAuditMessageProcessorConfiguration; + import java.io.IOException; + import java.util.Map; + import javax.ws.rs.core.Response; + import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Modified; @@ -42,110 +47,145 @@ of this software and associated documentation files (the "Software"), to deal * @author Antonio Musarra */ @Component( - configurationPid = - "it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.SlackAuditMessageProcessorConfiguration", - immediate = true, - property = "eventTypes=*", - service = AuditMessageProcessor.class) + configurationPid = "it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.SlackAuditMessageProcessorConfiguration", + immediate = true, property = "eventTypes=*", + service = AuditMessageProcessor.class +) public class SlackAuditMessageProcessor implements AuditMessageProcessor { - @Override - public void process(AuditMessage auditMessage) { - try { - doProcess(auditMessage); - } catch (Exception e) { - _log.fatal("Unable to process audit message " + auditMessage, e); - } - } - - @Activate - @Modified - protected void activate(Map properties) { - _slackAuditMessageProcessorConfiguration = - ConfigurableUtil.createConfigurable( - SlackAuditMessageProcessorConfiguration.class, properties); - - if (_log.isInfoEnabled()) { - _log.info( - "Slack Audit Message Processor enabled: " - + _slackAuditMessageProcessorConfiguration.enabled()); - } - } - - protected void doProcess(AuditMessage auditMessage) throws JSONException, IOException { - if (_slackAuditMessageProcessorConfiguration.enabled()) { - _log.info("Slack processor processing this Audit Message => " + auditMessage.toJSONObject()); - - JSONObject jsonObjectSectionHeader = JSONFactoryUtil.createJSONObject(); - JSONObject jsonObjectSectionBody = JSONFactoryUtil.createJSONObject(); - JSONObject jsonObjectSectionContext = JSONFactoryUtil.createJSONObject(); - JSONArray jsonArrayBlocks = JSONFactoryUtil.createJSONArray(); - JSONArray jsonArrayContext = JSONFactoryUtil.createJSONArray(); - - jsonObjectSectionHeader.put("type", "section"); - jsonObjectSectionHeader.put( - "text", - JSONFactoryUtil.createJSONObject() - .put("type", "plain_text") - .put( - "text", - String.format( - "Audit Message from: %s%nBelow the Audit Message details.", - SlackAuditMessageProcessor.class.getSimpleName()))); - - jsonObjectSectionBody.put("type", "section"); - - jsonObjectSectionBody.put( - "text", - JSONFactoryUtil.createJSONObject() - .put("type", "mrkdwn") - .put("text", String.format("```%s```", auditMessage.toJSONObject().toString(4)))); - - jsonObjectSectionContext.put("type", "context"); - jsonArrayContext.put( - JSONFactoryUtil.createJSONObject() - .put("type", "plain_text") - .put("text", "Author: Slack Audit Message Processor")); - jsonObjectSectionContext.put("elements", jsonArrayContext); - - jsonArrayBlocks.put(jsonObjectSectionHeader); - jsonArrayBlocks.put(jsonObjectSectionBody); - jsonArrayBlocks.put(jsonObjectSectionContext); - - Http.Options options = new Http.Options(); - options.setLocation(_slackAuditMessageProcessorConfiguration.webHookUrl()); - options.setPost(true); - options.setBody( - JSONFactoryUtil.createJSONObject().put("blocks", jsonArrayBlocks).toString(), - "application/json", - "UTF-8"); - - if (_log.isDebugEnabled()) { - _log.debug("Slack processor request body => " + options.getBody().getContent()); - } - - String responseContent = HttpUtil.URLtoString(options); - - if (_log.isDebugEnabled()) { - _log.debug("Slack processor response content => " + responseContent); - } - - Http.Response response = options.getResponse(); - - if (response.getResponseCode() != Response.Status.OK.getStatusCode()) { - _log.error( - String.format( - "Error on send Audit Message to Slack: {response code: %s, response content: %s}", - response.getResponseCode(), responseContent)); - } - - if (_log.isDebugEnabled()) { - _log.debug("Slack processor response code => " + response.getResponseCode()); - } - } - } - - private static final Log _log = LogFactoryUtil.getLog(SlackAuditMessageProcessor.class); - - private SlackAuditMessageProcessorConfiguration _slackAuditMessageProcessorConfiguration; -} + @Override + public void process(AuditMessage auditMessage) { + try { + doProcess(auditMessage); + } + catch (Exception e) { + _log.fatal("Unable to process audit message " + auditMessage, e); + } + } + + @Activate + @Modified + protected void activate(Map properties) { + _slackAuditMessageProcessorConfiguration = + ConfigurableUtil.createConfigurable( + SlackAuditMessageProcessorConfiguration.class, properties); + + if (_log.isInfoEnabled()) { + _log.info( + "Slack Audit Message Processor enabled: " + + _slackAuditMessageProcessorConfiguration.enabled()); + } + } + + protected void doProcess(AuditMessage auditMessage) + throws IOException, JSONException { + + if (_slackAuditMessageProcessorConfiguration.enabled()) { + _log.info( + "Slack processor processing this Audit Message => " + + auditMessage.toJSONObject()); + + JSONObject jsonObjectSectionHeader = + JSONFactoryUtil.createJSONObject(); + JSONObject jsonObjectSectionBody = + JSONFactoryUtil.createJSONObject(); + JSONObject jsonObjectSectionContext = + JSONFactoryUtil.createJSONObject(); + JSONArray jsonArrayBlocks = JSONFactoryUtil.createJSONArray(); + JSONArray jsonArrayContext = JSONFactoryUtil.createJSONArray(); + + jsonObjectSectionHeader.put( + "text", + JSONFactoryUtil.createJSONObject( + ).put( + "type", "plain_text" + ).put( + "text", + String.format( + "Audit Message from: %s%nBelow the Audit Message details.", + SlackAuditMessageProcessor.class.getSimpleName()) + )); + jsonObjectSectionHeader.put("type", "section"); + + jsonObjectSectionBody.put("type", "section"); + + jsonObjectSectionBody.put( + "text", + JSONFactoryUtil.createJSONObject( + ).put( + "type", "mrkdwn" + ).put( + "text", + String.format( + "```%s```", + auditMessage.toJSONObject( + ).toString( + 4 + )) + )); + + jsonObjectSectionContext.put("type", "context"); + jsonArrayContext.put( + JSONFactoryUtil.createJSONObject( + ).put( + "type", "plain_text" + ).put( + "text", "Author: Slack Audit Message Processor" + )); + jsonObjectSectionContext.put("elements", jsonArrayContext); + + jsonArrayBlocks.put(jsonObjectSectionHeader); + jsonArrayBlocks.put(jsonObjectSectionBody); + jsonArrayBlocks.put(jsonObjectSectionContext); + + Http.Options options = new Http.Options(); + options.setLocation( + _slackAuditMessageProcessorConfiguration.webHookUrl()); + options.setPost(true); + options.setBody( + JSONFactoryUtil.createJSONObject( + ).put( + "blocks", jsonArrayBlocks + ).toString(), + "application/json", "UTF-8"); + + if (_log.isDebugEnabled()) { + _log.debug( + "Slack processor request body => " + + options.getBody( + ).getContent()); + } + + String responseContent = HttpUtil.URLtoString(options); + + if (_log.isDebugEnabled()) { + _log.debug( + "Slack processor response content => " + responseContent); + } + + Http.Response response = options.getResponse(); + + if (response.getResponseCode() != + Response.Status.OK.getStatusCode()) { + + _log.error( + String.format( + "Error on send Audit Message to Slack: {response code: %s, response content: %s}", + response.getResponseCode(), responseContent)); + } + + if (_log.isDebugEnabled()) { + _log.debug( + "Slack processor response code => " + + response.getResponseCode()); + } + } + } + + private static final Log _log = LogFactoryUtil.getLog( + SlackAuditMessageProcessor.class); + + private SlackAuditMessageProcessorConfiguration + _slackAuditMessageProcessorConfiguration; + +} \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SysLogAuditMessageProcessor.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SysLogAuditMessageProcessor.java index 66bd4e2..214a2bb 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SysLogAuditMessageProcessor.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/SysLogAuditMessageProcessor.java @@ -27,19 +27,23 @@ of this software and associated documentation files (the "Software"), to deal import com.cloudbees.syslog.sender.AbstractSyslogMessageSender; import com.cloudbees.syslog.sender.TcpSyslogMessageSender; import com.cloudbees.syslog.sender.UdpSyslogMessageSender; + import com.liferay.portal.configuration.metatype.bnd.util.ConfigurableUtil; import com.liferay.portal.kernel.audit.AuditMessage; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.security.audit.AuditMessageProcessor; + import it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.SysLogAuditMessageProcessorConfiguration; -import org.osgi.service.component.annotations.Activate; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Modified; import java.io.IOException; + import java.util.Map; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Modified; + /** * @author Antonio Musarra */ @@ -90,21 +94,26 @@ protected void doProcess(AuditMessage auditMessage) { messageSender.setSyslogServerPort( _sysLogAuditMessageProcessorConfiguration.port()); - if (MessageFormat.RFC_3164.name().equals( - _sysLogAuditMessageProcessorConfiguration. - messageFormat())) { + if (MessageFormat.RFC_3164.name( + ).equals( + _sysLogAuditMessageProcessorConfiguration.messageFormat() + )) { messageSender.setMessageFormat(MessageFormat.RFC_3164); } - else if (MessageFormat.RFC_5424.name().equals( + else if (MessageFormat.RFC_5424.name( + ).equals( _sysLogAuditMessageProcessorConfiguration. - messageFormat())) { + messageFormat() + )) { messageSender.setMessageFormat(MessageFormat.RFC_5424); } - else if (MessageFormat.RFC_5425.name().equals( + else if (MessageFormat.RFC_5425.name( + ).equals( _sysLogAuditMessageProcessorConfiguration. - messageFormat())) { + messageFormat() + )) { messageSender.setMessageFormat(MessageFormat.RFC_5425); } @@ -112,7 +121,8 @@ else if (MessageFormat.RFC_5425.name().equals( if (_sysLogAuditMessageProcessorConfiguration.enableSSL() && "TCP".equals( _sysLogAuditMessageProcessorConfiguration.protocol())) { - ((TcpSyslogMessageSender) messageSender).setSsl(true); + + ((TcpSyslogMessageSender)messageSender).setSsl(true); } try { diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java index f0a99d1..4e89a8f 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/WebHookAuditMessageProcessor.java @@ -28,16 +28,22 @@ of this software and associated documentation files (the "Software"), to deal import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.security.audit.AuditMessageProcessor; + import it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.WebHookAuditMessageProcessorConfiguration; + import java.io.IOException; + import java.util.Map; + import javax.ws.rs.core.Response; + import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; + import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Modified; @@ -46,132 +52,156 @@ of this software and associated documentation files (the "Software"), to deal * @author Antonio Musarra */ @Component( - configurationPid = - "it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.WebHookAuditMessageProcessorConfiguration", - immediate = true, - property = "eventTypes=" + StringPool.STAR, - service = AuditMessageProcessor.class) + configurationPid = "it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration.WebHookAuditMessageProcessorConfiguration", + immediate = true, property = "eventTypes=" + StringPool.STAR, + service = AuditMessageProcessor.class +) public class WebHookAuditMessageProcessor implements AuditMessageProcessor { - @Override - public void process(AuditMessage auditMessage) { - try { - doProcess(auditMessage); - } catch (Exception e) { - _log.fatal("Unable to process audit message " + auditMessage, e); - } - } - - @Activate - @Modified - protected void activate(Map properties) { - _webHookAuditMessageProcessorConfiguration = - ConfigurableUtil.createConfigurable( - WebHookAuditMessageProcessorConfiguration.class, properties); - - if (_log.isInfoEnabled()) { - _log.info( - "Web Hook Audit Message Processor enabled: " - + _webHookAuditMessageProcessorConfiguration.enabled()); - } - } - - protected void doProcess(AuditMessage auditMessage) throws IOException { - - if (_webHookAuditMessageProcessorConfiguration.enabled()) { - if (_log.isDebugEnabled()) { - _log.debug( - "WebHook Audit Message processor processing " - + "this Audit Message => " - + auditMessage.toJSONObject()); - } - - RequestConfig requestConfig = - RequestConfig.custom() - .setConnectTimeout(_getClientConnectionTimeOut()) - .setSocketTimeout(_getClientReceiveTimeout()) - .build(); - - try (CloseableHttpClient httpClient = - HttpClients.custom().setDefaultRequestConfig(requestConfig).build()) { - - HttpPost httpPost = new HttpPost(_getEndPointUrl()); - - if (Validator.isNotNull(_getApiKey()) - && _getApiKeyLocationType() - .equals(WebHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_HEADER)) { - - httpPost.setHeader(_getApiKeyLocationHeaderName(), _getApiKey()); - } - - if (Validator.isNotNull(_getApiKey()) - && _getApiKeyLocationType() - .equals(WebHookAuditMessageProcessorConfiguration.API_KEY_LOCATION_URL_QUERY)) { - - httpPost.setURI( - httpPost - .getURI() - .resolve(String.format("?%s=%s", _getApiKeyQueryParam(), _getApiKey()))); - } - - StringEntity entity = new StringEntity(auditMessage.toJSONObject().toJSONString()); - entity.setContentType("application/json"); - httpPost.setEntity(entity); - - try (CloseableHttpResponse response = httpClient.execute(httpPost)) { - int statusCode = response.getStatusLine().getStatusCode(); - - if (statusCode != Response.Status.OK.getStatusCode()) { - _log.error( - String.format( - "Error on send Audit Message to Slack: {response code: %s, response content: %s}", - statusCode, response.getEntity().getContent())); - } - - if (_log.isDebugEnabled()) { - _log.debug( - String.format( - "Audit Message sent to Slack: {response code: %s, response content: %s}", - statusCode, response.getEntity().getContent())); - } - } catch (IOException ioException) { - throw ioException; - } - } catch (IOException ioException) { - throw ioException; - } - } - } - - private String _getApiKey() { - return _webHookAuditMessageProcessorConfiguration.apiKey(); - } - - private String _getApiKeyLocationType() { - return _webHookAuditMessageProcessorConfiguration.apiKeyLocationType(); - } - - private String _getApiKeyLocationHeaderName() { - return _webHookAuditMessageProcessorConfiguration.apiKeyLocationHeaderName(); - } - - private String _getApiKeyQueryParam() { - return _webHookAuditMessageProcessorConfiguration.apiKeyQueryParam(); - } - - private int _getClientConnectionTimeOut() { - return _webHookAuditMessageProcessorConfiguration.clientConnectionTimeOut(); - } - - private int _getClientReceiveTimeout() { - return _webHookAuditMessageProcessorConfiguration.clientReceiveTimeout(); - } - - private String _getEndPointUrl() { - return _webHookAuditMessageProcessorConfiguration.endPointUrl(); - } - - private static final Log _log = LogFactoryUtil.getLog(WebHookAuditMessageProcessor.class); - - private WebHookAuditMessageProcessorConfiguration _webHookAuditMessageProcessorConfiguration; -} + @Override + public void process(AuditMessage auditMessage) { + try { + doProcess(auditMessage); + } + catch (Exception e) { + _log.fatal("Unable to process audit message " + auditMessage, e); + } + } + + @Activate + @Modified + protected void activate(Map properties) { + _webHookAuditMessageProcessorConfiguration = + ConfigurableUtil.createConfigurable( + WebHookAuditMessageProcessorConfiguration.class, properties); + + if (_log.isInfoEnabled()) { + _log.info( + "Web Hook Audit Message Processor enabled: " + + _webHookAuditMessageProcessorConfiguration.enabled()); + } + } + + protected void doProcess(AuditMessage auditMessage) throws IOException { + if (_webHookAuditMessageProcessorConfiguration.enabled()) { + if (_log.isDebugEnabled()) { + _log.debug( + "WebHook Audit Message processor processing " + + "this Audit Message => " + auditMessage.toJSONObject()); + } + + RequestConfig requestConfig = RequestConfig.custom( + ).setConnectTimeout( + _getClientConnectionTimeOut() + ).setSocketTimeout( + _getClientReceiveTimeout() + ).build(); + + try (CloseableHttpClient httpClient = HttpClients.custom( + ).setDefaultRequestConfig( + requestConfig + ).build()) { + + HttpPost httpPost = new HttpPost(_getEndPointUrl()); + + if (Validator.isNotNull(_getApiKey()) && + _getApiKeyLocationType().equals( + WebHookAuditMessageProcessorConfiguration. + API_KEY_LOCATION_HEADER)) { + + httpPost.setHeader( + _getApiKeyLocationHeaderName(), _getApiKey()); + } + + if (Validator.isNotNull(_getApiKey()) && + _getApiKeyLocationType().equals( + WebHookAuditMessageProcessorConfiguration. + API_KEY_LOCATION_URL_QUERY)) { + + httpPost.setURI( + httpPost.getURI( + ).resolve( + String.format( + "?%s=%s", _getApiKeyQueryParam(), _getApiKey()) + )); + } + + StringEntity entity = new StringEntity( + auditMessage.toJSONObject( + ).toJSONString()); + + entity.setContentType("application/json"); + httpPost.setEntity(entity); + + try (CloseableHttpResponse response = httpClient.execute( + httpPost)) { + + int statusCode = response.getStatusLine( + ).getStatusCode(); + + if (statusCode != Response.Status.OK.getStatusCode()) { + _log.error( + String.format( + "Error on send Audit Message to Slack: {response code: %s, response content: %s}", + statusCode, + response.getEntity( + ).getContent())); + } + + if (_log.isDebugEnabled()) { + _log.debug( + String.format( + "Audit Message sent to Slack: {response code: %s, response content: %s}", + statusCode, + response.getEntity( + ).getContent())); + } + } + catch (IOException ioException) { + throw ioException; + } + } + catch (IOException ioException) { + throw ioException; + } + } + } + + private String _getApiKey() { + return _webHookAuditMessageProcessorConfiguration.apiKey(); + } + + private String _getApiKeyLocationHeaderName() { + return _webHookAuditMessageProcessorConfiguration. + apiKeyLocationHeaderName(); + } + + private String _getApiKeyLocationType() { + return _webHookAuditMessageProcessorConfiguration.apiKeyLocationType(); + } + + private String _getApiKeyQueryParam() { + return _webHookAuditMessageProcessorConfiguration.apiKeyQueryParam(); + } + + private int _getClientConnectionTimeOut() { + return _webHookAuditMessageProcessorConfiguration. + clientConnectionTimeOut(); + } + + private int _getClientReceiveTimeout() { + return _webHookAuditMessageProcessorConfiguration. + clientReceiveTimeout(); + } + + private String _getEndPointUrl() { + return _webHookAuditMessageProcessorConfiguration.endPointUrl(); + } + + private static final Log _log = LogFactoryUtil.getLog( + WebHookAuditMessageProcessor.class); + + private WebHookAuditMessageProcessorConfiguration + _webHookAuditMessageProcessorConfiguration; + +} \ No newline at end of file diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/SlackAuditMessageProcessorConfiguration.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/SlackAuditMessageProcessorConfiguration.java index 1887c62..f8cf10a 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/SlackAuditMessageProcessorConfiguration.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/SlackAuditMessageProcessorConfiguration.java @@ -20,6 +20,7 @@ of this software and associated documentation files (the "Software"), to deal package it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration; import aQute.bnd.annotation.metatype.Meta; + import com.liferay.portal.configuration.metatype.annotations.ExtendedObjectClassDefinition; /** @@ -40,9 +41,9 @@ public interface SlackAuditMessageProcessorConfiguration { public boolean enabled(); @Meta.AD( - deflt = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX", - description = "slack-audit-message-processor-web-hook-url-help", - name = "slack-audit-message-processor-web-hook-url", required = false + deflt = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX", + description = "slack-audit-message-processor-web-hook-url-help", + name = "slack-audit-message-processor-web-hook-url", required = false ) public String webHookUrl(); diff --git a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java index 7d84915..30abc5d 100644 --- a/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java +++ b/portal-security-audit-message-processor/src/main/java/it/dontesta/labs/liferay/portal/security/audit/message/processor/configuration/WebHookAuditMessageProcessorConfiguration.java @@ -20,6 +20,7 @@ of this software and associated documentation files (the "Software"), to deal package it.dontesta.labs.liferay.portal.security.audit.message.processor.configuration; import aQute.bnd.annotation.metatype.Meta; + import com.liferay.portal.configuration.metatype.annotations.ExtendedObjectClassDefinition; /** @@ -48,48 +49,51 @@ public interface WebHookAuditMessageProcessorConfiguration { public String endPointUrl(); @Meta.AD( - deflt = "60000", description = "webhook-client-connection-timeout-description", - name = "webhook-client-connection-timeout-name", required = false + deflt = "60000", + description = "webhook-client-connection-timeout-description", + name = "webhook-client-connection-timeout-name", required = false ) public int clientConnectionTimeOut(); @Meta.AD( - deflt = "60000", description = "webhook-client-receive-timeout-description", - name = "webhook-client-receive-timeout-name", required = false + deflt = "60000", + description = "webhook-client-receive-timeout-description", + name = "webhook-client-receive-timeout-name", required = false ) public int clientReceiveTimeout(); @Meta.AD( - deflt = "", description = "webhook-api-key-description", - name = "webhook-api-key-name", required = false, - type = Meta.Type.Password + deflt = "", description = "webhook-api-key-description", + name = "webhook-api-key-name", required = false, + type = Meta.Type.Password ) public String apiKey(); @Meta.AD( - deflt = API_KEY_LOCATION_HEADER, description = "webhook-api-key-location-description", - name = "webhook-api-key-location-name", - optionLabels = { - "HTTP Header", - "HTTP URL Query Parameter" - }, - optionValues = {API_KEY_LOCATION_HEADER, API_KEY_LOCATION_URL_QUERY}, required = false + deflt = API_KEY_LOCATION_HEADER, + description = "webhook-api-key-location-description", + name = "webhook-api-key-location-name", + optionLabels = {"HTTP Header", "HTTP URL Query Parameter"}, + optionValues = {API_KEY_LOCATION_HEADER, API_KEY_LOCATION_URL_QUERY}, + required = false ) public String apiKeyLocationType(); @Meta.AD( - deflt = "", description = "webhook-api-key-location-header-name-description", - name = "webhook-api-key-location-header-name-name", - required = false + deflt = "", + description = "webhook-api-key-location-header-name-description", + name = "webhook-api-key-location-header-name-name", required = false ) public String apiKeyLocationHeaderName(); @Meta.AD( - deflt = "", description = "webhook-api-key-location-query-description", - name = "webhook-api-key-location-query-name", required = false + deflt = "", description = "webhook-api-key-location-query-description", + name = "webhook-api-key-location-query-name", required = false ) public String apiKeyQueryParam(); public String API_KEY_LOCATION_HEADER = "header"; + public String API_KEY_LOCATION_URL_QUERY = "urlQuery"; -} + +} \ No newline at end of file From 5e6c220860306427bf90de966969c172fdc747fd Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Wed, 16 Aug 2023 01:00:05 +0200 Subject: [PATCH 06/13] Increment the bundle version to 1.4.0-SNAPSHOT --- portal-security-audit-message-processor/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portal-security-audit-message-processor/build.gradle b/portal-security-audit-message-processor/build.gradle index e30d12e..7754892 100644 --- a/portal-security-audit-message-processor/build.gradle +++ b/portal-security-audit-message-processor/build.gradle @@ -9,7 +9,7 @@ dependencies { compileOnly group: "javax.mail", name: "mail", version: "1.4" } -version = "1.3.0-SNAPSHOT" +version = "1.4.0-SNAPSHOT" jar { bnd ('Bundle-Version': project.version) From d24a79932167c70dd3be5d64188fcbcf9a63a63b Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Thu, 17 Aug 2023 14:47:38 +0200 Subject: [PATCH 07/13] Added the liferay.workspace.product --- gradle.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle.properties b/gradle.properties index 2840c81..1607aee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,2 @@ project.path.prefix=:apps:portal-security-audit +liferay.workspace.product=portal-7.4-ga85 From 39f871262653e501ba421c964db7da27bc13e92e Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Thu, 17 Aug 2023 14:48:29 +0200 Subject: [PATCH 08/13] Added the Liferay Workspace Gradle Plugin --- settings.gradle | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/settings.gradle b/settings.gradle index 06368f5..afca8a7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,20 @@ +buildscript { + dependencies { + classpath "com.github.docker-java:docker-java:3.3.2" + classpath "com.github.docker-java:docker-java-transport-httpclient5:3.3.2" + classpath group: "com.liferay", name: "com.liferay.gradle.plugins.workspace", version: "8.0.1" + } + + repositories { + maven { + url "https://repository-cdn.liferay.com/nexus/content/groups/public" + } + } +} + include( 'portal-security-audit-capture-events', 'portal-security-audit-message-processor' ) + +apply plugin: "com.liferay.workspace" From f5c577248ce6a5ab36c3201f781166cd98785c80 Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Thu, 17 Aug 2023 14:50:24 +0200 Subject: [PATCH 09/13] Added the branch and rules for Docker --- .github/workflows/build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 47d4682..749f34e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,10 @@ -name: SonarCloud +name: Build, analyze and build Docker image on: push: branches: - master - feature/migrazione-liferay-74 + - feature/webhook-audit-message-processor pull_request: types: [opened, synchronize, reopened] jobs: @@ -35,4 +36,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: ./gradlew build sonar --info \ No newline at end of file + run: ./gradlew build sonar --info + - name: Build the Docker image + run: ./gradlew buildDockerImage \ No newline at end of file From 60c55ab0d9785986ae76a6deeadc0af35895425f Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Thu, 17 Aug 2023 16:17:40 +0200 Subject: [PATCH 10/13] Added rules for Docker push on Docker Hub --- .github/workflows/build.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 749f34e..778ed79 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build, analyze and build Docker image +name: Build on: push: branches: @@ -9,7 +9,7 @@ on: types: [opened, synchronize, reopened] jobs: build: - name: Build and analyze + name: Build, analyze, build Docker image and push to Docker Hub runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -38,4 +38,13 @@ jobs: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: ./gradlew build sonar --info - name: Build the Docker image - run: ./gradlew buildDockerImage \ No newline at end of file + run: ./gradlew buildDockerImage + - name: Log in to Docker Hub + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Change the Docker Tag image + run: docker tag liferay-portal-security-audit-liferay:liferay-portal-security-audit-liferay:7.4.3.85-ga85 ${{ secrets.DOCKER_USERNAME }}/liferay-portal-security-audit-liferay:1.5.0_7.4.3.85-ga85 + - name: Push the Docker image + run: docker push ${{ secrets.DOCKER_USERNAME }}/liferay-portal-security-audit-liferay:1.5.0_7.4.3.85-ga85 From 8a8d806790a0e184275017e49239271c8ffe2c53 Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Thu, 17 Aug 2023 16:22:30 +0200 Subject: [PATCH 11/13] Fixed the command docker tag --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 778ed79..2003427 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,6 +45,6 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Change the Docker Tag image - run: docker tag liferay-portal-security-audit-liferay:liferay-portal-security-audit-liferay:7.4.3.85-ga85 ${{ secrets.DOCKER_USERNAME }}/liferay-portal-security-audit-liferay:1.5.0_7.4.3.85-ga85 + run: docker tag liferay-portal-security-audit-liferay:7.4.3.85-ga85 ${{ secrets.DOCKER_USERNAME }}/liferay-portal-security-audit:1.5.0_7.4.3.85-ga85 - name: Push the Docker image - run: docker push ${{ secrets.DOCKER_USERNAME }}/liferay-portal-security-audit-liferay:1.5.0_7.4.3.85-ga85 + run: docker push ${{ secrets.DOCKER_USERNAME }}/liferay-portal-security-audit:1.5.0_7.4.3.85-ga85 From 53b8287c25e1033660eb3af07946ac1b79733d60 Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Thu, 17 Aug 2023 17:10:33 +0200 Subject: [PATCH 12/13] Remove feature branches --- .github/workflows/build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2003427..634b4bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,8 +3,6 @@ on: push: branches: - master - - feature/migrazione-liferay-74 - - feature/webhook-audit-message-processor pull_request: types: [opened, synchronize, reopened] jobs: From 378421b413361430316d843a2fab55ddfa1c519a Mon Sep 17 00:00:00 2001 From: Antonio Musarra Date: Thu, 17 Aug 2023 17:11:29 +0200 Subject: [PATCH 13/13] Updated docs for release 1.5.0 --- CHANGELOG.markdown | 6 + README.md | 136 +++++++++++++++++- ...ration_webhook_message_audit_processor.jpg | Bin 0 -> 175846 bytes ..._processor_using_webhooksite_service_1.jpg | Bin 0 -> 167675 bytes 4 files changed, 138 insertions(+), 4 deletions(-) create mode 100644 docs/images/osgi_configuration_webhook_message_audit_processor.jpg create mode 100644 docs/images/webhook_messagge_processor_using_webhooksite_service_1.jpg diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 3dd36fe..41c87d0 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [1.5.0] - 2023-08-17 +### Added +- Added new Web Hook Audit Message Processor +- Added the Liferay Workspace support for Gradle +- Build and push the Docker image to Docker Hub + ## [1.4.0] - 2023-07-25 ### Added - Added support for Liferay 7.4 GA85 diff --git a/README.md b/README.md index 816d12a..de6c371 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ This project refers to the ebook [Liferay Portal Security Audit](https://goo.gl/AC8VRo) published by [Antonio Musarra's Blog](https://www.dontesta.it) on the Amazon Kindle Store. +## Introduction At the beginning of the article the source code of Liferay Portal Security Audit (freely available on GitHub) was examined. Later, in the article we also discussed how to implement the OSGi components @@ -40,6 +41,7 @@ The module **portal-security-message-processor** contains the follow OSGi compon 3. Cloud AMQP Audit Message Processor 4. Syslog Audit Message Processor (from version 1.3.0) 5. Slack Audit Message Processor (from version 1.4.0) +6. Web Hook Audit Message Processor (from version 1.5.0) For more information about the *Cloud AMQP Audit Message Processor* I advise you to read [CloudAMQP Audit Message Processor for Liferay 7/DXP](https://dzone.com/articles/liferay-7-cloud-amqp-audit-message-processor) @@ -51,16 +53,66 @@ from the framework at the base of the Liferay Portal Security Audit. Shows the steps necessary to obtain and install the three modules shown in Table 1. +## Quick Start +Before to start, you need to check these prerequisites: +1. JDK 11 (for example [AdoptOpenJDK](https://adoptopenjdk.net/) or [Amazon Corretto](https://aws.amazon.com/it/corretto/)) +2. Docker >= 19 (for example [Docker Desktop](https://www.docker.com/products/docker-desktop)) + +Since version 1.5.0 of the project, you can use quickly using the Docker image +that contains the Audit bundles already installed. The following command will run the Docker image. + +``` +$ docker run -it --rm -m 8g -p 8080:8080 -p 11311:11311 amusarra/liferay-portal-security-audit:1.5.0_7.4.3.85-ga85 +``` +Console 1 - Run the Docker image from pull image from Docker Hub + +At the end of the startup of the Liferay instance, you will see the following output on the console +that show the deployment of the two Audit bundles. + +``` +2023-08-17 14:47:13.538 INFO [main][ModuleFrameworkImpl:281] Navigate to Control Panel > System > Gogo Shell and enter "lb" to see all bundles + + __ ____________________ _____ __ + / / / _/ ____/ ____/ __ \/ \ \/ / + / / / // /_ / __/ / /_/ / /| |\ / + / /____/ // __/ / /___/ _, _/ ___ |/ / +/_____/___/_/ /_____/_/ |_/_/ |_/_/ + +Starting Liferay Community Edition Portal 7.4.3.85 CE GA85 (Cavanaugh / Build 7403 / July 14, 2023) + +2023-08-17 14:47:14.658 INFO [main][StartupHelperUtil:85] There are no patches installed +2023-08-17 14:47:14.757 INFO [main][LoggingTimer:83] Starting com.liferay.portal.events.StartupHelperUtil#initResourceActions +2023-08-17 14:47:14.777 INFO [main][LoggingTimer:44] Completed com.liferay.portal.events.StartupHelperUtil#initResourceActions in 20 ms +2023-08-17 14:47:15.073 INFO [main][AutoDeployDir:161] Auto deploy scanner started for /opt/liferay/deploy +... +17-Aug-2023 14:47:22.227 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [31063] milliseconds +2023-08-17 14:47:28.079 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:221] Processing it.dontesta.labs.liferay.portal.security.audit.event-1.2.0-SNAPSHOT.jar +2023-08-17 14:47:28.098 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:221] Processing it.dontesta.labs.liferay.portal.security.audit.message.processor-1.4.0-SNAPSHOT.jar +2023-08-17 14:47:33.751 INFO [fileinstall-directory-watcher][BundleStartStopLogger:77] STARTED it.dontesta.labs.liferay.portal.security.audit.event_1.2.0.SNAPSHOT [1609] +2023-08-17 14:47:33.776 INFO [fileinstall-directory-watcher][CloudAMQPAuditMessageProcessor:78] Cloud AMQP Audit Message Processor enabled: false +2023-08-17 14:47:33.782 INFO [fileinstall-directory-watcher][SlackAuditMessageProcessor:74] Slack Audit Message Processor enabled: false +2023-08-17 14:47:33.790 INFO [fileinstall-directory-watcher][WebHookAuditMessageProcessor:79] Web Hook Audit Message Processor enabled: false +2023-08-17 14:47:33.791 INFO [fileinstall-directory-watcher][BundleStartStopLogger:77] STARTED it.dontesta.labs.liferay.portal.security.audit.message.processor_1.4.0.SNAPSHOT +``` +Log 1 - Output of the command `docker run` that show the log of the Liferay instance + + +If you want to use a local instances of Liferay, you need to download the +Liferay Portal Community Edition 7.4 GA85 bundle from the [Liferay Portal Community Edition 7.4 GA85](https://sourceforge.net/projects/lportal/files/Liferay%20Portal/7.4.3%20GA5/liferay-ce-portal-tomcat-7.4.3-ga5-20210812065309714.tar.gz/download) + +Using the following command to build the project and deploy the bundles on the +local Liferay instance. + ``` $ git clone https://github.com/amusarra/liferay-portal-security-audit.git $ cd liferay-portal-security-audit $ ./gradlew clean deploy $ cp ../bundles/osgi/modules/*.jar $LIFERAY_HOME/deploy/ ``` -Console 1 - Steps to obtain and install the modules +Console 2 - Steps to obtain and install the modules In the case `$LIFERAY_HOME` is set on this directory -`/Users/amusarra/dev/liferay/liferay-ce-portal-7.2.1-ga2` +where you have extracted the Liferay Portal Community Edition bundle. Verify the correct deployment of the two bundles via the Liferay log file or through the Gogo Shell using the `lb` command, making sure that the status is @@ -70,14 +122,68 @@ From Liferay version 7.1 GA1 access to the GogoShell via telnet has been disable To re-enable access, you need to set the portal in developer mode. Form more info read this [setting developer mode for your server using portal-developer.properties](https://help.liferay.com/hc/en-us/articles/360018162091-Using-Developer-Mode-with-Themes) -You can use Docker to run a Liferay 7.4 GA85 instance and deploy the bundles. +You can use Docker to run a Liferay instance and deploy the bundles. +This way you don't need to download the Liferay Portal Community Edition bundle +and more simply you can run the Liferay instance. + Using the following Docker command. Form more information about Liferay Docker, read this [Starting with a Docker Image](https://learn.liferay.com/w/dxp/getting-started/starting-with-a-docker-image?p_l_back_url=%2Fsearch%3Fq%3DDocker&highlight=Docker) ``` $ docker run -it -m 8g -p 8080:8080 -p 11311:11311 -v $(pwd):/mnt/liferay liferay/portal:7.4.3.85-ga85 ``` -Console 2 - Run Liferay 7.4 GA85 as container +Console 3 - Run Liferay 7.4 GA85 as container + +From version 1.5.0 of the project, you can use the Liferay Workspace to build +the Docker image that contains the Audit bundles. The following command will +build the Docker image. + +``` +$ ./gradlew buildDockerImage +``` +Console 4 - Build the Docker image + +If below the `buildDockerImage` task you see the following output, you can run +the Docker image. + +``` +> Task :buildDockerImage +Building image using context '/Users/amusarra/dev/github/amusarra/liferay-portal-security-audit/build/docker'. +Using images 'liferay-portal-security-audit-liferay:7.4.3.85-ga85'. +Step 1/8 : FROM liferay/portal:7.4.3.85-ga85 + ---> 8b403b9ef4c4 +Step 2/8 : ENV LIFERAY_WORKSPACE_ENVIRONMENT=local + ---> Running in 639f4187ed24 +Removing intermediate container 639f4187ed24 + ---> c007fb2a701e +Step 3/8 : COPY --chown=liferay:liferay client-extensions /home/liferay/osgi/client-extensions + ---> 1acce10fa8a0 +Step 4/8 : COPY --chown=liferay:liferay deploy /mnt/liferay/deploy + ---> e956d29ddcee +Step 5/8 : COPY --chown=liferay:liferay patching /mnt/liferay/patching + ---> 85a90bf0310d +Step 6/8 : COPY --chown=liferay:liferay scripts /mnt/liferay/scripts + ---> e896b7bb77ad +Step 7/8 : COPY --chown=liferay:liferay configs /home/liferay/configs + ---> 26bd12884e6f +Step 8/8 : COPY --chown=liferay:liferay 100_liferay_image_setup.sh /usr/local/liferay/scripts/pre-configure/100_liferay_image_setup.sh + ---> a76d8d6b9db0 +Successfully built a76d8d6b9db0 +Successfully tagged liferay-portal-security-audit-liferay:7.4.3.85-ga85 +Created image with ID 'a76d8d6b9db0'. +``` +Console 5 - Output of the `buildDockerImage` task + +For run the Docker image, you can use the following command. + +``` +$ docker run -it --rm -m 8g -p 8080:8080 -p 11311:11311 liferay-portal-security-audit-liferay:7.4.3.85-ga85 +``` +Console 6 - Run the Docker image + +Using this Docker image, you can have a Liferay instance with the Audit bundles already installed. + +## Configuration of the Audit bundles ``` $ telnet localhost 11311 @@ -138,6 +244,18 @@ Figure 7. OSGi Configuration of the Slack Message Audit Processor. The Slack Audit Message Processor use the [Slack Web API](https://api.slack.com/web) to send messages to Slack using the [Incoming Webhooks](https://api.slack.com/messaging/webhooks) feature. +![Liferay Portal Security Audit - Web Hook Message Processor Configuration](docs/images/osgi_configuration_webhook_message_audit_processor.jpg) + +Figure 8. OSGi Configuration of the Web Hook Message Audit Processor. + +For testing the Web Hook Audit Message Processor, you can configure this message processor +with the [Webhook.site](https://webhook.site/) service. This service allows you to create +a unique URL to which you can send HTTP requests and view the entire request payload. + +![Liferay Portal Security Audit - View Audit Message on Webhook.site](docs/images/webhook_messagge_processor_using_webhooksite_service_1.jpg) + +Figure 9. View Audit Message send by Liferay to the Webhook.site service. + If you enable Audit, then the two message processors and finally the Scheduler Helper Engine, on Liferay log files, you will see the audit messages (of the running jobs, of the login processes, etc.). If you were to fail the login @@ -189,6 +307,16 @@ Figure 8. Email send by Login Failure Audit Message Processor Figure 9. Login Failure Audit Message Processor Slack Message +## Additional Resources + +1. [What is a security audit?](https://www.techtarget.com/searchcio/definition/security-audit) +2. [NIST Security Audit: Definition, Importance and 3 Different Frameworks](https://www.getastra.com/blog/security-audit/nist-security-audit/) +3. [theRedCode - Docker](https://www.theredcode.it/search/?query=docker) +4. [Mauro Cicolella - Pillole di Docker](https://www.youtube.com/watch?v=Xea_9GYFpaA&list=PLCbSCJEIR6CpDJw4MawjHlgbsP3IG376e) +5. [Vincenzo Racca - Docker](https://www.vincenzoracca.com/blog/container/docker/) +6. [Book (Serena Sensini) - Docker: Sviluppare e rilasciare software tramite container](https://amzn.to/3YHqgSW) + + ## Team Tools [![alt tag](http://pylonsproject.org/img/logo-jetbrains.png)](https://www.jetbrains.com/?from=LiferayPortalSecurityAudit) diff --git a/docs/images/osgi_configuration_webhook_message_audit_processor.jpg b/docs/images/osgi_configuration_webhook_message_audit_processor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b7dc3cf202ebfb6487d7f8a11c5a95dbb139173 GIT binary patch literal 175846 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%0D2ZX^ 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 literal 0 HcmV?d00001 diff --git a/docs/images/webhook_messagge_processor_using_webhooksite_service_1.jpg b/docs/images/webhook_messagge_processor_using_webhooksite_service_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd7d5c4a5f282ebc553744598fa5e2a74b31593e GIT binary patch literal 167675 zcmeFZ2UrwOwl~~lBq~YrAW zwwA6IKtcilI>aAvh6LO+VXjU9psx>H0RVs+ASGb}$cPjP@dre^0_1^lD+g)0;3-^o(^ ze1Bx|gI?!1(>LPN@bq!yQxMdUFZL|N(KZ3NCwDBdipp^ z$y~d3O-fo;N>)~am_x!h(8JFbCgI^L@b4wua`d(LarN?Z_4MHTU81d>r@!BIets$9 z9i;y47Qe|q*Hw-0U*TU8_?HC!C4qlQ;9nB>mjwR*CxQR4b{sv3CQbm+mI2PTfvZMD zQ^}KPFM09FNlF7(Z|drk|2Dyh;SXBq5AysN&-1B7pqzX?^xW$$+|7_P6zO?g4GoBq zv7wgk9nC*1JW{~c%j?nai`_l^e2lek@|l@i@KLQ2jl2uMIRFG)u(kK~x?yB==XaU^ zzW<~AKX0%Tzs*1Z7?t>4)>)2*>eBWb3Q5t0^)YSl#y@BKUlTMAM6-x^3Qvre?Y(^b zh*qT_kv0nO^ZHE_Bf#QAtQ3)s`As|jiGKT=w)+$P<&Qk~jWvjQ+KKdedly>=B0WZ= z#qIu6y7Pac-5>e?zVGkwyY_UB9uMyQ-V-A?pb5wV@_+|7UP}!BA-DfX3n9u`jmQU( z_8)2Y*8rgC0g+wL|40*f4*+Z~0MIDnW$R=6M{&P5Bv^7^Cpp}=l@ z0H{O(;B@lr?4;)G?6iPrqfY}sGxn?*xIj(DL#{|h!Vi#MAR)Uza@J04bby3{nub=Ge)!8`3%#r z3CbgdFuz&*gR{SnvGD&_oc)=x|KMu|&>%j^zXK`pPew{gY$`HhAg3h%9Vn?N{|Hq7 z7O4LS=Y9v;KZi47Atb-ABqO6B{%NTxssDWL?iL<*~XVU;383|FD$Swe2fFQE= zJ`T8CYK9X*%b_N>IWSCJNW&I=n$31)>^p=%)a~mf?YX2MNc;Gpimx=e$K*Ke^ zZIOR>m*KhDNXZ^xLQ=oTy4=W(Mm&StON=)?^{fA8qQ~VbC22B1^|sBOO{oV-GQ+v# z;Ty@pAx|x?zrKo;{J8hsf~avYO%FJ4OJx&_~M&1CufaQhJ(A2&$D z$PxzbsLA5^iYYEg3y_R=zB2O@lE*MHeESUW=QUCkQ*sn!R_ESk^)(o+qPI7S&>eZ0 zys@*P8O3gEyr(Ph;?t*3=bY@+0lJs>pqz@O$Zd<&8 zBq^_+pI7G_qI75d_5o(ueryn1hf-1A#5SjAU4OcQ4tJfuCHfc(d+`(6WNwz`KQ;GH3rP% zN+oBMU%c}~v{;Am%x`Ab)NCCV;^oH~r~Jnz`i8n>%wjHFqFdmWZV}QQtU_GR{xZ0I zF9+6y)xn71nR`(@J=2;+ZUXm*MbbkPx9Nt!I(!7wcBckrXey{1Qa!DPU`8bM>9`2$-|UDLWLw4tAQ41(7*4 zRg70{QyB)NvqT6*y_4wgsLc9g2$Eii?;Y$DJK`ihdcnB8(dO)`(x;up`>xZ!MqC1t zK=tB5$?U9_r`ZZgi6c#U*)txVjEELxHAeV7Tt0@V_qVEXO_-@XYpFIh(Az%wnQJDu zT-txSPyho z{E0HoWEAU$S?PGWC=%PCjhyLy3nz+v)HcoVDdWw<(pRcp24Z9jt6P0=ZS+0l{8q)H z*^UIna_nH96Bjo^rL)s#VIcl6jHCO;YMB+=B`sQq3mG^$Z02bdT<_#2-V?psSuCIn zq3=h=6cajJ(kPeNQ0Jx>`s*Daa`klhZ!A7RlK~i70u2wUlrvpYU#C)zAY;?(gunHMjtg)_%)Yg4mFH z1z|SPD&k&c{kJ%#8%#QwUgq+bhejW-{xtkPfSYfdFYD?uoRRB*RNT*E9256H^}Iip z%PVPp+cZhRaPH2+)I*J>STe1q_WPtdf?sf*km;g@ny2r|%84Cn`Apkd-9UEHyp@d` z{f9Z7I(V<_OpAOOnMY(4$16GMlc{x^q7Q`mrgQIc*&hhQyo@+QhI97i)1wTM=hkQQ+Dh8V&Ja`*i^kT8{VY?bLT4Ep#n&cUiny0}1UbBqN-!x3M~2ew(rx6&v!kh6EiO-|KKU*!OWf%brzV zPh?GdUmOc*SONoSWDbgPdIqT$v5?J*3&z55P*C`R6qjXHLLovj?>H>3)1pTM23!~q|LQa~`00#GmU*hh6;rw=cMpjkrlH z(jYY<5v6cX+%t?)rwt`xWQZW(`gq!LC86$(I)>H-sp(&5ChNQOGEw}=f?O9LNFUFC z8mlS-MI%~yuQuV#eKDMiokp3rckW}zEpEFi`YP=Rgz=hXpdjMA_9DHt?t>zrjHW8j zmP{pV$mzQVJ@m_44bT%FNm&2qog0tCQGyxL9qJS*4m9lmEvY(>*pG(mCnj*A@dgs) z89;^)zAcmPMx4k+v}Sc z){Y7J`4Cvh^yrD*u*YJoA!GaCP z{3Qgmp8o8ajy&BS&vP1=6nYRh_n^v^5XklL$n=^O+!;N&nAnbZT4z&~gS&znenhm~ zgJ*(g)kcltOe*J>dD6W4KHcksvjY2rH>_2`RZ?9F7=w?f%~MAO+IY8VF_kr`ZHb+& zf|{@hO^(V8k(zTCfKE2)^Q#`RE@W#wo>+aNdaUzJsEOd(jI9OQmC)ucN}L|AMN;0^ zR#bhvsAN>x)BPbWNlb$ykR!sqo9vo$>DHTt4`+b$W>cIE8-{hF{?j^E>v&uIU6dZw zu7+37a`56?sdxT{b4TTt)ZU$1zBcBzCw3vjCY&WX#hFheORBh*#(DMX#VkvOv6tI* zuh(W=WE&B5D=Shz|LICtYl(EhXn8#QRf+P+lt4ZD>?QwbFKB+CF{RH<>3N zS|OQP9zVSgVec3#n{4MJniv{%(M{&#Ap&cPoYncIKL_2BCo1KfyC#-g<`ye+y|T9? zmURVdJS&-|S~QJerAca3a9})yFJx3XpgEB_vgSmwP@J<({F5;kl(heG>jNP*vqi7s z%)CXaj8y`NFal<8yomEw6xV3%;;5vs3r{k&b`T#@B}KUvSbAa=Rt@dKdpPPD-F zz|YX8glrZm)q5yUPQ~|0ZXwcD8NH?%v}Tu1ZYfc4-mShmZq#jb(WSM*vD{##n`-0R z>edNT4>Zjn6;s%nAsm~Bd)cDgSxA}o;kBe+ri$qZQk2j4LNZuXC+_jJt4vvotSg6& z?6`A_wDi{e73jts)Hk_if?(q~SDQ?aeC_g6%Qxo)m?)lG@yYJW&^J8ahh)t$;f^rQ z&2yCXICtce`<5;>1?XN6_k|bP+td_Q&E~v{Nw;2v=82KKV7Cob=)!@!<|NRxZt+O5 zrg9!Q;kK)IoBqR5Y`O@FID72^qphL zM2a?g1=VjVW=U1-ThG6=G}rtPoJP_LC_7MmXWb8IgFLfQ#p!;S-B6>d*U`!$scNXH z4Hv7oe9azipK)#&mE=Rh^=e^H8akxCeGl^)m%P|s4w>rq@M|B==+Rf~|An+=2{&7? z6n;8$MKDwu#i!wLAi@W_50k=j-~v$ePG>;tAwjJErD?ohDSvAZms5kz0gp26#8+v3 zZjw$<$@+mO{PX3`E!H3{!x$SOj7{koKt1qDUeqtU!WF|c#cTonfi;M~nxGi2 zr}VRDrzBVGFiLfI@eJ6SN1p*m&xoq)!Oe4gjpI9T1yo>z=%?c442#Y~Z>`;xnXQa_ z%Mr{aAUc?;GwUKj{Pew=H0*~yDCWRcTu#5R?^41vwQbD0uK43;EZ&_TS-izZNVsi{ zb_74FPEf_EN#nIJ1#gO6d4)}vv`39+INMCZSM(k6j=zSg&p5~l~UgP^^xEYK# zfq9!5<>S_uF&`~Z9<84#5YIM!{rUqw&F6fHZdXF@e`Fk3=tv0a_r$)(&7(l)Y9bW$ zEd*S!n5oJnbBi`Vcm7xUJWbQ~vCew}FGyeP?o9#|GynjC;#RRHIP20)wJW1|EMksE_xtwX<(%dCg&sW}CDeKPgN8=Y_FS=BIhU@S`7`F=17LaHke2ALJglP+C zD(d($q2=5-IeNa!UXU&e@iKfQH!lYhbq znM--tvhC~gYt!UqJ<@peX~X1Ba&xNS0<099fNNU3F1+71-I-4p;T~EhE(f`4ZEZDg zts5LHpeNsFqwSmOWS^|7nrtXIL=kixjI~E6L}G+DJ0bK^TgLkj##I%9)naZ1uUcyx z%)p8+Y|xcyh&wPgaIx;wKSnUBU4jvzlX&?vAO^v>YiTec|CO$~h9+j2J-l$)-|^uM zz9?gAd6HucN@}WR;b5+^@e*1x%?+EyFzgSeoR75wIex`x7R{_<51F|iR#v#3yA1x- zo;326o*B!FyGML@P~2Xdjr`WPdxrgIrS8Qoi~OS)y1MeDw14-$qD_85&^uj7Gr-SiOTE`VuIU|N9Kqdio$hgJ zUGca6O2rAqq?x&OY`_bC*Er+xR8gcKQ|srOJyhu%ouO*)#?FXya7r9kr!u&;G*(T# zF1kHLdfe0R8^z~GCQv?!!V`Jp*^1jG;eoIz&ad$yP9pgpxI^qcbW|p~w|SmjK}9#O zGW+(>XTjlL?5V*g+gjMbw(pnePx6xNWjb;8;_vvw!l6t37qRuHIezR;df@Yc6}|p} z!9275#Olpf_2W9)Qzx0)_bn@%+HL(-vl=F^6^0DYbNa=E3>IuA(%EZA-=w(|P1-qa zsLToyVbT;CC#SW3nT}ka|8{;LJKy9B*fVS$ZXabC_&)nVby>#F&KzNHQ-5?@Tyj^^-C^H0 z6&37apK6kz&J$3^)$G|o@+ph|v?xRwmbvV%VG_<#8(~zFp`x!gG9s$=DO{z-FN(z^ z)d7&tJxuh*=G5WZi@?T1y<9^K`HLrq(@YK0RyEW?wky?=|$De5g*Z z&N8`YfL4?TW)p|-a-_JhMyzCf;2 zb#5edR#oqWY|Z8p#`=|VS4^>dysuH?aO7!z#*Yps%2M$Q4UZKuv){TE=e$Jv!xdhL z$u79h9ucPlAXrVaYmqimuc@5g*YM5lZ@&$vX@mO>2<7UZuOR7OZQQ(7TZ)LP!EKU4 z3s>v}=TD>W1>YjNe5w`0Hy~S`CY9!^d+?d3kx91&`!;BvM}&nk=BS=K5hV-|RO^Pt z<(oL6w{UOTFNSc8ta4h}SfwexuvD?CRl1Z+CWw2mqGfz;`UWdw6vB})%trEM+nn%l zgCl}1qSVaI$Fd7SpC7qBj!joR|C-;mBy~y^c{NF?_r>{AaZPv_67u{EV8Sy^bHVJ5 zPejpkg^Fc`AuA$#o*ryM$%dH>+pW}{lRfbbBrh{}sX~SkYMdcvm_cS-I)gND&)tPWV$+26yc}#*r@II zBGQD_Uo&xE{He}I_UpYTJ)9IB9i~dBCNd4XGT3^Y7Va)pCGV2QE1akc-6_g?MI_FBM{IQR$tCw4V#a*y7LdDl0)@#f1 zA>{JbQUxo{w38Q%@k~UN6U{O4`V$CNGMh5R`J^(jr?Pr54b)v!@3FYAXm%)EU8*Jx z*KEqZ_qBd3ps_5^V$C%AdrV-)leDRJ8Lw=~!Sc5K67H?#1WP`U-Fo(yb_+=CXlv7X zf0Z>)wV9Ha^pWpx4;HL_PNL1+`_AoE+`c?4n4T;|t?Qw#)POkQ!VBXx$>)@CNvKR+ zxKyBGx_beS;>0v|tN)|Ln*uqO+C3WeT#B6J8=_!gDusRJkZ~~2n|3s={_aGYQA4z* zAp;6KGQGheUps*G6qjuu?x_#8vo=p}w9{Rw(*?UjrX^8$HzkX2ueQo8ZYA~R{ZOTT zq<5M=!d4?A_$8LZKIy!22@B6B0N5%4JDdUZ^z``P0$kD#T*kH#TH$sv{?U*gD>hL& z{IY5~wS$uW^>odb4DaoeUMXOBp2!suh5`aWfM*Dkx!#BV54dbg<<*!{$r7?QZ}DJ! zRh+b}QmVPIvz_^{cXMg_2cWbP?69uJ;hF(@b}-LlX?EkodvnXR%Zj5Q-$Ri)2lT~)%lTlUXGL10?n`N3nA^y%>>9%)a|RambZ++N0n@3v$Jzsc_>w>V9~e*9?TR`FwMP|Vs*Hdb}h4$W4Tq_tqd zl-}JbElo0JL+FAqY&i`Rxb#uhw_t}>=%wS+2GSn60s)IIZ-JQxg4at)iR?$=*NZxR zUp}jbl$nMpfZ1l@JYO)^F_?k~Xn`AN>-AUA!oZ6o7I_~%rQSL?hg#=QEIxSkk<620 zFPn?-;|w@|P)f08Ly3-krdKtps>B=St70*u7tEiDLP&1EKe=`H&Sx^Ma=`0}0W9al z93EuNIjNaw5l``<98xKf@}VJJe!{dWAvlRKTh*&v^nS`LjDv~{;9bUOFLZ6qEJ%gh zD5`Od`N!M0hj3!_Q)B9$P9(LE-L`L#<-c6(y97=)tCvdu%1p!h1_YQE>SCUuSdPK5 z^0YX`1NLcKwjfDavuPT?Y#76N$`T+y#j2usV+j(a(pP z2SE>c#V`XO13qsAILJ>1RH*KEYm@nY75BQzp-Qu|_CA#6^1mYZY~T7}v1fWYRtLJc67bUd2OmiT+eD219q|#4ET|*K8q_ zveAVE3B*uo(HXEnH;>l@{nar-$IsLgukjX)KLgT!CLj*VOYz5$VDOtk+`Th^t!d44 z{0u--dJ^~(|2m;5Px&%&vgjLq24wG@yg(GEAXZ0Crtou!)@)qW8E~_ah^>UmAuud| zoxpl}X;}NuH;p)bM68`!+T7sEK7r*7=qNpAJwV_|-Vh7V{p*C%b%r=FiksNcui_h* zK%0(`qhF2Kzl+bi#O`vH@eBYjAM%|6mRHVz!TiIDqxX}l=N1#`EG2eh{h-@wZ0_&% z-UMDUo(nAx%UBjW2A#hDbt0j?;2gKu80&apJx%t5?ORnBbHg!d^58fEObms4b1A{p zf(5DODD>n(-H&6sY&qDp&)Zz5%<#C&r5V?K&qn{b9|y55#vg6ipf9I+cti<|-=)7} zIpO(qN=ofp%hUH}lG`b$IV}%BE9p4~!FO1%H2 zwgwZMc^5rzj%z7^tG-0e7DoCp zgHoj=@=qM+rzKLU_O`P$kL=`Pt-GDYGj;ky9ui#vx(lAHIKxg5yPB9GOjT|n#+?ou z1m(A}nRR25H^B%diwU}>I3@Lz(bPT=Tnd>8`7w_+Vw}2%a^5OLA)@AJFy0dfrv?MG zuv~q$o%#M3dK^xDU*7YzrgrYyzJ$aP{fd*FQe-fJHi8uH9>!w;yV+`^R9O?Zqc7(? zdqA6o; zXT*}(-9;ez9=9&{pfImtmXTa2<@HhQbzBu%psk6yftl#N7H~UEHB}R+n>^srwv6La zyvy*$mt0z#TkcMS_-C7&J$m-U_axLFRG&r=gf^8E(wrAcnPATCUT$d>>vo%Wnq1#S z7)4QKy64+7z1SCjbji^qeufOzEwa*Yh;)wm`3KZhv6P~L@gmkNY1@5K zr{IMSayCO(SN-OKBqKWlZIlgyLE9lbPH4tZ`-FLQ^y`f2%X}~UpW4jbISlB~0ldBC zG`qO$ti07hDr=yM#BF-iH_rL?5H>U@rbTeVxV*snf4Ck5P)kd$J(Lmx;#n?D{o zR;@IwD%ZNroz$Ig&0|3GMKzp}oHyl{Qd`q>*J4*|Q>4XwOEx*Qd}_^N_xMMbtVaE* z^NXWC8y6(@fHykhsPm5@{(1!V37Rq;b8j*GX$aS*$9Ko#4Qy%vrCju$W0J)W78TC+!Q+Yi&E__LF!e+I}1zG#v= z&$zVP0*-;A(-x_s)I@Yi>Jrt*wmtJA4LEOwtM|RjB5@=q`!Ts5@N5!$0dp7+H^qQ- zaO=gmdj#f>t6#?|$A@>Os%NjIEF>ZI%e5O$f0n7pm?Ou5eHL_Lg zSe^7P*_cOik5@PTP`O8037We!QdxigIZ%=Ql(Iz64{rpT9`roWaNP zl3DR=-FAE>%4GnFI0IZfr+il1iPNZtCm12PfdV*^@F3;03EM<5TduRM-yxgvwctqU z+xcezJfhFElQr!c(>j(n+3`^K54z;imAw~ZpB>TDRQ8k%N1dW7 z_^5VL-!TqI7TcD3v|V6n=mXgXv4<3}su=XTk~fC z`7*{cy2%L=tHy=vTF6vHaBi3!iXo4jf}yeYFJ@Su^}d#)Zh8`t+&d@|hj+p4p2)-P zPcy2l!CJVs{DO3~kIem#m{4M&Ytc|&=2~_^FK=R4(sa2|5O0qw#KaxX7~}Fw=Qc;Da^k2OUiH{( zUAyEvDpCwQF~pEzjnVyuTUAKU_-uw<=ekLQ3*eKTdZIgy)p08nG=;qhI@Nb% zmjiOS=_bw80G;8kw2 z#YPnz^CBdQz?RlwBOVO(e`eE!Mpw_x1^-;np>O;2ipEaMUw@{ec99huc-kOO+nX3y z6Vy>qf5W-L6~gjUpq%e@?HfayZj`6yfPB>=)dZk^NlDgaA9$A?& zjL4b*_6bf8ylsw7(?*A695Y6Th)&@`2%Co0XB%2%vBOEQn$LM zt=W_N9aNo+)47Y*J1AaowYyIFN8OGCrjF*Zp90z4z?h^M3woXJn7t&=J>gce~`{U`4B!}uwa@mxh=LF)=U0Y%pm5vauVgF*V4SFkpAT*LU{wtmz zI%%ziWlx!!xZ3bOr}_C}@Rh7SubGhDzz}9ado~07k}nZckLzp0Fz|TjNjRzK9GGuQ zi0@o-ilcUh_1#UkzbmHmUfYR}g0xWqZMuCIebR>DATYr-8!N_adYf%HtS=hrEI#iQ zT-?r<=j&m8d3x!ZlSZ3&b2n9UB~hP4wnN(I_dGa3r+)Qkz(}mvwiLCivhX()RD!EL zC@)ATzVH3D(&gBdgjqvO`7Mr~h)K89F7+VOj;1mt{F^A^^v7EA4EXi__HkX)`*KZq z1>MV<9iqcHFL&=Pap79^gEN2`Ke#@MMG#j%O1oGPU4z6$g?X5$2$Z#DXOfv7@>_tx zyhP@E3mpgFh7!ZKhyY=dX{r*<5VDYA2qjzr4MLGOG0KBE)+Hi4>+WPHFjKhqP5VV<8?C+&=k#Guh_CjLx)N;njcgCxE^!!&9WN$G z<8MMDLPUldt}TGbA+E>pLxS{Jf02gJY-I7UtB|EHZ<|oFrYiRr_Umqt=%(t!EnSS* z!eOfvW5}ekQe0X)f`t+;e)TIg$U=;=_0HK z?gRr}Ja)?viGu4dx)WFG#fvk!4QoI>3tJv-yu850yhQoh2au`}B(r&7<>Y#!MM203 zHDhX+@oCxHbo_(OY_*DQbjz4=g+<=Tw_+ES`KqOmhb=@d-k%l}6NF(E$lYhV4JybY zDas!+Zb}5c@dGmVT(01eUa~ImE2~&KAK;D~OAg)rZK{uzM6FOEjMdCDFXQx_KjED8 zjX?}Euvc~Scij8)$41oS1W(lH!rt3?@42@y_{N!ThsHq7U;Tp@YTq%FQGx1Yu&n;q6s*}vT$WW6vT=W24?bmf6~<+4G~ z@c7B(Y|o}6)T%JF`BTUQVR^1*KlM$Z1cGbf$A3a+@?Y$>7g) z(o$|S7j>QP7OLl9ljX4Vx=E9)ZY9%q`Ubp^ieL-5Z0*7;i7Wo(l63*Syh~KzFT9iY z#!@GZ$1Fw`+5%a_W0n(iUv*vK6Q@m2{Ef+54{ z7g+e9#;D&qa?-I@q$eY|D3)mc+8#^() zv6YEWy_=I}!L%|l12M>iSFKgoyxBVgK!_G0ct9~6ib;5euD2L&kXhK4YS%^fGwgO8 zr%gGIOXbB{S~OouvuCH{X~B?__PP3^>jT z6;Ip94|jGNx2xWI>wYvzuC&m#t&J&xOp9T|FovDcx+wj}=w2GDa`|3zx3XJ;GM{p6 zIWN2CavW^hL}^3hQ?%*)Bq&&&Cyt*SjyDdL^`;xQXwjIt+UPgwL67|Q)P!-TL>mCy zF^{EgI0J_DAp`jcO$4ZEDH>N#Xt|huELwClRvL%7c)AgdgRDGZq(M*?maehf)eP}_ zVtzLE&y9!tPaw-p@qWRKfC&iI+4H@xFn%2Z8Pdb-MR??>--B2H|MQekmM`Bjl7BpW)4s_b#D3KL!*W z)y`wh=XidsXFhetlq3=^QW2puP6Y&>fe4*FD;<@cyPhB2I?^@};c?+^9n?|`bm_f5e-0UC`N+WoJkzR1(kd%{adImJFH{t63OTso0hl~FW@-dwZ4-!6(6RDyd z=U>s9zfreZH6pq={2N{Lo5x#&{`wem;maAYkAeg-9vGD3Pa(eGJY}&XqRvFN5V6jv zcp}zGRzSo$*Zx;2|9;mY#3z5m>c&Yr5jKSMui_;cpFw`fyPW|z9;GwjqV|7Hxb+B( z$ED3hoZchW3~c)I?`0K?60jvAi|viSKpUBmqvOUEqIEDF6q%Zdmh13=+%7vO-~0Mi zS*OjdE4dqHq1XEns;uLiSt^*W*zMHb_PTy-4ox+Zr@#H>WltlHn0}uW3|v23TfUg) zMf8=p>XK8BCzOV%s;t*;8rORuHCasidB2{G6KtE1Oz6T>(rxf=4+0~PXca;l9#c#s z=3fy-1I>9KdTkeXt3mV(P_H*U*~`Z3gV3?CdxWsZ*@w$uT*jKqJBDDw1t}WDkmM)< zUr4k!wDJ5lL@4#0b>ZoeAwjr~^D`r3W@66hkseA#J}XpPu_^? z`d?Qm_b=J9re`4;{7dn;{54yX8kW45Mv)`_C)-zkRA{?r+8b|1wDB59jQV2wmH=i zPs>HP{aP7qplgg%N>~@-e4jYNx}uA2j^&I%wqDxk`pR;Ub}^c8wM}xm(V6rDik@(zgD1RK?)ti0ic14lHe%oDUqTOl*guxgmn zEzy%(ZrK&l?Gm>~ABDRm=ZxEFO81w!dkqKt^g>OL2-S*b-a~y0>kf^Mw+edo_ZU_GJescYH>&b;u&|9c%>C0xPg!Uz$`-F; zXBN}N6XKioM2z*^tRJ;9(n}HTOJFOlDMeb%M*~S07nz9~qHlsrkT4UvKZ0y7Ony znrF$^S|@*!AsIXWs+B&I=0Fc}v_Ky~C>m$)yx^pgD87LX@7uxg@( zlTg-tfZ0qp>jo-p_bEQ}7e}YY+nGG5NxBhJC+8zfrD`H?Lx*##dyv00?GtFCZJ?Z% zE{~pVPrGW)dCPOQoT(-0y#TkffWm?XiZPK@M027vw66K}lbkakFp_p3{uBRB>Uxy& z1KK7w9C5Cuo2cG6R#H$FO(HR8;_^!Bj_6hP?JgFQUkM-4zO7k2Lw$9nc=)=sAwyor z52@*rJ9a}0yri)K=cTC)g2z&cZWzJ#a%2CRn0TGQ@3jN%6 z7-v7TN1$x9Z@^rPQMllxKzkBPnCKooO0EbjW^cXt{U|PhGKeAN@nUDAOkKi+Sf<6E zW|?EK*XY*^vQI|d;`1I05I^Cdg)``CR?HZTJov`dwhhLXe6rP2Vyduwl0GEn3;Nn}0)x_dt$Ci|L>IX+e**kKiIL*G5$xurdp>6yuNUxBqLeWcMc{PwU{ zyrO6HPRHzbC#P$IS$P@2S|#X+0tz`;%09kJ@2fDhR?)`xrl?EoQ)PABhjT4X`^c-j zg+TVZlAutv44eqtOJpVuf_3xI?z^ zPq>iG9+hksRvKgzU?|SV#^eR@<_pVimr=G*A&gKzy0i zb`=xF`i3-Pas|8Ml~p*qN9Ih@~`TTRZ>f!%Eu(&?ZM^_sT>?UDRD>5 zI^TdRQ!NAZ4-GL~DEa~V&aVjJk>^TQ-Cp-n1XeZ}`Hm-et4cQ;1?n#n_!=^>4|B){ z1$0`pADX>o2r{D7^qW&S1Cn}8&VbS>B4#dU)$gY!nZ=dOx{;|a_ zOZn}j+NCe$qoqRCahN+w2}62JDH*ry9O6}Hktwx6!nM*=`E9+s!@Krlm2YAtJovBa z+Sw)KVcO^}ba)IdmU7Oz4R0QDRxQro%(s6#K(G_tV6Aw;5X5kqZ2m!mP#*3|pg$vn zbmh0P%2hTwD;;uoaVDmXo|c}J@9JG(MFaI!H&7&)-ftaIUM0&@T1s5^|MN6|hhI;Z zQ+_X%#bxT%<$!(Vh#$TXF&kJkWXwW)OsYgg?skQaL&_V!7{#KuS!Sf_A}_8MCBb?- zhGu4`H9pOLHtieq2@jx^1J6my?X&F|_|Ao@C0c{pY`AJL+EMbE;?Y$@xsS*2U7o6U zY<*KidTHA6Z`7~en|y1728aF1yofR>^Y(N>7o-<=xjOY((lY0_I4{(S?V!6KNx%%WPOt$aweOw?Dle( z+_uCIR+-lgG(V;^Bn^bDJU&=0w1LuuDnm<;m>+>Ru|yw$dQFK_9alQilg8Xq>|>JT zPI?+x+C&Es4C3Z~Lhn09a$r;V5w89Pvy-wg50qI8uk_4pJuYcl^KB8o;uvVkWyL0G zouIRtB?fJ+i#+JBiN@0j)(@9TZryo2%wIf^63j9)aAZ$@zCW2K#xBnxEbb^|rZYsU zVtA%)A|wB&2?Na=|Md1-iav@F&$;(x27~<5;v4J>)+OGp9~b{*GoY5%mir9z$aT5e zGN|@#jcm=*JQ^zx;`UM9l(@8I{%X0YGPk4h(G%U+2}2ycFPNt4wLCaFV|(kcE4u{pF+Aou^+rx4hpvv*x_V6?O1( znO|(HOBoM+LwUnpuA|<=J2TIj<0|nT#&bw89WEFpf^CZNcab^}{p_^Qm%3qHv2isl zrpogzva@+AQKCZNq>7H09d4KP;55Y%U1zI>3g@hA9YFB?Y(~`!!c8Aw*X2L*bIN@2+$NKc-sTUqi%*$U0bc1? zTz@U#d9U9V)(WARh6%J=m`3{v)>ul|%?%3&<|W^J;LL0Ly%{XZ+n*NAD?0ANlmMO4Q6u3|P)J{0#&=A#dQ(46o z{6m!lIa}#d<0g|LG(($F)5wm=;hikKz?Uixv2oIaIqV8UL~sDH*mO)!1T7ctWaA$I zPq|qg7AW)>t#nS1G|pghWzCp zj4g!%y%;(8ysaD4(UZ*<6a)GG&^#WkxfAtYw(N8Td ziOt9Gs*GicD$u(f`;tEscia(lPrl42yM%6L?p}SVE0T!!m;6xoGov5Va9>88xMBt& zed*d2u4^r-iv=!Z^E-_Uu$xkh{jS_f;d?w(C!Qy_Y8Cr%gUJ^?WD=qu@4C%ns9JX; z=0LR=av$>zCZar*Btl^y<}Zb>50Vbk-Oi2B!U0 z9VkIDLOKxQO*t&Elz@~a*@3PhV&>_8f#Pfg&^yJp3YCh<*8K&u*Pq7n$K=invWumd zI!T82MIRIIv;L{Kq#)N%%E`Fg>RfieKOZT_e(iJMngT^yjKa3!@MrnWnP)Iw z&6L~(ty{8}D9l3Df98=g5=8kO9VC5I+RP6`475+q2@IW|ZJ0m;zBCTF@yHqhNpz4y-j&3y0oTld~I zYr>kDZ~2F-YSC4vPVKX6pS_>w*+sp@i=`84Z`6H%FBUw18vJ!%;Ol$9RVcyHj;Od$ z?&itbg2S>~%uIreh}6nKniieUANO}s1fscuCnoXWWpDskcj82_yjIht{%FqF@ngGu zZnVtN(xA=SXZoO$!S-QN_{U9*Rz%t3ADcQ&A5ETCYcyHQt!XvwCk)=`Iud+32ZWEp zRGmh<`lD%e3-^s9h(1-27;Gj4kZ8$dkuS2=G;6Wip52?{n^-yGHTF^?;|U{vOXnOa z&*co&Q@3UAPARJyj8WANUF6i8fEwC`mz@pChbq*KUvWQj-@7ZbS?g=UnizbigJYv9 zM!%O!eA+y6+Gw&|WHm6jr~26eW0(pkp>NOo7wOoAe;j)CS$b`Z!1Ex~;)q_z{;x$Z znV@+Dm2A(Vl~^p1OrJT!q+p+fu&!2ZeeL*EKeY3n8sS+y^*x0X_1dcWz#y-+gpnt` z!`0Z;o@ArXvfabwK70!mf|UDC8)}`DG^JmoV;kfrRWSMy$XTJe7fttiN(xz1&Wf5z z%}JbyEcJLAL8n&&6qB^B_{vSYHRB=AM>FPakS$Z8GG)9T&9S#d_^x}<*QR8F?0czV z)rNE{(dC_KrQoL+y~1ojH{ywxrH^2a!q2)vUa@WtNB$nM5>;nb(nHz|!S)jf%g%*j zO={PX!sdl4GB4K9gv_dwYVTFBBm0-I;pOM9rUKyvVQjt8#J-!b;>M~L?DpdARJjPi z!+6~HGL5<~eUVz z1n+L@PLvCOt7>jYGO(}r(rHdI`2Dr+*K?B9{$AaOT%G8<`|l*vT~5oas%dTN?KkJ5 z2f4_7`@|6U_K&Gcy&>WD5`bPB9hKpMgJgcqxZ9na=4N)0$G-+0q$*y_zEtINIs6^> zOn)FLH3T1)cE-9EHWHJaF!-i<)uCu+C%-|SZEOsuvtmj=KH>~mq|J6*%xFk3?moV?*k;M$i?J=$y1INNwb;Rfj2G?|@_Q_tv2qqH^0)Hm zu!3hHO%VyV5YI%SLt8YUfK`%wrs9BH4C1iU> z8CHFK94+0+{ls-+?viHy7Ehw3{Pg`iPr;5wiBY<QRZ3t!Ist`Vgrsx?EH=gwLAL z?@MTv>Bso;B`;!G#x2$ZK%nAF>I8c5`!;RY&JbgcV1Uc3mh)KZZylstc4Z+eobVqP zU%i(?9m^zk`>Lya42@XzojN+dUA5rg^42E(eGDBW?M~P2J%gk5{0!Tejh+sfrU_id{O9-Ce?pH2}r5-Q-b!Zk!T&DO^O} z5Vhc;T`}p%IOa15E97oSw7A*e#Tb0=4UxHeKVTjw6yT5=Fsc6}f)q!Aj(b)C4b`XH zo&Gp)nAi}z`SMa>voMc68)Lrm!f5!1~HFR5R!FJuJ1>qxQn48f3(lHQ|c|kiF1BiIliMSNx zKTMcJE`{OjFJ*BC2DO(EwnYHV?OwqRx9I&ogxXr%>s>DiRBE8A=|mK=@}{o;0a-dS zZ4rp@QSVK?0Tm4zPZksGu(7S^_c7g9%-3I2+RqwlC6(4YC&V;6e@ev#D#~FR>n8Vx zt9@T%u11LzWZERypM-Bbfdw|xRk#>1_fx9x*p*}mVV*6r#sM%%5Br=aP7d+yKR0Hr zd2ByENe>+O>Od^BDnWGlZB=w;WH~cdQP^{{mrJI~Pm#4nha`d|^ZQS9X^V@Y(*1_V zK~u~9@;yr2T^;lrH|y*&_eL)7`|@MuFlp^{bKA)Jh*M#+P3Y@V>V@s8!q=N~B`$L{ zkJqOUN!=_y7qDLDV5WLkH+wb3Um~U@{(x9_KQ8VBUR(cRM_*EZg%6qWHf;V+dwL8#7`+w<#RuRK@p7KlWcF9kT^B-G!xzS!w} z)j0O<^oyiGl5qj)9Ebmb!Pvy(ifgxCIM$E|4}wS`pQXVJ{`{sk_Nb_GT058Ra(l)E zBZc|z#P-C@kvy#SZ6@zDxZm0(d?YFqX}gQlYC~JVZ#ep@77n4XmDQR)jYgyH>76u5 zvjOvgvD7@NAiUKtgf%s=(?$V1xmKRe;0`XnBn9ejCT~ILPJH`?S*`=UlNaOYb7kLM z4x24Z+?TRt{bQc9gz*}Cp4H8$69l!bn2o#pMP8TltlC`kYl9&DwYck>B9YAGA8re< z$H^7rtg#*CWnWS^BWry+vist<32rB2eo1PC)$XKoR(MGARd;!Pz7?!t|P?qm&ll~ z>W^urq`F71ogMmC_r}x;H-#>t@8+2Wf~U8@L=da;FgU|WEB*7zx=Bebiroy3aJBrG z9!>TtHrduKqI9#|38KiGv}%kk6)_uv_aF&jtI!@Mv^7pJVWreyiwl~FPe1GT9|9JH z>)=AY^`*?*{wqKW%hv!gda^`qhRxJV?No_>@J=}6$SQJ5%`+zZ(Ts}L@?9dcnJnrF z#}7xoiWpu+rm8Ud5CD18Van^bSr}EI>cI&ac8r3B;a7 za&aMNY@ks$IW01*hiL*7*1z`J*&pdWZ^aDfeXO@vcR$hG>CwkxfIP*nD6T9#)MX|z zm83Bk=;ic-;AGiAPV;mVK6F!?*}1>H$Ju1UUkc+rKj_Av?Y)GLmb>ri0p!kFWGP1LtQ}zec4^)iR~ma^e?tzoC3&CMC}#g><@}sb6ivPD2E4i} z<1It1JdN`)XK@@YhPp>I%3r9ZVM1POCB|4g<6vUu=WpitzA>Yu8?WE|bY*p7`F8F> z3HXkFJ4IFue;h}(9nx>8Na=QvN-F=u_^QL}-2t79=Rq0HBTr8uv&{sJ{80EV2L7px z0*Z~m5O=%(X3DrT?MC%fusN|MU8F2G#j^47QIh_RE{P~`AIEwS=Bu;GMq1&Hk>rWd z_c&+ayq~1+T_0^cpt%6RSKx11)GhK4NW=WaJ>QIXriO*rLTDZ%@t-}!?Fx7@rUWA0 zDafer$$fRlOkd-d23>hp~IZSxkj>={Nl;(1?)3AXTlnF)BvN5-eVM&Io?g5g==oT?{{ zaBy3Aq^UCd^vU~aG1eU23Bja!qW(V8ufIqaVo>E&*k(=iS*BaQM*jA6T^n0W$Fjn*XLSolvzt-Rjj!1-ftb@ikDP0LDDhb z9~_&gT`>$w4LQ0tZIX=zo>~}-#9n_dae2z zDyp#xVbMgbqdy}{SGUz%>a0BO-SBYc`nSB2og9MM6Oacm4C~TI=FKBR>PGl?)EBLiGL5CrYk?7T6*PBf^7 z!b2~k>h zq4bccL|YFDz4|<=t~)$Jt}MfAi&?0;4E+ZkYkE`VtA`xezXuSY28CzC0+4PJNju6##L18vjVr8`!bXX#Q?F z@{=(hM8*|H3RX5W^3N%-WgfNjes*Lu-`=sB#D9CM^PApP8o!P#>a)k?$0xuY5L=4Z zFiSXQzY}T>c~_g{k*tn;Zzx@=j8ua774D6TeqNpCDTOP7(NzQ<_^*ya`0`5x?v-m( zSz{@z9)UDkU;AAz_sVy6%@%AIeS5y^D^dGN7WFKYeF(F(qPZD`W4?Td)zBJmv zK~7^6?1N?a2R4<@i!2S3IK|^MPA%1_S7<_0waUomklVW-HkRhZ_u>tZVz1n#2f*l3 z#XGp?aa~eeB5_^b**i#+D^mj}W=}pZrv{( znrwkN3*F}YE%6ZD8yL;y2it9gSRDo;SO}arp|P4MU>ihbge~r@W4?ffoys+{o4yd`K4bUFxP9;j+;O*%XgVYM zdg;F4N^iF?*-8GWuX>RYCz++Gbbm{tVo&uSP$>;6EQyzJuYqa_P^3z6yrjpG18L#r zLV30jV6B!)lyaT1lsV*91yRJju)SrI>R6Rl*n9BXxW*l!xLh7Q34oZnjm(5CC&$#Ldvs@rv@~lfcW2zfD24h+C5D8}I9kO@ z#v<7bA9o6-)DJREUZ!+Nt};QZ!FzeOtI%sW*(sqGWxj)AR56r($HS>_+&I_e;dyw; zy?$Qjng;7+*j1AoVrsa#;8m?2K~q89U;8-y627Eb-fBA<;gcV7g(8rtmO%uaM9TS~ zMZNEoUwtc6tJXVj(- z8ruBfr0|>wqV$mC6kdwhGn8irS04VzAuj%aj*X(Xf6&=$ODCK8sD!*?=lacK=-MaK zBAhxlGQ5%>QF!giOKp+7_E#(*-+2%TXzw=hB`;97t=bII0x+#4!f)Md-%Ln`z9$tb z=5s8`e-|f#GBnPFj^Y9pb+&wD7@Ab;Cf{Z8v^pQlZlsz*XLF4Gw3hA0o zJ;;&D%T;BNl6G_x)Piwb{W5ij!XZXG{^cDa*KUyiX9NFEGy35~w<6n%5qNqNtVDQkLH#^#~h%Y74oIc zwV_g=u*k@<=MO0Q;=$N(;>v>6+$Ehru-4JxcO4i*pfc}6NMAIg(yR8HAXT8~Tiy)` zBG6+ME;X?fYUu0*)qKw&1$sj!wj{QluEhaqW6gl9D#ix`!9hg*tdK$gn%c&RyN}Up z#FVd02cUweR5j569d*I+IZ~QpLT$aaDaLusKs#vOw?8nRW%_uo2;19@Jd7~z@m?(S z@G6mrxZjrH5x>^YB~_o=)wbT=F|0x&_!kf2OTAI+5jIMf9vdXiR49O4U-DtULO#zq zo2bT1bItG(2o$qUF_%9P>7gi5g>J%`_dlXZ=MI&V3G7+HZzri$#Ef zY+Zskc$|u82?L8%*eh-K(2qTSYphtK!BMqxJqwhdI28pygm&3`W;&*`RrkFtiButC zJb%3cja_2*wf@$R%4GKJG@3Y>O{CM%C_Y~g?0Uv3tup+ot^!D8&`?=HamE1OVJF#p zqj1IEXyc5~Uo)2$;b`S$RRwQ#QSvLwMPk_hzp z7E_XJS9ShuZHk-iiaOg>&#`->hqpnWvv?f@V|@%D7E7}usOcDA#+7u4TGDUp*th7~ z?yu8-K(NpkzvP270{MyrzQo_8Q>OI{A2?4LUJCSezI4HVEvPeJM&5spi&9-l`&K_6hOf}xc^3pcncH5ef=^MU5<^44i+$O8Rl}DK&KFunb z;n*=Dz`eFdOZdHc{s-h^Yl<2pZ4oM`}UTv<$j#I z6N%5VYk<~6*yU@$#LumV)oLL40BY6)A3f-_5HOdG|ZYXWA3Q`O#HQK3yfHo3RzEk97H=*p#4ra-80iFE@a4bNq&6Zve;UA8aU-%6-GJGwyOHZg_}iPwlbBOjGl zLYECHV{J>f3A`A;rI@u}c@tS)D>ZfX^_5AsE1x(?o;lJwZI!k@-4~E4Pk`7g&4zUY z?6R+^e2b0mlaU_b*{K?WfmhGs=^X~DazC2ny7UYfs?9e5T9LaC!Q!LPT18=eGQwiW zV>R#hUK%QsdPkNyJWY)m>0i%zIsa&yOEt5~hWF~-w-0Vrd0)v5hTfimcPJ_fXraGT zM;etC!d}zcI`39@3b&36u^AtY)ohc63gF=l{r*v9MieJckn?t@jRG&8yU7c zzr)X!G(wW|?#9{h#e1<{rq9zAce^WJz2q!M`0wHJ)HVVjTm|K|^3Y2LPeey1k+7ny zo$Nx|6OVi&yX?`|4HRcSKd#!<^FwasvtIkQ$Z|u)bENw{k&n*!#<&O*(j_nTb{@O8 zeIjG;>tPn_#e!+gm8ElXU?R=*pch)4-t~Kp%Lq!}$M`Iqz;Y%l5?}vxqI`_~i*$>> zg$13;+TG54ZKW(~;%tOAfx{oL8}d!;x7B6@qp`x~hn`H{Hb!0E(ep9rtVZE%-KnMZ zk-fR|P2LzR)wUU_&*kmysSCb?6xhn=v>tE0Fw$_x6RpasCsbei62wYJ6R0Je2I6I} z|2TTo$Q__4lZ|+~0vM*xtO+*EXzYC^)1uv36G^UwPyb0NxzAMWX-e!k+tcf@w}WcN zEIznj4^kfT^&xEshhN0?_yA%rsSHfNGq@{S8Y+)se(G&Y)a|`IcXYxCI`q7>cD)f4 zAa4};8xoya4TRUTmwOr*kEc;;3EK1aE0>lfM-67BRjd}~t@Sh{p2M)t|0zf2KUVDj zSN18~z z0#u2vUBRM!O6>^TwY6g<<&qIKUTg8!ExC+sVw$J|H(rNr-!|_EBewT_0BBtA09rxX zh{!2vCVH%N=OPFC_l#RFhN3JJCKi>}pB2C8C?kKs$``9g3DRRREs=^mKU}r$_48SE zTl{*Fk@($as_CVR>b1HQ3ho3!2M>?LwZxfa>XbfhkoJR-FrcjJ=UGi4zk>oh)0sSd7ZNG2dVQ zm(pE*f-7y4pG3mdc$Ne0N)Rgf7VATH=Z~h+I0lc^_XIvihIGM4%v42##fdZ~?~d0i z*nBAca^&Q{HBfHCAIu$1w=-yyPUoEc#0J`5D>#V7f}sgt&Vj7CQrv<>WlWnr73lRVM ztN-(7V(*YZ)(H^3?*LK*mzQ*a8u8DGw%aD2+)G^oFODUq$La9)$yzNLzY?6!qWtD? z>3={w$qxH1s{*?Sa(G8oCW*YW4}Tg8j--PXhj+XM<9O28ZFU~|O!jf*Nd5-nXohAX z%S#B57zbF+5F9vtpi~a9lC0`2v7QTPO!%giCX( z5dh3sReR*ZZM?Sa&oZkTwZsRG@@AV^=UOXwV4F)=V*(4n2;`e4kP7?(@l5|hpkIxg zt84XwFF9%*@m!PV=MTB?e?S!QPVmXqCV&kJuu|5%At*=eTS7oG6w8r`i!&pB0`mEd z6aE9Dg#V)31=yPjfccoj0K+8`L7*Q%&bi|LKFEO4e~sy1^Ykx!`q#SSnf{kA z_?OT8*SF>Wk#8{ge<=Ev=Mk9wdjZiXNDrK>b2ToEjllzHIy7k5Es=cY-o5$El2IT- zTHw>D*S>KE3qBNKr^USeJN0`MD&S^CTc&1%wDgpFo=9mdZ``}%p04r&76l~a+qf znQx7rP`R(Fc$T*46b$BWe^-B_nsml`Rg0cS#&e*N{8?nM!WMDg?efZ+!x`$c%1Pn; zmRfX|24n5~nV3XV`iGk)#`o1}92-sc%~e#C_S8x^Mb8BBd6JnVgR7;|o!Q1LD~;*e zrgQjgn|CuMW6Gpy8v~Il(%c{C?fZayiGFrl&osmwf*kB@1H&11{F&qS?vhd8$a^cN zrpo?S?SOUdjVF1eK?Z2Z3Bd%nIE({d^_9vH0np%lWf=}nJ|`%7IKIExDA+vkS&8S% zlB0|{L>6>D9C;zy4yl6ojznBYeJb~4SAy-@yE$4^zm>li7N%vPzW!D)JJ;r*u(j{n z@MwbZ6rvKmuj7r}b0^$rT0-@wBG1{>UUe1He9e72Mv~r=&2jy4%8TpEk)U&<$O~dr z@?I;ZdG!X64D#pP+J!s1Dh#z4mzmcKy<1i1f2Yaqe<1mZ7_u2&hE7fg<5u zY*W=JJg|-SaLcN3Uc6qmZ+JD~v4GmDvs8cX{f~3p*5=eVxo#7$+X-%$g3lh{b0y2K zZ?`GbqbDkDE=tbOO3o6$x|Eud`y$q2a_M^M)tva=lP$SFC@02fg}RMg!zOE^;Sr@n zWjT2!gSKuIG|yZgb#uCi-C&{p)R9HW_P^?CL&l+m>##qdyLeAxLh~;8;-ks*61>_G zmz2&-ScIQEPDBgfXr>9TF3_ZSk15FM&BlL=pO?;sWkvCT@W@ugZDQOaWVtx=C_Xb5 za`wP(=|Z9S_z3Y3K=uFqWB~bP=h+KKS^eoc8!v?U0z} z(;w%;o6s6o{nr6rI!T`%m*sm0HQpo#op+uAzYOxnd0~k$%$-nbiLLz>-$n6pW`kc2 zIKE9gXFH~tgr=L7LeY;&JWo4h z@5+tD+#UCQIQ|oF{0J+B(DeDsk6l$yx5lotuf6poJ$}1F9Ry`<5y)S#Biup9)_ylK z_`4UXCOWp+y09%> z;WzSIP3J%{XH$9=Ei+MMbl>$pJz}Y80(tT!?M@~gfydMn-un^ze$jJK9mAPa?v}r6 zrjl=MpKEBO7AnVFm!8U+^^rwH_0!GXzRRfFq(`4nae;q8Y%TUEW1ujM74NuMEdRFs zr28PpGJnL`_T5|UVZIdFPf~@HbK&i47_&yq+?go$^zs2t3=Qo@L?8`oM{#cN9NwkB zF#RPZEhH_ss>3jx;`S_lfQ<77Bu6U{f_|Afdw2KIga9^THO-Gg14;uFw`ASErxn?z zetko*wFvbw6k5w*4|K8+Q>W_x=^|$tnQeXKc(#Er@Mk9cTB?M0fNyx}_x}D(;6}fr zv%OdfJ7VaN^WyY6!>)Ka-8J;KBHrXGG80J#X?6nBw3YQE9bDnPo zwXtEa0<*0)I?VS^uEM3?o85yp4UnuRF#6KV}D&_{-oPkJrQ^%qiHd*Q| zkdKF--*+)3PX&xb-WsL0n$|7*1sl^t=DZoh3mj4R5&86&mZE<4l= z2|IKoei4WdL>mNxlf&opa*E{bQl@z`3 z@ZR3U!{(k}_zFMqYxY|y4`s^WNYzk~?yNHDL=7ok$am6<+r2|sKC_Nzh#&Q_3@m^6 z>-|!oGj>F`;aFbw!gM&FuAjZO{-AUbDfK2!;=^^^l=)S%Rs)U(Vo-kPfQwFy=dNSo zIpUntNBEIpPNe-fd=fFDyiC?2xZ-0kv-6wHe!@LSWq-7if_iR%u1plO&i<%H5=ZHogJQR<+?7_(vxV8amCaPm)M(2m@e{9YW~P6M zuWYt$Mf#PapWUoa|!r-IgQ^AK*b<&WTZ)Onjo!=%Ef$XL>tda#W>qj zCTUpLNH{ZICIo1ZectpxZpiSaA^oU7^2X+ptt!uF7P)J^(UPe=k)w-LdOp=S+kxI( zVVsJUSF+FA5i?*Ai%P8h{6pK#9_7BeBvU4aQ1&IpK-yCkfGU;5Tv~VJwuJ31*r+cP za#-*9QB=5$-UA-F1y7#XYc5SDV2YZ!4?#YMdxC>~?;FawiT74KTGfLkG#eLDbB+U@ z>oLh8x@NeeyJA6!Y=c(o{xK?|gZ?l#BS)XS^^$??1l{~ezGHj;470G#&-z=62=Lxy z-ZnBcFS{Y#FtU)uTrjbLEm6@Tb-zI z!}QbZ*J9a+ZgT`c-RJku&+v<|)H1d0sSsu((G=;NwxwbZbuZ{!8!P#Vb=}!om?J>Y zAG02+SyN5yat;F4(G7L}w&}4I?88L{s`^KSpD_DpJ3>DpHB4LL_%Fs})alh+WF(!<;v-N1uED+c>9%wu-npZ>FeqCd}6goLEd^VMs_S!Xul=K5YuJNUuvPV{vy#6 z2>=TEO=`{sq31Px8_&;Tr15h8^(Pb9H=Y7@DfJ%Q%zJEPqJ zMDQZ-B<|sR;YT~GhVkl#8}+nxsaurx?8nFPT3_Cf*yH_hQ})IvUM{e#aLD(_fi?!_ zZMhOn7dM&wACHHV;GfxSsL>Tw(jtlp{GgxM;&!n%Htd}%Gne;50JiMJ-Go6=`<#n6+ zH`QnQBZ(`kHY%aqc`O4v!nv2{xDjRQR}*<`F^081?sCS^Py}sx&9|~y8@A6=LZLcN zNmVsZNc9$(9Y|z18N2lt^^vh*B{(n|pONX4+wW|jT|?)EoUKk}b=d@4>l5|$$-Ev> z?tY)j9M;CLOW;NO$K)$#nJ(6j@wZY{#Nhh<2R|RFJgs>cyx|2EP3bT9LZ4Wn*d+Ce zS4HF$KMzbIuF_9bw^jL(~l5xSNsrn!ZHL~cj@!iKN4E6mMW^ph9+<7ML7 z4&5NJ8`K4BFBwl&yYZ?@n6RE0Qk~Re4O!DQStqaTnbGWPPd=JlPcg8+75HMH0|W|; z_HoD|?UDA)O|ikY2MBMA|-u@$?=fXE36 zD+}@0wVq24zh9(`r5M*P-~&x1GBAi@4$Jtl^4QR!Od!L||DCSWRo`zTr*3v(=)IG<>`C?BAB^^hYBAi%q_EXb&73_uM_2@I z%r?t;ywi%wG=ISnN2J9b_400Ave05uv-5}C?DD*|F{t>)-eqO12umNnL_SFr|5{@s^2<01o#>?LFV{1Jf`TnLp zFQbL_-!G)OM=d1{4{vtBU@m9-?w=|nuIoA7_@(s__-7Z?cHBHoVA06&jOt{v&oi>^ z)fqbw`4+SC2EEU{HdjY-X7)oqgs+Z+?N|%R>Ce{t))pL$8joK#9a&e;SEqNVZlB!{ zdH~uyNTL4XH7_?c;YunSc_R%7cX&@PMwL>mRgFQrOfH3m`8VAVfayf zWiG{YJ9Uq6*B|KT%1U6vLV>my5?j;V%uuG2&?$)+=_jE+#gj2~(zh|!J4Bcss>OM- z$S+&9mEuF-4(U8+O897hv2Cs!7)o!|u2zT3$7!8OM>Dl6&p!?`ZN+2M9h%LpS6<|1 zHYauamt&;~bMkv-Oxw@4A1 ze|Nu(Rf!S=N#5sK2KSo6d-XFZPDHQ4rrY?(KetYOa{NB8?sp}orQe~zQt4P!D5v0* zQ53*DS|7${+`)(xE+0~3rA?YACBz`L!mr26cvIW0SsR~3*W5H;Yv81UKkX!t^IdX# z<^Z%_5yv)OWm^E^alJhB#1!)CQUvij-|mI&G_&sWF`xsIT|y0+SawbIqv@+v6_#>E z&?umeUOvmd($k6&RK-FuWyh$Hsmhg7(yk>}a{CDbDd5R@ta^^lj)0s`k3X`C2Wl5lwYtqIQ-+#1)lcnorG) zcoP8b(D4FDY-sAQK)Yb&)Yv2NjkFO~TScC#$%7g^tZ!m(za~mhou>EA*?9F62|D6y zeMh`3=U`_`Z2f97j#0HeHNTTO>_W92*aezm9aafUiiKs^?CGZ!4Rvqxh6)DdUDO$3 z)}K}9q~z9KDi@2}C**^`K|l+lHZq(gR-Gz+1RwzJnz6>|P}+m_Dl+=5DS~{f#rSa+ z)(*~}%-%wOjo=tzXCrtZsI?iH{W181K#Ixrzm2iT5H!`dO5iHA&&P+@=S5g0&FNed z-W&|M|8TSLjTbi}!|wm`rd$8f(Fp$#%Xn$vdmF29DUappKn`bqhh3DVt@2Nl+qf^=3xeCT2-~GuS2J{6xV$ucmGjDuaXHJ5_hd6Rt|Img>7->Dib-ge#>$g!Etqe2xYPod`_=1JNZJ ziaHWrxfFK_bo}AQep=ne$vLB|)P;dA#1#!1u#LKAL;Et+97BeQ>)kjhDTRm|Yu+lU`=|8NulaRS;+BLI&A4d7ZbotBsTz61$BO;Eb}v&!h3%7FirOquN;p#B9%J0{!zE&vHCwCV2aZ+K-TL?(@7*3d%u?&p ze&(KN_@zl;;HRv>sy>b<;}#&mOA&W@vV>CohogsJSb0xo=qLXXC}|4=vUP$jKSW;L ztH3VmExqt$X-joZ$;Xz6wVE^~3s!R$svoVJXRX-vO9fvgtYon*(xLe~HmzG9*&?mS zj8sW<&NJzEXk6kiY0a|B;^x`iZ(SSbd|L!P@dS>Y= z3_)B*pz;;L2=q8IjC}JHC(t(I*)}!mj1!o03Xo=Aao5I;R0VS#SovOuSY5Rrkz5en z_d!!bF}+~`?d2f`CvL}eWlECjxy;GX-J|Pn#y*1*k+J)R6mc-`kwQ$R)sb?t&TjYJKR_+WfOm!7eAZ_M_aNa z&3|JAPt%?kh2iEm8$1N!v}g1Z6P@b}tjqr$e9E%-GXkJU!?pA~r}bV$V2 zk}y~X$`A+0kq-fQ1zQX|Aq21S2SjA~m&o#o4}lZN@?N_KKqQy|)LZZzgrHF}WPJwM zdeEmWSIxwOiK}{LAAq4S6CPIoY-|?N z{P%%)!++FZ0VR`1ggjv131lY!5_kUF8A$-RLBYI2jVE;jVG(NfdA;m2LAymEvWthT>)lbrRay}?utp$m|1Vhjy>hGq9clk zr^SlyK_2Gx!Eq+wr$VIC05EZUMH)|WkxaNU2<#Vu`olk-m{xaNEssc&rn2=b*>M{9 zDyGm?)VV`p@d}PLK+wRq)5WGP0q++bUZq%Hc+Gd8f5U{s z+jj!e1r8q#v6XC9SB@D>OHomM7MC`mV}1{UGV%p-q~G8`=+JHm$EN<%iFv@VqA;X{ z;HEgjHNdvIbyu;$7$!re+qFaLDd8ZB6m{M+uq4R*pRC}2@;00NxqTmzlA2B^flp5V zvV(^JikiQtolmhV0o4HueTAm zLfvI(VURs7$!~QNBx1>%@QXS%;J@*VTN{|ou41p;`i3btiFi7_C$JQy7dNiotiQ_j zpa70~MpPm5T0qFIA=Slx*1r)CQb&sf!nqb3;MSZzfOdBt{GTI%6ZHT}A z)ARjLp4f-L1nyF3M$}7kShHTfY=s{dDP!nYSU~9>I-8#eiT^g4EYN?n*8kFY3->Xk zD`MFL$i-a7>YB6^C+F$^?yCfL%@p)2OyclD>Un`*yf_j5f0-VhO;A{c`gTlQ0 z@0jZ*P6!$fIpLguqwhiqcfTTN2)CNAYP#z1qCri6`Hn0~Fjg;<7O@4LK%kkR1pc^x zJgoosH>C1E1_G>>kO&L~JK{fkXOeIYv{rX19YI0=$(W>%T*33VsT5v0pKjd$I6%bV z{c7oNOHclmW%?A;;lf`nUYP`T=~ z@AyytyM00aQ~PoR19xwybQ@A7{dW16yAs6-fx{P}>G=A>cf$+7C|OU2cR>HGsdD|> zl&Jorl>`7Ewg1v}ErJ14s&n5>jp!A?-!;qpJt_USt3KrLF9+J!+As}zm2G>tYgb>T zb|&u03l{)Y5X)R$MK&UVHe4$RhTS?1+tM9<{ZE2nWbz~2p`hr1uIS|qzuoApE0MRe zs2`(~f5d@3cQyT>KkC4C^|8tnkTkZ}?UX8<6DP0d7$*Q&H|{O4G$4d$zzXRV?B7F7 zf=f-ZsDb`1p>9|Jeee*D`vQDeVs!u<;w~nR5by_dexLLYh@)IQJ3v94z&gDO#uEX7 z!y9VC167=Oc@N}*7(g?2fpIP^!?iUr#HN_537uK9TE1r$8g629J!4;%12xonu94bt z18LI`j)X|iJ_42Qe;C&V%f6lz`ZiJ0{Zo@U z)7ptF(&jf&lQbytb;rI*H^|%i9|sYKwT4E+PkLSz((iv8!|lIMiGIptLFweUD_0HC7WBWmqHa5aQr-unY|6!qwf(lE z$UX7XUUXJs&`@OaXq-K5Fv74dI{K@*{vEfxp|@^)iF=Nezbe&voNGUQUJjzZ8Qeh< zAm{jxj{^SNJ(t@C!G$?{l^3a?L-^mG=$|HZ*ed+73N^{M|I=P|B}}%l zzfbi)4eaOEzlQYxhFMA+#MYx!<60=be=lDtrmmXnzZn7@iaA$2-b5 zLIbaqExpXe&H4d4DZ3U%Ai71<57lZ$O=Ww}&Shp>Z>;$FhfW$7%OrJWZe}^9u9yt> zWpZ3T_VwjcY<`Cs`7ay~tVH318T$lSxAIkpdhGV_v%nxGbJc4miDw<+9dW+SteCv0dxZ4?-^M6goL3fg$@_Awz+sfHa@Kc57R=U_aiJ{H z)k1M3PG(8H3Z+h0p=+aP-Lv0$S(8BMNapFdNRBMQ89LqyIR#hnwDZJnOKh`o8!6vE zLh9+=52&Ivucln~^+7@BU@HPa@A1q}(Y=wmwe@Ih0~6Vqr87$t@4yXgn!mctQnMp^ zrMd<>N8L>Tqvd>M$8e8zpIS7;=#;)%kCj854ss09CP^j~Uv*9xaeWB(-U3%r2fvS_ z$0{Co`SaVms!mH@x95Ygt4NKdyb&Yf{HZG&A|hX90>su`G?B|dhH?aO?qu>hnAIKv z-E?-G;iv?spiXlQ>^yILh0a)mtyq)yxgo8R`A`zO|2yl*^UN3cCIX+`_W_M^`at2B zdFEXScO6xsda1#xJN#}RB)VT-!=ua}uCcA;;0sT`$ZM8+w#^x-xlz*_X}v8}=S;mj zn&Bck2Zn?9nz-&0#Lcdx&Ij0tHz$R!axq$0?L#fflCmxP`))V`& zznQ&)R4YoJ^it0=7?l{my?A}Pt&`lWw;<&5Za*P`PE2q^?F+g@MZ7*k1?JcR^bfR- z#*yVpMWEtnglNvk=O2$)a#VE)59}poeOj>&Z$kUlnYGmrf%gy52vm6|r*eBGPOdp) z&F3PA0&agt$z#fi8Vcq!>ftF4iU5U1dZoW ze?X3q3+|^_`u`lI^_hs^2>vJj0W=H#Pv;(9gX==jkHP1XU>f+$tOw9n(ft*!TK`ZK zM^}6{k53281s;@o*clg%>`E1$znE|OOvi3`@HXi|R*-N`U+g2+XT0g{l(ey@CmiBt z=^QTUhPR6qjH?v2V(!%zugB*rdU)Ls*qIsRc-FSL@(uL;3{r(MzV?>=_uGcC&>^o39j+`MOYjt%K`nPg-g0 zgvr<2%N8q5r5XeZ)yw<4QfE@Bi0=ItJHld*Q%5c9Cry-i;m)f+NnxVsiVn`=owaTJ zSC>{G9cZtI-2I;9Ex2HqNx`UtGc+lQH_}~Fsr7BLJ9I0qO&`V6Avz$lXQB~{lw&A# zNb5nwDw*TE)l^QE3yAQ(0nHF)Gr#&nIbM}Fjcev>;30T~$09QVQ+kY*Q#B?3A$^on zW4P8p{`OqM@pF<~_^^17li;#~K7m3V7-#BaW`ty16f%AITmI%=y_m6GsSxY(xr6<0 zexH3Fh26o^L+stnz5j)`_l#<)?b=0yAV?RacWEM3k)pKN=+Z=LfT;8m0@5K61nC_l zC@3IRq)7=#4IKrM4icmUL=gxi)CeK&^?vXBeB+Gg*+0I0_8I3#28?@TtgL&@dCxV= zHLt1dUbe8&lz%11y!CDf*P^D{Z|B#?cxG9K$hz&%bQLvKEMlzMd(-^`wvbhf<&Mh{ z8nwV8FiM})SL=F*N=n`nh~}4^W$bl+L0@8b!Xb6!XJ*=*zs*hxt+uRE$Y6ri3QIy! zut~oIcjiyXc<1?F6p=J5$S+6OaX`^f6UBhCGvt52rjJ*#uY!k@v}un7JZ_=iOKy~J zQyQaNz*x@LOYT|Vhw}|va|@JW*WtDBk#&&((m6#Z)c4|TSGUCZEJqA zT%(u%qL^GYeT<%O{vOeXfKPW`C@mN~CrhS=aWpNm5nd%oFPLO{pG_S!d!>-+blYI{ z^KK_%2SLOD0k{i%?s#=YH;n?&e|4*sMNt?gs}3OH-s+!fBs;DddX>$8dd_2lrP)Hw z>j8y#YcA?N0fYzXv%k zLZn5%g}600l=g*6FOEn&W956xFY1E5qJ!Hd=!;c{O*fD^gTDm0Uy@mGx!4fkbh_#8 zDz$+=@@@{?{k0aH`y~01rdp@F_jC4%<6qpxlTh*SBqCNPUYEhlHrjc$tSXMjCBpT*As3p?cI>DI7TRK(4XXq#T z+>f7oi0igRyh!$S4XX=CBI}@S$#M2faizV9WF3t8^`=IZQGZ8Ea{q-_X90lIb%uUk{tg1yHG$jsh9wlmVB6#b8<3XmGX_u%7ZZ@9QxV0k8GPkjaI8^1j!fdH` z6#wjzQQxEXPh3t|8YdVi^E#L-n0vW79@13+LKqdjhFSq#!>l%83hZ~n#BWoTj=USC zN?kw(ZtPI+EJCDLy%$OfMl@LuBS|~B*Jn%^g8c?s@v%8l84h2T%<`|Fdztj<1nq-S zzs9xtL;Pn&jmpws{`JPz`cCu=ytu%qF|%jl?uQJA#The^V8@H~8COs@KYlRpsMm6Q zEluR&vRo^ynld-ON^<=83SNn1Y%J*DpR=8n%s01pI0*ez?XZ&vm7AUzpEuthv^sqm zK|B05IA=LKKgqA$A=tG?Wl_w8Z#YP-H%K1mf}flKav)!$QR|rgmWA|4KtsaJe-3Pj>AbZ2cISHxKb=Ub=dSV5 zDr9qFV=T-4!iG>@2@pB zkB`dr8)(!tuaIjffu1?e;jHBVxrfQqPCkOsU@X3qZEkoahIoETVU5UKhth8U5M>2P zvW9gD-Jjc%7(TPbA0qvMdR>7Ys1(sC*TyXh=XHfXNGH|an`~tEypIYS9@ey#Y-x!! zQS6p|JmIOL??;2$rMHqYUd@2Mz=HeXiCTiqh9<0}EQ`8C^_R7rayya?P^GwyUeP1O0@Q=18mlN36E3XR>z8(O!a(UkF=ds(LMbETBVX^vCc*)e%R8jqcR_rybA39ya?kT67# z>&)+hi>=rM?{1zwyWfp$)c@2vKo0r+bL50_08WZfLO2k~+$xJ|M4ig2(w`YWlQvtt zHM%|9d-y-Qd`up`Xg0K<9P#WMX3KJFJ8J2DU@apG2=0y5?8rWt z;>tj}f}Y|_>9ziVuCyhUvRG3kN6>!V#Qu0$zW9p|wsm-zn<*aT(=R3-M9-hV=45)) zr{-PP6_G16Ph@ImIu*#)#7i+=?TjnJ7dD!YCG*~6t?e9)+ye6-BE z`qdDIaSuA4zg2(o79Boume7O62E1YrFgqkc!oJlAqp@#3k zqfwLg9$aw0cSd1vzb>H5GjHp#U#@xf>j&ra-;af88Ja9RiwT3VT3kzrb0k&5Nq;_f z-e6PcYyx_OZ{A{ZTi$DeCie%;-Xo*L5wR$7?GL7B25uSaLx*<+5hkQ8;_X90!xgJ| zWrg#0kV`pCx!F@WCVWC~?j`q8Ppww`XeM7KZmy<9?o;ESG{J+A@%?&%@YG?`{Bv|K zo_tLakdh5ezp-QY!E2S-7_F~nh%z%E*UfxkUKH-t-|fhr-U%E>d!2Qkj542Ap-f8qiH(ceDvD=}uRxarB8K`NphrK+`l?uC~p-n;C$#ZHEQ5LlSDI(?7|!M2e*A zm3=+ebfCP#dLl?>nIcmKEw>HxGzxR9f5P1g3C_t0Qcc&dvA6BM(QX;sP&a-GFoc`EpbWdM2KxOWn%)hZb7lh=})!Yo-Jd7p% z4#(keGE4lP4eo|+UT5<*E;I@|Kcq?;R%jl+cym7aA=MbezK5^SnJSnSD>5kil1ovG zS7uvlgWZs!18VM7-H@+o#2Umi@DR3m6u7vl)3g~8HwmDhBDl%?1t*5uV~EQkgq5Y< z{7YFk^ZIPFM@I0^KW5yU_kL{s{e@j!f;FSt=SOziAehIo0)_sBP>EZLqR6>-su6(d z1X*>Z!@LO!U@=_zpw}R&!ezP@eS`^vLLi31 zAC~I9RIUKkB<2VnPc0GHr90GpmTHtF=DY>>PBBK=9!P2XGvyMZHrKQ(%Ji}I)3l4v z^LYb=1+|j3*u>={gjBnsczE48AYt4&cgWfp-r%irT706Lc5P?-w;vXBNeP-H%+aoj z;~xbDhxO%_#>TweKCyfa50bTPfb&BT2HpHVAeCDmm!}E{&7CsH9(ur(HB;DORus0X zpC^~_nWsrR@IN5)w&9aMAQhF>pV8q>)1A&gYD;%E$0JY(kJD_*8MgukgkGzYB`_Nf!CSH38ji=cVW!06@NY7a zcqYi{i`H}jxybaIE1}81cY2sF;L0O0u4zeD+*jtw4<=;c?Q%Z7CZ3y&&KY0c2)QU~ zpY3|EKo&Xk8FQ7Flb92aaf7BsD2$a7Fi9GoH5;K$L|JxQdyfkv)C0-978&0vsIv7w zZk+X_P?OL^6P!~HJNX(>vI6&`O$yL7mxW=^A1|V57R8(w8r5N6d_SyK)Ofu7!nkQx ztrL|T;>^8Wc{1d#1=&@W-O+;jG7}1|IQ|1F1_*e4 zmq!^$#mmrGrOhQ)2x+HJh_0axW%wI)WYSFJY-~_2=?;`FaMpTAFN#lBdr2k5>^BRo z58CQq(Y)tC3Ny(rAsm)gLhRhI_gaga-nGI~`mysGM~9~IJBD2qqPNV}tITKw7b$mO_%MJpNoX@@noz)3`L{vh59U2>#M;^{rnfS5 zUrOoI&S#hg^h*A>4F+4U8fNF3JJcVDbs^h zjfU4MC+);G1N5;R{1t(8Q%Wzfx4u(-KYgju>&-%wAE>zSV1@|q8D#-xH}DhVo+4N) zgW(p5Juo`+DP==B+li1`g;H*2rC@!-5}%rn)ho_c87M1@-|^6q@JoQ(xVoT4W>RB^7oZ~%TH96|5qz?9ZK>p(MJgFyPrZ^bN(d}@KI>a`X;ZqN9n__3cx z@tKauZo-GH+5r?1o|rpn^d4rs)m?n8vj7-gVyl$);XtVdMP;VFq(9* zO7B%pgr=bJM*DNCt&OU-DSc&(@lWYx!(MG=+`1mn%ak9Y{NQ>VQ`v@9@n>vesP3Y{ zl_aZ0nT4#QpdYhNMt1Ki6Jyj+`c3FimG3*SylFVP@!Khwu$@QnTfTcA5kWF9^O)2{ z;=*mQ--C@I=)?iNZTv;R!|1TZUd}f7NHqAwK`~Dz(9aJeY)EFy;b#V|Pm4RnY&{D& zN~YwZScGgmgR7@yRxHCY5YsjNr^{`R<+Xpnz4!tc|`O>$7)fEnU$-azi^ z<{{xUS5q5JKQeLK_}=6DCq3-?GOx=urE9W?!>g9jE0sHfZutr`)yf@afes$$m%ij! zF%Gg138+7Pn$ovQJ!bJ>g-N`4>omJKoIM#J@Ab^fZpwp|4{hh@&gsh3^7`#T{d*g5Rk<4)V}Yd1f6 zL-Oea3g{?oBtP6ztcJ2`6k379V^M|>vy@Ou1kxPZhxCqnAMZX}`PS=o(agvB@%K9H z1H3r_h5@E!xre>o2+XbiZl%`uq!%e|ym4gqB}gyp%8d-WNIR7~LPq{vU~VnxUlH_q zxSG5bnB`J$^V#H9yP(X{JYbaISnRnVA!DnonGeOUOnuENjDKC0D6!AVQLdUs<=V?s z&pMW_9hkRYYBSoH-l`54Jerwp*a(UFS4E|&bqdHtKF~tvK(B{(YjXf({y(<_0q)ZK zr@3SkBKLB6Z?*7BbKh4D^Ri!AZpS0>(_(dF<*~Y|m%Z#cLYk%P^lywlj}|GEsN5N) zqKqz{OEM*-<`Bx4kDifj-jK2eu!k>+(%(@tB82Jc>aWRn;1L7d^|Ab-d;PvK?mY6m zA1o=ZjlY}{Roq@w+^~yIJ=ZN9zfw~&F_0$UW#Pp0kcArL7rprrAf+tq#$o2Lg98yX zrzj1vWhk=;g^!riTg$dFx&lc$3-fkupv;BIyr_Ai(QM|(CR>SOvZz0E7RpY79|jQP z`h`z`Ox%`VfvybfCz_rLTjZO*+J5=Pc zSan%ZNk4Dq46Dnb;bhViNuC|H@Q{hQi|s81MWCw+&QpXa-&MO_t zyt36b{v>Z%{0?qUJpG%I^iW1}n&y>yd40L$Gz-$56J-)Wm>Eax+_NL;~&kRtLHQ$4nLbwR-MV%Bxu+P(_(WqE7m-u9RWQnG$A4xpd! z1utKma=@CXEaa|SAM4+|0?Pu>yW{|xc~K04l3In5|Xdn+(_zqGRxUJ|0oNcH}mIX4VB?qSEWQkKIR#3aWQcS7byV1zdQiYpuft>;Q>7#z=qqb#D}i*8rKu{ z=wyGK?K-9a^iKnk;kj}M{TCyZn9Foy)5Lp&nKiMlJ zK2=?Vm&4UmPJ>q9y{xpqI@O5ZJ0)X?{{f?dovgW0X1TV$T}^F3D$Qf*!9 z%&NNw= zJ3(o`C3DXIcTGOWb6eJh1jZ}u?A0q<(QLc2s)K3o?()^ z+w!nSe?Yn^AHNK|92(#kz%R53R*q0)5Q3x%!nOWg65T3yTrF9-s;5%S*5kYqI|saV zgNJ!2OmWS`5jwAm7Y0E87*^!+i$#!deO#(CoMwHIYrLvfYZOqGs<%Xw9W& zcQJLl7umM=>6r-IGzTKW9|eIk^8b7J)WZh(4s1JIZK!adyLppa3h220>mzf3F+P2c zpk7gk%Hcz0EaOfKxOg&}a3-D$O)!R#rxb*iQ=>hQ(>wSaYAMqG~@e9J|aP z782!O6DV+6H;VAMYye}mKybvWeRFfBrjEU;kECQ@=Peggu@FRoa`A7&pjyvMeK@Js z0!YfFty{q-dv$2*8gkJdvDK3jnkdv`>AqR{2c&#_td&1PY^DHV@9I(%hA99pv|-hJ z;ajj9mf3;Ve>l%j`vfBU5bL0)(N-r=^Y-NS!MC>OE}fv-a;?h|Q~464hBq53wmWhD zK!c23n7cB}1-p1FJancw3h~J)k$sDL2)2^+`4MVWggj{DvfFJ?AAAnY7y#Q0S{j=D z6*hn89*wVb-tlC6?b=-6UPpU%`0YfgS}8okf1o1&U;MrNZ;J<#6e240g3lvNXAr{W!To88{^6WOS+`6s*w5Rx>MLy>?tQbJx1PVwAZ(gF z?=oZB@}skzNVip2hLE4-?m^N}&XGI^_$YQJ@Sh5ztCdx=mrG!p5;J1gy}V!r4jbYMk6s zR+ou|5ta8mg6?}}n0R#h=6w8?+LA8vIFX9{(oK!FW99YZrQSuJ`VUiR#%8u|m?yuH zQcb9|=$X&qkyVM53ZSeHWnMyPky;3|gTew@=SdJ8G8xEeI)h`C48tI28&z|an#>y~ zin#xP^sX2;{bDIpRjU<8@N(DC;0Hw&aqoJ37QSeeJ7 zT-28@C%rSBLiJOP)c{F~JOU#sr?U+?hz+jB%H0%AZf1vzwzGCEf=GVE=;gE+qzCIc zgbbmnk_fp^aOm(Y4K^M&vTl5>^V4wVaieFB66f+MeAO#xk-vF{ z%*pv?dTT#L<#>E8b4_W&3|5wpye!X#==La&HTv8;TYg#)Awa%PDx3KOs^jj#up$if zDPlkq1*y9B5oH?A0;xtnPl9`|?Rk1P=!a2q={^#kxoep=QjzCK^ElnU(b%zmUn2EQ z%y@DB_F<1o`%|1%>tqR={oT^Yv&-qvGIXT|>1f+2n0MfWd^(aznH`{aD}xDS!D4{h zXM%rK9?fBk#$ZJ$#73Lb^am>sb^h z71WTZyIa3G@bEnuEq}M68gzJ^y;hUmHvCv?)T0`G_1qIOmt-V3@7-+uWabK+Qk709 z71RgWZLC3$!^9Rel_zR&<1|@%do2S|YK%x1_ee&=kg^G{wU>@E>0LwH^Sg$b)|vXs z87H7%YTQ!4Ft)gha)wmF5u_$x9HiLMIPt=<_4UPUeDz%SSiHtU zbjW%+O#9LcAb|+}@Bb)K;K$%OQT2kTR?C+}`0|t*8o$)Xh^OwKZT-%z5`?9F=0B{S zrMeV9&#^dBG9gcUJJp$&?EZmtkw~S*pnswb!B*w7*ds{p@O$w!*tm?t!hGXZ5h0V2 zHh#YWznelPj>|@l<`W9-cgp7MzgfHITg}TqPRZv--e?;9@xi{LT_EeGR`q($(MI9H5VEeN&UdDZMcZxSuO){&@iciVfJgUjW-N`JBsKv z>wiz+tlv0iQONpHopsK0^+#n5mIO5xrGUAhz)Z>L7 zo_*r`YBohB#k-`Eo5ttXAJBo-Hn^`g)ha?9FxBI~xEDoJN41*>OMQC#fghR_2PB)K z&838JCD{YMk^O->pp!y|psmX%7fFe|gAP|GBCeCcM#j6nw&VLr)qDVmxxiwodU=Wu zmoij4UnSbu;FP9-_+fgbOzT=ZHDTG!SINbB(M<1b+nG?mRFcx@RuX(i^#`~IgFt}G zjBqBg$i|(mO~M^qe%8ti!8HY6jhDrK`Dr>OG5M%%T4b-p`Uks#R~(968<;ajA3pan zseg$I=?Z0v=)r207Lhe)H1x28PtBo79(O)ntZ4o0a9y@M+Wc*mPcQZ5Ce-AXcHLgA zYa#2;jotaJhLDhtVxsS6Y5???unc9L;!^+L^ArBxu(4DBnfbS?e^QQP?b^ZC_T(yQ z$&qwd3z&kv1)t3D&OIh2;PCP|fEzqXvpu)UTxWyl$Bhi9lzN8BGcx6qTGW&|tdeaN zpKc$L5nI-Zmn;z_72_JYy~)>%QXG$xd!r!Y(b4@8LE|@tO91MLb4YIpFpsX6tAGQc z&XV^yV-W5s+z(}`x+*TtGi~a5@#gJ!52$vR9Sf@pSjp6<^@vLq9=W426j2hyxP9i^ z@Y_)sQMcDuKS+$dzsz}tDkH%~;zd@bi61oofvF}dMh@vRik%r?^z>8^A{p>(;mhiq z?~)2|rPkFo#?CRInJaZ4jqPbU+oH{YK1HX~N-bUw_KhVLgzqw*cEf-7dyWa|B`(j^ z|4U$9n$>-sknWEo2v%*XH^;7*dQIjBj4bT~A}$AesBb1&SCzFSt)#^k=emi=I@$;- zM~*hOJ*>O*Lu1#In!@3VFFnn9w_ZS~M_fJB^!=V=7D>KOz@_4U@H@HZoVc=c3taU= z2?)&owCA9W+tBTS#x9}Dd%*Em5oYLFE&fgHT7JI&CgW?*72()gz5&fP&cZK^ZMI57 zBI@ZfY)$P9M~70RUqD6XEp(GYl^e29lBo-b>;9LmC;FExzh`|?CYAzM{t6}ZBKeT( zKuzxth($OC`5UH7zOpn>aLh~ws?WV~I4A{THP~p%C#)ZQa`=E$K$!2bicltURV<(6 zsVgXaPBS3p#2r8yey9y-v_a%yS1~C z;LXmuKcI@UBjHCUDgct-eH@AZ`3H1YA9@Da&5T@w)`F0;;f{Ym_Zf3fb`D{GK$(+8 ze?ar2l=#d@@W?8K0cd=>e3=9!cN|gGK)C{o0n6;O{_mEhK$UEE8iweb2fz=^T5Rq^ z4joQkAQXt3heo7=l{>y~erbu1p)su5kKSz_mxNk00-5u$p92#4cb_%p+djM^8%XW| zoSRvE{W0q>Fbht1-g#d*2N*(uanS51WTt13Q!@&6WV=%R$cz9MG^JpGZvgPGz^eIt_Nv-5{$Y65 zJ1x_-2h8eridCu#<+`GFw*-tBtNwsCd3hev3XIXMV*dL5w5H*8umYtcA|4TNnnR%> zUph@!f(!rZysVa!nlqqw_%twm?h9)6a@pxi1F?@AoR2Io$h^od;pRU_t43ZeWGsN? zj730CL$&4=3dxw`1LH(c%i&x&-5T(qivQZ~gUv%n$Z1|DXrrJWoif^$#Cj$eGr%PT zGPyuXS+bvIjfY7{thEMLzj^6Dx-Vrzee>rCKTo4;N|$gd@^3$ITnW$L+Vq};uM6c}zCuI#0BVQdN#6g83B!gQwSE?*?)WA{X%g7b3<|(+-WR+wt@5QLALB6aztIcntf~m6uQ+rNuJ1y2DNy?LB6BgOj_UJp->rTvM|%1ZJE>EmSof z)pg|?6iG}~es42yl3-&7MM#7Q}FQMNI9|+;$d^b(V=_?N<1Y)(HPc zHm5-2Ow=>V=VN$RhdM4N6;Bqyuqw0iuls%T=;SeMf#2^r9>TqG(aqO)*3P{qkbf_A zgb{W7$rZ55`k9}9*F^w2v2{uq)hG25FKP*FTr)a5Q2gkvpk|S?J@%PO{VgtXloBin+F9WNt)GIE&iXW2Lf+k&}4}at&_2H~E+5{`W!cJR~&$ zgKjE&p%((cObC@(rPomXhMDcg3W>~vyR9C#Xqq1#&|V$ndpyJI9GLt;2y&TfV5n;h z{Afv-lscpiWwraddBKxA^q#GJsbes>!TTacwL(mgDBD(?IWqqIotk1sU6P!;Y@EGw{G#LUJ&7Aocr2AIfTc3;h=Q)I4l53s|KZG>eBVc@rrf&iG(egZU)37t{XU^Xb zUHGS<6Ncd89-tH>oInm(5mfv#dv9E)vTTIkWNoR{q1#=_K>VrTJr`4qqP$b4fQzbp z=bMU%-X&)LaKnLyO|=tuEIc;0waF+fI74&t*Kz%?^lSCDAH`A(YhR}uwn^D1_Gi5l z&`b>iVzqGFdHZmshzNDbCsAdguJyZ za#!K+I%HndKKcHC^Y&l=pSlVEmtU-t>m6#dW_19c1~~k?qH)IhXTC)6N}xqL%!h@V z=_lQklgq1FRe8JiZ#cwR~wx=F`w5vd|iM#qRz2v>`mwvA1b|R<`74mcbXPZ_(LtCm(aiLI8 zQB71Ls5itpN63*2tCIX`nPn>DlenVnSe@=|hWFP+QlIfHREL3CH?gVNKr`>5)rGIW z7NOW}v6NgXjnyXb)h=w_e9Si;lQWUmKbGZk?_GS75~Wy9$8<$^g@u`ISoRi5Qd$7! zCEyg$efY6@NQ%0kwy={XVmv~O#1N3A&P;ccsP(dDkYUk%QFL;GGM7J>q%HcrDt_Ij zMc1@D{$Vc<5i3PqLmDO`2f;#}5*rwa+!X3mGy7*~Q%o zecq`ZRE<&vFGA0d(oBd-DuFq>?hPfs;7GXOLRA|}pdnLXNqi{h!&{sQmPO50MxR5+ z=&BITr*9Az#9{lo84UJdXBuXDy+o?pXN*@5=x z6NmYe>ffxynrK@BP%0TQw&(6s$>HKoKQA7&a*gAy9*wspC^?E%>`fJ>esIH$y7>cX zbj2_&1_h?GIb3gzC=aRBNsQF#6dGXZyB zm-w>dZw_9xs-e?hnp$#Bo0>jVy*Z_vSL|FoKN56BUt$+`N6ah1uksaK4h5R- z7(jiL*(S_|XTQFI}kkkWh4C{-d6a<2Tyxk4tEIX@D#ND5Rfr_7nv+H!-9Z zaY?>L!=FceT~HCpE=8SE)P}zXJhiszNq^6fnr(rr)^F~JrAIcLe@B1aRDYjZS)w); z4Z*8y+SH@-J=KL3@YhP5i{eJq&BLgGL&Poa1dOiMENZJ{=G(F8j5D0Tp?>`Mp`FO{ z`2McG*emIG$(enxK(zYRJDdm&V$Rc=$MwXf3}o?$+D@waW>B-Msc$yBbmp}IZBU3N z=Q^KB99j-}KTdb7y1b+P11#g#8D8r<~)o6fVS}>-248QYuvZQnFa5SJLFj0lxVRPr6;Zn<_my?%=ElSmJM0O2qy|LpIi7FxZ z*=r3j3Li!<9WrO4ZW5-ZeE&)^B1Z6vQ)c^t^jZ({NP;*l{5Xd*Z$| zS*~j2QP8_ySD(WsrUbt$Dak&K&tlkBu9U`$oYB!+sgD3!$O~C+C+_3n-3}6j&z4!i zS;lRXlcvw?Y|)?P&gWkMNI_{2G+#cEPR+vM4WU!Zi_vmNL%qwKTk#IDWuvwe-2ei)(IEEA&JAg((S@@qz5xe8M$4{RlWibRv;Z0+3 z>q%O7Eh%6YDAOJ@l8^w$j6Cu;U)n!bFd=Tmr#FYdC@ARy>p{8jLiphFELm+6$by`n zC4&L?o*PU~(f!8?w7t=cQs^u^tU#uZJDyD2?p!5!QUn8tz)eO`fZcW_6;O1F|FKfL zXbX@e{AZKBr|yGCP+t;|#9?VA{Q&{49Fi4qO0`FUkyt<<-9HztcH}saZ+Ufhfvm}y zN0i3ZliCktAbT5Uj{x>qh=~KjUQr+^^RFRn|5&R$LM4Kyn2LWp1KR>vIBb1SXTL=- zBYSH)fsKwqd;fq)Y<|EnEP(Uk?@QAs!`i|dv}WXbU~4as)z>MT+hE%Nv1HQ@sHG@2 z$mM(B|68f9J5uN`5!(8M&jJrBu9J=AzVfnqTVa3h0IXtY>H6$9_S;0w#744D4b@Pp z-$88^#^wJpZ9yjXGzqiD+3I>4)cOZBnP=tqw_I7$j}O771G8^TaLM0uieO^<8k{y3 zy%QChYaC0JR{v*dGMUH?hC>Aw1dM1Et3^-BTUL(gC|;+?Oex_Fw%yrAh73y+p50bq zIWH4}Z&$o}ok#2y2@jO5^-UWt%nBfn-%{f-w3H?2h4yR9;i@>}7ThUapB7sqVK3Na zM|Vo}!>$5e3wuQTbWPh=Ajy|$_iC)QgW@Y6WBn~4E{)109Ut{yB}MmZoh9U#!%7EB zwF_;|Dag*=HsTeO%N$sl+2%*59VJhcG<>YT`l)ubpiX-O38tWhA16&wkf$D? zd>WB%H782BmX@qD-sss90JNP5$=U0R=F7CHkC@(;7mM~<5x&@WPGy)QRV{8*?0e$W z35P@Z9*~SNJCy1$0km-jAUKdQ-!cm=02I4g_iNDsxByVUNX5k)`4V!;PhLGhq>BY!Z^(yU%j$7Qky&WHfCFE^rw=Y_oy-v`qu^0{&T~i@Nit( zyu1RdCwAaX2%({?H9zOwH}{;n^&>8B8As=!(mQLqvS(yUo`-xxe}>Bps$XdF@wM~L zIMp&79cjn7{rO{SeMsClqt6*t@- z%DeHup-Q0D?72kSeRF8!hwT=4%vPT!CO3?G1f))*|aTUTS1p&?j2~HsU|pq4n2|P;D&QjDaCHTWCJY&E5(N95x*p}zoYbp^qn(xLIl3Q0?|dyl>bAFFtQf0 zvzahDn5)nSW%i`v<=0U$-X9Rf={3 zHd>&Iuai9DM>k|Km7FJY;u1VCZ`?@e{MU5pc~X!`WphFsFZM{dP$ z8dc6=a}K)hOnFVuov<=%3V%Cs>#4rU5R34zfTi!p)%mY8lDZx(67VG0kx&D1cC|Ty zq7@uxG>b5VF&B>S?@!<#$3pU=nuwpoixIPab|zxp*)1U~+zf?MXPPOz5#tvSnqx`} z)E0!YgcXZ1G~KjP1^S|Ymd!T|3c~E^3;&^WPjAt#ZB{JVDHeP*;vmhf zhDUZ%FN}On^r%1#Dgx}GZME}3gSr-ZmJ=GvIQ;dE+?av#ntmE?W}yb(Ah>1~#)IAN zhBcP|q@>BI))X2d2Q>;jVB;FKn_q-@M(Ze@qDkr<7Ov!B13QO!v}o3(L42T?*KXHQqsm z_-s+Jbz;9#|Hq{Af>i$*leOOt7f~CY<-dQpEDG(K^Ddx$3M;xtKNtM{>6m}1t51x6 zyHyQiN57sKb~=PG+z1p>d}2C%oF_z0Of4tu4XP=m?OU&)_HK7JO^N7tyX8V`xU^X~ zDx?jPBfD1LaPHSeBE5l}K8wbU034iU*ahY~yFwJu^1p}o3=)X4(laK;yNJ+>!MdIf zOjs8@@BHh`{dM>&^O)260MOY}v%&E8eV6I?jqm<|*e@Ud7B&wqIP51DB=#R(|b?HGMLl+#_62M+WXZXe}7+KLz?6b3@ijost%_E_jiAd zeYwuZ)?hYovAHyL3_h$R;o-!#{#cT62*{0`g9WgQ{h=z~pGgXLtDW+y# z<`qlV({laC5x21zoXx+u@~Y#AV%gN(+Jp*f9nWEsyFT&Y{*e_~^AuiNap)a=5<I?7Hd?UP4n&PNz<+U5~^aIy4y9|+OGnp(@+4odoHE=FA2CkzT?T>vDTRt;2O?FG*Cc%KdgMYg>~cphCEu$e1)7 z7Qfv{&2s1N3Rte2MG->%TYSPoS{XIz~>?6r&$L}Dd6*Dw$lvNNM-O@&(N8eH}0L>M($Aj=y)EbP9@8&;dF4FeEB)msTZm3Q1&tMv|fcz!+&HzP{ zppc|g%OCvY=P;08eIZ|MYhjb&)Rf_rtn`Fd_vQw@&i(Q?G*%r5|I=zRk~rIg0<&&6 zhST)`@V3sJ2WrqbS#A?_f$2*cn4fg)lrPM zUo#ZBNi88y+gGhF9k_WI3sxV7PLW^i!8f|Wy+1Q`!g{#t+K{;(h*}z9n0O5>MtvNt_as)lSjOT-B)PTZG<(aH+JYNlc$Ge8*XH} z$PZRHW|@usE6V+^57arL8_BdUoQOf|MmK_a+kHquMy=s+2+Ci9!9Dl3^4jRj)Wq@I zp9(AmL#+nTf5HEeW_(Az$TJbs!rb0SPa}TqaV@#UO$?KAQl%>(5tJqZ3ep9XB47kWT7W>1-VqRxE?uNV zN(j9d0qIRbO(;qUBs3!=@vPte|M&i%v-ckNo-@upZ_cH{&k0J+H?Y6{-D8qx^C zVghWC*;=KGYGSC}u>_<1=JxmNXI(KbhngqUd7zI;IY6LMM?XL7RJBJv>@9$0)y^H> zoc`D}<)b=9Cw4#d+NINxZ3p3RnWF1YgPD5D_1rBMTKa7sC{4vz_*~*k@_a=43<5f* z+XWEHoksIupdRZF1$%N4fyFNMUdrZZN{;K2Z8EStk8=*^i{a}3wogqoqpD@20Q)Pq?4YXvKrRDO(hwzWgL zrcb+{oVULHsOmST&u#8SEBU4vi!Tp}1xZwErH0}H2%Vn*EAbo8iT4{5iT>6IC7<1E7W9?A{oJz6SnVv!aokD8P3VC0I!a4PQaTE0lqi+h}?H(H4t=3=6@HCya{ zoXJ|fv}nFDioi$pp#Zmx6eXIESV2lax8!PWk1(BYC+T)NU+E-vW5aNb{gS%o zmX2^#m+akT>xV+|npFuKq18rgzx-kVs1d|To)NgHXqNzD@KE5p^oS6|n^c5ITlZxl z#9sFJ5%nPY=_1fNQY%O+@5PQ&Vs3x_lI*KKBT!I;eSFGIL7K)phqqsV=wM(8>euXu zeAy40Ce%3^nt>GbTy7iYQ5#dm3hP^N`!6<{+ZJfq8tv%O&l|jN8y@VdQ9lQUS5Y1H zq67J10+j9CKeJl1;31MeBQo0Q%a{}YlGZq#w!CgOmKfm>|JrX~svW<9!y-_yd~kxH z^&n~!yKE_t?x*^Jq__F;KW?0^I-ka0gzPy&*cq_tGUOJGQ*-d~Uxm?IC}?xkGSj1G zy0yd(88s+{Q*OF_J^Z3p4zGi9c2Fe&QDXpn(Gj68J+Z-l$`OTtGb%L9;a75f*B&M6 zAm3-3FeR|x+QmZ4`9bo~S_Sa6=LFZ!kRQFL%Mm36JIm?ny`v>2Cj<3K*UZ&=%f&&l z2xvs(^4m@9#lA3#+3k2DY8L%}t=YbVos6Q@$wOMjcF!@c%mBnfae69zZuG3e+cUtS33TMhJnoC-X8PhqMMoUS}!YyI=ZO!c?)61QcxEG$Yk zGf%Do-#!UN+l>yOijEY5{#t2xP<#2V#bCcI(}*MP9QL|FR=@Oatxz;mG;_a*?#AU+ z_s2pm1i?4uU*TT)OhjP73z-+ zi*Pz9FJYkq%197CQy@=b3}kGl)kT+eN?qF(lo^jX)MCk5POQ1T` zm;Npo^ZKG5f6$socpfbYVD&u`?dmzgq_PI|39tYtXcgl4;+=Fyl}58X&#l*Mh7GP| z=LWBZ-?le2!U*|ovP&^J39$+BzV4w4y1Y8OxU7KZ8;f)!a(I5SQBQL9lv-z(lHh^t zi9FF0wm7U;{d~RdTng)X2MB#M*~GoyVR{!{Upue0Bm~LWSg>U}yF?yCjqUEAy&>Ku<+dv<>lH&9hP$lZ zvwQt~=x?SmQ5;a*v*VD zUtJAVjin&z0<$M1Awv)EhXs{@cS>RQJ9GRj69T>5&=iF^_JGuGi!M(=;=bA=PKV_D zO=15ZZ}$aox+Ix3>0He7@|CS+adoO`78C0rLscX{hde52~!5MBQJ*Q?>${&V4dnz7R9(+dYeC51)`>Ion znrLFX2myFLqpOKV7*K7WSJ1}qiLF^Plv~Zg`|FtH$y?8iDb_2WrKY^m6QVqFScUg> z#0k*Ao*6~A-9E3ZO3ZXZE z!U$m!pbq`QQhH#LIBX%P9o^XV|Z1YSkM<|9kl1`hK(hjrIH+i41Cmu zfd~qsbL9xei1Q^!Kts`MMtvWDc_aDg>Fbexk^?Wr9;bFvT)FTj-j8{?o+8cg7wOUI z%urb%`BRV!rS#v4vp?ep0b+$66%0KiZSp6mAFX*cdF3S;IF!Mn<+cZXr*1+SJ7wMok7rTTUqC7vCN%$Y=f>H`lr{I|fj zU&O2Ys(|1i1;`zgdjC<3aQRXqAo9=xIz-4M46jJyfYhDX6Z9RI#R)-Z13%+Nd`4(J za>fIN;hZyUOr+AuyoP%Cd5HI1%hlw>oJ1rBw40C9M<<2b;~Q!|L1KUDHGn;oAAN~M zZ7w`YM8CG0PmT_ANKSpzseE5jSFw-W__)a0Y2~v5_tYPp!}d zUm@~OR}!UGt*c(_n5K)lZzy9J>f-#zYa?XQt(~6l%-!Wjg4N06D$uNqUXr|FL(E3X z_Uz^E`|^TyL)+&QcLQjS4;DAa2)ISno|nO`-(u?7#HBn)%~OU4fC zjzfptGkL>CyYZsQDUOtyx@anzO^KY$tbOAK0MSYNfoZ5|-(hro~q!!I`u_M0C z!d_c19ZjEmZ}_I|!Z-g=7^t=}j0{N}@$`de0MdLcYME~e!N+eMXd~LkWVOTH)>l{F z7*ZVkYF>=fdjCb@wV^MM{9h;*1QtQ12?-b}Wh>lnmU|I88^*MNTDICcRkL!M*7vq? zdz(r%OsPEd8`Vp<%AYMQR3dh!I|a?!sj8oM$uhKI0ed6IN7fIGl1IE;%c@Da8D^<} z)dWuXt6zbt5t{G}y(-x#uz)jS7HCYq9^0*I%@b(xoTd^hq5Y+iPFHtIZkM7#pVE#R zvfq$^h+#xga6SKb6XXPp~2mV8mQFw6M6GHQz zLv>cFKEGfH=v>>*x%PKq@>uYU12!b#J$AYe2+(Cp)j$46OLU{h_ZISF>r&WUAe?j? z;RpKfTfK=>`LM5JY=0>1ME_8f$e&2okw&8kg1-g-r@OpcQyV3YyiRPUfZ!8{6CFY> zzNbI$@}!#U=br&TqUv|V5K*lb_EC?ldz2W76J!B+23_Ste~o96d42PLe;`f%=7A}&ppT1$98S4$uLD!ii56wi`=H3W%(6GU`E zT7}X3K>5uy(E^#zas=Z6{;XR`NWI4|JWw3=cWTgM_+TdchRfE>(aZgrIPIkoC)y3rAd;hs6O`wznc%4oYGKQ{&pivQ9=&X z7(2oZSU&?ZWVqK>-Gh$cK4*%j-;X->P~nu0`i`)p*PgIkw!YTJNn*0}u2%uDxJ2i3#F&55JcbRIPz=MBpXO zIcP7|xK|c#aZ|6paHf*1xaOU#eR+MI@}#HJ4rd@R@6eMcmJgh=;_I#H9{^5%4nmpE znPFY!q6PSkg)6?GhMTQkPRM++=%(ejMadS}wuxQJT$EIfHY>&rGwiED93zy^oqDdxx0~ctdaB)S>zKrkxM?pW#qb zK&e_M6-XV~Tt73e$E^o*PGLQQXYIe#Tl*kgr8Yu0c|Pp%LHk|PpDk=AN7B+!1a;vl zPhOC++Bpe!efhj<=BpB7$17A28J(6nwR8Lx{?hpl@Ew)p`sk6@85gli))(^h?Mw4sp!}|}f z60Jjx6`l=vQIs9-^neR5*&HR)`Gz?aqw3 z!OFQ2>xk0!%mYvR$PjM8d-E9ye!c4Sc;~l3^ytsL>p{1jroIKFWl0+}@vGSf)&A|d7P6{P$LJ?=;P?(ImHBbgFAD2 zCL3FL7qEvXIp6ymZNA*4!;9k=XC>7ylHRFv5|w7vbnt?G0^ABWd=@}aw#?It^%JG( z){0H-vA{l1Y>%5=FI^!pVXvlH$%L!lYYIY3rlH5=Q)~r@WPpL8SU1PuD%N(#3YXau zdUEgMqD}MHomau%>5?U5g|(XH(^BbE5qEK8VL*goQae3Sdyag)swydlr*D=6^`gzG zQu|;5=-7_Clq-CYcY`&P&CxtzB5j({^W9z01ELd7|3nYR(WMWtGv@`OVm_g^ZP{_T z8yOMRJ`xk9sFx}un?-JZqS?G#kckUZ`kL_DJrBJaFHrWV--2Ey#j7)trw#M2&-zG! zs1qFSw|G#a7KXh((X*INVy2&#tjP_WHI-ODieL6LJCxHE!p(tjk2|895qlNIgp96b zj%gwf5RzsVq9&o(Hni0+8z7XVn2~~CEE!L^Eu0yL=;4rSd=*MD7)7RG!gJdtgq?)X zweq3)tN|}Tyh^ zLGR!P28<#`R`VHmWOt19SM?3dHqs$V+RgV*QCBZp z3Iv~=!{o9&8Q(tw@=3xYUXiEZ`Ma<2Y96hQHN55m zfIVk{!4gjj=jUp~nMX{d{Z!Ltkv3CCD$hDbjw<^SVMsr20K z2(C8;-#=YFhew9PT=!%0sK%ie3J4ZfR>+=wMjJ?mUK3N@Ll5bM^5@b&#PCVAIuVyu zzSwt$s2U~OHC$=K=XcWMI`nW+QEDs&i#tge{T;XS)N338Mfb;JY^vR*X|4-4CW^&s zw=8UkQc(nYM1!1?==;v(T%=qoo@2lsRLfAq84uz3pdl&Y4087q9+9D-&jNn zuZu&vxUKw%EOT8d%0Rq=)e2{@=sk4M1qB(Joi`7%9wMh4`fm76^zc3&Dp_U$AM$>3 zv|nVSndcV8B8v!MG)LI`pC`80=K#0EHjDv5lCes3uI<3>B3(aOs_1zLF>6W6)eWS* zyLmA2c75$z`|aSRe3oEUf+k=b3K$Lh=#piCtqyZcM;Wx@g%KT5>{vHu0VT{+dSoKJ z#aFXb35}%C^Esm@;6ZM~N#9e(%xY6jLdp7GpVik9?8$fCQ5zZQ=iJ`DD-#uT5v>Yh zL+5`FT-_&L;}GC%=Z5T!VU(lx>OHu$3wQLJrX1_r#_Q8t&2F5;{|;$Zvy}WG{*6cY zQUrnLWEe;#Kl69BYvAau2p@MZoxYy^C6x88)%En}t-l?SX*&WqV;}$@ev%Y@4Yv}xOSFTdEL=~2#9l=<+8CMCPoYFCHb(~E zQuVWPT;z0c)eO-izrfykX3C~&v5_IS(@wPqPDEiV4hNz<;Z7I3H&FL3;qqKPW z?&`>8Dr9rW*NtM-?vslPsZnRwg9n!B0S8uSoYt9W@N^1;s8)MNLrX&gbE{SO?B%_h z%9?s(9oEm08lppe7Z)Xzw67EZz_}=J3Te|OuVIox)dVp+5>>`MPaD2WW8D+l@`}pl zHJ;V>ZP*M5N`6_;`q3jl$Qlv6%4;49kvM4})UA%8B09iGr7UDzNqgJ0lk!AOLkf63 z<+fb1nxmMdVV~KfM#_(U6hSQj8cB6LK^7&-;?1!dxU=5!6IFdFzdm1;pt2~L3{CRr zr1SeYzxH%jX6lVZ5f?1iX0kcWerj|3Jrc5=ouH2{>;H-XMJee##C0Sn*hutc-APqH z1cNIVga?vSN3W$7$H=GFXzSgE+vALgtRDSYpa`HVnGn~N$3ByohK@_3g1K%pZC~`* zl|Up5MVGX#dkSLHkOp*ms-I}=s)PMW)xk0l@S042c7j7Ety(bq_%1M-VsN?f1{Orh zELs?FrEKg(9aIJbPpp-=*JZrlOjLNalc+Aa@U^Os2+TRyg(0Kqz;+p8EBlz7r@&%2&Jj zerv-H-*=k5H{L`~gnA(y?QbsVlGJB9oRXsQC<#>@;UH&*a4UvhdQl5PM#UDtN|50g zb_~5FB^i z-wAyc(iUIkRgtUBc~i^;obRPAq2~zn47+O>38RR7hNH|Q8v#AMSydSUZaz^obF}nW zVPPi>DBM17>r5X-Uyop&A7jW6`>lKJ&<;4N{GsUj2*OFMz;a5(ykiW7I1<=+?!53zZ z>A4Skec8={)yM08hTr4<5jy(Y&l!`uv6>qeSM8Obt(Cy^_?byjFh?0cDwt}$Q2N`B z1^#1PO=Im2W8C9F|MCHj?^2c6*%9d~_MIW0Y2mY5Y22E*y2hm-;C3Ktft?hV+5soH zikL0>q<1M~AB4V)S4xwrjcdx=a2GOAmzdwwwU9UBHG0#}w@9psr69Wt;S9^KL@>k( z*Eie9Vf>}+TV#_d$7qTMxd)N1-j+<68beXW+LtTy|B)Y1DsYLYO3Lx>V9_`ewH*^QQAsSO?bHXFWOnOwDx_R8LciRL@@XSKkB?c?2HjycN z%d*n^im%_SzVn@%0L&9(yCh%-N2W1dONvm+qnq*}N%!+<&ys)jC?SWPiWN@14?3TD zXXcIS7291~OV|GW?OnC!U4gK*doe}w(g(43rM|OF<@j}#!W^w({vEPpwlmO~;sVha z_~s74=`Nqjt(|!u94v(+mwhzyE3tDmH-0%n)#1Txbf@`iN~&u+NGkLk_mF<%CBZ4E z4UXf)2RE=QRkUp-)3fBzn@|a1Q~ZUGOfC*8l#qh9a2fBIs>BY^-IU9AbyM%P7P$2y zfPx$hmueqY&d3Rs6R&!?4fI(abnGQI09xf3b(c(uS}1rg^drzsV_g~H3rN&dVO!moH%~Oni224RRP*o z^9(y{8|SSub@{+~uS^ zU)Sn)W(w&UP-mJ|6FXH(E>(`sT0($ZIQef^kCfAMJ#%z4Nlq6p0zHf+KAQvbA2W<< zzs#tq!paDdV~<-^pk7;3^4FIxENy_Yk{KTmhdk>Oy`KK)U5OwI5sWG=f2!Yb37+wD zV%z&}_w90>GtD=3QobiM}?A6~5`-YrwL4$KjNGQzkAaUEUs;NCpGT0Gw-y!hwV=lY7WzE6vs zj?D*#vo|7~Oc!aw1g}cU?prN$k#f~+FoAq`3Z}h>4RkCb^%Fo38*|h5HpPBHhtA81 zy{Tjgtls6HS&2AJr|(#<(9ySc+g|~z9+~;Q?Dv*~np9yo7fYmkmro9NeB6JT$*MWw z2l{OlLNxsO5Fc$c@8}uS%B5wAT}R$kR)u~}rn}N4n)8g_h&6cJRvdpZ+sC2!yM+t$ zOJ&a$yQi+MLM%_mn1s1Ld|lA2Sv-G%XVAU0^{`X@!Zi6B_=m=nbLhB^$DQdpj)%ik zHx~+$mxd~Ul9<fPff?3C+B7tY-7lhz8#P1y?0u436vL)_7Q(l>4B>2~NkWw(9$+udRca1y}dRD$Ci z3KNW7$zA2u<-CW(LbdhLtdj1QL-lt*J&Op&iz)^Hc9rnC98_6Uy^VxcB%d*#y-Q_b zvhn6NWs};-r0l`;52gZBu3MXpG6K+BGp!V}92^{G&1sPp)On*PgWujg{M=`8eyEa* z)6L0=iu({Xn@&k-Dqg=;ntL*3z2mc_ey08{22=A0nwr{iJU8OIByfMLqdqD|a?SJ8 zPn22F_3f!0CAb%F+3uVY#Cn{z{w5waDr6~=0*Y2!fs(|50k z{|ufKm`>WY`9mRAH3iyfnJb7qk|(s5wrZFlDX zhhl=+{LnB6KtR;YNzi=q`?2q}W4}}cR+H9~4gsw(v>G<_Aovy#__$F4`*{K%8zNEu zyRRM?uKrU@$J_}mE~(Qdu#+r5-D=4Z=AnLdVa#5E$0%AE$sHUaoXJdrJAN6a^YAuG zXA((cy|LJIb(Qka`d={H4u@a`^56=!LSRSqX-6DXQKp-ozx!8L{E90>wO(myjT>~1 zp-j)i*S@7L9Slp$%xwrcmyq^;z6E%pTGmGR^B$K8`UAh3XWHXFTJHeSMN>WICNEE) zO6doY^~f_+joZx3cm~r~l5%)?h@FR+_c{=b-s?^mgt?JvM>&f=Op#N&(tt?BWT%`2# zMNQt{E7)vY_NsGahck!)YB=#1TGU;Jf6;e*xCz?a$ z(lccF*7u1xTgau2xqn8IgWFN$ZV;vVO^D3uXc(G-*Ak+S5lDhwb*>%%QQO#<^kh2a z;J2A|T#d-^W0gV;cBU?u#3!$fQeE)cHZuM`(f=P1##i;p&S!`zjyG(e8BnBB@9#(b|e6+wlKj6bH{M3 zGmjVlG>@x}Jcc_yY4W-F5#%q`ntT^~wV_`7?ytm^+s_deDH30a_ke?08s6h=J2fN> zW0%-!4b%#<5JHt}zf4L4rh=88Nj3Kjt8hoD?8WGB>C4{NY`CbMq(aX97XJGS_^$|- ze|OXWZC1p!TyXa`HI>kKZw%t=Rt)HkVsmtZK26 zjK6Nr`BBtWut2a>OT*>@_~q%v7WD6{QMR>teS05cx7ivK3gt9ZA``XfF0T7rON*kr zeTns4?}W{Tmm>vW-&09`p}bLVpqeLrnWr=%Tu%S8b~4*n)VI+4k{>tj-MFJg;rYb; zRrAGW;IS!?EK_mxs;XFuUifOcWH~D@q7>z1_N-};BIg8#7e3f0#&W*F9_bGo~y zD7idOU%ef}*NLjSnlN-;!!03xb^Ia=_$yxMisKFb2jxHI=P1>j+q6hdTJD6=V@V#w0aSJ6?(jJ6YsEsYCabW{!U+m{S0w?C6zD7UAVRCf0_R> zk!n>MFYqtUTzFYn82as7FU3d4ybBtE#ZR}8sjjGaW9voh79C0B8#+4oBF#)fFAGxf zYkZ{3|9=IrI~+c~8}-+Q5BSs~#`Bk@ii+hnT7b_QuO~DWspN%_Mw9jqo2WpA+_z_Dr_;8)H0v>DqtN z##2HKrkX=Wtmg)SXNUFN*#G9|f5l!W|8Y`i2&RH$^f&8-9l5k}tl7xu)y0|m``D-- ze?)l4@A5x)y|T6D&3WzhlhtR(yw!2)Q6GtJNtl69z*?w3xrt{RX{&q#-KTGjs1Zv4 zLvhX8*=!+q=m~$X`4Fpl?19VKgF0ivl+jXR`3h|F<*8D`#4LZhql+Ay6NvWOQG9i>~$XoJEo++Qi%V3f9>)m$}BWl z#L5-K1bw^;WB7U6p9@$gSo^cx6h}se2HZRpWShLxHFD!+LyMh-t{fk-vEt@63pfu( z4yB#_s%wwkwle08FJMD)R76;$6f zNa%)8!`6*guikT{*(#}0`SW}a8#A=KKcyzSTEz%KqSea^hvC~5s@99!Du`Ac-TKTA zI;@WduX=!nJ#zE+Sn4U$;cs24b$V)yv%`0b_h#zT7IRBp6qCmMC@x8X1rfq^8$S9{ z0&1qmt7UHHHD~k0^u$$SZ?b)9(zQsOE4Adp_%U27YDvXFDTK zB#b|w*2OI2BBZ{&eF98rqswK_oU-ij`IDRyhPLKM6|`K7ZR^=<&+dsQ_WR(Lc5DM+ zcs@JL`H*w3>hbi;goOC;>b z?O()ryxs8u?9>EgKMY#@2@3_K{4Wx)gQ}tJr38sHC#D`g4dz6J3fy3ajsZVWER&0S#9xkIcTwcyJbbg$(A^~eZX20;I5+xPIAr1J+VvR z_J|vZF2=zlWE6Hx(8p8t*4e62Q}qNjS-#2d_h_Vsz8WjHq}V&9=*UH=hK81X@F0jO zM?2z0qYXT8-l+8#;f-XR;LJJmTH?4JP{ z3cy#z6)dq0rb;A}+9Yxc(rPV7O@M@Eq4O?6Hj#QB(_;P%HeGo9p zdZOvBmZUtqdK07w75!IuM&J#^1DM;KS-J+Z*5T~pTeW=FY}BWE1N>sRLCm%*FVABP zFu3b9bGQT~Pv|`L4<2U)d&#ptDsFLF`wrKol^vu!+oGO`?8E2t$u%dzM1L zy?*RSqjHOq!L%&R3**SF`>vLShtC}o+MS-Jix|bh>d6t$&lvxvJn}+f-TZew*75vx zs^7B}YcspRK}yQ@R%ofsylv+e0OoMEl zsfS%6Sjn(1YE+;GFqfsOrKF3(to)0!ltPy=61QhXGTTR`rPdik&c{<+>ID506!?FP zb^1R7Q2k%|O-&c#ykjVD-0>U(${fo7hUWa=*Zp#8c-EcAM40#tfnhunp%==QU!LS& zZoT~p@?h8iHyu!^Jo)X5bji9a))UN!pGr=?)*x@cBrGZT=Cj1_r)7PT@4nV)_VHa7 zA9}69cUj>aNd)?80_L1QKi7p6U{a&UmGvO4HjCDlE@{oYQqwQ)k~F*c>w$GPu;>|Y zZ@H!Gn0nHV30i0JU8E@oqDxJ;_%BbvoWc8%=IWeDx&)8au{g5)gbc!lQYZG;<0&aD zYH?orcUgqrsD&n0XvkJ<+$oj|Q$;L0cd?_!2Iox9$8d zbMBLfJEehhDh%Mz>oxnQMKW&EGVPj?!+_BT{jUpsl7~21(uZMMa$i zeNzTGwIz)-&}Sai1>LHBqp0=fIz4H2YH4DlX<^?ER#2Hkk= z6!iUU=_lpU>=fECTL7361CqE4Dd$?_>@yX&UKMsgYVd!-9o$qlEP3;qJh zy!-KAMt~t)h&nCN7Vkl1sT<&6x1&c0aoa^J1Xj42jTyBu+b#4eYPI=Ci*OayI6jeP z49aP_coh-+^e-|^=Pz*N+?fXc-m3gOK>|G%N@j;j0{w#m(cb&CHp6)CQ`G_bPcMx% z_~uX^4viKC8lHj+gJ2}oGqm&Kxs0tb6bD+gdw;&dm|%@Re2kOMEO=>U*L$0I$M2-= ziW`Gr>r}y$1xQ2Er)AY*L!p%Atzy6eF5f@&d4#zBhr(6w1XjBblkg>F{`T`8RdMFq zsuO@mbFynv6b0Gu4S5HFAjHCm&V z+`zvm@hfl0b-j}R(!JC*o;`iILCj&%@cWuA(?vF&yJD0_I{iQo)&Qu^Z+A_VV5_VQ z_*@j?+CVz4&w~u4vh|X#swGzVyylHcJ|FppnwLU-lMr(z2bF0dm5{mG%0lW#K)S%7 z9+RER(9MC;0*tHH6Zr;{zuA7Oc@~`8R`d`hj3e*)gOo?F6B7L#&j8@q-dZTXNQ$#~fvdWH&b&Z49a?kpi$?IBBqs+JCUDngJZ>9(L%t=X>(htZNF!U+9!+@eK@^7N{NTX_MOb zR{bgM0hs8F#rCq+wY=zjJ*lsq-TCr#sm}RTwl?MYn-c4Hc-FL$PJUGe7 z8_msS5?>L=O`YD2tg&g&mUd5N2BjQdltWmOAIeN`JG{a#b~0_Nm>x1xg`C=qKMZWO#&GXL9&tI;HRQBZiT& z0!RfK*3}VZHkWsEPGKikdue~Seqc(lt!t`U1bMjk%`ZnmlPK2hSt;50UZ7F3Y=wARjrD}dZqfF z7q%@PNIQl~RJ_(4YN@8ny!K`LX~h*;8^za<-v*-xbu%TZwtIULro%(^1`=&S>-BPx zf;2_LPV2t|C2Y2;ej$#qK}K$NVK5r+vkpdx`u61M+8M{09{hMqc~+iK)h<(k7Jg-WhmH<^Y2(D8g7FR->MQ1%39xs5!6@lI7dix)>=|7CJG@P*n#{ z%1wLSYI8dRsS<+Jw4v?G;?MjfKIY}KdAlVcp>L|LwZy(DQSSGv8#lT`+HQTeLJk-N znvL%RCZF9Ab)dD!xHihLb-F;0eLK)a$<6FrO2O(0z`*Qd?oF%*Xmj^ zT&f|-p?hNYrfcpq%t;)IwfJI3c{j?m@J%9AQ_!0;Su!e*58-b>zkZRW%vgf8GS3< zUJp0jbGTk#O8VGpb1oF@mn~m2@~Gn_o>^+1Oj?_Zm?lsP)ag z3C{@txl7t zYral)?yu{xeYj8@Q}o1DsGq}g@F~qf{RL2L{y}=$1e84rbK4dxXs;?!UP9X z5uW#wVXi^d79KA=9tJ7_wI`^IoR&b91L z9TZhC?RHq-5Ni_MTUa)maNnI=(N58?F!}x(9-$|aVOK{0!`fPoe)%Z{(?f3qTg#;A zSz9)|dYRHkWJ9P+O8=dj-~AlPYw0?Ujt4_;4+JCcbXLJb$y5aEH4=@%#e+%A4|Aot z3=U<9H#LK=>~&n2QF9s1GIc*FpiS77uWBH?>SG)-zJ8zQC$~=mVl>-bYE~hk*H}QT z*YTalpf8<1V<-C$zKT*@)BubTq70<5NFKGRZ0_GbyF2CaBVnWuj(TIqsvyYPoXxJ>I01u~z+Bn(sdv2q~a2b&xGL$URc6bEEGcomQ@lL6pSIf)?tgIHX) zmPAUlLXwkS5{d9}(7%37Xpe?u3}}>r#7hKyJP>LhS%MePF))M#15J?HI{rcrEw+F8 z$=YfisKh^v{+Qn?d+-i?(9m8@$^*R|i-y(pM|c$y#D@)=W7m3B7-Be=2PD2U<92He zUWE;(%WkMX=zg5gdk*pL;I8^HP~JoyUEx=>OR}S>mx&7Scze7O(d=GV?Q%LA=LaM|i*f_U*EB<*j#m1X5bn}0et^FD{B!!ci31ug5+GbmC1E#0o zWDi^!nT6IUnsGaI_|8}~cJ<7(FKNEFe_FhD*nJkmpmH-}czv^j5{wO!IoSZB4x`9i z`l~P+0=TDH8{vsQ!c~&RY7klU_BO&?)u&~$`VLhbA#n_D!;sYMQ}i<2D^m6Pow zxvnQr=3Mze@yiWFrk(>9R1{B_`gOuD9MBx^2KHia`MhPuZ5MfbVIpNt*Y*6so!!Hs z2IIxcnT2oHb32_DdtOuaw^{?nV%HhaGX`p+8Nmcxu7Nr0;O;?VJxu0AbkTa&MlAZg zv^>ATF10tEQcMp6_O89YAQK4?0%N>TAXX#7n>PPE!Mc~jmT_Xg74-bmOFgKwf$}4{ z-}vy*15Rcg%UrrG=5LR%(*9%LPz+d}HDKK*a(y8P7wR})$uEVJsM!Icy^MEr_-m== zu%>teMpOFwUOo5XL|}8gaFR_*AYQ;Low`w;T*j@0`H+-W`g~E`+x%R!$AGgq!rl1s zrG=D(doEuL5XIoQ*Z6|yBzc!tzXz}eXG|`#E--4M;u$Z*!vg=JsKV8%9iYI= zy-Jqb>XCX^EVL-uL@3VZ3l%_{L|O&=^Kp-o;#8_L%dLna6GurAznV`fvzBW<5$-Nq z*sj?2*IrLg+bfa1U+8){mO)BcmDelwAU^@tz%Z~69HQnT)VZP7bNh-FGSsxGbaQ^@ z%JNJ4UJ}Ebi}jOVh0MN|DKr#M|$6(zEq^<=p>tp=H#^x_2}G#>1bk3XBu zqhu6@WA+qT928_1t9p~wU_ghIX@m_@$)aIAuDRoWD-)nflS!$FO!uQ){q9-1=7DJP zRZF+#S?MaozUaLym--{zamqKrHm2Xt9=y=gd)<{t!A97^-8)&wXLRLXCU|xIA~WMw z;_Y!}aFHf-6XK_PamItz4@G+G*@4-wCt9>?IXAAfKVz6S{{)P|P5w~CH3X!U#UenL z2`0vP{;1Dj6=c+LV77j$SJ7DYnAAw;TeEd7aiJ--ceL+6^bg#=#Yu526R|=KavVz# zsC7NA{ zeA$}$ZW=})1~3RRyiKSsC<8aMC!>4oW`w6(wY-tFcZw6LzQ_ECoWsh0QtD?-@{W)G z2$wqK1@0g`rmTyhPy?NRQT8;u=cAawNIrz4XoyuRp)vDG)_}xFyCX}GIh%M8Vi!s zqQWQN@ z8R_iGnWFcUegL!bwgbU2&@n%3Q9m8bM5r*Gl)Bmx_9)+=p}h%N)0%S8n0=GeG5$d! zt6=CGlla(E%{elS9^UKm%-->StU3>FKS>6J7R>LndfI+1c5kab`z$1O_?6if=K@u% zu(kiUnj~>`b=$jlvH|4`rwfk-3MKUz5}wUEW!p|4Rg8G()zwVw?JLApsM_5uB|WD= zgo2A>@|KmUq7th2X~96G1ndNz ztSb~BZHS-9%>U|#d=bvfnkah@12~08*5C=jj5FRac7k<}=MMQgvIa2=)u*ptK_Mr$ z&eUojrna@pTuXR3=0Rs5P2nzg`O-%yFh>aWBtF6;;}K&QiSBVvaeOC9&s~GFyn_W= zW)Oj2;UW-Y-B$(QABs(MWXr33X1pYXKM@V-c)s!$L@SJE=**8!B{1}X*skHH2rvT# zUa9W$R_JCYN<*sd-o?zTj)5^RP~5B0J>_@TF&%R1=YnUrS2~lZ2yk>A!C4z`8@5L6 zeHOPP<$$%9S4y9}(=<{tQYUvY4cWi@mFVa*HW_>sc#Va`dw5t9P&>#4Rm0g)xK2*Angmg53#2m-|fh8})CoM9dQ z^ML@1dIg$fZZl&)>*lVo5VIDGnx(x>{wn<6*n97&roMe&G>A$U=}ibym1?0#jfgZ6 zQ529Gl@0iU(hdb~$I_&= zsaijiOU4J%wO2Fct@A5YoI<;KFY%#)7|0kl7!ibO;{WOw27=N|um15|Yic`2>=>XSgLUwI8FFr^kxfx3^g3$(C z1ipL#P^5g~ZeG-hk_ER|mKC4#E_*y~rKKreoXV_XWvYRZe7093ETS$sO48h^3M`xV z1SCD1pwNKJm7wB*aTrrE!rzui7ya{#XZx+S2?phm<&o`D_sVtWd5dxJv;3EF9(F0E z>T@TKOaJh?1Kznj@^zwQ%mQ&cMxAz^;`8IiL}uHR6kIESxT^YQohO5ID1R&3%iv^s zR$`9U`I+~SqD$$LR7ORjn%=m)x|j}p! zdU<%*rDx4N0>RqOKom(7fa0)|sZ*_bgHPSvI+Woo!o-Sx3dV~yLZ^)=J8j7Fisi+( z=?+Wfm@+SsY*qV^*~Lsw%shzOI@Q23Ke?@b*4GaWq+P2Y-td+^Uujh@pp<5sC~W-6 zl>^T-_R57#+<~nq7%r}*_=6K#gKg_Vp6bLMCv1o1Oxz=UL`cYUDmGxJx<6bxPkHy? zvD@b>*O|ab5y#VufhpPoA>jRE1)3KMJgZ7B>J0^eB^yU8m0e?Q=hriq>&hmRa$MuL z9}%Z2U(&ss(xXWX>+jHl>}^kFgC*Vs>Jfz6e96y4~Qq9^Psts&^N# z&dFkz<01@8YNs0QA!;6Wwh?&vq&&$ifz$#X%9RT(NCrYp>$IS+VME=IZTk_&*9v|@ zff2%fi;o{)2=9I9lt4?%OI`;C4jrh2s7lrrG*f^GP=#mecQYmwgUNxhpRbpf7f1rL z*BCKUh!VY$n;jBd2zuDW89kFoI1D5kRDhLh)|jd7&<3@Vfd%vl9h|$>^~T`EVxg8Z zner19?=XmKS4ELZ9sV)TMphP3*sWkG`?9=&Z5m7 z0+qw~>ax%N1@?M|x%E6EE@H3qm59HwS@scHWp)gAhH@#Y85Ueyz z->Ts5`4|$f-WI!fy)QH4v@uTk0`|dT<57QX(hDe{-aUwN79h9zWPKBidZ4 zVXM^Dm%K^r`VchpD(Au{T$nH(^WKy&v9WBoU`#{p$zUZ&hI+@cAVxry2}NI`Vta6P z&BaNO-mj6^XD*CRT9bJoo~ZSx-AY&(o+sZRiDQj0zn^L7nyfs1#CawekrOkN+F!9=p-s zL-$YyP=QML8ha7!UiWyiz%S%A4>U1k{M~Zo84!8nD$6#i4^6&jBM>8^;=8+3kUaE=iWFUkqVi-6zC--n{@dv#`mVs* zuOk_Wy%Rrm4#6yplF}#=aFSpiB$m2oL(sssZ)%lfPi%fD&)6Z!Ge^kIC-H9ci-ob4 z-kn=uz2kXu|K}@Pc06Z3x1N3&gi;urKzKC?sSy3DenDPZ>3td1*(LLv)>}30$ka?& z?6{A;Iq8r<_rS^P-uz?ukWekbu4NAi;&4MI4;9I$2{lnvNknF=5Z$<3gS_0k8h-D@ zB=oU?X|zn`@Vbx?{)}i`f##L-0eK+2EV=!eT>3mra1DN($^tNHRSpFx5^Hd6$+uRg zp7k6!(s@X)%h0Z`B{^%)j(_w5F`7G;wv*Qg)>=|;;?LTN z+wd8meiKZu{=#AxWC?k@+8zh04mA`Eb3)8-<1kFFNXaiRt_}TmA*n~nG5OnHFccMfZmK0?{GO}V zd!1JXZClDWdnKNE%h?5mSz0=xPOnnDE-#7>GWOF6!vM5UmgZD z4{k~An-e7JB+jK3SSd}qdt^I1#(d!u)TZ6g@th3c16~xmP8^&_fA3nuGiAc(>Aq0; zda+vPdu0K~6PlS%M=(gFf(==Lu-pdDbtWfOb^QVY)&@p`%oQu3GIYpR_D7u(9n__& zgu9=st3Rjezs~V5IN5wsL@~T0(((%{*a%~6)Ida08GVWHj!cFIi&AYIlw}}meNOg8 z%W>i^Q*z`nJUKnSZts-eq}!qR=ZiN;IKO@8eY{+Hm37M3nh1^5 zR6#7aYswGi5IPEr){`e{EUy*}eTlA7W)Z#I(^JgsP`&e>IB4Gg^A8{R-(K+l`(HG_ zMt7b`cVciKs1VfP53n#o=9@+ldtiS*K+QTJ2~d%pptA*h2`Rg4iS42;`Ll2>U^L0Hy@2O?AFM^=RK2~6-<;8) zW@2a*iiT#HG^nJ|o28tj~z5l;^KdBA>oHCP)Y^I8UDsP|b2_?Udi1S7RhH4qr*^JcBuU)zy^#Yt&Ez3# zlkz^jxs6TwPvaeX)vgrlJR-`C(N1K7)E@J!Ai2MHC>>Kh^N${%xBqqFUkqITkDH#h z8dj;zdm3PzvOD$+MB{*n9J)@K*XNzz777;%F9d@oc9#?i70R+Z1-LAZ^U?-2oti(` zp($8-ekmjVS4I9>@DSIH`J0Ot&t6f- zVss!+f4CKTU9`656MNn5==d88VDLRP_J6w8J&A-&d>J*tb1+}ieU@PHpTP$F2d;(w z8vDbs{Y+Nm|Lkh~dq0EHcPQXAn*4Ehp7mh67`3M51rPi)Qc+dKuA>Toye}ZgB9!fA$5IKsWYw#mx<2|FRpiC|q^mU(VUMutq**N+& z&Rjck`gy}h=oJ0chez(tA94F}1alp%(oXkLdos)Q+EF2z$Lq!wP(nb*5B<+WiZ&__ zPFj|{X)ZlluJC-cL43$ZcmL}NIt7}aVL`C@HyHXxSpaP`qRCIb0($YLfv{!ymtQ~l zOqKRY`1+c&aArufD6UoIc5DO8-WZVDd#T9_nCqpHUTcaH^&;;9uO*|s z1+UQ0zZ%d{j85I@Clbw`Kp4Bb=%v+vywU2N%x5P8|DRMp7E#Xlc0+W z50ayTK+34AN)LCJTRO@(tXFiIIAi#b{>1BU249EP^wP(`vCGH)18eX9Yu7-3jsNki zP%B~ciJ-(HYGV>V@C^-?mQMz_&j)hA$Gs=L89Yj>tav@``*;$XB17#1BiR-A%^~j+ zy3x}%hExVxf^KVbb~^#=L3{gvGPn$-)#=C6?LEhvN6)`)8DH}$fSo_ObM68H-M0;h zWsAZ%?zz;*Ku8%LU>xv)4Zfrge z=}8!%RXoUmvff_%4F5Rts?2CsuJ^|%8O9ZrySw4lVU}9?Ju7RLDp6@(of;4u697g= zM_&LJaWLk&^$9F9QfR<0*Q#VLJ7?NuoPAB{<~h2)R5n&dnxnWh$a217MG?3J1*peY zZY7i;cyNK))9MU`dWyNhN^d>xRKi{RAi_wlYf0Urr@Y`E00@W&1mtq@+mS+iBZ^5x zy%>e$;nL#L)YJDpYMA)@dPS5|XM`scPb~}E-^U7|T;;)<6uZo-$EzwgqW>Exc_$cpzg@2Z@l_?SOi_4gq8->?WUHITWQ zX0U^H-mOurDjzqC8NSiKfksfh0vx~!5ZF%5q@Az!E%s! zv1#@s#v?BhUKybtfl|o6?I6PxPNZNW8x&dExQQ;~Ne&*Srh83kcY~rAj{aQMY{A69 z0NJe?6b?OY)l3x~Za`PLPAIyoNp%6?frPaq*>lS|YUN z5GW$E0{;1i4)+VzNj$={D+dlA%Ey87CB@3)sa1&!2FtT|wOu@!=K?El zrOeGlz$W3~H5auC zCOh4avWrykj@XHYUMK~{I~)$RkyFrep7zYhMlK+78$ZAXIJKz0qcsBj3qY&bL|m_t zK%bCz<&lw_Z;CU_&Yup6j{exN31K>rCv&or0x9v0LfyF7ZyEAzh}5-(_M}FM@)w=s zNt^l35l+lRJ;BOz);$AH0yYdD@xu~1Xr)sj^S?>z%@@(?TsZ+8zZ&6KY{1k2|*lMG5DV{#F|JZ$d2Q|iOt%noCjXdCU(t~i*fznl_H1YsG zy(R=ROo=Q1n)B2hA2v#YX@qRoNDfDRPQ}$9ieGnciAAuA(Z(hrCCQH|5dq?d0^nos zLP-V7-Wi2>PfnMEA6P`>*RSKeB@eSw*sd=oFbdBhaS1I!?}L!{|0YAGq5f71 z`sYyu`Z;Vq6tjb#2!gFQf@x>rvHrllKYI{fhAt7o;O%_jeTZ2uf-bg9eh9;uCzIQ#Mnc;Eic{dNe>Gl-_+dl;B5YoRO zw>`m}mjLE^pR%c(Xo^vz0GR%QsdY=kjYtS-05HMqDghwrkMnL~{`E5dnwx*EoB!Oy@Y9%^4AymC8XFnu9eNpz?sbXo6w3vy9@kQf+~mC#&9SEA zH~SYGp}*P*{lE16w?VJu3YbDsL@2MR=fVB@Mt}xkXSo$swwM{Q8_Qxbs|=l9a@wmMZxYGL#FSiy|3gxTOaM%_<<5Z_9_H!lPm#mf`2>qn71cCV2T*_;YwyXPZ9tUzDZ@hb|FG)0xQu4gr1%Bg- z5?U=WEm$5P4LfIWN3T^1a8lWk}BE`oTly zoC&x?`Jj28%<-kNvXN*W)o_cD)-n;_?(lGA)@Ig-bL3htvy_3@))Tfz#}N=yl4n5&L5D6=*A&WvQ;T>p>HBHGHf@xkw7Wo3fDXiqX zepQrC#u{|f$grEzr|{2n5tHge7Y*o{!qf zN+7e5cK~RUttya?kAl;Z6^A^@+9kHzhnksrRtCP_%1NPmlbqMSPT#UfgW$9zgWQIy zj3>iLiGyVSe6lnM%S5COv>j9$X}pTnOz;+@^cmL6bJgpLzt-*Om5Ni!)P_5Q4~j~O zrc3~o*cpL5r%gyUCC-L)231X#;H**<;z%ckENyJ9z8>kl&?4^q&LZJLviP-4G2}ad zPK)4?Uf_)4QNM^ob0XBJJmxL(9F}gDX6b>NB}E92xt;?q8?!ObJj2=&k0T74Utif| z%h<`#DE9bd_D{6QhoaaT*%7JmW8^!7icl7}lSK_ls=38UzKpLf6x$`5erk<-9IR^2 z2Co2D!<~BLumk7@Xm$dax2l#_l&&cu1;=fT^xAxuM$GC*78`#-t|sD~UgN8MEc#Ow zqRp_*U%h_!RQ@Ke`Tg^MUue@-1ge|8|L*iWa4 zZl1Cmvz6i}mtJ^+>bW((8}y=sW0uq|q!_Yuh&qhq1N^g)b5rX4$sK?? z&jN!Z|HDGgiT=EqE2#nH8fj8prsBFWnyW5QDS9bQR{#v8j%HBOyyYQeMPhP0mUYf@ z-LA8fW22y_)J^9pR#t-n^0-U}H&QC(%czXy)DQFehN`5wvs({pG7K#;c*_*Z6e2@< zLLSn5$FgDUSihwXkhI58^B*+%hipfhr!dcDOP;#Z9bUt`$daABy~IJ;zxv|%PS>>y z(LSF~OoRG|&;doRLl9Ga6!i0g*>6wL&3o@fXkG$b-96i;k|R$<uQng-ymKcy;YDX7=l58r^&?FPk2+ zOFsv|hRe})%5#j1bY|$B96>L1SDt?L38EfO7|+eC{wO0AyLffZ99RjyX=gO<04n*MyfUVwfq}CZit0u|{n^ z_{WvDVk~X-*%9`Akqqa_WBXR%eY;IbY7_tyb&i13C<03Ng)U(^>L-2G8PST-rO{3M z1png*+eP+8)3}ald%C0P#eR%5`)>b5hyC%q^bhOLntX<3mh0FSd=msTXMTPie4JY1 ze?KtKT0r9(pX`z~d;D2lzSZVt^a_f~z(q9F2V@VK$pJueDUfMGaL-FC1W?Gb982v$ zKlf#$MOHbc5JaZmV*!ubArJI~`LRO*#|WaN_e1J>hfV>yg8}A;`bI^Fbt8gow0%1F z)`0OL=Y^_`!PSCnX|Wi_LLgH+^8AEkn#Jc&Rn+dPFNd11Nuf0c_WC(tUIrxRX#5?jICCWp zxk=l>&x^B$dr19t6Rmzv&P%$WyRTkoR#{@oG?Yn(luRlUD8ZGRZZeX_VcRk%vD#tajkm5VzB=vdYd+Zb&>`klL;ZKdw-PkpuD>johGZWVY=Xx8 z{2O(Wzp9k{KlL5;Yw(XamV^$4RVHt;5N_*zA?!6{1raY=s`;b*lFbfub00f!qJxyn zTh^HF(bV&G^0hyy&g4c)-E}t8u$F4WbyiLw?% z_C`Mfp-Pg7um!#50VvtI0>o0~Pa>EMlWzrTT6Mwi)bHd3D@{6<2Y$FO^lWJ{p$Gf& zXtmD)whjADMUxHLo65S$x&Y@IIJOs|kfveTc`f!zWBgeBepjT#=oqpq{;gj6V#V?4 z=dZMcp`zqlU~lH*Lda%bHZik(Y9Pu(0q9dIcjFm>E1Y?psC}_<@Y}Jn=!_f2ih^Ms z+cEs+kxxBOts>>eOR6v@EIRX7RbN`ZT=l;1!mi+Qtl>jzE4yg9l&Dn514y$-<97mv z%rVgVDL`td@qEBzAlYtSP~g@`Wp900-N^D6XF2bQI(OAsv&r-vmxr518^u@r&UHgi z++7%XiULHp+i;X@T;?f6tKm??-KkfYyp=lFY3rHkHCEi`wh0qMM7T&r%);sUi$V4# z45py_t*Sc1p+0pG%M>7unumvGs1oTw3CLUN+cFBX*YM+0zH!HV5DVUBj;4%l(dE%X zmr60MnCj%s7#z!y-j+rVpkhHo-f-lDp_`$a(X#_4#Od&3`U^1v!_$yy=B;GXC{`lZ#lrsonw z69lvzLHLti0J}Kpk|T#LRHcc^)rPaD23OGT1v6Klu58_KG;}XjPki$WQhb*bMiqAb z`r%NII+%)XTR|$W*{Twc&YiEeiCd2?v=-DAYn2=Qj9rr2bhIgIau>5Z-uNAi+=6X^ zPzE_F6hL<#NTd;^;DA0{pHSZFr3Tl*rN}*~_pQ6zW;S=f;=`@!=Vq?jt(dNW9xNb~2VE zFanzOF+0~K)exBs2(QW(j2aetC`o7{gD?hh~U<880TQ2`%5*3&ED zJJw%DiL_kd_XYMfkw?>>1%VHI#^_)6MpPb#d~$+ndO)C~_>RMNg=^7Zi2f(xrg`Ik z-pag5x8HzjHis>W!%m?#o{V9B`kOB=BA|%0PDJ*BrfANA}4QcM_i_^M; z)1jPp!p{;e3zZauVAJa37{B*xbrWr9Hft>Kz`s65j%2uRv{-?alEHZ>`?U++GPhH? zTnmBpXZS3WswhSB4d(g4)*;?J(rLW%`Gs#-!;iBX?d3CZj(2lh3`KgMFGWc}-SY^F{aT zLbF89E6(=TE7{cOf4iLhH2Mb8rV(tzF!{(IaFSI(g$O7m9ZINq0K$ZfTQh$HekKQx z>$Pl8!AQY?Xuhorluq5V6tEn*rB-@>xQby@G?5syQKlL^|42X}XvKB=CC1fw%C1RO zg|PP=2^oR`|2&XUf8bzR%tPN;l5=VF0T#)L=et;5RgCV+AZG z*Yi*qk*B~y11t4wkY*Mo7dD>1ZP)0y|*jr;K zMSc3vQ&lT2+u6O9@qCC6wGR?bvG1f7P*gxOMcVhW~_X-hUYc{?hyon+?ZUQm=R zhWias%6B<5rH)j?PlmOB))YY`Q`uj;kXSc;#yo6)PI=6J=S#h^B#TvQ@mYT7l$!A8 zkN9{0$a}^)aY`Y|1;aOmy$iJBl_PeY6%8HA8(x8BmvlMV*D2#?wR@TunERRqq!=Xm zBuWt@;0adPDC*3PFa{Gbc6H+tm)pf>Wz)AxyfqqvXWL$T#(Y21eu~bdDXvKq1{YgP|ZcI5R{y{3X;t%OZv(u`(TSXa>E>_GB*oZf>iLe=tztp zQi1$*RMs0FO_doVn?8OJBUrIk6F>X*R@rC0rHc=lFU!{OiAtufVgC7??^7cWX#e@- zux75H-~Zi={rwsIub27vgTI(!ZI_jA8{hNlUO*kQ0X*8Kvd+C)^Y2v) z@$;>FAe^+tVAKB@-J>NINFi*KrYLDoGegS(<&H)XAncsep6_YD- z!HOyUN{59!Uqs}Y3`1#Dd48fa*N-C)FuVotS;u1ZNS&ZWyjC+&xd~g@_Kf-hH^7Cc zF(m4SNQTMEdMtkmGYIzQEfzYvRAVgTvXjH6irJb|bTqe)JWQrS`3Tx=Q`=;TR7!qC zrGQ(YQ(H}4{>#c~L$w&m4(`-CKeN}a<-Mw$huot|UreD(-dw5N@yg#tuZa2#9RJZJCjqh>jrBIiX znx^_1KKY0DsQqwWbw&Jd2vj9DGT<>jP}zitOj)?Q3shP$xnIHiyO~$imckm@eD#(a~M-O_yW3$d5F{9dD+DNrWVL z03>SiQu`Yv0Pp#i#K+0)b1Z?ZCIoN1HY`k>C_o?Q)~irsqW+{HLQ+3|^uo0d+_!kS z_T_aT$SPz%wla3Zfxv`60{m!E-D}HaUFX-Va`5vkooshkoU6zRmyMZA@OSmhu8Cn8 zl^N1!ZqB|Ze#P`MDU$)!d<)5ixY%^iQHZ;wm@a+ykS_A+ra-Gx$Lj>!b9HNq?Jgru?Z1by|at=PpAcg{8MLBDm9swqh*#{v3Pr0|$1(Y+DFRa)qP z$DEjyQMQE=b9k6kC-wZ7X9{ZWa(i(GS$<_?SveZrfsp_)&3|==u%wO>rBoWyFrdKw*u@rqdw{6UyoHW3{{tv3VfJ%s4l(#55 z^hxRvl(`Ce67g6f&2m&-%MOQTZ7SDeskiAqIx&$js}_8fd)(~nU5Qhbk$#M(jclM+ z%;as-z&OeY8dCS_dDe02)G%4w3Gc~TaaFv^Ew*AHA8uvCLhL&IxxCghRp|u!BqV0~ z4ef9znZ0vil)o>@5*x05KG&sfRobNpZZl&wWvf{w+sEBa@8${X`>|>NN`Fr5>7@ti z4WBzb0SQ#c)$wWlgmz7KHjAlsW&YgxQF}LcIb+tUPouJ1>Gv+BvR1X|N9z|eeCyMd z&Lk$2In@?eqcsOy56lwW92`(tuG|EV#(Mh%t<)_9t+B7KMq8uZT=x=K$B`;1urobU z9~+FSIRISOJL3ba37es1Zg@9i?pba7xc=`(g+NK=FNo&ZuG&{ut4zymLM1s)Kkz-@ ze3NM$O1O^ZF`8eM_awXH3cO?VYzRv!xJ4c>#f*<`c-}2$9yWd1UK+8ujcC;mLPi~g z5DruVX2Y{^6%bD=ST`~8&8bU$5^&{=j$*4^p8(}|8f z!9@mm`Ds`ijB^vrta(>0jl&vbA5jIX$^+$?YSLP(=b*}Gk5&uMW%r*koKA|fF*utz z6W29u5$I3KqSUKP69-IzTD+jd*X>QDs*R}Duo)sdL{>poa~^Kp)uMdbLvH&)q+^V> zNQ(G=_w;3Ga^-(vY5EUw_^M>fWXxLFc=-w>EAkBO);8F1Rwc4-vJrZ3f#pzkm#Px& zHf~LR0+~td(R9^JoKc{k#>i(eEq8~9i^2DM_4DI$t-jIy=hxE@k(TZ0(U-a?>!IXgfc{D<=|Xm2|}5^dztM74@_j9HYbm?C39u z=PqGvB32Bj#Z9w3m}nc%kgW^tKAqN;cAIGBLJhe6+Urz=>&FN6%r_*iv~Af1H@f|= zEvd_Nl$c!&QIZvruEUcT1m!sbv4%TU((Y#$kDCua7!}a3_j|w7+AadGG!*cAd7*gn zrl|qofw_rsm7lI?!JOKKM`fHIez--QSjZh#5EOTcyks(RWn}BvZeO(M6K?z#=}eyU z=!LWK@OSA|`~LrR0QA4C!zYDvpfWPl64DE>Ro}!Q@{NGmNF(|_-LneoOS{%IDiDZKgd62T&->OcUWyv6mQAD zdL9)HUFOmJ!@K6^Ur2as>6|oP|KQH_uM7WAnx5TLe;#fsV4zm3LM;y&QbPUkdx;#+_uv|BCvAo zJa=-IWJHx(EOgqXTuODeXS|zM=Izwg(5AC2uU}+%wfm1EJo!xCNr}bB8`+fBLuJDk zPSwR&zOny4BXDELUD|ozyIdr-ULG|+w>^oyF?gSNS4%Dg39)}MsC)zYu&L9K7P^qZC?UMXzu2k zRT61vW~&!SJ{FDMb+zvC`SQ+ElPL?M=M4kIoig{k}Jg*aG zH!5sapC#ogPnKlAv)1wmvHwiz0A@!G6D1+3JFM?vmsZe2pjH^+Ix41-yRrdnNTBdg z<^b){r>K(_2)M;a!$p6YJxkldf}VTTk@Mh7Jhy+xdo_G3!&yqdS#dEF3R;rNdd@?` zawh~j8(D|}Bvmv?E;}FaHStfI7U(aYwhz5~UoJ)0SP6RJ+=9o(f-qFz7TgLUK;onn zlik5w6NJex6S(W&uiMI|n6#~{y3fA30_iHBsYUn(WY`3M0el@-cAbc!Fz0;M$vsNwOAU{Lgbn@~YeX`N&)FRICHVkfmz76dHm zRUwh)E6{%&yh#JE&m`z$Cf#tT&VgVQZ@_)Lai|%VGvGEZZy59G=f`xdpF`3!e$)qk zRQtzyS3-N2x8}XkEvkoh^OBq4NP1)+j2q(!J~w(OFrC0Tx8CO=#ZHkkKT#smE57d= zFKuIEcV90EuF&qHN#H~VKO{4aHh2=$nx@PW?-Q8Xu_v=fGvOo4phDfq#zF=C?cOAV zBfU@BgT-!sGI#7i+H5ZBQR$-`{1?y=gzr@#_rhu>+r6>m>$PJ67rk?BWl2e)a1ld+ zlwo^=2L|>QcViQ2=$l6~1W4d~26q?}z%mPCz-fFY1l3~fNBD|0AL%I6EG);n$(lwm z&@1)1&mFs)ZT91og0nf(XU-C$9*A#K2Vuwzbgdxc-8I!JK$0j)`fmQLCc<%C-usfh zGnzVtCw=FSkvQ=#8?Mu2QX^avq@!N(e|D-<+}%Z{u)|A}ALy1Qv# z|Dum_us`=i_YN4Cef!RuRuZrX=DlN-cqB7&B(n@a}zi5LiD&!cg^vQ*FI4`Q%4=I7j8^Jdwc+L+wI4o=`NwY92j9r)$ zdh9r!a4lLkdBBD5Wf3IoK5wr#x)=Seo>WU*-Y_OkbuKtPm;Eq$rCIz{cD{9d8T{@* zWjE8gZtX;KUC8EB6Vqg=%bK5wm^S%u`J_6)57s&mjHOkChGE!me8~R>xGr4zq8bx2 zFqOyVry6CgAfmC~(!(~>$Z+pNVm&GfMbIx%Zq{TYj>1@|GOLZ}i4!fohF04=h$n(d zZdwkW>PY+8V>9KPwL8f&&9`pQu$1+D0Na8DQ#cJMQf{=|D*p|I6VGh1Q0#xuX*0GR znk|tlQ}OM34O=@eV#MB1M2<)E?v<6YQoI`+Uqj}?G$YRvCfa1paZW9UC0CgM?*i(YNBMa$n>=OwKBf!t_K3q-?#7a2dQO7VF@}g2C~9PqsUzl<|`nh7|Tvp z9$FxB=Vqt#-xXBI(-yrp%oM??&#rQ=GM!XjyGx(Gs#>|RQBy??5Rdj-L~Zz z2?bbFPik@=N|L}<>IU|wPSv4a3hCA|WtM9Dt!}~h*{(6z{kA9(#eIjf?izZAWCeP) zWUz)crIzfhS2TIc^3zYaww1LUD{gseVRp~nTObbl_CnA@EpSO)Al}F&RkA#*5?A<)YU|7ra;&eTslgPUIFTAf785m-3iW4OdK%Z*0{rgbt)x42EAoYCQP zbU;0^q74q3kO1xt;yG@~aJSfN{vDWe1|o%T_qPiA#F7Jo+-bDkPtn-Q{?}z^|54g8 zl7jq-Ex(T9&}2oJ!$GC8x4T3BLMi!a1(of!KfDE2d~K`t<%X^Ql-IqUn_UK?&QB!nr~qC7Hqn`R`7bht)AdJgEmh6#-}ZD@(D4MMB{yIM zCXza!<2j#sqCd|SdU9jqeP$bRbv!P&I@wQl^nn_pRFo#YO~%are#oVJH#Q6RF`(cu zLpl+Lk8NgUCLG(h7*xR(-LW>5jQ*ndai86V8|IDHv=ml~knw@%T>^NU?nu=aunlfwss9(hE z>1QCZ)%>S4SfrRHSz;(@RlM%%fhxoDnkUi0vcGAKPS$TX8?Hc@{Ff5BKSz^W9#QYx zdVRS9as%600cqnGRohcu3+RXjWunApfTU#WdWj^i@6+V0R>j@A>Pn}bpyv*ey0x#g zmv3;gWHWQhB5(TZ{Xl&T&>)gtIC&SW*9m=a@U(j*E9a0gr9UhXtW2Mta@kxoJ)iE> z#QOjkB@L+(aGh8aN`)eaF9kl z-igd5Pf{zdAM_xr5H)Rdt&GE;*;a|gNmMDc>h2&19)0x?*3a7Ki>|INDtjm$(XhO-pW}{M?D;OAcSX`c7rcVnypbXx%GeGY z0|T{e!z~9k`G|D4#v7RMp_pU?qW#I)1UIioktF0(_7Anr?&cJMdp9+8Iz;%OIaBhR z&4*G5s|8qCgCt>nLGHtQy?IQ?f&2@Z1|!O=3I5|B{qwseGr35a3hdSja(Nd|y{>d% zeXHJ*!vi5>i~+Ij&0CV~g^m1rN>-3tjtTPCd37l5yS{0q_{LuR9V!Pv=9dKrOgr|a_==s>A6m6lKwnMk&xB>O&0SUc$JRyb*O zg>6|!7hBsC{`KV6`eo>gMp;m#Q4YZ~Z#1zioa=D0lB|?$x;I8?Oz#JoEeS zi{tfgT7{&T9N!t*liSid{g%o-NVf(aq_hNy&IO*<&HKe`yhSpXg{SPfh5oX7X&=pJl_MsBe(s=m^qA&jTM)* zp_zO6KOts1v_IZ^#ixId4_QUYgUuH}Sx_z@Eo=(YVJrlMQ6%;l+#HUT3?w+Y(6=cK zo{ccQ#q%80m6XF?JP(@)U`w^fPO5kautl_(Wb>ZA^CVH;{p?w_kv9^RCPTGu5($w8 z-TJ`8j#r}7WA9EYOKcQpN}0{A*LY?cLgP?OVEZE)#)o8dg$ZgxnWQ(>u1yrHYdm(8 z5CLplJx}>;FK$jRs>jRRk9twBeviYpo(RgBXM-#Z;YQ$t%YsW~xCmh6kc)MlID$8p zz$s?Pnhm~vo;ceo!7F?s$LZ3*5R9OQn%bL}+~{A}=0kXrGV2ZH>A;CF8qI!Pl3xd# z=I6p&e+xU1jAYw3r}H3?wFTpyap5UT^BxUO zvx3AjU2D-}+&J)iyerIeLQj?(EnkLWWYRgA7s+udqPlH02X)$`& zQA$j+L91}qpZ+S1oS!~5nAVPc zP4n|q?zzuGfBTW}?4`?hDvs!aTmzZ8bHI5bv^hh(kubZI{MeTyy}hwpR~2d?TPp7K zG`v-!`HSPX4t9uKwy<}HQD@6Q#Q3wBM!tH&QXzLPB)Zp`^rU!2{PfLA2Va)&LA9q6 zp2G*jT0McYuoivfMe5f%)^Vg5)&+K=fq}4WR6S-g^;IX5l}p=6Bd74Zn^Vdg-Ck%q zV_oS+Hgi4eAV{o0j$vt#mq6}bV=lo7|7ds@#z+itl->jdlq%AcDkVf} z=t!?pLQO)Eo*;$|DbMWZ&imeV-kE#uoImcGGk2}?2P?1_tR!UrzV%bIY{|Ta0a{c{ z2g#vQb1@QsTh8{gtwex9Y{y%!UYI2#HT0_t|NZM|EghIvTXEckQrT>Ikixl|bRAe3 zQ8FV#Ec=;NX;akH9Q78p2HTisxKxa|+rjR|KfQ{*p%5h?l+j9aG-N4~@8mdro#n;# zl7h+xBZ*alx7af&*Yp0x8E^A;*;ptO(F`omMZq!oQ?O-*0hCjockFRTehG-Ey#5?d zS*-lokBO!3oflE5)v9VBeSbRu&44%sC>Iq=Ap=$iCrmC939hhN8FSYnfoA7PFEi)AH;CJJ^> zjvCuj<_rGWWbJ!o9Y>k!5t;9B?e}AxF(m=24Sn%A*Nn?NM(r0AS~@TF2U~*lJ8((< zQySc<@BPK{eBzgSl}=e1gzKcfL5Aczs}!nN)ga;b`T zo&KOIm0%u;)cXu{&JEfo@2-4H)f+$A`$hG1*`47SW9Ov;lgP{f3GwtC=4mML4D=u` zd*AUdmMxKg`Jq!Nwm|hwmJ|Uy8Ke;CS5sd8cm%6|TN!}5)Vu<{~f z5OJ{0B$WS9nRcdPCvc!{Mr<*~*>2>~5DD`w#f8l#M}AqpC$XY5(sNfywI@&|zs9Buzu@kgByX9a)ITHpB)EI&RBk&I zqq4C{yE=)e>THruB`gYpJk5xO%}4gzhdq)!urJ468dOOX27Y~D_i;O+C<|QuoU1_IWHUp3YBdlrsZT3mlP`%sC&} zz>Gh;Csq^fu>yKX0m~fhG+$o#@(r_*9wE@GhtGoT&ujqAihhAC7Xy-Oee5V~;l9Rl zK)HKSub&g;Fd95B?X^xHmCK*hWm0YN=F5`%s&&Guwz;Cl+g zP6}*QRH=KEYz*`)u!uj`%vh;8$2$0{{0>c}E&G7Y0|r3AR!?%63X6d5o*KiEbyb-9 zpSYAhH=1nVPN9E^e?>1KVe}ZoslQ?OL)sw2p&7vK3xw#@ME_B#{F|2W$v+ z-Tv#v{MUcxzwVj;I!*r-XZ|Y!|3}h6v4!KDU5BE;sE+%U&BXhWry8F(`w9OkH~Qa` z(|$+!aqMrU90V=~PCT>~j&l0O^8G5xf<+?4+vJPKmGIJF<-(#tnf|^FM`M>qTN^J^ zoRf_IX#AT0AG2dWg)5@^Y!15BkT9rwj+Cji97-5Buu8N|O#W$c`i7>#aBM)ouIr4I zVfL^-UpOBK8ASh6gqG372+`4}iQAwC?9kwDFj7L2oDxS->Cjb6I_Ek;7lg!!C|xaG z2%ozwLh6mj%YIkx_&K?AYUY^Ka&`!slPL%YGEangk*lbq35GR8)#dyiR#!$gXtJ@& z#NXpw$v5HR?;MUd-Ql^&-p2B=i<_)P-T&J?EFud6c$R>DMbqUf^0QK9ETOhRAMUM= zH(gv3F_$UbI>X6Zrx?eVGxmcOQg_rR4Yt`$F~3D|%%;fudU5rW6rh4Lh#oKQZYNNE zP!*+c9wh82{rT2G2xEt&4Ahi*=oR3hTUL_B19-`ewu(hxg8B#@5W+aFNgA$U6U#})yZ)~pH#<5(9e(S@*u2wTk6aj z$!(w{64fQ4uc8}~R68$!Xyu)dRod-tS=IJ5azesD^pf(H&l)0BnjE=2&AhTM`;_>bwThT=a=#2`PW`|$4Q55xld&zyk8lBx`?wiH$lk1 zMw!}3Npg9(E+-ON^V1jXq$DXad4ey?%F7d~wN7o~`KeJXU(hh@()exwE!XosTAp84*6j_Ycc~|U zHOxW_|YBf z7ud{vPKiaXJvUs-dPPnrfEHHiMnIz|{R+h_os=D6H-kHwS4W;L46Ba8@vQC{b4#y!WdukR#76u zItm44?>_%}DShXm`^9|Mr(&P(yyvc+tpX6DJZnAdp)OAcE~3j zYP~Gi>mp z8S@|Ab^ib1_dFfY-IvGE8#2zIM{QZLKusBLF=Gu%<*5KgJFV{>TKXrn9Q{ub=3SLz zpjUewg+p(GZo1GYv0^z&S8`$G7C&gm)m7KbRc!l9A4++CIJRQ(Rfy3a`@zX|YRYKS z@h+Mn3@}^fI%@I^Yy7oa`c@oA?_%*Am1TZ+T?>Doi9(I7`HI5MeiIN%bFAqyQicMJ z$scXdE=HVU+H;Dm(c4^nO0I5Y6b((+M=sW1kP5kfJ6ywQ?|S*rO%OU2OuI&B8EJyh zJ(>U;`~x)Ct~hVY%dPA{er!}}!%c~~vME^M96kCHF#mC#Su8&W) z@gD?zVUEEnK{E|qSuiqigOS$j#Nek%Ag0T+7>Kwt{_xv)!$pA{7L0wS$nccu$XpRS z3F_J~uO8+t+zskNWw%16x~3|-Ne%^ujSD@HX;{}b~Gq>D{pS)OGRrL zBw4k)H?m%EwFojl$!tc~n8z^B0x<;Z2&RO`D4fZ6I@9WB;vY4 zl+AwT{8L~lw?3==YszzJHRMwAvHRy(DWF#gBN`3o;-+hiqg31_4vkBb_af$2RkrL{ zMQ=Veo6erS%<~<4CaOp3c%*jE0twoV1Mlxmt%dE-6j(JZiZ1xo7NN{IlOle{s4I2J zLF~H1Cs`xnhXs9wqP&lyHe14sR-l#wX#ydTpWactpt^5lyU4i&Mje$F+!QP5V4I^O zUxXknl!szexL578tF5&J62p(Vm}`8F?JR1Pn|=yX{XXmD zm|>`96cnS$nROSMA~Th()~&J=~haVaT62Ht@t&!4i<>6cr*g z9H|e9X7XpM_BzJc=u?!lgG8?l11`Qb-_tce6D7;l{Ub#LRHJ_Se_^3#0^&4T)G)}o z%TFo%LO)3c>32~|yTPB=Ok6CAHaHYL9Nz1c@FhoS88tu0DXIpc~e32RDkwf%9 zNH#_)3d$T!i_giYA17m0A{R%T<4roT_{3|nGS1dX1~<8+4ojI%&%CY{6Z5;mwqZiE zL!>t!fD^=E(PokMG{bP&I_%gI;-vYJ8tIt#JK0am#up)%B(;)X-3O0?Fie1^Uqe-b%GG8{XRb0pETedb^54C~|J6VIZ&rI*v%>9|`EJwLVd!7Qc02e#3b1{-D*=o*<+$DZr7Vvo zhGAkjH+Xr%6|Og)phf5Al{Q;)St2~AsrbogRQblnBO}i@lx~G~>A2HNq?;=BS%+W! zE(PbUFcVZ4?kF8X(_@ZE2m)H9O*bIOXnZM4JMJ3a-Q&^hG7p50->y327#s{QqHJ%p z94!xLo|bDB?WS82VNq#MQ+ZaOA4xJ&?&xh!Jg1jfdyf|AGEM^Y5p`y5yxK;XI5{YM_%`X0>5xyI6ENoW_b84*>h7N5J($ zgoOhfD{_4zC!X_0kA0x;PqgBUp>I{X>$SgF+YAZ21x zK9|{_rDbA%V%{T#>~U-@X!@?U z99pR7$h3B(aJ_b>#OJ#P@x3&s>KqHqNmPDZ|4~Xmwmq*~NAhu}1*0XCp3t>S&gvFpm zQP4R$3$9^QU19S)TN*WB?CCRpHFudYT_cmX$|={Pg-h|*PkU~M9ZPLSSDt$3y|5i+ z4XSTlhv&iP*wCkxO7oNdWYPsqN*$$nzNN9d#L*+O`y{or&ADQ^!M9}z^8|XS%9Iow z%@HW4+A%)dZ}8NN@b;nFB54S_Ah^rPEr&&;%G#E;7cWmzU_2Iw^n*KS%FI3(XVWEs z;||3-4r$>lS`6h!xZa2tA7-J}&GzbfL${A#eszp&*mEJk`^T==Ysfbo7?k6n)e~`O z*Dp07rPY)cx}AS2Gp6kKc%-8}95$`=Wp)+P>Q z5JmGNdA);qaa^5?4_;Sts8sec4un*?nO8Ye%HqDB7CsW}T!9(#|n^ z?N+)ROsMGbCWSQ^ew$c8E{jvnCTv%?y_g>1Yk1GV+_>>uO)}3@D%oO%g$T;3oh#cT zmbWoX2wEMWeT%}lT=?2{+m-y~WS#NF4|z#FR$(96S&|>UDZ6&5ya4?KH>KBts}^jX zhX5lhT{Q>FxP?ZpdlR3?2a~3L-huG^Ye_%0HGk#263??4+Dhy_rt2su%}PvD*eajm zpgsi7(ky{;J-`-CnuT4bgkyCmF-E?}w-s~3kGR{p)_EGtys=3Hdk^0eA=hR*QK}UE z_=o~Ty5%VHA`)Ma?&YU$m72hgg-3G#h`-DItTWn7n-%$JG0ba@(PKARt3g+6Ssdf%Cp=vcr_mV<&=x}5GfZVW_J)ZxZ&!h94GCX)r| zI_T-wowmobm~EKl)f}I@mD%9SLLdAG$K;<}lmBBLON-0F_@2OcQ-a>T4_Z$DoS?tU zG-S3~K@ZNa{k=2#?}k!b{}ciLw@kl(@B9A*2B5-NDS9zub)L%81U6Mxm?g}=CNh?e zzdwNTLa4Jj{@4T<6bc&TDDxJh^Y<`AWim9=YR^i;&^2MDrHk)Er0*qvRJ}HH%xL`q zTeDZF?iEIElakx~QItrYD*WYow>a3bEa`v94Yc=p>;1;y>ea7*o4T+ewh6AUk>VsA ze;$VuDO1woK4T^Q>}1|1z7anE7mLSy47v)ssX;Tqc5wu4^SWI?l%}n>TWuED z%{GR$UKjZS_AF*^9He?mzxQ~?x`(o6DJ;~TW2KUq65O=Q2pDy60u0tTR&2EFDBXvE zC3lt{9Y}WOAOFZRWjC$w<6cKy7X7HxYq80UzNRZs=BX&4 z-l-7wppBe+ZPYi|PWV3m3LIWv`$Ti{ZMcMKGk2=|@7U9V?>>^ds1blX?UFt6-U#aG z+ML2i9aqBl-F^w?@;K)e>cEDh;YA*e#tmFOw_$>&=1iZ_&X^A@3$qD51$9No;slXL z!Np}1?v(mv4F}$4EAs3*mfM5}lgGQCF4j3vY4kn%MyG~nbY2Z;fpu^L>NWp*p1VOs z5DeY1am2d?>u65(Z8o^wm^}YLu0V022hY5rw@}hTAho|iv1rF&OZ8%xdf8tr&s5$7 z%!_XLd9kf$Ns<%7buKR`sWrb0?yFPIE;IRxx8Zj;$anI&GW}tBKjdCwbn=ahKOi3= zr%}AfYk;*EfmSZz{uj%`gpMn>MYd9qlS{vMX(_((u-W>jGsEBUvw!SK9e)XeCL;sPh}Z?e8ltgj{jDd z2H8Ae6D2W)C|aH;xG;0Sx;eXJv+q|&cm7&3SfJ>6zj)30_W1iP)=Li-ypy*eC!wz8 zk@JE`PGWW>>Qwyf?mSyls>COk_XY$^P@?-YZlnDw`TaUiu^~2dnk=xrfNLv{Nd!_! z!xWKU9Iigxy8IdT9umGWm=~r4 zo5a}O9=!UqHldfNSaygOe|`E@wiKX2Q>5Df6hb;q011sAH!)Fy8xB4Gz09qJ|I>Y2 zVDiX|uugH@8?oO5SGJF#!2LBZ5>6b9%sPbmS*;)*Kq#CBTOoB?@3t~=n|8tM8LIOY zd&W(r$%+M*ds&<;evqoJE|t*iDz=V6LF8TX#qmG()262m23rKJt=`(3dVZb1c}6h6 z2&?+}xKyD3d0}kD9e-jyY_gCvvC&9_0?>9xX-YAWY6_&I23_;ubq3k)UkvjmjfHHb zYwTls@1!OrtuDWvdw`e^SNn4v zLBoNa6BoagOU7hF1a z8o%bh)KZl5cm?Oni;Y;2K;zfD+IfT_ly5Y<8qA#jEvYQ=}x>vl@#%xVM+C zVNe~>!{sgBG-7vV^!&Esv8^jZY@a|^o=q}tLGTSzx%_qRPZh9pZM@iUnUKD}Nr+S0 zt?$N-x_q}(`%w0{=Dtz8!L``I-=udS1QrZAPsFtrx)MN<@-*4fF9_m+f+azFU5>-u zRZ>7L{jF=l*%k|2eQFM^(L5VQm!kNmlLKx8OE1nc+kRr;jUp#?pU_O-TlC8=c5&4B z;eEQN4PRYQ#(ahBl1Psl5bj8gQ&Ss&tHjK(o^Q~*jo!FXsFP#%3@tIv1WRA+pDcIot> z$Pe^V!O*4d@|b_eiTuQW_H}$6$WrtHr8_5Yfz%v*2P>t29hrUscZ~mFasN}p`QIx& z{_XYuQ_B$6?|>%-1Xi)py__gggsei%gfjQ1gYdvZhmB%#3_7oi6`y`_MdTozdKaKj zKqzuT*k0P7&g61?1ox7uL|gmB+e!Dtn@8RWHI1IzAv{|A@E94E?)r(J!pV1t0dWV3 zKSvNg)G5H5!b;qW$6+x60efFn%gp`%tIO zI}*B!1ICYJG)VJ$w2*jGZ|&Cv7qqHg~3W9I2pG7sze1dZ3Gqc{p_GM1|g= z_&Lv(@7&J@h{gv&3+0`lI5+{iX`e^uuAJ}{*E0s3$#dKK{l#LWo40StC-lKXu34`yddpP08vHt2ghn|R|U{h6GY@) zdjy;ykzL?+!3GiDs~3C?4L6apnej+fIFC2yuZ=gBY!Bdybvd>W+%rK<1BA(Y)R><- z<^;4jU^n2!2MHgB?^&gFfRQc4WkKCm?6Ip8ofd5{TJVS>-F|KtSGxAZt+8M!6+}u zM1=kme7DAEr}Ef&frjg}#}0IR9PpX|l68Re`xRr-^%L|*7PdwspH7z6=E5!l?4ehD zrK0J0@U;Gc9YQ__s>nE_?CSu!Y-ZIe;7V9{v7*IkR!8^v$C&qvkTf}&)S8zohe6|? zXk9s*H8jStkZ2w=cLw{dmQs^Qv=_~Ey_f8Sb|Tp#}h5; z7Hpd<8$rQD+#3jMgEg3?(Cu8uK|0aT^4Q(tQp5XoBxrB;YnsXqfYjNbP3sO_T_Cs65pE6RE?cDB$I)f%P!YN5cO+Fk z(ogFDF)H+26|=n3Y79Bo{Sv4r=oXWcRPfor7TMDa~>N8iMAyt}H} zn#CYoj4|%U6V9IVr79^v7i9u z#nV;DoShh=(k-sj?z%Fg8z3_Vq@0ss9l7Kh1!OP@}e{iE~!=eG9$n8$xzAKs6#w}$PQ`9Wyx zpeOOK;vx{i`Hy@K{ijkPLzeLo4O(bcXKz}Po94lODfHQ{se(acicP8g{qJd)tZqF#DvqDe0sW8*1;}eP$(|Yo<-Mxs59#gCKv){VF8M z%lzYhoS9VL+9QhZ>b*Bow@j5?rm8WxMCMC0nFz(NFvFq8(F+dSf3cjk1o!n)j572u zXL1Dd=-gi{JN)RJhy-0e#GMsO;1xNi;gEZ-nsN!yfgo7mlaFKfjc-*eam>#IU#=~|`Y#1N!%S(TGja4w z2~;q#D9KZNk$38c3pQ)+PET2EPh8xO z9zDso_b79?Q3dKm19>2hSkH9`uy4Df8FzRJ?{SRSI???-AWPL&__gQ7&=<#M7Ei%} zK=5OnXe*pS&1A8^wywoiR--xHi#0m%#!3yAnKyp>^t>&;^&?j%MML@8+3T11%i|ExDx_%sR~2 zMRl43-i0V#QcY%G>X&{Y?Uh;fqs92V_sSo}I~1M=0mc$4yatf^Y>PPY7mM}8pZUYU ziL2*(&Bk_@vu;*LZ%ezEp zy?u=u~n zp8I6D^M263q}&hL=hO6JUpquXh1_cm<3;p#W((^0kmatC3&BpBZcgsNg-H(YPF4r? zn+5CL)qJ=5`@!vQ{zamAD!XFr36m({&_yXgtSlflW=j7KWE?nRUulKJ~N z`n0KkU&!JZ3u`nB9sBo0?H^yP3=I(I@xO2_g&ju!uM|o`p#2~-7(7Ap@&E~B)TV$u zy<9vFs<6xT|8yCg=-mNvPDwt6=*e3&uywGTNSXL*_ZLg|S+#%uz7}YozPrAk?cfzc4b z&LUVX(r=Ad2feAQst+L=_Io$2fWIm8!@6m*%R4e zKT}!z#!(=1L*uaJm?2+cp8u*ymDDZixRGmx?$&abXj-5N@!4FuJ$UB7(Qg2O-k;|k zetnyBggLh4&e*w^b7C;587}bj7OFiWxwX3T)&;)IPqh~4t0+y>Fpd}JrVyi$9l2SM zQV|rDO4Bl_8a?uEcH{SQ>c-o)~-V>y2x>U=Hj~V$TXrs zc9FSvkaDrh%bJOoj=L9S3&kw$gqGh+!xe5Ed7RlyN>FWJyk#E!1;K>BCZ`hH>#%J& zj-h=!y@XSb+5=EZkcJo_8#L-j zok+2>8QR>~QV(KR|KZzgEb#Tw`0`K5BN;~{C5#8m+*qkrayJA>t>fYtlmL{+OH!p97;EarNT-Z2psiY-&75H_Bo<=vg4rN_QF6( zn^*`JlNVHNec?`O%RZr`!Nt=Q6IAGSQ8wpPj<=`G?B<^h&r@y9?*7J#A+ke;=6xy< z)D)!JwY{Iskz5!ZFXQ7h1$DK2LYB-dehINTkB~yM~_{ za~_8Y&n11)l|n?cuacZmU*5~Ke0`QN$F&l4#(}YZ>1Qmy> zkZU1oViPN!^!YsMe2T5rkb5H_lK0T_RLR2J^OM*kVh><@Z_n9 znUHhK$jdY@=BTdFMD9dMgPz!u?^ktW&$1FvWyLM^)iRd`gj`LMK)8!qzf|b2zWQ$^ zEG#U+yc9DU)tB+^8R|S;0B{awOW4hZ00AZrg7?Cg#}7=E{W4{=i( z-u5c%f(8s!=AEyB()n2LQg8{rn_jJREEM(1+v90R>&(BjEZT0GChDK;2`~|IofdVn z$)*+)anUe-q!T5f!?06ALo@W39)Gp>q^y#yj&PH0_Zl6jel!aGbyF3Mx;PQ|_r zhg#{yQ4o?leVuIB48dzz1A8=gq-liRXoEO`VaHK_mE(pc*|A$C^4YS$uTf*Mp*Ftj z$KURoW`s1v3Ltd>R+{K6U1kF3!4;{7=mYra_AUe^L9@~PN|9HCg-ok)!qq$e^`nl`&1{- z)LxR3)6H2(nC_yc1A#>GfObd0am8FO?isr|N4ws{xZi$F=<5&TiMaotBIo zcPN(~yNkUfu8^2OZDZs~RsJjyZQr?-wzO6LWnQ>+b1AUQZ`#roxiqKgv|=Cf;mDD- zSN3Vcuc;G^f=$ezFp$K>>)8l0pAA2)?*zw>GE~f?XY5LBcKo{{@5ut8(BSFXPh23Q zKdVWD!avxCPJpmKdmQa~*gSmh%(!Vu3gxok`1(ojo=R0=zRzk8k8#WkFMr2P8n!te zp;*15pe8Js!&nMuMB6;Khd}D-bYsQ-27#$0d8h9+Dc81cZKeo2`wF)lS#G)p7*i66 z&}N*FN`kJy8f+@jgRcCeD8Km+*-a?0I4llKFEDee^GuN9I## zVtK0rg!-P5*Wj%Z-qk+qW$meMT<9ckx>#hqNo=-ST6yONiH)g44rJ^q-pRrVQYra+ya%^~K(K;U~JV zp^K7l(JzrR8DZlQoP;sYrnUaRPl-4Gp`ci@q^+Zm_svSb;_rLi2y5#~4MX$lB9 z)q`T*wViNKgDVl|>MSLQ9&eEM_DI)T_%ML2mBXV9hb;KRDe;Wdl;}c zCjYG}cY1nq+Kub^!M!T?6s=Uv!<*O{nT9>honA2?U6GqsC)!_JzRYr<09s^1$lD~t z5IP$r-_POBM9VkjIvkJk-QL7qTlI7O;}5+QPdZGi-#F8)JZ19u+XBi9T!`NfBJ>VM zis;6G+7r_c7$3{~RAj1EHBWTNw0`bd_H-dF$(;#NRaiIYM2#}}08bj|T}%xIUTUOJ zwAzE#jgjWwz7*w5&azC!Nn`?Kl@p&4YF3cf9M(M-)U-B7W5!Jl}GnqzIbuyz=Z5f0;ryaH7DU;ndR#qlqRaNVoMC4DJyBXJ`{y2Hzxkv-NZ62$&d6j^E z11Fp7Q+NzN8y3#2UZ}UVYuptHCMaDkv5w=ejTdHL5&+9+Ay&Ran{{5zxXJBiNF_8x z7xZZPP6^&>Bu!^N!E-2`f?x6^I4Ju?_VnwVnqf1aT~Rh}J0rG%c-J;xsZmbn#kS6A z!%nQn5QF-ItVVIw&bVqTPXkd=E!n$N$?Zqd!Nc}jJhHI8yc)w62}z(Ftf>V+^X~c9 zQWS{I6k&VgNHvw6=!w%Ez{ljJvc3G2xK}B^KUG6oYL>0Tv7?630(5?I_I*I~Gt91= z;P50+c}r2ncU^nQ{-e{52*Pn$_%SxU_t4F6m6w{&gdY0DHR5#&-J%T|@}*OsO*A-v zF)c>8b{;@piFSU42bZj-ng;M)l-`=3vM{992f5#`=};UEKl1hQ3R@>i2C>}%;ejrs zHk}+px+q%v00CVSX`F9*z4*)pvc2-{be^Zg@qItp7jXHB+}BI|q_^mnYfz6~Som-H z`5FpmrMvY@2wlorg^~QwOK#+d0bg~}#&mjk{H3YTC#Jm_uQRwwb0--&OeKJW5RW0d zw$;VTwMm>wENB?r+9>sM{*9MnPviCBi#sxBiI z804Pk(RtlDSfjqn^Ti|W2l@)S*KGifTZoH%~zFREE_L2TIm#0tkNznIm%HT`70BjQk!%?h2xeX1ZGKl@| z&9h--9ieGIs0idrODrj`{g6GU?X2^t&WH8@HB>544A+W8P6vCn)im)pVUtGiMsg!1 zmd@Cy&u+0ngnJSX2*};bPG=q&voM4hrMQJGXyxDriA?Gc;ZJS1nI~$!DOGe0vhTNR zdy=oyWdA@)$W-XK z*x)l&@Xl2?SAxKs^Lj8bKp{JM?DPAjfei#K0qyC97bK!zJs}GwU=%p-Xs2rj>yj+8 zZ&h5Wrlyp{@u_-97~*FwbML-WUhe8MA~wK?Djf+By3ITN)UJaF>T5)RQT0&u?y4o!w}oLSJyls2isW5^MLZ`iqj8`>)b$^lSi$|3sL_R|n3rX2-Itm{TPU=?Kdewczx;aacQ38(nRm2_ubHCe}XSI0fhC%E)H+wz3 zgd03Bj+;Ev`JURdGj*LY&_B6f<-peAHElwD1xyp**(c~GxKRuQTUrN$#Ywg*nNd7X ze7Lz+F;tkzSoMeL}8GS zjML5AVfV$(t-_$pK@bRBQ%u^%D-Z@-&7%)c#h+FkFOQX+HSUweyFV?LzW=)v@7D9} z3_Sspy8ggnev^v=w*XY!X}W7K!y4zq)K{gGdho=~are!WBT`Gmjee#eN4@;YftxBKrZ3j3f zCL}wA^4JkaQ@I$Ky3$-+j;H}VE^>ELS@&EAdGsEPC*A!)_1cKiQf;*M^Y2FU7j#z? z?>!Cx+|f_x@sE@ab8*@u3XGJLJgd`!aF z%^1lzSFdV(nA;ccl1vu+YdBN;$sX<9m z#v5IVfjFlq<* zpe-pfTVDf9R@3?dYOcUFS4Ou>NbzIgqO5_%A70qLVqqokfxuSJ1kll^={$Kp8e_7l z0VQzTV@95y8QwTMs>GZ-UI%?-@BMTc`R*)Y^4$PJ$Yo^{L%U^4;cY|nR+pl#LM+I> zYWBaLyZdXVXbPNuAn5KKJ#hTa^wauDBN5HtY+THAt#tt*^1Q%)E2j+rP3-vW|k_J&$*Uz5c*!=eOh^AGOCB<;los!$3t4;1| zch*hK_dszrIOrKNyGIn&0ne@Ro9X=*rl<2>R3vFQFBgXzT;WkznT6YoA@xce)(_gV z{APDY9+=A>-b%7k>^i|BESd$cWuI4Bi1Ku=T^i&3fv4KNP!o81fZI~^{d2$8p5K4J5XyB#LO;lS zqnqN~1}+wXLZ;TlvOkC*xK8ewhLh*B*=} z3ATf!Fx`e?5$oY7Gxp3+JLmMYNUxuiQOhCeu%q8{ubyKK`8T7=e~v8wKY#oWBPsvk zrN9JtGU?gmJJ2b$1?7blp%P3S!^EfJ|@X_*a@h+E{W|SkEI7nzbn%8=WXVFHd?6lVJ8i zD+k`u445-%unp{2-CTkKr=Ing(v$c$Ugjw-Ld2}S=@=*b&R_ssiQHha+V2U=`u!sG~~orUX)B(&7w zIynv2jozHke_!*msyXLk^%2dE=ifyQE;JUI1~55Z(WDT$H)7f(q=B}tu+?vyQ=Z=L z#U`hx_E1(eQcIg%;>G)oV1$)+*K|Vb+~qsovDV|zDmgk&F8C+h;LF`+M?Rv= zy(Xc#=MW=v2Mk#2=;~YjeB0@UL_KC4@+SWMj*y*I_|$NUtmR(xO3z;`j|V5WsmhE` zf67lF*|QxfR)r)S&#!~<(jxd33v9$qa&rx@&sPVDx|{GFKE2(^KvynOR)!c)j4k z^pwMZVh*Fva>k)}y7lpQ#M|z3lSO8?7zCFACKX4k3d{5ruz6&^cx z9!09f+RMxiynRnChooZV1#6bKV#sFi4C|rn8taXY1;}gWVZebxBAkGyIPw9-`4028 zt4-1ub@N>{-n0tq8K3kvR8$R*w+}qxW~X%|er2JE<NEN{*?U&(?aF_@xna1#0c})AT$PfpQ3G&wdHW0ODPLalwVAE*dlt`AZ#}8%(;{8 zVQdhAi3#+#u1%SIR5u6_&5EHUv}>w)h`2Op`3EH8Bl|~Mf>>Ket}in;x+TbKrC~^Z z>0{C?))d1H4UqK!wRPaIBlmn<8d3Q(>4;|zYzc4pHZV$a(%9$Z9mSC3&i-@ECGWY@ zV0G!n1yKo|ZkZFw28H6oB4l<^5N>0E^}&ttDc?!uliuw|-+ol7%ujh2 z!WGZ9!9n|P%)Mt+lkdOg3xX8sy%VIWG?k{5L`0g1AV?P?(n~<31qlftML@cMf`E#M zNQof5g^q|wZ=r-F3QA2tV>BV2=ePIFIkW#~)|{Cab7sF_0a=Tcm4xSh?)&;)*XMGz zBr9B}+5ma_=I#4EC1CWO!d6PO=r7%b-3ctyj54WVby&wJXU;%D3NW^`z z*zQR@ZmDy4(uEpoyMS-PxK*QfUZ>J@x5Aj(TO->AR&xe-Q#d8f&-C*0f?tqrc7LsZ zo&QQRe+0~et>APi!Z;hibK|p~68(5MD7r1Je5!U6BIjdo_-LrHJ@cX*eg6e=L6(oS z*Gbcd=PlTDx3^IZZ*En~zs$%fu5ImuEnZZNIe+|kzvp3}hsALlX5=tK6x4Jay|YQ) z99G9?2DxGy-c9*T!FK58p?80^@&)q@7GjfvV9ot`NnKCwxHxfjmQlxPr@r+_l2I95 zCrK=~W(}h?2by|{hBU)p4^+mbt4cj?j`6fSb_N6O{*7|v0DNUHBAR|hI8Gmh1)W3s%0v=JmV`wy5L3Uyo-+5vy?Ud;Y}`>2O5F0>4-@#JX^wXTQ?qY zvXU`UoSM>QM7}petQ@04hakM#B|MjBtk3t!b;mAM*ow?8d7B6)%)Rhsm)jHxB~=~dTjPS+n#gbK7<>^g4PdHY!y8+U=8_=V_`J;G`3h`?+jddR}i zK9peOG-T`iy`>|<=}%92K;Jf+Rs{Sh%5-eK~$+}-%fKihU%MSni4^&QDW zU7|_p^}&KDw&c}KV0FTCWDG@lXiV$4!Sp``-uu{s^66@6Yt>6RHE&9g5cC`HEDbAo z&e6P2RoN>dU8C*~VwyEGlu7%kh7yD;q`EGwY5Xi&2X@&RIoos1+K^ND&g`q5gAZrL z<&L*WFZA*)X;EUS-_i6-({j`oZ?JAug=@22#yqoNnZrDq`HX^7Ov`8-*N{O-Z&Hdh zs#fPm%0E|=1T~I4;ZA;r68ok?eJ1$p?CY62w6}4X zoKL~a<1_bu-?L~)MeGByl3o<)I^TohqCqZDYS~3TXyH2wyfwB z7*!DeG(F6p;(Mcw$x?cYE&;5!8FV?SbU8a+s3M@_b2A=t+?3$1I%w1Cu)H{o!H06N`OO zxi*p2Q0D=5L`40pI zu$a9o$Y!K>`~y_{msThs#9x9`M)qS>lDZ^NjiO8vxjAMox83u z6np0BelpG7)8f11b#;|px_M*bS*O0_R^Btt^HpQxWzR;qQU5a0w2_m5v73LKY{n2dn<`BS}%(0RB`cq{0^*>HeiFte0*CmRFai7k)E$^5v73OH^ zfgS?B-j#ATgf)$o8Z~kK9ksd&{+Zz(I)E)KN4vXracGY_TITN5H&OH8J#&J?$tsDv zj|IOLDcy8h^pH8~2F^#gRG?J)MoJKty8=2=kdFC;VFz<<|PHTx{K7*-e*py@J+@?BZ9vX0YXCsrBeA1~A_3 zTQeZLUTTrOIP+z;>Ai5tN}q5YS4>8BL96C?9HhiL+cnonGn8Yc`jr3 ze71(DhGmNR2bY%nfMCWy1)ZW4k+s&%Qz5YOR1iN{6TVH0bwY7(^{d(l2F>e##iT?I z#~??fu|uz{L+&UxWR}X*J*jvn?UhD-N;9D*{-ShJ)rqTq13f$?gJlvK&gL+a;d%Y) zo}?=iA*~(h&l9nxY8yk9YQyH&65=`75BE)x2h>i2NGsrl4F#oOgy=?u8XM4dAyT4U zufs3H(7wv%=;=LN5a^D3l%i;+zJ%5C`(q!znt(dkA28-zQy=X?fVqn&(%J{3<*~sbkNfA+kfQS77(ZLm}P(^9y*9S4xi~4y^qQKAp>QIFuID@ zN+MyRFI|^wbI0YEZdr*v$>|;`$aCiYlHQ7DOfdvWd?VQ+^vf;es?>V0oHL!3F)^pp zX^`QU@@tqgoQttxi>Rq-erWzccBjdY<%=8>QUW1B6(DO-(#X%Lv83Yp`CrcP!QACl zD0Wfe-gj|l?4G})C6|73CTIBUG3Jq0f1priA6q^MRw9Fve!!%x%k}|C%hrz0?kVHI zg*|d_=EY9_r!qvJMd^+f7N)D4KbX60*7qNQTFrNUk~=ns!ID{<*GQP8pZgMl9VvBw z-gPLi2*+>N4lL3aUg|t*f^1tzEGOJVsH~%Tp+LQM6;&0IZ734(7QSf*4AL{g!w3ef z4IK$O1{qIJ+=>}KKQ;6~{+PQZ)1!AE*f#)UR-@)foE}3|29p*MUa?BoXieOPHg$&y zla)TDN&BArkfZxE(#ODs!$(n|jE~sbXCsaLTrL_}o`@3^6rTSfA*lKyRHa1JJJZJ< zosi?u_Z{kkTmdy@*pNBsx>QXj`D@3LuCwA(C~>~0RS_PAKR6(={kHZaG}J#O}C}f7Bu>1s)UOXAw!xeuF94838w96eTS@uFwf{%Zr0<)Fb#X1nik`WDR%B*Yw<>90~96d zVGWfCoS*rcUQJ2eAQjeuGmu5DfVhz#$s+72xVF-Ja8e=FLGH))P&lQ$k$qR>4P#1> z@liiC)p{ZOdBKbPYl&NHmmcNDjCVvnUXHIG6H*qYSMdzR>g@y(aKH_WQqz4@2`t3! zfmi~Ba|lIrYum3^Xf1b{Q%A*y!kF&7w0zy+?Iq4C?D%0Q&X~r`n8z_28W4Z~+|Mk2 z-CBXTLf*`d7&pI3mZ=p*-PXV3VG=d}OK2jD3)`o&=G_(H$R<8{kL5HI719T3umK8L zj^PHKI(YNFcreL2W>Y$r%{*S$XI>^AMf>vqayqBl`eE^uv$VA28cAhGgl2)TnAQA& z=EVBXtT=D6TR6Z_RyQKwa7;trV;ee_@6r_QX)nj}AMLR^ZG|R-6%l94`!Lc?nh)-m z$J32bmmKsHxE^(5GUFbRN9?a)FxUaZjAbuC>|T+D~I@&Kj>k7M{Olw zu(1T_L$J&UL6c)^TQjvw!H1x(XFa{we5ql@G;BkvAe*MY*pc(jK*Gmf;EX^Y6a5?2 zo~A*Mqb`$?o9mhb5bo7LS@i}z)#$2=R(>tI-nDDtpQlDdM}G5CpwE&)=a?venNFZQ zaaccMXyOi14xu|)7aFl@w-+m=pi$!)U^F-0GNX96FDzVox^d4#fb*jGII@<}`=%lFd*dNi? z%};sGH;e|B+Xj_gb#jeaxd%xlm3SaOi!*%`C^io;U?iUf%GAka?fH8I%v~o+9=pUE zNvNc{(0GwEfKSs9VYLqBRlW49RT9<|-P+OuL_k{J$_B;yYgDGYe964$;^jCz4JHjC z=NaSW;tcKpQPTLjjR4$W@J}#EtT`^)wuAhWu8U2{t~6|@>#2NQH#2x(qjt$+`p#vQ zMZ?-XPnDfka`yUW>JJdd3e{u?DM;2WeGTlf28#2E?VdGtMpZ-v_uOpOLxU5 z3OVSns=Fb)JV1Vl?Vk_LfRZpBu?od2msSR1up2i50wZ@d)+i<{`j|gzzrt2DbkF^+ zkhsz2W1;gCx08W~@@_G>sQY1jS#(H%Cn1yVFVnyuX0k@N&uiT3)zG^78($JPydwn7 zYKJfDimjZ#9yEmU!3e?uC;`=k>_qIQG*ki5wh*=K2Xu8Wky$%;_2HU!%}|2#%7^OE z!1{(;rw*3BVx_d1zpfoWNI&Sk4*@tU}q#BI1X&mvHbq!mXf=g!X$5#zzs;!}|p>+M?Y%`pCuvJHY+ z?)*x&I%{ax-WjbO+(JYc5}OBAO>RgCyWKRHMO@_=j%{yCLA3d zHLRUJEg_)0JbX!R?*seS4GirBa!yu~>I53jH1B8lrM{YmMb4<#{Vbguybs%APv3BJ z_KST&@R2KmKR)$&=QchB;)%iPkMxRygd*J`mhYw`txrdeX~m$wJ1z(zFh&xr^nW%r#0_yq;?hOzjXQdJwOfG1vT5*B$OxbPLM2OkDL-f z(*bz||0&zjQHd4s##TceV+hs6n@TDs5-s1&>^E6)xdm;Ls{&h`7NT?)N)S&&)Ss7G zzI0jv9~{FBi?Q|89KAIZt3*yS*hwlQs1&3IX*xhwf*Sogz_qLdRkOT=`~Is#sqf*Yx)3KmO<^F6S7 zQg=^}!e^FFlOHz9SwwW zxKULB)2dR5_C#RIH%DmGdi~kw{P9f4VCn+p+|hHeH2uOmz~C~jJ7&>1`?94yaen`1 zW5x~Lg-6xgyS_7A$(c*>D^r=>Zd~Jm)K-e<(JO=)@IKt6R@8j|bL9_jno_OPFGpFq z>CmB0kB=wg^_Sg05@VmSw2B|k5^>I+$5Bu50g(-;WEUUVo^Uj{#?m?6+zH}ap^ENb z4YHwL{W2@QoYA&72%|i2Fx^lby?1OlQRh*J$nP3pIL_ds`q9J?21n1jj=xK#P2Wi?iZ|XarudWRd z(V(8>Fp^jK+>_}9&WVL?GpJiS1A*7*b1e08*IMa2KSQ95Y zVK@7erE(;sM{e5JfA4Y5D5M~YuyUGJYrH|2WT7(`2qD>&W8d36Fz(1UnL)oG>o$W@ zBbFkL!mWC;VAq|o4)M+1D+#a)#0p3!Zlm6dq&`IIq54^Il4!c8 z(P&9usE^XnaHclzq17ARvT+uJmB;>Tmwj$qZf{8LARuIWpm!FHt)T=Tm32V~?#ect z2#qpeVtZ>I-3CF>@`5j%3B_MMH%&pTf4GX(Uq*S}f2#h5B z&Sl1_b{cQqpU9z}DxTFfGALKN<=%uuNf^t=RZLkyD-jT6GAIwIKEya7JSJmT`$^<@ z6v54+PGSDXcUP{54(`Mb@AlKdeeQ0*KBXJ4=RZRNy=2sOk`2XNmV=Z!m@WPdtk6E& zb2eMzS_jXM`*p92Dv$DlP8uHeUbE7Bdj5l#W0b&1S)0fgNHb<&KLyAgt3QXk2JNQ+ z&K8*cuzo8g5|@ImRo5;geRNAZ8F!hm`YA~9JyXm6-7EE+yy0z=?3;drpv47B5;YtR zce^yJ?ceN39;{qQB~Eb!mbshx>AZ}vp#7I%IE@VZ)^8B>6_RRD4A=vgEx zBbp&Z>Z!oTnG8n#Da%;Di0_{I(Ft>1TpozMnCOyt>vw&foRHO%$u=y~p1MjvrQ*a; zcd{kEl?!z#5utoNO+`*tuRY*iF3odF&Qr(Yo{zTfNAjA5 zSHWYpFXCf6ckiFiy(G*0-_(TvZ~ysU!pKAa(Gqzq`waXH}JrQ5t z#5X{j;PO9QtBTi*^j@gU@|#mQKsS9WT$OmO`<-uJ;`1VFE%j6Kr5nFCx`V`qaf@V> z4?0YLE8mc>tF9s%;PMr+q>c2a~Sfq%^oKASS{JGLb7G&FB7;} zEW^+N50B&mw4>e14wrmVX_{xKAu^1A03e*ORLlrq8!ZL1 zz>5YTjj+1~xemrOCQy9TF>TI}Ay3`ZhPx zk4^+}gXN7$?ER9C<$iu-$Y2jRaqM!_^vTX?ooe;<1HyxwUFWp1h$yj)GyR1ba#>2; zeQegKlNes45&a&3hrm%Q@aB)2G2C0OZyP;U1ELSH)_27V!9jyt6NiGha~DGH&tp=7 z7Y2A1`jO&ubP+rXM9sK9MK@NP35;^YR(`Veu)23nYh3b!sM+H%g|kW{Jh_)Z^(bZ# z!Mrc@1l)!aLe;7A4Se*`fDfIQ>i~OLa@24eS?)nODX*Ro% z_*$s%iDfzEJdqPvO^V!fEzlYoC~H7!eb8LzMPplqx~D~q99D_)31ys$3?f;{tHDk> z@T4f2uQM`%{PYwN|K@VL)8QLgbcsZ@ z@)FXx`_Q1B3*U358yFR1?(n5!n88Z$z=Z+qLIUC(KF-g4GAloTxBT_@YW1q8)!3~m z37_`v*(?Ii%{=i=9*RCIapDUZ?8%P-8?)5S$?_|~Tc66@m&Xauk z-&SX@UG!Bum!h~?T_5Up^b(jN@Cnj&nyESjP3fQohCrk9JkGRjHbilT=p6R-?ehC4 z{jb^jTDg{mng6^1OdLnlr$CxDp#{Z{RCN31AwhKuMMKL4CSp88-)^m480s>J2yzQ} z5qW7_0St17mjfr7M!hTs3y@$GEtAd~!CR31Qkq1kpTl%Frj--F zZErf86@S}0Z#Mn1_d~8wi(aJ4ZF&%ieb=34hd4!=_28zukyVF0B&XK>;5!j@zI&gS zBu(1Whq&LwH+;#tXjnYfcJvD3?>3R*x89A*>N3_$lB$3Br(hspQ*-0?a?!zuLofmc z^sAPjwV7$>X#DV}NO8K^^qnbymhHhp^&w111r#go{@f^n5sVxuU+dI4C-)fBC*f-K zNfY54Lm|^5xelV2pF+_;(5W7xB)+}?AXmH_bnV>?-JF2pL0GnDTxp!S-AUU0I#;ku zYUym7SB$@9YLw_!kl>``ctNj=8}IgeWD*jD!FKj{%-0cYcz~8;hm;DmnrgMXajpA^ z(PGOZQ@&EUqKK3Wy%uAFH`wNS3GcMgSQAR}WRHvo;^dTJB!LTZB2YFI+XRnPO=@^@ z-SV*^^I))|V$t!toBO`;5McD=HST3kjjP;RQ>Xe=xFSHLqgt?J$sj|I?0sXaRi1^l zPN%*kK&QqKhs~r>@yV9w`dLQ5(g!9PBFH7MGKqblJPXv6I`9Fe9h%}A(i&b#73yEm zH%%>!gbGZA0e%H~nzT~#TdTXU!4kdSVGq70Rvq{aKwCh&Ve88d4J6bMMC|)nwX<%u zQTM;@aGY#0mOgdtT19YJ{KIaMODrtuhadrfzE(x#(WjY{L(_mX(Tx3UiECHl!9f7A zZMO8P&dS>zlNAxAYqeZC7N7qg=jDI;fcUZWKW-Ew>J;Dr|#9q;OrnVDhO7q zc84xAI#2e4Bj#ZfRXCRsnQCrbwnL}0U)~>MVxQ5wL9A0`#Tfe6;AlOo8X zVU-oq63dkf*DPzL85DSN0) zi!_qZqXbWsf1@KE^%)()s2YE{L={h4@XuGb!sQnCQ_jF;H#v zB9!7zuG&SDXzNb#h7o^?k_pcl|E$xuxYyk@ZN@yR#^Oqw81C!A3kY7%&hPt2Y=fB$76cfb{QsyJ&&TfN6 zkrPlhFyAf24Qdr3o5jDwx3rS(+&QfoaTGYb>{Lz@fDsEvtY`2A-kHjnvI8aFq~O%N zFJ_!f43AUj8dOmEgW~7`92QLo9Y7~LYTfcjiqE6xwOgH@!qnv-K2VsvdX%E&>KTlBYw0a{wq9)YeN6Zz!U8Bl$Gs{@w z^>)WbGa)nNaIiV@G;dd;{igW5P+&JD9<*OrhI?1_`3{>t@G?kO1n`J2@espD0PuY z;7tn8{mc`~z5}$@Bp@}9UKwfvE^}9UKpA^SVc6SSPaiRh+|I4|l+J1E!*SjyXh|L8 zJCTBs!r}PHm zGeq-rL^MA8;c%Sh)mgd}ydx$1DF2mn0BL!(HchYCv$fUYtCwQn$hZ^hqXC3OVp4W%_dY)USSHsP53-4UC;n)6mnt*SLp($dEl?`sZbOH!i= zrs$zn!QXXsQ?F`e^l`#VA5E{v*BV*R*rzeUDx)aF7tlVbl#fT1x2cD37&8ik2YQ)0 z4~w~Io2>~I9SH>IYv-568K24GQ%+<4>4@h z1pdR?l~cp6?@JoJ-OffItD5AWHND>V?0oLCg+lrIn**<9ZmtI)?&|H`+SMQ}y@MP}U>RSbOPDj^ zW-3hO-3)KRtHmWZH@B7A(KG5zy4%bvDn)AF#t;22vdB7+wh5bqnn|PR5kR=KWlYGP zn%axtvH5kwYV-SokEAmOp8Y;76B&UeN}nA?H`Bvt-2V5k=aYIq;s)=+om|MMRE?kR z&hRozL2)!J)MI96p6rSpyX$=c)Ul+HC;o*weSQYBUH}2@F;t**tvQ{2o&c!#%#XP1 zJl794zN(?+7V1q)%kx|2Uh^pR9i)$O`#6V>Xfui8n11C>#mUD+32~h{Y6hhhXhLxyt2k0y>*2|-7b5HA1hh?e5Wz1A5|C*&XJ{XUAJ=jw z-E46Z%z#<#ww{o*crYT>CXi~ECx5;mI7{miNC=@xeL z!rr!LrWagv;(jDy>F8)z%gM?gh|Z?R68O@}&a{)u(;Y`c>nXp>Z#T5eJU0+NCC_E? zBH5B<;|y>h`H~m36DoroFXslIWvoeN?|i4pZT|^`d)c;oPemFzl7|XE1T&^IXz^KJ zLM;V&2MT+Cp;Ma2m0|3zU6Xs>SuSc-d2H~Kh~TLPJBPN9&%9*`@kS==PP@$Ha7qA~ zK)0r<)S&KcXN0Q1X+JpGel*+5?w&s)e~;b0UFIQL3f%MK8mIUsuEm&teSYt zFAV(Y$#}c0^n5z_WHEtfG|a~^ud`M$CefC|$KW34ZN5|n7h@J91!fA6tV#t-1xAs- z-=EDHkMVrtjNNj~vxen!_gH_iH)}K-x!3U~IN@3R@n|sbQ5Pf-#R{Jo?19X5UDJ$& zh`IN@39PGjaorNIjtLyv-4wVrq!>2JBHcgrcBhx+1QXhl8cvfkra9l*_Ru*hep%En zdxCV}y6oXW9j32oL08_x0516sOZyoX5q<&5#Lw&J(?2x>7kUiB8^}Wr8nF{(8(zRK zFXId5O3U8A*_yc}W&0Dr6~qcB7D5Gi_TEF-LLA6A4Z@vYJNPR=ux$3^7Js0-y;QpY6@@H0s8)I9LVlp z{`l7T@l>wdM?4f2e_7b?m-bZ2)}=D6-LjXJX+Igzx}j3Y*+R`WM=MqJWQWh(Xz6pOZvOmhb}r1oYD{yb-?s{#6xb< zkfqXJRw2LNNeiAH`>=P8;C^7t$OsL8e_J6UZzo$ts$;>8Bt+4s#*!aUpk(xjbu0m# zf!{SBXw|=Y&doz-F=Z;$w@jH9UErhTdxKvWSP}x*p<1EB%)ft{BA?PhR3940Rv8O5 zHU?l!aPl^wUc-lN1W$Fs2lb*nQ4PKB7?qMk5%DAZ`X8qapMR^*`L8uP|JlBa{EOeT z*7aW@$hPc-|HV?s{9kL~PN5x1D!tiRAmOH^$m|pko&|)tAIon$o67GCV!0JW1DBU( zOzWGh8=cuyuX2E$nC1ugvq|Q$f0>4B{PA0(9%o_qwaVZf0wL$$j1cV4~05Sm7D5#N9432#ib#y_3?v%ew3VqBmRCrP_9O z!}PSN>fi>)|UWw`a!tDU|IHfAnzf7&=M*>PrsFD%7NI1jJo;<=BQFr^xWZsNKI(-BEzaO+^ z{?|@KwEDk-<|f(H|Bv42n8>2Tl;1hbM|5Y68>ZcUdgXyY$GiU9yf)8qz?;v`gWTP?35(Byaj;Nvm)aJ&FYkvdGZossXIt z?s0%A15E*1XoJqePyBH^gb~ofmNgUirVGHg?lm_mHNJ6gcYfB!)S!5Rgh>W9i&m4W z*2{sLeG=BUTw#rFT5_c=!y#*DK)F;S10E_ecUef`;ssViAC6UENh<(a==l&5WMFA2 zmmDA+;-87O>Ua0=rAT#dyBk_WpGmgV_?j#+dRs&!qxJS(fI?vN&;MZ03Kif=fiI9% z68)z4r22k=#b)b&@VL?R=__luMxwzl{4O+yHhws$5t3D8k2yZ!Iz*19i=-?MdT3`1 ziFzDsOXrFMSh?52R=2Zb?gGRUDD8%KA;HS_VDv8gZ8Kg{lh zk{YFs;1rH-(# z(P1?vM$IdC*;1?=+s@sqZ+xSan1aPHBd2iU+U1!Z`YmLQlnzqM`-b#U&|vY{cF{ph z@Q!;G9DhO_BOuRepLgC;=QBP0AHVMsj$pLVk9qi=`+jq2cjc!Hz{)6Y^+BO6o11BL zNq%$kOZa?Odc0BgI{P4q386}De+BT6El|CCI$o=(a^7w$Cj z<$QU4;d9U@ov~#ZE4QxMh|U{cFv9~&o_8>U_)^+U?n^5E7e2Fvc@&X;t)sFSDsZV` z2tQpdN4I3%?Ud$E6SWd))3EdXWv;{xgOc1~CUivmQ9K}ZXFxNMYE&IVS3}97#LDIe z4rTjJO$|+1R$p)-)#|hF(j;v;94=kI58%N>ou(m;kX?3Q`D&mU`$J_gjgVGUgWyl_ z042NeHzv5bc;P6tNMp4JaP_o>KMH%6RWyJD5`X3dNLraP)toPdC#!jVhGV|SwzH+N z<$X}$&3L0v2d`K^f9|>D!dJ{|fA32&iGAlJ?H0n8T0`JVEaN1Zeq8{XQRFh5TJkJl z#HJ`kxtNVyxuXrv3_*~N*_V}z&v|JSr=#XgDkrIP5W_;Z38=gE&qko|&*Nwh>3Jv+ z%nQA3FOhd~{&eA$yz?T2+!N2(#1+c+@$9>JV5)_Yirmk<8-Ubt8>5X$)r7u>_Zw?Z zE)EOrbUc3V@=4S4alGZJWF~C|25%07O)<(X##ptP6Ym{a?KS6W$r z@;qbL{)%^=b(R06xDOxdD|&J7_IJgIIN@zD`@5NlBR!YNpF$OY-x1rKRdV-FY7pG3 zy-fG%GWD8g4kg5tDFVWS3R+d|!$~s~>2_q5q?4E_@G0jYec!5=i>q-Db|~1cv5Rg2 z^y(yEu`7$$u5pMf6#r%!jFts;F6?V`sRS6MJXQQW-}1}8ZkBw-<|F$2(1{Pdcb%`q zmqle2{8&hW+(BiRolOr_ut^z?g^Dl1MG0#MH-sm*_4d3hR`1?TAK+c>^zFGvZcU0T zPi1J$(b)+)H)pl2mNU32&DLH9`T4J~$(Vh;VDyazi}8bC`53~i9^h=60?myfRL;KT zA@r9iJ6mA~gH;!bt2nw<<~yN!1Rd>!z`e>}Az6^P)1=LHk!*mJy$lkxs`}JEQoh5F0~0j7n!ZI(PI06N=_#d@egZPmhz$AY|;? z*v;?#bZkx?;*oudI{twf)@-5N^lbIXXzn9go+Z~hQ3B0PRiar@O?rV|$V}3Ef>RRI zgS0v5JG0r=I=w%fZ}jX>@PRd#vBL7|bK{MU$Nm%Io9VyV(wXwSgszSsE4X}pawLr9 zoeGNz?pV(dU<6}~1M!C}q#~+6l3TxOurB(>^bSIgIo-zKdP}R9&K#~JLEQ4@Z-Z#D z751@KBs_uiHCI@Q41FWjP` zyHW+CKQA!FF`>W9Zd1;XVEY44A~R3Kg{V8)@VIS{MTbkPSmwpt1U0HX2ugFw5)O|y zR{Q}O2hj!D2k-MX(2i3f=F@wGvVF@UyTk+G+a8>XJ#7UJBet%3juKlu$PvV4>NpXa z##LcjYtb_0e?P9iG*qNIm%sA$Ws8rW2gWxG#ihBKp|$vGr|P8sBM(HiDHLrwNtcp< za+!m&{;X<5ZE85QV(;T#7lKR3emg^?!qF}V60N^@uQH6Nc|0KWEv|X+TzzSnG)MM% zlcuK*k1w!987s(KlnEU~EdkW50T9O!5$0t}7TL=Wo?i=j;VIHQ-tt1Gf4%v=f&kly zg7Vk+kcZAWL4!aIy(eIxX3Kvw*x{JzRU4#Rf?8%yZP}E%g&TaTcr|v6lpM>1p>t@bxA03@ny?{Sd#*Z6m z*4KR8hqbmaGR&IGG?lMbBa0u6QIi_eLYgs!5bYNbM%X^mup4C zQrpX1LidOcnW!u?ysd22F$_919V1LPA)^Kx;5C42urExcR@4(#P@sFM^JdP@refr# zY(FN`hN_|Y@P|w+rGI)?+pVqs)inKFKtNQ(Subv2D$`jshKPXWDF`fZt7berX(w?t zGr%L->8Fu~Q1#XNxYPKGz^H=SjtIzAR8aOJjbaKgg}q|49~NW!%S99=-K!EKXw~)F zom^IpTIyd1^WDvc@P$!rZmQpB!d#NhDgU(3E?}JhUe2zgnecL(f+6uG^$1uKHAVgJ z!MUuaBfix}9%&7jeW^Q|ucCMhjRwQ6FJjjve4c5&Wo}y7v>DW-oyrq_# zkPh9xd#E>%(--TSHl}0i^gmAbOU2yS6K{T#IL>^jZ!`vs5aFsJn=?+FBk}=`E&lA` za;g)OXR_;l$I$CeP+AkUS!LF%yYZHI9~n2B8$S{QYNI5I#aHIDQ##7N)=(e;ot9aSigt96JD&yC4p&e@rg9erd6m5 z$?P!@s!c6{NmKr~&($x!DvRV&sO(F2xS@M&31HcS0)cbN{z#k+WgbB3A2z$|4h+BC zQY}|rW7kK1*e(1t@YPZQ^O&+eJn(5X#lTrwz?_KNtpv~;D6Zfh4tR9mngoeG2^N`V zXsr7bUlZ^mYx`!NrpiP?y-F#=VocHh(Zlq`zW#L<;+g+u)rHJJ|Hll60+I@ye}Uof zhs1sqJrDUQ*Nz4n_Iz=_)%7)xx&Rzz+9?+L8f3ku{2;G93qrXVi2Gwyb9jKc1T4k> z`e6Kt|5zs*1N)EIhxl{;Ky%0*SPF5KjO+W$B(;dJp!!vhS8Nx%X<^qcUCNXHcB3K3 z{LG+qR!R@?D6t3pvAh{IpcLGkc$1@*bIi=|iKy=d z+k4lKBN4#l?mfZix{T1kd_Ht-MXT}QPZzR{ly`0(rAGX?{OK7v!?h7J{$b18NtZJNmjjyEWGcl=#-4!BXCMvN%)<8D&638ak4tYLClB8oY$ z5=sXd{y>VfgTX(m4IEQeak5?J>li7x>%t&IcgE1<4OIx5;nL97kWRFn?HaUcR&CN< z$Xiy+06mr0j%^3&FFZ!|Sz`Rl#h2+Wq&i$;S8UZbwx^PWwkC~aM1uI%jALNYhI!W( zNZL8RhK30)iOGummzdJ&@k|Z960e4s;&3!IL;&DCf-Fb(Lq!cuiJ7YAijk>xfuz-2-*v-R&3y#g+Wag0obRxnj+W!EDP#%j9cAg3{G3(? z54X!VBlA3?h~?}a%C%*_%#CImIMXXoAonQCc$_JsM+_*{n>Y@S_8=7{M_Sf4;e?h) z0^TkUn~lA>lXErww~R=yf;c2W=ND+FZ+(KBu?Uqiv?RZ$bdf(lvA47c-Bd0pb+X{%$?eQZq#^=B1&raxpOzC_%88|HnjG+Zf0?XekGyWq z!J4*X7v9ZOH01dk{#Fp$@V@t2?JF<-pv7kW=R!)CxmT?XetQ+XAw{$65AsVZ^#6Eo zIVXOsDe{AO?Gw*pf-z5rR{LiWGaKn2fT<~$rUt+cxL{yac+oIarpt4EdC`zZQBPE# zgA6WV^^of>aP+_9Hd69IG%c4>&ELtb9awqT3fTDdhG0-i?*ed>$2?rXaMJCoN9z-6 zsvb6PD>pVd`fGrfd@^z*3xSh(UfiI*!~oPNG{UXiXA|8||R!C(%- z1FZQmr@T?>RxsnaEPdvcGSw*rD2AK|IuYn0K@yk)EZB$}MlI!Wusce+zYYhlO&ZHr zjj2{2pW?N-dx~Z3TeWgZP)zX}{;EY%jVd?4IV=Btfg6+m+nu2Q9Wn2J`8ogR-K3NM zegL59t)q9`>k%GQ%`ozz3mKP0=fQu7teR9P87$Jf+x4rVw}`g^h{}I<@XEDR&$@me3=eJH@i?XY1i_ZIEd8UFx^c411Bl{wFW4{pN z2Dm8xG6@3=1+8^V!cGqxJ&IKR;D>>Y*hDnpFB8x9^kRUJaR}pbNnzo4`uJt6zi@@3 zr>owH=jR4ga^O<7BtY9=9$ujIQw50ooK&lRr@u^sKdtpFTifMhcAB>H<=je2&x*?$ zY54n`3l&r_OUi!yMw|IiGaIN7)lB!0p6oIp;8Kt$fdgZy)L_R9^&ZZaG`^F~>e``F zLUGCbqFX6L92;Id^+7M>yN3_$CSw!_9DTiTlHYKAVD(Y&NSK$&`vpXeM9*Xkc`fvq zN)At^yzt3K!Q`^HI~UP2nB_x)O&|IMazI~mXKB3-(x)$qenb5O6-N2M#av*>dDRPQ zWy`x_dN8$4@Akal0S?th)*DUI=_H`u%AAzCt3~!(2a;FE;R^$jQD9-XmsR&%r2BQ% zIIZhl?^~X3q#WR*A1Yqf753~hIFrNqoR5$CPvn1_5ItbcMF?poLfEOwxS{FQA^ft9 z;1|(32|mG)>Y$8B}7qgnK0FXq}rQC zE}|Hcof6Psd1{Ng@sCye!L_q9Fi_upot?b8=F-xFp^u|SFDQPpi1*x=28R>gpOgco zmA^*=W@G{yYeP^40vA0ms=oCvU&qYtHygQH$~QCumc-b!jZ#8Zz_H|OJPoa%F0FfK zN02smln8uMbem3UG;p6MfD(T$|6kO-XHb)U+wKbjA_CHTiPEJiRRM{LG!YO{kQ$X< zBhsRTL_m561p%caAiahrp*KaOL#PQzF9{_?6Y}iq-tW6+&suwCul4R(AD;EWVMYfW zu3Z0ep67A=4iWLY%>>?h9JA;5hH?LLAuEoSme;$uYy|N(r;L-tU^7*r150Km`3(SW zLTwYaUQooc5L{$Mi3_&e^|yP=#Mc+BZEs9brmBj`+Q&3yZ<%$S?(@>tt&8DFC10{ z431)r_W>z10Nn@I^8r%`S0n9PWga$7X*eVstZC@r*d+MQ=Y3W3Y(a9LY@xC6Bl()a zV#$P6OZ}DDKTT){^h)V6A41S`={!k^tV7Xh!Y{rD7?UAJ2fGyUHvtM#{U(-cMj{1E zDuX_*u`(a_iO{_&;Xb!+X);DsDmJ9&Oxu|S3;vmD zQzl(Ftc$i1VRrKCL%evhr(!YLU~+%idaO#ap}paQR2a-|K;n_Uu3X_&25Uol_E&6T zZ*@vZeFTunFN#Gmsd^>1ryL!INlyzxdT-2b+ob*6FHk%Dkzwj^bH&p6egDI2@6W|8 zA9E2SNLRsqW+b`XUJ;evHzMg}1zp6mSNkF_*7t{h8Vh;fFy0W5|4>!*SW@CK%JTI! zz6i;vwdFogB3iIR!`Knr59ZybUJbb}sHOXL$v6P z%FAF#Yf&u%QyV_ZNHpg9ok_ zm}5%SR)+dATf1Mu4qt0u(`Via@1U)&cN%gc{b#0H?gEAGuN8hL3wX@) zyl0P%?zjo_GoClLQsoNAKfl)xmVX1M_~+(TZd&qd@=c0LIPuL{afigBwa#b! zs>x)>1&5t!!O?g7&_-L>o{yqJtOsxR$u$1jtXb-Qg#hfvWni+3A|{+=Al*I(1M_l% zl!>b~9u*uwZqxRGEN8XE2?TAw&CQM60jM;nN&MGZEK<=)s@x094L1aqt zm~8)o))UFvaKIh(@cbq5%*UZ(=O4~L1AxP3 zA`NtdW*yiBeKu9&pezt0;c1lM8^ykOvLlS6$)b&>}UW;qByQ*fn`{CO!_Zg zyeT%}t>`0>&V1wdmCw%-W-IRR(ms28PTxeOD@TJ+(v!qF4;#gA<(jXizlQh~@s^MDMlswklOvAq?hufj4r+v;Jvp*H%yjyo(;VZ8 zVL0jKRi|1u{Js4;cee?5{o}?|RY9oFwYyi7>s4q+j|lkX)sp^$a9{f#d{n>YMuf#f znHl54Z9ZNxKhZz|dc|zwzIR)F{HFl5>O$%`vcVvVdU+ZCbPOJZV}^2j_+C&_^Pj9@ zIQen^YrbSIGE?krG>yw;Z##b=j+T*fosb(tp#>^~Ap+yu4xz2-EXy?9oYy*mUVZxI z@YoN3ivU&QoBA-_B`xiF0qr5~^FOacKB4iZw#%5p?yRZ(a_lmXB;~Wm;rTY7R z_foL(cw4)hCb7qoc<}@OWkd)N;M;UoM!BM1>4!zeh)UOFIAm4@2wa}3GT$$G#{FH6 zNqL;-iNzJI8k(PSUC`?4M&qrMG)5N6SE2yvLS)Z2-4A26%@hfulNihh^W9kk z@$it4I=wRx6B$QLs{Wuez1I)cUz&r2CDrNv zlH<274#)3aFwtT_T=al2uq(Z)6boRT{cTTXwCUXQP{g&Y-XOj=Ir$;-*SD|w7U@?^ z13}Odw!u*{5;EaG0$prqC?5*YPr)m>|Dpl*DQ5t2XJ7peAqH4F35w;V4oey_0nKW3 zMOz)rzZ3vfMZQEebC-N#zl)gbT=a)?KJd@WwA7z~ijl1kGRHO`Do%P`yd4CnyWdje z)ymNvK$oB&>N3sicCV={U+Pa}wy=eB^(@2P3gefLX%KhJAvK`d5wwzSix{bgm?Mij6LjL_~|0jrzn4thvRoG_cr8NJhzK0QNLANi&C z)y{BCK*}|h|AAK+IJ1=Q&)9!s>-`@Q8_5c1CLjT}E%Fj#d}j3l{?=rD!lShx&n}eH zCx|*dydN%eCuPSWKbWioV+IyG4NVtkr6u=tZ@M&e0 zo(>}qexAe)E5vOt#t|PZ?b56bLRrSA+o}xNPf|6%kokOiD7CY8-81)is;KvNu+!NLJ|6zw^0z#aiM8 z;??cGAR82gTe=%#70!ia1coPc#$R9>W_VLHRz!X2=rP#@XMz)o-dBWv`Dj}(7<4c1 zZf%~(Cl(soAV7;1b|3Le6VyuvMWm5(yOkG~YuP+Re@CAhvaEj^Df$wD4EQI*+?=65eQ)tN_QOK&}f*C!#S`A7d#MLHH}d={q-K0zEMn7qfp3g zTUwrZ9re8^k5budY&4>Q%lHSQiGYxi4~pROusMj5*UNZ^#NN>Co0`OLjTTgtGk2dTu4SI=?ISbcOB0(X9^P%2lZmsoh2==6bhh~nxay?(&ysZ3*Uif@R z!P+3Bd)|%0ZwG#Sn={N3;0ALyHUp-CjgW4T&`!`_>9@zw2nUY3UurQY^NV;7n9rLWUoVEb_?~!$pO>>U`e`fIc(~B ztBo}`<|tS5yVDyT@i<9l>`w=b?q*|ifqj{e5>fzXN1HK{l(4vzuREe@lXQJtl>>7Y z{!Qr~L1tIa$xNSv-E_2dC643u2KE+9sk5TW_|K!!^1A_sP`Fm{Jf!Nq0+$J3lC5}W zyAWwuiG8}H_GH0yuZLf*fI0_al!sdoG>p-tkW%#94mn+)zfJLKeHzKzycrPB*ma@N zTAFi%cCSrn|JbJA=mK);F(9Jd*~boA&s*=W%ACmml1Bj848w zm(cD%v}5PGdq5D!&U8cKGy(9UEJ>XWv>E8GIa*-1AoR3~rB?Zh@`c|6=|6_EI4C@Bj?3~Y1-z{3iH*R}3B*R_6gnzD7H*ZANa zIYj=f{|4X=>)v$cr^nyA+CckP5{sm#_F*#ilyFHA*W5Y)cT9RQ4mA!3GBeSr7$MWt zpv0R&3wKmT6&E9~1&Xs|c>Mj2O`>pFtf($&5`N^UPB$VsU}n06?L-((Ea*mINg$ZaGM2KgHi#N8xTEmUq=#iMbW5 zil@d6$vmGGjI9?htbOFHRNhN@m>luS=r}1X7lrJpeg`CUj&=%F(`^SWv$Q`io%4t( z{L)j5N%uQ%Is|`&0@;Tbz|X|^H2AZ3zD)d>Tif&Ck0WNGV$4+4&nsqD5`u9 z4#{r>C5SC|TAGtw4D(XQr?(ds9VdP6rJoA?@Vm@Gi59Tq({}8oC;(N@-6=IUstgIb zx)JG0kdCBE@6?dOcFZOMK)a||+aO({#nrG^#JU0QYxkS24kxalxN;n^%M@?FID-wr)pG+#v|JD(1?|AdKY(3&ZrAQF@rdbxYYcTdkNpwxSLZV7Hg| z7vVD|{H$GFRIwv``x&!pJj&>X2}~(-|I3Ea%X{SGltpO{dT-dF*C0F2r_cCmtvdW4 zD=Q=TxotYWDUEF4ks&HNiN>nVs4lZxFWEQnslPF)3|FiERQgu@tVZ6elXaxUH?$87 z49fB5m9jXkld}Q}pHkc>(g{`EeWb+0yZ9{EGEE5k^4G#aqj!0u{>%g6>!YBYWgeZ& z+snKi(xfC@6#vg&Uj^b2JbB*Z6Hd-a1qt@|@gjNGb zk&2_Pm!rG`CUsG$+sx#ll55X0yBFe$ zr#UR`@kF~G{h>`&B~*TV!0!U8IrLY!cJx+zQOfm%E*oMwlq4rT@aH5>Ns!djLlq?O z#i@!IKb?Z#s)o$l34Id`@x>U2`lQ$mKqcIE9T-|-pL011(9r$~0#Y3ShB$D-LVF?f z6xSIYzN)pcsmImEy!$2ewxN$!^E(%d@R)yFPx zcjM)sc?o%P^&{~Q*`gh;<9X|`^;k33t&S@Mod{=aCA5z>@bv1}Z9(U#w7RQwc8yS+?>}T=f`e?+$lO|4N!nKp>v0<>Iq?^sNf*124y4V!)i?N;d!wvaM&NXQqMIx1Z*W2N&iSwFlOhiNd`TnVvayns zx<@s_p#ioBjCKop!KxiX-jK}Hi4d%Hp}~*jxTzMWsewMtUhAmpLcuDsV9;KszWz1OZC_hQxRy-jNem-`P4Bx+rhE>@8X^94WD<3 zhePZTJ?I8dR0ktsYMHI$Dg~0h4N&EB_?y#}KP?E|s1i%RE^pp+`_SpVS);zO;%$Z7 zqP~2)1l%$m=~NFtx(9YIr^t^tCf$rIuGpM$^tktK-|(VD8tZTN-JgpqIkL+Gkhzk6 zFeBO>h+lC01z+azv@s#ogp)PrFt$SiPiDS{2DQ8p+KQ!#C=vDd;K!Y%nU zG*GsyCU+1&>i#@UhoFF_ZA-uNy=ByQp-*d$OGvL#b_x&a582j^;!ScUNSoD6wEJF1 z=NQl5GG+3=`2v-68suP7RPlR_C8e<>M_HN74b0=8lgfb#tOt8Kpq2F2K_raaYcmOP zHp~k*X+^bVd1k{lu2&X~RdzZrSuyB%w?z%#sjx=6LNFKEgwQ=V+nI6P1c^Z4nig`k zp)Cd8v=+MlQ5${DAocuS^ANxWeo39qtvd}vujC^nfL~`>#Qn{5(khf$C)D#zYv9*$ zw~Vo^>GYuhKbG|AacwgRPALUvcR1?itjRM7b)L%kOWVABVQ1+EzBi)@XsZDswwy;@ zS%H;a$&lqCA&hNE0fFU*?s?b(eeAhjAI2;iN(aDr11--t=FCcPF=0dQHu% z3MO}}ywm#ybarQ~quZ~G(gfOZ-WHI`#BUG{NuO8Q65b#?L7;XB;Lop+7dMOQo1SR` zxu>r?NAjmUnzp99zZ<9`HgMQv$4*Pu>d9?__M9;ibI-Cnu5V{8P8WKv=zB=?TvI`moX@b53!aJAaFfN7I+>6^bi1vWx z8jqify#0qabq22lgKxRIO*Y-hzjS(nf2x3O%GzI4EW{vb_*aY+_1S8KM?7^%xi7G zRoA#!RaxQ@B!!ViC4W_>4FBO2Lw!Ged8fL7B1hJz(2=f?^(aWvXY4Z9=8|e1;WX;R z-Tz+eI8>^x`P-!0jjBgK*O#`Jl<)UOWPZ9}Msri!YD1&%0AseQG#~=oS<;^RdH(bH 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 Zru?_1`>$bB{0=I(U-Mc2&wZ3*KLg7?mLvcG literal 0 HcmV?d00001