From 720231d33f387c6d1bf13bdef653314c5c450809 Mon Sep 17 00:00:00 2001 From: 648540858 <18010473990@163.com> Date: Sat, 25 Sep 2021 22:12:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=91=E9=80=81=E5=AA=92?= =?UTF-8?q?=E4=BD=93=E6=B5=81,=20=E6=B7=BB=E5=8A=A0=E5=AA=92=E4=BD=93?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E8=8A=82=E7=82=B9=E7=AE=A1=E7=90=86?= =?UTF-8?q?ui,=E4=BF=AE=E5=A4=8D=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/mysql.sql | 1 + .../iot/vmp/conf/ApiAccessFilter.java | 3 + .../genersoft/iot/vmp/conf/MediaConfig.java | 13 + .../iot/vmp/conf/ProxyServletConfig.java | 7 +- .../vmp/media/zlm/ZLMRTPServerFactory.java | 26 +- .../iot/vmp/media/zlm/ZLMRunner.java | 6 +- .../vmp/media/zlm/dto/MediaServerItem.java | 29 ++ .../iot/vmp/service/IMediaServerService.java | 7 +- .../service/impl/MediaServerServiceImpl.java | 166 ++++++-- .../vmp/storager/dao/MediaServerMapper.java | 3 + .../vmp/vmanager/server/ServerController.java | 60 ++- src/main/resources/all-application.yml | 2 + src/main/resources/application-dev.yml | 2 + src/main/resources/wvp.sqlite | Bin 143360 -> 143360 bytes web_src/build/webpack.base.conf.js | 1 + web_src/src/assets/zlm-log.png | Bin 0 -> 49027 bytes web_src/src/components/CloudRecord.vue | 2 +- web_src/src/components/DeviceList.vue | 2 +- web_src/src/components/MediaServerManger.vue | 159 ++++++++ web_src/src/components/UiHeader.vue | 1 + web_src/src/components/control.vue | 2 +- .../src/components/dialog/MediaServerEdit.vue | 368 ++++++++++++++++++ .../src/components/dialog/StreamProxyEdit.vue | 2 +- .../src/components/dialog/changePassword.vue | 2 +- web_src/src/components/dialog/deviceEdit.vue | 2 +- web_src/src/components/service/MediaServer.js | 55 ++- web_src/src/router/index.js | 6 + web_src/static/css/iconfont.css | 10 +- web_src/static/css/iconfont.woff2 | Bin 46692 -> 46768 bytes web_src/static/images/zlm-logo.png | Bin 0 -> 49027 bytes 30 files changed, 890 insertions(+), 47 deletions(-) create mode 100644 web_src/src/assets/zlm-log.png create mode 100644 web_src/src/components/MediaServerManger.vue create mode 100644 web_src/src/components/dialog/MediaServerEdit.vue create mode 100644 web_src/static/images/zlm-logo.png diff --git a/sql/mysql.sql b/sql/mysql.sql index 90393e67..6f44ce85 100644 --- a/sql/mysql.sql +++ b/sql/mysql.sql @@ -140,6 +140,7 @@ create table media_server streamNoneReaderDelayMS int not null, rtpEnable int not null, rtpPortRange varchar(50) not null, + sendRtpPortRange varchar(50) not null, recordAssistPort int not null, defaultServer int not null, createTime varchar(50) not null, diff --git a/src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java b/src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java index 9831ddb5..08d030a8 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java @@ -18,6 +18,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; +/** + * @author lin + */ @WebFilter(filterName = "ApiAccessFilter", urlPatterns = "/api/*", asyncSupported=true) public class ApiAccessFilter extends OncePerRequestFilter { diff --git a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java index 72cefe1c..e6083614 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java @@ -68,6 +68,10 @@ public class MediaConfig{ @Value("${media.rtp.port-range}") private String rtpPortRange; + + @Value("${media.rtp.send-port-range}") + private String sendRtpPortRange; + @Value("${media.record-assist-port:0}") private Integer recordAssistPort = 0; @@ -165,6 +169,14 @@ public class MediaConfig{ } } + public String getSipDomain() { + return sipDomain; + } + + public String getSendRtpPortRange() { + return sendRtpPortRange; + } + public MediaServerItem getMediaSerItem(){ MediaServerItem mediaServerItem = new MediaServerItem(); mediaServerItem.setId(id); @@ -185,6 +197,7 @@ public class MediaConfig{ mediaServerItem.setStreamNoneReaderDelayMS(streamNoneReaderDelayMS); mediaServerItem.setRtpEnable(rtpEnable); mediaServerItem.setRtpPortRange(rtpPortRange); + mediaServerItem.setSendRtpPortRange(sendRtpPortRange); mediaServerItem.setRecordAssistPort(recordAssistPort); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); diff --git a/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java index 907e30d3..5d8acce9 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java @@ -21,6 +21,9 @@ import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.net.ConnectException; +/** + * @author lin + */ @SuppressWarnings(value = {"rawtypes", "unchecked"}) @Configuration public class ProxyServletConfig { @@ -35,7 +38,7 @@ public class ProxyServletConfig { @Bean public ServletRegistrationBean zlmServletRegistrationBean(){ - ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new ZLMProxySerlet(),"/zlm/*"); + ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new ZlmProxyServlet(),"/zlm/*"); servletRegistrationBean.setName("zlm_Proxy"); servletRegistrationBean.addInitParameter("targetUri", "http://127.0.0.1:6080"); servletRegistrationBean.addUrlMappings(); @@ -45,7 +48,7 @@ public class ProxyServletConfig { return servletRegistrationBean; } - class ZLMProxySerlet extends ProxyServlet{ + class ZlmProxyServlet extends ProxyServlet{ @Override protected String rewriteQueryStringFromRequest(HttpServletRequest servletRequest, String queryString) { String queryStr = super.rewriteQueryStringFromRequest(servletRequest, queryString); diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java index bd564015..b4d10483 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; import java.util.HashMap; import java.util.Map; @@ -44,8 +45,15 @@ public class ZLMRTPServerFactory { Map param = new HashMap<>(); int result = -1; - int newPort = getPortFromportRange(mediaServerItem); - param.put("port", newPort); + /** + * 不设置推流端口端则使用随机端口 + */ + if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){ + param.put("port", 0); + }else { + int newPort = getPortFromportRange(mediaServerItem); + param.put("port", newPort); + } param.put("enable_tcp", 1); param.put("stream_id", streamId); JSONObject openRtpServerResultJson = zlmresTfulUtils.openRtpServer(mediaServerItem, param); @@ -53,24 +61,24 @@ public class ZLMRTPServerFactory { if (openRtpServerResultJson != null) { switch (openRtpServerResultJson.getInteger("code")){ case 0: - result= newPort; + result= openRtpServerResultJson.getInteger("port"); break; case -300: // id已经存在, 可能已经在其他端口推流 Map closeRtpServerParam = new HashMap<>(); closeRtpServerParam.put("stream_id", streamId); zlmresTfulUtils.closeRtpServer(mediaServerItem, closeRtpServerParam); - result = newPort; + result = createRTPServer(mediaServerItem, streamId);; break; case -400: // 端口占用 result= createRTPServer(mediaServerItem, streamId); break; default: - logger.error("创建RTP Server 失败 {}: " + openRtpServerResultJson.getString("msg"), newPort); + logger.error("创建RTP Server 失败 {}: " + openRtpServerResultJson.getString("msg"), param.get("port")); break; } }else { // 检查ZLM状态 - logger.error("创建RTP Server 失败 {}: 请检查ZLM服务", newPort); + logger.error("创建RTP Server 失败 {}: 请检查ZLM服务", param.get("port")); } return result; } @@ -98,7 +106,7 @@ public class ZLMRTPServerFactory { private int getPortFromportRange(MediaServerItem mediaServerItem) { int currentPort = mediaServerItem.getCurrentPort(); if (currentPort == 0) { - String[] portRangeStrArray = mediaServerItem.getRtpPortRange().split(","); + String[] portRangeStrArray = mediaServerItem.getSendRtpPortRange().split(","); portRangeArray[0] = Integer.parseInt(portRangeStrArray[0]); portRangeArray[1] = Integer.parseInt(portRangeStrArray[1]); } @@ -229,7 +237,9 @@ public class ZLMRTPServerFactory { */ public int totalReaderCount(MediaServerItem mediaServerItem, String app, String streamId) { JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtmp", streamId); - if (mediaInfo == null) return 0; + if (mediaInfo == null) { + return 0; + } return mediaInfo.getInteger("totalReaderCount"); } diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java index 187cbc1b..7faebfa8 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java @@ -108,8 +108,10 @@ public class ZLMRunner implements CommandLineRunner { } public ZLMServerConfig getMediaServerConfig(MediaServerItem mediaServerItem) { - if (startGetMedia == null) return null; - if ( startGetMedia.get(mediaServerItem.getId()) == null || !startGetMedia.get(mediaServerItem.getId())) return null; + if (startGetMedia == null) { return null;} + if ( startGetMedia.get(mediaServerItem.getId()) == null || !startGetMedia.get(mediaServerItem.getId())) { + return null; + } JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServerItem); ZLMServerConfig ZLMServerConfig = null; if (responseJSON != null) { diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java index d1578d17..087c10af 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java @@ -41,14 +41,20 @@ public class MediaServerItem{ private boolean rtpEnable; + private boolean status; + private String rtpPortRange; + private String sendRtpPortRange; + private int recordAssistPort; private String createTime; private String updateTime; + private String lastKeepaliveTime; + private boolean defaultServer; private SsrcConfig ssrcConfig; @@ -82,6 +88,7 @@ public class MediaServerItem{ secret = zlmServerConfig.getApiSecret(); streamNoneReaderDelayMS = zlmServerConfig.getGeneralStreamNoneReaderDelayMS(); rtpEnable = false; // 默认使用单端口;直到用户自己设置开启多端口 + rtpPortRange = "30000,30500"; // 默认使用30000,30500作为级联时发送流的端口号 recordAssistPort = 0; // 默认关闭 } @@ -278,5 +285,27 @@ public class MediaServerItem{ this.currentPort = currentPort; } + public boolean isStatus() { + return status; + } + public void setStatus(boolean status) { + this.status = status; + } + + public String getLastKeepaliveTime() { + return lastKeepaliveTime; + } + + public void setLastKeepaliveTime(String lastKeepaliveTime) { + this.lastKeepaliveTime = lastKeepaliveTime; + } + + public String getSendRtpPortRange() { + return sendRtpPortRange; + } + + public void setSendRtpPortRange(String sendRtpPortRange) { + this.sendRtpPortRange = sendRtpPortRange; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java b/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java index f65a1557..81cf8f1a 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.service.bean.SSRCInfo; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import java.util.List; @@ -49,7 +50,11 @@ public interface IMediaServerService { void clearMediaServerForOnline(); - void add(MediaServerItem mediaSerItem); + WVPResult add(MediaServerItem mediaSerItem); void resetOnlineServerItem(MediaServerItem serverItem); + + WVPResult checkMediaServer(String ip, int port, String secret); + + boolean checkMediaRecordServer(String ip, int port); } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java index 33c00515..18c1b934 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.common.VideoManagerConstants; @@ -14,10 +15,11 @@ import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.service.IMediaServerService; import com.genersoft.iot.vmp.service.bean.SSRCInfo; -import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.dao.MediaServerMapper; import com.genersoft.iot.vmp.utils.redis.JedisUtil; import com.genersoft.iot.vmp.utils.redis.RedisUtil; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; +import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -56,9 +58,6 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR @Autowired private MediaServerMapper mediaServerMapper; - @Autowired - private IRedisCatchStorage redisCatchStorage; - @Autowired private VideoStreamSessionManager streamSession; @@ -97,7 +96,9 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR @Override public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId) { - if (mediaServerItem == null || mediaServerItem.getId() == null) return null; + if (mediaServerItem == null || mediaServerItem.getId() == null) { + return null; + } // 获取mediaServer可用的ssrc String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + mediaServerItem.getId(); @@ -107,7 +108,9 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR return null; }else { String ssrc = ssrcConfig.getPlaySsrc(); - if (streamId == null) streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase(); + if (streamId == null) { + streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase(); + } int rtpServerPort = mediaServerItem.getRtpProxyPort(); if (mediaServerItem.isRtpEnable()) { rtpServerPort = zlmrtpServerFactory.createRTPServer(mediaServerItem, streamId); @@ -131,7 +134,9 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR @Override public void releaseSsrc(MediaServerItem mediaServerItem, String ssrc) { - if (mediaServerItem == null || ssrc == null) return; + if (mediaServerItem == null || ssrc == null) { + return; + } SsrcConfig ssrcConfig = mediaServerItem.getSsrcConfig(); ssrcConfig.releaseSsrc(ssrc); mediaServerItem.setSsrcConfig(ssrcConfig); @@ -141,7 +146,6 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR /** * zlm 重启后重置他的推流信息, TODO 给正在使用的设备发送停止命令 - * @param mediaServerItem */ @Override public void clearRTPServer(MediaServerItem mediaServerItem) { @@ -174,9 +178,15 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR public List getAll() { List result = new ArrayList<>(); List mediaServerKeys = redisUtil.scan(String.format("%S*", VideoManagerConstants.MEDIA_SERVER_PREFIX)); - for (int i = 0; i < mediaServerKeys.size(); i++) { - String key = (String) mediaServerKeys.get(i); - result.add((MediaServerItem)redisUtil.get(key)); + String onlineKey = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX; + for (Object mediaServerKey : mediaServerKeys) { + String key = (String) mediaServerKey; + MediaServerItem mediaServerItem = (MediaServerItem) redisUtil.get(key); + // 检查状态 + if (redisUtil.zScore(onlineKey, mediaServerItem.getId()) != null) { + mediaServerItem.setStatus(true); + } + result.add(mediaServerItem); } return result; } @@ -208,7 +218,9 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR */ @Override public MediaServerItem getOne(String mediaServerId) { - if (mediaServerId == null) return null; + if (mediaServerId == null) { + return null; + } String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + mediaServerId; return (MediaServerItem)redisUtil.get(key); } @@ -225,8 +237,34 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR } @Override - public void add(MediaServerItem mediaSerItem) { - mediaServerMapper.add(mediaSerItem); + public WVPResult add(MediaServerItem mediaServerItem) { + WVPResult result = new WVPResult<>(); + mediaServerItem.setCreateTime(this.format.format(System.currentTimeMillis())); + mediaServerItem.setUpdateTime(this.format.format(System.currentTimeMillis())); + JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServerItem); + if (responseJSON != null) { + JSONArray data = responseJSON.getJSONArray("data"); + if (data != null && data.size() > 0) { + ZLMServerConfig zlmServerConfig= JSON.parseObject(JSON.toJSONString(data.get(0)), ZLMServerConfig.class); + if (mediaServerMapper.queryOne(zlmServerConfig.getGeneralMediaServerId()) != null) { + result.setCode(-1); + result.setMsg("保存失败,媒体服务ID [ " + zlmServerConfig.getGeneralMediaServerId() + " ] 已存在,请修改媒体服务器配置"); + return result; + } + zlmServerConfig.setIp(mediaServerItem.getIp()); + handLeZLMServerConfig(zlmServerConfig); + result.setCode(0); + result.setMsg("success"); + }else { + result.setCode(-1); + result.setMsg("连接失败"); + } + + }else { + result.setCode(-1); + result.setMsg("连接失败"); + } + return result; } /** @@ -249,13 +287,27 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR // docker部署不会使用zlm配置的端口号不是默认的则不做更新, 配置修改需要自行修改server配置; MediaServerItem serverItemFromConfig = mediaConfig.getMediaSerItem(); serverItemFromConfig.setId(zlmServerConfig.getGeneralMediaServerId()); - if (mediaConfig.getHttpPort() == 0) serverItemFromConfig.setHttpPort(zlmServerConfig.getHttpPort()); - if (mediaConfig.getHttpSSlPort() == 0) serverItemFromConfig.setHttpSSlPort(zlmServerConfig.getHttpSSLport()); - if (mediaConfig.getRtmpPort() == 0) serverItemFromConfig.setRtmpPort(zlmServerConfig.getRtmpPort()); - if (mediaConfig.getRtmpSSlPort() == 0) serverItemFromConfig.setRtmpSSlPort(zlmServerConfig.getRtmpSslPort()); - if (mediaConfig.getRtspPort() == 0) serverItemFromConfig.setRtspPort(zlmServerConfig.getRtspPort()); - if (mediaConfig.getRtspSSLPort() == 0) serverItemFromConfig.setRtspSSLPort(zlmServerConfig.getRtspSSlport()); - if (mediaConfig.getRtpProxyPort() == 0) serverItemFromConfig.setRtpProxyPort(zlmServerConfig.getRtpProxyPort()); + if (mediaConfig.getHttpPort() == 0) { + serverItemFromConfig.setHttpPort(zlmServerConfig.getHttpPort()); + } + if (mediaConfig.getHttpSSlPort() == 0) { + serverItemFromConfig.setHttpSSlPort(zlmServerConfig.getHttpSSLport()); + } + if (mediaConfig.getRtmpPort() == 0) { + serverItemFromConfig.setRtmpPort(zlmServerConfig.getRtmpPort()); + } + if (mediaConfig.getRtmpSSlPort() == 0) { + serverItemFromConfig.setRtmpSSlPort(zlmServerConfig.getRtmpSslPort()); + } + if (mediaConfig.getRtspPort() == 0) { + serverItemFromConfig.setRtspPort(zlmServerConfig.getRtspPort()); + } + if (mediaConfig.getRtspSSLPort() == 0) { + serverItemFromConfig.setRtspSSLPort(zlmServerConfig.getRtspSSlport()); + } + if (mediaConfig.getRtpProxyPort() == 0) { + serverItemFromConfig.setRtpProxyPort(zlmServerConfig.getRtpProxyPort()); + } if (serverItem != null){ mediaServerMapper.delDefault(); mediaServerMapper.add(serverItemFromConfig); @@ -319,9 +371,10 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR @Override public void addCount(String mediaServerId) { - if (mediaServerId == null) return; + if (mediaServerId == null) { + return; + } String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX; - Double aDouble = redisUtil.zScore(key, mediaServerId); redisUtil.zIncrScore(key, mediaServerId, 1); } @@ -399,4 +452,71 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR } + @Override + public WVPResult checkMediaServer(String ip, int port, String secret) { + WVPResult result = new WVPResult<>(); + if (mediaServerMapper.queryOneByHostAndPort(ip, port) != null) { + result.setCode(-1); + result.setMsg("此连接已存在"); + return result; + } + MediaServerItem mediaServerItem = new MediaServerItem(); + mediaServerItem.setIp(ip); + mediaServerItem.setHttpPort(port); + mediaServerItem.setSecret(secret); + JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServerItem); + if (responseJSON == null) { + result.setCode(-1); + result.setMsg("连接失败"); + return result; + } + JSONArray data = responseJSON.getJSONArray("data"); + ZLMServerConfig zlmServerConfig = JSON.parseObject(JSON.toJSONString(data.get(0)), ZLMServerConfig.class); + if (zlmServerConfig == null) { + result.setCode(-1); + result.setMsg("读取配置失败"); + return result; + } + if (mediaServerMapper.queryOne(zlmServerConfig.getGeneralMediaServerId()) != null) { + result.setCode(-1); + result.setMsg("媒体服务ID [" + zlmServerConfig.getGeneralMediaServerId() + " ] 已存在,请修改媒体服务器配置"); + return result; + } + mediaServerItem.setHttpSSlPort(zlmServerConfig.getHttpPort()); + mediaServerItem.setRtmpPort(zlmServerConfig.getRtmpPort()); + mediaServerItem.setRtmpSSlPort(zlmServerConfig.getRtmpSslPort()); + mediaServerItem.setRtspPort(zlmServerConfig.getRtspPort()); + mediaServerItem.setRtspSSLPort(zlmServerConfig.getRtspSSlport()); + mediaServerItem.setRtpProxyPort(zlmServerConfig.getRtpProxyPort()); + mediaServerItem.setStreamIp(ip); + mediaServerItem.setHookIp(sipConfig.getIp()); + mediaServerItem.setSdpIp(ip); + mediaServerItem.setStreamNoneReaderDelayMS(zlmServerConfig.getGeneralStreamNoneReaderDelayMS()); + result.setCode(0); + result.setMsg("成功"); + result.setData(mediaServerItem); + return result; + } + + @Override + public boolean checkMediaRecordServer(String ip, int port) { + boolean result = false; + OkHttpClient client = new OkHttpClient(); + String url = String.format("http://%s:%s/index/api/record", ip, port); + + FormBody.Builder builder = new FormBody.Builder(); + + Request request = new Request.Builder() + .get() + .url(url) + .build(); + try { + Response response = client.newCall(request).execute(); + if (response != null) { + result = true; + } + } catch (Exception e) {} + + return result; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java index 2167c553..8d45b054 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java @@ -32,6 +32,7 @@ public interface MediaServerMapper { "streamNoneReaderDelayMS, " + "rtpEnable, " + "rtpPortRange, " + + "sendRtpPortRange, " + "recordAssistPort, " + "defaultServer, " + "createTime, " + @@ -55,6 +56,7 @@ public interface MediaServerMapper { "${streamNoneReaderDelayMS}, " + "${rtpEnable}, " + "'${rtpPortRange}', " + + "'${sendRtpPortRange}', " + "${recordAssistPort}, " + "${defaultServer}, " + "'${createTime}', " + @@ -79,6 +81,7 @@ public interface MediaServerMapper { ", streamNoneReaderDelayMS=${streamNoneReaderDelayMS}" + ", rtpEnable=${rtpEnable}" + ", rtpPortRange='${rtpPortRange}'" + + ", sendRtpPortRange='${sendRtpPortRange}'" + ", secret='${secret}'" + ", recordAssistPort=${recordAssistPort}" + "WHERE id='${id}'"+ diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java index 3bfa5957..881a20a6 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java @@ -57,7 +57,9 @@ public class ServerController { @ApiOperation("流媒体服务列表") @GetMapping(value = "/media_server/list") @ResponseBody - public WVPResult> getMediaServerList(){ + public WVPResult> getMediaServerList(boolean detail){ + List all = mediaServerService.getAll(); + WVPResult> result = new WVPResult<>(); result.setCode(0); result.setMsg("success"); @@ -87,6 +89,60 @@ public class ServerController { return result; } + @ApiOperation("测试流媒体服务") + @ApiImplicitParams({ + @ApiImplicitParam(name="ip", value = "流媒体服务IP", dataTypeClass = String.class), + @ApiImplicitParam(name="port", value = "流媒体服务HTT端口", dataTypeClass = Integer.class), + @ApiImplicitParam(name="secret", value = "流媒体服务secret", dataTypeClass = String.class), + }) + @GetMapping(value = "/media_server/check") + @ResponseBody + public WVPResult checkMediaServer(@RequestParam String ip, @RequestParam int port, @RequestParam String secret){ + return mediaServerService.checkMediaServer(ip, port, secret); + } + + @ApiOperation("测试流媒体录像管理服务") + @ApiImplicitParams({ + @ApiImplicitParam(name="ip", value = "流媒体服务IP", dataTypeClass = String.class), + @ApiImplicitParam(name="port", value = "流媒体服务HTT端口", dataTypeClass = Integer.class), + @ApiImplicitParam(name="secret", value = "流媒体服务secret", dataTypeClass = String.class), + }) + @GetMapping(value = "/media_server/record/check") + @ResponseBody + public WVPResult checkMediaRecordServer(@RequestParam String ip, @RequestParam int port){ + boolean checkResult = mediaServerService.checkMediaRecordServer(ip, port); + WVPResult result = new WVPResult<>(); + if (checkResult) { + result.setCode(0); + result.setMsg("success"); + + }else { + result.setCode(-1); + result.setMsg("连接失败"); + } + return result; + } + + @ApiOperation("保存流媒体服务") + @ApiImplicitParams({ + @ApiImplicitParam(name="mediaServerItem", value = "流媒体信息", dataTypeClass = MediaServerItem.class) + }) + @PostMapping(value = "/media_server/save") + @ResponseBody + public WVPResult checkMediaServer(@RequestBody MediaServerItem mediaServerItem){ + if (mediaServerService.getOne(mediaServerItem.getId()) != null) { + mediaServerService.update(mediaServerItem); + }else { + return mediaServerService.add(mediaServerItem); + } + WVPResult result = new WVPResult<>(); + result.setCode(0); + result.setMsg("success"); + return result; + } + + + @ApiOperation("重启服务") @GetMapping(value = "/restart") @ResponseBody @@ -155,6 +211,8 @@ public class ServerController { case "base": jsonObject.put("base", userSetup); break; + default: + break; } } result.setData(jsonObject); diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml index 856d6c5f..f2d85ec0 100644 --- a/src/main/resources/all-application.yml +++ b/src/main/resources/all-application.yml @@ -119,6 +119,8 @@ media: enable: true # [可选] 在此范围内选择端口用于媒体流传输, port-range: 30000,30500 # 端口范围 + # [可选] 国标级联在此范围内选择端口发送媒体流, + send-port-range: 30000,30500 # 端口范围 # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用 record-assist-port: 0 diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 062f70e6..44f70e6e 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -63,6 +63,8 @@ media: enable: true # [可选] 在此范围内选择端口用于媒体流传输, port-range: 30000,30500 # 端口范围 + # [可选] 国标级联在此范围内选择端口发送媒体流, + send-port-range: 30000,30500 # 端口范围 # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用 record-assist-port: 0 diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite index b95368d32e58ae619e83b496910c6c99e17bf7e5..40bdad873d8bc0f880674d8fcc684d66735d4534 100644 GIT binary patch delta 171 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 Z9(BoFEurojIv{`_841OA#bQQ5{|7}yrxpMJ literal 0 HcmV?d00001 diff --git a/web_src/src/components/CloudRecord.vue b/web_src/src/components/CloudRecord.vue index e39cd5b6..f5d052a3 100644 --- a/web_src/src/components/CloudRecord.vue +++ b/web_src/src/components/CloudRecord.vue @@ -111,7 +111,7 @@ }, getMediaServerList: function (){ let that = this; - that.mediaServerObj.getMediaServerList((data)=>{ + that.mediaServerObj.getOnlineMediaServerList((data)=>{ that.mediaServerList = data.data; if (that.mediaServerList.length > 0) { that.mediaServerId = that.mediaServerList[0].id diff --git a/web_src/src/components/DeviceList.vue b/web_src/src/components/DeviceList.vue index 7644a963..8d978339 100644 --- a/web_src/src/components/DeviceList.vue +++ b/web_src/src/components/DeviceList.vue @@ -60,7 +60,7 @@ 通道 定位 - 编辑 + 编辑 删除 diff --git a/web_src/src/components/MediaServerManger.vue b/web_src/src/components/MediaServerManger.vue new file mode 100644 index 00000000..19674d13 --- /dev/null +++ b/web_src/src/components/MediaServerManger.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue index 4ab46422..b2e9bbbd 100644 --- a/web_src/src/components/UiHeader.vue +++ b/web_src/src/components/UiHeader.vue @@ -6,6 +6,7 @@ 推流列表 拉流代理 云端录像 + 节点管理 国标级联 在线文档 diff --git a/web_src/src/components/control.vue b/web_src/src/components/control.vue index 63267128..a8ee8d41 100644 --- a/web_src/src/components/control.vue +++ b/web_src/src/components/control.vue @@ -139,7 +139,7 @@ export default { this.initTable(); this.updateData(); this.chartInterval = setInterval(this.updateData, 3000); - this.mediaServer.getMediaServerList((data)=>{ + this.mediaServer.getOnlineMediaServerList((data)=>{ this.mediaServerList = data.data; if (this.mediaServerList && this.mediaServerList.length > 0) { this.mediaServerChoose = this.mediaServerList[0].id diff --git a/web_src/src/components/dialog/MediaServerEdit.vue b/web_src/src/components/dialog/MediaServerEdit.vue new file mode 100644 index 00000000..b67daf84 --- /dev/null +++ b/web_src/src/components/dialog/MediaServerEdit.vue @@ -0,0 +1,368 @@ + + + diff --git a/web_src/src/components/dialog/StreamProxyEdit.vue b/web_src/src/components/dialog/StreamProxyEdit.vue index 3310d9ce..ea3a64f9 100644 --- a/web_src/src/components/dialog/StreamProxyEdit.vue +++ b/web_src/src/components/dialog/StreamProxyEdit.vue @@ -203,7 +203,7 @@ export default { }).catch(function (error) { console.log(error); }); - this.mediaServer.getMediaServerList((data)=>{ + this.mediaServer.getOnlineMediaServerList((data)=>{ this.mediaServerList = data; }) }, diff --git a/web_src/src/components/dialog/changePassword.vue b/web_src/src/components/dialog/changePassword.vue index 39aba8d3..eade6a8b 100644 --- a/web_src/src/components/dialog/changePassword.vue +++ b/web_src/src/components/dialog/changePassword.vue @@ -89,7 +89,7 @@ export default { method: 'post', url:"/api/user/changePassword", params: { - oldpassword: crypto.createHash('md5').update(this.oldPassword, "utf8").digest('hex'), + oldPassword: crypto.createHash('md5').update(this.oldPassword, "utf8").digest('hex'), password: this.newPassword } }).then((res)=> { diff --git a/web_src/src/components/dialog/deviceEdit.vue b/web_src/src/components/dialog/deviceEdit.vue index 464de027..5d2ffa56 100644 --- a/web_src/src/components/dialog/deviceEdit.vue +++ b/web_src/src/components/dialog/deviceEdit.vue @@ -82,7 +82,7 @@ export default { }, getMediaServerList: function (){ let that = this; - that.mediaServerObj.getMediaServerList((data)=>{ + that.mediaServerObj.getOnlineMediaServerList((data)=>{ that.mediaServerList = data.data; }) }, diff --git a/web_src/src/components/service/MediaServer.js b/web_src/src/components/service/MediaServer.js index b9053528..e9de6039 100644 --- a/web_src/src/components/service/MediaServer.js +++ b/web_src/src/components/service/MediaServer.js @@ -6,7 +6,7 @@ class MediaServer{ this.$axios = axios; } - getMediaServerList(callback){ + getOnlineMediaServerList(callback){ this.$axios({ method: 'get', url:`/api/server/media_server/online/list`, @@ -16,6 +16,16 @@ class MediaServer{ console.log(error); }); } + getMediaServerList(callback){ + this.$axios({ + method: 'get', + url:`/api/server/media_server/list`, + }).then(function (res) { + if (typeof (callback) == "function") callback(res.data) + }).catch(function (error) { + console.log(error); + }); + } getMediaServer(id, callback){ this.$axios({ @@ -27,6 +37,49 @@ class MediaServer{ console.log(error); }); } + + checkServer(param, callback){ + this.$axios({ + method: 'get', + url:`/api/server/media_server/check`, + params: { + ip: param.ip, + port: param.httpPort, + secret: param.secret + } + }).then(function (res) { + if (typeof (callback) == "function") callback(res.data) + }).catch(function (error) { + console.log(error); + }); + } + + checkRecordServer(param, callback){ + this.$axios({ + method: 'get', + url:`/api/server/media_server/record/check`, + params: { + ip: param.ip, + port: param.recordAssistPort + } + }).then(function (res) { + if (typeof (callback) == "function") callback(res.data) + }).catch(function (error) { + console.log(error); + }); + } + + addServer(param, callback){ + this.$axios({ + method: 'post', + url:`/api/server/media_server/save`, + data: param + }).then(function (res) { + if (typeof (callback) == "function") callback(res.data) + }).catch(function (error) { + console.log(error); + }); + } } export default MediaServer; diff --git a/web_src/src/router/index.js b/web_src/src/router/index.js index 4b0810d3..59bbb236 100644 --- a/web_src/src/router/index.js +++ b/web_src/src/router/index.js @@ -10,6 +10,7 @@ import devicePosition from '../components/devicePosition.vue' import login from '../components/Login.vue' import parentPlatformList from '../components/ParentPlatformList.vue' import cloudRecord from '../components/CloudRecord.vue' +import mediaServerManger from '../components/MediaServerManger.vue' import test from '../components/test.vue' import web from '../components/setting/Web.vue' import sip from '../components/setting/Sip.vue' @@ -70,6 +71,11 @@ export default new VueRouter({ name: 'cloudRecord', component: cloudRecord, }, + { + path: '/mediaServerManger', + name: 'mediaServerManger', + component: mediaServerManger, + }, { path: '/setting/web', name: 'web', diff --git a/web_src/static/css/iconfont.css b/web_src/static/css/iconfont.css index 972cf6bc..0f9b6085 100644 --- a/web_src/static/css/iconfont.css +++ b/web_src/static/css/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 1291092 */ - src: url('iconfont.woff2?t=1626163621710') format('woff2'), - url('iconfont.woff?t=1626163621710') format('woff'), - url('iconfont.ttf?t=1626163621710') format('truetype'); + src: url('iconfont.woff2?t=1631767887536') format('woff2'), + url('iconfont.woff?t=1631767887536') format('woff'), + url('iconfont.ttf?t=1631767887536') format('truetype'); } .iconfont { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.icon-online:before { + content: "\e600"; +} + .icon-xiangqing2:before { content: "\e798"; } diff --git a/web_src/static/css/iconfont.woff2 b/web_src/static/css/iconfont.woff2 index c8d7e3dd2ce5e346efd6a0c171d77e43904134db..42e2ecae8dbbf334e4e27723afedf5f13ec97364 100644 GIT binary patch literal 46768 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�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 literal 46692 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
    }=nk*}1|FfGSF&Se8n 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 Qwnd})in}?{UjP6A09&5oKmY&$ diff --git a/web_src/static/images/zlm-logo.png b/web_src/static/images/zlm-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5f492dcdf63a8cb2bfdf218a4fbbcd336b84a572 GIT binary patch literal 49027 zcmbrlg{BHazrGQdznBS?2hcS#A-jkL6McS%c$bazTfy*ECe@9!UY zN94K~m~+m(_da{Cv-UcX>Z0D!3-iH0PpBc!ma^7gnp2g zR(~rkP37q9@cx6X1qj5H;F}<<(5sFY_S~ST#e(9F%qGqJ00?^y z`$2(R>*NH*zEEX%Eu@Zo(#JFEFy_d#znM%7>$*laKi|3$ZtJf2`fFExenY&58)2Dd zuhU1`H=B4)3qpqs2yCYO#LRTF@AAvI79zS(3qoVzW6}36}oxUsJ z3!3IB-$HkEMEXR)m)l;P2)u*r zsG#ct0-@r*{D%RhXA%K#BD%g+kwx4_#)1*V>Mz_#27#zRZ)GGkJ%1f7d!^FpLizum zM$*&LG>&|0FT3$=u{7f&uz0uCQ=Y%U>WNQ?_s;MOYt;liKHd~WmxCsvgbL%H3yq75 zwiooO&h3r2+Qe0dmdCM;_I8IHhtmnAE);laLB9|$LPu{dMc#mw$8Df^~Q}@{`YCqnZ?USNHnYHZ!wC<8mx)Z0sq; zuhqy_^ml{u-s=jHpJ~r`SA~NI#|IarWo3XD8dxU!?#CPHTK?pmyAI6+&u3}T+Y!_P zbY#uAKmA*lm>6%q0i$5QQxOP>(hfoGy(iNh<4d6UlMOWB2e`P^&ese{Y8D$4e+5NrEX*nsy+gZKXLSq zq!KzfMfAFMFoHh3bWDYzL(s1Bl-8fPxGO`7ugTp7%<6FJ z?j-!8!;^Sc)^^1Mfq`%cpW(-|{xdp_^Tcj8d53GZCi<^Op^aweO;sdnth18pQB{>C zC6JN0ST|%k*HS`8-NI2)Q~o^w3Lu%GcwZg&Sf0I%>2KP%0aJ*yjsI9nK8?Z~U#BPABE;*sYzAPle&kIr6d|iGkUr4?#;m zNsF%QyGI*Lq9w_w0FEZ^;(q6E`M<) zE84E|yI!C3wQ3Ra;khqY9t|I-NXPh(cuM_D5IiGIY^$g-OTMxU~EE ztoNO}TXdK#FQF91tao@K#KWSdY;G;i1Yh0Q8~(-(4ZH0#sjx4R;=&Mr$`uR9k6ex9<~?6H8k3YU(+7U@ z=PW-=5Y;=T)|S=hlgJHPHO#r6OyWl|!#5&xjQ%^>W@zRw>*g>C<#L{-^t)^l@zbr+ z{KKWM$lF;B>5bLq%%)TxD|2KdSbi@!`v6-Mrr-ML`JO9Os=v8Mx8}jx&qS$rCq9sN zQ+KEt)6jgW|Av#}ZeoRi^XX!n)Ct_`KLv4lUSz)8GscYu>~s&1E!u3AaAQAxO-O@6CknX=nPE9sN&4a#o&E9HI5-Ct1<8`(NV}@+;Nt-EWB7s;Mo_qnJo*XIAge z3p&HN3d>= z8p5aa``SqI)%xeg4EFWGp3P*sMurqZk0ClEqw`6QjMQ2(hq#;u-)D}A#FlSaZ0KcJ zLn()>nNAZQDxv>#?fmb?*iWOh1^elZ^LT-W!jA%i*@3naULm=qCTbakjEuER+P|w- z8XL!?788gR7SQc>36z2%U~CuaYWidD4p*O`ey0DTc~6h{Ey0#$Hpw>|%6Ye2t~6$v z1eZ>TJP?@&7bYT58M@7c+O8>tyfkGm>1^vdlwZdsZGqm zLlW{`!MM05;aLHB8w0AGt`}%A3Lrwi_aQPbH31i@P6Cs|DKI~ z_0g*8q5ocOeUy>b(~2r^MJ7A&rI^goYhUK4x1ZD@TDZF-U&6PW^A!=NEdOdZ>*u-s38@<#j&Db-b}MHY&!PxMECT)iyu}r_-EGk4YlI zh`dRav(T>6Y&TJS7a+_BxBd=3n?iAHX>(gH6@`f9Wba~gNCsod$7|(y84V0Fwnjm* zK!lO*FA9K(W5F6rd7as?{=*m6Y2SU~X-B0k830*RExjgw-)%9ovOlX`GXi#>#5>wQ z%jZw8LSRlgK0fRIsg+4KVTkkf_w8seI=L7e8ooRO3BTIN?z{784)Kqs@G_T$EYA;D5`QU0%XIcOm;?2o+f!mYk>X94&(s`19%N`!HM|y5QT2u?XO7+J%Z^; z6?1*wu!MJ4aGod3d0VSXn)`R1y)$pe_blO>!8>og+~7T2?_Q@fn=)A#eVK3xUVWv4 zM0flv_*m4k$sYe7NW*472o~Q<7#5OJ^ca#THyYeWzL`(DAZ2l{zl*PD6`*u${Ags^ z6`t8^NmHgfOhuT{;-MGpRcaFi^CmlSy&xx z|FC;K{oL14^{WyOJiTE&>!dh*1$waJ3UrBV`%PRcfEf)0E>MW8JX!viy8}hCJbqK@45BP(aDWut1BJlZA6`p>;j+n9_+7_Xa`h%Q zclbC*FdX?#3^8>YG`pAlT``P=uoF5xeD8xKtwi*bFs}#C+gAkq9uY-T9#<+A9{Ll5 zMb?4It@<~O{64%DyEyZ@>xx9$(RR_d=Ix9z!EF`t5#Y`4UhwJNIw;whr#J%wmoiNX zK0FNU_}=62$D%t>D)92wlI_LQ+0ZQ+U1ryPl?2R^!DDLpu#N8b*gTpd;^~q-9Gnk9 z1|>U)@J;p0h#*huS_#Yrk^6XvC%a218oKx_d6(N5K{^_K^XK3MW$f_cS^=>y8Cva* z>*SBCt$JtkoXbNtc>e?KZdOdp&pD@=nK$o0GV@;<#)U04@=f#wh_^w3-0(%T&+s!kLT3pT5~Qv1xf=tH7fpKcbdX@ z{eeevIdxy@DBCqc5@`!(_xIKt=nv3N`0-zS!l@1M`#ZTj9OT=J$6RbiZ7N@K%X zGS*fmv)q)RxO-?uGXa%6!R3Qz4j zF(g29hf`~Tcq%kGvBLacZ5(L6+^1fI$U96AREOpkn$TF#8tw*Fr-buRx@t+XLHbIR z0_Bm6)mkwP4_OC9&?j3uXt77MgzNwBb{S4XW+(FCM|QaA03D0 zn1f4QDEkkmpooqgbF zd*4~vQ_dW*rKAq$=-of{W6B>Q$5jc;>$MdiSxjFy) zQcv90^V?n1{2!*gG|6gC zhMi-670ALU-UyLOlSf@eDXh0pS)e&Lw9kAXD}L>=WMOfqV#Rn@kw~$L6iZp9`w#hS zeb&GX9|9>Crj2`ii-nK^da>TZFR|y_R?NrYa@?ox!ZCH06f$q@}h_xIybemrYRH zBVor4L#gWN*SeMT*fW8|VkIHlkNPxmNh@;xU-mh;nF{x|p%7vWDZx0!h23N(Ep79L z#}o=eNPiRp}6R+4z736!|9MTlwKzX4r+LlhDHQAwpJxednf3(qHxm zXWixH3V0&|V*4vD$RPd(uNpzCT>iyds_l1h_6|4svp>&{WC%hP&4gnIoauem7OAgQ z|7V4hj)KjLGleq10lXP!86=AMh`xz}^M)zg?`rDnh0q*C_6;q%R7_B*9e8um8Br9P zh@OBYHU7oo;z?q~0CGJOe+fcM5z_D9>%pr9H2P(0I(_ZVhhQ9g6wc1T_G!Mqw8NRKDR4=0R?23Bb2nJ`mt#6xyX1QYSXXbodV9-jYRo@1HWIv z37qg49N1YWU)DRTTg@cfP5>o+At3cmz$m<%*X ze1{>i^gdz$1_RKDPkIm`jUe5wuFh>#l~)2^;%M8(u`Ty`Y`dN3=G<9Z9N8$rwsBEJ zw=(wQ2U6+9gZbbznj^(O0@l2|N6*{sZ4E#H0*E@j8yz*xr?Fs5n~s{*pQa`*(S%rC zQ{Conl}V^3EL$@*#cx2=0qdR=(wBcI*xx9ZMs;b!N}QEUghQ4`3H;6L(I$)#Gq=Dp>GPmm(Mi+Uxk%aj`YSq#4LP#knkJXnG^i1Nv%M;neCA`q1<6m zlCZ{#dOa*y&_H77U9e_MTT2vq#q9KPjRA6S9YL(yQtW%wF>SYw`Lxo9ekv_SFxb&0 z9J5FpUBl8Wrc{gxWQ#$vfY1H<3+JZJ)xlU?`n}LEcJyUKOgR@>G=n`^ya1?^BiCp6 zc&Hvp#^z;lv8NMoK+!`Ku(T$>-;0|V)rkp|!iH@Xdc>0IN|>I_$6Z=_oYaEHXP$bK z;AHWnEI%o+070i(G=+b~F`hWB1>gFsT^&F08+4$#)S#E;#ttLR>e3qo@;!%TfU*oZ zQ7aIa1x+dQD)4Tw1F#Cc!te+qgGgaffZNS3NV5?#$SUlMM9dP~=bY+T140IwE8;(l zPC5M}-t;yX-qfqM3nV3-w%nMHEjifot@D<(i??a zP;{1>m^J+h)^;khF&5NlnRfb$WNev1NTDKIy0LZy>|zA1lfx_TNpc<#sNe%BEwcv! zsKFJU|2q^(gKwO-1Qb%LIuSRGpP4#h!lPeyUkAm2$(<=TQAzxQ?D@WS&03DgQ@fSd25X$-Ok zwRHb+)+}`hr%dfEl^cG&E{Wmd_TZl}f{z+}0F6dM@)bm7BAG8P)@YfF-6*I)i5LhEbY6TQ|hXai#<2% zs^1NOBv-j?JdK2m20W*;^4^nXudIP?c zvG-vAy06(eY%K@c{Iq5u`;5ip@n_-7Dp#%UBJI;3H@)W~&axh1$v_eW@^~4II-Brb z#)uT(nkp0IE%pulTO=}#x37SfUZdCyP$z6*=Ym=>dY;M8`n$Ig>R@(~vv z%_0h2yrI0G-W4cDTw3sncigJ)gCX53ve*0IM=V1RwY93F4c}hI3!u#n9)~sU@^Q@P~xh;0$2M_z5P!J!#K9_5~ z9)=%FxJK~7M+cO&Gd0X&vbO~BsUEMlwh?%YA<^(vl{C6co3=c=ALB1dP_FCss(Ijx z3j~#$4V-<%#8kT7OmI!W(lsj~Ht;iLE;o?D$ZhOvPdVQ8K)2PVhbYV+`RFt1?h^c+p; z-bpkpq)MRx1bxp;D7$Gh%>WcBSPG=yOYjgDW?MQPPi0Yta^3JTkGbo7m~6UmfFNBR zzM9?27~B;=6R@s~z5Dt4N`2_d7hSr5iA>W|;NUo=*K6%}*kxu}yfx!{{>#1x#@6OW zQh7B~?lV9XvfGU*L@3Xg9G1s zgx%O#SBwiglSKv&8!W@ax~g=C>9$+a0>S3q|3%hBG@ZNdNh?pY+p+C6eV=GqkP0=f z6lgn2#^Fk8>eJs9>G0KHf~wdkS|^TVm-hT@BS=kge-PB&Q7GBLDt8Jm@K^<*rHulF z^T7LRA;AbO}EvVZq9U@p_o=~QA#B(JO$*dK_I_yQL>uv@1do~ zgZ`SrZ$S-9=8DS~W=*M~-_{I7;^f@XLebG%dl}HQB+GOL(mY|BYwM=vuGkN}gWnn^ z0RcaUg>k9h8yoX=%YUBeYY3>p?UpL(Aj?|BjP|5wl5eyipH`EcBZVW0E3K^ao2N}z zDzat2Gkh;cW!ldv^YL%~ykwkR_Udj;C-Ly$DzOQx+O-kbuH;JN&8x}2sic^sWBYdq zIhCf6x={1HPuU0v%(9yE1E6v6Q87FXTu&fLH3YGJ( zove1t1kNj2V+1}eK{7R;T#!jawTSZH-@C_L5(0R~YTIPuC&`~Lmf;o-G25dmaZ#1Y z(Y^O!1}rcu*nE~BjpT})nY0dCnYHl)E8pA9{esL$BS3S@QG}!jQOq^D5^R6;w1pMr zis~GTj-;>dck4;x&WdYm)99fzUoEcH-*mh$}L!Q56NN4`;+lQ zN%2E-M%dM~wo>y+Y4gM`H8+KCY$e~pjl>2g=yaH%Ub=^~BT=h6k)iefCT5u@KI@v+ zN+OR8^jw*(E+|KF=gD9atOe*C$A>a0W1GZ40wwtdoq^`0b_S`Rwm0biFI|51|JX#> zPvRi9B#i(&1N5!s^H)RjJfmnPXE)$Mc&r$uM4ER0rv;ER&^hDZo54QQ4qyACh#?2f zWSqs}GXAKk!2FtEbbdLw!B`&=-IE6%r%RzNz_jqm6h#s&KXe!f$Avf1+EP+ogk)>O z2ZMCge_6sqWt^TKL{5#HTx3jV29%+YI)sU-Qw%!KJfP6%y%PB05OcR486l!+*3Tsk znVR*fX}dks#ArZ8t#aovI+7$wEAv-PEMl?Bpa^0t>~s9t?xm3|FS}rb{sGKPs@wYd zkRD!{JaFGj1N?!Mm@rD3C_QL=f2A|>d(5Y38&PH{W2J?lO3h%+8W@;2=GIM>KuibB zOo_-%%MS4h5!tgrdg>C;!vDS;ZJYs@nTfS`cJ9~#M~pn>6hgIK#fT>EHZ}PnqxS9` z#a}~PhnVQ(Gle5CRG*oe_|z1!OTu`lmRBe8`~VW7oZP!; zE>A>l(P%Vl^okYl z1i;8*E127v+j)eI)+3;mNKqxTx9G7+Yr(a^B7B9D`+Rau^Z|fU@yJTxgxYzBc-Vkf zn;#6jfJ#7A1hm_f2(}1wD9VnDwDI@s|BU;HQ;hX;%&yi=QSjxJDY`M~e}7u{Z7KSJ zS2MJw2vB9ee_WNE=?XC7!td)oQE zN-r}O(Q>SJHma8&3Cb%S!ec!YQh<>t+FC1(Y0=r%|Q4 zTwf^H`pvXK%R)xWZKAq%;(>M=6{O6VDh&|~=jg~i zDhFsqfNo*=v4onYm{&)`#fXaE#E(n{W_kqL#TJJPE!kXN1M-!WVS)tbyvDxM3XD^i zuYEFXh=ct-SbkL)P%xGf!2yPE^tqQCQ&g9E?bSX}BX!U|ub(H}D(l4E`HK7ET0WZ(Nk zWto!TBnXGVh8|W#^VymI$Q7;(^(mPJCwLfk1WhA_NeE}qRFDq^i1%JRDEcmq?%kNQ z8L!=89ZyK`tSN?uBAV<0rRi6sz+?cW4S$NU?Rd)YsVeN{;Ym`&$mih9Ek9&Yj*IfF z1ub^fyf354wL!rlzS-gNa)mFWF@S!%?Xj_|6^Yo6;+^QuP#c)_+WpzRYJv^Z6r+}R(jkp7Cs<3u#6BaoM1bc40v z&&?_5QwS$#-S7)F;2WSHZY?bcM=LQ>F85Gs-53Ad$%R!)%;U+tIU&fjx+IN{CsJD) zN+J46;KK6Gm=i_ z2VSfSanS&|8G$YLa7xRZutbCKti&Km5ex*bgZY`G3dO!{1xnU?-H7c447zsGuyFARqjSrtvWa&JORbcJe zUP?wBJo?eSbELn83r28-R&dB1P6ssx1_U}UO7?8SySm8&#V&9>AP_wetK}7iEfR^< zjo0MC>=d!iN20R%qFmj1m#owuBRYAX6e=SkZIKJoXa;~L%KNB@EyWTxTD-KDs7$E4 z8%N^APk`CgxWmyv|CZF0yfun3P%FE*eTme7@GnH0kA8aUbzD{!@Y*fmaGQ`=|0$|a zANUFg^LSJwfwPb+T~YqYm9rNbK1E!Z6_5U9W^O>9iF{osfFc`0*^jJh9Bn+RcSwJB z%SbXDU$~yCBcDqVzis{W9V%IQL}gS)rC)ZWhbJeu`KufIqvP}PytRqQMi-o!pnd9P z0Z(6J^1jF9xnc)1lNJgdmzDL*Dh8+1VAZ;sA9Di-J+a0=gcnJAT*YXGm3NmZKAM7jma?JV%S2Zwzea@HC44OM zt}(&%oVKR9KiZ%nLMqQ^-y7%Bq3N~x+Fy6^>xR4P_Qjr2K3?`iPYOkXEys}ot6y?- z`Z9E2DLVbWzAN$2S_9LJA0NbPx`GK8-I?t=)^>TuPTx)K%uemkynKJZ|Kih=*{StQ zV~1!68Xf9|Pi=t9IqW$7#h%iyy$tEWYnL zSDK<`lA7*AWSf&1^#`y$3UAK&8(lXmg!MgD7+x|w4ga#gr}EQfZ#(Kr1P4J8pBwyI z9S;(W@&HO|rbGTccW;u#zLnjde03&j?l1a1@7%VzEK*5C!opn39PhkwU?rt{0riNz z)y?`}3~@heC9C1V6F}>D6uJHSGn+A!g&CJ_msLyCnPZbz&!jaHI9go(51}Nuw%K73=w`-kJBcOBJFvw8dqv!D?Z*R* zIr&Nh!|?%E|K?@LTCRNmczoos32xQ$Z@4&`qTP!mN0Id2G#v_ei*>85H?BZB!mrhF z7$8x13GC7sm3oOf+ z&8gS;v0^L|CQ?!sgljzkp(P8K8$7@Jt>gUw)ycv_h^SqMY}{Cfj%s#cz5Xu(GKo}%#qWN-7Jwba07C(($O8qECSga6Dq&U$qwKyh>jER?i7fl8 zA|FF?zZ^u6dNt54D>LlQ4UF2PdN&ALFz<1DesFB^@Z*}RA%y+BA~a}AMvj6^bz@B( zMV^8Cw)bB3JU~YhP|nCR)TKQ9_=#t0!)*c~!(+t>jS5zdv{7c)`u$%21!VF)uJ-sn7otv?dQ->*o52s4d&ojXk03Y0G+wp>v6)CRv9_{5rx8jkKXIt(T#0Um zVF{Q&{m@049d@XBIC(mK8?EbCpCQ|@UB0-RFpfPRw{l7hUc zDK{!VizX`d8Y+>3vIU{f4?EIe&l&V%&*c;CbF6@yA9s(5zD{?W*-Y7F3L6uaUzi#5 zl?tOX`TygxdGCMH*5hX(A)pgw9}E)5Y`6$WBdmj$Kq6Fw#5B9Ef<$c%Yt^Q zkwHv&iV9zCAz@?4vJ$g+=9`3syUQ!4>tp;L8!G(n5tOjEb-HnsDg;}>#SG__ zM~obV6|?)!*(o(1ob0(=`Tk+fZh2wx05>P~Pivlx;fe=a&}mj?-|F+8h`0m|;TG%v z(A0M}+Vi%DWzM#yqvH@zdPe(fMzs%e>AvCD7EBb`HNurF@Zx5#PPu` zk66_;{tjn29OFeB8p1DR+3)^4e6r>Eea9>uxp2r&mm=U%3EWhWDRy@2!~kR@5PRD} zhu^Sq=P18a7Y*D@?>o1ZS(QQYtXaz-09OX~_R)Us~{mwmR#1EqZL2wTF zfP>#Q5*hO%vaIVD{KYr_g{0Euc5!%edrUqOPiVO;BTkJ7%P84OqoD0NFu5YKDCufQP<-}hp0ciWdUmfgEmA`w{&cW5_i$UIrBZNjp|bC8v9 zoxRaLx=QWYmPa=}$N#Ts1Q1s*p;d}+N0pxFP@ad^Qp9=&FXG68bG|Sge)HJ#=h*X^ z)IBQv{o@gC-1YG4!?Z~fImRx)2fmbSJ^H83nvR3auNKxQ`hdBx$F#z4BKyIUfM8(d zzU8>7gO%&Ds}&=5h*O+D$bpi07xCW>0ZqhE6-PJnqv+9M?@ho=7axsvgn+zWyVxIo zL!2HY?l()|v+rR~Kp6D1z_Ms7<5YxB{IZYAxgSLw>1FDCp&H8rmixHDWFr(P5)~HT zx+Wb?O+VqT@BSRt%glS$-0+~xw4ot?-!@AB`?bYr;eTt+Z+ZFP$F;MjqpTn7-oi$c zA!W=8{Vt9KCD+?;G~1rhh0i06mKZtUO5>jPGJOW;V>gBrqGHs5FqPTjzE+0H=J=Z$ z-+h4KpTVQ!Im>R<7J5-$M%kG>%sl@V1{-f6GSXbEVq9%{57OGY=4;777F?A7f$EgI zs>jERO3Sd6_AGI8Ngl6+iKBpb6tFFQyZ_bI0}5CfB8`wcJKq|L2s(h>KO4{;P|<*tnV z_BNx65Omfx<#ZR@8oTyGCJbHq`@k&^#^nn`t+McDR^qw2(|>UZiQ3rH?JI+eRjn(K zpNg%v zS;XI2{b`Xuw$~&EIiI(xe~Ug1n1**fN0M}{n|9NgD&6SXy-dFQbajpw_v_QuNx_AZ z8v1JmKxT2AJpRIU=*iw%P9oe+Cyp9j4g(U|K>m{fwPPy+wan;|xQ8_|peeAJDswn= z!jO1)4M-O%XpYjH7eyy9MioX3=lGy13}Tl{{OiT;Jke_6zgSoOS3i73wculz63S=& z@n5<<{JlKERt2$E3#VN5+&wn6DTlNjo|s+ehYu`7$Q-JZ?kfFDC>54Q55ob<+bJsr zS5W}onO`!biA68o%6NJd^l}yGm!s1w=KCvR3-7W~-XGdE9PUe1JSTuGGjVd7LiyJZ zQxQM;kXG;1oj>h=Ba4DL?&dCOl|KG%^|L2kalS`554=|!Zp|To-;0e6S{ryD9RpmO z`aV)^IRftij3VfL?(`A38M4ZG(xY#`O7*m5Bfs@j_l}PY8wR9F?dZEO>imy-Me{B) za9qV_IRn_Y)y{pPBiozxMllZsirv5OWO$TX`;}e;=-#?7yHp7Jq4H-a)$FYKhT5r6 z)VgPOjGRmg(g6!;AmCv9jU4Gi*VVjG)>|Nd#XbBI)1iR(cfWaUZp+c9B$G0lM9v4? z2%BPg8R_@q)nw42A|MI?ojv<)!Uf}Dvs;y^oBp@uDmZT_$e;oW?Ov2XQ{cw;p3Yg8 zgGN>cwT=}>nmEIT?%&3&z{G45U@%+Uun-62{FqN86kAI8ZO==^#xA!Q*zDcwR$2a2Z_b7I1ldBvg@lun2gATA4@bv9)f3I~d)RJg6p)XKu)eNXA$qYIFxYX+&7BhKZTnrU z{ln3U_Cr6v8kJ?8H6`|}{j*Nk%Mo&krbe(JAhQ+KI^j}6`49h)Ts_j_ zf&u`A+tZ&$2ZGb)-P9usK{FcXcO6G-GmH%XuEV^{OLi19S|bB9CWa|?eaOG|?0xpl zr-QRQjGAWNci%SY|CT4>=}87?k$N2#!v|GWHW1|*7no#zV%^mSV^WZq{OiS{6xSdp z@04Z}JsqUD)21_TxZK|_Qfa=?!sgwg| zcT!OZNNNBIJqkba^JcEPySghKAW2*N+{^t~{@dd(jzHqjs3^5kH7{ULq9W}IM9jEh zpw(PaVfe5QiIccE?f*WBT!;k6h7R!WlRww_HE%^yp3JNWg+nY?=}})#OzhnG{@FF1 zT74C;sj#JpQCo=OOplmm3eVj7DFiB+uP!&uL2C!;>h-cHQ;5W*q_C9!F9hwkqxzPN z>a-r_EHOrW5^UaLul*@O@^<6#{&V2(E0nH`o-Ch*EMThrGmVppH@yrAQ2t9ww{Pv% z8Aa35-`!TzgD_Q%98QU>QW&Qrbye}z)6f194))GXMf`rdSQ z@kOs(Oe|`1Z0`}K_)VGbTb+AP5}f7Eo=TRhgGl~q3IZDGpZ5v}1Rr~WA z7GQ%E8bT6Wu>q1wj+@V!zWIt(9zADbdLo6@Hx^(q+&b;wUE*tU?AN4-mn;=;t{W}% z+VK7ht%Iw=SC1E?YG_dE1uo@^P_DvK*kj38S(3QGcRRm{{%PK z4}hB~eD0|!^Zdo#K$;y)8Z>Z0Zj(7P;-X}NqMeiSBL%dtwwW=6 zlenD5+(xFU&eX~(Y%5Tf8q<5lyV!JSXPkhNXSa3*lh_3`ts~DVr;7Yid?U zNUE=_)6ycLW0G3NuRP{!@SCH6(Xb2XbGHw}M!7`maVfJ40^>mp>(Cn;?>v|P5kPv2 z9e?`*9(n=;3lU$&!!H7~HY)6fwzhxrh0Ue3`hHXrU;sxC`|#4mIA%ed-3@rMxE)7s zJz#$j6(tiFxx=B0oc)Ei+5cxa19=48i-}Hm*YS@UXkb=R`@P5kN+B2kwLCATJodDb04o{^iy>PpKs;*1X57uidm4vFeO57V zKe$ref5;D%0Nw#v@7>$mV9V`b`GG|&R)fiMGyQN%{a?N*Y)MMxaWnytl@l4i#n&BcL_MB-hLtIz90a7klSlJg$n=+#0nkzHuA&uY5m|l#gU< z{m0ZYg_2!zb2>XmiSpzA#LiKaD8O}195pnNh=Nm#vp`hZOq-z!1QV*}32fTQUikX0 zqF_S9`O{r+X({AXxj8$o60 zZ47N-VvR^P#Y8USI~`LAy?YZBkl6i<{#kk@sA}`y(Qbb3x%o87=V)u|i^DikQKeq0 zHD=mE`|F7D>UxPi<5WFN6YJ~wDJf#LI7>h{DBH00?Vbz&qNM56O?Yzu&zT-@1GtaN z&F)B?m-+cbxVUnX1!&;WDg%99a4V)TKit&TOcj?J9tJXB>^Dh!>ThC;T+zcd8^N^=kh7;4rt%&j3Kd;v zD$`Wc)b#s>8e8PJn6HkWEOAkNEhu2n*;9t_xp1rAKM_4(gIL^N<~vIxAvAfmLM@`A z-)LY8mF`O5vf&(lsxGOuU?3oPGO^AZWQfKW;rl!Q-qcOn`KDW++?zxbpw?;n#&C(; zJQskWrm5C#;rGm#Y{)j{Aa3|^Gix!sb3c1 zCS~2gO&DVrOHeC6fA^VH3Ov@oVZuvM1lIi6?tPw92X4q?C=H5=*TvA! z{PWlE8_dn(nVYH;`Di7wc$2Qc?bjE;NdM+F@`RALHxA0}=oxn9z?un{_iV zkS@0W!iHP}ua%om;!b=dvq>kolzFL?_gjLN^`#bm6E}G#j&bz^`Jne_sQ*oo ztxuzP;EJo$7+{mY1Es28QTCLtUhb6jYLa(6Z=^ol28%*Eh5-^lI~51S=Z0AAt%TH4 z#D;_Q;uvki)Rr|Xp1AwJn-Rah@ZuK*9FUc9wmG9lYXAkdSy^Ar;TrY+{w}hWZSQ6+ z49X5Ps0?7zwd*tV*^W>%JY9KWDC54WmkjYcDv(=f&cb3OAI8|BP3^O-MJxJkI^CxfdxHf9 z%)@Hw5fMY=hdZ1}4iCkQ=Hrz=?vn+7IE3b3b69MytiXlU_TN#~D~8>T6(OxX@_Vc|x__?@|HslCj66N&xm+wE$`kmE zqJfoA!7Y^=EyrVfwl`y>bT4L^(@Sk}6eA-VU2A@>ITDhHc^)zx2PFDg$U zA2-eW?*%+OFAAUDmXuvR`=5MQen0&t(NKXFIgrj(T_(PW#uQQ4V7?)!<^N;qt)r^y zzVBfKB$VzB>Er5ow)ZX~5ax=Xsd;dk))eBbeoaR+|@cgNam z&o$Rv`|LCOY0`1((%AZb%CYh%JtKWq7S3*_6gn4%2oW`9t1)d%dg=-}7Bxm^tb5+a zJb_wVJEC{zind)ONx|Q9op+9^u0~Tb2KCj8tWWRf00`&uU z;x7*L4FK&45 zmnLP8D6&^#%nrIY&-U-77@Z|Q+x_afH6l3qXn0`^cwy)sn45$pUxyppTh}>^1k3kR zcrwvP^hVz*OoeKykD5iLtkCpDr>tzw=WUNhtZmIKIEN4|R4_kx!s90N zku5#2J_NoZApZMpv@C?WUg%%LSow8wKa>X?CK-7HauKL5U@65h#E!+>=ud_ySgerF z{U(vAe~+9=gx#{F95ThgZ%_NkUB}; z3F5eL^TI$n1=2db?*e`KY|sSb|&>qCX42lWEQ5m)uF=+f6_`7 zTED-K(IgkP5uwDiajrq%qQ2?sLcTI7Ha+a{{Z7+xeGMC5Zch0{99U`$z?;056;%q` zq6TxN6wt&zM>3;l2WDClRGxwpNoQtj?pF`V`Fy+sRZG_WUhKu+(>lZUUyRdXpc@}_>IwL;!Q@c=%puf-dNbNiD-rK#(_uzs zY&M|req_D89lv7e&In8SKLfcN7^`qyQp2FL@lb#1{pf2m)UO6(g?8O7g!Pyi&AWu> zGplRaak!vhu$GCXGA$;}_~J=e5T{>TVRqAt)4OM+yNCM`-NN6Z_}1QqQD_C@2+^b~ zPQOz+^q4k8SWU=slbefIJnM4baT^XEZo7tUYg zJOQqJhg{S3j_b7>xQR8qk)>>=6#pDHDzS=IGg7r8LSe@9=?<{~b4nNP&lmW$9PApH zMZC3e#PtUX`*q^h-(vxEe`IZDBHlB%&VTx!*BPQZ88w!LW^m8O_~8gQAZ6DwGLz)^ zmy2vo&bXG85mr0nuK(~fR&Q&I``;Rb&>@~_P4tYieG31r=1tTJza}E)PJi-1!2)er zOnuU*kKYHeu#mHnvQP=X?5C*2^eX4BK-o6#agy520|TD~^I4~sc2jN{~@56TMO zrD-TPZ9mZp%@rym6_o$aIfJF$+V<6RJvbRJ_RDEzfHl)!%*7J;vw|KYBA~tQmcrkB zvI0?VaPvgd{PJ1yfAgV1K(y1Am2-Xi-D z+J3;ON9ZX3pD(AZM=7o<--pgUbN~H@?5Wk;7&%L$+j!9|$DXI`x7@xk2r9V`9P~)I z{PNV(N3U#mp@g?wy<~B z-d=Gq`1oXJX*}f0Iu{3;r8~>iU(lQ*}U|Q$8L9TnG#1RuDlaGf`V~cgO2+mSWouqPO^*`KIN2M4I0B!3N*&Ib z|G))iwNzQ%!d}9EB7{M{fKCMZFv504qArIF(<$&b=p6iRK=d01mZF4xMbQt#DXy58 zR#gaL#(ojBv6ys3oJl0$LY7dj?E8FQy&~8u&*KdO7=?``=&~aVuB4)a6nAmK7+o2$$_;oZ$RIoF~R)Hnt%HeWNk=6 zj#&lif~T9~I%2^Fp$x+BD7d)@j>tk}@!YSN^E`0DD5uVSvwDgeQ8s`39*Cy@%!xxo zx?|^J8Yp0zi<2up)K6~$*0ln^x|X=tfAaa1-2UR2)jxQ_hUbH*3UkPmAg|9wxM+|S zH8!3ww9l0BT81SP%gZvU1(sO>6wK>prEjoasikTzPzkmd|C#SOQP)8YC?7SlU*~k8 zn9kUG|H5FtQb#DwEpoI@IQl61AbNZkIBZJ?zarQ>j_^iD#ybkW#Fmm$k5oc^J&e81 zu94l@0*^|~nKd#owj5lqprW_9B~Z6#A=oeX(w1w_V)JkF`lb3Y97045=4#vZ%9p5qo7UZp)0 z3*VvVjcc_p2|GacyU^NbS2-O2BGp>~H8^%g=!#2}yh^kYkc>Ir?cg1X<(a+$Q@r>cx4qK#naH>4LXY zUp{^6~Fq71q8H7i)&+$ld%*Lv)(JD zh1A@mVlRn5-%Jo($mAi-8bkRh_Y?4oA`L#9rb=91)Y1=AW43Sl&$kVy(6p%7WrEv ztRAtD@Nr`MSt?tiMeIY#b6Q~xzt9bKbl>NaexrS~gv*A)K`$e(pGjoq10XCa24oJ3_KjcknoWP-7#*`hN8(RO^_QUZ(& z5aIq6AqC@nCR8-0yob&f41&!W0~UQI5bj29$I1rR#hCM_I-Hs6kS(X;&_d1ZN7I%I z;l|9%mNB#4hpsBeOdu9?#!mq4#a2EinY)(dI0t_GF zkFg4Afd6*KrrF*vG^>l+H;aZa6l#Seu4P8a&~W2JPM573+J#ucNaG&k+~Q}(pvoZJ z60n|96kRysTYA%niK3}Pk>81r!3?i_G+4!>C0d@Ab*FyU#qmIm#i`CNOBDbF&%oq? zhwwQ9GgJMgkM)_8vzC9hOwBv%a2u}wwa9=MEwEPo^8E|<&+^!1CyUS+Md!VgFbJ*B$Aba=fl{-Z3Z zHg)jR?EKu6aTQ{v$?ietS_lF+_29*)irj4e+G!hTLY7;$NGIX{V%1S zSW=dNRGkhR*5nCr6&n!}s2y9mxly&ythcl!>91inhfgp9kID%+=JGu4FZ7;B3f<25 z=j2##T^zSs&#>YT99F*@(>Y}aauF@t2b9TsU+@lc*2`frr_{F$EzSc^5Tf^6L%_gxpI*} zZzRQ*N9xvyKsfhn7(5kgL8uS7A8Q4;`WpNPzm$y39?+7|Luad{n^z&l>av#$*TKaE6!6Ly$S+Bq-M5+{C4=xGH&jWG0_M6rJ}N;Ne*bZ7{OV=_FMEU?rF0;XaZbY@CEW|)$XmNDR8ENau8O(ch)h6azIwv zpidn6{J=9Zr@F}~Uej35wyiErl{WAp$0pmyAL>snSPyS^J})citYIVU=(7LcmG}+6b5)6F zdpQKT6L!Biji>uXbZh~h#(3fKq(+!Bqx+r0nRhAhU;fvf+4D<_SKwihGH%XDm%(4G z<3ae_1qSWVyLnCN@J}D8yVxqaGYZU&hzA^IwetFs+Bo3m3DZ#2)RiKqdQe^NztXrH z!5HfQgEg97xV(wV?pR}=LuhVZfcqLM(TpEq!ys_okjvP5xQz?K-IJ;K;8bme{5G=+ z9kB*U)>ElAO6a*cyMriN3if_vAoTy6r*IU~=liCGzl)%BD*|k(Q2kDU029FiOr(6O zBj20$ccR1#z<2_{q!Cj*3!Y1khiNYS#aJ^IBZkjA<-fFlv~jloTMrJ>#&E5zA>qvp zG-2rDb{Y^@eu$w8njlvPoq^v;i6@aGZ_|oAZWFMXn(>nxI5yNFU!`spwB*7)57GBs zE}YE)Az2RXD$70YAEceqlSs)GK3W>YCF86I^Oy=?Z?(WgNwbT|;>mZ`BDL;p{+h`* zpSuH-qUp9sSCGDBJd)^ft0UU4Exdg3s2B{G{w<`j=%MlBqic-}A+6t7Z)DjgTLY$r zFL~ItL&Q{%CI=X-qq^D8E$H$1la;8sd?W>?A_=67#o3p`iLK>G=m%`jb8OhC9eGW{ ze+loN>`!`9(Q}5$H&VFZ;*9HfBx?algE<-#d{;yK4e_~qq;;r~c7^oG^=n59ND`TQ zamtvfu{+sO3CHSn(R-IWDP;GS_PRh~s(-4-o&fk4C>@=Ve4kAYyJabAN7R}|+aC|} zy`~#O4uRZ}C;T|wdo~OeCLjddf$yRP zVkvVTHLQ(&1J9Gf#;l>q5r*VT@)Xm>@SZ?8u`}(*6;lZxK^M$Jqm^GhdnH(K-N;XarR5Ap5IyS|BQ3NEC6MwAFL4G2oK4NBqmW;UYLqW8IzWc$2 z3Za8Y5GIVnO$CEM3Naj&rRV3&iU>>k34_RR78OU!G?&A#G`*I?#*uyIHs*;uOXtAW zDPzvV;Xs}j3&Y1G&P_;B9!*%642IJJ%hhT+p%-jog`s5$nj!h(JI^ImFq&HRy_Xzh zckCm)a_~i%c@5rD1u!WA2SO%8XohM@oi_sNmbh2Ptm}z}$H97)C}TQ?+)3MM<|<68 zscY2iu+Mv^B9N-%+kA~vb&ITlatRsN`UHTd40K@mi<^e3oNIsXpL~VM*>G>~yV(f@wd+Q}c;~Ut~2^3`lLbrB9l|Emk2+ zWAkFsHnWLE_V_+Db-cDh5ZA3b;&6L6K+QTN<{gqdwu){>q2a!a;|Hw;izz;fQj_kw z0SRUSjoz)xYsrF;s~3rnT^8|!2u=IEQ*YUOEWjI!Gwcn5(zcG{Ix@&oRfZL={Z8XI7YUJw=m^hf#7`t($tE(2spI8P3l~oh406 zh8It_gYu_( zaA4pIzp8x*f{$Z5F&Abrw>ak1kduZ9Lp>G2XgtR7>xwS7HryX{P}9s3ZRXlS7#_f{qOHJ)x=-POB1k?8NMN7*&OiCBI@(O(26SI{%f zG&uR+584&85{#(gK^UGGsqetOtiZ6U99a(P!KBl1yI)L{oHWk?T>+DkH$7x#J@50p z!Z#o%TkD?8%icUV)K$1t*L25({GjThw2zsWlY8X@W?W4t5Td@L-_6|iizS>_(=de# z!-YHwEU|~I1A3q-ug=O4ckFIunNnc%mJ=(qD23XZ29Mf=U1DF@{tYm6s-VI}u%Np~ zKW2@i!(3}37By^EpV-wqhZ3edKYQ;Noqv|XZIzdp&MbMhQseuV7gDPaO+*iWyu~v_1aB$SgJaZZ44HI~L$6wTXB8&xZ!Nmn^C!rGh~W{u69i0(xw7M?)sgBK+TI&%#(V0U1q7D3C=G(qlzIvgm^YaHsWVC zHX2RdLzc%H@sVW$R0abE;7|eVY+ACmN@#77R1h zT)BJ}#q2*Ds|VkKro!vBLU=)5F7yE<8~++du70jgP@b&+Szh7_7zP%r<^<*QLTTcj zjsx92BZxm9YD)5>b<+)~VKkN`hFq#ZU0{L@eJSLOErTOUS*G+Q<6a$V)5;X-7^Qv6 zMTzV)wNZtq`9=AX6im4|8qzMqPUL(8E>?vV`c_z)P3%=nGUR~l{|yadGxGwh<0 zs^w5drP7XC${IuzVT|~5(Jz9UszrUvL~vn$ls$(8Ui79V-R}&)IE66b*A}HLw7V zHW6;=a$&<@wW8f|rA$mv%L)`^LgewGG+go)M|41TJnbqSN7BQA%gac@;a}6Ie`S&s za`Aa}Tnv?^g)}Vn&dBL!Ri&gZoKL=1ND9MifT*=(Ovqav)N=?<$M5}^8-rfGS=T5f zQtUGab);~|(;;;>M$Mi5wSJ6s{1Ig*ki&6bFV_$M%`f&lczM#R-}ntcd;#^S7^4WB znqjWMQ&;7f>sG=#z801_oMY#tL|9Qh;6oP~TSa$oj*+P{Mk0aX2hpqUx0t(vy;7b} z(lJ~85YG@S=j)YC#af9rmtweg_gPU3e_a}#74dIii`ldjtBWuOOfbdjks4Mnu*>30 z0`ThcU6z)cd(kXh{O)ufpXIu65r8Z*MUjKwCIancY$` zDZ41`5C&_1oM#!-EW~KIb9n_^Y?y8r1`uD678lT_)^zO7Y!k-@H=@FcUDw2^Mp*vv zZ-C-}reY93E{=|<@O-;ehwH>o0XtVolY& zzCAFh-9>4_gAOB1eW0s>PAY=%kzFz|&=L#i@^_X)yy~<|VFx9MrYZ4-LhpCA>#X0m<#DL%c1<_jix}F!GH)IF+wvehmN&Z zqY|-{WPI8gyLaG*~XRo#l2<>@zqn!u2!-@v60()We)k5;?}78yOq zVGmwd4c{teBmx`vpcXetP;ujHJcIk3vCKP|^B7o+oUET(02%A7RRhdiEbBO{Y}xTy z*I6Lur+5{5s}?m<=dYg05}*iSrd@0w%D_e=0=8hw>xD0})ue9x0Q8ShHXM@WR#&Ek z7`{M$E6KqFVkWfaTC_vtmu}D+! zWC*R0eOCj;4q)Fh5zQ5~8f#~rHt_*{!_}* zQ!Zhk6!rXflXf{bkh*vO{n6LP1#~%4_D%&nabSl!J2!0_bFP3&R}7TYfH?wY_D|HP zYwe&RuBcwRi!XGs=DE05iB|qs%LW>^2%;|>7rJFhD4n;T{=a`p>1<(7=miiRz__ri zJ&8J=`Zt8)m%q!$vSns`uk6d7!NEQ-Y&2LREw;+uEO|M8f8KuX%)Gsv(Vg2GPO&{% z75=-qnc38I_i*gt>4`~B9(lUaw^7!7)VccWyS7Ssx)AGTnlP2R}ymb z!bTI-*QazpZoRH>*adTPauRqh{_T%BU3q@OKRrEV1ue6*{dV@|>*pqCIMz)4P?>m! zd>!B&TRzo2>HAH?Z#?4Y#Y+0h9HY~f*WQC7R*fSE9KGF$tCvZlJA?|ef}?`hB<|0T z*W>f^X49u+WMns+3A*gI>tgxj$9O$*xGJ1gERsxGZWWF-PHKl*a2~P$xl88&^HNeD z+2fgyxX2qACqvcsDP_Vijo1p+s_JTWFc`~yBb;Xl4-7LlI~!y=k+;?zjIAKF%z_1x ztxtVrP$o#{P@~3XWCpE3T-toG!o+*4#SZ~Osj^~^8{6B)XIYy-g9o9Ot~*$!tQ+cwR z%fY9&bG;f}j`k_ucr0bgEBTrf@_7&wxYk_dMbYZqovSuRPq3qtOVs;wy>hepVIlSl zqnn`05nGM|aMUteGP0^ahAz9TOkvW_`EcI)Usp-QhJoZfP>)pW;p5;G_et6b#C1?t2@bi5En^UL?b+RT3x^puz|21Y2bli)D z)Mu#27alvMR?FB@caM_J6ULL zTFneuh={W<3~NronL$VHyuZ$0-*=_*S2v&Dwoc!$V+_dn57zq?q zRNrMAW9SsQ_uS`lQ4c=pa9!^!HTD-&Bd46to0r=P1tuim2N%A*bsIFD9%m?1FVgiP zid>l_FU}xm5)c&3RK))XNd)mNGKSBZnQW*y`G6&M$Nsgwx?tVDxpfUK30+C<>RBv@ zu*OkLMlN0>FMz?|&goLkzDEHN2&AwSLEDa}?)+1%CMNRWIFi2%P0}p3ydtryN1gzO ze(~u^N2Tw}0n8^&s`j&umc<>b?ca#|)w7C-T0F(k}gEn6+n7U!f7KSJA0cC*|!;`K3I%=Tb3Y??4y zv>vFjkdGQR(6W2~9OvI0XAt5a_?J#D;XzbXdVRltZ;TamKGO1dIPFtO@0T-(!9ZYm421CIi9 zq5Fqm$YVvh&u097L%QfYBm&@WP!$IJcT7y7xcKL`l_{L2(O*{hH7B~g*JzL$wv!2n z7Mz&dXt0p2+8>>cJUOA=Nb%|EBc%`D;1J)ju_^Az19#(CS+QP!Oy)9=pNJIA?oqOh z`(}vCmFNL03`3g(zh0lvha9;=Vja^@#rr4lo>$|-15f2qz%*M&$Kr#^`kASzwG?XW z`VF5;a>nc4FFi_kru%A~rIfQnYoV48SF%be1U1Xp^7CRY2aUTHBg-wUe`wd4Sd z2ymyLA?Sv8pI5?=BO&lH5cfbtVFQVuZ0NO_H{Xbxg$+9O590n&E&U|-GeNYC zxgy@(q?RoU@n*O0a!QpH1pNyguwYfQ2V~Thm7jit!f4(&=s-=}Gz9A?il+n}M z8-lgKWwZJT2zNnVX%eGErjp_K5K6D38}I6v(>qTh#zS_d&pYvM@41G}meZ_|u7_*r=87ZrY18y}&ACh3lRcE=-o4aUU-a5T= z9B_ZW1l|lL#xBej_syr7P^_FyOkkX86bsz9)X?z3>QYKZrt|)|-THLh{dB!2 zi>7}S7tuI2ae%qRI1UgX9@4dFf3;#~pH9VO`~Ns4YIZx1#`-m5m{Scry~ncNgg92r z6)zj898HZooo>8RN5{*K@v~}=Vsxsbb-=a?4z}VoT3sqf(HxkS$ZYCs@467Za z-RuO?A$Cu$^4ZJ31TGYh)7rD${w<}IfhDt{LG7Z>q0ETe8&2Gpo6#FdK6-U9*QG2) z`oX4Sr%BiQ@ltCqbKK-)kgYukJdLmGp&!%u$pI9X?zzcxBmHCf=I{7gB3D_4wgOJ} z#!dUCg_X&xHG-Eh>ij^0EsH>JSZ{R;GTQ$A<7G=nDKc#2RV^p&bix zDj`i29Xe$Z5cWNH4iCDotJ}@~sIf*sgjrT?LlpkkhQ^n&cR)0vJy11EPAv0jkHQLje zTl|d)PYAs1BoZ-OsIxQ*uZ;Y7CspH?lb5&N@eNK&0gsOLWI|C0x6}$C1zXck62XNJ zf0pHsF*R^MdbrSAH8L(9(FL;$#r-_}+x*JP-t+yi4VrH)ROcX0U!pe~XNth2(gQPJ zhN#4;jFCS$$<0}t_F6D^h%m$Nyu$fdr&)u5?de`wBzC$h%f9cm>skz=g#MQD7wQ}m zF%P))KH0fyz#aLITOcGYc7>g*Gkne z%=hi23|rh+0sJN{lOrW|M)F_u(c=p<&~T~_z-dz>+sA7GJD(IaJen|yRm+Xi(mb}l z%Hn;NB`2g>1aV+-U}LNGAiA&hEX17lbg3f0;8i@Sl-z3sgb*X;S3Up-w8aHavikDWH-pN*j-Nm4XKZ6x}4UmG@D{%H8=x!Kzq(&wee`x$%##7 zZ7nV#A>r@ezcIK5mwQUoDt(6&L83Kh0MxK)IQ?2~$V$;wKP0#PbYul?Ih(-=#0A4d z;cT&-lzG^TzUAX@5@RYai|fV->?xGhefIk%tooo})d&>jPHjQjt*ps0YH!CoA04#Wi?V)_W&QAJM2?hAS%k{5!iA80i#5{x&gUxkaAiU*#PtX zsh`>-aNMlO(!w8j#RAU}ao8k5-^z8DWa+9GnrNv@Fg>IAa`V7crPEMotL;i{W#R|+ z?mUKZQm)%>VdC70^63Ry!Mo>DA=68H4WbjpvCi4#xAdLdCski*X=&dvGY@4s9)%IU zZ+Kg{IheqI`IfE{TM?!MNW3hW@|v1_5{?M{{E)VhvL@Y5@gd=H>xQ3-%_s+B8{R@^ z!V{V-#o&*K@y#baQ%CyK`HOiHr-CD?X zfsv%1)O=kAsEX0B&@=`(!{aPib|@Tx2?H*!^|pq;hwF$0KZZx=Ob#m|K7f=6S4sae z$fzed4m0=9q~Q_bfyc*uL8q^rAQ`N^6>Rm%`<+}gfAFoB1t)VV?W5LnOXg`+v!+9= zyxMc{foz!HG-jU!W9vI7Mp<{IL0?0hAdvPx+^;<6NjP!1sOL#Ul7$0NILTwN^?G?Q zo>hC`&<&qi&BuA!wa;+c8+r^B7GaG>Qu|vUwG`yiN=@qqT#5EI$EFw2c;Xh+2pBSwGmNnsbCTP_R8*TT{um8R?vYHP~qGOa)2KGNY_SLCS{WgOmB1_7+ZQ zf7iF&NCe$tWgCHPykRTZeCKt}c{qN2a`J$@M+#%!)=*Mccf@gHl>b}&_0sxfyChqW zy-9}ns3?k~CN>)X1%Zt}(19^CLH$3U$Af(6bq8PTLHLKW6nZ6z6)VZFaBY}`h7|qT z$l3-FVl&YinymLPZsqlS7G)iNPc$-dB42lS(q8VrWS2tD#|L zP7XXODyoTzi4VBYPop#-G7^1#eI0|G+#37`Q71GNkWRiEOK?g41+{tKWFtRtvw~>}rw+(bCDwyqoQCv=sU_p1f*~t7z#f z0fE&$b0mO}7JzfkRvI9BJwG~k_x2_`qnmMBEH>CS?B=DM)VDtlui=UH^z>Lv6)Dfw zm|_FeGvL>EL}Jep3M7l}Ak2pQqvq3YY{d)L!d&@1r}-OboQ~v)y8jko1DPpFBzhfgB`g$!Z zW7KoH`or48HhEZ1ICI)MrE^74Ykh>STu8mlx92BIzquoa;}YIq((=e*(>7{{dQD>-18 z3l45RYI=LVJt}EuSEaoIC-iUvr&;wCncH&SuZ(qYBeb=(^>ozx342uFd}y;Q#dZ%u zO+!OCHQg6UZu}hqb^TAesi|qhQPY0I^({b#=i*s3D;)P#NOczAsj!n5M>UZq^ea&vGYD)D0J)uf2H>0ktI3iQaTSrd4 zGq}l!J1Y9~2Ts!@!-KdCj)u5$r0T><|;0W`;r6zjHM2XocHb8Ri(SM}}(qVG@p z$g2TAA$4AIOeomo=Hy&WGENsZGh@8J-Oj)yCG~u2s<&Pl0Zc-7SL^5JN5GN;<5gyG zbabTUKN%_X^joD&E4bEt209SSphC*#>gt-vV@>Ak>pT0>hx<`u;Ju52tgOL|wlir$ z6`ewA&{VOi?y37*eAchlt(SQ9<{sBe&LHn6k8k$;b_~vdm^Is2y$$htdbka{ei%rR zj-g#^K5lDXzoxdq3@J)cb8Wrk$(-b>$&&UPW;=KIySM%OV6+%o{*?M_*ie==Zgr{| zfeJL)cM#lAQx+UIeOjr25^lHn7q-!mFJ&fEW7PPFPrJ}~<&f9le7`y`@$OgL0`g$mDmr{c5(P=Iy&BOV+AO2%*8%%2j@V!9d_f`q zNCM<22KZjR=BEa4TELc(r2Hxu9Q77+okqjSJ(Ff!%^MN?70{kH1Skk8;TdOVb}!HV zHEhOfHbffhJbpb$Tw}?>W6|i=eo44|06$PKMRo0MP=9N1U0_EDs^yt+vQ9wFjYquL zR(CBY6cKn)U-4B)#3k`Fw!_6RPW~J+5D*<&kBbdWz`kD;-pH*pj0d@^U7l6RwKj8O zr)k%+1s_hj=$V;o<}RnFrq)LIkGtQpwdhp`th9Rz5rd%c z?yKJrKkHbf2RU85))b^c0g*F^?#Sj6za?#+};?AidD@;g8yIFMm@yMzFi9-Ip4oyPxbyi&h)8&+EH71qBDzK|WB?C7O-n*`MBQH8k$Y(`v19-}zV^GHix&+qO1{Vw{09;4S z#~+JZO%_|->!;?U@-_2n**7Gx7|n30FI|=)#$&FHA7UQ-HZpYO-x6DbFIYDbiwAC+wE|kWj$aUzf+}jY_vbu z>k2>(>l1WtJUx;D@*AqWy7YpYP&ZCI^)0ZdG(Ab6yU=ov%>GU8ZR$s65_Ihu-J0MJ zX)&SXFes6>a-cX?5tJk`40Zztq0qs?Kf%UHe2Kcl+~jQ4E)V^=@j@S=-vz{vf$LiF ztJk^$Hvqnm1{!HOgmiJdV$Twt2HX!t zTT_XE6%1d$>{dMP`S$`SV$65g4G@JtwY3MrLJ(ft70Nnlzekzc5*iCZ!Qt6N5~%u0 z&JUUUUHX75{R@yVq6@G=<*_^IGL7Pd2$sPF$h@#EaY)yynpz5J!Y%j=#~KZz>OtlF zSv6!P$2E(G5*Edqg4c^(WNtf@H8nLKCe`>o?>OSgMR5zeJ(JVe38U+DFa)^!f!9W;o!jWBxOvpiNtlO~(x52m9`bWO zQQ~CT;g$L=CAc2>Ii}~QQv&{|zEN!}y$1B<$3gaS#LaIlX0!ounb$p422D3<%w_mA zdGteyuN9qbuOvoUEi0tH;3{!xwB%1Vyb?ybuni<&L-`9vmgqKPCL6uIy?qG`fR;a+ zxgD9DOvJ3yqJ}di01(99!O}i;JfRjmkGyGvov}>c^78VD%RZo(^&=_C^wec*O7V?9 zEYG4%*X^zGc$T;Y5VsfoCg*F-EopNA64kp&(?Wri$ZNkvGgD)^zzsax-W^fadS_Is?Kzv1;yC{&$6|o2>Y`B^qz9lijSf^Tf+s8U0bp7n2xE1htq4 zE>S`%1O^QNQJt9IsYE+hpxzGvjFEK?tCmxVEtF6~2#Drf1*nb=4iDFciW7{vo0%Ga z3KMMk^XE^)cCwGzCf~ivs$7V z9rse{$IVHo*+yjunGm8Y6UZ2fGtEXqCE#k1ijn!{a!xH$J_HlER5qm`^c8CUe#el_ zQlZ5zjJ~c%dieQ=`c-7y8Zv)^4I>3bcS9PZ!~)viHpN*Q%! zysrUT&N+#sOf?qU_lUiHPoQ$6*bqBGQI@cTf#G38Rb5Xm85x;WBUV6>%op!_-emLE zZ-2Z>865ug@#9AVUb~!O2yjO!xO!bbb!y5QPy+BsGk_|Dnfa~7+&GJy>l+3jJu1;{ zU(OSGv%1Z=Tf#8j7fx(^1_B<8sLObu(lN6UB5$!X#)^M7$g!Czu!%vqtoijzYfnXa z#djL(eDXeB=EYNyfnv0t?sNKRsYiG|*6}b|?YhKm{+=0b+)NJ&X=p6-u_ zlUH!@*K4ngBUk%n{A49IV0Su|>f_ zooAY^EWvJgm~(3)7#KC@9JQLtG>knM>*P7wF15sJqiIv+? zm(IMckSE~g#)T4)k9O~R{A+q^TZIJf)e&5!os|!+$MChNIpWkxJjyqSgh|V zg3fmjftT0^mlH#U+G3cU`WSBW441TxQyFD*Cgp)N;_+cp438eHs* zM-6T+j(Gn4jX9By$jf`M?0)RHdpjH3GYSMpbw{p@4`1wia8^^N3-8>ho69zGz&E^p3 z4*<^tX$Ic#q_^dgUb=Ff$Rhbn{yzA|lBWIJ(nQ~OS>~Ht-yI1rq$^$BORdIXDq%4e z>s9$ENmvg1)BXEXEQswdo!S4_+F8a$*>!CnkrEW?l#=dJIuxY4d+09d25BilKmjS0 z9O-V5?(UAE8%fD`&-L8TdtdMOm*0G0V9uF2_dfSt>p1>vovYvPn5Q!Iut{Q1A1c+nZKYic)Y<;%jJV{G4i?5Ds@}IN;IdUePPkq^6}sUR_;PX8Mv3 zg}#-Mc~V|pZdcx-1ridVZA51(b3V<$0rL4eR6(&&cMzt|uE?f|(9n9)AIn=Fi@gR>^V9f_aiNneCyj{RMrG=Dv)OgJTuZ}00pG2q>| zYl%@VM>>ORn3q+Rl_2*Q=k4zn2f5Z`qGujd8tRKZ77vbuN#)^EH!v5}1K2IPlS$9Z z*8vVwdsJeQEllaw7?bQZTV?DX+Fv&g%NU#XpGi#NB6AdH^3nx42Sbv_kX~Oqcu>IiYBBevz@8@0(qze-A zE_r6X=Z|UyS<1|xjs7ygxfDDpfai~=!!eomo~&0Oiwy_4>Nl{?e1(pTD9fh{;DfE} zu|w0jCKWwBn4A2PWI(pNPXcj`igd($_^WV zL{!~vd4GRj8~>%Tx|#s4=d0#{O9BNT3j|-B01uN)o7+=vjHtG>G^oo?DChK6uKbXK zZMdelZ{mUcbFym2@aMH|FE?J;Qb<8dt|J6fTy-rkqgaGFC$AkW=fgmbu zB)b5oNELfsP&Ihz-#GtMeOo;1_9U|flMsP2tMsez#pENEIoghCvgKiJ)&o1RypVz! z_3hiYcL$Ddv5rB&2CJHeR9F?-ydo(x=q}dIOc(ShhufWng{5>c!9T=LcJeY!W;kG% zwam=Sra*lOe~n`TG=4;Givf;$2ictX6D)5E-{VK*0k=+3T`FQ?h=Ojvj`;Kg0s;oo z_;JC%mGO-(w72T&iM{9YGBU>9pU7N#s)B%ff9BmZm>B@HIWC{S z8%YxE)62^gAUU-#SdOQan*rMP@P;=?zQYm|@lq=r#vSLF>Bdn|omd|xQoLQi5MOFG zMyh7(rRO#C_h?8Drpzqc!1uMayf~Q`s=&^r!k*7wMt1PeknK-LkauFfvl?fN3Q5#w zYE9s!%XrX{FG%EP9JL(IV6Bf+g{o^exEFN-E&cwyBp{**p~=K@IpE=LA#@@L83Qh~ zwc=4BBeb@*wgICj1mrMjw!SHpXmn4Yta{ZP5CU$wwVe8$egU^dx9L@22TLg^#2mLg z+$oi+1MeT`SMUVSnM`~W4SE<_mi2Rbugv@0Ce_klb7Rb=x7n(37Y_@|h?@!&h`;l+ zxY*l#2Vt%6i{@@{WFA+GbYXOymg z>^%G$`u?F-^zk+C3ufa%`?U@5o63z2Taqc*bbeaSmrrOd zYY(OIx8I*;KD-z1299_jDuu6d;sx<*8@w9tZ}s`GFLb(vp$kAyXOgDDxw^hy12V!p zIk~7(&l8i@w0#r0!P)k!ee?X$D8Uedz1TNMjdk%(|| z@1ElBJWBm$?*{h+6QRZMT*dUrB#5`n#Kme=z8ce)WWeT(y4``PMpQz?%}MACJj?3q zD|H4u{l0_glFZ(2GfT?~@T5Q|N!!H9j!DCo3V3EA`+cI#e~ zJZpZq_i?yPYo+|eT&h{nw0{Kg+Q4^!ErS(tZ>k8l$?qR3r8zg(ck^7+cjb2=8YZUu z_CP%_Lwqw_A|mK0U{Bfn7ian=OKNMA&#R;|iXbn5#$tIXqt|c+T6=s*RSg1c!G&Vj zSs|0Uxu)3Em`hpW;+q?Vh(WmTbNj zQyax)X}p-T)$dmJ_itv{Ktevhx06v)vJ^7dTnc#b8|_~J>Ljd+zYvPS0Eu$-(e6p< zgDZaZZhJHE^sFruL&w5`F6s0s$*Z26&cq`9J5QYtfNFztRuxlhK;18_tD8MU%FrIk zZL;8UbdKgYDKc0f$Z2Y}&$pFy@_vF6;?vGOgOTo_TIs?0qQu@J_;$g1m=XJG^U}AP zk2Oi}Z>z|mwtz>p!cC-OV`3N8jlqB?V+7?{&pPTy%M=@jBZFhVa$3@_0}>}xkXrk9 zX0ZZWU-oA1G7qtf3{+qG8Sit+>}TUfL`1*?#JWWfpq7KYTQjlT#Ka`-v(pa5(y{Rb zrRGG`d0lz|u)05Mo-3VL_94m+-0u{TH{u2*Gak-H;L^tdWUH{S@bqD7Vj`K=dB7M9 zGaW^Hf4ns_T=y@?Oh`&50ekt_`1rvuMO7%?c%D+t-|Hk6HG=oz&fgV=eE!%y29Q@& zZjeCFQ~REL+uR|nz{&6-XMELW8|0-_;Q=sgAK`r^)Tny8IVJAiV#9LUZZ(p8383d# zIR@Sp^5%F`50?tN}zaj*-81KmlaU%ig zt-%?$PA<#J4(VEERLvHwp{Py!t>6%ABXM|fs-Fv@jCkwg^ z50Gu%_&5FWmRQN~+4LEza}l}pjk*k$5zlr#d3>M#UV_xKaU)a2&%4_+0R!yFjb`?t z;o+jk6(!Brk$QnkXJ@WvW@hib*bWvOlH@W`pAu0r)n-mhvb}z-p-NT6ijR+P2cV^% z;o)uoPGaNX(KJ}v00J8w9o>woIY!3Cg`3B5X#jB9&;Be1++H~mkdY1M8~}SZeK9Ae z7=Pw12qJ5?o<=Y}jwd?^d?rO2GZ!AE<+!>wxt#OdzoXo|r62FhMX!hj6z{uxX;669 z>sx)hm6CFa4+X5=sL%m1E3(2`kVl+y96HSvYBRGQw{oALox5_?3)j3TFm(xF*rdso z=Z4r^Lg_B9Wp`BR!o5ZGmz-9qkF*vlm+)6^`H0en<^|ZGrhDzz9NK&^(aq z=c3G&T05gdB_H+IP+9r+^~Hhh)H37qc{I3=w{Uow)N>X9Uj>W=DRA*V%vX_{az; zHr3J5LBUmT$Omuu$YdU|^4hV=lp2opY^P+LG+ zO5=Bl7U^2w%%cw&#KcWRAD?Br@*pWW43`~G>1 zx!vF>il$fDUXC$4)Y`(aPzVu{7bP3|!K3R!tg=NYgt5evF_iLqX4m*DgWDl#+XUs< z@F+%JDcjzgdyOUQrsB+$yJI`O`KTD!T8-7{%Zhsu6{tGsq>Sa?f?fB16*1`s842lq z6z@tMCqcs5D%>OoE8_OuNT}bDNkx zi{T#~*bcz2hVH|NQc_Z92lHA4H<&nTszS=t4Q{i;?k97s`-Qd94>fx%bZnxZ=#vP_ zT8@O;G1F~ddl_rYx`y7_OJF-J)%7bFHQt-yskTj&V-q*7<#=E7rS1#G&Cx*@8-!gO z7iqE7Y7TE}h9*4zekp`%T#ljn`M8UFU$rA2f5Nd=ny`FLP4>)li&D))ZW>N%*e>7pK$=ZTT@~0Gb1Pzs$Kh@$}_?mqOGm{ zrciG_>>23{kUksM>kr?bb9Xd(=1@%2o06Bj&X4^~%}Faxmwnx;j~F{tv)DFgs*rrr zF7wn-wS(ZW*g_*|PC-$7(!jy8ghe#En)H@@iM!nAC3l}5k6P9*XpBL9AN`kR#_6PA z&7KP7)#?|qZ2mi&l%dJjCC7%<4YFJA`-O>~mpirLLxYbu2$LuFOr#4P^Y-A@jOoF_ zfyJG{pVB!QAvFo5WR5_&20%X))+Waamd%V)LVmJQQ;W|XW!DRQO-=28@#4h{aK2PD zH7&|d`Dke+c-HjTh}tF{w}#ReGJe!YLVx{Y($vtPEfD#f9M9NXTrCz5(=h9I7&Yx+ z?4|OUjz#oS()8Ezbo?X*N%cE79V)i!lY-IL{M2~VxR1?p%5vN-Z(@?sc@#LScC3oB zT{KUVaRsUpV$3eREEhT5VbzE9zu3*)1J;k+({17>y6zn=%4h9*(w8wp@tHMC1w9Vm z*J;_=v9z_d)mKJQ{APa=mPlGh%xzH`7l*~7UyG$x0y%I#ox$r!1YCzY6MoIbv(?@1 z{xHC|UcX=gwQR`52`i>knJxK;=#Y6=lB^ctwkdqxUR`yCYm?^%j+>V#zVglp z_ap4;?%`iRKy1gtI>J0MN%Pz?r&^{qwx2qHJ~Y+vX0U-zWqjZ)!aDNIr8ObqKK4b) zV%`v`gq25*NqYSXfFOX?y&T$WBk+z0TtXWbQ1a4pdZB9$;VtS|h7}z`QJVp}t=@aFTgoO0n=kicMbSo+{Qd?jD z#SO@97HAcJ9(Iq8V*6cxWR`avP=jJp;S&(hMH6ub?KMpm8}wh^6qYKxo9qJN=CeVj zw0v(`rLq=RTR^Sn0l_A|I;^)OYDOuC(2VLALaOe7_xo3>+5P(vvxIXmt?! zX4;ba5{MP$Kp?=w$9L=XDwJbMDeF*|mPP}co4=a}86bd+?Cl2+{6Q2AW1Ild#bs?} z(H^56Fa{cY|CaAhQARMPh|{Y*A9Fn?SQ;#7F(^Enmphb_GH9W5TUA4sQ2L)zPMDS`96Xg!0RJFFmzutkZJDRv12wy0W;&A6TNeacB`o7{~Vx=Iq zLPAA-uvioZ+|RLw++!O^oJyC>3Ir~Vq7P{XtgnIPQ3NBkbMpZK@hWy&oi7lfHekaW?52 z8p6E0xg?BUeEt@T0~BP9+VXR9eohgO$1gMa1u~D!^1~`PV2|>Ebn!ql`hk`KYrIO&q}-78{v02 zxM`R-9i{N;hsdWD!eDG>zksvwzEF2gETaigz~j`dtb(i0axmib;FU~I^B)Y!6bg_J zu5D(RFx{TS2KcU6!u4kN79hAg*dNW5139i6 z;oo8CTCK2o1BF-&<8aAT+dunJd$UN}pFVacT#bUuO!MVUE$5pTHuR({K6NGgq3ZX& zbndYyoE6YWD77V<42gIy7E<>4_SBAk+{>&?ZGE!B6In&GJimnN?4c>pLHbd;rPuzi zGU~bbuV2Hqx0kzgza}P@ekJffNjJgxWh3|Y?IYM1<+p6-IUNq`Ab*_!S;SMG%(nJ+ zPV+uIID(V^>zA0RX;!IeH|8pwPj_~42?bU>TH{pOg2Al-t}4O`3`YG?!Sy8yImm_W ztc;BV0Y$KVRyb2_Puk#hnrpX79KndYGJf!drQ{5eSd50SWU-A@kD24HTdlDAJS_Wp z5^MMFOrD;S(_TYGI=)CsvJsB^=EfQ-La?c?{CKC*nkN)Zl<*)V2D@Woz%IreQEkmG zwoKQ;O9+@Y11UNc7Q)Be8P-1y^!012Sd%=VfHcw6)9cTnFo`#UuS_R>rS76&zt=7` zdi1NHKt)%V$rl(aZ56{J%(o)sXmN(B9{`BiD=EFm>!5%0vZ{cBoij)7WaFj-FG&P2 z?+gkV`Yu%YxEyGtYqg|^-I_B*v{%}0x*B>?f zx+1AXgmR~;Dkh1EnK|Ls#r72mAZL30$?I!tjn;cU2T^sZTUjyG;Po}~xPcw;dD;@O z_=Jw09yK$wT!BA;(P9VF_!H*&=4NJ${;c=*3=W1$W?_TqEEXUjr1sIS*lKXu!(@@y z3xjcG*-7mm*yg_`vt#G#GSntwr5?H4l^r52@Rd%Fjn0EH5-{^!ajPu4}UXDOq@L$VQ;2T)bm-@Y~QzrWGKe@ zKzYtUrsy({xM3s$0-3nXySM6QhE6AaV$)Reo=$+qVLPxeH#eRwHeA9u8<6DbFj`5;$XEp!KTxgZbbyL6cg`!A;As1Do5!~%`9 z^g?RqU%oNN5G5qN5}2oyw|9(FP|)#XPW`(`wb0m}mk}?9bsQimMa?rZXvSkLr1rBr z)k^lvASY(OXmTuFe@>4X`=DgZMv;ii!ln<`c;@HEvg`r+?xEG)jJM`xdp}u!B0qp9 zYN{6(7wal-04l%*IaEnWN%`4BdC z3AR*4C}V%**)6y8GFyNMAY344{$1o)pji~3O$G^4Pg?6IgQNGtrvuyz9TR{8WNfhH z>6G6oN5h=@))c3ThUo2H(VfrmyfKA12p{+7=LhHb)mbD8D(VRZj>NcM zb*?dky8cAd4oj=Ge{n=Hsvn%wy?4gOR%q!nv zy0KELoArfQ>d~THx^}0v8qWv|YiQrPCUR88w#1R-$A8IBzS4Ol7!Ycxdo6l~(W=%P zNJpRDM_SAQK^#|C`^o#Nrs8_jJ!=-+NZuWHEJy-hb@TIq$~@uo#-(^tF8rzqkgJB- zJ`*8NSpb+SQAuI6Ndn0+jvAmJM`S4huPSrn+|h;zMkldq1?UDfcGrjqdNmG{a?)-b zW<6NNwg!e;Eg*mD=epyI%@#vgzV-y;(W7Upw6>XEY@k0jxP+5sD#RI(h?1H|gZ|*7 zoE(=UC5E;nuTvSTVb}X=E8Dxgw%WDZwnLD(>K>b)9~0^Ukmqn})ftITSLXm$ z-u@~-@?KVv`zup6KMkfYL?XVmQ!ZwA*XPkmcLKOifm_TXYItpe&E9ktuf7+^si@=7 zIkANJ0dT}!;uCvJ`{bQhCotrkc*6`HKZ85Z2u45s+fU>hT3^E~V}x+jP>iOb7%U~( zd-xmAE?s}`Jr<9<1n$z*cV((pBqViIpfR*%vvGNgLXB-2Uo&-O7lh+y!cM~kHQ%)% z*QwB)Fv>S#9)4=%x_%aQj-PJr++QZp>!Ib$Uj=+2b_M58e`GU8T0x);Zz<5*CCtSY z|K;mf=beI?pFbLTlBlSt($OE>_NHX~4S`+&O6R2i2-DD!{v-m~9jN0(;*U<4FhL(- z#}4M%b`j_Vv7f1UhB;X=qzS!F%tRJr(;m9bmDwo^eWPf`%i>3e9@QoFM4VcloqFC! zl%OI=O<`d!_Cjkl*m6xlSDLK2zQZ%;V=V8eC$#)p(|zOGUS|FU5ol}hDmL1m$%pyY z-ZOis`cwoE{SbbDc~CS@d*Nj-`VFS`$P~o{r>%?i(5p2?L>7h z4csyl78}3J`|6c?ygLw7XW^Xu3?0b5&t5ln^^T3<0M|I)-(zci{k=g{edIA%-kb%k zC#2+0yvq=eqdGy?X#@g?5;N9=8ijiozIld|a5KaGJBlsFFBZ;#Ngewo!GotK{u@*8UwFnA*0$jZoTsdE3!oe06i< zLV60IM#N?Ro1(W!lYqL?DS$c^|wU+8K7 z$k~a>si|`CSCS$MA(N^z1-7`Pr0&MXMxx=Dc_s$8p1^RSPnr8&;I4}bcFma@$IR`j zo;_D~CMNW2vzT?2kfvbJ2%z6R;H`uYh4^`=t=*rsmkER_!*n-mJD!flSrM__<%=5o z1&!nSM^1-hucOm5WBpyKdoE%w))=ANhv!#??}7M(u#!W2V{V=~OZ}2FTWbrN01|cI zIMU{+RRNC(rCe_hEo$mExw9lg4K>o#vz$s~A-CQ?`J-0K>K#Y?H-M*J1)HTsg~j07 zA4F?#(c7)Ig%W|b00>4vPxh|b+O;9#ox5D}d0x_TFOVweQ9R{73#^1x(4+t!Ivn1) zI6LELyh@x#G5Dcu1YniegMUnZKu{2l>KPaeg5crZ@FJiX%Yn{$EYLI}ag6vzMFl%5 zDhf752pxAuML|IaT6MJ6A4~-8Chw|kThA^zd_uxKUq2roL0&-(P0cm1z(Q?J$6{GBj|FWFKpt-lN(w$>x>u(NM98)pc(F;&}rUha3mQHx#K z54E-1k{Op1F#dtXK{tevnoIWtH^Dcwn1eu2mSkp`_v=`8i2E$eJ@FNX%M-jO?`x(N z`P3n1HAk{qQ@=r6wys>IxF;ve+aijI7MvGVq<9x6KwIBbg@fI^mM{Z~gNe3B#oO+d3*tlxLP>_83opchyiGzXO-Ut9NnF80j769Lm1Lj9Y5d0)kv$C>Ur$&I= zcd{164sN?c$n+)B?Pw`oLQ;}TR8%xqok>Ss9S@Xa28xGc61&>>(?VoZ2P{BQ$HIQ8 zc|U>GE0Su@lQpR!sQrBPKhmlybmnYl+-Wt)_=2t8%nwHEot~B!_w{R+`Ea|Qe1zLM zOvl%&Cyq*Begx~u%enda&*|wgAjmB*(yJ*C7aE3N)3czGP#Y9S;UcwC&Qm#``XGTA z_4fo%c5fhCat8KC1TDcI1<~z4`l9wH@xz^BRbKETbf9`1BD#Leipsp*Uky8|x)OvM z+`hckkIREqsnUKQx#HW?kiX9FnB{;4EqsrX@&Ww8%IcyG0;s&hJMP*4A(R{F)S<5ZDFF;1n zzmEU>xs~<_8UhU+9Xg2Z;bKlIYiF9`2}^U~aPR5Cd{{60Z=&{J8U+H8^m2al3Cwd4IKA z(BxJYozhe#%T7>d8Go32JHop;AV#&~$d7#${%M*5Bszmv7jYdfYM0uXppeR>H=Y(H zQVkoMDCGR? zG#a-1Vd0j%jTd=xK%M6}xNY*v+U956tQxCpm6NCKB=)iFk$pVrQ>_L?gZf=IL(^xh z(}Qi~=x^U-W{~R+-b6}ToA%(G$v<~Awf-@E4)Z|;8;Z=<>wsF>Yc)!PwH$$DJ|~l; zZ>c^P+etIjjEud7nQqQbC*wTOju=wj0f%T4Q&S1Uc7UN~idD@07L@Q-PhTQyJ1XQfPbZXneWm5^J~hUlmLH^siv6BAd*jPRC$_x{qdZS_QIn!V+s@l* zjDw7(^jnxFTp8KJaLY z?B1Yw0gcY$Zy|1~bdXkKVt6DEy^rx*a>*U15_u5+RtwmTtNi);T%*^ivtOh8IHn-!feL)fX z=4^-hngjwvLI6d5(Qhv#zy^!sDVj;{AyDN6lk8$P%}^(%f}5NLb+QirlHap0&~2@g zmMtnB^O-f3WU$(rUJQy!K~j#!Xa$c zr8Sz7*N)dl)~e02_6f>LJ4?5;^z;~j4LRgGRbNJIR?C&=Y_Lq9Q7`~{sW>{ zR&hX3w&yXW$-7ns@j*FZylMm^gv}p5-gu2lN9#K_DkZDq7uar=q^vXLHoPb zw64Il9C8{+6yD0Fx*?Owo+qRAw5wPtsiw@x5b!E~PM=vkc_nEoCrBzNYUrFQoigEj zxKJks))UxYx_RYoTwY`Z3<4Icw6wGt5R49(80hKf7y~R-w-xv}X_#6N9hhsl1LPgFL_kW_k50F|}0CeLuN%KLwx$x3|6y2OhQ8v@|qmVK{0) zmC$bVETgfvenmnB)~cPnBv`P$M zgQVL%^0H?G;0tI(BjI)7K~awvW=+!^5Mav-62FQ646zxwIr` zU~@o8teJ70h z74cD)meJNM3{zd-sOD&i8^b3*-3}|?eOq6Ds=Cyc_ek2^@X;H|kR+KB8E9u>PAFmo zm2Y_@xuCoJ$EYZ789|`o+0B$b0yfY1JP()<*j>@Y)TzT3wzg4#T*QH^F}@25oRD9^ zz=sd?sOGibS!#l}dN=_nI|f3uHxrP+x4@K%c^i!K1f{y@`>0jzlIh^L*C?rbL6j@N zzxX;4)*k+x5WW~jRlS+LeL8UB!dlKSF)!GGZ>SWB-zdm9G^a7E!{nFCsV0@m`w-4F z$Uy5I=Tv^>cInLJHBa`HZ{D<0bUASZ@IY;)#_jT5&Bn&Y+MrZcF++%PeSKZ};;A7B zV&mfDP0ogsK7S4b#eR)IctS*wPES`DApOH_IaC@MiO!a(HqCnum``5q=&r1ePSEZu z24E%_e%EJz-R|L%&Lj_*LMwl~Iy1~gVA~+>VL}{6*av>Ub4;zFtREZSrlbN z^v5p0?thKmaIlS%9>tEKZ3on5 zfbZV61+M3P|C51MR+E(s=7feKhdrk#9w)lk9u<#cx_HL|YR*BEIr`&^c}JH;@sGkO z0-nc|whj(oB@DCMu!{W)H1Bu>lBRp{*m-+FP7eq&{|`k)MJkztc--bjOy8pEb6M~Z zA;fq=P~x{ib+PSK5lXo7WW1=hNItF^on__FK|4Dxjyb&ox0h~Db%Z+Qgsl=N+h^86 z#UeiF!V(E$(cZ2MOiWDA`@dUdj>{r=1O(`&UD2!ew@V-s;{g4Sg8d{(Nl6<|x=5{T zY`pWO6aSdW+R2(jQsw-V5J0g8J*eTCF=D(2*H#o*<5vtHu9L6`2)f)b!$L!;C@J4e z2z%CDo!}v+e+Cy>{-jOuWv!^guk7rQ$?56Tv}fbv>k3lLeJa24*H*Hw zq)IjLQqnpO7iN7S_N%!reUjHOub093aZ6L}lHKh~aiPl7fF+OX#%za%DOn5}q=wWp zk}m@DSqVk7Kq4j`paXX=6$6M@Dd=AZ6mR0rFxea&P=MVAK;HM~yBfv-Zx^$%`So_I z6O>m|1EvB6l&mZquI}$gg94jpybcRkOMaJ&QvM>0O1T{lyP&CnSwo%gYA9g{NOgjz z!}PF_z%>5;{W}7v*cH>&oulsF1~t0_$D`Hph)`iYJp#Dl1W5~S6y6djo{o3 zD`?qwPz3D=yTG=~w)+h@Dr_)#$m9#S z7)iZgV0pIz#ty7QpnL}50}!I$ml=a(YO2I=cu|uqg_9QmL2yEEf37NOzKMl}B@W>G zAX5eD zVEkGjR4i~}Lj5VZ5D~a~-vQgskHYDDaq%ZsopL0w^tOTP`CW{Xudfg&u!sY>6=?oA zc7;W!Ze)Bs&cx&-(665X?x7RR+#jmYm9@1X07JZ!lFITpS~?RpGXnDP z3>Z;m2;>tG{VJ=fRzVsFKVCutZd!UeHUU8xr~y@Z!jIOb&i{S|p`ftvorVTJn||$w zsVU8cMlW1Ik(Acdgy-bY0z%}wX2B25f>q!jfL2x=9UVOuej{SYrA4(7O*PE}lqO6) ziMP^>E9C-Bag|2zP<(K&H0xG;z5T+=?bWhx^LzojJn5dkgkj+ytU ztK7>f|3UPx7r52=%XxEd*f@s9cD;*pg11zJKRVQ>Hx7mAtbHz~2(I4S@%gG(yE4I> zzE(&z zO?W#QAX z;`Iru|2>Qs%*2s#_eiS4i|P~lDZH&P{1L(EB6VO@biV8@FuyV!EcWl?h#h1%C4c)$ zERO;jH~;4x;vt+JJ5TIpGjeK&RvtS1_XL9Bz)VE{F}|$S|5NS%4hBd`P$;zKyYKzq zH4@$~>~E|8?`Z({e7b~P5^wSxY44D}1mW2dSd&woEJXHtqT-1MU7Kj#G;#$?vJG2%1+|Gv?GCe;70U*%&T Z9(BoFEurojIv{`_841OA#bQQ5{|7}yrxpMJ literal 0 HcmV?d00001