From c0ccc6a8ff08ca3d5373b54165527beedfb6129b Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 18 Oct 2012 10:22:50 +0200
Subject: [PATCH] OO-386: remove the async executor of the repository manager
 and replace it with a evict from cache, select for update, merge process

---
 .../coursecreation/CourseCreationHelper.java  |  17 +-
 .../java/org/olat/catalog/CatalogManager.java |   9 +-
 .../core/id/context/HistoryPointImpl.java     |   8 +-
 .../course/run/navigation/NodeClickedRef.java |   4 +-
 .../org/olat/repository/RepositoryEntry.java  |   8 +-
 .../olat/repository/RepositoryManager.java    | 191 ++++++++++---
 .../repository/_spring/repositoryContext.xml  |   9 +-
 .../async/AbstractBackgroundTask.java         | 143 ----------
 .../olat/repository/async/BackgroundTask.java |  37 ---
 .../async/BackgroundTaskQueueManager.java     |  90 ------
 ...ncrementDownloadCounterBackgroundTask.java |  70 -----
 .../IncrementLaunchCounterBackgroundTask.java |  68 -----
 .../async/SetAccessBackgroundTask.java        |  66 -----
 .../SetDescriptionNameBackgroundTask.java     |  65 -----
 .../async/SetLastUsageBackgroundTask.java     |  67 -----
 .../async/SetPropertiesBackgroundTask.java    |  71 -----
 .../repository/async/TaskExecutorThread.java  |  99 -------
 .../async/doc-files/BackgroundJobDesign.png   | Bin 25366 -> 0 bytes
 .../async/doc-files/BackgroundJobDesign.vsd   | Bin 154624 -> 0 bytes
 .../org/olat/repository/async/package.html    |  17 --
 .../controllers/RepositoryAddController.java  |  13 +-
 .../controllers/RepositoryCopyController.java |  11 +-
 .../RepositoryDetailsController.java          |  13 +-
 .../delete/ReadyToDeleteController.java       |   2 +-
 .../delete/SelectionController.java           |   2 +-
 .../repository/delete/StatusController.java   |   2 +-
 .../service/RepositoryDeletionManager.java    |   4 +-
 .../repository/RepositoryEntryResource.java   |  12 +-
 .../repository/course/CoursesWebService.java  |   2 +-
 .../commons/coordinate/CoordinatorTest.java   |  14 +-
 .../RepositoryManagerConcurrentTest.java      | 270 ++++++------------
 .../accesscontrol/ACFrontendManagerTest.java  |   4 +-
 .../java/org/olat/test/JunitTestHelper.java   |   4 +-
 33 files changed, 296 insertions(+), 1096 deletions(-)
 delete mode 100644 src/main/java/org/olat/repository/async/AbstractBackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/BackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/BackgroundTaskQueueManager.java
 delete mode 100644 src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java
 delete mode 100644 src/main/java/org/olat/repository/async/TaskExecutorThread.java
 delete mode 100644 src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.png
 delete mode 100644 src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.vsd
 delete mode 100644 src/main/java/org/olat/repository/async/package.html

diff --git a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java
index e39abc195b6..fa845ab7519 100644
--- a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java
+++ b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java
@@ -45,6 +45,7 @@ import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.UserConstants;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.Util;
 import org.olat.core.util.vfs.VFSLeaf;
@@ -85,6 +86,8 @@ import de.tuchemnitz.wizard.workflows.coursecreation.model.CourseCreationConfigu
  * @author Sebastian Fritzsche (seb.fritzsche@googlemail.com)
  */
 public class CourseCreationHelper {
+	
+	private static final OLog log = Tracing.createLoggerFor(CourseCreationHelper.class);
 
 	private CourseCreationConfiguration courseConfig;
 	private final Translator translator;
@@ -270,16 +273,18 @@ public class CourseCreationHelper {
 		// 3.1. setup rights
 		// --------------------------
 		if (courseConfig.getPublish()) {
+			
+			int access = RepositoryEntry.ACC_OWNERS;
 			if (courseConfig.getAclType().equals(CourseCreationConfiguration.ACL_GUEST)) {
 				// set "BARG" as rule
-				addedEntry.setAccess(RepositoryEntry.ACC_USERS_GUESTS);
+				access = RepositoryEntry.ACC_USERS_GUESTS;
 			} else if (courseConfig.getAclType().equals(CourseCreationConfiguration.ACL_OLAT)) {
 				// set "BAR" as rule
-				addedEntry.setAccess(RepositoryEntry.ACC_USERS);
+				access = RepositoryEntry.ACC_USERS;
 			} else if (courseConfig.getAclType().equals(CourseCreationConfiguration.ACL_UNI)) {
 				// set "BAR" rule + expert rule on university
 				// hasAttribute("institution","[Hochschule]")
-				addedEntry.setAccess(RepositoryEntry.ACC_USERS);
+				access = RepositoryEntry.ACC_USERS;
 				final CourseNode cnRoot = course.getEditorTreeModel().getCourseEditorNodeById(course.getEditorTreeModel().getRootNode().getIdent())
 				.getCourseNode();
 				String shibInstitution = ureq.getIdentity().getUser().getProperty(UserConstants.INSTITUTIONALNAME, ureq.getLocale());
@@ -292,9 +297,9 @@ public class CourseCreationHelper {
 							+ "\")"));
 				}
 			} else {
-				Tracing.createLoggerFor(this.getClass()).error("No valid ACL Rule: " + courseConfig.getAclType());
+				log.error("No valid ACL Rule: " + courseConfig.getAclType());
 			}
-			RepositoryManager.getInstance().updateRepositoryEntry(addedEntry);
+			addedEntry = RepositoryManager.getInstance().setAccess(addedEntry, access, false);
 		}
 
 		CourseFactory.openCourseEditSession(course.getResourceableId());
@@ -325,7 +330,7 @@ public class CourseCreationHelper {
 		boolean isValid = sds.length == 0;
 		if (!isValid) {
 			// no error and no warnings -> return immediate
-			Tracing.createLoggerFor(this.getClass()).error("Course Publishing failed", new AssertionError());
+			log.error("Course Publishing failed", new AssertionError());
 		}
 		pp.applyPublishSet(ureq.getIdentity(), ureq.getLocale());
 		CourseFactory.closeCourseEditSession(course.getResourceableId(), true);
diff --git a/src/main/java/org/olat/catalog/CatalogManager.java b/src/main/java/org/olat/catalog/CatalogManager.java
index 2da6378d9ce..df5589ef049 100644
--- a/src/main/java/org/olat/catalog/CatalogManager.java
+++ b/src/main/java/org/olat/catalog/CatalogManager.java
@@ -584,13 +584,10 @@ public class CatalogManager extends BasicManager implements UserDataDeletable, I
 
 	/**
 	 * 
-	 * @param repositoryEntry
+	 * @param re
 	 */
-	public void updateReferencedRepositoryEntry(RepositoryEntry repositoryEntry) {
-		RepositoryEntry reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(repositoryEntry.getKey());
-		reloaded.setDisplayname(repositoryEntry.getDisplayname());
-		reloaded.setDescription(repositoryEntry.getDescription());
-		RepositoryManager.getInstance().updateRepositoryEntry(reloaded);
+	public void updateReferencedRepositoryEntry(RepositoryEntry re) {
+		RepositoryEntry reloaded = RepositoryManager.getInstance().setDescriptionAndName(re, re.getDisplayname(), re.getDescription());
 		// inform anybody interested about this change
     MultiUserEvent modifiedEvent = new EntryChangedEvent(reloaded, EntryChangedEvent.MODIFIED_DESCRIPTION);
     CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(modifiedEvent, reloaded);
diff --git a/src/main/java/org/olat/core/id/context/HistoryPointImpl.java b/src/main/java/org/olat/core/id/context/HistoryPointImpl.java
index 2f44a8b44b4..02c39f9459d 100644
--- a/src/main/java/org/olat/core/id/context/HistoryPointImpl.java
+++ b/src/main/java/org/olat/core/id/context/HistoryPointImpl.java
@@ -21,6 +21,7 @@
 package org.olat.core.id.context;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -35,12 +36,15 @@ public class HistoryPointImpl implements HistoryPoint {
 
 	private final String uuid;
 	private final String businessPath;
-	private final List<ContextEntry> entries = new ArrayList<ContextEntry>();
+	private final List<ContextEntry> entries;
 	
 	public HistoryPointImpl(String uuid, String businessPath, List<ContextEntry> entries) {
 		this.uuid = uuid;
 		this.businessPath = businessPath;
-		if(entries != null) {
+		if(entries == null) {
+			this.entries = Collections.emptyList();
+		} else {
+			this.entries = new ArrayList<ContextEntry>(entries.size());
 			for(ContextEntry entry:entries) {
 				this.entries.add(entry.clone());
 			}
diff --git a/src/main/java/org/olat/course/run/navigation/NodeClickedRef.java b/src/main/java/org/olat/course/run/navigation/NodeClickedRef.java
index 5d87c46542e..455fc380393 100644
--- a/src/main/java/org/olat/course/run/navigation/NodeClickedRef.java
+++ b/src/main/java/org/olat/course/run/navigation/NodeClickedRef.java
@@ -146,7 +146,9 @@ public class NodeClickedRef {
 	 */
 	public Controller getRunController() {
 		if(calledCourseNode == null || nodeConstructionResult == null) return null;
-		RepositoryManager.setLastUsageNowFor(calledCourseNode.getReferencedRepositoryEntry());
+		if(calledCourseNode.needsReferenceToARepositoryEntry()) {
+			RepositoryManager.getInstance().setLastUsageNowFor(calledCourseNode.getReferencedRepositoryEntry());
+		}
 		return nodeConstructionResult.getRunController();
 	}
 
diff --git a/src/main/java/org/olat/repository/RepositoryEntry.java b/src/main/java/org/olat/repository/RepositoryEntry.java
index a3a24f5afb4..e06f793f440 100644
--- a/src/main/java/org/olat/repository/RepositoryEntry.java
+++ b/src/main/java/org/olat/repository/RepositoryEntry.java
@@ -376,12 +376,16 @@ public class RepositoryEntry extends PersistentObject implements ModifiedInfo, O
 	/**
 	 * Increment launch counter.
 	 */
-	public void incrementLaunchCounter() { launchCounter++; }
+	public void incrementLaunchCounter() {
+		launchCounter++;
+	}
 	
 	/**
 	 * Increment download counter.
 	 */
-	public void incrementDownloadCounter() { downloadCounter++; }
+	public void incrementDownloadCounter() { 
+		downloadCounter++;
+	}
 	
 	/**
 	 * @return Returns the displayname.
diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java
index 48471aaed95..027cb7f1c6c 100644
--- a/src/main/java/org/olat/repository/RepositoryManager.java
+++ b/src/main/java/org/olat/repository/RepositoryManager.java
@@ -32,6 +32,8 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
+import javax.persistence.CacheRetrieveMode;
+import javax.persistence.LockModeType;
 import javax.persistence.TypedQuery;
 
 import org.hibernate.type.StandardBasicTypes;
@@ -44,6 +46,8 @@ import org.olat.basesecurity.SecurityGroup;
 import org.olat.basesecurity.SecurityGroupMembershipImpl;
 import org.olat.bookmark.BookmarkManager;
 import org.olat.catalog.CatalogManager;
+import org.olat.commons.lifecycle.LifeCycleManager;
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.modules.bc.FolderConfig;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.persistence.DBFactory;
@@ -55,6 +59,7 @@ import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.Roles;
 import org.olat.core.logging.AssertException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.logging.activity.ActionType;
 import org.olat.core.logging.activity.OlatResourceableType;
@@ -72,13 +77,7 @@ import org.olat.core.util.vfs.VFSManager;
 import org.olat.course.assessment.manager.UserCourseInformationsManager;
 import org.olat.group.GroupLoggingAction;
 import org.olat.group.model.BGResourceRelation;
-import org.olat.repository.async.BackgroundTaskQueueManager;
-import org.olat.repository.async.IncrementDownloadCounterBackgroundTask;
-import org.olat.repository.async.IncrementLaunchCounterBackgroundTask;
-import org.olat.repository.async.SetAccessBackgroundTask;
-import org.olat.repository.async.SetDescriptionNameBackgroundTask;
-import org.olat.repository.async.SetLastUsageBackgroundTask;
-import org.olat.repository.async.SetPropertiesBackgroundTask;
+import org.olat.repository.delete.service.RepositoryDeletionManager;
 import org.olat.repository.handlers.RepositoryHandler;
 import org.olat.repository.handlers.RepositoryHandlerFactory;
 import org.olat.repository.model.RepositoryEntryMember;
@@ -91,6 +90,7 @@ import org.olat.resource.OLATResource;
 import org.olat.resource.OLATResourceImpl;
 import org.olat.resource.OLATResourceManager;
 import org.olat.util.logging.activity.LoggingResourceable;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * Initial Date:  Mar 31, 2004
@@ -102,24 +102,24 @@ import org.olat.util.logging.activity.LoggingResourceable;
  */
 public class RepositoryManager extends BasicManager {
 	
+	private static final OLog log = Tracing.createLoggerFor(RepositoryManager.class);
+	
 	private final int PICTUREWIDTH = 570;
 
-	private static RepositoryManager INSTANCE;
 	private BaseSecurity securityManager;
 	private ImageHelper imageHelper;
-	private static BackgroundTaskQueueManager taskQueueManager;
 	private UserCourseInformationsManager userCourseInformationsManager;
 	private DB dbInstance;
 
+	
 	/**
-	 * [used by spring]
+	 * [used by Spring]
+	 * @param securityManager
 	 */
-	private RepositoryManager(BaseSecurity securityManager, BackgroundTaskQueueManager taskQueueManager) {
+	public void setSecurityManager(BaseSecurity securityManager) {
 		this.securityManager = securityManager;
-		RepositoryManager.taskQueueManager = taskQueueManager;
-		INSTANCE = this;
 	}
-	
+
 	/**
 	 * [used by Spring]
 	 * @param userCourseInformationsManager
@@ -147,7 +147,9 @@ public class RepositoryManager extends BasicManager {
 	/**
 	 * @return Singleton.
 	 */
-	public static RepositoryManager getInstance() { return INSTANCE; }
+	public static RepositoryManager getInstance() { 
+		return CoreSpringFactory.getImpl(RepositoryManager.class);
+	}
 
 	/**
 	 * @param initialAuthor
@@ -195,10 +197,10 @@ public class RepositoryManager extends BasicManager {
 	 * Update repo entry.
 	 * @param re
 	 */
-	public void updateRepositoryEntry(RepositoryEntry re) {
+	/*public void updateRepositoryEntry(RepositoryEntry re) {
 		re.setLastModified(new Date());
 		DBFactory.getInstance().updateObject(re);
-	}
+	}*/
 	
 	/**
 	 * Delete repo entry.
@@ -212,8 +214,16 @@ public class RepositoryManager extends BasicManager {
 		deleteImage(re);
 	}
 	
-	public void createTutorSecurityGroup(RepositoryEntry re) {
-		if(re.getTutorGroup() != null) return;
+	/**
+	 * 
+	 * @param re
+	 * @param update If true, update the repository immediately
+	 * @return
+	 */
+	public RepositoryEntry createTutorSecurityGroup(RepositoryEntry re, boolean update) {
+		if(re.getTutorGroup() != null) {
+			return re;
+		}
 		
 		SecurityGroup tutorGroup = securityManager.createAndPersistSecurityGroup();
 		// member of this group may modify member's membership
@@ -222,10 +232,21 @@ public class RepositoryManager extends BasicManager {
 		// members of this group are always tutors also
 		securityManager.createAndPersistPolicy(tutorGroup, Constants.PERMISSION_HASROLE, Constants.ORESOURCE_TUTOR);
 		re.setTutorGroup(tutorGroup);
+		if(update) {
+			re = DBFactory.getInstance().getCurrentEntityManager().merge(re);
+		}
+		return re;
 	}
 	
-	public void createParticipantSecurityGroup(RepositoryEntry re) {
-		if(re.getParticipantGroup() != null) return;
+	/**
+	 * 
+	 * @param re
+	 * @param update If true, update the repository immediately
+	 */
+	public RepositoryEntry createParticipantSecurityGroup(RepositoryEntry re, boolean update) {
+		if(re.getParticipantGroup() != null) {
+			return re;
+		}
 		
 		SecurityGroup participantGroup = securityManager.createAndPersistSecurityGroup();
 		// member of this group may modify member's membership
@@ -234,6 +255,10 @@ public class RepositoryManager extends BasicManager {
 		// members of this group are always participants also
 		securityManager.createAndPersistPolicy(participantGroup, Constants.PERMISSION_HASROLE, Constants.ORESOURCE_PARTICIPANT);
 		re.setParticipantGroup(participantGroup);
+		if(update) {
+			re = DBFactory.getInstance().getCurrentEntityManager().merge(re);
+		}
+		return re;
 	}
 	
 	public void createOwnerSecurityGroup(RepositoryEntry re) {
@@ -393,6 +418,7 @@ public class RepositoryManager extends BasicManager {
 	 * @param the repository entry key (not the olatresourceable key)
 	 * @return Repo entry represented by key or null if no such entry or key is null.
 	 */
+	@Transactional(readOnly=true)
 	public RepositoryEntry lookupRepositoryEntry(Long key) {
 		if (key == null) return null;
 		return lookupRepositoryEntry(key, false) ;
@@ -403,6 +429,7 @@ public class RepositoryManager extends BasicManager {
 	 * @param the repository entry key (not the olatresourceable key)
 	 * @return Repo entry represented by key or null if no such entry or key is null.
 	 */
+	@Transactional(readOnly=true)
 	public RepositoryEntry lookupRepositoryEntry(Long key, boolean strict) {
 		if (key == null) return null;
 		if(strict) {
@@ -423,7 +450,8 @@ public class RepositoryManager extends BasicManager {
 		}
 		return entries.get(0);
 	}
-	
+
+	@Transactional(readOnly=true)
 	public List<RepositoryEntry> lookupRepositoryEntries(Collection<Long> keys) {
 		if (keys == null || keys.isEmpty()) {
 			return Collections.emptyList();
@@ -451,6 +479,7 @@ public class RepositoryManager extends BasicManager {
 	 * @return the RepositorEntry or null if strict=false
 	 * @throws AssertException if the softkey could not be found (strict=true)
 	 */
+	@Transactional(readOnly=true)
 	public RepositoryEntry lookupRepositoryEntry(OLATResourceable resourceable, boolean strict) {
 		OLATResource ores = (resourceable instanceof OLATResource) ? (OLATResource)resourceable
 				: OLATResourceManager.getInstance().findResourceable(resourceable);
@@ -619,48 +648,124 @@ public class RepositoryManager extends BasicManager {
 		return false;
 	}
 
+	private RepositoryEntry loadForUpdate(RepositoryEntry re) {
+		//first remove it from caches
+		DBFactory.getInstance().getCurrentEntityManager().detach(re);
+
+		StringBuilder query = new StringBuilder();
+		query.append("select v from ").append(RepositoryEntry.class.getName()).append(" as v ")
+				 .append(" left join fetch v.olatResource as ores")
+			   .append(" left join fetch v.ownerGroup as ownerGroup")
+			   .append(" left join fetch v.participantGroup as participantGroup")
+			   .append(" left join fetch v.tutorGroup as tutorGroup")
+		     .append(" where v.key=:repoKey");
+		
+		RepositoryEntry entry = DBFactory.getInstance().getCurrentEntityManager().createQuery(query.toString(), RepositoryEntry.class)
+				.setParameter("repoKey", re.getKey())
+				.setLockMode(LockModeType.PESSIMISTIC_WRITE)
+				.getSingleResult();
+		return entry;
+	}
+	
+	private void updateLifeCycle(RepositoryEntry reloadedRe) {
+		LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
+		if (lcManager.lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION) != null) {
+			log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
+			lcManager.deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
+		}
+	}
+
 	/**
 	 * Increment the launch counter.
 	 * @param re
 	 */
-	public void incrementLaunchCounter(RepositoryEntry re) {
-		taskQueueManager.addTask(new IncrementLaunchCounterBackgroundTask(re));
+	@Transactional
+	public RepositoryEntry incrementLaunchCounter(RepositoryEntry re) {
+		RepositoryEntry reloadedRe = loadForUpdate(re);
+		if(reloadedRe == null) return null;//deleted
+
+		reloadedRe.setLaunchCounter(reloadedRe.getLaunchCounter() + 1);
+		reloadedRe.setLastUsage(new Date());
+		updateLifeCycle(reloadedRe);
+		
+		RepositoryEntry updatedRe = DBFactory.getInstance().getCurrentEntityManager().merge(reloadedRe);
+		DBFactory.getInstance().commitAndCloseSession();
+		return updatedRe;
 	}
-	
+
 	/**
 	 * Increment the download counter.
 	 * @param re
 	 */
-	public void incrementDownloadCounter(final RepositoryEntry re) {
-		taskQueueManager.addTask(new IncrementDownloadCounterBackgroundTask(re));
+	@Transactional
+	public RepositoryEntry incrementDownloadCounter( final RepositoryEntry re) {
+		RepositoryEntry reloadedRe = loadForUpdate(re);
+		if(reloadedRe == null) return null;//deleted
+
+		reloadedRe.incrementDownloadCounter();
+		reloadedRe.setLastUsage(new Date());
+		updateLifeCycle(reloadedRe);
+		RepositoryEntry updatedRe = DBFactory.getInstance().getCurrentEntityManager().merge(reloadedRe);
+		DBFactory.getInstance().commitAndCloseSession();
+		return updatedRe;
 	}
 
 	/**
 	 * Set last-usage date to to now for certain repository-entry.
 	 * @param 
 	 */
-	public static void setLastUsageNowFor(final RepositoryEntry re) {
-		if (re != null) {
-			taskQueueManager.addTask(new SetLastUsageBackgroundTask(re));
-		}
+	@Transactional
+	public RepositoryEntry setLastUsageNowFor(final RepositoryEntry re) {
+		if (re == null) return null;
+		RepositoryEntry reloadedRe = loadForUpdate(re);
+		reloadedRe.setLastUsage(new Date());
+		RepositoryEntry updatedRe = DBFactory.getInstance().getCurrentEntityManager().merge(reloadedRe);
+		DBFactory.getInstance().commitAndCloseSession();
+		return updatedRe;
 	}
 
-	public void setAccess(final RepositoryEntry re, int access, boolean membersOnly ) {
-		SetAccessBackgroundTask task = new SetAccessBackgroundTask(re, access, membersOnly);
-		taskQueueManager.addTask(task);
-		task.waitForDone();
+	@Transactional
+	public RepositoryEntry setAccess(final RepositoryEntry re, int access, boolean membersOnly ) {
+		RepositoryEntry reloadedRe = loadForUpdate(re);
+		reloadedRe.setAccess(access);
+		reloadedRe.setMembersOnly(membersOnly);//fxdiff VCRP-1,2: access control of resources
+		
+		RepositoryEntry updatedRe = DBFactory.getInstance().getCurrentEntityManager().merge(reloadedRe);
+		DBFactory.getInstance().commitAndCloseSession();
+		return updatedRe;
 	}
 
-	public void setDescriptionAndName(final RepositoryEntry re, String displayName, String description ) {
-		SetDescriptionNameBackgroundTask task = new SetDescriptionNameBackgroundTask(re, displayName, description);
-		taskQueueManager.addTask(task);
-		task.waitForDone();
+	/**
+	 * 
+	 * @param re
+	 * @param displayName If null, nothing happen
+	 * @param description If null, nothing happen
+	 * @return
+	 */
+	@Transactional
+	public RepositoryEntry setDescriptionAndName(final RepositoryEntry re, String displayName, String description ) {
+		RepositoryEntry reloadedRe = loadForUpdate(re);
+		if(StringHelper.containsNonWhitespace(displayName)) {
+			reloadedRe.setDisplayname(displayName);
+		}
+		if(StringHelper.containsNonWhitespace(description)) {
+			reloadedRe.setDescription(description);
+		}
+		RepositoryEntry updatedRe = DBFactory.getInstance().getCurrentEntityManager().merge(reloadedRe);
+		DBFactory.getInstance().commitAndCloseSession();
+		return updatedRe;
 	}
 
-	public void setProperties(final RepositoryEntry re, boolean canCopy, boolean canReference, boolean canLaunch, boolean canDownload ) {
-		SetPropertiesBackgroundTask task = new SetPropertiesBackgroundTask(re, canCopy, canReference, canLaunch, canDownload);
-		taskQueueManager.addTask(task);
-		task.waitForDone();
+	@Transactional
+	public RepositoryEntry setProperties(final RepositoryEntry re, boolean canCopy, boolean canReference, boolean canLaunch, boolean canDownload ) {
+		RepositoryEntry reloadedRe = loadForUpdate(re);
+		reloadedRe.setCanCopy(canCopy);
+		reloadedRe.setCanReference(canReference);
+		reloadedRe.setCanLaunch(canLaunch);
+		reloadedRe.setCanDownload(canDownload);
+		RepositoryEntry updatedRe = DBFactory.getInstance().getCurrentEntityManager().merge(reloadedRe);
+		DBFactory.getInstance().commitAndCloseSession();
+		return updatedRe;
 	}
 	
 	
diff --git a/src/main/java/org/olat/repository/_spring/repositoryContext.xml b/src/main/java/org/olat/repository/_spring/repositoryContext.xml
index 360ec651ddd..0d3c773f010 100644
--- a/src/main/java/org/olat/repository/_spring/repositoryContext.xml
+++ b/src/main/java/org/olat/repository/_spring/repositoryContext.xml
@@ -22,17 +22,10 @@
 
 		
 <bean id="repositoryManager" class="org.olat.repository.RepositoryManager">
-	<constructor-arg index="0" ref="baseSecurityManager" />
-	<constructor-arg index="1" ref="org.olat.core.commons.persistence.async.BackgroundTaskQueueManager" />
 	<property name="userCourseInformationsManager" ref="userCourseInformationsManager"/>
 	<property name="imageHelper" ref="imageHelper"/>
 	<property name="dbInstance" ref="database"/>
+	<property name="securityManager" ref="baseSecurityManager" />
 </bean>
 
-<!-- BackgroundTaskQueueManager for increment launch-,download-counter and set LastUsage in background thread -->
-<bean id="org.olat.core.commons.persistence.async.BackgroundTaskQueueManager" class="org.olat.repository.async.BackgroundTaskQueueManager" destroy-method="destroy">
-	<!-- Number of retries when a task failed e.g. incrementLaunchCounter try 20 times to increment when a exception occurs -->
-	<property name="maxRetry" value="20"/>
-</bean>	
-
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/async/AbstractBackgroundTask.java b/src/main/java/org/olat/repository/async/AbstractBackgroundTask.java
deleted file mode 100644
index a115eaae7ea..00000000000
--- a/src/main/java/org/olat/repository/async/AbstractBackgroundTask.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import org.hibernate.HibernateException;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.DBRuntimeException;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-
-
-/**
- * @author Christian Guretzki
- */
-public abstract class AbstractBackgroundTask implements BackgroundTask {
-	private static OLog log = Tracing.createLoggerFor(AbstractBackgroundTask.class);
-	
-	private int maxRetry = 1000;// 0 = endless retry
-
-	private boolean taskDone = false;
-	
-	public AbstractBackgroundTask() {
-	}
-	
-	public void execute() {
-		boolean finished = false;
-		int retry = 0;
-		while(!finished ) {
-			try {
-				executeTask();
-				DBFactory.getInstance().commitAndCloseSession();
-				finished = true;
-				// catch all exception because other cluster nodes can write data concurrently
-			} catch (DBRuntimeException re) {
-				log.debug("DBRuntimeException in executeTask retry=" + retry + " Ex=" + re);
-				retry++;
-				finished = handleError( retry);
-			} catch (HibernateException re) {
-				log.debug("RuntimeException in executeTask retry=" + retry);
-				retry++;
-				finished = handleError( retry);
-			} catch (Error re) {
-				log.debug("Error in executeTask retry=" + retry);
-				retry++;
-				finished = handleError( retry);
-			} catch(Throwable th) {
-				log.debug("Error in executeTask retry=" + retry);
-				retry++;
-				finished = handleError( retry);
-			}
-			if (!finished) {
-				try {
-					Thread.sleep(5);
-				} catch (InterruptedException e) {
-					// empty is ok
-				}
-			}
-		}
-		if (retry > 0) {
-			if (retry >= maxRetry) {
-				log.error("Too many retries, check background-task , retry=" + retry );
-			} else {
-				log.debug("retry=" + retry );
-			}
-		}
-		log.debug("set taskDone=true this=" + this);
-		taskDone  = true;
-	}
-	
-	
-	private boolean handleError( int retry) {
-	    boolean finished = false;
-		if ( (maxRetry != 0 ) && (retry >= maxRetry) ){
-	    	// finished because to many retries
-	    	finished = true;
-	    }
-    try {
-    	DBFactory.getInstance().rollbackAndCloseSession();
-    	log.debug("handleError DB-Session rolled back and closed");
-    } catch (DBRuntimeException re) {
-    	log.debug("###DBRuntimeException2, Could not rollbackAndCloseSession properly after Exception in BackgroundTask.execute");
-    } catch (HibernateException re2) {
-    	log.debug("###HibernateException2, Could not rollbackAndCloseSession properly after Exception in BackgroundTask.execute");
-    } catch (Error re) {
-    	log.debug("###Error2, Could not rollbackAndCloseSession properly after Exception in BackgroundTask.execute");
-    } catch (Throwable th2) {
-    	log.debug("###Could not rollbackAndCloseSession properly after Exception in BackgroundTask.execute" );
-    }
-	    return finished;
-    }
-
-	public void setMaxRetry(int maxRetry) {
-		this.maxRetry = maxRetry;
-	}
-
-	public abstract void executeTask();
-
-	public boolean isTaskDone() {
-    	return taskDone;
-    }
-
-	public void waitForDone() {
-		log.debug("waitForDone start");
-		// Wait until background task is done or reach timeout
-		int counter = 0;
-		int COUNTER_LIMIT = 10;
-		while (!this.isTaskDone() && counter < COUNTER_LIMIT) {
-			try {
-				log.debug("waitForDone: this.isTaskDone()=" + this.isTaskDone() + "   counter=" + counter + "  this=" + this);
-	            Thread.sleep(200);
-	            counter++;
-            } catch (InterruptedException e) {
-            	// no log
-            }
-		}
-		if (counter >= COUNTER_LIMIT) {
-			log.error("waitForDone: Could not finish BackgroundTask this=" + this);
-		}
-    }
-
-}
diff --git a/src/main/java/org/olat/repository/async/BackgroundTask.java b/src/main/java/org/olat/repository/async/BackgroundTask.java
deleted file mode 100644
index ff01ad6fec4..00000000000
--- a/src/main/java/org/olat/repository/async/BackgroundTask.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-
-/**
- * @author Christian Guretzki
- */
-public interface BackgroundTask {
-	
-	public void execute();
-	
-	public void setMaxRetry(int maxRetry);
-
-}
diff --git a/src/main/java/org/olat/repository/async/BackgroundTaskQueueManager.java b/src/main/java/org/olat/repository/async/BackgroundTaskQueueManager.java
deleted file mode 100644
index a50c83e9cd5..00000000000
--- a/src/main/java/org/olat/repository/async/BackgroundTaskQueueManager.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-import org.apache.log4j.Logger;
-import org.olat.core.manager.BasicManager;
-
-/**
- * !!!This is only for the Repository Manager. It's absolutely forbidden to use for something else!!! 
- * 
- * FIFO-queue for background job. Application can put-in 'background-task', the background-job check in a fix interval
- * this queue and can execute task. If you look for scheduled tasks check TaskExecutorManager
- * 
- * @author Christian Guretzki
- */
-public class BackgroundTaskQueueManager  extends BasicManager {
-	private static Logger log = Logger.getLogger(BackgroundTaskQueueManager.class.getName());
-
-	private Queue<BackgroundTask> backgroundTaskQueue;
-	
-	private int maxRetry;
-
-	private TaskExecutorThread taskExecutor;
-
-	/**
-	 * [used by spring]
-	 */
-	private BackgroundTaskQueueManager() {
-		backgroundTaskQueue = new ConcurrentLinkedQueue<BackgroundTask>();
-		taskExecutor = new TaskExecutorThread(backgroundTaskQueue);
-		taskExecutor.setDaemon(true);
-		taskExecutor.start();
-	}
-	
-	/**
-	 * [used by spring]
-	 */
-	public void destroy() {
-		taskExecutor.stopExecutor();
-		addTask(new BackgroundTask() {
-			@Override
-			public void execute() { /* */ }
-			@Override
-			public void setMaxRetry(int maxRetry) { /* */ }
-		});
-	}
-
-	public Queue<BackgroundTask> getQueue() {
-		return backgroundTaskQueue;
-	}
-	
-	public void addTask(BackgroundTask task) {
-		log.debug("Add task=" + task);
-		task.setMaxRetry(maxRetry);
-		synchronized(backgroundTaskQueue) {
-			backgroundTaskQueue.offer(task);
-			backgroundTaskQueue.notifyAll();
-		}
-	}
-	
-	public void setMaxRetry(int maxRetry) {
-		this.maxRetry = maxRetry;
-	}
-	
-}
diff --git a/src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java b/src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java
deleted file mode 100644
index 23d1ef37c92..00000000000
--- a/src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import java.util.Date;
-
-import org.olat.commons.lifecycle.LifeCycleManager;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-import org.olat.repository.delete.service.RepositoryDeletionManager;
-import org.olat.testutils.codepoints.server.Codepoint;
-
-
-/**
- * @author Christian Guretzki
- */
-public class IncrementDownloadCounterBackgroundTask extends AbstractBackgroundTask {
-	private static OLog log = Tracing.createLoggerFor(IncrementDownloadCounterBackgroundTask.class);
-	
-	private RepositoryEntry repositoryEntry;
-	
-	public IncrementDownloadCounterBackgroundTask(RepositoryEntry repositoryEntry) {
-		this.repositoryEntry = repositoryEntry;
-	}
-	public void executeTask() {
-		log.debug("IncrementDownloadCounterBackgroundTask executing with repositoryEntry=" + repositoryEntry);
-		// this code must not be synchronized because in case of exception we try it again
-		// this code must not have any error handling or retry, this will be done in super class
-		if ( RepositoryManager.getInstance().lookupRepositoryEntry(repositoryEntry.getKey()) != null ) {
-			RepositoryEntry reloadedRe = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEntry, true);
-			reloadedRe.incrementDownloadCounter();
-			reloadedRe.setLastUsage(new Date());
-			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
-			if (lcManager.lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION) != null) {
-				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
-				LifeCycleManager.createInstanceFor(reloadedRe).deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
-			}
-			Codepoint.hierarchicalCodepoint(IncrementDownloadCounterBackgroundTask.class, "executeTask-before-update", 1);
-			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
-		} else {
-			log.info("Could not executeTask, because repositoryEntry does no longer exist");
-		}
-	}
-
-}
diff --git a/src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java b/src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java
deleted file mode 100644
index 5e2e68ef531..00000000000
--- a/src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import java.util.Date;
-
-import org.olat.commons.lifecycle.LifeCycleManager;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-import org.olat.repository.delete.service.RepositoryDeletionManager;
-
-
-/**
- * @author Christian Guretzki
- */
-public class IncrementLaunchCounterBackgroundTask extends AbstractBackgroundTask {
-	private static OLog log = Tracing.createLoggerFor(IncrementLaunchCounterBackgroundTask.class);
-	
-	private RepositoryEntry repositoryEntry;
-	
-	public IncrementLaunchCounterBackgroundTask(RepositoryEntry repositoryEntry) {
-		this.repositoryEntry = repositoryEntry;
-	}
-	public void executeTask() {
-		log.debug("IncrementLaunchCounterBackgroundTask executing with repositoryEntry=" + repositoryEntry);
-		// this code must not be synchronized because in case of exception we try it again
-		// this code must not have any error handling or retry, this will be done in super class
-		if ( RepositoryManager.getInstance().lookupRepositoryEntry(repositoryEntry.getKey()) != null ) {
-			RepositoryEntry reloadedRe = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEntry, true);
-			reloadedRe.incrementLaunchCounter();
-			reloadedRe.setLastUsage(new Date());
-			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
-			if (lcManager.lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION) != null) {
-				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
-				LifeCycleManager.createInstanceFor(reloadedRe).deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
-			}
-			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
-		} else {
-			log.info("Could not executeTask, because repositoryEntry does no longer exist");
-		}
-	}
-
-}
diff --git a/src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java b/src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java
deleted file mode 100644
index 71beb1636e2..00000000000
--- a/src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-
-/**
- * @author Christian Guretzki
- */
-public class SetAccessBackgroundTask extends AbstractBackgroundTask {
-	private static OLog log = Tracing.createLoggerFor(SetAccessBackgroundTask.class);
-	
-	private RepositoryEntry repositoryEntry;
-	private int access;
-	private boolean membersOnly;//fxdiff VCRP-1,2: access control of resources
-	
-	public SetAccessBackgroundTask(RepositoryEntry repositoryEntry, int access, boolean membersOnly) {
-		this.repositoryEntry = repositoryEntry;
-		this.access = access;
-		this.membersOnly = membersOnly;
-	}
-	
-	public void executeTask() {
-		log.debug("SetAccessBackgroundTask executing with repositoryEntry=" + repositoryEntry);
-		// this code must not be synchronized because in case of exception we try it again
-		// this code must not have any error handling or retry, this will be done in super class
-		if ( RepositoryManager.getInstance().lookupRepositoryEntry(repositoryEntry.getKey()) != null ) {
-			RepositoryEntry reloadedRe = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEntry, true);
-			reloadedRe.setAccess(access);
-			reloadedRe.setMembersOnly(membersOnly);//fxdiff VCRP-1,2: access control of resources
-			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
-			log.debug("SetAccessBackgroundTask DONE for repositoryEntry=" + repositoryEntry + "  this=" + this);
-		} else {
-			log.info("Could not executeTask, because repositoryEntry does no longer exist");
-		}
-	}
-
-
-}
diff --git a/src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java b/src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java
deleted file mode 100644
index ac075733fa5..00000000000
--- a/src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-
-/**
- * @author Christian Guretzki
- */
-public class SetDescriptionNameBackgroundTask extends AbstractBackgroundTask {
-	private static OLog log = Tracing.createLoggerFor(SetDescriptionNameBackgroundTask.class);
-	
-	private RepositoryEntry repositoryEntry;
-
-	private String displayname;
-
-	private String description;
-	
-	public SetDescriptionNameBackgroundTask(RepositoryEntry repositoryEntry, String displayname, String description) {
-		this.repositoryEntry = repositoryEntry;
-		this.displayname = displayname;
-		this.description = description;
-	}
-	public void executeTask() {
-		log.debug("SetDescriptionNameBackgroundTask executing with repositoryEntry=" + repositoryEntry);
-		// this code must not be synchronized because in case of exception we try it again
-		// this code must not have any error handling or retry, this will be done in super class
-		if ( RepositoryManager.getInstance().lookupRepositoryEntry(repositoryEntry.getKey()) != null ) {
-			RepositoryEntry reloadedRe = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEntry, true);
-			reloadedRe.setDisplayname(displayname);
-			reloadedRe.setDescription(description);
-			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
-		} else {
-			log.info("Could not executeTask, because repositoryEntry does no longer exist");
-		}
-	}
-
-}
diff --git a/src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java b/src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java
deleted file mode 100644
index a553ff6ce7c..00000000000
--- a/src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import java.util.Date;
-
-import org.olat.commons.lifecycle.LifeCycleManager;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-import org.olat.repository.delete.service.RepositoryDeletionManager;
-
-
-/**
- * @author Christian Guretzki
- */
-public class SetLastUsageBackgroundTask extends AbstractBackgroundTask {
-	private static OLog log = Tracing.createLoggerFor(SetLastUsageBackgroundTask.class);
-	
-	private RepositoryEntry repositoryEntry;
-	
-	public SetLastUsageBackgroundTask(RepositoryEntry repositoryEntry) {
-		this.repositoryEntry = repositoryEntry;
-	}
-	public void executeTask() {
-		log.debug("SetLastUsageBackgroundTask executing with repositoryEntry=" + repositoryEntry);
-		// this code must not be synchronized because in case of exception we try it again
-		// this code must not have any error handling or retry, this will be done in super class
-		if ( RepositoryManager.getInstance().lookupRepositoryEntry(repositoryEntry.getKey()) != null ) {
-			RepositoryEntry reloadedRe = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEntry, true);
-			reloadedRe.setLastUsage(new Date());
-			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
-			if (lcManager.lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION) != null) {
-				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
-				lcManager.deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
-			}
-			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
-		} else {
-			log.info("Could not executeTask, because repositoryEntry does no longer exist");
-		}
-	}
-
-}
diff --git a/src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java b/src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java
deleted file mode 100644
index 6b1a272b30d..00000000000
--- a/src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-
-/**
- * @author Christian Guretzki
- */
-public class SetPropertiesBackgroundTask extends AbstractBackgroundTask {
-	private static OLog log = Tracing.createLoggerFor(SetPropertiesBackgroundTask.class);
-	
-	private RepositoryEntry repositoryEntry;
-
-	private boolean canCopy;
-	private boolean canReference;
-	private boolean canLaunch;
-	private boolean canDownload;
-	
-	
-	public SetPropertiesBackgroundTask(RepositoryEntry repositoryEntry, boolean canCopy, boolean canReference, boolean canLaunch, boolean canDownload) {
-		this.repositoryEntry = repositoryEntry;
-		this.canCopy      = canCopy;
-		this.canReference = canReference;
-		this.canLaunch    = canLaunch;
-		this.canDownload  = canDownload;
-	}
-	public void executeTask() {
-		log.debug("SetPropertiesBackgroundTask executing with repositoryEntry=" + repositoryEntry);
-		// this code must not be synchronized because in case of exception we try it again
-		// this code must not have any error handling or retry, this will be done in super class
-		if ( RepositoryManager.getInstance().lookupRepositoryEntry(repositoryEntry.getKey()) != null ) {
-			RepositoryEntry reloadedRe = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEntry, true);
-			reloadedRe.setCanCopy(canCopy);
-			reloadedRe.setCanReference(canReference);
-			reloadedRe.setCanLaunch(canLaunch);
-			reloadedRe.setCanDownload(canDownload);
-			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
-		} else {
-			log.info("Could not executeTask, because repositoryEntry does no longer exist");
-		}
-	}
-
-}
diff --git a/src/main/java/org/olat/repository/async/TaskExecutorThread.java b/src/main/java/org/olat/repository/async/TaskExecutorThread.java
deleted file mode 100644
index ac052645138..00000000000
--- a/src/main/java/org/olat/repository/async/TaskExecutorThread.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.repository.async;
-
-import java.util.Queue;
-
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-
-/**
- * this is a special task executor system used only for learning resources. If you look for a general task Executor for scheduled tasks
- * search for TaskExecutorManager which does Quartz scheduled tasks.
- * TODO:gs may convert this to taskexecutor manager
- * @author Christian Guretzki
- */
-public class TaskExecutorThread extends Thread {
-	private static OLog log = Tracing.createLoggerFor(TaskExecutorThread.class);
-	private Queue<BackgroundTask> taskQueue;
-	private volatile boolean running = true;
-
-	public TaskExecutorThread(Queue<BackgroundTask> taskQueue) {
-		super("TaskExecutorThread");
-		this.taskQueue = taskQueue;
-	}
-	
-	public void stopExecutor() {
-		running = false;
-	}
-	
-	public void run() {
-		log.info("TaskExecutorThread started");
-		while(running) {
-			synchronized(taskQueue) {
-				if (taskQueue.size() == 0) {
-					try {
-						log.debug("TaskExecutorThread waiting...");
-						taskQueue.wait();
-					} catch (InterruptedException e) {
-						log.error("Execption when waiting", e);
-					}
-				}
-			}
-			log.debug("TaskExecutorThread in working loop");
-			if (taskQueue.size() > 0) {
-				// Queue is not empty
-				long startTime = 0;
-				if (log.isDebug()) {
-					startTime = System.currentTimeMillis();
-				}
-				if (taskQueue.size() > 10) {
-					if (taskQueue.size() > 20) {
-						log.error("Too many item in background-job queue, queue-size=" + taskQueue.size() + ", check execution-time");
-					} else {
-						log.warn("Many item in background-job queue, queue-size=" + taskQueue.size() + ", check execution-time");
-					}
-				}
-				int executeCount = 0;
-				while(!taskQueue.isEmpty()) {
-					log.debug("TaskExecutorThread taskQueue is not empty => execute task");
-					taskQueue.poll().execute();
-					executeCount++;
-		    }
-				// running in a seperate thread, we must close db-session after each run.
-				DBFactory.getInstance().commitAndCloseSession();
-				if (log.isDebug()) {
-					long endTime = System.currentTimeMillis();
-					log.debug("TaskExecutorThread executed in " + (endTime - startTime) + "ms, executeCount=" + executeCount );
-				}
-			} else {
-				log.warn("taskQueue notified but queue was empty");
-			}
-		}
-		log.info("TaskExecutorThread finished");
-	}
-
-}
diff --git a/src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.png b/src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.png
deleted file mode 100644
index 87ac35dee102a4808ddeca07cbada8a0f40c56ce..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 25366
zcmd3OXIRr;(<UV<hzf!f>4=C@MFlkUCelK0p$aGj1QbHA5fCZTq+{q1dXo+T8=xRH
z5TvUJB!ph2@8SQvd%e$=4}0ykyVrim2Y%)J=FH5QGjq><h|qzlUOdlwo{Ws_qS_;6
zJu)(iH{b`Sq5xMqwidx3WaRF8s)}S4ee6W=2gF`MOM#56I+o_}@fq+px9uZ6Eiy9S
z8)Rg`p=4zH;8HMwjLhRU8QG#W85uN{jEwpDyJlT!GBTS)HDv_@Z_8!0)>n>i9>?3~
zy6#8V3VPl#TB3IN_3_$|5c*fQH6erDK0IF@UFT8KWI?eA-F{q4=WWeIN!@K-qeFH6
zrCm-K6Z{NM0(a}sPzK6W;C+JekRG{k?Yk3OnLf3q)vk%%>57&8zuUh94tC0+9(}9B
z%b3!A(n-M1m_5G<HyJ91`Vc2~ggZIxKiQ)Gxit2kS;X8yY6rIAx4k&>mS4L*O`Uj;
z2Esicj0&ga%9IV*|7^*;jGur7@bAe49k*U;%9QcL+exsk=4s7GXLH}?Az$vQi_I9Y
zwkY%+AaZV$&T5AFAdv>fyKF>Zs0{s;4(@>)<jCgU)?-%#^q<j91xc65fh8|LY8A{x
z&#lV}*5@eDOI?zeA4_AEtZp?HdB87OHo48=%gxUCHOD#;wq%EkC{a(T$`)(u&4Zf!
z_lcPB(7nUG&E=7i&~dog{Cp4Jkve`UDLK|kB>XRv#~@MdwusAh<bFpKbNbQra3#~O
zyWF_};!&e64aFNe7Q$AO`@(gLO00RU+wyqb(QgBlv~f#gtw+ewWZfwR4{G=Op4qO5
zD8g3Yo^ZJlp_UytV%J=_v_9Ka@Sv$dj<7XND563!QRPDe_BNgn@ka-{9I0}S2IbYy
zqOG>YI>$Ii3%M*dzP;s7(4#J=X)%Eh?dYRD#SFKM@rZ!vH+bTJ$6n!Ld@$;T@rA6<
zCx%=DL?-CEeO3Xq{57YH@78>VtAzWWBy{SbDBpRiB{l95M3fUt&7^P117)#?&F~jK
zYUqU`ne$$ZGo8NcbM$$eAL$+-$In4TJQw;nNJtZ0q~YYOA5GQyuQlq6r8jR$jpxo@
zkeXi}w>iP`G5Q6B!B)py&zDLJAbfUzehhgka`F&ELvm@PMEOu(K>FSu#HwHldO6j?
z-Ab$KaOvohnxr4B>``x=Y%ly4E`rKd6*{t)bv!+{IXzAYp$wRNb>+3{i2$+knJHJm
z<WKix%B}&TPm5Uv-pB(kEPgr_bm@#WGle1D4?k()^(e8@q&uBmln)XeD<YAJ+UH12
zwzMfq^H|x`-FmGDs|xNHCIhy9DztX(;}NuFxV-a0%9v6@K^L^i2xD0Krl)<7Xe&i_
zhI`-+$^awmN-yz7S*H4#u%<`fzWqq_gGFKJvO>9ie%+76hu`${wNsteS)dO;?02h@
zRV2h<W)Ev`G%U-P5M+5c%%nd(#7Oz{MXdI)3OSn}zkxNh(%g`sV%Gpl&x(U-&%uM0
zoC3C!CE!oCbvOTry?qyh5v~=fOu)ma+v{-Uq0$pCwS49$l^&OO6*!BnI_p<dBygIP
zR?yzL^3qs(QWYcBBo~PDhRfum{*imv_DZmP55#D9R!^4Zd31?zxSs4Ao7ujn0i^dm
zoX`Er*muiI@@1Qinu}7~YK|Ipq*va=_!Uk?W~^;55RY*6?9AaUsZ6eeGk=R1>*zV5
zaa(;$vJ2RYc6}MqNo^l5uH%l2>It>1B}W^sNZ;}4m*P|g4}bnx$5+P+77P8f@@&vX
z@AxaR6TZhOa0qua#j^K0k0R<!w&!LD$QaoWEh+=0pC;&v8wptUWgU#i*^kCN-pPvR
zSvTp3M{}9WuZ7#<0+U|&X6<K3p6^OFi4`ucyWLhFAr^rJQK#P(BJDEB_|vv5$>=Ov
zM40z4CCZdK8~6TqCboLya9>aM=nZLcmOWg1@j&QRCI1>z7G_|kakcM7<8x_0k&>cR
z*R{<KNZZ=LC^Y}6MJL91Qpa36H3U~}yTbkkX2XEagz!G())53T1^@lcrk``5aCi<H
zKFXB!bL}FD$-wF=_ZcnMsMx16BD*Hi6}7S9V;7_Iq04vLO5~i!y~f_qIA!VmE2@xF
z3BkzFmeOZTIau;=JZU@EU$q-qStTx1o`td+AGF9r$2nQlJfJrk3<C%5L9z9BZ)f)H
zvwge|QRmM-`b(;8uV@bt;mFLo)Wi{u$-}7I96f4WhL*=SoWlhoOUpaN55+R;<F%k@
z$97km@4F$7rO~m%$vkAJXvi_C{g~8ab-YoE6|veMO1bk%_`_D}dhO(JlfAH>{!9dC
z-lFg<!l`M=EaYfV+k5-l((qR%wC7{SwKuDKsX4g4A2wGh=)OJ*_F0X7PIDV8(Vkhz
zIf+}!n8KO;2<RMV5Wd8B<HOP5?&GfVA47<lo;Jtp<3q+TFjms5Q*}Zk|2_s8x{s=X
z4Cg*CS=j9rDdo6FE+sWGReT$YWe_>9L`G3Sm+CHOss25JD<CtgFOjPF*}E*xnb4Vx
z-}YZ(D(h6$kiN7I1}HK}GJh~kG%G|+#(RGY;j8wuWwp(3XK75$tZ0M<YT-1$#zui=
zkjKz0k@<RrZd~iQII}X1bxK=zLn8AVtPz8=xAVRiXr$bedA>M&D`;*`^!T@E-@6C;
z*3p|Sp|Jk`cT7Ne)KuBHbBe=KoM#(q3-*0ir?CcB*ou^Em5WaMUwgnNcIlqCwJO(?
z!#I9izOdUBFW7oX^W)b=!qy|5D<Nc%?rXP40$a<99{Rm4$;-Sf!;(=UE8<)CoruHW
z)=8cLbq0i6xUNMKfhy+KeZ#=_(_-R=RTInExXtH<j8yX0HWd2HUHqO-BJLcPs)ZA|
ziO88SMoIGy4x{y-{af4F-46-10{b@A-U!4WfoGk|W+4-`^WBU4o&&@udpIbByNaJ2
z>8t%b$-u0)GOI^eYs45nXeHOGKY{IV9T<wdXQm+?W_FpBu;i^=B$VH;Vj5ts_AH_+
zQ>f<x+A>+L99YDUULLaxF;=UqgE|vOa@Q-A?*&j4otbd`=yo+WlW&4&XrHB@urpCH
zMD8Vhj5|jjxc-D1H%~zF1u#hh9a`N8hBZv_;unz)&!so?QzFz{3cdvDdF`)U+#KBT
z4l0n{7f);>j>T?YTBhwaN=jL+J?yCIDj&fWo<(OS^W#A-kp}E=7iC$LwmgeatK@r-
zI5CUpMRYNhd&`<%Zfs4upDEBx+)mW(Y;L0qK5=3?U1|5p$f=f;$k5Z_a2XE?bQb>p
zk6GJq<qH*j1)S^$#7Vd=ibbjGOP#j$fmwU{xYgKetJ%kMu-^GV{EyVoY@F>)-Ln*Q
zH)F`47Ut?VJRCq^g|jWBj%3R%4%gU8O~3u6-{Z+|WZr4kDt5dm$QJS7dD=*lLsY-F
z6a?uzlo=)l3@AcD*fP&gLD(O(?uN=DSe6Ap;Cgy*)CM))Lhe6*WfDvVVd4f0+^cPq
zLvFI<b3y+BW)}Mv=Xrldj>EO|9schx`~dOuRU2{&I+NfJ?I#EAC-bhy^QTMs@HaDa
zu&nJ{bbm^I{vh${0SCw!DR7qw{&Lg5ynUP7^wao|%{8IFL?GPO6a?giOwQ)volKV&
zKL!p+Gxxw=;JbAsGxqRFTr}q3n|Qop_AT&~KGB@I@PGCkcvuc`LyxLfl??47ia{u&
z7gE-d6H^%k?twF?zTMeqObcNS45fA#3?&1G@_X<^8Y_V@SH*i8^FyibX@D0c>O?6?
z((T{<8m6!jmnbagfV6$BUd-5cKC6L4n)!4Nv1HIGOBmSjG1^%>iLMJhdz%X?*`3I&
zqCtfJD>6vowP2XGN{yzJsAcP4LS8J?m_T*%R$KPgU9AbMBF5=EtE`gs9iVr+n_>`@
zG-QA%ZC-sIr4C#u>H2xe1HNF`Zie5r@L+HONlA4D#AOj_g~oHJR!BaM#?pT4<2f$>
zlY<$nwI#&nsNce}j7e4)8B~VmDJx387?O<bdvxunsXt&vRc?P!PY-NF%X)W1tmyup
zAxEZH0H+gr_;aX0gI_ySS%_JK?Bb|A8M=Z;<1fhLs2y$wEe;pAc&&1BaMZDIi78mK
z0zvPwS5p9ARR{UeIX#Ec?f3Tmp5-tfDx@MAdgc0HC^hOgmBY})-RWw*cTx8tC<-9?
znd{`t+yh)FB+D|&Bk00w7K%J@HSe}A6$M>tvV2LeW`K4Nlhd2a@)$Oao4@3<FHsm*
zm^XQljQ(~HdvPE>_wa$|HFPjqR7h?4(HNP4{d>1>Z%+lpl6`ncLAZye1mk3USp2M>
zwx20=uGW|q?1Gu*zivU`JlSfl?H5dXq*hyJlkVF0t$lcFbVrk2AH)eveuOaa`U~W5
zFy+0g*xk%bRVLbt0f&FrQx_9a^2Wdz6+>E8bT^}dLrq=DZ}srEqU0ZgtDop!O3@J_
zfa&$?BRsT$QZj!Qoh7GY2iB2&$HSBkqP=964MnJY6L{LqJ;c6)P977bb|ywXTMoEd
z&;$P8Xt4K7@#axLxNkFps3(x{1Ca^_eC|elk)i->1seTy$Be)jBHYxCWGGAUH1=s`
zqZfBDY?Ul3moE52Ef^Z%V^gjM27HU)yGb>y08GcL?cH<}jHi2e?-HsFycMvJMNkEL
zRehXG2jPwjA%mhr1SHsafrQCApHT8zV3_opuu2;63^RrHdoZ$nRt|290;GCiHcXe#
zfQV)e9x}J9o}dG2&9S3D4{-$Vk0y&9S_G3pv1G{fP%?-n8M=^P{-+7hM)m8Pz_b1U
z*I&36HT4RZ?jqk?9c~>q@OpjpuT=^#+?j0LbqM!|R>=S|3SJ;5uY&FcV8l$aSt2pb
zruqSxmHRC|ZmMAr6f5|Ry_;FUti-nNT_6X;Z2?{Xzn89up%F<OqE2R|nrsX3+go{g
zt{j-v?A!GhNco?j@S^3CUE&^SRytgp)APFEZAA~JoB!-54Wu48TPcB?fMi6Jd{sj>
z=i2>pTm?E1@CD&oC0)Rc9$j(Mv~gStWbJatGf#|fX0@4nmV0>bIe3*X^k>P9?kEV3
zCp0(1t;>xCZa9TY3DHcLI&Yi<IiKvqmt;^a`(Sx-h$5zd?uGb>lW2;R*Glw-*~y+K
zcE6~jR9ZIheV9zE_CO1+bG-<S#>Kd<M|F<h#^L>S0XSo)9@ocp9b8D?Pc9+1fD;hU
z(iOe>AdjiEXqm4jf?Cm7#YNwMk5KDhwE&M_(9V=jQ^1s$5s>0j9I7WN;Nw=OA3qD_
zNN@*bU#yh4w$mK$+PbH;(fSX1XgOmFH5RFsHo_G9WLuJPn57X@Qv$EgbDjH^?ZFn&
zF2a;&cdOQ{_T%%B+4;Iz!~qkZO#II`)l+u4(dqh1`viqn$_puz_~3-Wg06eI^5Lp3
zy7;p$jZCvd$3Wer`;jo?gqxG0z-ccc$GiW`9UmQBLvGG%-3ssPb5s$yHdcR3bP*92
zdAb~ddR7#l_`OcZ79LO7m$*&Jl4uT=D1@S64rZ4N>@xG}pQ)0P7YqVEH(n@-Tq@oF
zkbReH^ZT!iPqjxycc?zfntgg=8d-7UPliAV^+?j#{V!s4>uMPMX9iL=g)U0RmsfpC
z9<!G=57y{HcBB@S9Z!|#wAt^=Zj5@usA|26KDPrwr)X^LT0V*RZS-Tr59D8xKyleP
z%s|b|s<h3;Vm$49P?;;Mc2~rrgM&E4H2JpKD_jWe)m?7Oq0(*C5baPsEBs5#nai_8
zA#A&C9s$|)jel#L>RI}3{ZsGT9J8Z_=wuh4n+U|#*ZYZXEwHXl!@?0nTHQi1tVgoW
zrpxBlB%h4zrG9<%4id@k`L(b_@J}i{b`v*EZ@()Od`WGmiPFlR^HQU~uX#fA<+di^
zpA)pD$e=;u(B04=Iw}fE^v-J?4NV)r4u(FXy43ESFEvO(h?<~m<&szd@~i!G+i9t%
z!4@j|ZDRYirbpZAnhvy`II#?wn@_77I9n<-y4(1ZKa086Mw+z>$L(~jJLb{qEafOY
zXLP2f5Q|POgI-J1Q<0)GG1ue@xS6+zdbC9`3zr-~1eQMl3;#ip4FiQKRVd8wJ9E^R
z&IODTD*xs<L7^(lJW9nteg3K|v**=*+R|jkdmQ?UW>%q3c*UxAm?BJBhM7v?aEmhr
z-=9pnq`G;`ke0rYG1ouxtF|?AiG3j)CxR&V__o&N655|R>A575=lZ0Z^jKn2UyQ3a
z-`2r7nhD1e;_Pdbv5riho~hPFHqZWH@O6gVk%`r$=W9x++JnDeZ?F;l<odkL|1wv-
zWF(9^HL=7(5mO4|>f2S}ehc$sS?1&DNv0khb;Zn%4jn3EG<qH_A7|t0?CDOVuEnWg
zq^{l9C?aeLrAj$M&?`5`Lg7*%ghXD*#Tn)oU*jJnMka)nV!`H6N+ADV2qvReK}TjY
z`*=2?Ck%i0N868AT2^<aO(TM!AVwpFsv)TFkZE61IoI)8xTHz<jps<@X*yxILX*1s
z8tg^7HPm&U6yN=f;}zzyrH}MgV7WL(J{n^`u)P@%QiAw3WDx(BfK>VRX=ECNaKkM!
zAniTFKi8oax;4-1yg&?RlmX%Unik`O2$*rAkohwDG~&^M8T{vPEjQKx-sT#(nQ^kt
zbuuU(#`;nf<MdTeOEwoL{)EQr;5v60zT#x7htE=Qj6YH!_u+r@HZR@za*K9++HOVe
zIUvJ-DvIMWD7J_rrN-K5=#wzdKmVgJFM}E3`jfr{d=#_jQ0n0S5RdPpx?;Ip^&C2J
zjB}i)A=<DJgq!#q@1DI2zOoO}Ca11}XiRC34AjD+`@9#+KdIU1eUuJiqQRAmO<;4n
z>zY6gn6V-ge1jbAax3GD9s^2ScJGTVLF{~QtCvc#3Pw=fh_T|-!qog3*SN#lp8xtZ
z_TIir@E%YiP}INOX5*nd9{{R48O8mbhW3D$1!pNzM6ITI+YL}3;2;a)prml88*u*;
z6BBdq)wFibRqg)x{D^UDX_?E9z8{`$6UM>vmK1sp7AFOBAbUGk|HZ@Z9K|~f6e>fz
z5C~WJC$a9+;=bZr67H6VbH_Zd+!-KZt8@{(AY1GsM-izV+|2YR-}Ws2Ig5#9kID*o
z1;f!4f+SVDhrtQU(CD{YaRr{@PD-f$W}1zA%iH^y4&A3vXP-ep_K)%J+@dDj5S+Sj
zv@_wlpyMDF3DZuidR9L`eC8k}9u4zK_x_X_8El#KI1I0(vGu&V_<KcN2+Y1iD(S^P
z8Il-~B9jayL;WacTfNlhO8WX%rW!n#6^eyyCr>D2%=$#CpIpmkRy51m_7%jwx}z^x
z`V?s4)qdQo0iqH?*DDDqp)&ZxB}o3jI8A>gu%6eWp&^w)V!_=3_yGawbd@ht6LQZb
z@Z@N>06d~mez&e>N@$j-QnfmM6N(iS>vjd+k5l4)eu4Z}?R-PQ09U})px*gj@8(<=
z;2eo%0_G~fKN(;mO7f$wR!wdy=gZ#@HakAM%Aa6#Ra-RkrP!r^%C)D`Afb^KRQFVt
zKfj!!G}G)+3JH5EZK1oM^zTMr;LXM)n&fx|JlMJ*awjvBeB+l^HZJ_`7e#fDaLLL4
zWQP2n8#p6?jK+vlRyO$7)*k-hmqXlQ@5r5%RugX*q|#I&LuW=__Y}DCli7^puN&d&
z@03RejA^|>uGnonbNk<pr=KF^3w@QwFQ6lDbc5-oWbsOWe<UwjztNV&;q<UOLyH6@
zL))0-BUr=ag+by1zY~_lz_3=zzilIU#n+~$B^4Lo0&0lKg0oL}1~@>_YDr|MvdV}j
zj=cRjmGmKkVJXb>$-})isx=y-;Ear_)QQtw-$EH#&wo^~qXtTcyQ={z=r#%7-BSL8
zYf>t;gsm%Ast50YvF4WOCu%BtgHKpM++tBrB&LDj<i2ATBg5H^{poZUJ}+hQtl217
zEr$5qrdR<)oe;HU>HMvn$(}ZeyiMik3tVVU>PVX@kcPEr1%#kd_H<UxDrmFPLuGEk
zqQxJ9O7C_t$E!c8fyv;`C0w=sSHc#o@#Z8C`1<F3NyeH?J%Gd*9P`R$yp%=U?nYmF
ze?vS%jOrdxt&0HK;tWIVq5s-X1!I&XlMt=5vrtax-3P$DZuu<VVZo|_PgSLDDG6KA
zRfrOGAYKxJghz1hjae=Z5_jCxm2s!V$XrC75XAeBJyY2e78Oj-S4zu7km8C+N_yX*
zXeQs!i<KSX`)FKgIfr1;@}x#Kf2*Y*4h6QLer)5YPT`xK%E@;l?9^}TWD5|_l9c6B
zNbY>rYSbT7euIs(qW}^P1~(2kt@fIivP<KrnJA<{y65#t<yR}@P`+9p1Dk4mp|p^{
zDe-Fi4tV9sA9B%du(VS$GAg8TZ$+j951ct~;thv5grHN8hp2t{fjNMdq-DrubTnfR
zhn0!}XeEX95Mt5>g3GGhZ@i6?@PO+VHa{{k=Bdtys7ukX&|blHe`=>pw*pWFmfa6t
z5h9-fEyuk(tw8hjDVi(Q-gk#>sdI=qkd;5KJ&Ox#3}w>*a;99<ZmFYlFv9c<<|{V8
zjIm&{&-IBhYjF8?aXH;*Takyu_J!mCu|q$YG7RjHs(gg~ZBkyh^UZwSJRu<|Pje&8
z><d0nRsMRx7rs@nvzUupo=bdv8oOeD`>g-&sGE~L+QNy^ACEg#7XJWf*+cPU%zz%W
zJR@g2o1W7+fxlGPL<M8^^_tk9>)@r_gY_=1(#g$*{%zy&rC9jNWRv^yxVUS|1*ev_
zZDY$pCgCAs(Qo16r+ylLA0NDp+CPMrGl}~qE0WS>-(XZxg*rjNe8+CEFD+nxqnktQ
z+r1f*wv9qLh7aCE^rNNtAGi7M)fm;PkXRi{s~~1(2J&2W6_s0qQ4*cr<6MRsW@TR_
ziaO3dF^yuY@jkdOA4F@g^1uVWkXg5xq)2*pFII4DnR(0#foyJn$FS}Kz9!z9AC;g+
z%vBy;WPu7}k!M`v6Md)6xMYHjEQ0uGc2{S#X-egvRbL?K$d@eLkrjGwAuNEH!z%=L
z69j`M{nAu1vrh>_E94UyY>e(e&+ZJJfy<`@U)_3*r<^fxzz&-EcS1)HYR`nmIVpeB
zd6av9D6f=e$YiapW8jD7d*%v%t8Yz6UY+{oM!F}dw2Dse6U@b-y~sYvB?Ff@8*gaD
zOJw=f>FpZ@3+L%Ku3SVyeRmp)VHy!rD<5K})~vFqW?a8vaIDa*2kx&ja&~)Y>IM+|
zWRQ9w&**0S%f)-|6U7VbWLPan5Z^F23Ic}4^~dnzTF~-4HA25etx7Aez@z$2NO?j<
z(PcjODj8?+jPCOX+r)1k@RV0X=c~T<uXf(Ya>|VN3p#?Lx{wys;hEXACYc2(FKBB;
znQ+%kw~@8S>ZZ1ia6z%diyjSYr7o!(1&;9FiZA*b!jGt1gAg`~=om>Q(pCG`tG*==
z52thJ6^U(#Yyv27<FiXdB_d#5<wm~OZZ*ISXZX9Rz>49e_0|;u5odBzlQf2ca;&2N
z7?mP6Uy38sWy#3ru|&#qy?%1uYp1nlt5<?cB0wO})Iv`)cs_VHrx|cEeC3=)VCmo+
z{zzo)(%Wx--*hTp<o<&jbkRFlVUCt=3%3dS9vb2TYaf|UizgF4&gELnAkZSV@5cV@
zc%$(QUywWvnKyR8{=8{a8nPLIvIT(vd6{ZUc2yXS`>dq6Tr2B_Bw%9lwWl*NcU4-}
zl@r&3qG7IXe$lW4^ws7Ob!Ip4s?U&?AmJV;?Fn1`T*r)84vU-vhI_l)cmx8zrmSXc
zBpa;RaIe4xvR^bU|7|O4loI^jIT#%2W6^*>SOf*g)n>UT)Vl=PJ&=)I``q*C#IV7+
zx53ZZ&1|B9RO=GF!_eeof3_t$4P>2nDKSlpRJC%e&gl0Eh(#&O;2g$)0;wdv$iUp!
zot5K+JAn=n=Vmyg%*HKxp8S3=&AGaNYjS!;p*8Go%mu~2b7}^IkzDJ}a?U<cFxts_
zjli3cY;cbWwA)*lpgbCdr|j4=5t~laouX|d4<96+O?X6QN{!6HiMc+zyiG7lUzF5^
z?`?@Cj?nT{|1_1AIS^*Nkk%mbstu}U<XdU>LXwF5v91t2QBy%$WkPc{E=M|Q)Ghrf
znaDuGKb7@-K?*li5c<Zy-M)kphHQN?m0{;p1}Mx83JU_#0rO-e#MY_g<dt5beco(2
z3%z1L%nbA94*s*XqqK09r!<GB9vT)VA$|3`AMIq!D}O5bSp;o2PHme-`@knF{Wt#p
ztDY}E#D!q;s*${+S4}4k*@Hh^gX|9xQyXKxJ&yG%2s`e^ygM>Nq^w7k2$gaY_ai}9
z5CdIK2sAIMq<A0DU+UL9fhjl#T^?*Ti?vyyD~44zFTce(4)&jorHmPNo`{E?tgIea
zh|s-NbWi(nO-_Q<0&HD{w({0eC=sOZTFoOws^QrA<@Qh4leU!``c1lscI|rOaFT0Y
zZbM@;Q&fSl6SYcg#4hLv)vx5NjjwN&Oc0p_kKhgExc2?h_LBH}{Reg!ohx8<6d`|V
zq9Eg=h>M1N7S+m^{N3O|e4lwDMc5nUF4mV;)SJxPYL<NpnJAb{?p8LN{=K*_<sjxP
zB0Rt7iD;RqZ|`s>)jk|L<Edc2`0hi7Yug?!>$ujPDwGzee|(fkjawZ<#FlRx-<@D!
z?RP$p?$cs9IJi9Ui&v7g8Xf~j1I))u136jt&N8<yBO**a4@ZN-jQz(#c?Qy_-65p`
zqU9Y6vv*d1KQTAHXs^%zwOR&AA0ZlB`gAlXyiX0bEXg5Z?U&8(okd-SAVm<$w<6`U
zttgz26^{XCe(+EKONbif>OafYzA4p?bJgbGxJK=8y?h-RU-9b-M4e}#5O%k#WxU;5
zuiMq7gSKG)vt`QewBPEVZ*Q>=PjWah{qKUR<-WVID`9%RsaR?c5L^9et18ZYCXS^A
zIF10+cx@r*cp;#(qG<c4rA*syaGTPI2w3eF`KAiFxQ?gk%(_=H(kEl$_a{Rqs$yXc
z@m;fd@|alrS{-UnJPpdK%~Y@5|B~a{KY+3R-`6m01+l1$o_NzLymjL6Xk5WufHEef
z|D!bLX@_V!FX@LV2~`uQ+nj~Vloj1Ec^^p8U)^y-H2d7KL&U;K=m{?u<j-QMW!T4$
zN<RGSa?um%T$D?@W12QWt(QTbSemH;f|(r`T0{a@{eDNv;J1uOAlLUt4Y-u5H)VI!
z#M;9<%MTduSYF*TnA#GT_@&*t+<CT3iREg%l^XwSAXU3up=kS6#KM{lVe8igzbas<
zxVfyZ*D&S`A_~@3b>FgRQEX<BN@^+ra4P&92yl3Wuw_JiGtHM&k7YI+^C!3iYrUN9
z7Z0IjRvuE*QL{+p?dKzv<(n<@wSV&*oqhd!KUBXS)>R$C-B!YE7mly-Abo%4Sk*FA
zE~{OvXmhduxsYx2Ar>VCwOFdGxe3?+xkK@TSCLTO$<La!$njN!k!u$>iwtrZEA_TB
zdS(L(Ia_@{O$z4t)8`-^I9H{&AKp@j%exWc3zjkG(<PQ&4JCyR%#5!Rz=C1=y7i=H
zeF!;LO<Vl&_3-9UY1^Jo=h=YT97e92Kd$z;duP15Ro_|a+A$f1{Y{Q-zv$|$>^@KV
z*F`cQr~K%irRy%aLgQuqBf{2WIkcr?9#A&xsj@TXv2|v<mn`;wF)ptN^W*u8YnZ-8
zXg4}W;q^OehKgE81V?nE-e3|9EuKE{e+!#{)vg##?t{LT$3*U29v!V`Ij%T<O<?26
zf^op+0qM8!Do-;d8t=)ac3*R(=GMu`!=t3jA%@WsEN`!RYR9LiI_?$SoXTA)YSt`Z
z<c(XKq*g!R`JbuGHGMY*+n(PsM0k-IJ}wsNF)Nnhq`OWKF3i?P*UNW4$BjrL9y{`v
z<d?gq?E-O>G_%-t1|(oA;lTyz<rFzFrBG+tOpmJcifw$JNo;0aE?i>nd0E%xbY&>V
z)vkDD^=~#yA7uKo_UE^~&$;}ae;i=<<?JBwb08Eu{1D^!4OHpR3MGlP=X{3h2NYwe
z_ym&KRj>EHUawUR7eg&2#Wfpb2w%^P^+3^84P56sAKIJ`<tWG0KvRJ@W@r4nCFawF
zBQF=HyE|}>!$V{YwCV=lq`y+Fu7BstmUr?oKD0ZZ(tI{@z=m$g>wD!0!r0h76E>il
zv&n?vjbV|txQv+|B-#Xpgh{=EF=u9fn^eN^D?O;o8Sz<7y|}|UGsGtYgbC}l{ep@%
zy(`_q#vdZH#1@_7Yy_td(RIp5ywP`1F@k7Vv2pqI=qwbw==rQVfZF7Bk!sP40c$?|
zOjSEx(zu}ze#N3kVK24wvy1Z!QX7rnhka|l5riQUr3K|U%h4A8RfNlSo$lFz#Qon9
zoL{_s7rFE^0C*s=+04p#s-w|qxn<q-aEBKmmB#+R^d=!o<WGE0YP<hlFV%j~747uS
z<l+@hC8r3%IIPOZDeD8tfbd`(@Ep^24fZ5wp8n%mOSqZq%bMPxafZ)LtYoJX<*Lxh
zKneE`{$0c?;yz%L`LSD2c5sE!RaZ$@=Hl(#_xu87jCr1WA0GrVN0oN!-QQtCi|iPi
zCfX8^y2P)93sCgsmB)p5m&;`QYu&yau075aG4ea+k6XG@QaQ}<JZn0J`jzb)JN2XL
zWxZ?>irz)!1JNG81+<sCH^;y!u9PKfVZ6HZWkOTR$*S|o*xIC!hAhRkXTvs}yLns_
z=7qyt6C!68uYpi4cn+|;ZYprJpB$|Qt+;0$48{f;yu7=+GF4jY<@sA!iUgy_vfe0O
zmDrX#GhGH-RpzmJd~`{?W`Xhj9+jkZ8rp+WZBi7X*Ur^2?U;kRdiVHuN7QM_hV|Pe
z5N_JuO|5uGCPnIIXly^o4-E2@8BxaEeR}YpJ-R#fp~Q6R!`_+0UaOOBE0X3#4Ohst
z|EAWB3CH8*zCThx8%TB`_u+T(ZbyYDf3%O4Q~qK<4soF>{pSSbj@M&JtDltP0N#&|
zuk6zVU?$3=Gx@f~UGht_j(yV#ZEyEO);#pDqWh8@Whj4v6t%u@*h{2a>&FxODP`7O
z>X*Z-O6BcP0<z*AKt)b@Y>&}gb|M4Y69ulrS)XNixwrjZlFC@2Xu)62o=bpq@EBdZ
zYMxDM=;>=dW?#8VUOdBKZa*?W6r$GV$ENM~y=>&kTPkBypLfZL+n@5@hO?sk5`46L
zNq=gy6qx!i%DB&8*tNF%XwjtWiBIBx9<-}=biCwS5&^USR^N$ZB7*%=G+?OF@>P6+
zOf+6I812zJCiT@zFNm(qMIaC7qu*;*va#X(2`WXpG1RC{mmkRGcr>Db*_>xb_w_VT
zla|Ud9?i-s#O((ZZ5y9M_hq;vp`tT4%HF?sx%TD&qOiD|gSX;9LS6d?!S<U`)z{Y?
zac_kIQalq55Apz8@&i@O=Kp~YoYr?Q9z%YZGAGCFP4aASR#!BEZu<PvFFyuI8}PaI
zlj8$liA%ubZ3k1U8_}O`1b*=ekp~~|fI?#U*08Gq+OEz%Nd<Bg?MD;sNBw{Z*|kG=
z9tk>{E3K4t#~YB;Lvz`4G(Pf+%oJ9p?+M81&=(x0mTg)l_WzxIr{4k9?MXaFqdgc9
zll)YA?X-2ri`h6I_ZZm1+(f8{CtfT6MHcs?BiZ5o(h%4}?*k}0#gzd+W-1xq8Ss*O
z`#^_Oc?pV^Tp%F-Z+>9PsxPAPHpNmIjmB61mAL&qlhH|fsD=B^8kQPd{clXWBD$b#
z&O+{q5970w^?G#VU*_aOjjnj$_jeisuKxEE8jYX(-<j!X-~OjC8m^t@*3CXC?5pEn
z010-TX`50Oz41C4RN2wbp8y{}^}H<q4YdZvZR4PAV}97XzaMD>0W;OUKT~`#iuxKr
zYoWa6z!lBQMz!TB)o;}nGAz=DQE|sbf#n-jwtOeEuZNi=&d}(!n#l-vELRIlSNiBh
zWe0E#`_L%ZLRi#xH+86VxV14S-HH-74H%CGf4kcoDr!|`tZ~};S5;O0)pi!IM{>;j
z_~O65hydMm1{CVH)3n)Vr{{p)Q3@GA_?`hRZb?*K$@e(lm3sr0d|)2x^kErv4zEAJ
z)t)|@(s@Pw1fXJDiTA3{kW)qT0E$yFU{hRDZ}VPPoM_7Oz98R?1VCF~hD!x+50Kk~
zzVXFuCkVjj+A60^?ESqjqHcjgP=Cn0E(~~B)Hambf#46Yf8--<b3xzNHC757fCe!3
z>2T#!kN2&ExJ)&B%ylO{&-#e0OZ&3E1Y~M`eY!@gE$^bX#O&<*-uY}1bbAMXN<rKJ
zI^!N+X94tSRW_>0&8gJ6`PC7|+hz}P{RNfie?Hkw?fs~C6Dz3AyRrZvB_PFrTz0sA
zR96|W+<&~(FAz()%M%w5OmJCbbK2*Z4REveZL{`m*OMJrtx!cey03sk(f5)u50rn8
zC_v*k=<nLEub-}j$cF;~FTI6*rMn3lGZs2`o)<g<IAT2F<1H#AXppbm7=bkZi#%lj
zh+H>#)<6Y6gZ1;G*JnY=zdfBDV$OH<bb4|qjTDiowt$x7`>)9;nn1$e^mSYWEI?5_
z3Cw3SOX=EIP`m;EIQ@~ff#OL0JeU9c+obk^vbPuFs5Ss>xw)b8k4lfgH}>5hL43eH
zpS@i0v%v-e5sw~Rf7yEaegA)HR}NHg$L#b9mf)Uc+v(4wG7C&8=u!l?C~z~NV!+~>
zp!WakhN1_IFaU9A%>dp}GH^{%wXAw4&|Dpj<MR)dZvmrvx@*|sKs|=}_4<^62DlYl
zfs;iefc*h=t!Ro7IyD%;A}i#=|Fv_ai2naEQIw(wJa%60qaG&;bcz<1V@+01i9{eC
zc}r4+Ep7o45tpogquI^GKF#1G#M2Mxbc~e;XpeAek)b)?lpMTV(r#I$FeMwPtg-HJ
zPy(uWm5}z}$_^%t+{-aDa0Kz2+V36!pzoEe(A3B+x6#;<%eQv}&$@WINDTw9#a)1M
z1{|(;%~vLE%_iqhwg&~ZClcAghx-k8L2BWs5#>K{XZoi%|L*2<{c_T1C0ooCEJf^M
zxkttkkp-DJmPB^sXl#?X`bJ(HD*S7GuKz_qS^?olsG5=C#t)m)GcMDuS9i(>YVtb5
zX?QQjAl>ro);s*A*NK>{Zj{q#MMTCW@!E>)P8L&=!~sr>aPz$&`Tj`7mzy(eC`TlG
z=q7e>hR%XIHlMID*HcV?VEb$^^16CmzRA8iQ>}vvmxV<TdIO-wjTQ9-v#8p|<|?CH
z3+HMWm(%sLzu~$qHDxaxhnw9OV(N={oYz?_f;_I|E?-hGT*`o7kh4&kE(sQHG+K;B
z8w(qcHf+ev^B7He;w~S+8|vbZ5UzgVKEDgBdOxQbE%NDv!!)Y%ujRfIC|z(X5Tn0N
zjQi82D58*{Q=I?h`{qcpNs94fVsgEcipQ)Ojp5DY>pE7&sr3#PI~MX$^-fV8&sr`^
zF4}m0H_PSGru8oQ(8XjqY9(b|Tz|Rz>&sFTU&9WD;a3dF0iloi1763$$jX|XsqPe1
z4l(IB3=(~V{)G9(fZU#Y((Il58K`iRR>5F;qD!qWu~G%_e(9590&rs0s^2rGwx3lc
zStffZ!aMa3G9@peFG=yf$uA+sS45ZcG;p3{kiE>AuoRL&XWehC>Y?FkpqonBb2(-?
zA1d=)D#qFl7xQ2T^&<}#bz)@Z0U8_P@4tvMqRu1X&7>xh$rXQSN=Aj>b>}+RlYUzp
z!Ron5_n%_9T1lEuhBk6iUaiF1Mt><X?v$ZHXYRhSeQl5tFc~LtMU`iqKtvgQDldNV
z{a0iNIkL7*!qa(6jeJ(?90{R<^exF^_dE;PT2sh$R|Ty(CW-=5Z2=5=y=jPk<LVv6
zcEa<L`~{T$Rhlu40zu^H@9V{z*24_*a9zRTY`E%ju<G;+CUa*FC*{0phpDIHDJ!>j
zSwzAm!k@O}tSLXdV(nkbsIAi_7AZXOt?JoDi4O(``VF=fW+E5i>;#!vPEWr7;1#^*
z17F^<7IM10LH)Gnz4*5cb}wyHnz{~KWh+<46q~)_O2I`}s#Hn%iO`Q16hEwd*1vj3
zU-m2d^s7FW=b3U)fYFbAN6Ammyls5&^b6yB*h}5Bw&8SdN9wsov&Vjx9KDut9(;{&
zE?*`fHQEo|Y!m=8b0#xUEgOlJO-|P?E{x)Du)XR(Y4hCLab%;q&qTE0%I3(pz|W6P
zUl(@hI%`RHW<xlBurmljWn?cWvV+LR*&mq@Kwo5uA*q|0C(M8Jwdl*kdCZjp8vH*^
zy3@|d!i`Fv%KmHpQ)?fWb8zQ)zkC2RzI#&?Aj$$JRa`X)9@Y6b8)(QaZCYrAyLUi4
zY(<Q8&=Cz=?Ro?M=OH?(+nI&5nqa5Ne8p=N2>NeYvBC05(4&1)We~}1#y6zkI)&BA
z{^(4=u0^0O;Pe3sqOf*Zooe=g&uRl88HCFn{<@f)K*i3%5wQ00-15=c*AAu>|Jr5;
zYh(wY5cL~6MKJf*7S@=@(=8wJ@BJJCB><OP;G{fvC>cr<NU3Sfb}tGhnL13NsEDC?
zL?LnoL_-m%jLL&>7;{q0(|3a*d+8Bj@_^+gpVLk^k9EI(AfG|lLXj1>0fDr-f<JhI
znakJ-fygLytNYDA!~@Xji4lP*P;LGDyoIfVEduBAhg(`fjW9&?J!)8J7Us1|rmZ~$
z!7)~LzsU1b`M%snF9{6a{xYT{4_ClvCbt2|koY#51CWmC_)$TJZ|)>`U|Ecf7e`=?
zYA2PJ*pj!h4K7nq&#sp+uBg`(?O-=c!87LLd?Qp4mL3G{Zz*LO7>_3HaJ5@<b{rFE
zsE2xgflkbQIg7xy#Wgx`Za|xW<hiPVp;1$|aCw9oaYshHdfHLn-*r2)Lh!u?=$VMB
z1zAk|+e0Rpx%Zh}yWs4MdX?l}ENnDsj1L@RNy(Q}#EAQOg3g!wLZ3yOziH(I(O$E?
z**%#fY~ay8*a-A#=k`EHYIMJBdEe9jesM9Nm3{vJL33ttsGmg*Ae?>Hexh!C7(_I8
z<pA?2QNt|cIJ7n5kXn(-`{Q*^;3QF|w9g%nkaJ^iUEy|$*MyDbj{nZaL(4bL+xt%l
zlnDq_&L)w+wbh2ixbg`{0DmjrgcrkT!d6%ZlAbuF-OgNTEnT9Mg<>hoOd|`S!Y?8f
zFjwG_-Y3TaemUz!NDW0!t~!;OLN-GcF59THEn<JR*G4_@BKzG>Y~+_>^?v^-5|;I?
zx?2h@f5W6(*=X{t8s?NB&n9Dd+d=FTQc0xH2s!+_h%vst3-waC^3?+>9=_yHATB^<
zG=f~q<54idRzc&6GVCE6+C_MG?>DIZs;Bzh2({wh9HA!pnt1-Bk-vH~z81L^Ds^Qu
zBD3U0wd(Y2daR#K8Q0bfI)*&d+Uosmp*EL7_SGc}J7vp8h%6AZK0~3WXO@D^Bk7FH
z5;?<ZA6Ab?+Ox8knX05ZDZN(k|1!tez!<Jj69QWuMM+iGmEfAkjzDFQPRSLgfRS1i
zkP3|jJW!|P+#DP}1CYL;osdTU&H@4+A?47)dPP4CAnEF(CDFyXXGXdgBX;SUkoQ}l
znJ|y>E(X^3&8g)+)f12J!Y@!8=SeVzGsj2%s42mfp2aO5<29udb`;c19%Af?tL5V0
za-@#&TR;*0m|;mXLOiAE?5kBJKKyx_w3;2153_3%YCCStdo#Yp%Or7(GYzq&Ux8u;
z5E)457lgHPxp#2IGL+kdv5BR|Y3|4RmUR_r1CP-5^^<WH%a@e-OJ!QuSkj6pTih!7
zI6}AdiUOHREN~_ud*$*v{H;oH8xJQuFh;(6UOCWSzxzxisSGy2l7Q<CZQ_`CtlrJ3
zJtY<ZAl1||tNBt>olQZ9ooa{*sTSj@G(8mQG#X%M&1cDR;HUu=lx>U=s&zM1cGg-*
zP~ynjb{MST$a`+MULB=glB=}#r4eZ7-it3)j<;FgFihNH$ogq7Z80vID-t9@tZk_l
zIl<p+<W<Cwx|b5Bb8#9&R->LJII$e`dA*`C<V}$h_y~e=)2@+OFmBZ1M{bK6CV-e6
z6-HmVSQ`*$S2%0i@Y}r~{}<q8tU|j+X3;%U9Bo<%TgY7Tt)BPV-=)~K%PU#8$_}_i
zNLb!Cqz${cbtFRWjlkhpE^fn$Igwa%2hghwm`>?cI(ICaYxdtUsKvbU4avaN>1sS1
zRxfk%o9tS$c_Eo%WUg^WdPhsJkhI?&X8W4ma0pHrBEnVo=`Bj5CJr7Ye^$7eM=B1!
zrg}I2gN7A{^>_uY`CE29?dyU>^9Cpy{~|g@V(1p?XnzN`TNms4DPTyFnX1iRA=2Wk
zHU-P-f+sqeW2$h@xb=1>r*_?L0s)DT30{b2Oo(4Zj=Qsj<2GA6YNOcSn`$8(2D|QS
z-E~%aYeM6?TQ$GnC-q$`syX@eXx;9I2?Qgux%NvQF3c`p1ie%2bu=PB&`{!My-Y(k
zd&w<eix}j(&aoU)oIZdU^&n5X$XmT~FjaTq>^h!*VGxgWQT)6$P+kW`Pg}aGG`yg7
z{=B($`xEE>vku3+aeA+X(&%?cs&#Wzqmz~3t;jXc*a|{R6;ceJtTGx1y2oeH)0D0l
z!vW$DeJqSQA-)+2?_OB1HO{}6z<0F09kS21JEkFu?RfiV2=j3OZ_MM+LfU^x<{V+e
zgBZ`HXuHJC=tnBuBsAZ-W`9V<DqIQ`)^F>u61;P>>zVZA=Ju<d$-A2fq=b}%0heJ<
z*HyRAUWW&I%2u>FuEKv%Hb0#UD+o<5kWhx{v%R@s2Vq2uT<7&5B5&FVpk7R68RB=(
zc)OVYzGD9xXY-gJJNfa9!8EUNMgn2KhRkX?71mU#{`C9x$`RtQecHAK+2eubPA1jM
zfz1sjF2)|dReTh?<ZpyDmT-~v{$E>nQ>UX~u{p|VCxE=2f@d2bD&Em+ftkrt7J7(`
z5DhPCsD9vdas0!o?T=#$NHnFjFGyLJNc>p5u7rece<al>3p8-Buv<otBCMuYJ7R}u
zuGB}v<b?jHzGefbW>WAB$J+o}Y?(P)*&*rt^*l>a*}BoavwKeThx?T_SkNW*Dwm6$
zxEE7y-z~bleOq9D0^Zr_OcJprhBBO=+<$sQW%AeVF5>V3Hh$$WDJX~7g+KU@6#@+s
zj*C*0o}!AFpkm(jcW=)G{m4jvh|$pKmOK0`=f7QQ6_E4<L1DGmZ5+7sJ}U_?v(*0x
z9m7z|$yECL?|Q8^qUYtR=<dBnu7^%s(#*?y?&bMjW_!^d!`p))^?$$AC*Mz9bA}7h
z_3piUVe&e>sbUd%KfAKFZJYo{OF*=}T7ZK&yWV}0<+G}3ogp3tOG$>$V`;uU^4Oey
zp(u&X?~%;L?2fTjYE$~j$kdg^=6sQjC>5p*iRWh9ZE`fzVB0VzGFeGxCbKvG5~!DJ
z+zlwFEgdX);}W6U@jG&>_Q!__O^eIuK1ls3u!aDnz|+B@GSre*4l)t9qMrdKJx<aS
zm~FLFFbIK!%FXHuBa3itu8z;8wr`qT83#u`upoDH<1qCJ06Ech{y9P|C;IYeFCeF>
zLhAzoXdSq^8(2xF(^w5o2>Ke^U{gSFg9Cyg&9|=?pykZ;X2Ioc@U1m_3)j+c^|PS>
zB_K}mtUoW^oe7%xC(&c3I4|kRr_&50?aem17XAIE9hlHUJ?2`-xO`^o{Y+h!t}GWQ
zytyXOLL}c!aBQTr?+-}fbY-?Ys!G*XXPW`oG##BNE3H?_mHb<v{juuC5=DYNskZ*>
z({VgJYt(WTtB(|sZam{dOJgt=B0mT%w`@Er#)JnQga`c%&pJ6=plx_R^%B1KiMcJV
zg|XL(*cUfh{`~zUr`-E8u!_sPyVy>KQrhwtZg<fFI`pfyOM#h)tHdp9lMT@1Mf#H_
zKnqbn-uw$}5Q@%teMxb<W$3cg$}8lD9HZYg$C|xZKuvTk_`xr17s(1t!4qKp%4ZeJ
zYcYbDIalU~J`#Cu79+fFM{Ciyd}m$OEoCe3{ZW~i+!G-e{038d`lqm?(B;34URS1!
zmW(kT#bGhd9v4czBIjW3mL9o2CEinBh4ZjXY2sLw=8l-z>G|)t*5LwNVBG5t!}E&^
zfuV_TuOov>@8J5GM>(;9KT`x2%_{$1zV=vMaD7XMafedAF~n&#X1o$cGPI#5+RhAO
zCC7@2^!0}jZ>HXJ(*5=JdG-9#xtC!GklW)nCMVz?P>zx^Z1_wy&&6cv10I{erydvT
z-gIa;!?;@K>``h-<v1dCST=3>+#8=kU+H8!*FFxTB?FAd#r!^&TQg9~{NmNJh*+BZ
z_nBjFUf0woFkb20J@v#c=MDG>5xM`vkv9J5WsmpRFdV&8^`oCE3gK=XA*ml$M2m!<
zoy~drcGLBTbu2W1gfCBhnYp+TDQuw}g1A_0$nEU4AyS~BB)9j6A?-<}%!7$f7ZcVM
z=?&1Zu8xVo!5Zazr$^_CU0ZwZgqqhLl^~p|es#5ay(^00_v>QPPGwFgYn~*)FdnFa
zr>!1t<38Qk*v<TgiEhblG|Wrz9=a%ojI<cz-Es~!8Q@KuvR|f`2RpEMldK(!kx|}Z
z6R#bttXp%c)O);hQ0#vut&&w^rtJw$CgrZ+z1F`Sra~?B1Px3<diq@8&XTD$7@bX;
z@j5Pli~GFA-|~a|Ud!hbD--2cWX*3S?@d*}Fz(VRQhoNc(@%SmyF45<yyzVZlaPsI
zH#rLp;X+A;r|J7U;x7hi@7V*YHS$qIwu=hLn-vqnV1k!fP5gvb$h~-qi>KbiAmJES
z@iW4|G`rGGJ$$zpN$mPFPW;Ut&U@9dH%qXqzuTz~XXTD(PY>el+9jW%KJ0Wod|0h5
zYU0NOE8MmJ(j&MR22;uAMN8ay<08I4jQfa0)xI3nzm4nK&<Y#zM5;B7vr6C6={k>-
zUAumCMm=Nd-T3yIWuab%zbQd`%pA!_Vm(8Uz~#}vauKx4F=kLRc#2qi2NRAuoSHd8
z+i7kZjDLJGf{?qhR^Bi@bob0`Jc`J^{YyrzpLN*wYwKZm<zZxD#$;SQmkT@19E0_A
zOC0-%_^Jify-60OY$-Hes5%fP#xL~k-LE0S7^j@xMy8FXSN?ZSpb?quxgx!dO4nCx
zI_}&Zh15t44*H<HC&wNp2bH<IR*|j*>K{p{#iMKE?s-yZPV-<H?T3RzpZmLG=fPFb
z5LKif%w!87){5-m-CO4Se?NnwiN{NO5re<I0Y>O;WD4Sd>H5yIR#7yb(Jso|A`G^B
z$kxLFx?mY=j}HDh5j&A2uL{Nfq!b?{S{(4rbpa%_>wPzz9^Dt&U_Z-21SAqxZPA3K
zF(f>e2lx3aQ$+m36cDLJRRRY@{zEukzyVY5&FUCKLP@q}^9v87PI)4>H+yx!X;E^w
zEUm3v+}&1tUyXB$n1e%)UIy_~Dz>ee0wz{P8FfSjZuhh)o<~ntdg(b`0D=2L!PV}>
zG8}6W!J}dQk+RX^wd{$AkrvqZfe7YjirQTIad)M?p6N%wCvNF6*NUc^gPoFwNXbX4
zrBf?8x61m{Rt2)9H{S{H#|^xhB-5c-e<9A)>ZFcaK7AUX&m#GLS1NE}I-lNPsqa+)
zC@2sRz*}xG#sd78E6O30B5Kusp8Bm(^0k2)7)guG_uH(V-INFvD|AwCrV2I_(bJj3
zJ@THQlOJgxaDJ14etZV)74eH*8n#raOdceelA1*d)m*oY4!kd0Eu+t$&|DuVgOTj>
zEPnj{GDz&uAE>8fw77(;D)kMJpO}g!B=eo#-w?A<t{0kouz)=!Q9H2%O!&0U2i#G%
zYGh|oXj;)&CoZbhLP|CE%MA!OIDeK886PIPDLYA^@%g!Zhl5Q#;G%rC7=`m`BiHsJ
zhV9@Z-6ilSDvkPH5w5vVNpw0jZMJY8EJ=D48y)z90N+41jCmW<I|g`1d2iK&E;L>|
z9Yda?oLF1IjaxS9&y*1i-F^m@F;fZ)?zl)LPey^JbI`)L{;R>@mLQqo--p+E@N6AI
zK^H7f3xVSh=robVG|Kni7M@+)UMuB(c>2;Dor5}NdtU-u{+_*Y!w$A5{UW#c8B>z#
zJ8*iOyXp$6aAzq+#A3*{DOs_p-r^q`)P+;o0rf2p=ewVpsZdDz8re+_wJ?A_2S<T}
z<vk$dgG4q-7eY+g5dCcoj8q^~z)_f(eChCXNF5H8C$jmw@rS-*+!Oku6@Jv`(-}uz
z8+Z*n<roqOMK^0a!G9{aeX9|2I_GN?ZwOmqG|VegEymnl$mS3EKLJ2bhKi)B&Bisq
z)a>ULWY~WPwHU|FK6whMJhi~EO7<D_F*pr(WA}ka^Sg%7q%@k=m!}`+MJ;;3jqj88
zZ(S_z$&ZDlq%r^N2F>XWOo4}6v&kd@SzY`QoJ%GH{~rTDTr^orXnhQgKf4)YJNY|s
z;*eYC4yxH>e=tuK;7GU9fake+u3bEx`W|Ev4+;{^SRTQ&JO6%J0FSUxD4eJU|E$I6
z&K%&%icaH64H|_g*VD;!R|%pbJ>Zp{Ls!QvC^MT5!E`o`5O-}c4^E}%r7JSQlzNw)
zgHC<d1~3ztp^##>5&HPgTkU*Y6!%22F4C9Z{0cbs3-m&cf_pS4`^C)<6YtC{ebc@K
z1S5l7;?XI9k;cU=6pT7rk{5=F0<a%kL#D+vrz%#WFkD2cP^tpbITs@j=!4Lu#sQSA
z92}pZ=4a6RY7fY0T}(Zv<M?vxWc^n=B~O0;FU?(fIFxVOj#NmLE&Enl>?AaZB9xG<
zjV#&9uFS};sic%pkzz<_ERB6@L`s&jgfW(}g=~Y6B@w>s;di|6`~CBM|Gxh@o@1W-
zx$o<_pZhxR>pss@CK<$s?IxyfqIZ%vM<RExifN`-5?#4S^jiBU{P&bJ>xab-D+H0N
z^;gc-^5<5r(9}F)$q}s7h+r#fysd~6G9dTE-ly5>T8haR-MAUs^)ySzzIcR;Ax)yi
zXMOM;ZLWTwDQdV+w(%Wmq4e+)ZosmLkbt)ibS%T+s0KCzvUobG#-nYhU>*%u7)LtC
zvN%3uy0|mP_JhsihQUVy^EZGm4YHdMu&sHj^6ut)mzsv>vf*CBp?~LakJbHuIi6=W
zb*^#@DyPqI3i^|Ij_>75)^8OGhiv}jWgbMSo88XaPR9tf)64iJ*1mT8aG@1NrlvVD
z`D-!~w6ar^%3l5Nq4tkgYmpazDBz|oV3??K9q8G__y?@}9}`FD3pCz5i0P=^e@rpI
z03E(@AeUZ?P?!1!G^s7@xJ4APFXQGLYD%5Au4I2r;6vXs2@$AvH4fC;Sq#u5y`Cjr
zdo@84y6&o($k(YGES~A}V)gfo+ry;>YHW{RmJOBYRzBrce(sG-=81;bJ?L#kXIQ(e
z)(r5EtV5SMT=!c|MVWXeJ2i1}JyeV7SvMEHL#dMQEdI7+5NcuF#?8ypYJG;Uib$3Z
zx_RMfSG&g!E;|#vxk%O`@G2AqGreMZ%}%aJSe_`N9LxzDjoiLr;j*i0+&D%`>%Oq)
z@I>5_?q?8bzh$?~B@6ML!>Rpj^)#JC&y5>MQX>Ou?59NWU;Wrsd_QyRaTT(J_o5>l
z4|2Ufk{Zb##iIp0G+}FXffnv!@hcq>gvaWaeXblA?59RXhk97}dp+156YVH$qaqeH
zBj^xekIf0B$d_N?DkWL9PluK{ZWQ~qyyJG+rfeoFG2ugZ@`+xbua4Mp<_<G~FgB;e
z{lbU$1oeEb)9FoC62C58R1A!xl4GwmPsifzcV+*?85XL-0VYZ`&zK;6LsViSr2C1T
zsQjVO>`&%=Ymr_aAK6Fjh4$)mEyRWg$T&3Jj}VQ9LKF6jL+=HrPOMc*?{+UOyEe_K
zg!Imfe4dtvFFNtDFsIhJ-*7i0bdns`dTzHrv+wUZCqPInEt8HZaf<yddOEFZmh5nU
z)<Zhk0Hv-sB!ToQuH??IgLj`gl{(N@_wX9sEXWo+&xp~tOEqNE7Vnb{yqWy7vVv`~
z3f<s~Ut&~kCT0cISM%VPW|ak3-xRAUn9#9xtX==^@tOT(_@VSV@pUC<#=r8E36<}&
zI>8HyH@-?7IkQ-djwd;Wmx}DcKTdh?)N|~cRc}eM#4rc*$=hcKg|o?SQ9Zpw)Pp&v
zt+L74o(=gt>IBV;CF7XVa%uW-5UAJEigvvXv57Uex9`Y%Pkyfbr|9+7B<YasVV5sw
z6YZA13>TOC^%QZsh}TZ`6LdL#)%m;=x)2c3ZxFaVLf1_jAJ`FO8neQIRSziPk5iV8
zXszSzm{K_u9mC^aPQ*D-hvu>mC#usThwtDFSA(VxrKOOQp6Vr-#}<3;j_K_v?f7-!
zWciQnd`1enD<yGJcMM$IQC;Y;l7K{c?;fVbvJ?2D4;<6ATx-eJ(|L^C^n&avHUupx
zqCh`^?b$a~^H4Xu9+rCJT9c3UOpsP^@xv(d*RQeSrsT;Sb_>S9yvfMxh30<aUKY9=
zgE}gsIu*-V`HV`nWZ$;hRC~s(;QMqxvmEvnSb+Lirn_w2^Aw+7^;M!Jse`1hXHYaU
zKlJOMjQMk~Y?S)7<{&lel$w|TH4nG!Zeh)b^f))lbQM>IgSf&_vLvc+(DPxmXbTrz
zl8=G`DOmBsgjj6k<d}M>jWGzfLE>lz2h3~$9)()a*+a)VgnR?fy??!9Q@G6xeh8ow
z=--aMW2U%cI-S(jGC{j|4-#sXA;4L@w{e*YoOfS8`cV`bxd@G<smLpVwll!@haw{#
zV<SkplDL#34S;QvBye;m_>jD2O!Nawf+E6d^bUF~yWb+kBJ|hOWX{FZPrOJj;$T;q
zOBDvH<^(ykksgO)0+N<3@1I&CQ>aorl49lfK{0Su%RuWAqudOBholZPY7f}6CXHTq
z2~g@xSmZg#l*gfet{1~n-C)0nVSyav0Uho6<Dr4Vkk$k^L>X3KHUEv@SV`60<N?5=
zd!UttC=%R&9b=n;W{2TI-M*pK0=VQfwrd8GpBDTX&Yrej0L^cCyF@1d?;$~MX?~M5
z0IVaCJmi3Sf~930u~evDHs%Na5=0&vaBtQNV)If6R<I&C;qg@cFs&PISeoo0c2{!%
zep@+j8@jMbEue>R^21Npjg?_5{qygjI)jL}03BvU<#dp(5?q@4`&|$&9l>$TRIdI6
z3GAY>Wx>AXwSkQ__mWPYq<8O5Xj%1i<Zi6wZXk5%ln>i!NZvgHnl-kQ%YcH$ckX7O
z9h`;Za`m9)y!L_pA;4?dtMY8yeE-$}fylXKJ@XF6{Eo>%<KHv}eaMZ^o3~91>wuHO
zBjI9*RU7;${VL-IqE(p?g%{8R11g#C3BinGR!<x{&A0#~{;9gLs0$}Gz{P;XTLNcz
z6T(=yVX|4cA9_~@7orY){_O;p8k*Vqp+n&iRW@<GH797k;THkRs3`&wK`CFE`iG4I
zSL|G1;<fR<TC0Zl6+V}$1ON&JF<M|59N0V;1B7}F-cp}$NKX_i-czGaoADnDi4W`J
zt()`?n9)jbgtnII3DczSPjw)p=64nP!=3|`!MAtNQ`mv;UO7A7nmW94VgQL_2E-99
znEQDKgtW;gg98k&{sW9pSfzpY2K=HP3|gA&md4`7I$aE+FOx7wy-X1l0h0(Jr}&>m
z$Yl0{2&$WeP`&3(vL%29b`_D3Mlw%sft~#bb7bNVc4e?SoWy|oe_GH%7%MOVx8XV<
zT>i(@J{X4n`f?c9Q%(F_9h<uZ#0m#v(>6c3@K<_N{60i)8+|Z@dww)Dgp&B7<~>6`
zD}va(=qIr&G)gwfIex^OK6F7hbRiN*``)U<((nI)Tg$(&v4}QsK*RDijEi(2&xWv=
zceSs-njXIL_dv{3b0wBrbJA(O3Z&=9k^&XBfsId;wzQ163IOjP2+8Q``Q04w(ht)=
zfRF#xA?TYyH?7wKLz-vRT;4nWv`QWoJU`k5c#1o0lx(CCtAX+gSX)^H3eniCfkC3`
z&E`Gnhy#?2ZROkC&p*H<AzWGdj>G8-KCY$>#crLPi&+i{YTcamgGpYc-#v#r$WD&7
z)b`1iiQWg*Ct;$9;2bdMEaWrb8Y(q4Xs#Fkllp<wH9Z`q(L9*Yn8Wv+mVuRK*LR6x
z7C1u5l5ul5?Oo2TmK*gbz(eG~q|n92zC#%F+o=sbd_U5x)|1oLFqDh*4p{22#q{q*
zi)#FR^T`QrqJGGN#fVw$KtSJ6R&c2@Emi*>_1y!x94=`YIH<(8I8RSn-!MBT{(~x{
zqi7l_Uz**Oj=SXXD8jS;*Qf+~fvA*a{lI`FbkX?sbeXB-q8c?~bn1NxLDTURvHreC
zP66{1?h~cyk^B7ou9Yh97}CONPNTEzIp@qAU7>#V=v>Z;BN+>JVvDv-M3Tp?!CU5+
z`*u34Z^Qe>U4ki-!}y5eGWojwG{*;Y>p-*&(JhxIE&q$0r2NL!VVrl^I9D&@tr>Nn
zRft-)yTPw6`LFe_5;}DBsab|rYzNspK427i%h$~ceN|6Cy>77(*AkEG(w2RoU@Stt
z!O2=DTAs)4@?qD=3jeTS;Lq*PpQUvY9j~+)etng{Y<JB=WJSXDh0g_pU@}R>E#G3N
z_<)Z6g1fF}VN1Z-Rw8Mdo2z_q*|J6Q5VtRw*DM(@z`i2BiWTL7Wtwgkx?FA%^&{vx
z@ppZHer>erq`7VAq<qG4k%&xh#s`Gw72->a=0|%L^8AQ~**R(p>(-P~#`ELhb)oxS
zeqwTpIQ70yujWvI5%b5>BLJ7wC@xR;9TC2w&6r>rrXA*7cj_KTN(6fD@1Ho$%MGct
zXS6IYmz@<dXM`WL8u!RcdS2jr#b4&ZO5+h5rYVhxucf>uPnAGOS(&EZkazxATc!FW
zb3bY^=9)i#;iNq8Kn|_w=2xLHf4lt>>|9Y47bAmJ5Kt|h(uy~5qV#l1kTu=a&Z^$}
zz76>IU$kReTyov*kE>|6NEM-D_SPQheXVj$d5`wM*GfW}Nmiy|PpP7=8;4*D(fM#>
zz%9iyr8M7h(qa9fw0q^+0j&an0E8l<VToSDqAIfV@1)?^ts>RJCg(r)U{On}C(YC@
za89=P;th4vGY!jK9{xrbCf!^Nx)pJDse@KTQ5<EHiaW}{_AEHdY~b7lVy67_yt9PT
zLcVe6je+g*^!-oa2Dtm0EZ!BbCFBh%vYHH?1oo!=^!S(|Mc^T)cxRE_`j+JH9zH#E
zON;gMzNFBMaYa=r_(rtoS0{_YPYE#w^xw#<i@Hwqt&CHi36qZNj|vw<hrI9mRD!ZE
z4C{&wT;_WC``7jZ`QqryZXE*wF<C^4OLiGQw*9Bf$xMM`ZB+Y@Hj9q0$ew3viVDJF
zQy<$^h{Xyf>KT5_*=gSzn;kc1xwCGsYeV7q$0m+e)hjIVb3O{pp_j2e(kNN<oF7{9
zltPZ8HbJ#lYo7w7)klVI8$ah?=D)@ooT+tB`!-suOC%^WOr{#?@IkR1o!=^XvRI&p
zY`&9A-4r`$`RTUTxe~#iXPI3E9dCpA%UpBYsszhr74^#>SD#f5cnF-hiwZ7NcNWde
z2d(%rt=JyjdDXFV=o9l{nM3!r;@V3o+EWqo>4HZM3Aq-1kK0xMK6^*LsydFLP9iA-
zC0aFKk2<>``)OgSi12$j4J*yKrB#QtwI!AAxFX?c{<u76au$p{r2Rh`{Tq+PJq2ZE
zA|@XSJe+{XWEADgiV=yu1uXr7kX}{K2M|S5$;HmBA7GMfXLN6$V7nx8fd{vHzs%ne
z+w~E;3Varlj%Wv9^Rf}YgFbAZiqB|cYpZdvhJqSW6!1n=oNTvrDgI1yGwQNlXxQpR
z00m@!%+5p}AlC?KJy3u==Ky)GmYsS-WgOGcEv^Jz+zuEg$9NAU>zAg3M*!S`#6AEO
zXZaOOmzr64=HaFXa1(psZKHnyIW5Q%;b(J?J0gCNgUXvv$E<AgGsOdk|G(qm5GM^s
z#8OM<a@i~)bcJx{uctRXr24AM3`(>G;X=(<atKH0Pyg>q<xZnJzDR|F^AtEcinZP1
zZ~$Pdevci>7PwkK3X$SPBi=0&afSNs(7;YWDb}e#biy3Z{A3Iv{Kxa;8E}{IymF)P
z3fUp~i#zW~?tqs&!2==OBH7xw)sJI{FRHx&+93K>y4egAK)L{%{vxpW;sl&8Beq9H
z{vHJJzvAI<J0~EqCtb~aQ3d|J{eHudFArD_m-lM~1HrjA1a}weB#01m5w*5FHykbn
ztZ!gX1F_r<KK~i0Uk)GMtZ7ODlp#qn80?gcCEqIg(!$7$U@pW2O^LiV-g=;ky_A>V
z7y-YV&S%ag*wG=_eR$OBm?E=20QMB6FFX)KV|FemqQFrgsVPw-cx9nI)8s#Yq?|C#
zaahl@@Qb({EN;T|Q(qIBj-&eAU75iDYqM$hlGX`l6MZ{)yb(O!xsVwCb<Q-}xp4E6
zGIGg;xLSar+$<d2$AjRwlkonVMtKp#J_dM63)--2Py!NEVdmyTz^DLI*c~$8q#U|J
zPFCU<!fg%%ywLjGlNN<oD<V_7XBpw~w={*3*5@A?Dkq@n;p;?31szUJP2I&Nr1-yY
zl(i;dz)sJ(`Tz_B;34pk6Pk|w-y;bIH)$xz{=22BUKCL^09&}XfrX*p|6OBCiz^2x
z&uPPBTF;QM7I4Iy5oY?zZ-Vb<pX_Ia?R4s6KY9k%mss`?l~OEjseuz-;8;4mVpyg2
z!f&yE@(o}5Y8L<A>+k3?qkd}{X8Ht#hn)YpZ3CI<yOCzMYzf&_HvoOVQHFc>#z$0r
zLaog;IAz(D^!Ts;^`~|aWS=u7lmtr$#+yl-CAYkYdDELCP%@VP2;=;;2aZVA5z|l+
zZz)_2W~CXg3Un_hvZZ`TD4GU*3C=X;JWm+7%7IG;XOGNxcTmi%L@8r7GUe!=i~UO#
zDn)a*D{QZYtIqh=h^qbms@I&*t3zNj+QW@}<?&VaD5CZI9hNs2udM;)&dua??%OwQ
zopUQOFPV4Gj~6}GP?P9mZ+A^=pcU1TJ9Df#uB>X@P>VDy6h_M1(Fs*gP||cu5BEDT
zqnT48&CQ8*jAjy*<^+ceITBBJUtByJ<>YkA*<?4Uu(_<yJY@M=pVi%Ezbf=h*D5EL
z`n<UYSD$tK#Hd`g$L=IbAMR~Q2K{6GP%^!<Q|OTQRXaJ42I8`u7#Ec;*`YhD#;ml@
zme*)(z0Y14W^p+5-h+3RGoPW_<nt2&wt_{ANia@hs<F-{OT>LGY^X1Ayx4Pm7?18s
zBa3E8eE-vryTsqB^MYb)l;n1Xe~|*by9)c&jqGKOjoirW4ylaCGBj%C9Wz|9G_^8o
z`JEWr;?dxPiJJ2vM=~P1eX?(G`b<u6*4+A*?+#+ip1DFW^Xa~`_vmIM>`~KIY05&)
z_ayWU5Avkk7PWT6QfWL6CJhPuFXf%T7iNH(E-XBGd3HI(uEQX(k#EworY(m{P@t=F
zEOJrV)W@z#W{=^vo|oAKV%nr<eQ(>Mw+rYz=QEy^B;~LzKXObUMH-H+zuO#qbd>^%
z*jl(W!#DG?ES)MbDgXMpsZ%GdsD?6TPQ1dWa*if7pTxk5?^rVEjHwyC9m&#20$aLW
z1xcu-yM_CURa;JkV$!xB7JO4te95Y?C#C5QH;CxV6m1B7E8p*5`M%*-GN^>$wYvyj
z>t%>*b&<Tg%O}p#Eh|>1VC==<kvF{Phv~XKHbHbRwNKmn>rKDI><982zXNOUFxKc#
zEsGBdrzYoCCzT@<R2PF|Jw7B-jUq(tGrb#)I_j2m`|&W->fUC*j0&oK7J0BlfYHC?
zlI_6H@wOMYGAhxHc&H}U<q4K~m^23d=Q}6j-t0Kge0DcU*;PL=zeMqzT+p-`NiRU0
zUFIzqVO*G0ppN^`<h{aXzvPd6F&2&TSlH`Jc`HbM!umCs-TL9-ol{y;Oa8>;9s=!H
zM&qvEifm|8T-o{a;v+PXHq9STRwku=4-h@;#W<$#ZCsb_<|)bcOeL>Psov*=PZ*hY
z>PCJh#bT#^?eM%l(rFr}-2LK14buU8HFeSR=V8@DT!wYAw-)+|D(_UYMk~Wcy{_9D
zb+&_Q^zMVBups-uS~(^tqQ5+j;eN{#1{+pTUfg`K)OaeD{DRIw2xj+|H`vwPT==9t
z$M-;^P0(n9(HuS9Yw~VQ!dYm=n7)v<07aGow*H3Cb%&UO*5{Kqy1#{Vj2qp{L%#3E
zb9UzVO0XjZS7YbMsM<J@D!%|GS`ib}e83IJ^H^?!PMD!=Lo)2gadEJINjnujvuv5T
zsDKlOWqM0)Vrj!Lj`2V7@c=y09QsXsA=&MPA^n*8&JSBwC<>5rf+&O1C~MuMS#~H!
z;Gnvs73Vs?51%9Lunb$He;jre1MV4iCa9_bhCGLGqvB$?|DM`(dV!VE3D)(7dMzuP
zS7eWor`I6chy!rYZ}TdKWJhUa-w$vMR4oA^qtm7Lx2jaz7)Bv)d^<xTz%DGQz~C+P
zc<X#57_CcKZB#Xe+Q=5|e94mo|FdG(UJV4);of0a5c-r>TnAIow3}@pSdn5XIQ5Yg
zdqrF>+i+vKPGg;B@nJ<mf0Ci{?}%(D9G|SMXWbV-Kof?+nKA)-5?d0+1vQp$dIZqs
zZUYuictc#U@=Kma&&i~cYY2?HAf~PmQ%YKvnC_OV9Q1GyQr{;I)AT^Zpr{(OT(7n?
zMwz`wF{ED%Lr56_F#vt#s5s1w>N_vN1O+3@L|`8IG4o;Ioyle1g@T0?BwriGATkiz
z3<%G^L%c3Qyb6bYrpaSSPqjJVa8?fRY{1U?zT-H<o6m3112isx>PBJ8be9~e@A@w$
zsP@Ez8LGPcg+@gGqYT6UmrLp&5cw!p&>`bBg$`%x+3(skXn|Xj;1+cgDFvXa|C7;r
zQNiG87oCo!Cm7-bAeyGZoT{5><q$+uBVb`%O@9}|LfqVbS(}Bw<zl`_8a3Isyzx>}
Xs_D5@n>PI8ifw1l7;5L7w!8g5Sq@c>

diff --git a/src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.vsd b/src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.vsd
deleted file mode 100644
index 905aed11310c5b0852fe0d51433ce7d5bb0f6446..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 154624
zcmeEv2V4}_`u3UGN^=XafTAp26kGv&TTro}h#=Uap(rSdpcGAvMpRIvF=C4`nurRC
zC{Yu;sE|aXxz|LKh$U*U7tpYaV2AylGqa1>5_7NjUi1GPe-F;i&Q3Y=p7(v;a?Tt*
zqBytu%ZBI46H6B&AhiZFBCfYxfOXdNSx$%u>kLq9Fc|1&`n@mU2Vm3d<!{geHMmCl
z{9Z5rf3`q4Nyfi4q9#Ek3IC^%x6ylFd{IFQ)Ni>L`K3u;yvV*Uvd>>V|BD>+uk7=8
zKL5*n{?s<uG~_KrG2eha>bIlrO2S7Cn|#kun^G*~zZpmpNGgy_x&tFfIvGdeI7zJk
z%jd5<5|*LuPY*}`fBv42zVXMZ?Ja7#s0|yyopT(C;bgxz&K-{{Nx^l*pg+(nOXBu?
z_MfIWKRpt)eJ^@`Gwf?0${$bk)P4W8>uG1ae|m1Z@JIdQzw~<3jP1|=if=!YEuj5V
zf_<a_T{p-77JwyS1vCI;04M-a07}3bumNlV6<`P00}en#pb_8*GzOXgPJkM423!DF
zzzuK*JOEFiDc}V(1DXTgfDh0D&;Ts~dVTb|DO%xkYoHC#7H9{w2RZ;9flfeYpbMY{
z0)RlEE6@$-4g>*IXnO*^fZjkb&<E%XgaG{j`uO?-VL&)A0Ehr0fq}pvU@$NQ7z(@r
z3<HJ(Zvs(3G!O&C0waKtKpYSci~>dj3BVX&ERYC{1E@SE1LJ`SKnjowqyg!`L|_u|
z7C^Q6WZ)fO3NRIT7nlZQ0FV0LUzL3P7>f%SA)3B!;kW+zUn&bPYpFXqR$kUI|H^Ux
z&gZB7hsDhb03kp*J=M>q{!ew)i}ZhboY%|WuLWw+V}y^qIy~*aw$R^;pYeMtQ*6l(
zB`aGrk}qB+CC$C>ZKV2D^u)Ge2;LNc+7||h2Iz08?xS{w>NIL=G5~5*-UsNuO8{zr
zRsz)a<O0<06adslZ3QfWRya02-X#b(wLAEaTb{R$-LY75=b&r!Ty%Nz|0Xy&)nU}e
z4M>YgOGq6tI!-+xEhT+yT6&5Pb%T@X_4SNPic5(}Y~eFLJ}x1Vq|yDmznv5_j{8B1
zdSF~iY(mn=IOy<XdcFN(CMJwZz{Z#q?)rPijf+c2N{tx@El-a(G#%^X;*v(irN*UA
zPUEhj-nJI%q<RO4PZ&YZXFSH^-{A!Gcwy-=i3#xulX1%Qq){ZU-u^M;;?$<ETM+C|
zzkBRlkG@TzZGrDb8Bfxp?w2_5s1{@d{T|oxoUi%s>+b!@U&B1oYwe$sJUMP;dP+=s
zd`fyeNwC4Tz|^;sMvP8LMk}j(B&MgPlF12l-yVrEcp#>2>8bSEBk%-#28@mw9~YGp
zhucoYwZ$co7W6oSVp3D%QYObG;8#g$32AYOB!zD8n~*d%)mt57It`3)3YDSAkiHy0
z>XS%+NMh(Y2aFh<l#rH|iXSJ&sYw!jo_M}vlOB$br;SVZG0FpXZn}+LSDg%WP~&t7
zahg8qDHG#J3n{+qm5?+kE+LhZg+9sS#wVvHq$MOL5lbA5UI&$9dfcJ>mB%JtN=u`{
zMCF+FC)4*KF}SQ0{_ZJPpx;wYM*9iX`E+Rs(BDh}XrIXh=ziG%J=aR(XZjuOn^FCH
zcaQ4ZyI-HKfdhiLJt_N(8b~(>_KgS%?-v*m)Gsh3XaM(f+8j|4apT4(#-zpd?*6D>
z2I32POu9VTFX_ESbZhC`vQ_(bt$lr4`qQ5EdU<Ir@I3uZ<=|Y_s>*wzqvabGLVtU1
zIYs5;8p!XnbTyTeG=R!U20&$M2|&3-4nX-t0YGKC3Q*E@oP_FXHU3xNe{cN%BD$Ii
z(x~(l=)bX)9zP{B^cv_wWhnp{(P7y5l;lw<G2_(n35jv3!^S0yNJ&mjj!#o3$3sWP
z4degw^&3V7Y#91>NND${kQM_6MBwM#ah`QfDw`p7hZ=}Joy?stTicuSbEyxp6%GSs
z1+>4=Hhmv3E#0sZW%_{sJA-W5ph46@A#gz$Qh?vmcBQ|gHZT#OOEwy{A#O4Zjg>;b
zthY3@FeAFpMBw$k;gj^{{FLsn9Wn3-65u&dzk)7(0ZSa;v^;q&-SI^<peBb+yWsx}
z?V}Hm)^U5>=8^c@6rlH*ffLYm({UJ1)A8G}`Ty+l_hW#sulRKfyl#QlE%3SpUbn#O
z7I@tPuUp`C3%qWD*Ddh61zxwn>lS$30<T-(bql<1f!8hYx&>ah!0Q%x-2#8-78pN%
z{0nBD<Z}5dexp5m_O!RRcYJ|GCX>D5_Yxi+-l<cks25o9_+IgQ>DslcTCHyN0?Vs^
zF9QY)XxOl!mzS5bv$MOqJO1+P{7RE1O(22%7Kudiia(cs{_~%cCr@6mV8Qa`%d@hw
z)^ZEB@atp8j&0MXO>%NFb~th3#H)EP6%`e|di4tUv&Gxn+s)1GiM=*$+Vo1@RB36c
zP$)!C`Kt>wGal0`buTARp0u*En)cThJfl&gM!iz^a_-zYv6xov{0qy75hGrydx4BK
zXwYD=X@PmcDsN=?ZTyz7u&@ptI^Zup#>dCwEA${d%vb7OcJ11w(P)}-3sf<`g6o7T
z#&%0fORO|*+*qkpHfq!e+p*N`oR*gMO5F>@J~}%3uXh*v3v_=x)>r3te0~4*ibQlY
zbhlUMUcgx#92}m<D8U3ETKKkZrT(4}yjSX8I(F<hefso*f`aYbQdCsLufyzP9e?@l
zJPm-+=eO`5RVvjhC1cP_|AIE=e*&EV+VJYg*b`Us>8GFe@8AE{ty|cRzt9YLI#}=A
zxicP6-Oh&(ALjR|+wy9zfDd22dX>Mnx_fEavgMH@M_%ND@mt*fA1p6;oEJIQpYAhz
z_UyObdh3aM0b6^)u7SI5*RCBJ;dzTxDy?g)g9i^jZ@2o}!G8ZWVLo;0l!b)_&Vt*)
z%EupnjN^cR78Vx%X**yC+%>QI>TA6E>!5!)1%Iejt5)GU|KK6=UqMt}uqErR5J&z~
zJ%Hw_+y9v>(C`rv5j+ce=3kM>G#~&ayiJ?pHoyGxOI|TP^MKg+;!;s}1n^$`O8fi;
z!ee7&Q@8&!S8Q!<eSCcWz}3dRfSmKcoiu4uP*Bh}+_H1$PN)~G;?|&B@I?5>ht{hv
zmd`xt(;HJ$Q}Hw*@XuSCHEV_)p8jF|EqE@lJ5blWbM4{bVQp;<rpIr=M!48@{pIt|
zKUXLeI31i;a96YdR``$j>+kQ+-w1ZAe~K4bA3l6I?E4=yDH`0)&hC#7b>P4OSlhZT
z057{mix&6@*BgR_l_&IA-JZ`|d1C)RK6~A_Z@>LE8ZbCG7%>_CZ|l~r(KqptUjhRI
zA%u1NzsL%%@K3wgiyY^#?gL%Hdnk#CiSSUcj^2U4xJPWk?O^?{`uP8=dwKfa(WJPT
zr?<cO7WhYgets{$|9@`JfB#;fsX(Xyb65D{NB&Fq0v7$J=BaK6u)Y_+jF+<KU%Hp1
zq$FtL`X>H)>(JZHn>T+cSNMVlxpU_ZH1N`;OJ8t*h!gJpMci$8<<O8Xc-VhuH(X4e
zB-CGlHvVIR_X<9je*OA^COu7L%*@RGnBak6BQ?XDcvyJ^(h;;lP#uB?bB~4J2my0)
za>5h*cN+W!e~Vt(y?b{U6fi^l<&6tgK$Sy6LjJ%CLncR#9Lf99JXb`J7Q6^oj*Z}2
z_!is23h?)jo8<*B^-p)h1-EV67HKlv%a}1^AUO#2<1)~^ixw>cP2ySlpB{(b;eTr@
zmn~ZckJ#1K719Exhri&5*n;PUmd6$D*s%i=f}45~4)DLdmltes2pjGWJqun>{hz>z
z!}ZrKkS^SH-A8`qk9A1>qy0D6kynC(g^I%+;i=(95X{6=t6Sjm;C|~qVg(;Zj~@Ns
zyvV<FE_7u6ju1A7Dtn%Z<hR2Eg8%iGj{o1^86FmhG~7l!raxGC?)~4tyuW(JEnBvr
z@nLPD1M3q2sPwvz=w(>`>XHBZ`$HkX1%^$;0-Ff?=;Gpnzze?xf1wre5j7tF{cHOd
z&X}E@4YOFMxR7dxKIcs*HuAQT*X{qp!T+~E!L6Ya{co?~-#j~XHUDTrLqic|s(VcT
z=3)OQKZhRUBeD1kTglrOm>%3z{p-QU`c%Ab9Y23{>?t~a-G$Yy2n2#TbLP}%r?9Xv
zO!e=MU&p=tcgW|{r+#`1j0m2{6OIGC2E@wnnCk8hD`3%2#9(n3|3U!y>1%jdTM#pZ
z;;pkO{0dCZ6EcS9f|y%=e*TITD{^vjK*(_cAUUtTjKTCgQ5OWJUH=*J>*!YX<?v-S
z@4tK;gthSqkUPTy5yJ8>AL{iFU$?;P7I@tPuUp`C3%qWD*DdgWrUmHSY&J$JN9S}i
zts6J}pZ;$;?rsJ!6UYRzfLXw7U=HveFc+8y(0SeF10Mi1)0Yh_1Qr2{fhE9F;6q>;
z@DZ>a_!w9L(D@@j0X_w2AxjRh8dw9Y1#*Er;4|QJU>%STtOqs#1;7`;Mu1Z9&A^wy
zSHKovE3ggN4(tGS0=t0SKq0UP*bD3fsH<BHd<}d9d<*Oc4glW)2Z2Mt_rO1Ze*%Yr
zAAlc$BfwGMC*Wt`7vLCB0vrcU04IS{z^}k*;0$mU_zfrp&H?9v3&2I-5^x!~0$c^I
z0oQ>tpd7dX+ys6HDgYgz2P%PEKow98+y?FdcY%Arec%D`5U2ra0RuoM7GwYx5CB3z
z1c(6%K<8&P1Iz&nz!I<m8UQjt4k!R6U=7#+wtxz-1MC3@pdru*a0D6yO#mlA4LAcX
zfGgkzxC0)5C(sn|0-6EM0XjeA>v^VMuG-~htyDLS2=P*PPl=h7kTlB5oQejW<&%3y
zLMFrML+?(%u%GA|@)n*!IKKn;cf9_HuopvnANs@DEUEhKMbiG*ClP{0*QtyhW*Fvu
z%+CB(#k=Mw85L>u(OZ+~I(?QmN0#XY_SY-1I+GY~R~l|T&`FrPdh%XInO-H#P!ToW
zA&_Ap#l^+s%9Sey^1}~55QMcW2#WZeNd}2G#K#ll`iTEDe}95FgmI=x?vkGS$NstB
zJo+NCVY$vwsWU6rIbOS!bH7R=E7#rDU#SkhS|#jIuIpZ|V@O16=Gv`{N_}tH8?s9M
zxd*<?mFm%DSF5mVM7fS75n1--x=y7JmoQ844YP4Mi@w%EC@R;9*O%)g<vM9Yp?SH^
z0v{~PbynrN23M;VPri7!#UVBl&GrrR?p1~*u?(qoP+n%7RIHQYww@Kl^dYrn`mADM
znSQyYwV~x?n~gosPtMHK?h^!DsXoZCJ+0-vma~IYF1Dn(!(^o(UbWH1S{TbZ+laDN
z;(uhTB-twIR>fqcnX_A-s!Ts?KMp1MmdF%2$>Ltt61OPpMqd5TJ<x?|RZa^W9h8D>
zmC#9*yH`0`DZXMiSt*(2Ep0l>`?9@*(tL`CMH7!ttn)07dRw)`N`oslI+0eZoP9`G
zZYz^F(KOT6_OjOQ8rEXjKQ9+u(5j*PDs>gB11)5`&EK{;>dhSWX4#|Of}@^^ns?p%
zv{~R5(WZNe?Lu3#Y}J9LR~qF^l``int>d*{3mj|~+AeTdXqz$0YoYC4rz4H-Y7e+L
zC@t1!t1PosR@tfs*(w=6$g@?7Y?U%wW$l)&DAVU2#r^p+t{3iE)g-eLVfz6cT|0MZ
ztMnqB<!zNrbR-)c*-5d!tx^~rDT<C1M@LGEJIg-}-Q2Gv^lJBVhLz_>uUE8HDxxEm
z(UI2cqa$siBW<H2Rnd`lWzmuLt0En;RSjb$dBU>;8eIyXtaKzDGe;i7Nfj+ad)bn;
zCxrp-BAL8>*s6rYj=zPIOX1Ca3unF^#eO?Va4Eb@ANcthVdCiaVTEJL^g9|#=ijlk
zR;%Mx&8EexqzY-LX+x$3da9jO?~eb(e_gKKr;R5og$t*MavjCpVx^0E{5(F#b>S4V
zg;U(k7f!LrwJX!_y@Yeud^sUOr=4Rx$2zB7Xi_H!yZQcCY|fRoVw<JDFPP;moaHT=
z<(;MJmDlKVT*AI<_(_<hO&~iuE@FXWqiyoU;mp*?ULBXbA6BL>x`A)+Pe>*cR`s+U
z8kHFJZd7*EnyAg80pEn~kGc|iH`IKHgVH8jm1V1pEY=C%SmZhQTPDEJ*JJVbBmH)1
z7iE0${lay9{eND&Zu-VlQRMflFCY9Yb=CDv(^oBCMe<hdSoQs?)2nW-GAvZvT5QT~
zoI6=5-~QPr){4A6$|Z}iVtrtbO)mbo9dmh)DsPWn-X44Pp}aMpSUb2M>^O3vZKG_J
zW3y~k<7`zEW#pkMX~T{)k80-}`S`n_H?+>*5=LRRApTosYKNnxtroRDdw{ILpRa&5
zS(27t%$2l^nA=@#EAdxJt+tt2Z7VUi+Gf#ro7_pIh_y9q^O>ZJbwaW5Tjst#XQeR1
ztVlF7{%X~di+3aTcn->t$URBR@7F{QIdEblX<gLvY^@|iESwqdU?UtDIy!W6H+AXz
zK{?s3*N=BAjVx_rZE3a53de6?wN2JpzG{obm5p21Z};}kR<+7jwVvY9#*Mw=V%<J4
zrc6I(zi?5hO>SxF!=)GRw(}h1ubp?hkF)=$mAA~VT3lh;MG)rdiA|>sDcVf!huU@R
zKDpg}ecG=#M895b`P=D8>80?1Aw^bwopitYOy5x*Ggj8BS35(np}~zg%4_2jn2=sg
zm&ASWQ?jD_&e#Yq#jO#98Q;l?8L#y1*H~75*S0#wY;@&F&%mY!CFCc?b<e<cKbbk(
zDqAmBUTc0glWDr=8_Cv=OPCHz*$zuRzbvbc$;ue*-*P6@krStnw(K7}v6ViLy>*w3
zXldVT)&%<yayPSJT)~KW2A#*&gIzQhotW*7v_EJR*ZXKM7|QV;7b278Y4hF=^33Sz
zUHw7nQJL_9Y|Q<6EoYz6EHQj$km=-w26d=kXp;`&pynUNw5rbVa(Xv3#3{<Dpi_oz
zp|cxV*mls;-%1LdKkMym`>j)n6S?Yi&&fj57~`b!Gy^no8Zt@qo@Rw+P@jFGaiKQJ
z4P%Ks&O2d!=v$3j>9fL?w9?0s#5cMpOQIa2nn!gWvcuW)^4^s#XZkrFoKO*6FkSn5
zGMVUku}ae^SsTiR;e{)$TlJs9_Mal?KZ)FmY;xY+X>rSj$=RW6LdQFi2LiIt;{1|U
z%X}5rL6?^ccQ`aTFItqGo4h^wP;#%K9acs7t+F=|yRlKdCi)$l$Fw<racJ9s52A9S
z)L%vIk2)T;PP5zN{cFkhM-cg{%c=I${HJxA7OWknjf*hf#^#<n+2+>F%WpU6=A~1&
zkN@g``=t@HYM7$db3R%~j<no=AY#*lP0<VdbLW<RsI^(AE&eTqwG)0a^Ww1wg1};Z
zsi4BP!n6E`*%JL{&9<@Mx1Q6^T-kq7ddn>0Kg)5(y$Soj-v7;nn17z15K9^>?oIe`
z+PZ1GryZX5+q7>(<xq{G_d<UwaS2)Q)~306_j?cNHZY=pqib8ITl5>d<y$6qfm`dv
z-x<E06W(`+^WAOngI4K|Sf;UR^M$il4c)Y1#l%)@X6dJ!`fuL!&8Bx$C8eIB>3i;N
zA{IrBi#)GPxw!qfy((n2Aqtb-?=L!9bfG9Xd028%az=7?z>)Cp2LBTC0~wn&Wx?=_
z`A1fL|Hdz09{IMo-PRGEb?jSd(yn)IMb10#P|>`ia|H>lh^a`e$f{UYkzWydXy{Kl
z|G0Yg(&#z!2koftd240^3AjakzS*iqt9(9`*)R>dFOKZNS$-Bq{@Shh`&ES1S2mCt
z3}yQMPFCk0P!ce@i&R~%(|`fMz)Rc6x|^3USF09XyqhUzBYO|LcI%vWtvK-7t>UfX
z^rE#w-3F0PEAW?nj6=YxYJZcRzt8M4oFc<PkPc-@d%gdOfY=<>c5&*jx@Vy))H1VK
zYa($_$zV(3vV?OO$2TQHMdOGp>6Pl47w?*XA`rE*A*I&o+pkxuZ^0E<2NLzEfvK2j
zV2;!Z$%2^%cU*B~t&BXBk-IXYlM&x@jf4#u6;mq{5`X5Q1rf6t8MMN{7<3B^4Eew?
z!=U@Xz{+&<4R-`O!$3x6(7oT&Ak;aM5n%B1deZsb6GS6~!v%u`;cP!9n6V7T>xyP`
z-o(;g#zw0`vvn=k2`O9B-BMTyDyq7>nq9iXh{ak#nSS)us-d^_>MktTa-|Q~-PQ+*
zdYi4dcy}I}&L;qEru|&_^Cr<o@!9=58*J6~Z)0{ua8_Qf6R@H#LPq%e4Tcq_-_}LP
zGAD?r_694c6pK_JiWyP5D~XO_%5~=kX+_{iYlEe&RttL9RO)&wYWvx=wy+ShOQXwm
zwWE~GIAxhWF`|pGlJV}sMvi7|N*@MPGL=kwD_2Iul<D8Qcz2j91DBMMl<DUNOUFg5
z1~L8yzR^S0m$25e<rYeoaZyU_TFp_47;{S(0psrx!jc?8r-t_$YZ)tzlc$68N)hWX
z>abdNLNKwpRN<&}aqZ>ln8WP1^?Oqza+itOy(xi=IVrBS@nggd{h4B4W#q|n9hx$;
zTsQKbZZCVi^7PeVwq<%ll_j}wkGWpS3gN!BB38OaUe)$x7w(C#RzY0dzAGtWRc7#%
z%XP=!A+ERdfhFwMeMt2zEenEqBcqtT-ZP%m>bu9W!s*2q+1|<G_dr>N2TPi>ed0+k
zM{;~F8#Myr*ofnzkycl#8<gunWZ5!(q-VLVDIP$X-m6>}*$fZ2Oy9g*=Zz1dGQCf^
zt_27!cGHyWT7uS=>3#8yA36p|SGlegKA4s1TbJwFl<Ul~TibG7JCNQoefx6V7aeX@
zk&YnAcd9!NE!TB{h-u4p0Yc#h5?HQ-9LdY{-9V2)x549r%5^>P0S~Vy*Gksw%k=%q
zgkZ4!%XMM+2Gl32T!)8j->gg@Q?83G*Ey6`;sQpN>l&8n<I8oU%5?)P^(3)eHxA6c
zOm92BTsNUy*Z7S7-|qGkuid(#MQ7J)uibJ-&o3$v7l?)avNHVv+UvIo#ZJ>j20<Ya
zn!3H)CxUIlqgzEmPDi&14WdChbbKN0_F(3wZhy+^1KSJtB8|PiT-URKDt(i&*RMve
zUu&=_H5f9`+YLlwFla0GSmM0_S||b)w#l?Gs#?Qc1JN3EWSZeYZ6kuWrF~&Q@1AR5
z?q<$mGO#j>FtYayT1J{_V01mnV5Ub8M!FzgmdN%bvLWOXX(Z8Q&6&-F33XQ4-N{2k
z&E#_30KD@dj+{-rqr)2{t91!vYErdMjhCvWT9Dz%H?bk+mM%d?&L-99CX-1FUQ>2(
z1Q}heYa$|ynxyx+ql>X%6G%Km_9>Y-yr&>tKt^@&5stLQdW$nqYms=)yc5>z+AUiM
zfe=!4y|PlTuu?#=aC(I*8b}p70(6Txgr^H@L6u9>(uc#D;Y@q8Flchxtwq5?iC9<`
zB!aRz9*CDsL>5qWaYlPkc;SfXQrSsy(Lv#{BcfwP{XcAD&bC;{uq&BBhA|Vagi4UC
zU;`O9>uhF+gfyDZ2-CAk^i(y~^rDQwC=yv~sT3$xB1aYDp=y<+Y^7v6D5*;7-Xza<
zJ|nIXhgvt7&qyL;3LK=nY#ryb>BGsL=yc0@a>1oowvdRww`bBVPAIH`&p6u6XV_nr
zB}yUFbfMt3Qm?dgYq$^><AmF*T){dAxU_a@q||EUi%60(NYTyJCD?PMGS%m2c!gci
zIWNy=BmE5hs4edIj&@xq!9n2%0yfuGmZ^-5*kF6YMSRx7Z$6tcnklU$#cN#4bvf3z
z%XNN=27U{*Yvpin7jN~*uJyQ~eBiNO;+%6wPR`5M4rdm3KdW|cCG^prRd;R02De@)
z9iWZtSf>AEK2EwlVx#LpVet{sjU%FKM?_9XwT#TIjfYBkx-C&Chqxa1Q`lYZ)EoaN
zsTjt!=TK!T)`!~p^j+qekh>5^@Y(1pWe>YfF4Nam!h4no-wXWe+AZB4*Dj3I6|t$s
zB$LH%KW%hvZAEHp7?zE;jU*utNZ%B7R}w=;81SaNQIMVFBD@MOiHuB92ma$$z{vD~
zWPQLqxtZnx>2^AxJ6;3m+nltt?(e%^@wTr=lG6UP{AMffaKXTV$`D4_&86!=CKvw?
z9LSjAzpi5jGPm`@Zto7vbIDmQB(P!3zQ8<pEt5UqX3I!H>wUpehmEcbYbI!Ip4aYb
z)!Nm#$e|luYl<s%(wO%G7xwHZvd8N>4AIv73-{8a@Tz1*e?QXVa)8}vGOm}}wPUnR
zm`zx(*#VXE-{sM>0?YI(#bSi<s@HcorVad|=5S`r{-OX-&=22_-lLs2u3+V;8uNgO
z$6ZNEGwb5oCQbc+Pqi)%^gk2(tyZu^<7uJpJ5N46keL_|P#J37*vYjrCf1xxkIrTu
zjI#5UTYHBKRUNH!hN!#SJEsm+dWVbrQbdaMAbF>^;p}yldioXhk!Mc}Aa=gjD<^aj
zx-!RoGvb8aVHfVXGX7@oL+>y5yLk8T`c`K~EY^y$%0%bMoq+wVW_Q!lH!a@xOCbT)
zJDX&chgt9ZG-$kE3iF<I;Ov`WHtk*Qe9cy{io{t%T)Pew2?q`o#>_}kjs?<ZWF|Gm
zwt)j3m6a3n+^3M##454f0<Q%Dj=^)gOj*HZc!%eucnr>SshqI7b!~e5tSO5wYTsFU
zZ-K?C4w>fK6KltJHm~UQ{*GlcVrDB7XPNmX&+P3wW}uL~JMg19=NBa@%YmubVkUYQ
zCmBB<J$p10Cp;9h>7zkq`tL8^y@}`K++W1l`P%sgGV=84>C;`Z8Tt8z=NGy%ax-5u
z-?F7^)~{)*{+f*l9QEmxMf<dYKJv_Sn?!dYpwbvdN7@{|?W(pePWdT}v<z#i_30k*
z!1?;c=;JLb0s=o?-sa0)TG6pfBV}JPwp$p-B0<Jr&zAm0CtTQ+u``P=yZQ*GZ()iD
zj*t$IwNy5YpUrlSVwkMimda0O7Y9Zi*yX7FVfE_Pr}9etGNm&s^NQ?_2#ZujO}7Y%
zrYNu|;z(T4q@C$A=WPFCX6CY@@w3^1Q4xcG+L=B>pe{cWG1#!(Uvw%jX6lmDBS)Mo
z>Q~zFNGn`vYv)>*FMo6PpEl(b%LKG2n)Llt>$#;Pize<mznIL~?y&a9BWISK3QrpT
zVA;<**z=17E)}D3sIP)f<qbY2(ngmQWmTk<W|n^VOWYB%vGnVT6-OrSDqlQjyX#s}
zMb|6K*mt9*;3CQw35FQRl);WlHVov78MNvA{d<u!-u)tc!P*dJ`KAq<_I_a#usFLp
zGit`Cicb}{D)ZMg744tTMo8nNF+nz&J><z-&!vUOxO<MU3Y<DVX}525f;JXLNFUIm
zR{<L_c2F!kJoe|Vf|H@rve1X24F<J#7`SL*5VN}V^u%!4NZCZ$9C1hAX3>mq)K{|o
zB0FDJpj9<eDU*VJ_i@tNF~Lr!-?sDpqNC>s`vL37xU(c__h%&GJl;tfzmAMv-&`Jd
znW!HsC$GcXbS{#7W}?#p*$LTo*#nt%_~2@1#{tb5R`kF<qpBroX!li+w^J9VUz}o{
z(wt^FWq#y1G4IMY%|Xp6%^Y#hCY~djc#zQG9L71xd3`>kmg2ZB0|KLC%!6~{(gOnR
zn|&ek*92(-25AyBR)cSbsTzGBd8nQC8uk6=h`l^V$lOU}kS5wg?Ut&IjghL!=Ym4*
z586_#UMmQ-9=2#<)~I~9245NW*T}+78j$1pV!_%fXTJ%46MD0Dco$dVqHiXAGeP_F
zPhmfW6}a>&k13BCccIbZi0{K4b0WySaM1+OgfX!{#QYF5F=g6xcG`6Fk~Ld12gOt^
zs$TeA%11t{eO6aFldV0Z`$j~Fdv<RduzF$a;@YsprRA}nB;s1fz|bJ(xA3<D0$f|y
zhG|PC`OD+FjAUYFuSs0UOc~X5&GcB|)OhKdvrBd3F4Tq<xDRRFt-r{_b4yXch}=E#
zv)9cYKl@8&ZP?CpJ7yNAOq*F8m~lS4p>=K8#Jr+7`$NgmXI45CK(^9-))uE!FK%f+
z#XD%)^ak;VE;x+rzRYEFSmnY+wPDAqJI5wBjwZQV_D&Zv2WD2M`me4|?YugmI@KwC
zXZYf53!T;I%?=|f<04W%40G9xU_eGj&w$304utQHIQ3S$O!E=3Gg;E`mQ(uA;ft4?
z%?S{-EMKb)7}0%M#1@~`o3eks6qsJ1ju!SkAh<L?{pbGC!X^_-!#|o6(6T&t!-BnY
z+U7*3k2`lXi(yVpFYSMB&W&*0g7qJK^UKJuGjH^dKKNeYCBdchv(@*)d#z$W9s6;W
zI@)Qu{t~-jX+r<pwyW2M*+mq%@3)KSDVdeGWahfT&dSIM(`&__(~uLaL66X!J=*;>
zm%`S^6wPNWzk4YDjL8_bZmaX{FC7?R$+=PIB2&Y<Ese@^V6-J8m3eNq?`<pSki#$<
zeRDFmhqP7OwE<CiX4`x-B#RqoyUC+teTmB7l}UFXo?9kNpXY4P7Ft}=Mr<o;RG1a*
zy*uqo<%H>RKUEbtH?<j5t~hj0Uf?XwKbog4nK^9T&tV;M*iXZHz4_TMU-lN2ZuR-8
ztdO|bmTnz+zN}DNQo418zHG<Nb9(2jNihuRU*POY#_s<#Ja2X0>SL7)nT5>GaN;%H
zYx;q3qcbTer_LnU2w0zhh$^ZSR=sZPovf%c$zHp~Uad+1<+GqZ93_0zi?d)X!1zL7
zu;Ip)>B02g;+Wo@z|ryB7$|FXjsHGoF=tBO{f_L>2CS;;eS~~|M2pDz2{D|_;?n}T
zm|?}#*BsY17(_3GM31*%e!R<=kz#B39uksVY_`S@qzMuGQbgz1f|f0gEkaHdRPZ-a
zJLWDcs1=K(;D5Ju!Ag6ki9OTIsZ*mC!EB;+lQA|K7Qd0n{=bnmAKEi(oVGgkP&5o?
z*bV7@<<w;Re64br9Lxx6m9W?uE9JT0+LY-tDXj|&W+U5x`dHpmX7s7D?PqUGYQ;>H
z3sWnuk@&OjxxvzYoxDC0fIWH0PYJiXmg#lc_F_i;IZ|zJD6N%_ppRoo@f>-^F?GNt
zcTYu5SLtYGGhzJQgFO~FFLk+Ixpt}4tCQ<?=bC^@-FD}Fo*hMn@*m{UTb$tsCd7N3
zbBz;zBx-LaZ~u=nJp!PEJ9*A%EBE}CwERx=Tg?gQ1I|S)havzvqYaaB@or+UuxSW`
za}oI1($a?xK|O3b5jfYk^_G6{i}L2SY}%@m>j@cSr-UQWK&h3Bdc(1fR+5~qXY@uf
z5OQL$lJb0`6bO15xj&_Ye<TL3OpvI$P6z_;ob>bGP8MqeN7uyfWA;5;3Vy671(GMF
z;1fl;&Ljq<#3Tm$;AtAgU|Ot63`%MriNO+AQcny{2D6XEp!;v6z8DN*ABjP=L!B7(
zS}CtD2IC?hi9yqT_MUR2UyX7Q?9cLY5JctRD-XFz4kXVN1LqvdzUu^`=>q3th;FUz
z%1gp@L{REUf^ds-og@T75|+r@*OP?V&`Wiau#JYojgqi4SQx^%`!bv)*i%v9CBc=k
z^s|L17$rf{Uh>&p<h)Fxun@A4)3r?Bpr&aD1+t3QrT+=t5Ch$CQ5)$0?q2pBClue2
zB9m%3^2;ODAh=0YgOmzI*X@r~gYrkCP=qjlGu<FjqjsTAHIUNcSe9_Q!NuLPzHVr?
zz`34o_ydWcy5R*SLQW;Zs2ggT3-{hPi3Fz{pkC^f19?m&7)~VWw8Kj@5)T6Xx3cH7
zfidy#?qe=KB?#BG2P9XjsfiHCCqfR)I5`Mr-Y}U6>vG*yPB~CHDBe+LBVsE|HUgCw
z)JEXVl#gkL+q!3IhaU3D{@r`X|84Ei=vmr<vl7qM4n@Qy2|+Luk0c?2nu$6|U|}Ze
z>jpEJi8|fzk*Fy(6OVL*jB*x}ZWzm@$#~tc8fKzS5~THX0~Lfvy5XGooOlI8>a>HH
zw-nS+M72cV5>eAL<+^HwP1);}U9S(b{iarLpi$Eb-PNioq{vFQY-*_R!aei*T*!3)
zp%T`r!U_dO2$>RBsPH}HIJ=_{nfXx5c3?6^``Hc+;DN`*i2F`2W)oH=)9~pT13^ft
zH23=wc6BnjWA?B=Q>j1vLkatlJ&JZDwYmbqr5{UHv8x)=Dw+bpL&K30cB>;wX=)3_
zHb0fHdz&CSXHm#jGyitH@jsSkuz8ebn5<~4pm~O2#)xA-L>#{~FtrFT)-)562SRd3
zNGdFa7EG;#K}pAL#1Es8PLO@zDa~$9IyEEh#RkJJE=3T@rw9b)y1v(Li4e?_nsNlU
z^=XvVv0^bI?p=gqV2nCQ)xltOtgwG;t1wY-#2aXepbPs(BvJ&2v>Sv+w}`eCZxQX>
zB0|(#xUNv!KMRQhs-JI4f}x;wG)?esAc=-S7S-z5ae~{(6LdkE;I{7V=s21u;L-$3
z*Up!=$`e44Llm{c!fg;`Cl*~;#E{)<$10f#G*b{Pysfu&1N%y3EK48W*87`%6=L?@
zYR7eiVQw>|dhUE_$2{}mqJYC)49Y!PhA6tQV&&)7v5b{mtz<l`{arj<Zu#5f3a;Ji
zkY|2eN(-)(4O}gh4ZXY@WhpWOMGKwQI&E`0=yb{n!SG)z8n^OrSzIL1)Y`q-$kST=
z@$#m=-}`8YRuiTfp=s7QidJi(IXBk{{3Zx|7Mj*5@rc_SkSXYhL_y3TWC||alX6mT
zu>7Tjo$8EIv;t1-%XOCyPWzVia>2{Awd_<7*)ubW*)hXOGcH$9HI^jOOu@PpvM-P>
zxY3g&4JUor3f=LI?5iukPp8Q)8pXGS)*7KIDSHlMaQdK--Fa6kYbf)!ST(zlv6$t}
zbR(Om>beO9GJ{2yH#04(P`KG(&<z$&V`Pwci_9Tb#o^Lk60Nv7+GDq54&!te!cI%=
zh>@4D99jLB6JTFJx=WA%JGx1<fA=QQ&Yca`aT%~ef!ve<J1eZqfNf&xGGIQcdKs`y
zylB%5*rL@`v`rbXW@0MXrVLnQVi%zpIU6noMn=O1zo&Rl!RNp#nG0MR%$NmR&!xeJ
zt~THLwS);Gj!MERJ?$UT9N1uq-9cp~(pWcGrn5({5H^QO`D*i@rA!YOV(TVRIx4+g
zY2M3UG^#lfdT1Gi#?|LL`R5)YW~)X(kdPNBtDP5Va=i}O=KJl^n9<Z2&5WHuYAoH4
zc?X#>@<eKEDwKTVvSGGx4f8pfr@1jHQB8xyf5HiTHJ=*0R8qp0c6Q@aV`M5~-8aYy
z_8M|y(Ohn<@62L$KreSSfvXwEjvPz$!F+CP|M3#mwr?_t<#J<xCuuJ=O8ZYQAnl}^
za0X$hv=?O+GMi_T!NN>7l4K6CGzogXtadvj{YgRRc^4E0o&cT&P08HWXL8PYxz1k{
zh?L3btyimV>)m+o-0~c+IRhCpJn|L4@(Eu~-0ySRe7_dq(cOobU3(hjb21M{yer~q
zlx6+SX>&6ub1vztV>xBMor*j%!88lQ=X_@cOFQQY<ZUgqq*7O|(_X0_sXA}Av0R7D
zT8MyZ`bC_oU#+P9jAn$5{h>(79DtsGx<8y(oL6MxzC=*-U!gxtunbmkDd91}(xG|g
zTMwX8R;^SJv9h^6Dq%g87Isc9s@v!cI+j_AgmA7vX;k^lr!M2%ER@(i)3v!{E;>U|
z^I_`tlHvr-J3dX+26P5XEr{U}jYJvZTc&yFrFQoV)s)4UIs+-*R{Mh=^9wpdYh?p=
zzSO)6JJJ5Jd@=15bI~bKV0gW*QwTvi+oM-p^r|j_9iYA9mi{F2#mznWPVs=CQ|w_+
zu*b{#kT<waQ82UkbJn-1u~Y27FqZi9onquEB#c`plMntrodOz;p-IzQ#$IvxIlaO_
zZNSVzk%ghKaOd4wg`&-+q_A-FOmAjZ;i?%#U{TnW_>e3E*GrhqnN4B@ndmv=grlT`
z&Cm5Q*P1n#?Unt5b`_b)C_F}a(s{}wAmWOuY}#9R&Vxu6bBu;}Oq?f&71rZCH*Z5d
zBRCas-@$*{Nonop+JIja>>EYet->AJ4KlEv9q>m$dyw8_&hoT}vL4jPQ`$p2ijR@@
zaI7ba+6J30Y??&T3ehrU!!8Vy=Bcn?4C=Km-PJKQrB(j&U?tm0r5=B6<)$kc%dW@R
z3i>y$i10@)9$m;Qj|LXb!>VjjY*KJ^X;B{~%*rw)N0i*m>l39Avt94q<%klkq^P7s
zNw`l~6!6wLgSNrEn!O-P?K!q&BukNuheOp;n|b}D9r9%29UM`L15uiw@l%kKwt=E+
zPWPQGHBB@vQEhOlQxBhQf@MW-f+v}$cv?5NIhv{YP=k^w4LR&%Odf+2A$d&sCNvda
zlVTxyvLr>sH09Nl93?486(fkqc9nv19^8&xDzwzk+D*cv25rFpFIyz7WzzTW5bZ4H
zZS#&Jf);3g8ZaCy6g?0Tp^BA=R7r`HfFem8YblSctzrfD#Ui1K5vs-s>{X0vKBv0g
z;dGaghr(LtQ)4|}Q5&&{YNz>}vEHEU&3p;%w2vlP9r6V`5P>*b%OKI1`%PD=Pd=>e
zuhz@0CBn~^+acU18Ecc+Md}9SfS4P{R)a)y%&78;^e#~_G}O}f9j8qohxs0A8`9MJ
zJ))7jD4BTWA(t}!JoR_>YcyLm-)T;I#LX9GGXY~2al&64w`|=WH5@2HV9fIc_KN#e
zqg#cDCbbeO$c(m+F&{o!%TgJym!lW69r5^SwAPg|+Jn`&HkwKdq_sa6Yf=2ex2=KM
zuMPOjyoY;fI=fCASRe}gIDNUvDop2ueJI1yz?@OoX(<p#gm_^eXCgwd3Y@Il;^FKS
zM{!<vYiq%G;<-WAHexFOocMc)jq<N95cny~Q4G!5kQtl_`G&J0dtgJT35ldO1W_@r
z1FXiAx~I6Oz;jAhM(396<|{#`EEvkBz@;dgqQU4)uA(SUbhQe`V~v8k3wbCg8k#5A
zE2QQl2nOMi`S7!_Be$7x&eVRq=d$FAO9(r!tF*()X2&rcqugaT42W9!lWTMPhwlC&
zV%afYohjL_Ipi}|-M0<$k3-sDsdm&#lpp)H)%I>b&OP66rDmhaeo!*iuq&hP1~N5Y
z`LqYoqZ}Rtl;z_dL<d+7uR+b~c@S==OW1&B^*o3(-3J|KZ}cG(IMboE$t-4vH>ak<
z7KF-sEQ#VxN0jhP2^*74rdH_g9H(Bi<Jl5+)o<Q}jLv5(^{ouQm9RZp&_O);>`$+-
zcU<4QFq)QXqiMPN!lq@FjyElRi0pHN(X#X<h6;mjb7qVH-i8G325(xZWx3m2RwO&j
zvoHbgZy2>3YFkjH$f8Qoq}p7~&OL}QgH}LqgT`xGSEmToHiU^7LPsKqg@UV9=yx>-
zX}_CLFz<BfXmUymJ$F=VFzUGdyWw5$p*n7=*^$$N7N|)PWr2%*A-*F*Y{Q8i&9D!Q
zm3TxHX|y#M|6{J&-qTLNbwjAXy_B8t1$j%dpuu=w`#t#DAMn05=aS^rey(J`pjxi0
z)FCNPP^aUva_38Z@^ClDt(RI$LWE19<1!?pY~r${0izT#!sCrmKxj7E7OKh2JWoIr
zy)NHQbDnIQ;YQ3A^E{uao48C;UH#Bs&`lLoH(k30wX~7yC8JtG=wUjI2|_L1<kCib
z=z%LytQUIV{j&!qjc<FO(@UIM3g`5aNiFea*`$^tn%kRn5>u(m>}i%~16pfTNgFs?
z%d4cWmAd*WsW&V#r;=_{mBhdpP?dBW3W%ztLn7!Vj?iM99kZ0La^#hgiYK*3r4+-F
zS|1k+j?;QE7eH$3R1)(@CCzjszQkYjxJtr+vd2|Y_&E1^DrplfedJXVQ#@b!Y_f!h
z^&cQhG(_|&lBH8dvIH|xk1Q?9GK?2Y_y>(FJxP|V{inLz;`ovS2-73JL?(E7+tuew
zRg^G+FU4-GE=bPtUCfcD6i*EeE=}|Op7JI_iPK@9r%eNM1ExXpq-h9+X_)+&X{ahK
zVOO+#WE%9Da5H-P63#SqL97X;VdrqfQJ2CpJRD1QQ_Ij3q1R*QO4vQaiN}3Jmh_cd
z&zG<l?)mj4`QjxPO4tu%tuP$*?_(7B%51n9TxIr&=h%d4vkC>9G32(RNMO(f$p*<1
zWbeoVB+X?HH_7%G{cYy10mYGo7Ftfis03r7<)j3Hib|AOnvp@tWHQ5*Sz3`@NoL3b
zrjZne#Fmrv2bHlhGKsVZuelv3VqGj!@8}ZD$nRBpH5qA*8aeM~F>IVWi4(AclG!%}
zk&~N~lp0-xp)#>K`8<h?YA>D3gru^gb_cQ(9auF9^&(@G)w;2_Duv8QhNLlR%*ru>
zpHav;4pq^2;vBD%Jr-*6(2L{>J~eZb%61ASCbP|$q;af}X`RZjBiqt2*-MO*9pd9;
z#sBd*SvrWFM2i8gP@;@u>BIU_vIFp^k<jMDWab4*a68nB7mKybL)M3|jc9}{_B*+S
zb;E-ya~qV2cZ34X5s*#|%{|N!_wsf3@>(eZnTylx7rv`;_mV1BibPC-CZJeqtvRjv
zR8R>$-Ql4o<AlIQ>!@tTMbZx2`W@@3?I<$F$;jB^+OPbWoljSg(}+MadM`rlk4FTw
z=)BvT)kOr#b?;xAR>E#>!-WLE&kzzgHscr@^#-0=Pmb6{2_uiOYlf4fF=B0QRxz8>
zj&i(vNQvkx6EByrY39>O%qt!iSdvvYfMT+uCuyK6XVAJ_KfP6pj>?CIwT8OTaILpR
zW+CVNKiHhrQ6NTOxNwrpBD0rdvq2XroGJ+=sIs=0*->CX(3l`dtRpGHF_yzD`dI`@
zo6G(wJ1Lp=bnuLi5}SM_$#Z<Ax^WV#Q9DsLPU7b8l(YF<uLKu4PRYpUR$Q3)ET5UA
zVd9%y(2NTcziXl)H;@6LBPDnma*rP=0bbUy626cCzL5H3$Aife91ot?*fMFZinPwk
zrjBeoCj<+`Oqd{CB>_7_MA>V#APfFKsKy4x2I~EUhfwE#G4+1nJ&5>dGUXcQ6z3Fb
zQ#9EaOx~Ugx`E;3)CDp|llfqBrZJi<v1{UjU~(RfCND8^4dH6p76J2#OClFbp6N<F
z?Ki^z+1LCH#F9sACi{@a>RQClEa3k9h(6WVx7T&e11~3cKe;xVx<9627Kbs+;%9V{
z#mZ;$!oT($ZgJ1S?t0~6ZNQuKIRt#BV2d`1N_OrPZQ3N^o(4Z|g(HPDK+mydT64|?
z==q^5pFL!0nYh@YA)doS?m>inaIxJ7jV@kmjR)bS=%#GpSi^R)JNz9U&V-UPGC3ZI
zV6ZBd83cCu#54I)@g;pGiw4kVvYhuwTk){~C@!u#%Bnk843APEN&qk3E#P&RnG022
zEmsS7TWT4I4g&m3mF6ifOjBj7t6E{*6ptmud;&DsNBm<UWr|$*5~DP4yL{k2%j+w5
z(7$h>#7=8wcztNQ-C4wBn6=;CV7#WCcB`wqGn5z^qTM2xpnb^Bc9qzF<?aRlH20Ab
zqyDL^D`QLj)8)#S;@*rqO}h%ssB93HAYu5k(W5y_T^d0<cr=oY)TKf3E+#HuuZtO#
zjf(m;!t{Z(-$>=WR}(3s(;BD*HY&zOb-K>AQRA^2U7IXnu*tRgL{YoOW+N9D<FhT{
zg-YgYqid5VSjM|HIy8RnH%8y4%sL<O8;^X>w|R&9Ht#5MVuWR!Z}S25ZOny6-)4^U
z2ewPxY!qab=hHl`!%grsgeo3);hmxC#e<sHbK$+Omav05fTz*nLR8gH88qz}%XY-b
zeLe|T1^tdp-+e9#XgRBx9e<a1;w`V0uqo?@lQ|qwyRn+w--L4S)%h&^`NM|mpnqL3
zox|VHgNO3xtbp!0Y|UV_0-I}0R)7?8RsdsEgo1scD6d8ExTAo@+jg_+EP#%hfJ3qp
zj?TfO=Msf4MY3-iB^y4w;T<~s|Naqe*#_ayd*HH5i^6smq4fT9qvuZLob%jUQ_mf8
zE}>$6mY4G<qG#*t3A*5>$%j|x8|?bL`{kulttgLb9Fre^sZz&DJ16YMT#8ZH)2SnG
z^y9r4PTGyap2$l(FYF>j2O#cUoq1_r5@g1UJ16br@@<p2uX-7t{8N^5gB2IxI9unx
zizm`-6X(C*))gV!#K+LL)6xNBe$_bUrxxn^9v4HTc5^~o*iC<^YfnX>a<{i5+ljZE
zf~Esi7U=q>n4+{UFZCT4Q=}ulOff~HRTVf3oT&y6GltZ=2;so9Tr~HQ1D{P*xY2<x
zP%x1u|D9%}=FyatDWtfWrli^$y?18G4WmWnJ;iF5{airtGy;m^*5IJ3j$2?+i#0#{
zq^k$gfZ_;PR1X9cbA1D~1KLl5!XB;NSwEoY)|F{S751`cTh!-8TAs~pUfiN`b(#Mw
zi(1J%vZ(x^(Wd<4Fu4K)DaqmO>1v^UeS4bXl4Y`|mz7@5<}R?OK`tx#FmIWHJZ@0&
zL>@P&X6*w^29-Yi4nwpVj~i6KWAzLw^$Lszb@?;mz17rMAb<O~v2ca482Fg6c)z@a
z9Ug$miD<=$JLyh_9Aj6R1tM&#Wu?r@P*{fv)Tf6_pSN`^N#%U{a$Vx48zpp%TU%I)
zT76~Tn<Z>PSIk6|lP~uEy@c({&LOM*K0ZAk=$+R9tqwa;uB)gt)ZW+8G7`877x^+0
zPpSFNyGS0wt1m3HD4JO)w<s*^%o=v-0*IE(EVK#{VJ0VwAVwM@M54VEImALlG&2!Q
zwa6T6HOy+5I8xZj{Jbcb^^l#EU8Yv!Q6>=v79%15&2Vo8<wI{Z+WkRk(3uibxOaHk
zPeFEPe=64oOcC$_-y}+py7FdY2O~5Ee6LF_R85ThsLrp@u}f)=k&FAjVJG;tiHd2W
z;wjQ?gny0E-|%`?qf(dhrJ{DbDf-Ke$v&cFN+?B&<*bII^|=Q$!BrRht+n1ugTH$@
zg0uhxNobzUxV<Ss4k??-7G;`&eNmQVBuOO4d5vv>TNA~O=0TzYH**Eq@iOekbuLTw
z3C#d<S*kaycl}y4x8`$g;QlX!f#s%nu(p4aDIN^wUsz{PqN7aq<hJ;9ojp<S<4Gh<
zQ|;R;Hl?YSd?yaFrY-?ZQ>mw!U+aG<to*#c{7STvTA8uRw^ptRb=~!_lxAgNUIJ0~
zz~`*El-15}j5#Z6UYeP5R&d%3iX{f>A-rRB+H5%cQfFQ=OaWq}c`2A+xsI=RfWx-c
zl(eD-Mq01t!5;>u4_EVWjW;l69oEp4mENV8Gce=?EDQ?^qwKf|8LK@S@}tiLbvP_c
z6by_D3`};8Z)a_2`&4&7WFOsSlll4|cm(RMR*VNM%;J|39=^rp()|S)odRkN4*q;L
z{ifUX%3>~?9*}mWdaD>2buOWPnysrNtVuW35&p_28M%adCAgERj_`6rE~Ab|b#qTq
zlE?7;m7QAIF!wk<z@^p4)|C3&vYqUj?(L;mddA;YFtBk2mr!qJ%BbVvY*P%|#%I(y
z>wn=BKBK-5h3}DF>uL{CdRXhY-B^1_OAjCNDfMMp;|0_BC^0hX{lv;g^@oxEGhJ@2
z;IryN@liU5n{q6&>XQ&8CcoJRihg$@8l}cf(*{A}nofOv;t(ay@jbn`Xe3hWZ=nLw
z;^XC6zTeN)Afc!!){vilp6NmVHG6-P>rb5eF`WHL8&Hc!Qp8m_&_{x>-j1COKw?pF
zy@D@)OQgfGU!eYtuW{hw8c3!{lnrSz#T6atQH_H}-b2Z@Q>mNoP1=OVb!ND&pf741
zG_=Nn3vwXFK~ucOAV*JSG-mYTf*gp0x9Y-*5DSDyO=BE1#9>4Gi^=}ylIDaFaQ-yh
zY4O(fl811o`B31|#%c@ev8=1J`B=Ep!bN<4xx~5BF&ZLJ&T-H1DnN8&Pm6CwB^ojX
z0l@-y5hH*rJx1fFm2Pz9O#cA5(qj=1%%1M*X<y*(>h2e=K|JtL$1y|4k#QX-sv#aX
zibcPxD;7QXJ50aDlcwJqrvEeE^qX<TqER<0O4!V<1cslF2o}77h+xZ}sMzBof~)$@
zE@nUHZ2w%YbS|IT{^5i~9oChw8-|m>3f)x1^9%GP><xsBzRnlFUs=L_5sb3x1^MFK
zTP3Vhr@pAb&Sx+FtrEWFGM)#3=GB4;JRLRUr~qXG21*4e6L`Q;0bSu{-S0*&fKcME
zL5wB1fFXrs7S@0j@I|KTM_hoT0uN8guGA$2XbAnKc#t(57ihZs+M3dNzn^)63p}3s
zH8KH=hcht&5P{t$CIBs1&#>jyF#!;P?ItGh+&nOdz_2<dfRI&Qt%(VM2n@~>n3w>v
zz%g7Jm}3GU0*h%Hm}3GU0yF9{0T2P@BPKwJ0HF+kX98dZFPR8DN(m3AB*4f4CZU4S
z$N^6CLkX!*S;J3T1E11lMz{h-Oj~1QN!5I<3grNK0mhs#<p2*k62Nf)e@X&O93a9Q
z6Q1zCC7&DKKy$-J)BkjC*q|_)ewrKRblJ<u4O8P!ZNC>|H2%EpuQUE9T;FpP)7-Gh
z`17_OxnYy>=WTzu$@p`&pUVxayHeZ#+<5K3XKheV_Z(|uEVkxrjQ+IP`afc9P*21?
zAo!Z#W(d{5);yY^Xl{L5gIQM}*_!r}p^t1$V|7yt>ry3eYqTyOy0BdC-ehb9O7gg|
znc_trH#QqxQP2cG(`0O>WB#Ig#^zCA-K;Ak=8eruNaELHY4`t>rJZ6$ObEks>{pPc
zZKO1fMrR(;v_&tGrqN{nAJep_jsNZn7=OzrjejQ?e=^9M28pThzoR!)m$2{m!@SGC
z8)L+0h94_p+l3PH4vasN`QCGi*)67Ie)q9t8|V1HnabQQVRsBCT`F`nu>Ed#O4#cD
zF!<Z@#lpKKY}9&8Ae)~rzI1>%4T!*4*}t3ZPrq*r72kM%s91~;fJNbh&6yoVNDdZS
z4DBTp^=CF`4U$@n5LyZQW0viavSAjX7J;;~YrpI#-n_rm$}TQI{9};a@TfEehOnZt
zYm4Yaah;F<C<P+oQXt0A@O3UW%!h{Sx%iPr7oW?4j6)K{lmn?(!0J^O7N$|*T}XnM
zav;GNa`Gq#GTamvMpPK(mZthH8Wmn45!U5EGH4Q{UJise>Nd2#iw1?s5;vk)<@plS
z&H3%nu(ZHhc)fC+4>Cp68Qi%?^p*6i$rWV96YGYQ1ro%CjkVQWT$mqH7Cpt}3Zl09
zCsT1Lt*vfKi>sSAhVO^bU~QCPg8r&hggW?2YGcrMtzs?p`}z<Iu9A8l_4}G(=)|K+
z>P!A+@cV8UE2(*f!VNil@YCTw&fJ)@Tsr8?Iu#Y7bi`Ts1dKR?H}hB}^$_@can$EK
z44?0elgaBV*KO<6!Kdv63^@ze)b6#5=Z2i6`hHK|(imO7m*MZ7pU9`<AcZ0Z_35V6
zH45msLA6L-!|A3GcxrU(u_faqf0Qj%nkM-}>N<#)@zRVb=i#~XE}my&wp}AXG;`ml
zGuEpVtGMhayt#56W(cAa0KP~p_YPmyVfC0N*Ixlo?iZz<vw4(@z~5#6Tt13>Qjsg6
z936S+Deh@rIdJ7R!<8f7YsPzJ+U7ccDY)lTEPYcW_t384UAdlc<)XA|M`b!(xg2*p
zcfTHR<*H4!9Vn5j@nZyV<z_!4iaSvUZH{>;9*^Q$K%4jHwYhQJ-<kU*?3{u1O0#C6
zG^^DhLf+)Hx#fGs>>`skcN<HVaN3-XihWSRemI<X^QBoUAC|D+R179$Oul$)O^KHE
z9*P>KzgrwP{ad3B-}Y=BF5A~iFt?DA&I}Sr4Ma-EgA^84%q2pL!DMcs_*|r*x45-z
zrfjL~?gw+UkA_CQ6vynzr1hRHqRo36<Y=FxvA>WE#9&Z9ZT-x0T%y{>C$2f2eUlDJ
z;N6XvoXTU3iEES24z8EUyL_8G%H+MM&d%iq#c)H&Fcg?hrEVO28)CNNKBnrTYP+9H
zdXdxDQwykp%faxBFVD_B*JZ}G4Ld}ecOcifQ`|qv7|vtG!88_IMU(r8=0$NjoEw&b
zSgcWpn_{svnD@|v23{xr<DTNo{GM%8Oj>hAkg}yCTN_|!J=XF}&+(;W+RAOZFoL0|
z#8Ak&Bp=F~JLd~#S@a>9#^GoGP+g`&2jGk4TCeRV^~x92e!~^dNSr0k)IPdfU`p|F
z-3qGlEf|qEr}5{&7|>dcC37%JNQeTnbj!^OzDjqs{m^{jH<mees09@&iMjPh3O5W8
zY1X)kCHI+0&gMlf0|d+sk6a}bf2({UIcC|1DfW`v9&?i^X_7BPr9CXvXan1SWNYp_
z$=&bRXBuSmy09rB@Zyj$I_SszfD##v2MH9#33|AUm(7rciKb~5YSd9$5A95CaHlX)
zhcC1{HRK<fmUeaXFg#w;^gP$BZk$aZs?oV|Hdg+0KE|2`+%!D_vrbLh)n&$mIrMoN
za<l=t6E`k6_ePiP^kIH2{Oo&)p}##hqng?8I~it<AdwNUk|b&}jO8_TgrtgX%?-KX
zCSh#gFwRcQrkh*J(=9FKMRdkRBGy_n8`3R$DXc>5d=PxM>7(qS6ox4zvC84fcdd5_
zG88|NS{E@R?we_!W}l&4h8ak+f~7UCuws66a>WI7cEwJDe~2+D|1nSb)v8arN}J>h
z#W$mdQJLH!?Y3LcxM-)CA#MxV`{MSVUGGW6tz7O&x@jWanfv0L>7F4zPImJ&k!sG%
z=OnIab-Ch<Lr;}rzYCM*t2p8!x4XaJh5d(Tsax+wZi9ONTy(}wa7iQDql{d;Q0n!g
zHD8RS?&jOgx3$Ha@}Y8w(;npn7&lj@l`~hgsO~F2f1e+0^WOWN3W#{4E3Lq4<y^r0
zQ@pCp1U8ZBF1JviOEmL$Ms@e8*55R!?8q?PpDr;8)WhC1c+%d4z}`&W@cGvB_jz-Z
zW-uVdH>{rbu(kW44eZ@MB!Y_^?q3CS(|0&GzA!kBJu{Z{<Lpg0(1Md}|77C9XAL8m
zlkCJdku^M$FHU4nvO!Gr<iAgG33@&^^6+b;wb}9<Yg60BTu3d<Tw)Mfz}Czw6qRo-
z93rrYW?+S^H_z<IBod49YzNsqS?x#0P~g*p&Q0ZnX3r@neD=_*g|~T9wz(*v)9HP9
zvN;?DUb9uWd5`D^vQ30Q7KVS&(G6TxAst`E)v>{daAj<KMx+PfI-0qIv5({lxGpmN
zAlF4U2)hX|-zpO#dTjjEe8qgq#}J*T5vh)pkZ}rvj#kj2f{-eROelz57&~Qhq=!Oo
z^Dr56tcp3REJQa}LTqiU*)Yai8A3;}VZ2nHdF_6(eag|EeJ=+d=n~MJ2~`v2AXjxr
zBSX<F_4F>$p8lc~_pu)@KkS@OM>`Ouc~4jMKV45*+YEGH?u@yBUq-g|=0d(@Pig~p
zOz8ixQg;w7OWq*?+02wFUv%Cpnd)4w%b4;>XH=sV9ubU&Dl<bh+G&$2i&h&_*&6-D
zgB98hrlFi@<r>a{KNNh{+><5etZBl6*5kPI18W8-Y6rvd8iYwK`0BF>%6w)LO|A0v
zIB(Pq9yCQ%bF8CKd=_QboJLgfP~+}k_;4U59G_yADe7*^O*n3g%qq6_@)tin)yj`l
zBgmfA2z{XuoHpEnMlk2X3BqY7+1+?jb-9G@Jr1#};ztlNh)%cie(2m{b}yGoXwM$V
z9ZQO+KB&}p7Y#beem$HFhCY}pyRlDpR7Qu6xrt9|S%)~hT_|7t>W<8R#yl!VjH&=C
z;h7UrM4`i@j!d|@8(Rc5fC7S0MpCmmlA+o`Xu%F-MZ?%IQ7<u_f?~O>_Otrh;4xzL
zM-#04jKRhxUS*HDDjxBwi+9Iik`-Drc~rZ}YS+$U*$xp#fMIGCr~nvAE+zWAiA3?E
z@%gc>s_iBcg?#ohcxO}*KrUTt^Np&Y-^F*dy#$+tTBrhMeOFr}9|9d3U#Xj?n8#;6
zyD*CxD1-Kt5XDF$4<*XpmBI5p=2(D8+VT4+9oE`+$cF+Lcm{@*qd-I<XWf*TV(&9i
zBh5+k4$b9?{(UuVY<DUG89D;)fE}rVHYsv0a=zNwU-ZDqN;AgE6V<w_zDMVGQ?>|n
zRXarX^(|>D$MM#<%9OF1G|eo{N17omP=n*9y{6J?!#ekZVtCphcC3W>V{(qi9k4Wr
z|Bo9q+e`-Wl0kBkJrG~tATn^kCX6CvDDQwd&MRjBNjm@?HQ8z``GIzT6|yOG-j)5*
zlkAb<L^J}u;6FC;3T7&Q?EM541_9w`D)+-13Ld?nVB<XtRITyzl;eFs_2(&XcHtha
z!r<OcfJuY88HK$ygngHRDV=FB%P<J|dCFH+&t!<fhJ1p#f(##^Y<>Y=Jy4{>h<e$3
zjY)PB2VyXs=B5o=iqs`n`SRy)7T5+IWt<GsCc`-WH#hzkvj^d|N=A-(?bd^%+AWeF
zI!=rK^o^V=g`k!PgvWoVqn6i)YrBA2$}#`<a3%>EXOlv%<Cb^9EsYaAVq!ldx0Hih
z;<f5Lx9rAo%f1S$FrHh6Dub26NQER`8Ka!Ramx}Tx13}D7P#dKaLZ4ErK`7#*{?(;
z<doyNLeV*y7BgrsWNXC&&l-udxK>#s!FvVVG2LSy&m21+SG!1!lN#NutJJmjXKUkY
zpeAJMG5gq$VwT9IcyZgvt5tQg`@IeO+ed=bG^S9Gq!T^<Y$A^hd>eo~#>(HM<gwUD
z9&7P>HyC1d|3~C;P^U94BEHzLR#D>ghRa>Xt(RP;h<$?;D`9zaTa)h^?Csc6UHtfq
z4CpYFb?7LVJ+THI1#jz1Jfoj>wqU_!q);#4Hu$9e+Ve)A8Pn@tXt2lp<W+Wi0!z5y
zb1f>Adz@t79E19)ZXAJJGOu_5yPC5Xaclu5ZCT6Pi<K59S=+qfWXB5+M7dgp2?F-I
zfvRyY^RVnsN6B)7WV=f7LXVnU81dennm05v+`S?X=q*qDx=5Ay^%XkFfARL6;-cP|
zp<Me<vCxK2^iSvc-z7B1Jpa>Z?@<%^Kz1puy=`XA_^ReG<h^2QtFu=NqL|*wfF-*{
zV;dix(&Xd^O;YSrZ6miTE`OzBgUpUNO_L7lV31*^tFF>ss|Aa836Jg+$u&oJ2?e&g
zeC<g2^-4)&l`P05u7RHl@78-$a@J~yI|vi)eyat(3f6hOYx+`S|C^2ex6ROS`><&b
zwi`|tUEO{%v=l3ou5KN6<iWn8(xO^%si84m<YD-K<h^HDQ(MzNyc2p2ASfylx+qEj
z6&sq+J3*@0LKhSaRaDSWr5ivLED%6Y5hOGb6$yfhJr-0{G&BnkC84W<^<RN=Jh#_<
zp7%WG!}ICg*M+i&y=Tpyz4ltanKf%hY!Xl=DHH&rC`mwK67V!ot5B1PKx&dQqc0Ri
ziAn%VD6T+Xn6ecCn+2k@QSBfqQCC18MMRE*VUfwGC^s}{|Ic(^Z~%rIlr7)}Wr4XY
zF{t6OB6T4#0k|2JUrFWjn9!lwS`u^mH-<@E=kyOVs{fg-Uqu~(=n>4mhN({on0*cK
zEigXe`8m;Bk*07wp$TacgMNTd<0l*sOYr9^50p9zqA7(`h*vXU9tHrx;%s<T^b95y
zB?Q69JjE-**!j|_C=oB!g`#_~i^Z_>7p9^koF!$}4RSFH1YxX|%U=0;^L8#uMZv_J
zk}`4XsAVe^WaiD&NJR<c$>k|o>z2Us6N&t{x;7QP%(eIXYdOgrx!8Oe>O6G;Xyknt
z5kr@z!aqNY>z=nz_R~1D*AQfth#+A$J?r42wQ}x=7fN3dwR<^w_i{~v-OB|xDXf(f
z+62pfyf5OXM7z?hfI?L#qnN7C)ONunM+@c972YV-g#v>*LW4S@%LjGD2X!O|bufck
z0%{%-9;h)CN5I)oP(aOG$O9$2)iBh+91VfD*s|_<1b)gsf~wWhc%f{G!*ap0PvioB
z!eLXXXqSjN1bnX{;N$0YJ<`2E5Rrl9_BiOgrHBEX)19?GjjO)0)0oZNXD*C7itd}*
zmnsTVItwNdZ!CqSG+_R8<y5p|25f%}RRZ&+hw6vwUo$E1P?VA@N4uQWA2e54v!Vze
zFZg4^cxfuyQ`!z81H=br?N>ou7_gYc0VKk}(L5dTy{#9qNwr~Jg8}+MlR<jrJQGRT
zdcBh9j0RO_RZmGB*EOzqcTXT{3G@7WAz}Lnj@pP`mO<<h1)217MsV%)ASs<x;H*Et
z)IDovQclp{>51HHW3;BGNI!AH0`?}7{EqBZ6i<vDtd|+C>lhhe=(x|oF&qgobW{yH
z>*(QSN%C+>sGLW4ytKzTyg_y2{w?A<u4ZY5jzNZw5r&S(NoDTqkZPwQaxM8iNmM4&
z>xtZ2Sy=5wd>8to=zk^U(Hz~OAou6kSEPruP>2DGp!1bK_8ql-A-h`T)|OvmU#?Uq
z1Kk}2%U#034<_fC<fh(5e+Yg(xAF$lm}HPz&>s7c=@Ez&?kMd=w$F`y5z-JV?<6BX
zXCPMoU!`aJhp{hswwe(?Jn@3CE5Di%9PTa%a_B-YIQST`zNy(-MwPw%Vn)CNQ5hJy
z=ga>N;D99viy4_<yIkf^&te5w%*d5LULBDuH4!~sEU=;X`-}>#!#AxbEU@6mD!E``
z)M8J4nEwFoY=xa694<s6#_wegzLD{9L|(&s4sT>u&}8h9X*-sTGwddz$oohjvky7+
zQ;v*K{Q28s5wEW@u6`^T`(YVhAQQAyB{C4mgbAp?ovfE+od&so!W2P;C9oLTTot8a
zf!W+Za`PkqZ!GlbTxdwa9_o)!;HF#HQQ;n3uno!|2>blu00H>0-bm0-&dvx0_yHV(
zdqBkmcdnS^L?XeHoFE~@9V$ZrQTaJ?PzrGnML|7CAsbL`0?0rZ23d{r9p%8Mdoalf
zScN_`$_YXFBVs&1Sg3WjbjokA=}*_d-(_Wa$sdCMz)di`7>>WQWmD#G(`?$sIot#Y
z$ibGpQ>Uz>@q|Hc476M81baMgz^XuXu$GTwmLqG4^G{W=Cg_%X_y>66W2gV}7tCcv
zKF`mN%?D3>zuZ^xIq(Fr(+)8NVy8%nS?E;8_sjhWof_w`6LiZ#=;X)u%l(2*vpxsD
zTTU;UGFJ-||4gWqZ{eVI=G<~0@}JMUBO)t6F?s^G!XCgw`x_-bi>(AVL2xC!PHkGm
z66c{gAs365OIo@Gf-5S{LnR1>hMTW3&=c&vM`h-onk@RsQa;rA15%a1)Y<kzabl|k
z`DjY~PdH_$ZwS$p#xFQE>xz?JH|L9+LsO;v#5buFBS8Z`no_Y5U8h=&)>^g+jh;eT
z$p~U(hqNG^dSuux^>JgTDk7%;heu*=HWmJBHkA-k7rQuDl+2`W3fdtkfH*dkUU+}J
z1Pt3}r@!p7Pm21e9Iy)w*DQxPD_88A&6N({atz8U2JYWGz@KJkYvN4PE1~5_^)>|H
z^g`&gfIbU2SKY<WzISlyln0*h^pPFFAA-swd`aVVpoWmGSF(2mRz;oM=vV|p#$g_$
zGic#R=#7nm8Q4)l(P$kxw1~0-GQSc9*CyzQr;5vVO-cd_;Xng%Cu*;Nz>@hw=CCJ-
z!Rja~ZP}uJdkb)#n`XB)M#7;)bK4_+Mx=b%nF8q4m_#A^m1uqy6;dD^BuL*m`d4HC
zETaNHrvL;5BdT!g*&5{aYGl<L8CY*>MnbC+W()3v*t)qAa(ln<(VvM$Ho)vj{Hb;2
zBbZtwNJ707x<E={bon_E{*EM=@HQD`s3oIw06|Nr?XHCBKa)|3f^?jzge!lNt3*4}
zQP%w$PN{M>Tn#aF{ZYk5mFPN`FZr^@nkeM69CGjLe3brjO^oy^9}O*n;1YvWIX_`R
zI?6{iQBYzfy!(g31(?&657!<Epy8|dIFYBHs&H=gM%k)=mr&_{^r)Bdy-zQw@{56~
zwk(4nm77Gd(q9E@7p!VUGurS3%RL&cNZlwOF+C7Ghj+}NG%vRZP!?<1jJok;&apn5
zWC?x)b6H+yGm6a_`}~i3w%!_4)@=L}-+wJ3I|Elt4$AuXIfv2982p#Wk4;l4|Ifhm
z`1w0$rwtgF4z*kqfT~2w<X20;F9<rbVQ#58Z}vCYZ_qJl&-V;MgT$Hd7+gN<zJ&J3
zY~HBbv)|9!6-{z{kAMk3b(UbOu+7q0e?TTmRvwL7E{B0`uXIHd(L~J-$vS+2j*LQ`
zCQ_k#OZLC5_#QYxkHh@Uv&Ko2EeLurd<zE?SMY}6W)FVNwW3bOQge1%`XiW0buNK$
zkW44KYd92EriNBIq7EnP4$FIJ(Qs&^K$jNWSd-h<K7=OiM54WfgECr<qu<V&EBx*9
zcIC2G$WDYwL|aaB<)CM*A`%w(CZcCXxH0oO(RooYN3a(WW<i2wx1q5FlN7_FECL1|
z50Alw_b_B0WLs&-rK%9NQdZ1QzvI1>&^I+U!<`w2LB0KoZD>;QL0GvP&OR&AwA{)T
zbj4ceSTKf07^-W`)qh|Fx_P0;4vrSC&?1At1U|VuJW&|p%!ftPVEHt7vJjR`8{)un
zaIk8C>yjak@(>5+rd5F_&~2#(OKL$k9Nh1%ImFT8m+ImlP)~n}3GYY4E}%9iDIjc}
zle8F$iiV||U<J4#&TSCKM2|yRU4IO5Ojn{c7Pg^n=!fQHhteWlu&nt~$W@!q{x9DD
zpaNgWhE)0o8>oW%V=d^a|4;#}EDpIX|5rRq`8=n7@njffwxH3`ywN|jiolp}*cJX2
z%YHsf+vs0!$_}!0{Y}i3kRMEm1&{yj+t*kGdD8ykxdZYn|BWXOa?|@)Jbn2*NB`m(
z1bI&X#uI)ih{3<&S<2^W8T0GeV<68hzwulJ`N705@c7?8dq1D&nZI~uK%Qm4@mvGB
z!4wz&f~Uq}$aDBFo@XJ?@4xX}3%RZPS3G_BJWUV(diF}l)BZP}>mk1l|B7cRpJ(1*
zJewfT;@^0}-QE1sT=4i`>yyuO=r5j+AkXpNcy5B+;D+yi!BayC^28tc_3T}cr}b|<
zVG>k?z-RftmeZHd^Y~vp*^p<!Z#<15H<N$Gvy{*C^Itr9kSF&yo~DqW*}vl1&*!<3
z^6S|p;jm=>A3R;<21ekR42NWMh~q5&c2tD`@E=Fj7%<U-rowh){}@%5w4sZZubrI`
z=B5DH5L`upj#X>ekPW|~UwuOG?`M|*G!`N#IAm8&v@p<9eCBY(KC%+M0xCu<Rz*O_
zc$PJSz?e}4Mv21X7tenfuIqEg&?M*BUwTo3dfEA(dfE4<Uf@*aIyYC%O;xUQbJZV{
z6r7>p^T23BM|jzmA&wJ-4nrIlc;X7HehzWmhd5i|iN_FU+Yo2_5NF5VY8W#6M-3-}
zu`culDDn0`G<<9fji$%VJ;B_(<+|%%3Jpd5FFB!*{CcK;D<^#Pf0R=aDD|OtK)D>|
z<SeZlLtpx>C;XFY=TLy_oQCI6fa@F#m_q@sb1;C90-*eJ>i2@>aQ;^0|BY%T`Km?7
z|59x(6nW=wBEuR4b6?5-&>Nu0up!r9cm)dO3Oj`lEU7!h@%vlBV4wO&T|NREX3$rl
zV8(O0G^-y&PlU~WRU05s<0C8OKP7|Bx%$r*n++J^1paN4a2we_HhCNT7)KKm;4<f2
zlfJOYz~6LX^Jk0ygD#*VpdR3R8Jp|;+aY2Lg0*k|RwT&dpG4wbp-iD~L5VgFaSlVk
zW_EoH&0C8o@UiCH(DHxLp+aDd-oKR?KHfh`%;^9#U1;aTUmdFS#2C8jKb0sChpJpO
z{O3Oo<v)HW!2bmmI?<OQMzw;!!{GJ*ItY*w0k3g^;Ls8N?u76u{g6@(DRX!6DK7In
z(Si^~!Toc8Tyq;z+#%(!YgR9S#=visQb+;6QREdn(asQ&{B>6%q+IxoG6pF>f1~&=
z>_ijcT>jTx9guSFH;UP!PW0q&lzK?9g|pyacWEr{MALqw<U-2mZxlhLPP8SQBL2E7
z0#YtP3V(9=LqCur5&P#gko=Da0bao~P7ou-{&^Rl@~AvrOcIW8e`&snmM&J$AM@Z}
z=h`wln=ZB+ez|{95^to7!JI9#6V==`f{p27;gIszHM!O4V#2WB*#F|ARGTi=2q|;d
zKr$i(=TM_AAc&cd(U$)I&xr#6u|JQYx_~4`8H4Bv{~td3|JUbf4qw6TC7o!K<T)$(
z?><ldHLI0j=l^vLpHd1bJAR|cV>{7-zflq)W&dxKF-S@HjpD1)iO%|s(g7(2zfsIo
zVdwviQV%Itf1_xqb)s+oM#+VgXTMPd)jQE2expP{%Fu6=en^@6jpCxwi55!vQ$MpB
zgA}>nD62I)(b(T8rI51X7X>Qp9}hm~rt|4y>)~Cp@OLL<wylbEF`Hj}_!M42x|sWK
z6!y(@G2h=Px38s(h5klyfuG)y-zXhb>0;@>QDPd>#qxhq_yYeC8w6K);Tohr^qQi%
zBhoNo-ypXHD~0a)@y7}zY8&)&xXn671!4Yo{`zC@cewb=U;hC3Umgs+$E*tjEG6Kn
z?S0$>lSa+>8X<;-coN>E*ipL_-zMAz(gsHO4z3Q&9?5ZzV3N_mh+m}WP7E2-H<fS+
zy8BM?1F0N7PTZGUEqZkIJe({sPd-w%42xXF-p9Vfe#HW;?9w5}KQ|bgzzxQUAfg39
z1keHqN(8eIql4LmA!58R;1oE9!~+xsp8*6XG2jR$3xkwk>M?g=_K-mg4<n6L!2%3O
z&Wu7~icnxW9wGran%N=KD@QqSHDWHUXxJpI<R0*o^DzX4s7!ODQE+vlUkpK`B4iOo
z6kK7jfeA%n!cQ=Qpj5b1d1M5p{|wrKEJyiQ*}_Dk!9O_>3lXxo4&tXXSGE1Jci$9;
zF*b(h@fZy49n{uwZ8>55jFKcnebyNS<XX-=_OE*rL|@oqp|%DkwNX$3)iV7U)^4A@
z0Hn$g2>dG;Z-N#O2tY^xe@RekSV6?`^H?l2SfZe(dA1r3to<UUk1|4|^ihJFP?GW{
z!mem!Em~lc@E)`+x<+UV{NELgf<7%YMKBUh@%+g5VSdWC<1p!-0CGm6i(A$NoBcFC
zGRbd7SrEoepkW(A@PJj@5dN*`NY)>>a_~2VX7tbkkpk-^WUBrUK@3Xt4p|6G8;1F#
z(TLkdK^W5`DBvxO3W9qR!vq8ligj_n4!~Bx=*Tb(X@-rBfgdy9ryOBA{Yk<fZJ>we
z#Dkvk_cQPrA_edwaBIA+AhJoU+eQfGEcL5JN%*)9YoS*byH|pW7C0d+CA1bkj|mbC
zTe`Ue7IKG+;-j2OE`9_E3V#{JU)!Mz@*aNd#j79)z8e5AY}^GtP6(i6)(R@Z&m;i;
z{O19mVAhw%r=5X6b{+50nHg}~Km6Si$%p?664+?LOav}%@hNBFzoqb+J&>|zmI6m0
zq+hlV-2o|lXOkuTffyP7KvhET=G*}g6$E+8l<giau36N>n%;~EFpwD_h6wjhp@J3*
z4vxq`=O+L|TtruBh>JtaFm9Lt%ppt$1}Vf;V_GpCm`|7~j5t;ai|AqrSSPG6c0V=+
zdm3AbwQ9yb#da%A;}Bhx0Gm@L$mR&KIdUiwHb?Xln<K{Nh_g8oY>p&6kz#YC*&K|v
z0OBeOuVHiMu{rW==n!Rd=Ce5q*c?T8vXISL#O5q!bClSemrK|jWi|)P9z|5){c3EE
zI-8@x=4iqbEjDK<o1@L<EQ2S@*&H1<X9b(H5}xR?IXE^)kIm7CCkAZJDmG^|o3jR<
z7_vEQ*_?H3&U$#Vfz8>-<`}U#o2o>hy6|icfz2_7e=uQlOxYYWHpd*ESg<*kY>pM1
zV+~Ji*c@9n$BxahhbInf4w21qWOKH_6DKyunay#5^1~B1HpiXK*~;d4AgcsD@O$xx
z@l<><z7Br}zvDH&dyNx99@UHZ#)&dV_D$-AAqTs_?fJw{6Z26j-D{Ll!ipe!=1%@I
z*{kCW#8XsBE3@x=2&M3v{ygRTC_}M0S5-Y_{e#4GVgXT774;F-y#`%G92|+wTC*{K
zkq;q@ZT!Zh@4HMGQGldCx@e8QV$rRyLXvbQH5;#`yO0i(sH9?&3_+rl^n%p)eaB+a
zA0$aKqD<B!n~+_|{^SGXH1b(8QbledKPUH-C&;3dMU)j3WHZH);-tSwtl3yjRZd75
zHSO3;7;03(d<X?9HWxi4t}$iK_4p2P-Bd?RSFYDPxDl?z>iHqT-#E3ZQ{wu2REM~s
z>oOjaY2Tj7HVWEVo>UF2x*8IK1YHU9n>O&eG^rOjs<-bO$7dkKtF<O1Ttq_|<qvO?
z;()HK!=DVyD#~fom5-NoE>hj8W+pwVw-<^0O7U?S7`+|2EbK8wK`lan5OO6%k_zmv
zFCTbe#WSTGudXQ#E;Rc-Vr4)zqq?Ps`%yL3d{BfQzwxm6I4xDV)Je(XpfomOljZ5=
zQS5`Zk@qR*sg2YJRO^WM)Rk(!S3+t-!$$RZg2w0q<(q!e&0e6!qVRCBlV)t2PpKMh
zHLclle$tntp#AGEWl`(YC3xe@Gg(ddhPX#n%iOMngpG&H=tqs}g<YT23+fAjOK25Y
zej|M$5vC{SCpmxA{swg1WeDex!-K@<vh`<%xQ43ESHecdjt5p`$zA?tVOtFf67<bZ
zIoCR0a6Y`UR@Ge1aX2Tut1qNB94^hvRz0Z$+r_PP7Z9l5Xpb^!MPCl7u2FO3jOraI
zzFsgt2}xVJ1JG7h7+0_QQiq{8cwZ}`)zX?xZS)<6xc=)hnMZc1njTa^t(;c*kualw
zB*7%xKy`i+I6`d8W@wsNQ_@S8FLtH`&Zu&F=%aKAjUn!W^u$nLy!43KP5ezy`d-TO
z!iXgAQG*~Jke{EVLFR>|R09c%(&h4nOYuF&)X=cRJwra(L_-6df3)Anyb$L}<%t+t
zO_*Gwa~SUc+3KnKbiVyXeEa@21JmIXCj02TSo#n*9eZYpFACsHsOX7I2g|l1<|o<|
zO`JY3sulyNewVfIrWpo!)gW#(A;y4iR-vIr8W>eP&M2!t_%pHo8t9bK$!**z?*Piq
zOnzEjQ4lxvl+nwOuQ-d9G4TL-wU%jE`+U*%leydFn7*tklOi0jc&}MynrrNZjUv%I
zCvBKJm{1d5FCL#%*_&!jIsQIwQQ5c9UR6#i^9=Jclg-K6=W+(bImH;C>8SR{NTfb)
zdd}=;PB0x+?n$r|)RcR?P=wkWl}vC_bqH5$Utopb<$u>qw!n(DjWr`*v2!BmrvbMe
z*caIE-8FyJzNx^HW329BMaBK`C~)8hF)y>{=;3x}g>$W}4wlpT%t9dBYZhjcA^8C-
z(3Cu0G{ce^RvVrf7;QGYIqzYeC$KzgdiX<;UvAtBo8cY9`-WXq5{CDl^!d>j=0$HV
zS3a<%0<6Yb<SLv!zNNiF?sLoV^I`dlhju{3zOVX*X?X>9`{d4j6S7PXjBO4$82!B%
zAN-a`Ic4ke^!lWqf7sM!;0Wxpdn#QoSpvxewl_cTlPph|m$^&zAV>!VV6RFZNXqfW
zGp<-%!D~kBQM(w5ns@+8yTH+Fi+=)5HQ!Oa$f@$`!B7>+a{<jePl3&ZrguJ^fSI0R
zHC1DbGiF|jRdWMqnjRLlZwj=f^2(abH|Qr|-e3_xGq~lp?o^H)s2|;QX)5y0)Knwp
z0Y>~p?b~7}ZxD9F{#Y63_@RWaM}o2^F=E)o*qb%ufDuf8=|jBn2phgQROs0#+6?Q4
zJ^kac(m^aDDOEENLgtN!)!uk_L!v$)6}VV25;Uq`RQ5f1a~=B#D_^nt<t4EEb^Zs-
z#09xn<FbN`1|HTCZ<h@iXS65JtkNNXbB-d+?H3xYrdH!DaN;K@pARj)2c)tIR~n1u
z9wj$7ybZy{<8pB}$4S7s@>JS-7yAZ^V#lKXeK(#q;m$t6b;D(%CF3}<Tp-W5r1l2;
zsQuFgVj#-6G|HbAZQQ4GY&G5jFJCbd*bPL|-K}kEHsxVU2d}O^u^)ez2nETO6SWDf
zC)k7XEdqB>g+6GWs=~M6#ZPF8oYCn5ybinKXdCy;<Oq><gLocZnrL(UJD6Pib@K2f
z`}6q7(<QowyPh#EiQOJVk!&(CDqdP2BGH+erq6vd-Cw*tfpua6;cnwyEzY6P%R~lI
zBp-8f@(K_rJ4MVmddt7v?M9|*4u@z$mT~|QQ>8~n%#SX?FVl>y+GngmG9=B2pCFE`
zF~71z4G_w(YbYP*wfB7YB!!U@NjAqrJg)#<r(<u;=}E7#FD|w<KCdJ-lb({a9kM=>
zP&wrC>OJ$&@|%EL@=7|j<+~NQniwWW-g=^KN{zgl+|N#ZIw=XjXX8t2J{wDp^od6K
zlCM+jvVVrxgL4x<QtWT8Zo{r;W}j6!ORge|p8&6Rs~(C}z&n8IeYRBhjAlnpCwY*}
zBcF8P3VzuIl2F96qRPdbcAl`W2E~wK1>Gq3Rd!ND48m1ewmI`mfJHD>bGuE-dc3%M
zfRV_pLP|9Se#49X)?8olDi4@kS?b(JH4zW>@20G#b#EyQTF9&h4L0dJE(UH`-a}{f
zDp7T*6C+*qRIuQ|FfpF&b{g}s6gA;O^`{=7esBhfX|a#zM~j<MZY1X2eE4jO^{`b9
zwT;^2sQQLFlo-&LJCk9n>6Vv*UQ`RLn(_JSm+f*mqi7|XF73JH4$;ziKz+d3IO_{(
z3-yt6{gQ38Dth-84`BJ`y+xw8<q1l`q6f7tyFTR5c%`%s^G)^gm+npjV4CINWNv<@
z?SR1(S~qQk_Q84Z3m}~R+?;B2Z8N?!pzr1gV-bA?U1c-9rNx<^E~i`*mSlns2F+VY
zg#q{I_MrMlIBP;cZrfB2y_EhV`k13G-V1!aW?p7HBHh=wbTE~*jLC9(5U~*Kv2IPY
zJmuz(UH;&UNune}nbBbmGv$2>+IAkX24xHEH>~uCUdgdyY-0p5J~(T4C2j=;>&1zg
z;~ufpl84cuxs3CSMh0>mQGd*sbc#$O=JnKpCUNgNtZh|1zTYu#=L;ukrV4ZBM|8uo
zEgui}Mgo)a)3&IADlKk_BeR6ny+yaH?G2d7xov%7?|p6R>x&Csr!Y@5JIqJHN7ukh
zcirqNDF%s4^r$|rx0zF~m|vJ5obR8ibH5D=y9h<D*YdB5jGlFqVX3iJvo5JvvqnS=
zB7c%tPQ@p2X5hd|XS?jN{chC3Dp`%AtbEpwXg^^4abxe16uSaSY`(gV;b`MM7EcLu
zZ{a*EPI1}*$hMc|UKeyI^(}dT49g97m`4uh0T}94ZC>E%iOEteaZvRp3_A_`4ns6Q
z3*_}`+h2hK`2mNEp`Sm}PYw1)4{;%sb_OuwEf_|>?PEZLGZ5L!=Ag&A07T(m#x(zH
z!XDy6ARY;zaT<V-k+7<H&{BY~UHQvc5Qv%1atQchRZSr}K5V-CL}7^Q3Zb}}JF<5R
z5-fqF$)UXFp~<qyA|YQPX>g+G<hMI!HVKqiV0mfZ>0@Z2JC5#1xB_w#Gcfw~4!CCO
z=<vwoXevYFoZ>Uyqap76oHn$d2l4<FJ`XvDIy6%tZ64L7A#)7{jH@ie^BX*#oERG7
zLUiv2&@uv1%iRTo6c8U*WUmDB2sKkEWjts<o!8J0h{X|^1{>w_ZW*F6@)#}5YMG4~
zMEp9Nv)>&)zVA-SZ{Xfr;pZBPc9$r-cVn?A{lzgD-Z4y(#2&4pe#$7=XO`V@D}qMt
z%Uslqk--gdr`99_%&IAEvoiN~Y=c?3=JyGVDArd91hjno(SngP2Q_0SQzX_)FXb3u
z`7_DDs6~g}ZV-`h(X7N-&V}kW6c};@n}uafV`sjMo#12LZ_fb4y0a)=D07Gl4IE)r
zw0eW8#nK-JD3q5dy0bt01dw`YQs<R((>-}CD}4+rjFVZre9cLhRd{=}j|bv+%D|7!
znRf6oTKcilVh0+$v`^DKoOOYAuFWwXpNl__&%1_4%4FCaU!W4J8s?51oOy>wd@r|2
znx+GJoA^qHvZTGm7FNb6;yj|dQT`eta(0cX6Uq-U70`QRY~SII*ck^wgT=?_=pqn!
zf+1gSS(kxtON`u+L5(3EBRUlkPt_6a(f$H@J_35*?2O@dG9RND;RzT`rnbe5RvUs1
z2$`pCBuJW1(k4lr-bg~^iB1iwSzDUbd6N2`JGW0qEa_hezFOVT&asS*QD?u5CFPJx
zNoTH-?#q3PRgFZvStP_J4jB36dvsV=mf)X7z9S01LX+jmIa=hi>&f=$aCbtidhiUa
z#gh1Pv)=>)T#5NdR@PbQsneqlku%7J<boRVH*T|t9vKNi?10Mt<?l@#ot^dy=<VK4
zVspUVOXk9|KKHBveTnVOFroYA_vS2{!j+UZGU74gW27N!PsZ0C0TzvmEcTgb#mV#=
zCsR&Q)QxC2DCP#wjmyH_5g#!<#Z)~XqXppHJ9KD3t7!w}{I;JBw)7r^S}I4?pcbvA
z+M{>hQ6Z1GdU~-;{4)bN0#K{1sl=j@r{wm{q~cL*9<`i`6d%1wMI-}J&hcH;A+9=L
zO*Q1bFfl$$IS%&XjGAoFG!1#07OiAG?Y>ipfZkKrAMvVT9yDadKGXHUqn%_~qciEA
zeA)C)uv#oFho-Ud+?P6<t?vh8|93Rx{v*H=U=>|7ziNfAsI^Kszhj0bLoZRIm#(2(
zQ_ZzE`xvbR+PM`PcgwA>P~@!h3EbDW_tS5u&`;CLF4LLRcU7y$fTg|jV2|Z7b38}p
zDP=#GN0(;wsxZ#4V%QdTT{b70fx&6bQx4a^ZNk*)s04+nMl&)Q>P9^m=!`qG*STGn
zFLmhyR|2ckENSgZY`7t^a@7b!kU5{py||2NS=n`Y5r{AZogUV<`TmbGsT;#qJ&a%;
zW#%(0N-LPQIgvtoR+=I{Mwh`|w9C`upDijWW4jb{<u`v~GtFk0GOS8<*5e2#<H-9e
zyd5Zu_dhG5ZbvNyHH4I{0Wza^)j7ictOKkx*5v}$ceUOwQ@@=duhv++@A@tQh>Emz
zwl&uftWGH<ueO&p#*$fk)^p1c*K=Jay~-D5nvUqybgKk*zgi`%e-Nf2i0Fa)7;vIb
zYr%>dm(gdkb!pN@dUc%*cNHF}n%vqY0h;G$+mV+Snt|*GE!l+;p--l~ha-lIB<>#k
z8GI5v{BDx|@enDcZ~emV(Dk^r0Qn>YczW`n$>z!ve6#Kei;tuGaIv_V9Icl<2P%F(
zv!E21RjF(gzW7$3a~a3LJ;N;veZ1ee3cUGfRT;OdH==#=C~X2KiZ8(;Nb0k9!?ro$
z!<_!nSBtNJ_Q~|qS_PKZDCO2ESP^S8MZjAQIwiE|{fyQ{VA?pY$akLSuD<=7wt*^)
zM(d&DY=9%~x6JRa9ZD7v`I;1e5?llh=%3(il4yOaZQM(I6noQIeak1H8}LSecweYb
zac1uXu(zfr7G1nGzt6-9R`<qi#vsV^erJrALEt&LA46mQQoy?<u$Xu*eFkgPl9*?Z
zgDJ&C`~(p{#@A=iwXG=GfluZOXK#zD<#l4TaVHiHu&s=NiTTMRGWTZu`*iCivC7!N
zBp238fMSCY!UZ}RGqh&v)pU*>b{94T3*i2axR^cMi$K&oX}`0H+RZ*fT`u-Kwh^l2
z#l6Q^TkltK`*w!>7`ikctkhk{SZ{OfAvSUM>h#j*UJ|$^xS7u>QiJ8=4qElV^ty?!
z*Q=iDDZl3qxFWpR`b}H~P~GQ{Z&q2mxb5c41ta`@iiYaKV?a(`!r^#M!A6YU<0e8g
z?kTPpcfJ%jy?OqMRA7IT(!c9n-_OQl;&>$`ye=L=I!y5i1{<C&f1<xTo8X7*R^bjy
z^n$g%Z*`IF*Gwt2RX23iwV(8`c-i=HUX$FOQ$77)u}u-(hS<NUkJQnM*CH8(#+s)9
z{~Gk5c@u2_n>_fQ*7gH0NgPZ94}Q`qiU%z0K=sv?ITu4;YH|#TR>W;Y@xH<M6bB%2
z;hbIE;FAjK^t`jYcw#Q`Jimm(%NxXj_~*nu81cR>K+XD#kHA}-Mv5lp<<;#@(c&bY
z5-H**i)h<{z5%}2(T(LcxSs1vQLrP`l8r)D1rCC&<y4w+-Ggy#`L51-?L^W^5|pH+
zyr}q_r@S@DiHuq!QFudw(?WVq>L-cyANyLN3~--~(-{*t>86h1)>`spEwY8!D|2!m
zvdDvcrMn-#unh3UsQs--qkR%3f^6XNh4S_!nRk&K@sqp#XNlQIFlbre&}nr@xX*l9
zCwT)^vZq(&GkDQC?q#0*P8=KLQrUD@hN4FKbP^oj)uw3p(l{NDmRx^y%~y(nBW22)
z5<#hYy5PZqfq2kpR`ags^|ji*oRECVB}x+oL0)%1qdX?EOt#@Ad(uB>fWX8n3y6h0
zF>FfHuFt2Gsd`k{Z_Q7xlqP6TSyQT$zIo=AXKG~ge5ma-#D3$sxB<YsN=OMAmGx?~
zI}lZSmRbcReD4nSw^DkO2v_Cs<cAUk&0-zYPgLF%RlINcX<KScCOB!4XtOW+&{W^m
zTosxD&5VX1op<37uUPZElQ{LYh6XkyE!g5`adI{OQ&wuwk`KG+A#`3mUA#~2O@Z4(
zU9izIyW@0CD5dYS`Xzc(MZ>rc?Fn%I?p<KhVCRJyyof77iYsV0X?0UzvA^K>YErie
zhzlBih`ao*bZU_HgfU^V1Kny>0}PD|R_UILzG!OtMvcCj{s1=drjO3)3-ct0k$+Tc
zwrl8tRYLX`lF1(?+oc{+Y8kf~5kFt{fp+XO!(_s#%Xpi;ce2QP#u(3;Gm<_2mSV45
zN=^XtCaJV}ibPZH^%cy`%!YA}Pt<1+w&xS^l)`r|=JB2jw{#f<h7+S%5NyJ25mmfs
zcbQT$RgrRZGVu^Ysfq5wM3A?E%vI0Xl$kK8$PGW2lTL;L;@PXLP^GSPF1dkuj~VeZ
zIY*=dJUDaP?k0V{4pl$x$m1!d+pvpQIfylK)D>nL=i*y^E!z*NtI~~GGgl^@d0&>y
zfBFCzr?onvKfjplnG9kbVP&yC)TNnr03o;dhlIG{4_Fan!z+W0tOu+v7Id_~<Fdx-
zaWvETZ=m&3^?5&8!Uf7LkJr4yH*p(=5xe0->9g?s**Z;WF#UGYq{y>mFa73*Jx6BY
zxg&r$I~)Sjh$;;HZ68GEgCoiiC0gzIxcYu{F)*uqVRF6D(k5~NgvcUjKO{^F{W4q@
z@mqi#S}0w30H`*vb*{BP?a8?RSeKNN2O;tx#K@*-uLb-Cra=iLOcn{k@MHA*kiDje
z3~G^-UG68qR(N{AEaz<iNlMAP#{ezlY>Jo%CkO_fg7}>^4UGfPRXaDOfx0w^Q{kMp
ze26Q_=J;nL<OHM$H7$e{%_xgMzUnK`v&sH&_W{YI;-&l$mv0kDAbaN_k&h8aRKx-~
zdCYz^u)6o@Sb>3g17#$e>0*u<LSuMt*dgxI$|K=%ogm4wgzBGCp5G^&v;kv>Q4=ys
zO9Y1r`)bTCcD7)5h;}w#*pErUoW?+(*7fshPB@8DVB2);?xXP!%At*O>ku%x)=$h3
z0__*yBpC=Ce@LkKEml%V$j4DZ-IP^ItJt`2yFzgM2CN-cN#b=Qu+EI1@v+K#g?~Ju
z5uD*0gME&h=~vq=ZtAL6U;=LX>|<nwAB~x+$KJ)N2}x>;o{j{9B!{e#RYYRK#T7i&
zQLGSd0bEd63wqS|y39{7Nu{(!_}C3=wi)539B_T#)r9V9%Y3T^TS6_$FFg>cPqr|*
z3(E!LlmteEK75MAArSS;%R<M>)HhBB&UbzzCMx#~IB$B>`c_IBv2RojA<7YzB!1{U
z1zle6pf@mo0d~iA_fWAZ+-c$v7kJ|1znx!dVhgHe!sPar-W8wH!<*pMg#22CY%D<2
zCTm7>_u=QsIwb!f{1JQ>eqi(-7(IS$>iT1A8b$m?fF=&p+=$=t0PhLCO{`T!WYYMf
z_k9AH=%}=~n!5`e)X%FSo}fO!zA;ok^z{fa3km~PP?s{@<~7<<&XxVlOY+(hjpfOb
z2S;%I#;R{}K&g3|QhRf5ecz^KQ$(1VP3YK28({Un`C(VJ^%_=CeTQnwYLW$MD+#{H
zuaEto3@M)j)_G@_21d%<4>g_x{|M53jZ}d^yCv$Ow^y_$X=b6awwbZVt}~Xvt}Ohb
z(kr_n?!^g`D0xxP)9|t`aH7F1`(Z|$9arJimJQ?_IBv&Gfo%`cf^V3V$Kunn%3c+|
z4I#&qXVipr7S4aNUPK5uRBv&a^1%dme+{c9w~{-^i;$S$5<n?TC8l;g97*2v>FyOZ
z9$A_)DAkjzPkHFHpAi!1Oi)@(2UjooEYW{rQ%~`UKDw=aKtF=QJ4#WKIR2rn)%6_M
zYjxhw@0rSc?$i~E2yJjgJZR;05c<T*qDZk|PjU;rZ?C}!MG)fp)1Zz>F}U>2x{fjv
ztlhmQ?(uT!lo8c|IxxDvdC}qp;7N>Gp0t6yqABB=wCq7@I<@zQ`w~~ME|YIO$~Nv4
z6qJE0K*~baqp|IF$jZ@JMcJ8zgUI8M=o|#rDIF0~Sqd^9M#;aBy|NRJv=9$|d8d1#
zI(zLwMEibx5JL7+UI@C!_x&hdu+afrc?8Rj`QFT)VpC_RN)pjQ$zSvUZzrL;y1zQ9
zeev`$UD^}+5ZCuUXt;Lv<4OC|)A;vkgriqD{<H%$sMqa{amcXW17Lo!mmL(kGK_;W
zI8SS&J%AHeM>-f$u<h@1C~U*)BsDvEe)~p4==)An5kxhZjx2h-mFpK-n@0ao+PFxx
z0etbdKTjIkc(mQTP_vePo314BNCJrIY;T1~c^ZF=(1B??H%513&J1yDe@Nd6z;^)K
z)55tgNdaOo$+I5AgfYbBRIS<w_70YrRIQAi7CBo&om2~A9ARWJDq}&#KCNQ+0qbPS
zWkpeY+cm^`hSFU|Cj&v$zA{K9Hjz9z=D_Ivv?N!jVc=(4U$XVa+f#kx*ETTim`V}?
z!m=PFu%AS1+FOdPN`OfPVwjyQ_$eO3p;y0ed13)l#v(L4VhkQk)iduh)r78yukhaw
ztZnULbC)vZl9%n8<S@}JdDg(FA=vuSw`+5-{c(zpXx`6lF_A_rB?p!#3l{K-WUcSD
zisI$M%Mz!O9F)y~tW`n8+t+qpeU|1;tS2lb31WjX&~~IEW=)FC*n2<xstadWI{=hq
zPlnv99XW<pAog0<Ig<~UYNrf`t%lWvRNrpjdKd6cm>v&|x)ao<L!C6)Kb$grdKkKo
zJdAF&IhCkcgEOnzq_SLfZmw${emdL>|D-WFd~@VJSpj*%jaUGBRxjTMHcZK=qby^0
z;LUgXOq;%$0HPS)B24e9AkQ-gHZA}>>+4B^jAiHgl*dglE)pF_E#4&q_q?qZ4dvT)
zs9j!O?+L&OJYRepDDEm3BY4|iqr{;WbSL=khzC4h?1th};>zzQazLnY>Ojb2jd!LC
zT(5&iz#F!p8I4(fN6tS_=D<T4-!qt=)xgB<%(4&%e`Ao$*sYIwD86ON3cC&a^o+c7
z!oCl{)5NSM(aQc-`>lG1G^{UfLvh)8u+eza%jZ^2Kk;|X<Vt0Et=JCi%&U_|M;<wE
z)q?JF=f~J$>nI%OHs%%P3v838eWe-r?9R5YRsZ}Nqm`)cDT8&v3}O+zM1Z}c7LL`E
zU!{WUUF8anNsQ7P4wz<Boa0UU!uo@)aJ+4}r)MOidJhfxfl#w-!^>68SNe7pq~X5c
zJL5BwQvq|YqUDJ%S39XCi@y!D;yQ2vZr_0i*~BK67>C1~dYs5S*FJ-j!SmGc5$fe!
zyI7G2;F)#xj$TcK)rY%hgWrMQhle|Kaue{Rk|0%+-RJP(8d2bMo%+Sa3oV-{CB2Pq
z+XkB+;dvkM%at;}gy{^b1G8(nCs@-ze7Q%ZiF-&JiZ`=+UxCzztIhMCb)_fM(4XP1
zI^qsuXS@@*&{4)<nUuf5>z!&U8^6Ri6nN)}5$Znz2d7dBfv`hdz$PaIBj7#sgxF0S
zA$o_1kT#W!D7&gGA*u4}hRa>R_I4@zZ2yiI$>mO$Q`MYEzNC)4DG;8J#67&px`vW^
ziKy`9^3^O7Z-VR{pMUtLWqt%O%loF3s!>hmuD?fmOL}$Uc~{jkuqnjOx;guLALfV5
z)$M}h`DAT!&=@%DzxIPtvt2o*-XRvV%=v&LS;?CmL54ewQpvI!m%OG%ylTl2>USn%
z4+VfdCe~+aP$^-3QTmp+Au{u9vVksGYvZJ5leg|YmJp=+?W7Xr5Vflncod6_Pexg%
zQgoB^zt&_JxlnlilvgL>ZVP*6uLsL5PKh%ED$loBrDjn|DD{*G^$o{BCn;RxlSAVY
z{L?*6c`@N#ly8)M2pr_}6sU;e!kX6d*hqmE@mq$}2=%k^K$NLFBWGPAjaPTWZp@|a
zqJ~gsx^=>P-8q|T^nm^G_ahQbvdgA!sg+U%>7N}tZms}SJ@e9CpR4Y*OC=<BQU|G@
zG|5h&mh>sy#<;NvUu(Waq}qq?7~-v?MW}x*s4g1c3%V_9T_TO+Rr+oo_N0Z;65)8P
zfA<s(Q7hO}O>3pmpM$SDs>j|Lr$pgZaoa;!75%gc8Wco9e!1V;5d&aGW5~rlH>;lN
z%UMp(Wt2QEU!e`$7$#?1o!*^j4=-KIH#|ORiX8%Lj=z?vF->2Al@0Rj_dQTkK&R7r
zx9B)M2C^xtvKg=}8jc96ym{1DaPbp;iY^XETmyM5qaufFUcG0sIu~Wfn2As)2yO7%
zdh-RaDpzY}8+4^`IT4JbjBcG9v0rzC33qjyYrWFwcKeyV_D<Isi&zhzfO9YLiEHer
zPw>Y+>~_0u^^JirXFh4#Ms)z1PAf2`Jswdqb*t@}Ud}XPIxr*DNj~?1Vek(v)3m{N
z*z^x;m$&X`@;&_*px1!ToNf(2{4}&*<Z0S7A8Urb;Z|QR2%pSVHA}T_#7MvWi4Q~b
z9ZY)AQ4`v=7^|30pj`I5wCC!pj%hU>fmJ#jErOB0GYSSAs3a*}i;BL3XCqigS)Vj*
zTunhn<x&HOV{d+7d5RA|dRMdftGDo(?RGaL9XAjKHubs0qPjziLvQm~(!(ln^j*DX
zc=`5jB)faxv)<kBx|LK>DyP=XS`*sPVj%e<LCCV%u$pP;pg;b|P@9(m0`1P*Tv5@a
z4y8%WVR3$r2N)0m*8uz&aLaoH0_&UvK2ZO|)IbZ}k_JjNb<zdf1}R2s@3_wSm(Vat
zg8?k+NcbpcHT2d$2DR&GqvbNj^^~GzgiEbkpu>9Sd|1C43EPbh$00vfpbl-6Uby7?
zV+J@NWPWyk-}N;2?RG2Xy!8cWSFe@mD0L(ZhXjps@}MCC>s|+<jid}f>_XL#PLhNh
zl#Z{*y4*H@+99Oitb+u<7Yx)yjG!69w?oz}<)awDhcSE<WBcXZQ=!O}NC0a0N<`Cd
zoTD-c_ulX30%)<Ux_hc=v)Wo4P*E~ai@$STb86QABysFk>st|E7HgVNm2%g(JrNhQ
z1M>h{ABlTGvOvFjrdi`Ko)tZ~Ur#U>a~?B;7K*mY=?+d$047ymtJL(hOE|-FbD>TM
zGPn_3JbUlW4U5Vp_ztNTryK>8u)5fN1T5Uz<_f2UK<resVhr}j^tk82L~o$0Ot@lU
zVw}=ms4ZEAZNYAqST+t;>FrJJGdp)4e||A(|ARaZHUJOdOuoQKL|Ih=uuFAJh;{w4
zox5Edw*iM1DmKu;f<>E@E$GG$shCU`v0`7`eq0J}U=(!Bl&$)d2FyTe(2FaQ>Kip0
zt8x5!1VPpg;E+^kUv%n+Y3ixq5s@e`{z~1o>z(m+il^>li9))*9iF!fzgc42Nq1U=
z4>)L*+!FpEXM~%1SuO`ZLev~veF$9Qz9n8Gy0}vF;%2<>;$hY|q18a^nx)NvmVGwG
zf9GVNCqWfWoRTMM5eG&c>aO1t1=6ccbG&?>l(yfkoaaFFB!&?YBy(Ld5n04AE+Ep0
z2-q9`@K8qHO*4>H{KEdlj)vP)&x!rS%@Xzj+a`R#AlBqM`tan<_A5O{<VpL<L)<(m
zfMkc%L|A8>!W%`=S!svuNV`bzHC<h)AMuLd1_+HI6}|&1!98^;q|>BI(!l77x~+hG
zRye_$QFae|(Qu1~LI>#+3~GWmoxS}uAq8mxwl~b;&dq<F^DK26If%SJ3j1X&avem>
zv*=ooG`lo&91X+JyjOVbzY((BOF0}t7NVw6U~1Q^+%cRKXeJ&P+;zy{p}P8+Qc45m
z9%cVK%CdOPkTUNGTu8N-Z}}eKOz<}CTk5L4pUpt>fZgb%Pso6k7Ihufh8ne#iuDd*
zd4Bhcre;zR`i-TEAS(%Lno+rxn!G2V=7o1X^)B^M^nv}KseD@qW@q{A%k{nBS?D94
znp#*c2AINJtL$Sg6Ya5AJm^$w+IAXpFojH`L3sn-dtdU(p}~bguE?4#t=)=%SUIWp
z$!vYHY+M8F9_=md&{tYq&P*IPa6IgbmpuLG(Of5Bcv{r%ocDAyweZWfDMPvyeH*>%
zVle${*i0Pxv$xM@Z{L}0I&#K*4{E{}d^f&$J5;|dMcuTco_?3!Nsk_))4W~7O{=|e
zAwl-l;j;7@7~N;KFu;_40a(_%wjLN-=qZzFuz_L6coZEI%!tcLtos~+91M@mqC+P-
zVBI{DvRu`n0-r|OCc1cWPR%t&{X@pXn8RNgi1@TxIM2K#2hJMzmNi%d$8{ORGn2Oy
zsG}82)K)Vsm|K}giuN+UhBe)4y_I%NL?q)72tG4^-f=^dB1$F&TRSQBrIM-9%zVnE
z^f9MP$?72=yr#t4XSm|2_uqZM+y}1~IpnJ@IBjKVocctUMPNCxV*OaHl=Ea<$kAIV
zx3b>r<b&_gBl~qM8Fu({>iTaG6aEN}?qJ1zX1(_Q<bz}j*QBtZT`T8wxh1v79M~u5
zdqlrTX@BOXJIr6IjrSWyq;uGu2>lQw+e@}K>%A!W!H61e+G~D|!qwif_5IBUwZj^>
zhhGgR3=GHRL{@mO2<3_2l4QA1P!%r{ftz{dk%mia4yj*zstfoiI?)fDG7(3zL$7fH
zL44DAzNvUB5R;U@U+H$!98@dz?q02$wBM={G=rxgsSnV+eNnyN2qFlwKqO<uTWfH|
zc-K|??805xb#Amx4F(u~fT!`%K+J3JquJ=}7_L`x_4go5YmQWq+rrP+LGo$KV}7{)
zWXp|LyJ}(Kgjbm40nEtZR)5Nf931}|1VPef8Nx=}bbq`RX0`D70z<47wqzSNB^Vo*
zvm(@caab5Hc_c?FyzM|+D+8=INeX`UQAg~Yyf%Mme2z{1h()Gs^~JGg^K3s~CC>v1
zRNIpavtvRmyE<O2z-`7k;?jI@C2=|4sN4qClv}bQ8DBwOkYcX)VbgL-@AU%)0dCy$
zxY9=416=xh+~HQAje0@6wVr5vGWGN5ej@m2kszF0U;Ri`>W+anegnR%B4ax~cr}+C
z9-G1y++@4yP###{H)g^(ID=40_eQ^;#q;B4GIL+x<8pk(O7~;x1vgcLh>lnqk!V+q
zZ~B&%wf)V?VNIgeS|W1HmiV*Rf0=j2@tF`J486Wb?-T@<iP0IQ_h$}gAIKq=5*vur
z`|zSb&JxFnIPFk2@ytD~w_tDKTg&E+RT;@22!?{*awH8>S4CEfISHKn<fR-c*b_jy
z@Dr$ANctjZcdP?H(f_jSZB!cREUC4Mlzodd&ZI)A(nP`NLbUh>%d$S~s}pw)-zm(I
zCaaKJyDD;w$x$q++k%@Oxq>4=5w+I1DhsciQ*p33hQB%*Urj#VMn2q{c<T%CLvcQM
zQtap{{M4ZapUk;=;*9?l29~0wPeF3cDba#{6t$u#-j6u(R6+D&t42$3lz4h&XZE$u
z1o>S@DbQ;kCH?F}afsVZ3bLG4WVA3gP@r2gU~#NULW}gRL(?*evi$*Z@h>(@j1`_x
zjamkFme|NRWS;zry|gsB++3KdNWBz3Q+T4=U}M=>^jctB-MWUMtaLE<P@F=E<GI*y
ziPO#LN5EshlS%{;t9*Qp)9}%*FqvCXz1faFCST%W`u6RPZOUu}o%=r=3*cH8P$H-O
zS3YE&{7|f^#VT_1G3nkC@!r$h`8H2>Tio7?*ul7_%xE((DQ2`Wz`jtGwjxRS*vOTf
z`Nhs=Lg-z`1IuDB9=v|a{axt=uXULpXA0xoR&=jaDUQuJR~0AOc0N>UG51|5Fsz$%
zl%A<e+h1MRS%cnXY|?u!mP}FW-V&3p<uL{5im&?Y3)j*y{mCBN`%acn+0-UqAg$`U
zR(PR97T&?~+J-Xqx{_|{%mKRoiPq?i%Tj>Z1zJq_OG_;-j}Ph-*T}D>oCV;`L5GC!
zEDg+VqdSKkY2LI5T2(kGMq%fl`SB6H4uyge-IqkYth2N#+JS45Wt$b~hg(giBwCL2
z#H261@Z94du$XUJ`cNwWe7k|;k*)MS^q9&w+2GCo({{GW7FyW1`_iJ{o~E-IooWE{
z_;rzjF(H%kq0B2X0`K^o&g-WquBo?I&R=B>vaCu221TQkdhk+VatsZIAsm}6fq1Ug
zw4WyQFY3k(I&a%kv5j$-?|Ok@)W;bVInyZ=M^H5;ovbLjLKTF^SX~>oSFr9YbUcIa
zVcg7!@^u9tB)?dg<-0jz3&D~N{`?5c>QHc~XiLrk8M*_woUoVaaErcmiXVe{{rvIK
zZ)SF&&A4Kxc!GOsoA4Nak@ym`D*SN>7{C8UD9bu46VI&hYx=3n55R1hU^>N0uqbjP
zCt}hYqrt16a_m9d8;SU54<B!6?VF9hY)&_=tt>x+sRE|w<g9K_R%LLHrLnq(U7YsI
zR;>V~pG+&y2JJiCzUReSK7LPJ(`E!d?N#$^wM$6Gn{+F+v3KypFL`RiRpIxa<ea>y
z2V@A>?9S|W{UFev&JVxr|IXqE-a}}+vF_KZF+ZRiy4Z)fGH}*3gCRRUNFZZ2ZU+Wn
z2>qB1!Qq4erXMI#Fur*B=+=|3F_Xp+;bYKbWD?^0h47wz$jgYuNW=n!yamSXe1|Iu
zT0+tSi+j%j`boPiAFUe#?lDCh=GGl75pMVbWGjUCd$=-bAg1J}dDVNGEBzXca}=&L
zB%%G_?viwLxHEL(A0kPE!JD7*%BCG{K+^TP;M+}(*h_Qp{ubJ63p#4h5(#rgf)?<X
z8AhxTzf82JlvUMDClKp?$UM)$TM6fCA)Oj4<U9{qgfekL1zIDX5Z{lCZ}<srAkwCS
z&|$v>@teU)ZWf{FFD!Kc_QhGjOmX}3T-D7OM~t^b&_U=1dxw`d$v=&INv%XBjm2VK
zK@2|y%2F3vj!IY+P=pR#xMlR@Oe2Q(0HY;@NPC-}`UW<b)!Qy9+`Xe`<u$oKwkjY2
z;Gm_uC8xu*kWxRT<|Mdjihw=K-@E`#u7hxAlJ%3va(>9}O=>C<#!TSj{&jlPwuFus
zH*?fl<H`>Ko$;0kJtOR0>(mU0HwfQ@?zF$+-sWLl@IzeQl`{a`8eDICn%TaH>MC>f
zBtHaHOQ;<P>Y6d4Hkj5>z>CW7H>S6S;HLO7paY{faz4B~4chS58DCk;+}lMjFKoii
zg@9gOKaNAh;m(3ggWXU!-609eD=Xmwd%Az~7Q;(-xf$#5Hh6Cdg=4+iz{KCl{<7OO
zL8^H0^KFOlkKhWyJg{-Y(GT}#9O(GqZyLKIGbfC%;Cb!%!I8$u{)G7b;Jr;l>R22j
zu5B0U8=k+~FfjU|5FBrMA+^*r9*-}UsAF8z+d#A<I_!cder-50U5<D{h6@8Qv$m*-
zec5kL1uY$~OsOFbQPeGCH8-n?twe7LcW~<D{*q;DjjvEnV>D1dIsGF<o)tMr&gD&c
z;VUk%y!dL8y3ZZQRaj0kB54WPJbs@E(l2`xYp*eUF{{@pxcQR~kkTNG2cEAn3FcCg
z#vncY%v}@H^?{AGq}!xdB$%UOh=hEUToo2D>8m2qb(9HC4=z!%sIxnUy{@7Ye`^JK
zGuc}LxGregeXdH>ic)+rGSepdl36G(lzfMREZDnP!yTObY*(p3S`^ZL_;$c~awAzw
zDBK!Euq>_KTBkN*PZ!pf-~1f*i9AK-iBm>Yq7wYO<CK8yv0LXJ?^W>&ZPuj_C{7fZ
zeq=YLH(kzo0dmYZA3MVv2NgBF=4SO~Z?N=Xa+Sk*N+Sh|B4(5nJOMf#Kw)9=`Q`ga
zx>H{$n`uMb9ZTiI{K1=(=5)&ezter|UYC*eshYyEGXVe}H@U+q_k%IUx=0_~Q1hgQ
zQ4^^%y~z8E%xIxyw%|sK?nj4-J<;nfQm<1VQK1K;hdP?bjku8YBSA$XAxdLDP>;_b
z<bTI0Q_0N!R{pL8Z;3J>Z8K07oNs@FvZKf=+FaziFO7Gdz9=m0#j?QOQ-GMwTqTmT
zZk*fApGCBUBHL%OK)CNUyM&g+TO!)Gdb+aT(Z13E4aQFCE8`Xfu`SF%W}Ilq`Z&WF
zjt1S3-uGQgXvvbvByd&5()!XdUvmsD^v2mjdNuv})vpF{fK#<oWt|9J0W4`*f;I9&
zwq=b&T#e9Dq%AzW)~{-)NCmOyR{PFFf~J<By-`|1F*ix>wIDslG)=@|dX=R-@AMbO
z4~DmZJ2d*=It_0X(EVvbi47NR(agzQP^+SaLVKyfN!jX_<6`9hvG*QeO>N!U=$tDF
zRZIZ_))cBJQX<$*LRBmj0ozsxO%Ro?Zp%(+iWLyCD}CF=-ZfaTYzy|XEdg~~KqUdh
z3hR!QfZOjo-*@i0|9|dtpL_20c@`sCtPmt)%rVzH-Z9>J`&)k7KR-#|xNsb^>=Nl1
zH729?Z#K*ce>u59Qw4PO^gtDn=~dIM_N`{m_OA-w*#o7dR|RHPMe}Zt1^7^A3LQXy
z1-AH;%Wb-kIb^)CTkaA&#YqY^iZDJ!&JE6Zc<A=%Z22KlmbZSnf3Wg%jB=jxZF6<5
z=Ybxif;T2N_wuqoE|s}1s;x{^HE8B7Btu$09=<5uWFp?*KBwog0!yWXvi;@}2Rr{s
zSJ(QI=@Y)pU$@uz#phxrRZT}o88(I-wES%L$kMWv%mYKNwzQv}po&weE|aDE9y<Nj
zfA2_go#OD5Ri6ta1`QfPeixTWo7(WYeJ_5m3z@sWcILKPnSYh1$=&Du>yoj`^daAP
zUVAfnbjXZqzXAs~FIP}pxjVEmw!xM`3fzWyUvPZpMV?yOJb_iVXw2vCjr|&J8L~m1
zdecbn#IYx9<1d@OSogI~)vPLXtvX{&_ULiq_i<%MPBAC1C@>UrN*fO~8f_!p{X<=!
zhQIWdEB|;~)pzOM{XsW3s&=c+Jeu=fPyTY2hRm2X{z#p#a;(^yK0V9)@v&+x8%gov
z?4?g!+s!0xT;ZKbBIYzrjMeWqNS{sjmkb>YH#<cmv;TCNlzTGTV^}-MV)|^lOiFrc
zBE?6gC*?~bCViXQN4AXozM1S&5f%CD#yKI`<WVN=vv%a(^P=k#W)Sm)O7S93Nvbvl
z+pqA+y(-@R!aj$57(~W4exLvLd9_IWW{|flx!&X8_@S-)->zIj<fDGatBf@Db!j6b
zSs&^g*kitA9AiiIdf47IKF!xLtFLht>9h6lR`($vZ)jd~dG<V?O}u5Rdy`#W$$hfA
zUJTDQE17h&mKQ}{D@`V=Qa)9rkJ>~NUvc2&^dJ3<xyGse*x6~<nA6CX2jr+tc~dWr
zHdCt$Z~wxZ%{z9MUi!+BEc944CMWA&ICIdOQ^P45QxtPvLz|`i<+<3QrNWQoqmeml
zuk{&SdA{%3V`qH|q652BI87r9FTA{Z#b^Ib-n#?ItJ+wy1x_pbh4>t=irGWV8dWvp
zPF2O6J5~KZIukB41(HavixV=*mLyit``<C@OTKNNwfRJGn}po>uHvSN^(xJqV`n4t
z%b8J)&Jidi$XgPXD;(hBr*V!jnMq!6cg+38yL>EJa%i%0xCY<*+~h<TA3N*y7Ee46
zlx5H2+;`vhpC2}}pP)g!(#ddpxivZTeXnr~#w?yAZZR@WR1bC#4->a{sfY;M|9Q!L
z8**gf?f&(Pi)Phrj}gxkALA)rY$)zUZm8`g@YyNo#$;MFzAZj?#;KKO;7HD1{qW=c
z-Ax|ku3iIe1~dQIYH%asuSTg*#=N~T(1_g5Y(K$7=tY__cQHAR?wcKKxozd8;X9v?
z2nz`7QejX?1{ge;XyJXRPVANZ_Wg{E3;vd2@R3~Vt+JMx6_Wl+hnC(qo_c9cfA{Yi
z=Ci5o*Ygo%-Q5d*Sr+zRnNJT~ygEN@McCFb#S4;Q%1@!a9yXdh<nLIWlYga5eKG7|
zSbf-_#N!U+X>xGDs2$%X`<g9zPh@|sUYukbxk?sNdp^AX9jdu*+#2(^iDX~T#l8i$
zy!W~1bLgv&C3KM=JA0K}>(Nj=DBkaY+_cB<eQ$hDT$u2ERYI4F7)Q3U@+|aI?H$~t
zpG=%z?C2`@l84F_FYYkO#y<qj&eHAeyivzgxBLB)-kiXYw;OIBfhRVJ{+vLL&M)mx
z%bPz`t>Wd%OXSC^iUu}+Bflh09=mtZi`ik~YYmC46ff!7s;n95#p#hB6|dx<<!@T-
z$>eHY?M9#SVZ3)qn`G_D=~lU9E{T@yTW$B?@*dJ_*B>K$EZmr>X{pU^%H0^BzqsZ+
zsTX15zq~5<S?>ID?&pcQGjfOB+eKda%dO<@Ue5#a85<9++I{5Bn%vJ+bDiSFVZoJ$
zGs!5EF^6x-E?-?zvGxO%vwVuqRNW#m*KzW-F-37=?*8(r{jaqY_P%8<TUt85$jig#
zrlQ3CF)8{Q^tk7N8)M032M%q0K4-#|&!>RgdhBe;;?Gfm<QEsef{znp94?(4y1u1I
zuX1C2_@AWlh@*?1j9i~5j_G&%xzLP4z1oM}yZyOr*ZS#k<e0o)Zr6@JOsL1-o>NIt
zU=d3CogDq?qJxR=wg=)mN#iIt;hD;tmF-)_0IHO%*xr*Irx|zVQ*6WN*W7u3o`X10
zRedIdLn~JJ>^&l_F<vPx|K^{oL=FxnektCPWN+bgseeq(_h0Kb%C=~U;Uv`rNuiIV
z?Mhv4Bfoj*a$Cd7+8Oy<`#gc>N)oy&wat}9&|O&<H6#C;OC4!fJ7M1r8=rhRcl6C=
zHnk%LJq_552R*&!vKg-m^Vejl+Sf<7Q(4e4iqvJnzns3fT~Mu$zDaR?R9gP3>&=4?
z{f_|OweO#Kmu?w0q8^Q}4~iPS8?R<gZA@tVLa^^HY1{zz-u}k(jo38japQY<_JBcJ
zkY9+0IZmV$?4wC!JeWTXGRZ=)kN1#$?`ta;RNLy;1`XVsX!%8?_C4XhOTyg`ylH0_
zs1a)Z`ZNbKO_}vg&#0FB`X*IQ2y;5vS~)WxOx?sC%#&b62k#ooUND7US_ZT+nY{WY
zcRSu-p0K`YU?49No(@{TTS+|~T){gEPlwd->ZqqfzwnHm>YIjHIk`E((-C8x!r-ZR
zuG3Pd=k-mJ5~qVs_03RvAax81R8>SVD54)beQ6Qoe00)>O|+0Fb^&9RGfF%KtaXYw
z8;niP7I7t5+e_j{VC-@<Vw!(_lYI|=M=*VIy!|JDbx!b42jgO}!G9N6*Yp1O{6Ep&
z`}0YEfvH7UpRoESH)+`TFf`gU9y)W=Obf%dg%z19!=BuNZzT>|@ojR$F_P-BrMy5%
z_1M-$wSG#<F-@>ZsBcOhp5PBAC1-lVuV7R26UxA(<(y2o4tCC837^2s&0)#~^7^KE
zgXN>a{F)OfPXjxDrMw8tf}ErBD_|Ga$(z9}$}!IEm0RERn_I3g7<o=uZW36<(%em8
z(sK^xR)fuWn%f8_Ge^IuTTy*emP?T*nCzS>MYF&z&MsO9W=T$E(OIxLkBS<=EX|=+
znpf60Epx0CgIS(4p)wBaiuB3?Fe`I*Rh|aB>R#n*Fu6HoC0kkFl-EZ&6ij~3cx5!$
z)r*w5U<z`!DUX9)b4&RGOkvJ9rAbYF(^{LFfne6<_}9q5uK%@WIhYMOWi^MvZoFQj
z0<$USQ;ngjzG<^SB?7Z0XS8Z6*sW=*C18qjid6f-7GF_422+yLtYS3QH<k8kbOKYB
z<J&k1Y<W^+CYXwxO^tiN{$Abq0L-?W#zsumH*N1m_64&m$CC^JyL%QX2eZdu9l3-2
z*0lF5d58R~>A4B|O8&w4)6tsw2jlb9aqv|W6USV@>?Wc%&16zP-KP09WAw37=JSt`
z0HLx284wa6sm*|}Xpq_+F)SJ?YDZjq=Hb9*@>|FHUNoCp-&^6Op(K@=sKg|vG7}^w
zK2QDp<293O@J;_)7}(L;1(&<OhFWm_cq3lzdq`?GoUq?4(r!4n^16nqNov<bZJNZ?
zu4zg1W#03TpPPD}GO7JEO9LA{QoGZGjoxe6={3POp;H(L9=cB9qHwBHcr{#WnIm&b
zar&#N+j6HZV7liVcDe+%hssF<re}_!xQF<!rd}ekH<;czQ^g5jc}v6_!0;ve#plIG
zX^+M4;hB)(?`7ftSCf^KzZ8u1B!91Xur`_gg<x#=_**K$)@m@x2>9m14ntO9ZecKU
zK8%VrstX<+466=%5cW3gTbM}#FTo`Nc_xG;P{Fi3VM{_~!r26LCxMD0LwOImqg*Tx
zlp`v7sJ4(@^3(Dfd7T_J%Ne;AxqWhn=8ny!q6KB<7UpitJ)V0tmkJYHgiMQUiUt-@
zrJGqr@}m4AR91Aj=u#0C7i~q%N<k&mq`fPtcvw)mva+ahe<eC!Nd>}}N@Ha&rIS*s
zL{tFGRW4O-QtnYImA91Wh4Q0PzouJF-<shyl*6Nxn(Uf&H9Klf)=-|VsX;WAxynv8
zSVehwf+}5w3RD%Uqbka^->XO!yAfG6x;0WR9pAX9F}Ja#5glx#eEDtTw?-3^N4k)R
z^5N;EuD`dEJWHZGWbK!p06W2eCMX3U1mm6m;a}%-9-O5s-Vusb&`4>FkPo8HTzI<D
zaMVVGihi7-D^?l4seoxuFoRcj4ZUiWq5A=Z&i{Q4$~F9Q8lg{rUn9viRR4j{a|ZP)
z?LQ0~K*-yYhL*Rj)Nnu;Dgs&*x_KmXUVUV=>k&AO*3}q+n4$z2RL#xe4;r}en|3q^
zb>S!N<PvIV_6OayP(fkf_9vQq9oILtV$?<rE7AT~txyehwH~3b{mD->Z>e{0Ccig}
zf4=Z>IKT7#hts<1Q!ja<`7iyV)YuSe?8ndls6TM$A9*P}rVl+&#N5)2`|w7~;EY%Q
zm&7bMV*`(U(Q^121!q>n8QqW&>P!}#IR|H`5xu%=%Hd1{oay`H%mp~Zz1{h9;PgL?
z7NN$Mz+YecFJvvu{%KJAz@O%AQw52b<W~*L#Ne-1To3bGUbnz}zBO~}l>{A}VIDOs
z5`mcRHBWT=Cd_fp8%@BlJo-HN{!n<ga+sf^_XQ>r-+QPXo|)C4K88MpBlyXuR;)Gp
zNPVv02WZ7K^3&3u5j~G1)P~!d6$o8&S{gQX+&TZ+=U?<*x3s};<29$As9SdCvj!m;
z9u2<)$!{Pw!2dtwLxb9b8r3;w<?9CG!&Ed~rgv&%RU;9y0u&!4sP7rj>tenjCZr?x
zuQFmBOkti|PrP8<o<<9O()8~K9tH4BbYtRS+&>)@Z|q@gjaKo7mDj1bg7pYb{ndZ!
z<{p8*japp4i~i;yqw16%3^|f#>xLZF=$UnjKkTA+1*sb!m~+He(zL=h6||sCJ;@n{
zf3KV2y&op`=7w6Pgsf-(wU*0;?w9^qv>~JusM=6^C^jQ2j6jpTg?Dq8-fl(+b~n=(
zaG8CCAQAC)qr~!ci%ufqjkBJ<#lQ}U2>EDWoWSIw#r(O^sGk=|LX26#e=r%PE#{|Y
z@n@rus1^M2oB7G>`SF|i$J2K5D+CEBW;1{8&Mba12sEGIM=gVPund0OGX5?B5T8Q?
zFeAKE8=}tSgU!z8S_!KPYD$yuP8iel*mChSA|M9`qR9gWxx|X+i&u!ZiuZ}niP7DG
zX&*Wyc4|RlXA7Buyv6OP4l$S(%s$M4`XHo3=95cv7L)jUWzIExIe;KT4GHmgaxo&v
z3CuudZ6q^|xx{EQGmEHcCP@y4@sdE5A!7ibrxYXFKr%w781V^!ZJlC78c0TTDn_J5
z8`3)!BZkoNY#O{Sh(;J;6(7x^^dk7E(4UEB&``WNC`0fa98sJF0pp!!vymR7kedBu
zj*^?z6LDGq@N)4Clm0k#E&=193TIBzOEW=Hxy;do$95X($vA<hPoc|9(0sFI^(!1<
zOlWl`I)n)fv?I1CVFEp!%+J3PCJ1JeudAYWkZi9bcLX^@H*Q-R4Z;NaH0NnFOBlMe
z1g35oVndk7526G+Av_`WU=-8q7E11S!a*1v6e4*-zMpgQ>1>r)LOMmZUv+);Kur34
zZ~INDYJ5$Kec}dmU+GhpRQH<k3N_Jgi9wcN-FaH;K1`g%^Dy2462Mcj;R%B6%;j*L
zxu(t_-lKnln1`pBqDuI35RRj8oP@*65WeV7<hE+2m>N#xW*bf98c*b$WZQ85uprh~
zvujLMT%yZ0ZZnrSY;uhY8V6d5gGDf7iW)I>VIMZ93Al{DT<pe`2t7GSA{@(+2q(ZH
zgCm|gkp>Usa4dzRfI6`S9&CeSKO84H<q}~vOf0g!Z%1Pb8HQ;GQI9^M`>=xrpEH<~
z$LDy0*!x%xVTg}nj5c#bqE?Maw4W^!VOMuMNk8FWPCt0#e(=6DC--}Jusim2$79_w
z^TTdTB*RqPCRDYlJ!v<lr8Wtg*~zDS9u`H=k)kJG(ohQ1UW@ew5eP+>O~nQ0T&vl6
zw5#qKgL~rFgHOU^h15?^0u$b|D5VD3ZldLoOQ{j+!X}7tbGdHN7(W1!GAPN!qv?nQ
z{St8P*(fb4LL!|bi9(Kvl0~y&yse=V@|-3K^FqTB)OnrPNSqK-{MyI6m=bNMvmfE*
z=H=$$=7}+FQy+t=m}cC}-s6I8tJ$c0A6(%$V$^;%OySn97y9GtH3gK8Lr?3nL-5VX
z#0XDNkPrvz2QnvAFg8gc^HK^Dap*ycRzYHo#1*ymkCntitxJH4C;^E9837wS+s9S2
z2^>xj1o4Pt24lO8@Wi0ZRY4yFV-G<QVk)K-Azp+{p}qP@2_Nm*O$6%;uDM)u;kbDO
z*+lK}=<OQy&Vwz;VhfyuEXG8gB$hA?iSc7%qPDP6kCZ4J6s(9+oMd}=9CCT#0Tawz
zn%QW>sBKaD0_1lnYL5%5KIA%b3Oll=HDf%+(lPr80k@y<kmxFxwmgD<jQz}l_QHdi
zd?13EToq01@#fu1coBZrV}GRM{CD0j-DE!VB()JwJqQ$$NgzAl3o_@BRVnwQ2Lvoh
zar3w!JIUzIj(j5yL{DNaaAX06As1vtj1L+gxmk5!eWV#TkkQPp#NSL6{WI<h`)7_=
zd~QxsM1xwyWh_&RYa^}q5hvNtJQdaOMPKj?emow(Yk|VF+l5mLjnbkSxi7-8D>^|q
zaU8%^9l%o^z*G0oix@`4<ZPq;p+;<?JllD0@3d<8HS}^)67M9{$MQMYr3r1`O{{*S
zm-;IFqHFp*+#->1u8y!Z9<?K|VCCv+_S&`5ye}j66|G!-l6`eu`cW+0&yuWLPyxT(
zV0NUvWLdrD&D1pxy9t-y*RFn)wK@OLfb>etD%m_|S{h3|4?U2dO_BvH09}`zw-htC
z6sJZ=qGJMP!;{$&60ci|lo^ub`j~*k4aEtwC43Z9fWDtE{k?)eO|rXW`iXm`b22>m
z$p5ADjMcXk@f%9_mduI?C@s0*FfU;Cmg2ZMLGcx(pDRLQx0R+a52czM;m3xDq|TP4
zeJo9zE$J5_F%P|^NS+rUD=OVxmf~&haZ52jCLnrVK#H`s#At6x)G$eMYJg^*GGga%
z4Es~_68FK9^(d_FD<xAnt2)pu{3xtoQ)yG6!-7AUeJjY5?a4lfS!3B_*~=K`cDjzN
z_uq&u18Nxk!jU)-*RrgTg(F)y32Pi3GKjRJD17JnleDyxD7?MTZfvkEoEdPb`1g{T
zWu?ix&|Hfn$ypxlEA|tn^yEz0O&3h_@|Sh>`RydTAcBGN+9#$EW8I0n9;E}{c?>_h
z$9q%_no={XMqZO&L*2_>s(Dm{8fw~Vn9rQt``mSMAAJ9vH}X^cqMEHzs8*}WRYz2p
zRp?LEJ5{@i`D`#;GZ?Nx&LN{4DQqXbv7oV{@n|Eu(nx_iWFzyLCtTy{u6XB>E$vc%
zQCUBwJR8lLiP(_`1%@>}Y8<ayr(37@<+zw*#ZCM@i8TQ$o?@RZY}Q1qsK?8R9j+sh
zoxm(y93l>U5TnZS4fFFl?2HvQ)5e?F=1Jm$he>8hW%C1O-BR?Q#<5;LWmOQdCMd*%
zHpPFIKV9yh?>k_#-zU7so5nNe^`wv;DYCUYvAZOU$4}yA@(Ov|czGk;s(ZilPQR<-
zX?QfJA>1N?EWo^v?JVW4a@joo{EE`w4oW0WK~6f}<XR8+>fQ?HkSuzY(`~1hPL)xz
z0PGS5AhcTnCTI_)-!SJ~P5V$GJ~|Me69-Hxz<Y*H8*e%OmSR?S*HlhSK)fCQrY3ev
zaq#|bV#x>baIwEwCI;}w)wP;C&N`i7B!|nssudoI=$gg%v~uwg@o4`)#qY%JVmfQg
z<m^|DVdAjBupwM}rd@b%+xNw1O5*<V*j?suxnlf;1Btg3j!z}|qtFniUH+&2Yy9i{
zk6U(6zuY6kq44s)uybK|;guJgP*^zA26>+>wq10Hk-|P8yHxzSOqAfAFd@M{E@44J
zwyR5Z_oU0I!V)}koc>2axS_B_SRwIr&qPBt?wVKozbE|#;)2e%{z$L)DcsO}>=(C;
z5Fc6_8LC-#%4h4iZQ?s`Q~wnE%*Zy*y7?^IOHrJc@nxS)Y4IugTGG9Qk$2!#lC-+%
zx2es7vqrhp2%8P<H-mCK?p4jpZ%qm<B$g~xFH|=w(URQayxgEA&28#^x&F&N|3VK}
z%~{-(OE2OUoy?Vfez=^N+*-GI$+We3xjAjQL0g)umaKlB_UiC~t=HB%?*>uir$voL
zc-z^1!Hca!9xlIx&KBJ%3aYHiCW~ICYzujqEnYODsOEKZS@D)iR9Oj(^MXf}FH_2+
zqjRTyMDko4Wm)bfGI;S!hIbL12rEh|$}Bpie2{uixv|)}5_weiSKg_dx8qsbm%S5e
z;%W>Q)JT-`Dxw9!BD`7_NLMK1N|QvmJo<qA!h+JIOtfj<pGmEWE_KV3q91%?%)N{L
z!Wob6o6o%~0_*t~oEQZUygtso`)5+dW1csh;KKv!khyo4q(wj22DaE3XFQmPw}tTU
z1h{J^Suc4x;@splFP|k(DS5dw*`O(@Dajb4e<>lx_&4g}#<)Xy6@#{vF*e47JCs*H
zZt7HC^&xc|HEPSI+o;_dE%tf!5yo#;GeKtjs7`cM4`hda62YFP+fHd^!^Sdxk_~&D
z_Cq$TF#@z5wYp&rKQvb<-LUGvHCJg0NA@+H<|?HdHeRQ>n(b!*x?yBUhj?m3miTQG
zp%qUJH9(Yj>J|?J)*fb0CEc_?NCi`3ti$a*ei94=G1lV0^}@_S25BP$g&SjqbQAls
z5GSP?quchepm&pKjHhj6AwyL4&Yt$!4&);T)N8alVogHS9P&e&b?4irzol6vP3l;e
z*uSM&pI1>*NLE;@B_@f*KS{H`_&n~G83WTy*{#+fc_4?K9ZYRin6fM+3f^h+Wt7Ai
zQ{Z#4E7nSkX*F9tw4$xO{hj?iB-qF6|Dn%Y|9|Y~ed_=Jy#Gaf8~jiGyr+VU#J`U3
zgPrkh#X-B!|HtCn@PF#(z4tTj{J8OjpO^EHf3LLt56gL{(sqY5<j+dmFFxNg+xGWz
z-lXhY&Lze_E$0`zf=V)_7}+7gEdbHTe_qZR4K0ApcmS3{5UrXf4cmm)*pg*s`0^8O
zP`7I8H6ljrjMpuoM>1f9b_BYhXNLr+A>l`7;GL}+z$_t&Pmuy>1tZn9Nt|qaAoihV
zbXPu_c|?4Y{`x%QV(K-<IfDRq!zvof51%BA;B%*QS7Q46v^*_-4XDVj_CbD_rpIOI
zadE#^jS+`tJdoREAeY4%Pw5GE@77}_#!)@x3Mmlm+IcI9z*Gx%t47|-d?h9dxf_?7
zj$essiLIKMSo<e2K#CqL$>UNHU=;w|M!<;bG7zFENE>6xDvB^divG)4_w~~K^047@
zR^C$6dd-p%^sn`rUse(!uDvcL@nBN+3bCV;*!E2`NzKWo#$=m|d$4Mo)Q!tnGn|Gn
z%5y<KGJ7Rp37&S=^OZV%(Euy#Et%7g1-~Y{fYsHKH6)nbeqM-EnOAK9P|Wf(=xb-?
zW`er=;W1*)7eN!!<BEu4f_|>i9{0AEqTV*XtaOxZx)K{-;hbmRW|<4i{X7hYwK#zS
z;uJ(*CKA?b)B)CFWXwl@@@1?&$@Ll|B3e|o#h?$}&T5$ppc>0uRu3G?@MBv5P@%Gk
z(>IT!N7Dlw-3A-_y1#CrWSr*>+-mO20s-eC{2}~PhqkzbhV$A1S_x;axer#n_&j4J
zUC-arf0^og;fv1;<_+B9{?%W=5OIT=fAf`(Ts>fpPxQE)ps*o~N}HK}^kOWRVwjR0
zi(>(-E5^l)9A>Gf{?ZqppRqp)FloS^>B8v&5YQDKlCbOwm-Vm@wzGmgo*)M2oU`U~
zUb7gtt)n=S7}|jDuHXRYgfu)QrnfMC`6_!EKBj*c^-X93;dze)bK$Qt5hHu{1IE?_
z?>MwumKN>kmK`mOsY@81z*rFB&2a6JFqE;&6(vh?AEPMeU9NaZ3XT^2!AJev^-R0V
zj-__&X#U$mAmBfQ0EIU;mfgBZg@D*cuA6Ir@fzdFIrM;bM68X5_Ye+*u{IixKsa<p
zLnVNO{dLi>o(hG&7PyNPB7xCI8wuT45?bG%+{2OwL6JIz4Ml<W$sB5{3)ov26(Cep
zByu-y`KPD=1n=KOMIn0v1cfb20zr|7Z48T8d0TWrQLkz142qt)R8R<=20&1V$&R29
z8|i{#D=Q3wB8z>yGbnmm&o@);^{tzq<!yxl*3<>XY$_=H*jw6<Q9)4!L6LPEf}$rC
z6f@W~Jf>Ci;iss0X^%}IDokyLcSgk-&N22SmXR(h-gZQVTpJbM5ETGy*YGEFM8#xX
zRP?lxQ&AyzSprd^r;UocKcYeiQ8BC|DrODbYNU+{C%zLz#cC=lmUl#jQD;<q6Pt8K
z#jJs=-5aT>Fb--?@l74MWI(*n<Z(H^5EbRRs7U=cQDMt|r;UnIh>CK~8J>alGM0TX
zrzaH>>==9$BH{@vpK-~$z|<w0#-t*`_9%qJ=onMs@=S;b78Mdb5(?SaHNi+2Cqp7e
z8id5E1h=@&vgl}`n<Ooo6LTxUG2vr8M1*ldzoCp`ZAchRaxQjd;JGPyvPj7nxaYE?
zLGNZlM@Z1MSz$Ak0cc2jPe&Ws*rLq}1T1yL>lR8Ex-%&dppVg+6vkpJ9Nelg#=5MK
zEJXmR>aqf<qOyYfrt2zDcX*-=iRC^stBEU+7$6*upVY+z3sjw-cG1RzAB02e*v{<G
zZf>oo%?`$x3Wu>6f<YGxe#9*Z24mdAvX39c!s<XaNYN=cMtV4a69Ml}MFc|YAR-{t
zVz^sOL;i%wy04curjTufb}9N7vC_w4aQDPTCa+tJh$;%*K3)8b4e)juEa9Zjl_=K@
zV{FeCi1Rj^Ar97KTVbPWj5tUS^3N(ZLT@2+)N9uHQHeu-DM_0+yzD-Y<d5v@W~EIX
zm6XJSE=uyYveF?;ve`q+IZwM=MKrKsZy0LZYU;Y-nsD23u{P?cEHPjN6%pYO5yto!
zJHJUN90Ku}oeytyw0#7GmNv4?#lvWll~iQWTpfgZV*%~YX3Io0(Ny<M!ao*>-2JHg
z%UIlmUhePXCMv&R<K~vv?vT2GlRw0wflHvWRqT+0W>(&xLQvhcA7Pb*-K^bgh7+`O
zNMQbiajHkG*`LDl4Rk-i)8BPO+gMKz$U(zIBk&^@+?8%I;Lhiukg-yTv9Zz+U+}c)
zt~lJ*Tbp=_qd`S_u%XeYdJUC$`VIBH0wH$N=2SSi`X0d~FKyDf;)87<=|Co#svklr
zIe4vLZl%(P6>b#ZB|(MDT<wELP|@)u6yNUViMX6*7Nd)hz^nq(?;!%KVr<mSgKgD4
zf^ZWq_cPF?j8|cWYyoZy`%^doQpN)5tOpEYQo@9DqG#POJ}N9QogRL$%;ht?fcr94
zio%CHW2e27(O=ROoJRwE^<L87imn8DGv=&F$k-Ykv;tl=%;kDyM08ntzo!wOf?fl%
z+!#4KiOx=KRX0X_3C|-ZPnS7ID_p%L(N9A+CwvZDv!Iyadf|T9PzKYFID{SeRqc~m
z8JL@itNs*r6%InHAo!Nr{X;rhrmJolAayfr$qYJzPmg%h%mDEhD*E&q)XvnFOwypH
zvaME@-4H@?yA@_YkqowE_WziVAOlgjN|;YsomdL>TO}jy>}5u+lChr(ya`n_$QSg-
zdWtLPsHDAnKBk#K5T0ao$)_7(*r+kyL$HPOpD-BhtkwA#3oN7@Bw#bJQ3#T9=o2i=
zASLCYMd7U)fEF0-Nu2RG)s?-F+Yi#v6}??)V??ZUDRwkrrMtq0%Y<cYLC}_S-OWbb
z9Kiyors5}aC7>;?I=9}WMOy&<$-_ingc;a<B>`KzSgZo@q7;ha#iqZ&0%cY%E|ang
zTDf-M(u+Af2Mb4m1zQDqu*^szh(N|D?-?hH+Mpd^9mK!5nS^o(La~D-k(gOqaMOk5
zR4@%wo4T9Lf7=ARD}?mvwN`hp(bhOH`*F0}s*tK@oMMPZwJCmWwor;*n<GpEwQ<2{
z!k8x<Z)5e0Q|4h{*hg(zD**4W6}+(<%CIqB%n5%gsMo|<f*Pf?XN3M(2mn`Ij`=ci
zncbd&)XuBt=u1hh&ZnAfA<6tfk5kHU?Kk~B?$q9^1U6q(Em^nsf>$)#uJ#v*_IfmP
zeH9iX-&l9`X&X`RKZL=siD%{0sriYj?>W6kEwi^18O|g+V`v5QP4h>Hp(M2_9n%J_
zE)66E>>eDNfW5>8=iLmlF`Zyx!Djd5bQ2Quc*1Uh_WTGIQn<6WNlHLLk0%VWu~Jm<
zOjxU}@H5V`mzKes)uvZ~Md348U&<yTQQACqDqn00Iy)R9A%^xjs8thYc0jl);x&h{
z{5Sgnelu<&=wX+ovr+1-@@Ns`(Cj;m>j|lGaH2eVEaOo8gm9L8X2O64-i-aOez0qU
z+7Rs8jLiI<u`523g1d^saxlocQ4-f`)o>W34WtV5Sq%b7yGF~Y*h8MaZqds*^f3B{
za2s$i+R`1vq`TXGyYc)>R~@C|+VywD?K_}Rlb{vk1~SHOzx#yr9zq}eL6EyyQ&Lal
zeVvL9$n?y%R1qHW_kmF1^@K#eAvod2JHjg+JvI!$Aj19R<~xE{i<*(zpJ>vw+<HfR
zV?IA-*yYYUf^2(n%+UJoJEHNgPY5-h)Ejp19ie>o8dxs0os0|Q{dYuNJv5WI)3|02
z-w`eE;rCrg<Mw;>j!0wz*`p_oGo0PQ(tuF@XIZMBSsK7VINh(4rC}EEgQej?hr)OW
z{dG%+Le&RNdxKgn*4~$eK^a^O)QzetJ(3cpq9_}Y<>EVfdH4+zfiP8|`YfFTqzy6;
z@!vMRJxZ}Q{CCj!e9604AIJ2nRgN)xsWcdDKut2m&Rs4L9tKzPcF@8QUP2_BRf+wM
z_qzE<?}tx%S6PN&VfA0gmga5P%Smo9g0!KS9aI>O+(A1_zjCvRG0o}bS-P>gTD<q5
zsVUO8;W7(^<+t+<w(m55`AJ)@z18NdXKXQ)vp^5`2yYxT9z_N~g*dJOrMB=>TKLgu
z=GS(9^e;$TPTu<q0;<Pnp-jz>+W89_-@;F3Imfr~(|!>;_X37oObdT5*EuAaa2@OF
z9QEBg?mK^+6{Q=XgdhcyM@A0rIZb~JLt!}7{ME-y4ybYMpiRQQcD89%9XyT$z~iU@
z9)}z7IBscq90G>i6$6js_|H5J2|@b&;BojerCnPlGqbwXB-3k1at&NP0DSp>mB-Pv
zvp43OAelbF|E5kGja0@2$a3k?QkiJ33?+}EhoXe3Xx()5(gaO+BY^a=lZJrEF`7-J
zw5g-l*b(!L6C6?EbhHr9-foUo8MkW!zNzDBC{@_jl<-CU8||1O&^YeWmif`VVUD9C
z+D&WM#3uhr%x_k+*fHpP5}`j^C*{?_?tpzDcq+y2VEiZSj+OC!$A;e_6MRl5-WgMU
zWA5_<!0rG_7;rc!hKG*eu@EoB!LL37!$U{#(9?SWB2zCuf13yV4w%WT^I5W1ETLzf
z4R<CjAL=|C_Lh*|=tTMh37_>!?}3_eSv(c!9p`EL_F-T^aDm=IKgrNH05XS&B6Em<
z%pn3Yhse|rj(~;m1=ta$2F_eVXCQMpbB#TSh1iBuYC$}dv$vTZ<q}#7M{DJe?Py5O
zKKz5ifxbc!`zsW&zj7wPA>+V_czBQoha8TjoSR=c1@K@C2VaGKYwAICuN$+2XF+AO
zc2A0D@h(vyXD9buVijS4o+|FMBwC(@$utVQKorqpjd0pROtC9=@_}5jw3A)2SODaT
zb{)F{q5%ebB4Aelxq=$5GaYo;5|mnYMU<YibZ>WOU{{zqQ{;+9id{iC1G%C>%dQv%
zOgn|muh(s~><atm){m?gJ`z5%0(J#OuDC-pmb2vo3?zl}ms)nk^FB*q_uC%BC-mvN
zM6e+Qaz)U6Gab9)xfPWTU%2dYIXJL_A$9?B1*v6M0J-AC7q!bEXIIp}i*qcgWmf>X
zVkjD5D{)4m?Jir`+W@xM?xN*abes6x>ac0;Hw^R&U{^@H=Fqd~OZ?}0zWNB{ioyb5
zS8QSTKIQdDI38W`3Upm8SS-kMy~@7IzUwNmP<t5yyP}8)H4647&i1efu5jHd*eWPs
zqft>V!Ao5IMg$)ephNfVCn}}KB=^k>B)eR2x+@R35j1qwZd_oXn<H<^WVLuk5T56{
zfXK-hI4&^HE%&hJ8@(ChyC+iA3qHprunEQNCe{KqVa!@<U?!}0mT<Q8x2^0mR$4%h
zScpwxO!LwYVo<O9b;@10#PLLU$oRPNkA&j_Pcj|{9+McpdEv6n4R7W!B!j)j1@0?i
zI7+8YD2l??PeRRz6D|xnFfNp)?;;d2-i*M(hdr<Hfy;0=7`P19rgKap9+}D(TLYIN
zP-gjCXoV<lrcd$wnNC3fIuAdeP#Vzx$&^=|#a3lp1`Svifv)2Mm$+I7-Xy-Rn`Ls7
z2u}ybLnZWR&-{{@s^=V4ZzPG<a}NEKn2hFb|CHFx#lmH}o^!O3WcJrji79%{!RS|%
zxXdnNKG!)}&($`)hctO7FC)TYag<HgY$Mm$oqEnPuCt1r!S5o8Th`qp^$1_)n~|Ju
zlo>0j<$q7&q}!+SvxlUQ{*o9X>mo_{l-O@qMnZ21JJHsalir%dH*=ntJ|x}T`)Wqq
z$HbRysTt|(lMH?f9TgNi+kSp*AD6LF3;hjhzXhk2kDYngQ_iMX4-r!++40}<fzJVA
z#VeNQ1M>lHtk&lr#VpI`vga~G%!0kxf&7Iyk_C##%KTOhYhr`i>{|Y;)jRInUpVaf
z!tI4i@s*hE0~*8?bOp8{JWYJ1$aYi4ylhT-e@Use(`Z)@VvxrdA&qomi@mJGZUfyU
zLmuS^y4`(M6i(?p_5A(!5{AUwc6dg`d|F1VMOI>_OkO-6@iMv}^sSs!8DF`mGPiPw
ztD*b0y?Jixvz2v%2bFItH}YX)=4mDUl4zekW=+h#uSs#|Gi;qQdPrvzFEUcQNLthM
z(uK+aN*^VfsGOl(sFb5FNjrDlb&FXOeyQ?;^1jk1m?6PogKAdzRZj(`z?JFyDo!#!
zcpa>%zJzbq6dO*(LkZ8(mg7Gq&ayxEJUzaDF^*v$usS;=y-!Vh&Dff-n#)NwnKg3c
zDsg`<BN&FsOYkzjA~#^~wj#!X8pVa0NvbzBUu(LkdOz`Iys8@7IJPmYvFGm}Gz>{^
z+cM<uq<EfwF`M5K@ZDi>#`ye<#7~Ki4L6G(A!+4t)m7C~RikRapg8HyT^^y{m(Mhw
zQ9g%P_aQu&Gi{zK;`$eNKj@JuLoEU8Go|EsGMb!AE+vPE`=X>n^e$g(M>?+)l%Tv(
zg}4yE>(eT$lYWp+w+L8dx|ChOzLB;ef8;OEtv>nC$eKXl2xQ73KUj9TEjCRZrM5KR
zHV|*+U*(`%rl<EsB^RG!v|r`ma|wOkJY%UDk8DtHI>Aea+;Pm3=fE4rBgXZ<8EzTq
zW)eteUk_pRu2UBBw(_?;uQY{w8+3*@wMU-YtKM0?^qsmn^>wnp+2gL;s~!&`Y#y$$
zm}zUUmAB7yVM?t8Uf^m~C`4+8<Grf>fA*`jJLCM`iFD$#-TL0_>3$;mRgX(GPIXRI
z;o=+SCSsn5p7zRo(Fh(z7^vGJJ}JH~mP|2!4c|EMF@=}SxxAc*w(u%>{relb^l}SM
z8}GDu3`%uc?4<O+HF|#9#t|dL0b(@FzfQb(@H>Y7xahFCVN1j4<NO!9MLXPWl~o8t
zYYu$m?`E{hj#X4KqLVUr7|c&X^{f;58}O9r@#eFlnq>2)2T#sF5#8H)bwI0Z($Oel
zTf~$LQ3sm-;r7(yf4^W5_>Xs||0e~5<3ur*LJt2A6@w0p6e<SSv=svbs$9TGyW3eV
znB21i4TW+6fJAFrHEG&%!E&zLbo{Fy<pNaI2q~8WMoUGlo#g^l_O!EH5Mi|IZ)DVP
zbvi3g-ieI<(%w-n=y{1kMxkSiLPn3vb>#wpd>B-@K*0*vLO%7Hx4LpcFABa%ppa1?
zKt^Zw%h#3*mg<nv_HoB4Wb`bBjQSaL>)WfNTp;E&3i6wZ2rqbZs2BWYj}y%R88y?^
z3!q$3VyxsGXJ2L+Q$*=utLr<k8U>Y^NBRIViuvd!Afs?!+t-MgqD4k~St(pfAW<t^
zasU}Mj^~6E_d0=5E5JpEyZ@mp7t9`L44_Q`a&_iA^G_8}xaj>AI$+coa8VC!xqy=E
z(%!M|Uod-Mfx8;+Si1x@qg3CtkvRiq`b-%&5^&K9n<Q<yAWe#?Y5{N+I?DyxYQdVj
z?Dtw=R9h|BLnxtKpl7#?4cKTe3jMK&!N&j_eG1s<W$Vct_ZV6c6t9eIj{!Cs7-J?}
zp4Ews3KHJ1@t_1_VFHDXE&yzFO~TN)QdxYom78Qiv}MeL1X02_3L9lp*l3CF#&fcB
ziK{nWl!B*-s`x^8BiIK7{I^4+z5fF=8atr73i!#lw9qK&GZUcFn1ff2b-<%qbo4Qe
zf=8(uIeiwFf=6}eXc$E))}f=f7&>@Vi;kL6QPACwa(oIMUCE>1(Li?bzs5xiO#61?
zqRRmn?W^ctsKrGK0bK(?UyE@5LLr<a)W)<3=VvvKu&p!wXMA(}8kQqCJM(o5Flfr!
z>&<=!DhF#z0GuLX1^|`WR(ORi27vNQ2SN$R&MOMqX;4R61F|y&(AP*?Kz0^zb~{8{
zoDe`6ZxyS|=(@lOHpF=kIaw5ZbAK-&j~zhi7-QTMSfbj3nukHPeZ48JGpjSFz|5`L
zLLHX*kW;>91H8`BLaeK&(RWe-5^psE*RUqo7BdX{)SK?4ss%e;4nRzp8!zC5XS#Kk
z&?qEx`d}TBxqjeQTWztRjn&3Fb?7t|6h}IW1-9B^f!5LUr21M<?{svp9OlY_T41xg
z3sw;3%br;V*PDWCyM?Z?I!FMpiJckkb6v6ZQqzzS+HhC+Pz$XSLWw%g4_s3mww#S|
zXxKx}%0Llg!?XvC17T>=q^iKBA>ND)A?~3cfyQ^CTYRpYs}o?4BLxIHO~EQ~uTdC*
zxtk(!)k98K<3ZmA0R6k!g>~0KEEgNps$)8cC3F4*fdqgCEyhCT2omhOM*DpSWJ8Ow
zMC@0V`Akijunu_nUthQQG^oq3d?V&Henco=i?IOkuyERC!tfI`%TO3ggF1C+Ljy5!
zD!MGwd%3NulHh;t09h9KHmI}y_(llRQS*EK0NkWGbnP3llGy{0lK`w_Hfe?pzi|iw
z>Q>vXK12JjK_vg!$np;m$?KMn9r%dPbzn)}*^J*oS5<@hfm(}?P%SN_?q0K8Y+s|-
z+0t?vT3SW`JVHado|e`1n!E~HXHUxkZBt7}PfMb%simW*#pbey!N>~QY5L7m(9?4K
z=4rY<03TFWi;=FaWu?Jjfv5TFmR`EP7F}CQ+gu9xa1TY%B;3Nq1NQM<2_jK3C@qIS
z{bWar%Ub^AGkN?JYI150ARlY_<A3KT=keoz=cff{@hb%htN5w&__8d1Nc39%*bDrq
z4F1d~d_i1>FyAT^ZXvY&EhPYb)R}y?(e<|&=^9*4bJJFJARh`qK7J<+6+DteawbWN
zGf8aBZ0}}dC?>xnF-d+#auVkF!Su<j9Gtt1Tr5V*NNkYn%be7eTt;T+V1uQk3ahgb
zHbCpiw%ve<!X0T0lIvPopp%8vwX#H_MIEgy(8)5jvy}xpS+;bxvH+;@frj`f6p#%R
zzt;qPM~NTRX#jXE>qg9FpcH+*AQ~O>`=TGsE#b6^SP_L_<lq=@G@baz_7w2Uk#CyK
zy|kFSfeyo90}tXS8pJ*Q*Da9XSb(?>A(<yKlaKF^7Lb!4{9e;AaCEH02m?t3g<;sM
zzPD<;ycxq80AK(Rk0E+?==ss1aYf6LxZe)D9uy+U@+ct#?9HA5L3fTAI#!O>iL-!k
zaqs0fJ>_@$-EWM$O2+_qBclHyOekUFlZoj{Jc{OK?hCku{$tc*AFTZcQ8@pMmj9@b
zW}tQlCl1Yx%Mf$%C~iJy;{*<#sx6RB?`?j2AJ*e@lTEws!}_wFHQfxJnD^XAq_wKU
zzom8A%c8vmxO}SKJ4>8q{FQA&_N=e~)TE8`nM1d>r;Y3;G!qW7?tTb<6CR*7O=k!}
zq;R5e1Si7jFfz#J#Ij?ogtP3HaMn6fyBi9~|7#zliE;8CZw{r8TL9&$;P3SPG~$vK
za~mh(hWXB~LOtZ}x{pX+j++uX(fkJWNmsUuYreQlh6`3bfK}g?DeUd;ASia|&WC_2
zYt<AW=aB;f>9EOljvheFax<7CF3%ZSuh~Lj5l3!WNg52Z-{A{Qj0Ul!{T*TSRxCOG
z`2C2F=!O_GttZ(I=Aib012_w<zPJvsFc>ovERoN}KE8`MYvJ)Ci-0k=PuP`Hts(xm
ztPF_yW<I_kf*e60{VVj{RMkWUNy5NtE*-J=VdJ!MdszkZQ&QR2J-XZ(3466S1pS&l
zWFkJ*=b|*%0+WS&4-$3sxlnPe?Q>~BQH6Zzpa4K(zPbi<_PMn41GIfE$k}LOfXj9E
zufewYoOTw=D<&z3Hse?BbtyJp63Xs!9@}|t3dLi=REDy#A=vYwxCYFFP|jr`u%PQT
zJ}CIIjTrZPJHA{JYv9B&K99c&ppZBgTSpqgQ3D5L^)pp)ZMR#%6bd$^xfub%Qs!qc
z`Ic2WWWQY5Zs{T4p^T}41liFSlhS~ITi_BJ0LaY;hXCk{iRbHpo7>?o$bE;@S4IIh
zJEZlR&3bw$1%13efN3the$6-uh6PDr*I=4>szS_JwA*Sfzq{m%721+K*0id<_h`{t
z)2g9TQDpLYF)hfhKfiFyUTwW710|dG8s=g3YZ5Sa06@u@YbgV?E-8r4oo2d_Kix8R
zd&(kCQV`>KG9xXPML+**y+(P>z|WOF#UfXN=ra7aDQTa<7ndA*QsDD10ajRKSjni@
zY<Thc+Vugpktqe@71<`{Xjs78reEKv_=i04FocdLx1mVWW4*H*0*@JPy_R@98Sgf|
zyd+iji&cgU8=fJqOItG+T5SrY6P2O#HyQbyCOE!l<lB2}3T0G=iaEcgU$$BJbtbal
zZq4178`<;Lvg(Crh@>D%I1xYbvhdgR3vSujF|^Y2FT_LzrG$4j%jf~GEOEF|W6g>Y
z+ukgZa+(+Sb7{?-X>~r7{vcGrTOV7R&q;=(7|t-@l$euv2-bz=IEVhG@}*`%y$0a0
zR2hMSq5oHgWdO`ymtOanhGR>-VoR(rtDj3hm!1c9R@*=2za)aC(`lt=#P6jmG7FT`
zl?(=6iE?FF{V<}Z^C()?m*j~uE9XFaN3Y=5-vn=GBz|$0NH=cTaC-l7F(W>8?E&0<
z^Fdsuq$&KIPbj|%cM-`=nN<cNn!$POUG+55;AMmp=lv35Qy8F!UDi2qY}V0+){MRE
zEan97zu*>r_?&BQ=C6kZ%B?lam0OgR2kA$YmzC&o%{yiLvG1A8ivtRJ*L+$cAS%Q5
zOq_W6dj>68wP)hx#TP}4@WV2Cc|>Zha{WEkxta;4Rml?tJN7@53q<mTj|j<OC2GG?
zY|3tIP_`Y9En{9RE>nc4BDaM{T$-A(ZPKOKQd-rH#<LR_U;N}9epq!^EX5Hf<z2`x
zD&xjpFW%L-HKLKEP}O!k8D6`yY(?X&Z35y!*gg0yl1pi|<h_YV%<&C83Gw%=a<!2n
znsHhh#65T(^OdejuhV9q1Bwse4;g3KXW8?K9o6<16x@Tk(Ydl%vu!@>5~gQ4PyQTW
zvp3R2N>|K27CtrZVniy6b`R(;;#fb9e-=T!jIaoz^$K$e%YqRb6WpeSehR#XFSyOD
zdc<sC!VnSeG?)G1ILvY|Z?t&^06iDErQCe)r5`{F$O7NuMJ&z0LqqpQT8?*O&5B~p
zc4SSBi)GoO7$;Wj0ai%#Ocp;=INymCH-n{cX19Uf5G6~O!J8Q5+HYFu0Sq&!-4qs*
z5)1Un`yj8HH`(be?;Fp=iPz7gt>V=%@i=j~n923s8@ar<?RrV#65&UIGn>CNm;Zf(
zaQx+P*{$MeqKPjpau~on;dIUEnUmUy6*Mtbwxvfv^kt>^miUEuK9k#LZzR<rawOc`
zcAIs|#Ryq0zrU%6zarQ_#($pwGXKpUdt_TIrdO$hm*Zi~aYoB=7&OXDFL4hZ(Hu`Y
zo^+G2comGASC2{`m45N|MA<}{$Td01IytH3d5`W<0TDgzq7)HmMbe5SO+;`~a8g^c
zUcO#FHu~kj&^6VX1*Hp1#%3HU*?p*FfeRXy5!JO@iC=kclw-!B>jvH_!8c&Mki@>^
zZ9$Q&xiC2y1slFOC%x~Dqa#SkPPZai-o<<EqW#gTDEwwgb3WeQYc7aXCewS*F^H;A
z$F@8#l8M|VaSsOc+j~%|tc&b>?fnv`b)S}C2iZ)qdPG50vR*-zBDR=SVp=3?s|Ziy
z#K|Lf7w@*5wXH1eP+3*-!m{HF4|=cA%dd>dd43}5>billCIidTBH0wiaGLx~c;EA0
z`Di&FQ?NGkM9JFBu6S)`Ra%}nqI>ab_1@ThCnDbkClBi-+p#YKu@pBXXXe(9iI7Ik
z&v}%!D-v>jcu8|r+N6l?<w}XfKKWp}xGwVQy2l3(mADtj2d2#tIfv8lRMTFjO$w)l
z)0J~#A_lKdIy|Om+IrhF#o=i!wMm6|etxxDk-k19BEM+#)=@7a)}(}ouZZ2?(L#Hf
zu}%Rm7-X=eNWXG{b9mK;c`eR6Rz}=5&0Bao;br)&@18E>jT|{M3;C&2!^;I6>Bzu}
z=n{ThzHnmT^r_+VGtpcV346Sm=c|%(0e`Q)Bm&KFV#Pa}@iV3b$i@dqJgU+*Mr@yL
zPn?L2yFhQObC7Kf7P*bK3%;ShKV;3`i4(VTLOA*D;YXpu?hGl%XUD!%;#XtiWuudn
zUtPM4?Gk<jEA~zt>T>8-F{b~b{!kn8HSlHO{*YpP@m|!-!@JCvGOw-Khw%|jU$pGH
z!GQdOlKml()h>$d1!wYhvBD$r0=9^(a9S}+KhMcuzTNVdtHv+Id#jacS8Wp)|8e6i
zhm#*YEK1~JziEQq;r$^jkxTe-hw6*>GWSlLBwMqOu#t`27wUNHCS&m3L$|yhqh02M
z?>5wVJ-&Ev@ZGN1>%p<<n9R0J!YDxGVuh;j+C-51$^EVomTXJ5I0F5V{zp2Q(SgX(
zv}COz+RbYRTWe&ihGzm4UWzXQWUV-$i~Pq99K*4=RRe62dJPoV=4tn(pQN!dhw&M)
zRMI9ogA26z`nQYdlvq;K0?mBeYQ(_Dc%Vn|7IjDj)r~`+<<Wsez&-p8E$i8o1C7%t
zp~|q-LWiZP05&ayZFWI~5^mcW3h6V{KI1b%YuD5E?6j)=IF`7#B?j!ZM}I$JrfKgP
zW(wnHXujwfDqU-dOL>QQK5XF262K#2Y4-(Zx!vXii>sYO5qUSW%Fmm@{)^gs1_DIk
z4tuaJUpR`<E#~7a%~87^4iiE%PMf}nuqpR57&olXdKzr&Y*~-!N35u-)nGl$-v*LT
zQ#huap3wOmkE(K5io1NtOB*|LiWM~s_6@L|5?Rm1G@%6tfCK|pA86%q5K@HwVW5pn
z?U;@T&H(r0B<ngWoDjLi#n{$bMbp;<Ucego$D3w~`ZUaLH4s0}Bj<~ZXKfDz)dHpS
z<frZWtF@F5zzXcgVt7{y6*EwM@8j*|<Itc6prBRL#g$pFsaWQ0KVX>E117c=p#fbv
zVisc*2liW>eIC?&5MW4<P0$ukak~FA_TImB2p}#qsFp09J4ioOxr&aU0<ko<E#?e9
z^RNBk#!vo0b?f|tKWu@D4A9`U4xvJw4gpgtIvqkz;W%1{xYz!-L#(kvKRLuhKjLqP
z@Op-Rc8CeY-wyGy+Yg5rxtaB|L(HP!p$><zA7^RDLS~&F;U^+=9^p-S!~t7Yr$^}j
zTZibQ?ab<QiDx2fOyi@^z~Zd{r_lL?2k@{dr})VyjKC>=_=GpZo^p!6eS%4?Rh>Q&
zucgE3e4+%L;%}c|QBKj}6IQs3t2sDDhfnAa*1v7%ihekS0p%6-nyzj3Lx5lQ<kSBh
z%Y_V<ix*<4=(p2Et=2m(B4y`lQFG_-)q?i^2X5(c<nPsjbECsM#^V2%Ef@NHbm#BY
z0;#GXt7?}E2OGPemJ6+K2>;19V7>THePjK9**63~`$juvJ^%8<Ij9Ar@Nef};@hxd
z{O}D#`Noe0<G(S3e3Oa}5w&7zM9gnz@QeT85^u%T`ma9fx<KXtl1+90&>?+H(IVN9
zKLGfBtz9oDkElBOBY{LTb|w%+YS#-Oxc|d~(W?Ge3x*GCzR1gm^}oGf^!Qf`hBk%#
z+XaK_$<g^l2;`6-K5>f5A&^2SpBPOgk<J`qs7)e2)(bOj68W)S1n81T=X%kbN+O->
z#eFJ?bmS1gsDAbdfi{W!$RQ5eB%)g{YW4hT^{6z`;S@Ao8hN4#bJhXDPXGuWjxJJM
zyDldH2!@)v4hY`Jy86e5k0&>&00>6C+MCgO`O+sI&qTLlpMUviq(y>LyOM-zlO9H~
z6cXG9Y|W@Qmk64{Ym6p|i6MB+?HdimFH=#rOmF6asyjs8RMf7~vh5%>1T#tE#Z+|W
z>kxEb({#v`BuZ*bF=Dr?chjz!$w}gXIYzxt>X9$aN#dpjM(<5e>V4;yg8U7_<|m1d
z_`iA3(brujx+zE59z3ATm5X(Va5gaJ)Ve80Fytuz?<q$B2(S5j$`Js<*?&(t0zi25
zk10nm<Y?62Q;q-*4*4<VXt%_2NavIz3Jv}`kRzwi;32-~6O7W&;3os7R5TMtm87iV
zFA=1D$l_1$K!i_h<xgHuA;Qb}vqz(-t^DzO`RfGndtv5L4*w`M^Jp*3JX*$2&fxbe
z<tH5CNAp+kR|*R4{s|67ZaO%4rw$I*jXN^Z&O3^lIl#|_8g_(q(~j<nUkyxK*Z~&L
ze%mD9L)ri!+)hIuzthlX8UkJ|^RHS{q&5aNal1V88;NO1MPlZvPb8ssK^e@I<R_Y%
z9D<po!O{genZq!-3}t!XH$&(Hu`7}5gh+BXkmoqyod2ujIrWK-AxIP(ZfBc1?xQ-c
z2OS0+%{E5U+tg6z>&XbFb;sU15ZPJ3KbEnPbmjz<gIyWF;b0sk@8X++5~tEf;yH}u
z1@s+2ky}ffZ9!1z@{?xu2Mh$c0%A78KaW59zlJYYkk<R#pZPBE%_TqW|0BHp0E!J7
zK{sx1iAI1h_XCcv0xR%fitDXKn1SM>Lzq1bVCQyvqYhyPTzH501M?F@`H6m$WZayh
zr0`^GEuMUls-#nR@?dj)H0uYJ{Fxz#jTqHAB;th726GvnTs)SGC+NEGWWCJ+MYiTn
zo~eV8mE8=knWuHY$Z1`+vXojFS?`G@o|>jW;b|s~Jpo4UL%ip_;n2<OX@)|&FxbIb
zhG}OAz>%B62~6|g1lcd=M6g4x(>cjj07q)kW6m4e&){+SC;EQWz8~iahppp;E6sc<
zEs3lAWC~TK0$_gq9e(Nqe!_J=A4zxK;wRVf=QgMpNb&NWv)Rl8oQN~#6xMtOz~&CD
z`8}i=SGFyMH4g!>xroA=Nsg)e&hCO@BR*<jQCPDV-Ff%`y0@6_Jb3^S;g)X@FJ1&#
za~6d)S4057?PfC9{vgH-Yc@&1R3i%P{WvCx?{SAu%`^&`-XKi7&X4*_7-b~+)v->v
zl|_;5nw;ew5U+!z(B(Ay*V*juakd{=s1F{*@${e#_Mn}|!#N|*5yLro!o?I6J^Y-=
z5I3oB3_@96+pN})vhMbQqVz&_0iiABR6|bbIT5GVo7!<V?EvQ%amH{lZNeaqB*<#8
z#~=%ni6YK&E|yLRm<xa7@tz)G7`D8p=o_H`dQN0O9K^>(?Y*@aH+@Us5%0lz#s*eO
z&teJ~UXH6>=H<bCPrN6_M64lUPNBo+M3AQFvMqt1D<%wOI7tCeFb&=N0G1pI8@89Y
zenb7gJ8NeqDUo(&l5e>4Am8v!0SXLRW@BKzX6hM0hf%lRyoi`+zkvn-J8!-Q@29yv
z=96^ehJCW*uyy!$Dd||ab~m|a)Y<SF@zJQ=Fidim*t)v}Mm3=1K-1R%97{xbrd3kW
zDgz2Qo@qK*+M7RSH8j{r@v;EPOw-vBv=P0MwauRPb4CjFM*7mZ6HSBoGD}~pxt#8v
z9*oI=8%MCB05---4+F95#i7UK5=6nqIIh;MLH(SaL%-rZ*zo>@j$62Gb3e>w+1)|T
z$D*IL364PT3UvqfVGc#w2dYxlLHvKP_a0D9Wo_U0J|_uD08OD<NdhPq3|*{AXktMK
z5Jg2pkbnphs%_MOf}*HFkr|!Q2}LYe5EaYl7#OiTA_|I?Di+iv2nq_EZ=V3lJnwx!
z>v_NTeb)Ncw;rb?Bm}nSoPG9nUHkw0U!m|Lt5#&qPoD_@UTBUJv><pbnI^pOJMUo{
z!z6~@^ksKJ01`@H7!MX3Rc$&+ToJo49@%e1`(={b6;y(-sXn$VY%Zr|TCaQHJJJZe
zQhZS?9&Y|?I4mN&yG7U#-Q6-du_*D3uKcT4G`27U7JnJ1U|AQIegpB^Z{ZG`;cw8u
zli`<_6rBu*^<BIep4++#`kTc_%<YmL>HM81r94to)*+sq@+hIDDIV5+iFVYy5${Jh
zhZ<{C3!zjw^LUhT4+o8(lvUboNihAEkCgf^r7Q^L$2#n@MHl!Y$b@smk*715^hvve
ze0dk$nGu(X?t(5Qz5c7az@q4O8sxzi#x0BknVg~Qp`6>I40!#;NMa;F<>t@!XS*}!
zGv+g{`*%uMof023lo86HqBHHwe-52FYkGM;dUl7+yQP7l#+zLD2ZT}XbIUF|o5cg8
zz&Aw6J`o~EM};hug1Kdm(4T6_jh*FNL+4mNOUS8p$zV1*xWWG@Duj9eqQIRwx9pZ@
zuv5ODxg6HCzp*=2nOARmkDipZ-aX#m@@}p{-V1AA7Z_${AX)Ki<1I_4RO@9XFNk5-
z&AR4pvV!iC%P*}?wRrJhPd=y7Xs93wT6qxlt`!iPtSxh{Ul%RBBcp?;+dibu(ApPo
z!`kT4MzgMkgiAL*ANexxsQ}&)Rlx0hHBwqRjgxczXQ?KoVqsQkz2(xV*>^ZGPgo4;
zW7bs3J$7OotEB!Odp--yu4YMWLlPdd3c??AA}cs#L4<9HZDAmgzHD07+{AjqT9r92
zbgJYo`|9fzajYtKbUNUV&|Z5LPj4f8nsp|y)R~_epVb?*Pi*(BW{vwKh<U*pS)6k{
zpS19fP2^4f5W!W_Hr3*cLe=rV{GIZ_Rb+ahW3FSq7<86(mYqlJ>1=zp{UwBMe6rLI
z@pIl?%qV7bv>x4IQx3ly;>3~**MAK(lpQ4orFd8VJSt?6pddEpQNvV8BIgcgLNV$W
zWpo-{5c<}EO;Ga?Un5`Z8P0ZIC(4Mkkc-aI^J%zq@D9BI`|G1%LHj)I7RfCaC3s)B
z!8S?q{ODleVTSlxoc*-MEq96~tY;5zm26wv8rcj+J+14kPte8#R%`LAF<OMN-r_Fp
zB~3#MK`qAe2iZHi+rcunku#F)o@rrr%hTS%-J-@K!h*iWBE#aq@QtG8-pcg49eTxA
zp~(^ORcBt%V<)f~pWym!#tG1$79t63wO!5{Ip#FYm76?^8_bR28k%pD3>$V`bn||%
zsnQO;F_y53&56}S7Q~LSH25TWT6dfPN_h`>O}x)MitkW2j%1iw>_v7*Wm?KqA(VhL
z7xRx^JW-aGa`f8Qq%kI2ZGwl!OAxreZS%c3SCSWjZv7?sZUT9a`~8@N5qo~~e{iBK
zW0ZN)qPo@Dbt=}*Mb)Lsg|CGt%A{kPYUQa~Ie+^mkMx_xc_FdI-mcHT{w$?J`p*x<
zVM2fjA3XRk=llbSGBA)R!;6GRNRU6&l?lUPa8V0H@D_a$xv2U{u=gSn-_yI@pY=Zk
z6-m5XwB7_y54nggM(|i;5={C3#<fZ?!|Q^!2+vAGN78$1g9A!IJ(hI55~R!Qx=;dY
zN-~5S*jAr4rsfF8!f7Nd44Msb2^o@XAb@F|fSzt%iQpY41iHdtl4y>xt}uAU6qbRe
z5j48O;7)ppF)T*v3WK6qs4d%7fABC!fU%m}-!f;K2cz5cn23mjpr(kKBf1$H;Y^!g
z2^U*u{aj04Y;*hhQ6H#%i|rQZ@#;qTO1B&R%(BNTmqR83$12N7dhFR&NY0m0%LxbA
z*6>d%$A@5@zmGCzf+fHuM8H0i0yRV@=qh@M5a+=L2akfJPbhf|)Yb`HZ@+ED%YqX|
zAA=cP0C2bs%Yy6&RuBYR2uZMG{bj*mA7nOLCn16vUAmj6YkyhL*?~3|mVh`mP7^F)
zarS{;0pbCRXUu3i$piO(T*O>UCk^LR!;k@12Y=O>(&}=$?)7YbyIx;TcjOXweD+J*
zQ&XT>ac@qyVe~k$pk~>r)`m_feZWm=haXF(UK)-eAPL4Dy-8gvtsJ!*`4|CGoxG=M
z=i`mk?8T7A*Naw(OHqLZqGPCz0Vwb3ngQHXKuRYCSNE(dN~V@`M<amRqj|Iq{a^Am
zg0^)ql$pHK{y?6lQ><DvTtw$eYv@Ar&=*0$1T1bt9nZn75F7NWQ-Ar^z2O^;f0&$g
zqfxv1%hW5pizJ+LQuTV%-q9mEIl__%p0@ECX!T!TAnjTffR!l{Y1Uj~>sTYAz1chM
z%`~C|#FTOgMC1FsP>V#<lida|+VVFhk1(a>{LaiFL>uQ48ai>MPCgMLN(8e2X8u-W
zm^@_892kzqe4%5|e-_M!`j*G>U}ZORUN=1+6oh_ZhS4~N+!%`qNq=<GBQPlVOz>gJ
zE`haQ=n|0lg)Vzz&vhR)*fOe<4kay?aL0~w2cnU(G-5h}D|B8A+6NUnM;bfA@8=S#
z8PyC20+J38WJ9$H(q#a^h^=U22z4;`4jr)rD6%HxHiPJ(A3}9s%*l@FrY~K<k`04G
zH>uxN;sI_Ex3+5&gq(5-z@D*)0ZlTvaE`M+!Ay<aqi)@S&4*$i=);F$U1SQm2f0E4
z45;(bQoy<mM6f}Qbz{6Spj|lzREz<yu^z1Z(<IP|VHRB$Q5a1RY|#fD>kL45vJpaq
zY9Wie7$mV_mPgRkVwxQokql_tzb-c<g@bfO21dft0S!RmkX~&^IuseDp$hCUM#)fs
z-+*QZKx!4KP)>A&fNC-nTaSXY6W}7@9Q-7PbZkBWZWC^xD3(l1!w3{WJM;+X=hQ)M
z(dIBfnR*OFp<6I&$FE2<!rO|GJJQpm2~uRxPBGGebwiEXLU_)kP;}I;i2*DS@Ts+5
zk_7v|Eu(^10xE%LGAW!ySqSq*u=GpY{7?{01&KT`VGMet4TE(og6B6)SZA9g@muR;
zLJ|Rm&FN-?RY_ni0fk1p-`c8}Btyg|4aj)#S6D}Nw#H<jb_AH6pG1NuAmvb%I}d(j
z68L%#2^#@*UJ+o7o;$$*^xeVrbv6BMx=kK(uR=+$p9=0ZYM~M!D%B@ZO2aPx#eMpg
zJu?R@u<Klph^+rZ3VGyv3Q0hTq$7AHNku5I7z=YqXs5fWH;1f~>!uXO`$)#ltvBcz
zQK{v<g(5{@Tu(9cd%#xd_S;MO0Qn^yb?uWXAyk-J>Ld~~n6Av3gg;aW+yl@6Qz%*b
zpwlerBugiHU?PYonGyv3jf6W-hW-f+$;gE&#Be&Im%^kR9<I0iu$ft}PATaa9SiAA
zFnd;3GLha4^QBpVEmSH!XFg^U8yMu8Pt1=@nk6AwO6T`TIWS!{u_4(cGi}(_mZuQP
zV>9YUGpa#WvcLx3hY#R;MK60`9>@O!mui1`h4Rx!&l#0<OC9FW$@_H_LYu%pi%v2<
zGuqYcI&&J6a*{)FHT#oW!9^yS(k8ZZpIB#ZHXFhlHyLVU@uV>L<wi>fxEgM-JI;H*
zo~Lj@P<Z?2U7WX#)4*G)GmVL6dH=zi3?*j08l#Pt)f5*xvc{?>-yV<`5W8?0D%^{r
zSb~>Q1`72>3G}rIRyOPrZibdnUj!xJ@3j03qy;>jSmoktH^V*kGO+<}dHH$Vnsy9o
zj*`>n*szBhxEzCr{uq<6H_vS|Q_4UL{_;A;0B`r>DV@U`qSfNTs-L8u&CsLA^41rg
zL;Mzpdbq`RtZgRMucF7Zk}Ogk<yo2WP#R2|XBd^X_c-_?t^r7C&)B=b@&G?1MS#Gz
zk)dBmApV_}KrSUMfWn*#SU8Ac66X0EBv~ZTlTWg8Jc?(yF>}tjM;UJxuCzE}LW*LN
zZY7oYon0`=){+VX;+1zmNb-0Vq}=#|D{XWT3ZrkBkH0Jl)TlCX+?+HvmIE`+c^h$(
z%tfN<vL`}462^p{2=g#FZ}E&X00W+20)P(K{T!K72AGr(;+hch)ea_{Sx87H<j4-+
zgnxOXaJvXtB$Nb&Aa?0eZ5p0)&gB4+ou5jlRg0pzBS+yfdImusPTcH9nYM8wtg(2l
zu_Pzbyl7s2rufpa#wz9%1sB~MSt75Us1x0cgn3u;nLf>plraKoZjPcWZL+r~xJX?j
zC4paDrpun*bDbz!YC4J=8xE?ai$kKtA+d`?62aoN)MOTDnh_gDP4<kR5j$bb#tl&^
zq3D*-4G#W<&@sg1jVr8;PsPPJkAT_SJM9hm6M5*(>B)`@<Cu*MgPbVF@fo81bOVSv
z<!un;JQ)m8N=d%Ez9eM$DlrfY+Q<SCmK#?|z$i9+I%jc+FlKSc&=g8af=O~TH97Tj
zig#S5gJMgl6@R_o%C)BPn7dhN2zmbEko93E$;$v2I25Gp+W=K)2awXDrOS2`&{z%>
z9-Tn~<@H}<oPS#He>frV_xNAd6t1-4Ms5oF;LEg-r6C>5jX>NGY10P!khjdwUh$DF
znj5eHBR3+j&ZqS_pY-K~n9L6M>sk@Aq6H+)h>aMQyaLE(v6Cao$&qHshP&b|_K<q0
z4AK?!7*pM*Le3y|pS3fxrAB4P35d2eHxC?!aMqc^&qwYQy*T_%8;}bPsRYRIH1Z6X
zu7}Kc^Qj(&R;!VX9^U6+wVbJNx=e$2FE&kDEUEj(CVQW&a>*SY;}Cb5I7vmEt*Y&U
zsrqwC3t}|#d3f^k@UPCVigz&`@*80Q8Nn}w&Wih$^<N#S@-^eOC-Bch%kb4CyVC)=
zF%GjD%1_T{o?U6v><<D5OL;51>=BR$>mrF8_!G9kwcUSsm0q&Z6_gT?|M6Ok^Kz`>
zP{@SG-U0Qq9RpS)^K(i9OL>E)mTvl~3Q{Q4%1vL2jX}7BFl%jfW-O<*Y`)1HhX7)=
z4S(>1HJoTYqCN?+nU2ClS^~id65@^CDxyLfblEy$9707sx2?1>-e^fRrJ5r34($a|
zu1hvr?Vif`YIgkMyLQhfd#_MD--h^1?GmD(k?txYo!dN)*t0(rx!jB_$a$v~9D3>6
zUg>g!Y(7a(?`JpQkRQu=p0Y>!St|uiUla(afJb>=y%fx=&r&pf!5C<B`{eBj?-e}?
zy3#xDNB@Iq;7cdIeJ~?2m-oH@!Q~a$Jf+vsw{8%ShdvR|58blNTkMsdDL(eS|H1g2
zG-}jX7;2_{4>g0YZlY?&!BDeJ7i#V)mv5prjYmL^L{C2T#ztzYEsQlg;TD3n)gw2J
zx>-L3oQC@c-(yQyE&b1M`u|ibp53Pv|EPs`->1j)aD<-sCk!nIYQ!^1wOx2*iEG5S
z^&<3rZ4dSoz+wy}<a;|G`1h&AMZYj%<AXQ|$e*#m0eQ&B|4@lvgDUYSeJb&pkdE))
z7uZ4B%Qu<ahsVRvQ@1Y=h3^a4c>_6&J)y;!bR$cg0OQYj>8$w8oX0UBY%gd02Mr8j
zqK~k8+al~_$pfGcH5?>vW|>I#u%tU#J{MRA*hksfk-Irba4SIsS4b%l4?JPqxsIAj
znh2qI5gspo*M`^jmHR89Hhe$E>wwM~nqVT$6w0)qZr@@UXy*+B@?ike09d!j_QFst
zBVC0kHeuWELJq~EVjG5b32AtbgAE(dbd30A)w)dLmrZw5ccX*~tm5TC0$S0Pwj148
z(Q}@F+}(_Ay$e5u!H!+sng2&&+xTvcC<z8^-I|DYO=u?;_)XKL4Q$t}hS8brzoy&0
ze$eeu8183D?QNHV$6GLkf?3J8o%+}vtX=4J)bwoXQuVJ>ZF=!`So<G{w|lQc`tWv3
zgxF8FbBmxT9MbKZ@jS&C)A0D^^|7wQvBByAz71XsLhWnP3y8K?;EfBe5~LGg=tIRD
z7eIOWZrHfsC)An=IVfu;Skd2Z0M4!=oDIVLK1@l4x^4pmTp`XRZH4P=z>xjD{Q?;2
zcFZ%7VrE`2y#u=j7^Pn@t%Z-q7fe6F2NU=unZshvzhF8HJ_My+Fy(U4d}fSU81p>b
zkU3)-#=OG};@n||F>B!?sD)2H!6%>KBN<A?0htrV90s2ZgO6PJIGM{Kkl84j=m-6i
zRK1%H&p3o#iF+8$qu*%{;!Oi=A=xZ?^NFgnWpM}lh&H<DD4!f?oO%#9|Cg9fDj?%6
z1+c#A`<$<yc5Xp-x{d<hmDa~Vn5Ug!w_TXAo$PX^olsYWUu);V1-%UgPT9R-6|6y=
zbMO$(#?%q%8054X4049ZJC!mIZz%9tOIv~%ywi^9rP@vL>bIFdV`FazsrK_Y)ovum
zdj`N@q*L?4{uEBNr^50#wgRwq<?m{zh5U(fv<I_Ck)t8jeNelp6KYF&(SuBS-4=VC
z$g$7Cdj?$cWjVk31S`4GD5ToA33}b!&oj<5I1p>bk#;EKt!30QPzW`DVtitZW0Kiq
z_Bw<?AI2WWhCnly&1I|INQL^YrElH8(qhD7#7r<7(RdpH-w`vJNY;pI!{;14;Jz6^
zNcs%JupSc!N(jUI%5=W&_A%X!bqTE0_{D?Jcm81>8oylo9u4H)i=cQC6%bZ4%|iz{
zEP_=0@nvEg*k5wVEq_oEgggtlCH8wJ{vgK0jAaHRq77`rA#yie<|hl4CCWC-_R0!n
z#+PLVF@__e4Q<0Io`@V6$*tuR<um1r<SXQIxj_tR(1_?kw&9mZ<?=`JH*)@0xuIgD
z!cO6)Fo+pEA{rTN8?Gd6QS4J3Q~ar@Q24=q!U~eoAci&~ng)NJCux>4SQ(?l)zk--
z=aj}b;d}HE(RADJZJvXQfJKpgk$aJ-D57XhQAQE`b&L_wj6n{$_IUPF>`TFY^lN-v
z-@0@B+kExJ`sTq$^<6){bvN@g69gLPEI}<iEqxBdn${E-ck`qG&r>Uc>|#LTbiOzW
zKz*&}sb#PEWBrO*p?|IQJRPy9B;1=B?uJIY#W@gG@wW1Q<Hett=y1X169am%Z$T_z
zFqCY8I8)1n&ipqX!z<o=a;nIsBqM`d+?OKa?G?Z4Fm9XcMCv0)QuDA{+ge_&@X<%@
z$Vm{l2EGUR5oJ|ng~7$Fn9{D*e?eWOWb8q{)Ywk2;r4`~4PmuFSy5bZwW7M>w8QP<
zOB1POZWPa(zt^6s{R{q>F)r>!xBz!Lf7Isk1pT>gl9<xO^oj{;zS>_+2~(fo5ga4V
z5>NQ5e9x#L{u5gHp8r`plQ9z>Ftf~SZ9<1FBu8{)Z5zdHnAQ6>Sh4SHQ=+r<h}+!i
z&+5B=wSUhKG)ng3``OsnIGQ3t=b>-i-<SzDmb^k<hD>x@;c1H8a(29HNfnV0*e+t6
ziH1Zxuf4BDy#4dhiFy>z2Ceyeiami%3`KivOc8lnCP)81X`-H6_RlkEi@=t7F7DG8
zx@cB-+WEcalO*A#Yp3)5ia$N{D%MucnpHg8NwdPAA6%RmWS1R3^R&c86F%RZ&+yQn
z&X?G=N+OwaN<4~#N^&Q7IxN%M=GkFjV^5KSb*cBYM}+I!w)x!G3Z0j^%zAo%lj?%L
zspA^ht@#|VVh?h*vpTPxGWxl|ExWnc4Axo)F&3@0BISvCwRf;s8208<5=4nuxU`9+
zZsX`IRdJMvg3B?j@v0S`Z^MYg0I`MzIH;L>r`0JmZO6~jd93O@()|qJO5rm|S9VqS
z{IJoh)!FDV2o=0a7|hnwKI!=#fTpUi=>7=YHiAqg(e&rJkPZ^U><Rv^y7}<-Z_FeN
zH6>Z~ZsblFVlo#^Y|*R_kwPPKSZx&>H6n>VV7YlZ0`JIS;~*;vtrWHz5g;m>mu))F
zAO2h+qJQ4hpzyq@;d#?R=S>HnH>E8+Z%RLJ$^fUC$OY5FL8A-?jWQfGYS5rjgW(sn
zL8It{MlpO4@HVXg{{1ZHqR>WN-fLI~ZPc?+m}LnOludu#mg+GVe#Z!zC3G?47-ley
zlIO%RV6y8EUrj~w?gAv-`T*6Dm|sj8qc5|BDm{1uX4*6Di^f?StYn6?Xzp;L3t)Io
zvMNADsYofip%bS(%6%Z_v31eZI*t?p+qN&Y*#<Gu)KRIUzF20&9<cd@+(lXjBVfo}
zbPcRa8#AEpC@F%`LhSkIfV53SN|Vra4B})LA!#-bZ|0Z6E6?IV3#uw!9?6)20?JtC
zKIRcO$kOg(Ugar#(bqi2SDvAJkDJ-t*`9X3z|Hr&nBDiJZ>cZkfp3$q)|rX<8oCog
z&E|pyu&;x=SR{@RuMua64~SVs;xh3=u~PP7k`Ym6=ng3HW^)Y?7n!#V8feKj$Uvqn
zPj*&zT~;GIDE}}CnqnEs_0!DeN{}gXAGuf_CkLD4+495ki}E}27xJTu50hY~%uvv>
z&E`rGzQSJ-rT{Ay>55+!#}!u;_Z1C_lS=f%r1?flLwB=0v$+DqQwioPBb7fXcPN$0
zV&zq3wUY8$d8X*Yq#*MmL-*mQ&1Uso>hRK?(@V|4!V#(0sji=zgI73i9$W}7bJ#_#
z*D7*JzgrbFi-gvE5_owd(}_NiSMJrEZp?&HkmyGnfD<s{so<%IuWyiQ6YrC*Q-o>o
zI)}Xf0(d=U!s}du7>1*#jZIMlWH1voosQR+;5HkKd0@yR>LD@-`lcjfQ^eTRnP6i|
zaM00kQ-=uYvtX1om<hHsk=>>S$k6F%;v{&@PcuKxe265jXPh7IG97_*+*eHqv_Z9n
zGX(R(>q21;w~p}$m3pxHLDkZeZ3S9-&$#Ib;i+CTlZ)>#6X|^N_<q2D6HL(hRSZ$Q
z41$yoB^%zBbxZ&+wkyz~xKE4FjcXBffOOH?R9^meMpn?M%z&P;H<&47%@jEB+-qi+
z#}0)(@iO@w-Cl+%2QWkpoijPd83YM)ypg`Cn<JV(3(goRav4Ik8h<DIo=Hxv;|!*w
zaDo){_&Xp$u&lj*E~Wauzhxt>k|yW*rBV5S>A(c8BOI8>x)J7#CVJ{5hT4&^j+tRZ
zWtuaI90y~I4Hk2Z%$cN>#?$Brrw)M=^8oxcHvX1~W~TLw(L)`!!%9`6Tk1VyKJGf8
zp?|dHJCZ$#{E3<n%W!m>ab%V$KZX!V6q3@Z(J(8ANqJ|`!5OVOZW=eho8ou*7M_^@
z<<TpAZPkI(xyz>$8-3e*-2{GuAGqc9Sj=|(<o{{W{N&&uzEi+Fw<TQJA5cUa9XN{!
z1@7UfC>n1tK{r5xJ#pVVD4fQvBY%c=OxwI{)~}ho*Dk!dD)bTWSEHLwu-Nn(M#j%v
zKLuQctxxEdL}=RteLW>iA!3#=)Dkf;Uul4BHyX0?ZEJN#oz2oUlN<L<L;(F`=q*PE
zBxg&Jq)l$Mj-0olR<0|J;-{`O2!WTPx4-?&1V@rX(E6$f+H|xZxqcsyjEK)f^pR3N
zXLg*B1S)^3T>d^0-Pj?YD-}X52jVJ@m}dOyGh{}Q6xpu^uBjxvl_vm!Yn+<flb>yV
z9z_P**M3Wzk|040z;DJTKhNaMUSsRDYvL<Kvy_PKC|mD1Oz}weW~ql_kOJTV)LG@s
zgkaBYze(4s_k$hlXC!%&c-hZ4FI%Nn%q+^89hXX~%6_hJ+G_CaHv_b6&)@~#mF!3`
zF+xm)c{g0pPU%>1T@D{ier(BywyM1nz$*v5wiiZL?eAy7mG@PI+0<YCs~b8gy)5`y
z^*8i}8tMmv`dRR*k&jUe7g)Por_11nYi_ilzbyt!C3<J?ZhT1X`7Qy3HTkI>-%v0S
zc?~A$;oC*qM{MCyCrm>?3$6jg&a$^qhwu?VXn=5dWxv|*|0KizPJ{R1xGn$RrNL)I
z2SezW6}u72Z6d#c#O*8@O#8=w)b%@rFgQp$xs8<wU{)UnS@5wtS@C(SsGY2&vycUU
z40HaStW`&#cu+@!Z)Ant$7%3Mk@s08y&VtVX{kRt9^ydwKa>6|eM$c*nDpmi#@%p>
z2nzEc11`t9dM;A{0d&F59#a~oLN0H@1`Q_y!$R0Ah1gdTP{Hp#1XX_-7_0_tN=K66
zlQe+Pa8^8Y7|{5DCCD6zjYreul<gQ%gJByHye%gM?ht8O08k*QK_CMoY}f;K;@e3(
zLja)#!%X4jDuA0b|F1eD`s+l207>fBNNmA~6$Ws>C!Pj~h&l4A7a9-2RekxeimK;?
zbZDhMfaU*96U_jwNFV`?c1Djb^F)&oHv&j70TL9pMKl4K1Uqt%HU!~Qw?!if&|PmB
zI1N*E-&y_b7JIY_jwm_oA4Yordpf}kEWfmHjJwKhKh|XH^MU#z_J5y4_sI3bY>f4v
z@c8Qg;n4eBW&dw*=#LH4+}?w;IEem@pZ5VtYv%DUe|z?!k3<JJiawA;r{F010219B
zN6~+f=*KANcM^RxG^qVfqSsO^`$%*jh@yWd(eq&7{DVaQULNUzC_2<k!ukjXcNldf
zdJ(*L^pWT-z_y=6{|4OqNc3^Q?gxp!7e~>*ljxohMgKvfd*CQKOr!fqbZ;C*|3RXk
z!cp|^Bs%=mSN0DQ-5W>Ie~{<_u&VW)L?=NM9Y!<#Bzg}-(Q&aMh%D0W{pd*aOJG7j
ziLS;QG(HHi0~7b-C^{4y>PYl^xY)3dMDK<udM}CoGept9ljtiUir!D6e}pJ{ABi4_
zqv+pB^j3(X_mk)$IEwy*M9;xd^dBTT1ES~yNOU@mq7NX^`8bM>=O}$7`aX!Fe<#tK
za1_0tL~n;EdLM~C8mb4sljsy2MIS(->q8WM0Ete)QS<>MIs#Gjfh0P>QS^Z%`XGp+
z{~*!j`j7iabRv$T4<OMI$ej-)(U}lMA3&mK;wbtL5}g172a@P?97P{Mq9;KVy`Mx^
zLhSIf!`@AhME?S%ia3c5T<#8Wgp$NQ5}l`$?deE#HAK;SN%Sfmirz<}2lb-peI&Xq
zj-vOI=tFfVdOwMtqC?U9N%X;~J5$$``~cAbPNEM4(Nl2}{RfE7!b$W2Ao|ie)ejK8
z2a@Q$AUXm`^noBcpg|ISAc&4a5`7?uPU5|;R{h}6fwTIb9J<?z!vi^VP#yG74t*o(
z&w(5|zr*hz96D0|PY%7r?gxkd$AysZ9J;q7b0CLK;fnvkp{GRugG09$59H99yF3SS
z=qIN9;L!iDrGMwp3s2L3aOhw;{hu8A0*3({I><HqCx@PDF@7M2ZhCU*01jQm8o;5G
zr2pX1SsLy?IP|tg$g%fv=wr`?4B*fQrtUfpJtg8F9Qr0OkV6N}f&b*tz2oBsa_AsA
z^q(9$s<-PO9D2~%+yNZ=%vl3Cba!$xM6|zy=%Yd44-j2PqU%8Pu$NK@qUS*p{RfDi
z2TAlFAUet9<e32=dNCx?zk}!kNTT<H=;o2~5S&E+0ixUCBsvbF-_(KV97v)M0MP+X
zq7MYo`8bK*3!<+{hah?@B+>gpbRCI407Tz}f&m~p;*nE6kVF5F^qoWZS`gCDq4RUD
z+Q}0Al}>rzQFI-P{sTo1)3NCNC^{=S^sO@gcf-Oy65Sg|(Ty_Oa1#Ahm;1OC0Y6Ce
zK&D`cFhb}r75YgGyhI5KmMp+;#o~|^gZPEzxe2y(2%kq8dAL<^>7y8lxvZ7HaFzj+
zrn0=4LHq=3y0LqZNEngLu`$|fIfqLRH4IG5vn<bD8R5?Yf%zQkX!{E@4vf;|hGBVp
zw;&zEz5>|j8202J5W9|Hzugb9*T9|YS{=mBF1^f4{|>SH7}lIaQocj%I)**@2gKfl
zGwjh@?i!Zj5IfGWTRTy&LWup@H66nq-Vd?k40~8-FT`GTr-?VJTA=y>A@-izUX?nA
z9o0eXN(iw#+SgpnyXMvhu^X1^7<NzqA@<@b2g&7U$4rVL!wxP#`}tZigxD`X?q%5V
z8YzU>r!`rJt||ko%K9O8oME36`d=2P{##`E-!kmre;D@vVc122Z*<2J1V`9$BDEJ`
z|6d^GUWC0DQr02t10iKbKcxJ>=V@RG{yRMlj0Ym@-%Sm42>Sq2ga1G&m;AUMa*T1~
z#D0X`(MsKquqXQWBdHK!pK6Kz17ZK0P8x`?PonM_h_KVQd`D6tky_G^q{6*Szkvul
z)GvRhlyQWeraus2AMFs?Po%==ok{#3g#EwE@!~&R9RGu`_qks5BkYp@LD>KQfv}H9
zpa$(-Iz-sv?rd-UI(2IhJLJuIlkW(7p1k4m+(V<<ZNDSz>;6op)*kghKvX}%ZX9tF
zHTHrC`_DMSzV7V%7PN3NP)YO*FPDnZ$Qej4!~PAY9l|arQ={IcfL@0E{kdcwRqEfz
zu>Wm%2CNJmPB>0Dct)N~&6<Y*2(V*Q3zMmbg8C753nu~qHt)1*O(%A{=?m<{GxBxY
zP~_}2c{Q2^wf^f`G+*X}TP>QqlUh(Q%@8(WXwi5LL9xJ_)#yzY0G%aVbSSd_K{a|&
zZ3#eXfL>yCwF*56;gj_Ndd9Ui)#%kRiPW=C;Sc=A1t2Ft4@<4BMonE{`<!0`^oBQ8
zqt%mOfq!Fw-sR?MwDt-Q0ObjC3;ZE1o&f9%&|8P8tI=j301ov8=(V*~qm3fi(54_j
zFZydWTC83KTXzKL5wYqoC_A){+D52BYaPP@*exZKYrdckk)hN%`Zegc;OJ1Q)u0+Q
zs5>r{+C{5DJ6692;3yaU8-P8=SPiO|27oL2*&6_l8OVqlw4gJ6kI7J^D&`&P+WoMQ
z8Vq~;Y;S||_xCNDfFY>UE%`T84QmL;|2D;l(21a97y`Pl{%v|39^t>od_lnPf16%b
zrcrBM;r@i;Z`0wO@B`o65peQvQ=TC_@0S*SG<l~D{DuCx6>if*4^Oz)DS~ZIaD{w}
z29{|Tjss9W1mNZzRNIPZEgGl-gDQ7uksyNGd8REI=z9cVZPAbx%}^sEG!z;^BpU1V
z{Qv%c=Kub!@9(^5#5Yk*8ap~LtO>gX&A^C|xzGpA?HV3ump5j`g#9IITH1MQ|6DSH
zk3cn~=A=f8fC$~dIU!?dOK7pQjkJbNjHjR(I#ElZT2H<hmd{ZDd){?ZUbjtyYPPQ!
zZ5)aMwT6l^XqGhKOoKkIv?$tonu3-~d-eGR`l81JfyZGfz$SxW=t&z7zQ{ntb68zm
z0WcO+7Dhred%hGT)PNQ5!P4jGh=iB8-tY||Fj|nLr5X^dKhz#L)PP!h06TtI(SxA^
z4ieOJU?IQO9Xc3_UFZ|Q#CagVoBpqdI1vs}3uzU#hE4+<niCXg2ho<(*3ov-a%dNt
zzUaeNT5ynR4QztaH%K)UJ@yU~1AT+Un_lz{a`JQZ#~|OeAm0ahr3Um561KS24bmN2
z8oSbUW1Kha-;dD(Ka8*;)4v?!A5C9+kK><spO*iYA-en*hX}9oe>udj{X--`+m)rg
zV^rxX$M|8y_4c~MsDdZE_b|TGo$TJjc%=7a_Z`M>_{r8C#vc4+>kcCZJfL>p4~Vbe
zC%gAtBmeSx)E!7T5&!d1691b<830Eq1mX$0QBI}@9Q*fUgm;Sne2k?3wlN06sq<eN
zBfOLS%Q3dXv;FGxU{X1vuZMxY^DW0Gw{F^C_~gdVHxwH8o$u=2$*nuz!oJDfd%nNu
zCO3Y*yLFQrKi}9K5CCVkKUmy5asKU*B*SU*r4=6|KChDpPHZ^D9^K7{3<vmsan`7M
zuSh3)fEu3c-tnPR|I<?qmx6zJ7+1nECco^4_nr<7=B}GGexSDRAWCpqC<}PO8>G1J
zAo{!qN$?KYfA7imCDOw?P-zV?7-Iip*8BlyO%?D3b6x44U#o!lGh|-ijM2kyk78E@
z1`7}lQ)_(7NX~@k*qcxKMtCdhv9J*i@iDrm2;SpGEgE+=`n)J|2leeZkk8fgz@m0g
zw=Y4!!3|u!<Iy{)cH-$&v2n}}>O%=Q#MM(7=Io@d3Gt&Q*5>Y{j*$3KpXa^aNiF*Y
ztR#CJ+^M2QKn+E10J%W1lS)}S9jdL=8gLZu!*^@@mQDEU`<6{2Q3QMMKzF*uu<g{F
zPhDTzw5<T_HwSh-I8y@`FDoY2yLhera|>L&UUs)?sf0N+a1?yjHn)4}L_{8Qbt0lQ
zkW?hO>G3lMk;n(hb>EVpmI$hh+Toqn3d-vsBkI<oF|6&XL27W7(F^q5n@>=~znV;k
z-Ko31ED0>WSI~G<EaO_}Xuj9>8!Cv4LR!?-M1}RW#XHF0%`!brd)w+~G)Q7m{}no$
z69924pchu7`b1;os1b6?6#1~c8X;N#O>6~b+bT^bRGRu$nkF!+jD&@iri&^~xs|4l
zm8QYOO4Hj+;(dz-i#7{At~vMMSSWG+jR^e;)2dO?b_cx@TMh4q?PZ&UAxM4&p^$07
zJj)~&GEnG>WdO}4H-nx+rqeg{ER&?~KuW3s#*Vk4`h;ShS!6ld4n=y%41TXZspTSX
z;j~*(uCOa}1?*M+V7=?2=?S90^6g*cy7X9{=VgrqGy?!tTM<O#8l(}aBL;rsbs9jq
z@yKe_&wwHDvGX{@`K*Nve3@tSZER`PXdtV(9V+fb4yWe08JIXAi}`QGhpf7nFLyI|
zfgoSCJ)>ZcNFqo@?!RrFZoeGC>POejKXugF3)^Kn`~EiTy6LCiY27I1`VPSFoR4&D
zH4#Qfu`kF$wO#E3n|1*<s0KGl*UNQFAc%V7D?F;2=P|30(Hl{n!n@<Lja%AYBiRDj
zBeb#O6oY6<Co^We`n*nf$T~gn6a(?zv(UgKJuq94wdfluJrK+hW-W3RrUrSi&n~iq
zkI3-MB~I{hGW@z6egnM`$y&sRFO17v;sGDPT=>Q*Mru$pd`uLj2Qr*8m%N7GI4yID
zH~#(#`2BO>lOXv10s(v>fpK<GA^bozd?5(Ff%s=G35Jg=;n!jC5w;1=TC@y4*#=+u
zs7(!`k7b{oKU_eRE+x~S@`HtY6ByBKGK1l{oOp`CI4b_qmMvi1W<-5-Vk`)6aGK0!
zM7L;Gv}k_*MZ$<_(a2gfbJ+}Oa*HMfHaBK7Hm(T_XCjQ$V^-VPjQAGKf`k^$R|x|O
zJCj;8kA}rDR<>wXEhjQopKj5tY0(6+8Ec^_&ZAgk2235+FHdD`fN#iKG%MMR&5#%a
zEt;|H;-m%2DCK&kLYb@7JEH{Pe2SgWfT88pe+6eI4WAh#9M2~+3gJI-8%am=ZN4pZ
zR|s4RLcF$nG`SRHjnt6o!{Xou?WG|i2mTyjyBb6u1Cl1Y_>DO$P9(F`P$ex*&WQox
z<3LxFo%BZLguJ{6epR-2wj27J+uRojAtcFURX*z$AMR3TCI69@EBlrVH>h{!2;Md3
zgssbw-Pj#M;T{9-4tx(R*?|G<3*o^q&Ey};AAI^S4LyCB{u}f>yp-Z3Br}{OtU4l5
zict?)H@8D-`asGlOS(%zF+pSx`(_j%C0*J45wZEydAoDsGeGE`ys#6ej~+XCTK_Rb
zrqy{dyK|NTB=L{r%kT=$f<NyRV~rt5UrJ_puv@iu!c3Yc?PkPob062o?ykZGVdY+-
z3qf3YIl7X)lARtpmOYkzG?a25Av0WsHZRDTNzLu9!qPbxtrq+a$Fnl!G<#MyW^l76
z(}>Tn!*ryr1)q<liPmjXI(6|dUAJDZ{CZ~|x#~Twx{}v2_8X!6Wy&GzfZ0wr?%r}E
z5Vm`;U7?6}*`tUDK|+LWn9PoTAm>CsK<;i_i=c`AITZ6oWUj;fnnRW%JN@*f2RkUX
zv!5JY8YxHsRO07{8-^h}bLw0S7~Vp96=d6NlgxciEOhr4I!S<&<PfJct~AboX(O<4
zX9NLas0Z7FZ5`SOZya8svns7-RhFZ}%9@Ub2HtDB9qR2@=~tQPKkrS`YjkFN6KWej
z3vH9dC(K;n8#U8f8ousK;G1~`k#1mqZ2qxPKfTUzWB{+$WY2fez;j)W!)o9TCKj&C
zaq7%*X-&3WRO*mOIu);-_@UGRI7hUac<$3UL<7ft8oOPS9L#+L<)o2t*@&E-C>q%Y
z$d7s+`v_i>USmN8or3YA<k9L$@2sVBDp;+qLer!4^dMmnypHM86lqEgLZ^fY!-R2Y
zVZIHVM`TtF^D>RJ<9^R$a1=2xDWQQIG`Pb_qI-U$4YIJXXdywT6M;p5h18-vd)q^M
znh%T>Xpw$}DI5)7m_*w`+czkEnQ)nKXc;|P7%g-X(kTnI3$;^)bfS<bG~nD8bXiLu
zd7R(8WX*|nm;-<3s5SR`d<d84e-Jnc`NH6<Gful5O(tGTm$DYS3hhJ@(sg1HaI-(V
zC^z_n{aJBpkgIUa6wnwvv~0{2VziUcOqLonRS3pR@rvdP7r-w(gx*^Ym(@i`cb0jc
z3i*?q+tt0nLWTFlWK>&K%+pdHa$i~VMRC&tV};%+o@W7?GWl(+&@kz5uD`E`@JW4W
zqG%sDf~K^VU7Dv~i5<V}_50kz58sj#pYo>0ks8`OS|1Y%=oJFD>SuEq56eFJlEfN{
z-7`<hqxW7DuBufY;+x+5Mp5Jv$9bE?*<wO?*z$!O)}wm&`M2ghTQGD2XIZTQLYNSW
zILRhHtPuR_T>51RBYaadrQT}A=2`^ddoL}LRe!1wTyl<F^juG-F_#Tq@Z9;CrxpLj
zVe+cc?On3L^1%zPS#!j|s%nZ@EdN-2Qk=2sw)n6dxL^Mevq_dMyEUV>-D$&6Me2A3
zDL?YE$266%YU2An8gOJedu~<U7RZ1)`~vyxmgLLSW<miQI<2eZK3^*fHz%u+!<0mK
zEur%=p?EX%+N5F!Utm|E{q481Iax)PzolLqqs|6F&gy*)72QjAuQWU**-1KNJnm`z
zrUM$vs3zsF7S<1e+rx~M(`mmbjw&uG{#Mi~lC=tg(nL90Y0sXf^i^WuydYY+TDeWR
zUwKkls(hdX{G!iFO3~1w@kP^%{E9-0U=PO4MSF`1i!K-4E2=AMEn*Q>_Ss(cc;7$l
zl0c{ei&ZjJiYiN0pgOOzu6U*bA5@r%QDIr(Trs0!K}A#rSYM&2$gO})|0*6=ysfa$
zrbO72YlqZgDuGL_TWw%12(MjTyRCMAt-iXn_Cak^E%;nZQ4dv*S5H^_sYBI?YOq<o
zS6!&StiGqNd-Y0U?M!TI^0L<x{*I&!!$x;|A@n1n=Jpxw5%yN&$yqaJx7RI~&Te1h
zycz2bf-S2QXP!i#(<9xF%{01hu1Co<slY&LLC|paa^m2JU9ix!($xW}<v&}R?1382
zwIE?8T;f!2%Is*@#<o|IXONl|IUtj4GhazwNq_TQ7O{2C@LIEN9J3(f=N^)sNra5X
zjt7>AFm`?;_lT%_LY_&>=rzuu+j{QGNxbFK2i%Rb?%AIg5G!eoH0*`|SQuK2w6L?_
zyIBNUgj=k(IPj?|;r=fc;HbqVi@z;uEwmN{t_gQE7fj-g6ffq=xGCH$ZUOf^7u@1*
z;o<H27`)ttc04y82;_zHa>S>_jSUHLiNd2(5t8utVS*}N9ZyDPInTgi7hqA?dd$z4
z=jD>g%zhr_9qkl<OON7}a4|>Wn+w~O7WtOV82rt9de?X~WM!`w3ybR0V#$+mEfxqo
zA1g|@6f3+MD}5O6b3WE2=6q~KHEhJ0oRQM31*2(`XtQaHX)?WLKJ-qaxhQFXtPV#~
z$7VIRQtXA}1iAK3)8}`@9n$~Z351B_=Ld_D#k<9RvU>4NF?cF|FYXEUO6uNXv0{Z%
zAOkila+Sd%nlf`bL;GHRo=3n2DP_en7c7yOD5U$=Irw(SOyx)<_6c^450s|nwwF~D
z)aAApi{&6rzDa&<2Fv-e?_1w*zJtWc8&yZ`KO@0H&HFQi&j=GZ9-JkaTI5}{a8XTU
zV$u8U9aj~Hi+cRM@Ms^yOI1IjaQ?aFSldM7$xJ?fi`?9&wW_R{7gA0@`PZ?1vqMXa
zRAsZ9+Zm%HNN%TQokrY>Lr)u}tfzIx8Nd`I`F_qge$OhzMtosvXToRXdETHoX{OO-
z<L@`~h<8<OgqX&*X6<s7Z&4yqbn7r>q>Wo(vzGo#Ri04_J-;l!?B@qZ#TO=_nGbu;
zh1{rak_=9}@kCmixMwxXdBTyO0ze`>Cy6bw2^V9RRmZYMHkia;jg4Z}CB0smC~T8!
z^c3cbv5M37^uPc9JI5ofu^><pu2`)A8R>2vNkP9>9*Zs7mtS%ld-TFvk;I!7LaW|>
zb4E_-ZF{wZaT2UTZrcadUs2sx9U-eDH@&br7Tc^{u(gf$*P@@>9CE?q&~j;anW*X4
z%0tvdVes3Izqd}T=n2@A`(OnNdjj};^QHFY*zZX!KA(E512aB<@gvXc;}O-8iU`_E
z9+UWzGn91i(=nFgFSh~?R)n6OtF9*yti75O^pFJPWPTZ95bX5|-K9qWyO0c&_Lu6`
zl(UkO`s)w=(pN7%IKtKT^Hyr^i-$_PY~t(3n&Zt#V`xrkL<o0}S`t(njKyFeEAt_^
zZLg?QREC}wAtJ<K_qP<{w-lCx>0aZkyua-KvY!=d<sl08pQkb|+c@m5@i+9QuwGbC
ze=xJz__jTmmHNpzxAiP{@4K?B`wy!$2=7Lv+Zh6z<xI0;>b-vKL}1U7hG#x}(|tb7
zg7Xc`_iqRp^%HRUV}!;vzs?KTujSZYDT#G~;y=d^z-b(q$ceSz#_`Hc-pUp^PW7|P
zO?KJKa?MRPvCm|Al*F#@K`@iDG~mp=Ae~b=P7q!1U?Kh}vOxEw1*#>#)*i3^qxg^F
zaRN)a5&WCl!+FrWt9h5#ED7Btr!>VrSV)g!6XV#o8Fa@K$CRlK>iVpLo^MS?v&QXc
zsA|UC6+XQ7Z7(ti)1*m(4!fFUKNkic4J|=7olf_z<ej3Gt(OpIgq8qP4~Ja#jP9~v
z(RzufPRr~$xgD<C__B@hh-eDzMq0yitUVVJ%lKXDkQ;Zyc!VbqHC_KeE2G`|Td^?U
zHlx8loto=iDfZlVI{kY6yIqUAkDDOBU-mlPvzhj6N5-Ry!}kw%le?<vgN30bLzfIE
zTyYS4h`D<yLq$e<;})wniOE5>)<>4`;}_o&`z**RII?J*-ph^iDU|S`GU4d3i7Wh~
z=S3W^b9nuDXro&K4MEO^Zbs>=2I-6H(~c~<=P8>n^I6bUmNry0Bl!>CnFh#fvV4f#
zXF-FrM9d|w6@%sSPSQ^+hUgtwMVFn5*hM2CgnLW%6>fyVLV9&a4A?2lkx}N0J$V}z
zD54bpGg!1TMJ`)la`11ho=K}?C-{?*<}2!suD7)gEm>A@W>+$?Vsqh{?2Hp1u&K-P
zcRjI;K4(c90(NCxx1{XK2B{T#r){nCE37YN6--h2T#0qIkFNidalIa{DkUbFb$`CU
z_|mt%ajWsYhU{&8@r6YDZf#e!a&voQ2IT^}KVQfspD41mzHu@?yW}vaY`;-(@DM@u
z>DB(C+CMz&lh4Dx?&+$L9=X~-8IQJ;LG#WAdqg=%Id_JwwY}0^sSzn7lxvhWgqP&4
zfnVO`Rqg$S&vrZJ+y1rYfhBom`Cpfn>Gza%%J#-B_d2XnC^-&0Mp!@C&a17^Uf+|?
z!(ieL^Y#YbtjBhB^EGPqYC|4IV+SHldkUsAT8@pXi(%D?r2M*YPTkT8b(avoB)5nM
zQP$92O6FQ;60<HOkW-g1xz4?@zMaLWSaZB<3fVeYEh5%ewo!g>dSCj!^zw1_m5&z2
zkKP$z*k|@?GUs9Co`UU7;BaN-m$q6xwYhq%dg^PkHK?sBY+tOFsZ-QhYL~apj>)z~
zydq)I(xRlIEk&Lx0IbfH6x}#cfW19_a{kKe1}fHwKfhr-)$iCT`{mW)PmTOmoxS<`
zCfW2vHv8u0;v3^%G@qui9q*x^KEJ-=ML@t(tB=huKI&U=AI-i$A(nwsLdvb9{H&JI
zQrFUsJWpreyv;a!%^-gUe`?iZ#*37vsXv)aduVp|EZ?rIT2=q&Df??l*3(=|939M4
z7Er7r?7>14t3-Quu!v)oVo%*@m12rq1Ld#g2v(it+p}(&r}z$;-`V9+k)ALs8&A71
zn0Kw44twolpV)jpo_1liJHPPow95jv;jHH!v+{{8u}rDVyu;2qShl16u;6S3*a5f<
z0^uCv%2GoYWcxYBDR}?1W)I#p)`dW{W?MNJT5YCovD|3o*p|(Yy4cD#Jp9`=gPaD(
zgBNP-ZPjD0B_wSk6O*<ak`RBn2HGM%IZYQNs4Q+z7fg6>0l<kyx4`KF4~CTo<8`RN
zvqz5qNH>p(8^L7uWcJO5bBuEgyT2TvXTi*Xl^(~L!!~(bix157$mDNqW4E#O{O1*V
z9DXp<>bwWVZC1I5>w~igf?O;4R($X|Da9baN?>;_obCSP%{!vn9n62{5Hd>s6PN@O
zFPHsvkyk*er?sDLNUUAleUadxol{z@*M7RKwVy~3Q0ngN@4TOGmlpfj12_o$TmwqI
zz!rP3-p-^-FfplaHoRqPW^YNW^EfstX-k#ha5eF$_)1#rn452T7PswgwT)m|@y%1_
zvFEX0OX#P{PL+A>siZSclnNyiQ|Lx)V<Wa>XyLXF?)`=3HXCFJiJ6m>9wmu!UM1Tq
z`%MN;NZHwc$|_{_vJ=vquLyFAiF~yDBqK&bX&3vCG?$?x+XMBr6J;}Hi&nH~TeKXz
zGP*6>mfc=VA1)j&gpeG)wz9VJ?|3&C$~<-tk@ZwG{jh3XF6RErn<e+Bj+#U0l3KUv
zYk_6n1Ms=tn6IzZ{~U<9qV2^$i8irsg5Ly`9M{Ui;uBkTw5w9*vBB+(7-v=Lsj}M{
zm#S5%EphOLo3B)<M(o=ecGutwTKGbHi7M3=zVMSsl{%T7e0$4m_D>>z`>a@ArSXU^
zdGD>BS7NPq(*kx>taPoM$39gCf0PlsMQaOB_(!(B_AvaVAS>}pbG`B5%EM2x6a`!K
zwdrpdzX@_h``9<fYky{^ch5V?KCH{wxDVeZK7CZ6d34laHGSv79qk8BmROd-X<8KJ
zYImUE_^6YI9vG=rda7+l_?N23U1>k$shY34(Hu7Z4^H{0deZrfa|bRC4Q?IFgV~zq
zH1b*X%yL)mBvR?cD-X|k-o0(#{HGxgW^4La<0>+YcID1)A9v~TO_k=U>i*H6L<b6V
z+1lu1+A9_JEAAiFZ@*ZAzCT{sRkZ&P%^7drrfX|!!GRlZOyX6()!S8^+F#v|R{-}4
zQN@@ixuVba=xUA{b*E?UsuS=T2Zp1?%+o_=YeAc`%0e=X$6nQ*kdl?SWh>a*xa>T+
zeIxghO86wd!y7ZM7>l|eh;kiehXu=TS%R8PnY*f!cBqSnA7@-pm#e`e^&9n9wIMbV
z+m5+mffxwKR>P*0`>~UlmBTgcF$T7ze1c>WzSr5i)d@=gy?dQ!XxC_uX>VzimN<;Y
zu)uZ-CRj{{Eweyx&#XNbDEETJZHwm?;G+fLGPzdVB@!P&<}NoY^lP!6(a7Hfk=!KP
zjJV|`lp4=$>uD)gnX5!c_gNc9c0?B3=T4uB_xQyZu|VhR_nq9Y2f8|W>W$!m)QAfW
zabHW<b8BOfoRb$6@cAzRTjNiznUjY^J~^V0zxGwFmgXKV6XcTN()LL3!sl?=;cJVF
zm{YcF)lA(qW80G>QM<mDS<U}AJ3r%d`pN*I>hTu19+%`U@$yv6pOT#`qCa{e2Gi13
zir0<J+{IbCif1%(Yc4p*JH`8p2MyhM9Xx&C;l9Kc%i9m{Px1Bf75m2dZt?}$zK4A;
z`rh$<;ro{y5gUntwRoa<rg)Kfg?OB7mpESxO2n~>C*l@yx0oiIsc@80w(t5{>=R8g
z8Y#+MElZUp7oA^TlFdELy~w@8ZIkhidAT^bJ*TaXuGxKy80h*g>!PFFGvQ2jfLyw&
z$zfM`lFPAp;vtwW;d_v}bV&twq+q(_SnAONLTz$l9ZR9f(l{Vpnlnq96Z-l7?{TU0
zls%H+$5s`WY>(Wreow>Ry+Kxoi_h)}fmHx5?$Y)q=kkTreZLg2=U1u56_-VkvwlY0
ziRzQTRL3nZ{#fSJunO$SrTx)zlcK0xdia`^!bJhv6lscR#Rf&DB5(V<?0x6K)g9D|
zSBkqkrd1ric1-0I!!TWbcKY~W*&uhNNO|(t<kkDqE6>Uv$@VM%Q2tq4AHWktzPede
z7FAt$qZ%nD6qyu_E{a^$S@M&7ha4#7#qyDAAIYKmtX)3QVm5lPaacw9LrG0VkaCx@
zIu3nQVAHUwRD15p(_H1z$cy|G)su(&RFBRYxHMlbuy^gAu<5GT=HvH{RAP4?^Z2JP
zd|)W_r*BnRsAUh&WFMk@zOX0PNgE=qYQDT<%pM7dk<=#`HoTYTecB%RP?EK)PR#z*
z-u*>M<>oTDLe}aklaKeX_#NvoI`NB*pE=|&6u574R!DvB=VCO+zrLt`PNSWDc+%~T
z?kAt$?Pl|PzTlj+eBT@v<TJ;R8|q^nc0H6VKJ_yhrfDZ*LilSPnRY#yC}RFI?Ffxr
zkH#*`zKOimL#t_oH?*&V-IE?lWo2h-cTZ>|_}4$pMT8Bo%AFZ%>WzjoJ5L`@dlTm<
z`q0hGM8Lf=SZRKX)W<n856)}`V1D7Is}wJQp4rp0Xg9f@_}EDHFlFqJT@X%|%>^LD
zVb|J(62z^8Y1qTuBOzOM#O<%^=&|(hN{DS6y8Zm0RlN2!Du?(tdG)orepez^1#j<c
zs{lKZrHbc7{<Jd2Z|e~~b>7Lgq+511BR`*J2hvlD;33!}p%+yaRibw}v7gV<Q+9G&
zDo%4xR?Q5o;Z%+({8nS>9yp16oI`tPf}jV>ljzAI7|Ul<iL=q221_0Zj=nx2Y3dhC
z|N5S5>-%gL$Ey!5Q)8Haecb)9%pzi5(Y1B^>}u-c)_fU5d9WG&TW!*o6w#Tujk}*~
z%0s`zkGpQ!S-fu7{`SrX=>_TXoErCsp>7K=6xI9YBw(rq$JQVDJfjG+nP@bvQw*J0
zfAVP5p17NpwLuUrU80Uvdw))7Y%j5Oos<7GcR@;^baY4D!kvK!>%pSm0!`tu4n7h%
zc5i3S>r}V8B6XR1O0CZ`tet;gt_l_j6NmC&oc<DUqdoMoRoJV<>Pp44^v*Lg;=-Xr
zibZR~YXRXZfxF5yEj%@}s1h-x*lE`q<%bjOv<H?(C7sCzkE^<?TN_#%U*6Bky1?ix
zL2Q>r&S`vX@pef1E|~{CrS4wY24CUVdu38F43JpYE$@|e*>~BuHuz^Ip4knqv9DR?
zl^2vf&GWDKum89a6t%DYD?$<>S$uk4{k-})4T8Xy#KzVYk`<C0t@B8!dBYyeWTq~S
zf9grwUw;<dxiB{67Rx?ygHvk*H{~O2$$8!KO)g`d%T?wv`l$Io0ms#To~!-54r@e?
z$;r0K$qv&_Ib$Irr#;D&R{Pm5$Z_18JXW#E%~<2IAjkfCW^T%eiL-K?!TM7s+?2J~
z?4~Guwk|GtnW5p$&bZMIUZz@w4_n1e8CE@3DHOf42EJt;a^Y9sYmwp`oTs_>xts=T
z<}C1FS7$N(SH`al{@LB0lhP!Czf4<(DM`ytfiQ1Rdz<zSrGC-yq6r0^C7`!*IHADm
zT58eHMMsLj2J3L6MCDH3y~^ySTdeeY{srZ2<?{m@%QlwzmeD&H<sFQ*W%P1JIpcX8
zJ*adRI8i+J^lO3dwND;-W3fq}j<uZhDm*IxWl@*PTO>{J0O|E>0!&Z8+B`BS{jGXI
zfxWkH+1j!e&rS1!H<u2X+(emh<F9Id`B3kBHtqcKdG(apcRHl}@=@OR3Y_`n+l65E
zohv2$@`LrW?>tK5m&2=R_MH|_e)$>U>>CH`TRe{myNp%8HT0&wj<0zWqyjO9(Tiu4
zfn{a$>I=)Z3lG+3B4>oKO-OousbpIHoT?*Q%ZsHF@9a8y1?SGQ&KvFHd`0}EKj)2>
z6u>}eMCem=EJ>5v88(|)&n+4Gal%rh%th_3wo4!R$~v6eJUf7(R&7xmyy=i0|G2XG
zx|&#{KIjs5;@z}xGwPuB(3zZNWrSOKTUW%jBCD`;BfzY`QgXayTF6kn>s{7yER6Ul
z?RZP|Ol%QmIkUxc<SQN?`E-iX>ITt(1<mmFZWF0GdP<u5<-5x!VDh(d;c<3@u<)LI
z+1B>K79ju2SnIBy>sSqD_?naLJ{T;vkXbwl_*?Kc4qtNv*46LPcRf)Y71lT(u2wz{
zKAgDA6)ulOY{NbFs=r>C#XWtLtTvd)sHDs&`y@0CCR|_16+KExss%n`qbV1J3d`0r
zbE+t}7|x(WdS?tK=J$B|7MlD0Ka{-(R1;epHo7OFt0Y0df*QJ5FoYstOG34WPy}lT
zMZgv!pm;1H6v1{v1XOGxD7K?UnguzAAfOyeKn3xLhENVwlOPC6nSV$9&iDQ6u6x(I
zafQshW@h&6+1cfNpZ9rumT$wn3%KBraYH(n(jxW_eHRV|Vh2tBCiW4>iFlGF$(cm;
zA%&2(k)owZq?07HnFGY6hol!IIY~{zQcNf*6yQ$z4<AYvrGRpe0%|GmDW51Pg+RBW
zyU=~<_;?!yCz8IGj&>Ag)AQ({h+ai+q<7K3)1#TQm<~+f!3<<>WhOF@GS4$_Gb@-$
zubA!3uS`AmboPAqGmbAf9AAs9-7)|15zYmhM}_;?=4tFFx)+2`iz-FyFQyLe4%+ZX
zs^v4z#`~#OUJaP#_12<D9;Z^&Ctdxfrm({5L8T~rU+cRTwl_9KghD@=#!c47g+cyV
zd^2kB$=Oq~zWVFZvj1t(wf}A9xyPyNp7N{r&MrF?CVh;xIr%mJl;~u5Au{o)Jx8y&
z;uK=fDLXlVZmoUy<0<5$pec)?eRuQ}0U3px&p3H|pW+LjazZw@Z*JY(h9J6Cm%F;i
z_G!7b*l(9~wZ2^~Cm8GG43tFGMogL{0Vi@rhRJ-`lPxdK6&>Lm;hfyu>fe3&x5`;x
zFE2JSO~RIxS6;BVVDYFZ$7Z}Tz<h4W{7N5|533dv=vCrnwEQp5UmSzhbz4drU#-|)
zGPgW`Wnu~L8K-3L)09GLQ{KSceFU$(w2}|iTN^GFca234TrL8^_g{s=m|F?nqXh3H
zzvKD`a4*5zx7~3l!Mm4*<T<Yibpf;x7-Ut3x~>VeSB5%)g$wj6eSoJ)h4=eAeTA%p
zBS>l~wITbVigNiOFzCoGp`F?{C8MyhVY4h|5Q*)4^Few+yzcK0)ra|w`FH}a5B}qE
z@MVHB!E;tP-l#iCyZ#mnKe;<e%c#Dy@<u_TK%M?%!x=|8qMa1GZz{1qH*%hQshlnc
ztcJQsjyy%4BWE=b((cLiYUS_c&p5lJr>@F!xX)zC-AOwdF8PXjWn(hj2ji*TNe>iH
zrFfI>q#DJ5nt-n>tSelM;Hx-Q9A2y1qxxwd?`)C;Q=W}}HVayL%=kHpn7>Yv5ouH6
z3$;_hiq>;?*G2e>%3~(x5_nIgUIXgI+9~zXUW5gCGbs^CtRbt0xPfn?LnFD7aRWrK
zf4mNU7P1bF5YplX207r+$kXb$fxEmzBX&ixLyvjTK!S!k-k~7{k5v7XH|*PTgac0e
z=;5MZP;OPu7CwqX({Ji;qH=X1Ymjr7_n245LpW{&F@=d1zU|`&V+!|I15Y$)#8-5P
zM=v~Pl1`|K{F-HQa9x!23hd-4ngCt=-}xq@spgMndK0V~7_*Q#X$)~cG4xb4!^GoM
zm}zv1Qc^}tS~j&VQa<at={Mp8(#t&&sV&ntoKooRrPwm&uxMC&kS|2Amo1SSBu-Y6
zH{ogZ&IOYX6`GzQjS3MS^2o}Da;?~#K-QL<HMSfe{Z2}qMyh6*z#dQcD&zBgd_3ha
zg)*f)5}YAo_TML_Oh1%nOTr{jNnj>@ZE?o}j>9+71WLZmM<H-^DW@}BgQ|Dh6fMl8
z=hH#HO@+|a#g%!jxCi-7&EsI!?!bJ!vO3MK@EUF#|H^()z`n<>Wxr>C+7WWrjO)M#
z_FM{g2HRMfkkEsC6LFZB6edcN<}q(FA2I8gtxPb$)M3Z7=dzcu*Rn&|yV>Tc>{IM=
z^-cC8HtH*S&jy|BZ|n)&nOqW=#ualTxnM8%2=^TK7FWWp=dR^-axveys7IkG-;(dl
z_u+@|!8ZN@eh)v7U&OECH}bpqN#FSsh2!cpK@T!F`?iG+NZUd$WC%B3SS`Jl6Vq@o
z2RxOs5Z`wFX}p}LwKGlb3&(A5{#fYkxSO%0z=t}cxMs<<8Kv4{Kua~VJE_<LB85p6
zdHqdPPq@A6F)lx>JLzPMc~ga_QYMM(x-8g89z-yJ7xbvG`p=EzjV=UY&66WqO*gmS
zJ8ItaK+#6%y~xedKQ`^!mdA{Lrm$tRY>vDH3rhDs8EiOG-FvE9)>*JcW<G4tgAkF;
zVzwAvN;obC{~K!5lDy8s{GC;2C2^7XO4duZOAbl^Um}teOR6O|l--gM$s`#d%E&U!
zihZ(tpX`|If((S9QrT-+hiphjM$P0@MC-PNOS5*`7JWjfe208}XT>a=pLmjDVY8g#
z6SQzfQS(sKjtWfel55GYun)|X_H8o?7As><8}_GnE#zSObZ8(9pm87`;tnBcX}B-m
zW0etH^{v1&e=Pbs%>!5Awc~>E25GIwkZ#%@(W!R3jU9d637@hv^+G02+1Nh5189Q1
zaFyp#hcC|?5a_NK8PX(b@}kCG-TgX<mhzPDp9-xVNIu#5ug*Q9q3J?5l@dI7z0pPE
zC1^%>LNCEq6hJS*=qqjB>_5iTq!(z(SdtB;t0Rjv<Ky|)))&3xlfXROQrs!Xu<y+{
zFMlLY#l`01@OPh^zsrKbvYA11o3f<=-Ysu)3N^aj07qnWDr~})3CeV3u2P5T;Zkpt
zsO8e^D=-T%yXTzuu)cyq#qHC5*x=FNh97sHT%)yE0X#-guO#982kKp=h))DU7h!3(
zRs$Yn60!==MGxz>EPMsYqILE2)?A>C;|hO-h28;_>Z9+J`%K>-okjHlAG;%VzdqK}
za@s87@0Qd56~MvgO{C`?XJ9ci8OIsU0aHca|MC6{yR*BlQ(ZCiok-P>nv=7#fa`yK
zhGsR#!6;(a)jzEFHWx){R&(p>;A-xB=J>fVWU7c=%;q4N*gc|3!fTe+z}6Nv_6uA4
z(7cX^4Z-9E=jZ?|IHJbRWK<ILks1D+-N?>80b!io3d@G8iF%Wlc#e5OF~N&>$#6}F
z)GC(kzI>a!4zB5zc<M1iG1F&U9{0rPYPH4%d+Og9GvOc;;x$V;+jaH7#Z|Dd$rJUH
z_lVk!QlgRboq?{)eMUd@IfRd%a@<{K1ewiUp?Yy>l8mx0b#b0;Xo`eFiJI<{)*FH#
z<BzEhem|JM8@2~KVMb43X5%qH9~mY`BfB#6KGSb}H1js8ZE%})q(AT&avWAuK3#-A
zO*>5^oV-5mnmcAf)~F|F<+O5Q5i@U}oQXYqw+lh+N9$wAYyNAB^$`D*SK!Q(rnxuT
zmW#3KKrg;M`(pz9DVvsYFbT&%sQJhSfB8I$_Ojh}Aze#2u!hEOe)_cvocPw%4^D+=
zGX7LNtgj@1g`yYj#~E+CD+%e-7;|Ds=2A}{>5;W{^xK|-V!No_9v(@<J||ox!Jc<*
zu6(q^&*9K`Gj=uhMs>8?DUJze9G!Jr2*A7vSv!yj<jkcYg-5IjSoyi+;VTZ_!#a_8
zlz6i*S9qpYvGtz0b9C8P`}<+%T<UFqr$l2xUB_*ge;91>bIM0bH10Rt{o}Z~^d-xO
zo^)*Tt_Oj#{Mlt+6X~q5yEds(M>+7S6Ugn_TD^5-Q)TCgw~5rcch89*i7H}eY{``*
zoRyLBy4fGC^(X3_f7!#hCj*<9^4WK7+NvAXa0a}xanKL9#!{ZyRQ2U<e#7ADAz+Da
zmqTVro742`t0uZg=%Ak7Mn5n42c2$VP=BIui2~$YZWudJ7-_SH<l_2V%q4+n%1ct|
z{LF^MDlSejPpAi$4cfa-TpX|0fOB0Ok24C<TPWJ8<SJ1^-g)IUWtlSRx$>h@rNp4d
zsQYW`>pI|sdZWQ;47wjZfeN7jH+YOTpk<_Q=mgwM90^CmfdE`2&Wd;hcMf+87fq?h
zfi~PAPM26onMXXwdQY&~glM0Cd5;iFJV1Om#nYxu7CR`@pfUQ05F%i0nbWLmx1-LZ
zHovLW^8uJgqQ%|FSw-r2`yeTDt2pp;mbWKh*Cd65gkG?FqhDlAQao7wx$Vv_u$}1_
z0T>4B{UYQ14La{WmN&>d<<xKTcc!aYKO#6v-D5DulDeVo#>q6%0UAc?830b_&*6CV
zpe3UuL)T%O8Bo50(nmQ+iJ<JEWKdr2X!QpCsE12Y_6JJUQYY@PjfibIf7aYInaXPJ
znn@Z5Ab2G!xOS8Hl9){|qSwbzUSEaXoKNYpH&Rww3ub9Up#}s%WU^*^+QgCYX{6Jn
z>m*~LZ*9pj+VSV$+2rSiVTDbcXM~sBzqv<N-M)JP1N<6z8!u+tC&hY)djAZgFX2CR
zC_~>Iy)r4+48q|w$lO`{>5zi&GEQq>ckA#*icfTwoML*pYgPeImUhh3D)-1&#&!PL
zOIUsE%)$a5vXxN5f5mrWXd_3xV$XQpl8*Arrr(mLCJSvN1CP--B916mgwH78oyuzR
zGpfv-QFwrcCrqx)oKyIofKTKk!Xk#_O)4`z3r`f{gDW$={0cErd^Mw*F`j?JEd(LG
zD7F(Hl(;i?KZUNs1h7YvAvr6#S?Xz1E_o?wk${_}?@cf=W0|e&X6ZAN<ub5AwgYa)
zMgA_!lNG@&5D@uB_K$2BZXWZVE}t*gS|(4V?OJA>E2<Em+0rJ4=ytc^OXMP~#6&W?
zTpHD6e1LXEUN);%4uC#$_)-ANG^#x}e+yv?Vfp9XbG<z+XZ_y(-pK4+`^jfUE3UQ2
zg{>@YKju+#wl{I>@TIOXu5m#jG9FL_yH^-Fr=h?RH~|l^aBg#*XMc<Roluwl7F4m>
zxw*~@xL?b3YpyGBA8xT{_>C#tokBh4s#<*dTRf)sAN;6Dr12sPjL*@M=*?$8?;A)<
zF=$IPsB)Tb>a~ApAnn8exGp#|w3HARd4n^*WuCzF0{SbeO*w8}utkWX^90%I>jIBq
zzi5u=Z02HjtS}7ydUwUS76Xqd>31iHyb0OrT+yWi`e5$K<+*XJQFNQ|!?Acebljhz
z-=LTK?vpof)gm@;J<K;h!`~v-^SLevV6C3+dk;Yj)*A+};&Dlno*)5{>==-z9mmR6
z&u>rUJk4dtJl3b;-Q_qnF0o;zm~@RnC$=mmt|9WoSvRgg=Tf@k(x;oMoIV8Jq`>vA
z?Rf4b%Flr8yjIFh(6TdA8J22JF?D00xP0t+k3<`iE6HsI$w^Ft2d_PyCDHz{b)z2}
z?EC|41Hmk?N9wR(y<hx6ztSB~9Kr*bVA6iS*hNx@@a=vq5Vdc^N_6Tb^a$xb69ipU
zygU6jGX#QjnD`hJy@n)y-VGMh2GXhnC)51t5%fKD9naL?>3P1}&NXS4&Cm66!k+6L
zPM+Q9vmLS`ru!pbl6-l~-?ex8G_HNjBrV*#41gpNjH)ggwAjA1%7W>{G(Df;wIj{O
z{LG~xkvGSi^Y`Q+1#xwh9zI5U&Sm7tU+2?in{o!yj1%J{T(>?CYh0B0IpN`Ui?2Ie
z7w`4$NQ`5Aih9ll)ar-q7u$wJHH68u5A_=&z&D@0XC|-U?W{C0YRF+<WrIa~r_6f8
zChXtt(9PB7`f%Z--I!aqJt1=a??dbwll5s}ifIntsG*7b^z0e+UeRP4IHO*pMU~1g
z?G;^A_z5o(fl<`tHAAAy2vz!6y&-}l0#9?P(s#MMnA_Z}OEuiT`K^n33app!717C#
z$9qxp4CxP-H{}yS<MMvS-0x9MneBbWt80uwCnv%Pjo`{Th0%#K`ne+QiTm-+`o3d~
z^p!D}@i8EQHJMf}I-zc5nAoRV+%iY0p%22QdWBDclPCzn(9=q$PpA51`rPumT#ucC
z`cZRF#1vQRkt=rIaiZEHSj-sD7U?n0y0HEJ?W)T){@c*KcMeR24hJ>*v+tsQM~NFB
zyj@{R^+7NEShh{4y21&SJ`EFVr?@I=-r5p&56-As{iwg0I32h%zNrWsCW(J^QE?9g
z66#w*6K1r8Zcgw}h5i<M<1SJnX-U4ru}O$*RHwnj&FRSn2zHD&=x<y!=<nNlHFM3G
z$%<R%?-WR<Lw74u#iK3lzf3sQlT`*0!|O4#z4)(nwfJvUjXtG_6URiKHX;71L#S<|
z`nNb<VRq%jvz2xVuS<_7R!%Ug8BHGaM<!P4PppzPRvCPh-LayOPpHRz-Gk;utUrDG
z%}3n=jn7=>p`fs-aF#`>lTlpWEUjPKAffnCFr|-l2Ged{vwCNxnPss{cx$(hhhwN_
ztF#g4gk4oyPBc4ZI&QU+n%NrO@&vJk|D0%eo(14ps9sgwxr%v$6v@jB8{{XsHi4tB
z2H)MNJhRFv(9KHzS^VK2IEfM$KLKdyFK@bUD@A*0|6{dt!V-PY(J|i9r9bCU>(z}u
z4zS-D<8jVk*89esz&^SpcR?4AM!PzA4gB8tdn2b>qFr{U!RWTULawz)sk|R}4aq|y
z3Pv19T_%H-BLfLx9<q#3#UBpn+Y!>SlP~{TgO*~8C^;t{=3=x3Bq)4w+7X#0jKFya
zL7;H!|Aq1#Z5Mt$?GU@SWZfCXM_utW@jUU;f;$b{aHSh={j*xUMI0+m77u5OuZZu9
zsTybks)2<2KxBfj^UJpx)O|#Pb>sNgYnt#2jJ}8@`VSnDX_9v2uWvJRxjzy=W>L{8
z7;3TE`iIV(?9%g=iIStm6VH=wF95N1CfS8Owv8kn(oGs!(EjH*YgqC%8w(r})5qZp
z!(7Q2owsvkOJoLXWx=c(%y!v9nUhEM(-tS%C0S|BL^<V>%2JIhY0Cfmhj*rFp{-uH
zJV8Dlj{N@ikCt<F-@L&U`8Bi*ZI*wQ1ErC25ff-!ts9g(J}+KtMaokaDRp2BHqa4i
zR(@8R>~utcF=~stp)1k2>2vMk(ZjG?N7c+W`b)G0?MI=4gf`mf@~3qP*Uc9_I^E2y
zN@@QX@eLU`%%MTT;C7_1_zoGkvNY<EKEY}Fn>L$)oeG<c<?)U=(-=H!x2URVE$!MB
z`gQt!(`LM(-hZP!YMZ{!=gutt6F8k1wxas@5`}vG+b(>{N_S5EV3?H#6%~AATrPDL
zs&WJtK9rrUxFT%QohZnt-ENduulIn}hwN<M*|M_(7}TX<Z5XHPn+Xrto*P1{sj4+O
zh?ZX(GJ!cW$mj#!YmuM}!Ji|aBM))#7=jmuKw{yurP<O#7QUK1v6@^#z=wRm?-$HC
znY120gnbI%-_Hq$5n*%^LzM%vg;#{oU7zDp@VBr}I4%T#<qRd5iyg&Y;=gkGO1FwZ
zqWCD>EM#31mx-T?YjOcjyI-s&F_p9yq-ncJR!WjKNgjB2A*Jjm>~Ve@#tk3=^ph4s
zC!zQGTdZ>JD#;A7VW$M<j3EIPgi3~1C1Ypnl#^99Mm|z;%9xiqU<~aJKms6J?TVVJ
zp8P<QgfvWv<<zZ6KvzCF@!q;B$D0nCDa7|XZ{2{WVI6sDoht~kzl`^uTIV_IjnC9N
zhP_3sef`Y(h2QUZTf_!ATf~x=)wzDZ<7HS!I9TY?CcT=5Ljp>@%K|VvTO;d@rL<Do
z%Br+UQks|F`kfsq-XSf7K0tQW0+P2oJL=y&;WWP$Aw2~&WO!x89WrI}zmBwJX$QC{
z#2XDa)j#1_a{XrCRXC#wfi={$dCRxpMvv(fFG8B?j|&(F5d97PTlW>RsLBj(;PzaC
zdAs&W`FHM$O*nqgX^B1&Fwl^rt=R2Hq5}@{+mS_x^%G77VfA9&G{oS-=L!P2ujIf2
z+9r@#Jq7I@g)C&gTNH-ixn4&f-8aNp>SAt%x}c{@VYnxQk%e;6SOF^J7ak2@!)e7p
zqWh*VZ`OKnZc?m>E~ewhvwqDhwzpDBsV!Y9C2fWhvmy%JQE%<F)a8dLDlV15Umj%G
z+4O|7vSNAA)}L9oJC!YQH|mpi>&EW789GT_7b}4-5*QOVF^|He)fr6KBc(wU%r<t~
z@f<~VXVZQ`EmT#3t`H9w<8p(o%Y*jvI?0mh|CGfw>W=&aRaxdR5<S?-+aBC^Agy5I
zhjZ}5g@<c&4Yrz7ES#1&eo4AKdwSPU)p^@v3lb@Drpp$jdBO=rq09Dx_(qae7m2bd
z13&CgSgU<E#YCV-Vv$(0ut7FB#MjgQ%Rc=hT?cA)k9Ibh(z2$A@i|+09*qVO$981I
zuIdJNrX2C@&_1`8M;}Uvr6;chCW1oNh+?D==M~qOlQ_~17Ov6Jb|_s*-$YmXZX7>C
z2kNyKnU5gOxRqW@Pg`}l0Gy-WTH8}_V#`XlL+J@-+9J?gpTiqbG}jB-hd5&?IXqA<
z-NkK1pSX^EG7+$<brk^0MoQPe7}~dRML4rCWk2%`pPja-U`NJ+OylDSIw+Z^aTgSE
zVdPvhi%6mz6<Si*X;)0H6_K+DI>g8O4{cfN8~PX5P}|_RV4||lx!ARcoaXLO2rPKj
z?p4we#Tc)@{$lcmiKEYuT1c(`Agl?XU2x#n^wX4xe%SdKjvV|JKlbiPu;0PFZKsN!
z$n`3^>yBp{NU@k}MJxm9SjvUYrrY~ct5E-KKPM6>?74n)TqyNBaicpUzy!`rV1~c=
zZLi!)<C!TYV`4e}H4zSXrksZJh|>-mslOG4QpX7=u~UT2b1s&{P<eu~0t&7zf`1Oz
z!FdGplm!wabj>W)zFaV`1{dw2JzZvjEn?kptWCb**nzRQib=GW-pU-3A~<v1S4R+k
z#l}~cYqkpGZe{8fJxRjc35+V%)rz{O>Y1|;p>Rx!$<QaW`f#Sd;<vbkf))7_>G>Hn
zLC7WP$q7$R6^7k#M2w^-Cqm(k%LZBEZ%!$M(f;~l({OE$=!OSNKa?kE<`Jou4`c7a
zX~aODjM8(t{z`v=gi@M*WMLXB!)p99_Lr;1e)}9J47K1rLQS||2x=`VBs|Ji*<im|
z8e3;p33O%Cs`h2pTh>}cN%B4(m7IL69ava&<H3#2CjR8Wj3)6Veqtl$SY=dZt@-~I
ziQo82S3yl!QtVX38c+E1Kau!33p>~-TEyaDwQf_iDkur%xo!9T6<_z>$nd-iJnz~T
zJg{MB>SMws2@<6w`SO{-R~GGxX=zrL);2)B^3Ize%oe5JE!)j#ZNcH+scBPlDCY(#
zXqB&J>L#AviN5r38{U*R?0;ZGoKz6_`=2wQkOyb|hIaR_>Yxo#?TfyuH^#Rwo@xSS
z5DrVH9-g^(^Q-yXW!wqh#y8`FsQ*QQ-`#L)9r{OuDV16|cNtpE$iY$}lu<SvLKz>%
zj<<cGc<2n&Kb!t8>pmvh+vSGPAlk#a@+AG~sV!eO_g5nb;+3pG?gV|(daE7n5$%cp
z=Fpa<FY3^?r+uppw-bX!*Kb>|s;{*e76i-F77YswmnmToOISQCXplC*P^|||Koitj
zUM##=T$2|n1)<XNRy~EDBHaj8qv}mzNWgI|C}}4+B&ZEj6V!yv+I%0ik2)fGU4@oc
z@(TP5ty!4jh66?=`H2Sz`FE0T+pe#S_UJ*<P0}(&g<U&BoI@Ui;BQ&B`+M*SKA-E{
zBy|pe)`Q<{--GuCuD|2$t&^_1`Qif!?hL%!Y6trpk~){qb)IH^-hx=SMG-Ad)=3WF
zAX3nSgl>xbiqo5x9+_*VqUe}`h_qbev40wedJwO)4&q=Wcw8zHpy;%<mbmEw`FF|{
zUe_fLOO0ysPFTFM!1oF=dIfCDS+%5zb4`cKNZKHwZfVmj>7AfrQZ?x<soMs;57LA@
zW>UIs$~!0&1_gvuf=f?dB9Wrx0VJb%cz11rI1+S_*tap-7$N~aV})piXcG(XNN^;i
zv+%r-n!IS5zDGs9DChZ`yRfkY&&9p-7IBLwuP8rcvOPYNI(bvQ<7}ooa}_f!Dy8jy
zQmx2KMOBxvx_y6381Y)Dhuv}~XvE7EyX8InxJ&~&8_PRJydo7k8$~%IUb_|0uqkrH
ziwh0u@bj=VNhjEXlOCC>kU7}!-YxwXpQt;iGaW)vY<N_)6~l`GPZg=yt>7vSOKYWV
z0t;Rl3&@=D^=-8lJg*b4>6NcT_<b1p0bcGrpe`==;r>V@i~k!*<EfA%OW(g>{g&`<
zm+lv7lA4X><|n?39RH_ht96?ak$7-xqSpmQ9U|}HakIF35C4hUZ~9e{oAET^9ango
zI(X>Z;Wfuw)RugKNksH-^=(>wQ~sZ)z!nt2CQDBu75sNuFIZI#?;@=zFdF}zId+nN
znGZ&5+j7jg(+AwSbA%JF-sXbfoTprl@adJP{eq-5d?p_}iLxmj{~gZKg+9g48C12F
zF+<sm`RA2Zw}9ZlwpD_z#RA3h!cROgP3HV~#qv_HE~w{0lXB$Hrc<+<W=Jf)8+2c~
zz#F#JlANKKeK8KeKWA7meneTS>W{;GF7V%ku248rvy*^DlGTzel2}Qy#EWr80yR(3
z$FwJs*OCs&kVIc*CIj}eb25f3T$Uh9m*vX-km3K7U8ZT`Ea;ysjNDKT%;k=9FZnuo
zw7gM%Tz*jwG_pQ#<p0Qr<%b!cc+VMHrtP0NI-J|j1WT1GJ{dFc>w-RO$8_wYSwD9b
z#O&-)`OPVaysR`D)dZ$|Vak@>;Mq()Y>nOUL_KY_5)uZ5%%T~q7)s33%)I!JXJlj5
z>&ab?J?@xutudW$&nORZBW`&L0l{#P0}+Tfkitm<g22Q&m+hE-q-r!6j{I&knx3(G
z-tDt(#~edenq;5aNQ70FFl)MY_>@lxD`yoF_jyxS68(CfGp;f;U<$OF1!FF$=qXgQ
zqIiyeL{+Gkr0rr>9S&!KbAk!C!8q`9dL+aZ;!aT-aGf~t4L5-}lSm@ch$zg_+)D&U
zh+gztL<zB;*haia*CpvaWqjgT%-81JKEYZI;SEU%!8>eXl>3z@ltSfGk_LaMhiPuJ
z+i}ysR?BYqQNROT$~33+pxKm7ogIc7y4G=>LTy$6nCTJ@V^Wb|=VzBtsQW}{VS~Ll
zNTEAup{(R2Pg-a~&*HF1=q+0n3a4bRL6lRde|Us-C<}PUg@+n&9Mc(#$TPUEcApYL
z=dhM$9|#E<4*nEBzR2NMu*$zVwEVc&!C(t!wq%gAC}yK>)H)ceN)EnG2A_Cec{+>-
z&KWH1Z(lN+DZnx1jf(~?@|3=wPNn<P0rU~AeiU?K@98yT+z0f$gLpFkjf;@0w_r(X
zpi!R#37Is7Ift3NVfA`nat7%J$t{-oJ5wNpF5IOB=d(?u%$%0T9ffb1-OLeY(o)yu
zL39d>5=Tj+7>Ru`5q?V}{G1d<eT=v{qTdS4uUb6kH}U6P3bm<KWEd!dp(oduy#D-U
zj}%7EhU=F-Qy3fXUY^#v$?x&yAvN89Ns!&hY5e4yExzQen9ciKh2Orwkqi9^%=jhH
zZA_i>g{zNQcbZbt|F|>t?D7CJa_b@&m&?LMj#>gNmf`a(0>R|n6&76*Ah?sjlbjy(
zEPGSOBF9BeuQH<o3NH5~+NV4?aA}+bu^n3Y$KhF_vo|p!{Gw6=TPk_qg?>Giyd*Ik
zv^<9U11otMtPIv7NB<L5M(O^u&Q>k=H@#Zr>$p;sxl(l1vfSm3W5CNQ#%?q4zUn}}
z4a<hLOPyYnQRrc@d{!8dg*&+d_a?M*<%~DlxD-Z7YRK&R0~HIZ3?E0o%9>w))n@Cy
z$6aHjz&*=ffnbkH=yUzplHfvUar06+f`w=Og6#o~9_n?Z&b}}y!SQ2@<B3-uP=>pO
zX%F49uIY6yx9S?)OB{UYp)@a*H$V<flG-)AadDHce8)(5{~oKNEPoGPHNB<Wo%&>c
zy&f)Sw$dReHqVYGyT0w}9BRg`0~NmH9#M~I5gC6;aQu=Woq;!s@RKQEqBmo5gkQ6w
zu=U2}Xwupq>yZ1SO6@D5Q=fotMS2hzRO+JB(0PN)gBGJ}P$o*9H|XoaL$lBVG=;HC
zRB9fpoIdGlOvZKFxWFhzsWSA5^4+IBygj_D7I>2gKd(&W4H+L_A79Vl;2*Op9<x?q
zu8OYO^oY*nne?IdLxTIG-q*aitIE0np&+u}8ALI%FHOd@HYUN-MXle=^?K#RNJvp+
ze31(Mmi2pqc~cg-EHw`2EjLRKT55cS29}#GhZ~`S<z~L{Kdy?P;i}D2;}X$wvp3Kn
z)fgBFOO4MlmQRt37zs6^VFH*VT5JFBvN0rQlNhdjM8Jy>&bvYj6<me<%Tm!f2EvI5
z#0dsz1g){1H~}t~N+4QIiDKA`zDS83xr&UwQnHY7VxC7~QMnKLYha^*zvH7aThpzF
zCpzEFF<Z7RC&`)OLrDuZbD`dyzi{g%II^Wu^xT#QU0)Wr@G+%<VnkUNabr=)T}6tk
zzK_|8_0!M$=SdLkE)OK04%o#wvS-@$#UXbN{l0&p8C{FL_xj>iA9@IVtve&Z%!O;E
z8QUI>=rO@`=2~}rLKx-Uz<$bh=5JSlijo^-Krd$YKmJOW(qBWa7<Xa^b&D<Ajm=N@
zBHR^V$Tu<G`99a5OLvo^#qZC7;j}KYo`RsIJ#F5Ft|QYW6-(D%T=%;b@0kDLR3W&4
zx#(u=!~GjAiMyL+Xc5lS(xir>1;|VG-|Rm2I2+)(mRx6UJ~xEBjeCImJC~ZrE#g*j
z^Lc-B`?#n!0qFBh__O)${8jwTd^Z0BAHWO-{ylyz|2_W`ALU;qXlW9pQ3I)$&`%g9
zj2D8#!ZX4f!l`0SnpD3~OAMWScH%|idq@}A&?4mW0|KH`yz7gUD?WB>KGNkPa?$#u
z;2~mdsQY@3xZq@Wr_Ja;;=uBsXbZyKZKchAD<9WvyT7v9Ns<CmbEbwO>+WQU^FdzH
z{N<D2wn^Iu%lZ2CMKMXiZj*3hvZZ<=vYIBbz(A^)KIxYiYMR>nJ?Vk2{t=z$xlfJ;
zyQLs0#<ANmb;ZXnx*cz5Tz5g<<#O*M*i>Ec_JPUqk6+{uwU5iCbMb~2-GpP33ldb9
zTqdcJfF?<gWK?1(GnYBaJUk<ck-GmK;Qy2XnM@)3B5OjY$mhr*!d4ELat#cMro1YD
zAb%!5i~~wJqMWR>QMTY#D7STl_aWNFyIx!Tt~{%>_w91|Lmd03SOyWv1}Ka!uB^;y
zwi({>*{F8gePHz<500;2L@qFxIb;~@=07U^GF=-EX>de?%tUZV+iSiHaA9~+1G(T>
z21RdZVW(Nf?}ZYwcP_Bv%pv|F!93F{V!>8(7Kjs>8x;48$R0w`4Czp^$#nfoW7&_U
zszVmdPBs?iX+|?mp8a%(@|RkYDHg9pfs%BF)&$+_rihk>vT91Nx{K__a2_72u>iD1
zE+MmUoo#CGMYz>C10pzwOU7m6uHf!Z1UAoH-%SFG=_9z-No=~>`vYa==dU8Ym4$&f
zcPl5YCvGQJP5*sbMKa+pWuLN$SVw%#R8X$17A1#;l}IlHwXjMH!8Fo5(ozz4Xr8wK
zy@ZycT2D|vw(tIk1X18kzLP~EwLG$0VZbzH#)N0N)DlC2+}y+bk_qeoj#za?5wxK*
zV)Yfp#({`6R}=-CkodK~n;bH+bC1GTFm@yp>gSwuPhbWX{}*FOLpAXN41r4JY7)xc
z&l+KsPEb$|#`m)BRc@H)xmg`1EO2RM3iCY}SZpQ3Cz*g?KJNLjTfsoq_=7a{%2NFZ
zQlv0ncnKeReR9F&Kf3It`^v({IYw|uTbm*Zpzgg$IPMVTTham;Zfq?Bz<2~*Ot&xr
zMS*}(V^L!v%x77!tc;F3%xX%V=V98BnrxK8%FJMOw~i0q^az-k&37~d)3VFLqAa2;
z?i5z<uHmFAvcNiO_8R{cYqBpUuQb>I>t9jgdp}Z8mb4?aZgmPie4C)VW9z+?uCYFj
z@!^voI4K#9X`jvS_yEUMc^<(1h9q|3q9mv4Opky(`#`osjlf}160JJZ=kT2bdr2&f
z?cfT?Y=<E4fIJ6Drkf=8;3{6l)|{K(dxROee3xl|s3_p@xn(C!uO8g9E`6I|O;Ds5
zv)d%LwTsKwGU)EE*;$r^PbS!L>^L13cm>QJURelHg~uHx!8~33<l_#;(+idPH|(QH
z$8VfUTqM!gKI^b99n3D&N^_FHY{g(nOzAxDeG<(NGNv@y1TT@)OWGt?6uaaJx5XhZ
z^g8C$#6&m+UMGAJYfGm5IkkjVLhDxGO^!Rfl-{Hf@I`_m0iTRV$O!pJrP|}4E;~+R
zXl#_d0eZii>~XS{_?{Sdrd1~rr*)n1DjYB>&97W)zfQP5?HmP<<+~s$#1OJTfe&Ye
zD`MVu*ns_S!WD<#Yo+af<0m-$ex5fpY=#@jCi~xXunxcP?tq4VxN*~a{~Hv3@?D@|
zBIoeinH;{07KdIjb@lklSHB{w(<rBc&O$H6R9bR_pTK;xpo7)VLRk|zoGZp_7{HZ4
zuUfox4P(uEx}5d)IsvBEkp-Iza)}{BY6U?&wl0bD$B+Cmq6Se&nd(*GXC4f~?ynr^
zuvtHTEoe8Kl4H^x)(;-qv+e8UaHXUY^%(~9ygSDWzaqHFxFDa-kyCpRg>=YQXFcxZ
z=>)^_wGY1P<>7Alc8<JH#ht<(|HgM2i}+})fk|5j3kHmc*2HP*=^u?gauIDT&j?8;
z-ilkJUh9&Ff+<xG&;`W%Q44TyO_t--MBtDGh|h2z;7K+YtRM6@rACnUkY4zPv&>lR
z9hg2xkQ#H7c1L-IJ#G8Kpm{Wy_D!$yd>6CXc6|tUzhSc}C<G7b1q&;g-~y6io0LkK
zD(iPL3%}Ixfutm%piMfFGL<ryvV^jh5=z-k0WFkMlxvhSiU#VUqG0HHeuAm=xpdUC
z-j^OgkEDaW^dofWe59K(H7JxpdXg@48gm|VDRZ+RfEmd|!E#<QoLg(CBC42;%q}Ka
z$DYWZ#dctOumjm!*@<j(9YtfkvFDkvp?V$l0<s|KPj>Cjnd-)dT{+#6-=x+_tDg|Q
zeTuBRZZl}jJ$c|9MUy4A<L<SD>E>Y>DK*y;Gt!{eW9sWB{6*<zRXzK4MczQuD!7Rc
zxMbG9t#)dEjG$?iY_TwQ|I=Lpf@n+umuPbZ=Hv?m5usojTBLi#>-gJr+EGE1RJvLH
z$AZII$BLR@w87Z+y|A%i@Z#CDw$nom;IE5h@we)~gq1f|D`qQdxtRA{)LT8w)hxa3
z_>1`FtNB~_v3yEgeq0@&FXDq@el`Csznee8pClv-$wFW%`<W7bOn5;k7D|PHEA9{u
z3H8NQvY!dX)Nt`EdAfMHVyIqpQ~SdqKu|vyH;D(|_7!xqN7$3Nn~2=y5;&k`BsYiO
zx7jhjwf0)#vbG25lH6iD-Hxl02lou`-Cu?lhg8c0;7At#t_2QZafK~G_uxj9xaEUK
zX$xGBNn3V<p8&!Y_`uRui|tfZf1$1-R5}B_SJ7Y`Qmgngd$cJev9sb$Xa)Dzip)zj
zr+ng@v9}g-V@Wl^<l#)+&PKQ*!*tG(_K7ea1m}fMREq82DN{GeilEj_b)xL3Y`OfM
ztU~rm)-D5v^OtoD4o&$GiF23hP0Gb(1Xk<fGH$P}892G)j(8F{Ex#_u^gMr8QLiVN
zD^bbM8!8DTxFD08isGaOPfS{b35CH*%}Vvpdr5r-GKoU+MWQYHjU*D$@$GL!H;Y+(
zE3<jVvkRSx*KW!?-p(%dSTPkJZs~{ik0v<cY3o*^Cjtj@=le&hKwW*cdN1MZmuSlZ
zG{LMIQi&9H))%urL)^S@Cc(n09xbrf*>~joH%LA8lTL0LbTi8rJ};s@@9tQ=m+#!L
zdavJ!ddi$HBo->EQY}>{4@xlt3qZbRmCD&*^Vj%Z*KfZ~8m0K0=l+UvcRQk|J7G>W
z?59vjY%oRRtgZ~Vj8!Q<a~`Nnd=aoYsWK132m@osaUNvEgg%=dZh?tCs}7Xv`O>0&
z0_oT&`o6WNOJ|pEdWPUg5JosC#R@EpD(aC;%MK4j;q%0?!{bI@{?+!T$%Bu_UYa9I
z!CZm{M(83f^4NU201_St4?fnbc5uPywvRs#)74rR@NDvihHWO{78BwTe5gt>`L{S{
z+Ft*O2mQ~g4+l6()#o=l|1s64`I2+=o)O30Ui~mCARIWc;*Fn-@>k&1*f#-^>y%>G
z@~>%3H><(N4&0v@!tKwn2}txFOjZj9AUg;iQuVHy;V_cvqdy00S4>TtHCP!4V-RFO
zu2$o(O|Y0?krsA6EzzADJ_=r%uVbuZG}r$*SQfb@SkA_R*vKkfg)iHexSefay&_N$
zb~NV3z58Zuf%lo^B8q>I215vTCw$gzff&M<mU4>r(IOAKKbw|-IDv)a;9bhW38ORX
z)vLZ%k+3K#u$UvAU06|ngX3NW068S4qJE^i`r8N8#cB}E_^5TpHDr6iY`ym$cm3Ys
z%Qj!<Kbx%Eai#m3N>R$t%3Kz*J!(x=wHjrQf41a8Y|=b#c%P`Qeu_(wrEPl$SQ(Z*
zyNGjlpiikat~5QLJ2}xs`gi&@H`_)a%4pm!67>;ax~Fv?p@^iKD{drpk-pFMp1`g_
zS0+Vx7Lhjk;v)aJdUy(D4rMWA4P}%`;Vg2VZz-e<pwNkJbi~V2fG&qIl(y}YIk@Ix
zKt1C+bV-K)V<FdZN__0uQ^Q{wEs}+O1lVD_cjPfs{uu7f`?9bjPd>6l3j)V79xGzq
zW*C8qt7=8Q-n^oN^rfCWNf6y4_Hcdaz{`6NCD@med^)v+UPEv4=_7P_F0VnB*MJ2@
zSf&Z{r;~Lvlg%{eF*~G(>(4Q7t#2_Xkut$+W=F7D$*N(5J(+F8c4dPJ!j0^mY%W{C
zzQoo9V8J_fFZ-q($E}mYj8<-NVyO8?JxLn(H1|3e1olk>wcPhymx4aRH|_-fOg@Qk
zPU8pgBl&yzM^1dO_yBp0%lR))4Bb}p5#c_ZjnGvHRtPr=cM7>MA@q{4G*|!8j90>T
zApneT!ppOngqCSy0dc9AF8)4u=@vWG&?HZP?diQQh-197TkaeZXNvR1!zJPxF=x?_
zz`@wNvAjJGKkT~qo;ii;<B*$99ysmxeT!B5b+;dA1FXfjhl`j5C&@?m)wW+2j<2@$
zgKB|k9wx9Z%Lu;SU6$>VrJh}+a*1c`($oQ8+QNmF6s!v+N#nz`mo@n?VP%RJB0#(_
z$8wwOfb1v!tx861ly%8g)0kw8{MLGVjy158FOqizC)@s9^5n?DRXLIQO#VUspCu1)
zRjyEORL)>>l>+4@WvNmcc$m&6^(n`dcvM3dO|U~3p@ln{gius7U!nfjhj`?~+>A94
z<!^<1d1A|gb+~9;3->q<T*TeMRpQ>@{=p5ybw_EgUF-s=WHr<Gd91&Vm##=p>$09r
zRmv0|F^g!sLEro2lFe?>m-<=j-LnZakh8%jJLEfSV?g#20YEl|X0H&;IPA<o81Lip
zb5y2#2iVT`TrUlr1O3VH_uHSSCSGR+NqW#fhK<u__dzECq?&-?86ovu)}-c^oO+7&
zw+5$F$N355fRmK@yDK5l#5zH-lcW0;WSs!Y9Zx_Um{pd+SFph%Mn2v$uRG)|$AKuC
zA3uNh{5S+DG=9dZNMH<*-*S(f9U#wy%>uc#CSZWPnzx!ae|HV9h6fV-S2I=zJdfSN
z+QRA&>*Rq>UYU_beoDrfo^K}lkgS(PNFwNa1a2(Bzp@Znh>RR8*CmwTEmtI$yv}z@
z)5d*gm2`)kE%futTo)W>H-ERVu*_uZnt-m)<bbWCc#mNXIDiZm_8d+kzepmh@IJs^
z0*QHO!0|<r{S6h~)3DP1fS*tQ9rr*`p)T}L-Jz-QE-#Yw9cPC^YMe0_Vd00A>wiKQ
z*TaVnHh+{fotp0}EChI)c-fU8X;2xVM116InTffDaIJqoE0`G*Wb{0CM!g55-RmTG
zlE*7&#E{PYrKLWzLasd)dO2hUD<Q~34g%$n_pHG=C_@hUec%@8k9;X_k@w5BgNmIV
z$zYa8tE?)*&o7*SksHfxKR9!|oH=C#yf@98Cgb1<G%W&cq6MBIU<l5%Rualg#$Otz
zru4~HrQJh4jz9Nqc~{BA21h=R4=0ebLR&M}e`h6y6N*f}@9bxl5o8>n>J*>|nQtMd
znu($ai9_=fjt+n=g*hV$K}QEHU`)mteu6}3=#M-)K%nJ}l$k&SLy$8<DM}w&0zZAK
zp<#s}XDE^7QynhY(o(}aH|bw+<;2#UZ+sN3;hBlH6k3SjsR%TNV2NObfXWLed?J7-
z!j|??@{!z61iXD1YGBo5P1?sVv7p?1FF0R5&*x&L<==a4RK@!)Z^UmR%uk4()tV(u
zBAz66hd4x=ygRke6q}`#)DwfI0_UKwvnotA`GV@LU(Fx|h2m8DI@@Scx@$z5{gOiw
zPfd%COmFsZ7b6J9(R_9O(pw=W%eB9nJ=YMc4aXhvsg5?$@C6lMXLbZpq9}1k{0GIv
z!EEr9c%L%m^s{;LQ@swsq@e{m!D0kE!zqNWcWD!0YZ36I{7vd3#T^MWIk8MbLSSw?
zc_U&b8fU#cj=|jROan5G1g9<B+Z!t|O<1Ph(hmH;bp@Tv{X_WY>E4T{`EsW5=vmvz
z7ka1KK4H#Qe$6tUAGZ;ChnO=RnWz_m&IB4311?j;Vo=JoV!va8pDYFzY$vui+d{OF
zjoHaYN$R68r|25Hj1A$CAK5DQ7Km@O<+^cKayN0!cX5-riG`=Q*SP33K{XfDbKAIs
zTwVS&{ycszpUwv?ejMZx_{kI4S(rxCgGET4sL*lV;zt0&i5JYnr7kv~P3Gt5sjWA5
znonzS$dT7Nn?wm4&O^7>4|=`coH^8ImujZ=o_SVKA_S?9cDED)2Q6daVu!qab{pWf
zr1;TEh?jnNGG<TL2IV2i(XP*g8Oz8g$Z#RBvoQY8W#r|{T<nNCLr2nYPQQ0_PgiE0
zLO}k!wzl|K@6<_;8NkwamdwS*?d698+b0t{+^WHlPrOWTaFWdX>_%irF;R?}B}M}Y
zi^aa;_2TW~gJN^OSR^hMCuiAv*1Zz9i@{g1o@BaYzGRuiPXghL60lyWiFN(NNcT&$
zWS~-JCtD<2Ez?C~Wy!K^8TE>+MfsO37%@<^Ki78N0%P7dxtUzA)5T`Ka2fOvZVD3~
zgIPoipXE1SX|mbD#?<zn;b9;AC2xM60VNyc#M6c|&#ZcVPKSX)eh8@J3*u4m8(0bH
zBEm=z?;JS*cG2-Jiqy{p7xD~`PJ@nf-PWJ7TPS+Xk1H?+?Jk;7%ny2qo%nM409CiZ
z0t8A<kmpa(ovWjvhw#?jp-7{pk)8K-f@y^8>B(+FW%TQ1E)SJ2lu(#>28u;Z(AlW_
zC{KIVY_MVMchUhge5{hR%*BE9>?L7?t5(DDFS1F0qkX8iK@v{iK(R``Q|^Rg;LPb7
zdI%6S&r7OuX_@Pd6rRQ1#67}+&O<gvN^2!vgQ~kkZ<lVIt=0bgD-Uzu(=5<=Tm5E=
z61CIa)-dR?+YR4_omv|72wnO2DD~k2lO)_S;n7o*k#RvD`SD~R@OVkQxOiN!tzJa<
z$|H+Z+VxMDp5!!>{|h?&HBYys`n2p3{+Jl>Pu~xGHqM7hLqFh$R^KF&%&i1BHKvR<
zhtXB<`9v_*@K@gEx4naMh)A)bUI{kGqtFG$vxIZ~v^mE;Vr@j*>Ra*4qL7CmNn4XL
zbUJf9%q<LA#`a?$hX~k41aF{-WeK((WMebg`MdsZxWBDoz`~6V=lX7HtaTa9K!H5)
zFx-t8>{0m#8t$%gygFNN@;j%oA?khv1i%&@iX<wE-iKX&>7!E+r1#kmGyPficz?gH
z7B_CdY3kWAlj9KN`Xgb;M)X_UW>((riC1<vA`#-aa>4o3z&CC_&CdhB8ZLC)y;B1K
z5}FOH7>kurzQp%rj>QE?D9yngrfC@=R_~n9Ul^3_Jp)#V;X+I!6wW|WbI9d_U9Nh^
z=<7fJV^V9d+ijLxf8aC09L5~RxPXCora9AYCtrVh#{F6fGCD-%a=08K@{dVdTKZlc
zJ(w=E-};##mLE&W=AU%(3M@-5K61ll>K1HZqJsMubN`QYp*bf%Bm|hlss50MoMNK=
zKFm(HYss9fGFsOK?k}iHys6G7I*OJ-KD%x828!1LaG-q-!#&qPVLk2hG#%0wPy8&B
zuCp}Q{ak^coz`x7tVL7X!B^q|rvRHP`|YL?^gePPY;ivqHER8~-cC4smf<Qmg_w6O
zrHVWmp$3^B@|a{Y3XT_Vd&Q9(n-H~T6Dj4nOU@)Ju=nai3>WJCbqzh%F5UEy{=(Nn
z`koE~WGFrK(?*j8Vyf6*93gJmBhC<?72gzp<ec3jLyxCO`!y^j#2;WQV#WutQas)q
z7kK|0``L>TU?`cS`?mfVBeBh`C`EZBcsPz(w>OI!M4j-@0D8!7$bjnemmlQ0uXMJc
z`Y;BzeTaV3`zl0zJL@VgI$OJ<W4(oRkf|Gk<{FeYj$XvWb-)j@uP+uTmD+xn;}?7f
z)uQ@nxDzj86U<$r8W9npGBUmO3L8O^mD$Q;;l~&$j96B~KNzVJ`$qYU{ei7yBYP~Q
zT843JzaneDI=5<oIDT9Z#*OD5=APk75=#@0F{-%Zjr+ppY|VELRBfHtuut-ZtIhZ8
zx9k8#H4$kGBvgsNB%fcxuSo$jgh@E6&|erKgl^DGTf<>PC1i#@`GXt;`>gf3@MDgJ
zv`089teFWcq~{7v7?&iak|&aPk8qy>%*T9TE9t_W#BGx7k|aq~C-2UL>XkMj?#n4}
z(5(AM)|5=E9L23TDqul%0I&tVSHbs>*B^#RkNTHp4P?-U1nb7VD#*`o3U_`=*FeFc
z8E|J-ugV+h3iYa1z@3%7s#U$JHN7f7xWnjG`9ry#UR5C6fzkr&dR4)YW*qLUhx$0Z
zs*Sy>O>hU&{cq`2F(K(c+}YZzf=V>ey{Z_vv#nRPy;r5-IEOnw3C?%-s^Z|zPY!bp
ze>vPq{6Sx?;Vy?e8tU?1)gee+4tIW1p(ppMQs7Q%uPUuq^@GX08H&PaURv;70MF&D
z9OzMdLS2CI9`z5Mfg=#&59$9k?EfNa+b{;fK+S>)y{b`^`3BSc7y<Ipk^TipN$CLQ
zVO1~!40=_x?tY|sKqKK}syX%lyfk&Ic~Rke)0`$ubrk|&R|8cpG%xMty{aY68c;LN
z&hY>1aHyyRmdtI!cvmA}65RfIxaNpW@co~c=3<)L(!5OI`~2)Cj9&x-_A>!^3u>Xo
zdZ+^P4Bi3(ZhHX={M%>OgqaM_x&UqmLK^_jVKM#xwLrs<R}lG!J_FQHu<QC_G6M=I
zG^0>@K_kA9gTUJB9H4g&*dtz*wwNFqVuS5h2jNiEyhputQp<=v6n}`e)I$)GMtuP)
zQOHN<AaCX%t>4PqhUb}Lf-wE|h^~0j$1#McqX+f4qHMLks{cT)Y0V>=O$gE`5SU{8
z>=A=dWB<pP2|JDLF(nmxI8)5SK=ZCIDhiY!K=6+-2MPAtM~qpIwR5MeCd_!O9YR0=
z<G6mAfjtIUK38igZaxUX&9wTeo@bwT2$zY=$F)N7hI4Jh-j${p#sXqF=_RR!1Y-Pn
zb}^*=q_*Mgw&9Q#>}ZdAg6mJ0-z`p{LpkN+n1#St;tnMYdv%c{W$WxQ*mNUd?b86d
z8%lSupa6>897=}l`UW+S<ZQ^>8;PpcfS7=0R6dF>#CB6i+CvB>)EU7{(9zPy_#;}@
zh~^~P@FW2M-3O&q!r-h#w4)g{!dc@M;*y}G1*(l;5M3RNHlpkL@3(_BdMmpiNpQr_
zfGDmRor;?a^_w(b2d)O1Q+od>7x!1Wn$b~>Yzjc<f)-C@BB;<O!D~_vIRjKv6j+k~
z6s6!tQTE1wor5Y!rqztb8{s~TW4rtLb~>E{LkQ67?#CcH0E>li@SmmE9O4I1c%wf`
zRK5C}DySJX#X*4#3>V~mAC=jeb`I=C03IHS(YDspluvUI6n_Z-=I~fwfU;p~cQibM
zI=mU34%MVk3}}&$j6K<A)Hxu8rKG~PEXPbhb$~8LTMwfJ{(EgNz||a`0CxW8HpLil
zXGD46ZH$BFU_JEL!8*`M^>3-Yf86NMKCt7HiUnQ7YIv{4IQeM04$%78`V9_puoWW)
zs5V9$tAoX2;RQeas8^K=!~yhYBKj_XM!{ouz=sxOKB$Vog18|Ss~Mf8`0i;A;Nx(I
zoyd$Ys_uTQp3cu3*Iakq&jzDmb|%Ab|EOW`Mb$QJ=%$SzI%|Ocud4l7NHiMGSrgzb
za$^4TWi7?`1DezRdU{X^?LQBF4PZhRFAz1Pg01NIk5ebLjQsd6s-=z9#$d6qZ~Iw$
zn$rh@9~{$B02XA)k4Az8RK@o%n%}n8&mu#QENq_gNO;<aZ>oJj4Zo_XD%hG7atr_!
zdayMis5z9IF^2`3plMIPTDIm2{$M6+NVNyR!fVdY2Uvj7TmY6H3w|{R%_ZP-jE0rD
z3ncvKIchF|QU2!w=IE~r{O?akbAi=>2$|kM^pHwJ*LTqhhXweg)^A@_=8t;RziQ||
z4My{QUm%Ck01!W<+6mOKRGNFi0`nv{%`vc4|0$H_yPle+xf?#H7=W^XIqbz@Q`!5o
zjY2U#UVrO1#2aWXgZ<xPY3}D&^Y(!q193NOGw@13eiT3M3f|P%k80D@nnY7=KWgoN
znzgUy!R&z7{r}yp0|5$;f(4BOZ()f?RC`gCKe)jD1{*qT<sZhCntp($=>|S_4xq3j
z@PfZE6r+RHhWCKgJUfl<987xuf4u(R_2{6|9++tQ0t1sQp;i)r>ne?9hRF+zKeTAZ
znV**V#xF2Q&|>qiWy$0hm;z{V``5DC=mq8jv^f21*+h7O!9PWy&*(qr*@1t7@rD-P
ze=P@aFEGcUWzoNu<AyIVHPGVvujTxt7nm_<q5W&QIq?N%SuFzW|Fx7)c!AjtEikU|
ztIW?0USQ5bi^IQ`X8jkKzo2FIzm~rL)7<$$M^)W<{JxunaZE-K`QsvKBE*6bfpP*7
zL`q-;EfG+nXiFMHGWjDzk|q<BXpHFw)I~k^G;P;&>~?#K?x}4T>t@~c)Oy%<+THGw
z3Kb;T2C{q17BpfXAz_SRnEm|To6MURvMuS^J?n6O=VZR`ckl1s-~Ii2_g&^)(W%dZ
z+?qfxcslihe>K$n1d;(#1hPDV%%0S#p9OJxUXa$Qe+sf7!Lu^8Q@;=5^jw(IsdN6#
zurj%=)or>{mw`BQ4;r2N+aOZjt$~ypn#y~UD9wnoEdji(mRInZLvt)}J=W49Kd;fK
z>LVsuY@Mo&;U2!y5elcFY>R1~x}f5*h;t#8m>1?5Gd<NR&|_lotVJXCO4<`?Bz&aZ
z#}~5WcJLbIE06Ggr}!2A8@p;IRR%b2f-4&J3}#kb4ll%#UTP4qv^r{5TZ5QkUAzN#
z>aE5lgTrQxGLRf^6@QsnHZyBfE&O+QItX5Rb&E{DltFS%ldGS#I^8KDeHYGMi)Cyj
zG(^p{QL`pp<uf|mTn(+clrLImFuvW$dzkQ(&g|>c6>mn9G*%Wfk5%|o;2KqU9n&y&
zAj;8nv?gN8@0bKt%R&sVPE|xqU$tm(XrU!XmcwD%TCJL5W++AB!CSLcLDa1GS%Y6}
zG5Z-qtcLD(BADMuDPsfyRZ_3A)qNhlJ!a+;xA{R(H8lTH{+2S>SPFWsQ2|4RJc@<5
zlA+uq8d4?f+bWg(eF@*MNV+agn*2R)%y)6w<m=1$KEy4=72F|6jFk7kRWW)r7a$w$
zHpmK=#W@U{u%Cy-Xt5Nve#rFPsr)DugNXB#6cTglqh@W?l*X75?;2xgN32u~50&Lt
zs$fKHnO2muw}VE?RYAlAx6O$4aYSy$!m!*1wTa~kNwrl=i_al-zWwG;hTbAWZ&Y<L
z6J--^J!(_T<h+!{3n!CA(njW1LiUrCynV#X433x~wVTU~(vc^AQZFtTZ!879U)^tM
z-~Rgn>u)he!A0x#-w#-Si&G&?e5RMGLX}X5C?7=}Gv+ofehIJQ5{6>bF#uPSCI531
zE{!(f4gjZ?DfL=Y8bRVr+#7qgJ9J%T!pg%7?Gl$PyWSZwWlb6gF2gcBJ1oWhQWRMZ
zKd)?~t1qJ7-Ug)Yj3VebWsRX4FjD1flKY{gND|qp>LRA7&l9o)E*qzVh}{9%s5v`@
zUYSCgD#r1c!H6}31y(BwO-_f@dI6kdqdHCtUYnYZHTr^SBH!`W=FwT5F^jWf=zdq!
ztc;o^vZ~v?;#2WZBlDz^u;!^EbUQ4ikvdU1jIx4JQHUKV?v^knF``;kM9mXTq5)zv
z!K5;wPdAST1}-^+ijEFSHJ1(#Wb?Yp#uPOjA#~VuW?;M#5&Gd8HiPOoa?@473cXAI
zpfZ`o-C}Nbo0+PKR}rhBKcLFHRf%lG1`SnVsQ9Q?Bt+nJl`K)V1aWJPMh1)R{ynO~
zqfRt=#8*ZnldQhX<th%QX{MDfA~TU`E9w@jwb&%DUlf64HA|qX92wXOzoA&>iZn!~
zNfRrE+T;9VtC+2%J!<r-3a|3nTC`2l?L1a)6xqU0%|2pQjF?NCVuO|3tc)trX(ApK
zlUGE_G961a2q-Ik+J+;ci=wp&u5$Gac-ZP8!Cb*xq(^Nl&QfNvL}8H**Q$Kh#PTa*
z9Nt$TS#dX7k&JSj*9qY528<=^SZW$IU~J=XK5TLFvs@9gL<)&uij}NJYlxtjzn!Dr
zs6S(#KijApFc`*WR}9j5uhjF|Lj$$SkR)xJUlF6Funm$ixf_v`fybAqMx25wrCK!%
zn`wb`T|)y~mKDLpEK8UOS)Ei^HEhyIazrk>7wk^aOEV2wU4@5HSTHg&znUIOlPW+8
z2trYulh`hdcooaG15FfBp0LQ4kJyz&A?`{t-hspgQhk?3&E3{^fZW58Wsz*FtWajd
z%a7@W{euQ_xOMK<VoM|b_^>{hSyGaOL<r)bUj?ME6U>;T6fsec%$7vLYe$8rrGa}(
zhB$0yjV2*Gx^8Bk<iY^DBZtxPs3pWxu%E`IDpINHrRpnES-VMl@v2T(3LRs-57sER
zxwVY^b`^VsDOfjc<sMZYGySSGO&O((3c;vt1L~j2>0nH!$CMk2wE%qQA7db$z!M*X
ztnW@K1B3zH%PJ8>NL_J;0wQ8aMbRRqD=O}l7LUZp<@wy7#p0pU>2UlUzJ#&anHhD;
z63D$El~_n^WoGP~8C7s#K?s&AfwiG17FO#zBgm?vD%j9tN?snVlH?X6`MccA$imQx
zR1h(-8!_s5A%W{Oa+R?b$U?TrKFxOV7@{H9q$hEDxrwv;fm7D7nWYynMA^+fB?GlH
za$G~gQmGyeNRedMNOm&VB6{N{94A3@_zwO)G*GXOH>w>Gv(blH7*gBJv4*q-o|Y=6
zUM+G?G{kTZ0vSOj8y<VucZz0gcc_pBE*mlBqCJ{;(Z2(p3#x?jRyC3h?Rx}q5b+PD
zW#@RSCP);-f5Q+{)P=Le&PrvEh)Cq-Nv?;*NNjHx6E2bIiHcCEB#)4aSA;|mH0Zh+
zY362R1vXq59cZqOn2WemLa1+-RV1P|_~XtjUQ;G1t6uG5nlbYYOz@Ml6r(;M+pI-r
z5^6?oeP~@^tEif2RVF(W$%T-(MZ|UsGLL78%44onrp#3w#J;qUA7nD*0tFoX-60dK
zp(YPlp;w$qZdhayP=cMzE@Otx%y6N~Q_JW$&ysjK(@a+j&zRE0Uf~U{3Mn&W@LfWY
zebrq*IalofKW6Srm3ZW(b6=_qxiD^<WmYAAX`5xX8IRj0Uo9S2PQEha!UXk~ua?v3
z^7Y3LtFa9sZ7y5TbXlk~rVMUka&EC^I#D^|{}YuXZ7y4mZFtMArJI-_yUhdz<*ED$
z&B(HFX+nU*4aM7fN4-sDiO1Z+#c9?>@jEN}32X>H!ND#46SQErnV_KMmUm55-8i1?
z^c|)cl*~W+d5S-T<RdqrZ9G?cv(vDiI<2>m;NN!YBOo_$)kfX~IS-PPKssnO>(@LE
z0J+`nXG6En1(}uL34{1uNNQoX{xV2rg2xZ?D9E2BkT#HZkk2HLFvx2zq$ul%J`6HH
z!PD{eZv8RH+60nupi|%acJeIRZtl_#g2*nRJ+DEKXF(PxkPdqODM)St>0_p+K%ALQ
z`}m-axDY>x=WsGl2xO)U*$*<$g&YORcOlyt^Lmi$6ViVOQU&5@KJ~6{{S1hsF+a#l
zAdXhsKz`=pxj;X^1(Cf@d+yV+k7#`)d8UQ0veyZcmEZ}}&jt`@E%H9|b6pLR0gt`z
zMIenXBm~mxLfS!|bs?!6yY&ko*Ck}74j<GVAY!xj2>tLJa`EKBbIQfj22Tvc8DSVC
z^Ea-ZH+Ab<Tu3?nYypuct+uQenR^uoXUa#V)9N`_tMI`t{e2MG{IXkx&|xo#>@wR(
z`NA%J)jP>Hb`+jlL2gX&e2A=a5NA!>ko6RZqm85V^F0v94)d-*qB~vv_!o8Q^B}TW
zXG?E~C--Rbc>Mp=r5^y14LqC2-_E>1Rwa-yJcryoKkL%QF?+Y#ZWRVu2_g~0Mh1~p
z3nEViY-Ht+*{uedn?RlcISArtwP?-}{W}n6UL7D)-c3e&Xte@lPNJVM`q>8J*n9_b
zZv>HzO<Vec*E;pfAdd8DbC2j>fjF`rgXbKG;{_pjW*tvnoueRYL7XUYh*otV&U&S8
zCPslc9@maV{TRfts5hTKsDBBP$_Q;w3H}|=8$cXwgqQzZn;?!i4XO|I1rSH8ZBIsY
zZWq6;mYC^_Age%}h!p;de!UUIi5uaTAzcgNM7Gq^L;5=)&fFJ({1U{`a}mgC5GV3?
zAj{XCEb9<RrVB}ZwqM^2;`m_SGyQr4$n3<J`)E}Oa#cbbInVX$Mi)=cH~aP1K%Dr~
z{{DyhRS-uTk41*`Nf2i(+Wvk->wiyPi`0!Vodx3b(=#usSAjUv`@VBg7lJtbWc>9-
zUFSmbK-xhZi<-TEkM|!y9IY0CoC0x1*fFEkJN>uG8Y?f`<GleSNgL0P=mHSO-*dh;
zqPKxK7QSt6R5yamNa)ZHvJb?WMe6rky)S?`-rbfJ)4v9B{4{*3)ob)5ug-puEEnSM
z-|M{%#2HUH$o(MBc=mTa<^76_Ck*n8i>K|v)83a{Jo`Zox_JCAw0gTioH6$t-{-yR
zL~<NUeXZ5I#)a(vt3BRbE+qA>R_`k=q~}-ryeD0Vf6_kh)RW1w`ew)UdJrdOwtcVF
z`>2a2@9BNsS3#0=`1aG@_dpzf5B(&fRc~^(3TN!|UJK&PYxayMy?22)vces$-c}b+
z#_M~$uP1m|YWC0+M-S}>0}?yZph=KyCCVchFLWg&`?C@^WUo&wVlpHVLCyzFg|2}l
zW=KR58=478Zj}|48co((EK=qqo-5vx4M_}<h#*!k-XXC-B9_DrskbDLNkqK~S^!C$
z6zi89D1IRkSspKm_GIRw56PIaxgr}X%OQEfc`LLMx($+C^m%ACQ~<4k)<S;hc4!^6
z9=Zd%6Z!(Q0V;&<f;K{%pv}<T&^^!=s0g|jx)0h4-48tgeG&Q+v<)hTz6_N>4??BT
zcBl+0hXPOqR0&l<)zCwb?0y8Holp%_3)Mkif$E_KC<HY^yP$`mN1)wM6Z9zb7}N|s
z4z)l}K&{YMp+AS(pgquD=t)RE#jE<wdgJi>0|!r^8(GJ#%p(jT7(=HG$S*y>zytjz
z8+Ud5w)k|_FkN;$)O20^Tyi_E$J@z6oE2)<M``q3&KW)x`XE!)O;(F;kbS0Cu2TVz
zD)p&_9##F(P4rdkW2zOeWU7TXsalU(bhWDf#HXqYFn}d$ac-Gfc7qDA@48537<!wv
zx4GujpfO}^07eQ`wj9+dQ;D~uvn9i$&6rtmjXGYgZuY5~e)e&i*N(6ad7Io}9b04F
zuIaP%&?~!`Ru3`RJY=g=&JD$TD5i_i9wLiWya(BU5WC-N*ghgUl#lp}kbD+F`@hw#
z>prxf$FH}Lyua+$2SCIUZKVB2eOmbCQ)=<_9T<z`y*3tU>llk1eSIvF^Tt>t^pmkj
z>JuM~kzVxGvB>_mvB==wv55cau}J&AWJG3%vi_tfByI1V!}%L)*EE%F-!$t{tH;^`
zH@xE>;be3Cj~?O7h;?-82R|Z@eZuzI&3ceqipO*Fog<w0PW`X*-12jzGkshkj71;r
ziT&p%oSaJIOlWwx<)D6-4t*RwrNf+m9MtdStLgDGp;J;Ncz!|jkn|Zfm?Y?b`Onq#
zm-@Lb{S+gUuqL7G)Ad=+a6*jm3?r04ZjaD)9@h2c|3{CKHj0*X>3hxOW4C~xnvaYy
z%m}x;M)>F?o;F~0oUMELKSm7o`?FW3VY*(-k`vZ*dSZE#*G;~E^2*_heUTThRg3o;
zRg*8CJ~yAA+A)IVvG-Qb|3>D^3wNIUp>fZTisyFd8!H<&=XB^-)Ba_}@X6?b=kcQ7
z4b40?IODB;)1P}tKfz%lJZjxp{o=}Z^wEKSGdpGKfRS<AJG$}X=`&*e=Anzn-k)^W
zgYA>mtPx}Gl-cLbzU@)!-8EUevQ*~9tgC-<Oh5i5L!J1|IriprIB@>i7S1jgQ}3os
z%jLW+N4UQ`rS7FE*IqMpW4}50-6=mPgZm}f$)DG6md}H`?H7isN}1ZsLFEufrOh)_
z-pD*>mQ#{+^_%-+3%c}aPC*_1=o|;1mVEnac5Qy}L2piWdg|3j`pu&;?r7iY=j_>I
zo~f&@4~PF*pI@In)a04U1Av^xUAkm|ApX$2IiJVT+bgr@{hnLGd2^!vezOlVt~GhF
P;<v8<)R@Kp{XqU3^e~$O

diff --git a/src/main/java/org/olat/repository/async/package.html b/src/main/java/org/olat/repository/async/package.html
deleted file mode 100644
index 166a16bfeaa..00000000000
--- a/src/main/java/org/olat/repository/async/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head>
-</head>
-
-<body>
-
-Overview description of asynchron background task.
-The business-logic can create background-task, which will be executed async by the background-db-updater job (QuarzJob).  
-This job runs with a configurable interval. The task will be added to FIFO queue. The queue will be checked by  the background-db-updater job.
-
-<h3>Class Diagram</h3>
-<p>
-<img src="doc-files/BackgroundJobDesign.png"/>
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryAddController.java b/src/main/java/org/olat/repository/controllers/RepositoryAddController.java
index d6d6ee85546..8d93ae2f344 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryAddController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryAddController.java
@@ -116,7 +116,6 @@ public class RepositoryAddController extends BasicController {
 	private boolean workflowSuccessful = false;
 	private Link cancelButton;
 	private Link forwardButton;
-	private Panel panel;
 	private String actionAddCommand, actionProcess;
 	
 	/**
@@ -284,8 +283,7 @@ public class RepositoryAddController extends BasicController {
 		repositoryadd.contextPut("typeIntro", typeIntro);
 		forwardButton.setEnabled(false);
 		forwardButton.setTextReasonForDisabling(translate("disabledforwardreason"));
-		panel = putInitialPanel(repositoryadd);
-		return;
+		putInitialPanel(repositoryadd);
 	}
 
 	/**
@@ -312,19 +310,14 @@ public class RepositoryAddController extends BasicController {
 	 */
 	public void event(UserRequest ureq, Component source, Event event) {
 		if (source == forwardButton){
-			
-			//FIXME: this code belongs to the repo manager and not here!
 			// finish transaction and add repository entry
 			if (!addController.transactionFinishBeforeCreate()) return;
 			//save current name and description from create from
 			String displayName = addedEntry.getDisplayname();
 			String description = addedEntry.getDescription();
 			// Do set access for owner at the end, because unfinished course should be invisible
-			addedEntry = (RepositoryEntry) DBFactory.getInstance().loadObject(addedEntry); // need a reload from hibernate because create a new cp load a repository-entry (OLAT-5631) TODO: 7.1 Refactor in method getRepositoryEntry()
-			addedEntry.setAccess(RepositoryEntry.ACC_OWNERS);
-			addedEntry.setDisplayname(displayName);
-			addedEntry.setDescription(description);
-			RepositoryManager.getInstance().updateRepositoryEntry(addedEntry);
+			addedEntry = RepositoryManager.getInstance().setDescriptionAndName(addedEntry, displayName, description);
+			addedEntry = RepositoryManager.getInstance().setAccess(addedEntry, RepositoryEntry.ACC_OWNERS, false);
 			addController.repositoryEntryCreated(addedEntry);
 			
 			workflowSuccessful = true;
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryCopyController.java b/src/main/java/org/olat/repository/controllers/RepositoryCopyController.java
index d87e14a3f1e..53b0dc4bc87 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryCopyController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryCopyController.java
@@ -42,7 +42,6 @@ import org.olat.core.id.OLATResourceable;
 import org.olat.core.logging.DBRuntimeException;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
-import org.olat.core.util.Util;
 import org.olat.repository.DetailsReadOnlyForm;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
@@ -59,10 +58,7 @@ import org.olat.resource.OLATResourceManager;
  */
 public class RepositoryCopyController extends BasicController {
 	
-	OLog log = Tracing.createLoggerFor(this.getClass());
-	
-	private static final String PACKAGE = Util.getPackageName(RepositoryManager.class);
-	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(RepositoryManager.class);
+	private static final OLog log = Tracing.createLoggerFor(RepositoryCopyController.class);
 	
 	private VelocityContainer mainContainer;
 	private Link cancelButton;
@@ -142,9 +138,10 @@ public class RepositoryCopyController extends BasicController {
 				fireEvent(ureq, new EntryChangedEvent(sourceEntry, EntryChangedEvent.DELETED));
 				return;
 			}
-			newEntry = descriptionController.getRepositoryEntry();
+			String displayname = descriptionController.getRepositoryEntry().getDisplayname();
+			String description = descriptionController.getRepositoryEntry().getDescription();
 			//update needed to save changed name and desc.
-			RepositoryManager.getInstance().updateRepositoryEntry(newEntry);
+			newEntry = RepositoryManager.getInstance().setDescriptionAndName(newEntry, displayname, description);
 			RepositoryHandler typeToCopy = RepositoryHandlerFactory.getInstance().getRepositoryHandler(sourceEntry);			
 			IAddController addController = typeToCopy.createAddController(null, null, ureq, getWindowControl());
 			addController.repositoryEntryCreated(newEntry);
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java b/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java
index 639343a17f5..82e01a29b07 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java
@@ -958,16 +958,14 @@ public class RepositoryDetailsController extends BasicController implements Gene
 			}  else if (cmd.equals(ACTION_GROUPS_TUTOR)) { // edit tutor group
 				if (!isOwner) throw new OLATSecurityException("Trying to access groupmanagement, but not allowed: user = " + ureq.getIdentity());
 				if(repositoryEntry.getTutorGroup() == null){
-					RepositoryManager.getInstance().createTutorSecurityGroup(repositoryEntry);
-					RepositoryManager.getInstance().updateRepositoryEntry(repositoryEntry);
+					repositoryEntry = RepositoryManager.getInstance().createTutorSecurityGroup(repositoryEntry, true);
 				}
 				groupTutorEditController = doManageSecurityGroup(ureq, false, repositoryEntry.getTutorGroup(), "groups_tutor");
 				return;
 			} else if (cmd.equals(ACTION_GROUPS_PARTICIPANT)) { // edit tutor group
 				if (!isOwner) throw new OLATSecurityException("Trying to access groupmanagement, but not allowed: user = " + ureq.getIdentity());
 				if(repositoryEntry.getParticipantGroup() == null){
-					RepositoryManager.getInstance().createParticipantSecurityGroup(repositoryEntry);
-					RepositoryManager.getInstance().updateRepositoryEntry(repositoryEntry);
+					repositoryEntry = RepositoryManager.getInstance().createParticipantSecurityGroup(repositoryEntry, true);
 				}
 				groupParticipantEditController = doManageSecurityGroup(ureq, false, repositoryEntry.getParticipantGroup(), "groups_participant");
 				return;
@@ -1021,10 +1019,9 @@ public class RepositoryDetailsController extends BasicController implements Gene
 			if (event == Event.CHANGED_EVENT) {
 				// RepositoryEntry changed
 				// setEntry(repositoryEditDescriptionController.getRepositoryEntry(), ureq);
-				this.repositoryEntry = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEditDescriptionController.getRepositoryEntry()); // need a reload from hibernate because create a new cp load a repository-entry (OLAT-5631) TODO: 7.1 Refactor in method getRepositoryEntry()
-				this.repositoryEntry.setDisplayname(repositoryEditDescriptionController.getRepositoryEntry().getDisplayname());
-				this.repositoryEntry.setDescription(repositoryEditDescriptionController.getRepositoryEntry().getDescription());
-				RepositoryManager.getInstance().updateRepositoryEntry(this.repositoryEntry);
+				String displayname = repositoryEditDescriptionController.getRepositoryEntry().getDisplayname();
+				String description = repositoryEditDescriptionController.getRepositoryEntry().getDescription();
+				repositoryEntry = RepositoryManager.getInstance().setDescriptionAndName(repositoryEntry, displayname, description);
 				// do not close upon save/upload image closeableModalController.deactivate();
 				updateView(ureq);
 			} else if (event == Event.CANCELLED_EVENT) {
diff --git a/src/main/java/org/olat/repository/delete/ReadyToDeleteController.java b/src/main/java/org/olat/repository/delete/ReadyToDeleteController.java
index 5c1d0794579..0149c89c11d 100644
--- a/src/main/java/org/olat/repository/delete/ReadyToDeleteController.java
+++ b/src/main/java/org/olat/repository/delete/ReadyToDeleteController.java
@@ -115,7 +115,7 @@ public class ReadyToDeleteController extends BasicController {
 				TableEvent te = (TableEvent) event;
 				if (te.getActionId().equals(ACTION_SINGLESELECT_CHOOSE)) {
 					int rowid = te.getRowId();
-					RepositoryManager.setLastUsageNowFor( (RepositoryEntry) redtm.getObject(rowid) );
+					RepositoryManager.getInstance().setLastUsageNowFor( (RepositoryEntry) redtm.getObject(rowid) );
 					updateRepositoryEntryList();
 				}
 			} else if (event.getCommand().equals(Table.COMMAND_MULTISELECT)) {
diff --git a/src/main/java/org/olat/repository/delete/SelectionController.java b/src/main/java/org/olat/repository/delete/SelectionController.java
index a62c2881bd7..384e98cdc2b 100644
--- a/src/main/java/org/olat/repository/delete/SelectionController.java
+++ b/src/main/java/org/olat/repository/delete/SelectionController.java
@@ -153,7 +153,7 @@ public class SelectionController extends BasicController {
 				TableEvent te = (TableEvent) event;
 				if (te.getActionId().equals(ACTION_SINGLESELECT_CHOOSE)) {
 					int rowid = te.getRowId();
-					RepositoryManager.setLastUsageNowFor( (RepositoryEntry) redtm.getObject(rowid) );
+					RepositoryManager.getInstance().setLastUsageNowFor( (RepositoryEntry) redtm.getObject(rowid) );
 					updateRepositoryEntryList();
 				}
 			} else if (event.getCommand().equals(Table.COMMAND_MULTISELECT)) {
diff --git a/src/main/java/org/olat/repository/delete/StatusController.java b/src/main/java/org/olat/repository/delete/StatusController.java
index d45e9a20053..a106bb8ff02 100644
--- a/src/main/java/org/olat/repository/delete/StatusController.java
+++ b/src/main/java/org/olat/repository/delete/StatusController.java
@@ -106,7 +106,7 @@ public class StatusController extends BasicController {
 				TableEvent te = (TableEvent) event;
 				if (te.getActionId().equals(ACTION_SINGLESELECT_CHOOSE)) {
 					int rowid = te.getRowId();
-					RepositoryManager.setLastUsageNowFor( (RepositoryEntry) redtm.getObject(rowid) );
+					RepositoryManager.getInstance().setLastUsageNowFor( (RepositoryEntry) redtm.getObject(rowid) );
 					updateRepositoryEntryList();				
 				}
 			} 
diff --git a/src/main/java/org/olat/repository/delete/service/RepositoryDeletionManager.java b/src/main/java/org/olat/repository/delete/service/RepositoryDeletionManager.java
index 857d176ed35..9fefa92288c 100644
--- a/src/main/java/org/olat/repository/delete/service/RepositoryDeletionManager.java
+++ b/src/main/java/org/olat/repository/delete/service/RepositoryDeletionManager.java
@@ -261,9 +261,9 @@ public class RepositoryDeletionManager extends BasicManager implements UserDataD
 	}
 
 	private void markSendEmailEvent(RepositoryEntry repositoryEntry) {
-		repositoryEntry = (RepositoryEntry)DBFactory.getInstance().loadObject(repositoryEntry);
+		//repositoryEntry = (RepositoryEntry)DBFactory.getInstance().loadObject(repositoryEntry);
 		LifeCycleManager.createInstanceFor(repositoryEntry).markTimestampFor(SEND_DELETE_EMAIL_ACTION);
-		DBFactory.getInstance().updateObject(repositoryEntry);
+		//DBFactory.getInstance().updateObject(repositoryEntry);
 	}
 
 
diff --git a/src/main/java/org/olat/restapi/repository/RepositoryEntryResource.java b/src/main/java/org/olat/restapi/repository/RepositoryEntryResource.java
index 18ea491a48f..dfd07a47617 100644
--- a/src/main/java/org/olat/restapi/repository/RepositoryEntryResource.java
+++ b/src/main/java/org/olat/restapi/repository/RepositoryEntryResource.java
@@ -223,14 +223,7 @@ public class RepositoryEntryResource {
       Identity identity = RestSecurityHelper.getUserRequest(request).getIdentity();
       RepositoryEntry replacedRe;
       if(file == null) {
-      	replacedRe = re;
-      	if(StringHelper.containsNonWhitespace(displayname)) {
-      		replacedRe.setDisplayname(displayname);
-      	}
-      	if(StringHelper.containsNonWhitespace(description)) {
-      		replacedRe.setDescription(description);
-      	}
-      	RepositoryManager.getInstance().updateRepositoryEntry(replacedRe);
+      	replacedRe = RepositoryManager.getInstance().setDescriptionAndName(re, displayname, description);
       } else {
 	      String tmpName = StringHelper.containsNonWhitespace(filename) ? filename : "import.zip";
 	      tmpFile = getTmpFile(tmpName);
@@ -245,8 +238,7 @@ public class RepositoryEntryResource {
 	      if(replacedRe == null) {
 	        return Response.serverError().status(Status.NOT_FOUND).build();
 	      } else if (StringHelper.containsNonWhitespace(displayname)) {
-	        replacedRe.setDisplayname(displayname);
-	        RepositoryManager.getInstance().updateRepositoryEntry(replacedRe);
+	      	replacedRe = RepositoryManager.getInstance().setDescriptionAndName(replacedRe, displayname, null);
 	      }
       }
       RepositoryEntryVO vo = ObjectFactory.get(replacedRe);
diff --git a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
index 75fb8a6a07e..b57cbdab685 100644
--- a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
@@ -522,7 +522,7 @@ public class CoursesWebService {
 				courseConfig.setSharedFolderSoftkey(courseConfigVO.getSharedFolderSoftKey());
 			}
 		}
-		RepositoryManager.getInstance().updateRepositoryEntry(addedEntry);
+		//RepositoryManager.getInstance().updateRepositoryEntry(addedEntry);
 
 		CourseFactory.saveCourse(course.getResourceableId());
 		CourseFactory.closeCourseEditSession(course.getResourceableId(), true);
diff --git a/src/test/java/org/olat/commons/coordinate/CoordinatorTest.java b/src/test/java/org/olat/commons/coordinate/CoordinatorTest.java
index 4290ff545c6..44f243bd90b 100644
--- a/src/test/java/org/olat/commons/coordinate/CoordinatorTest.java
+++ b/src/test/java/org/olat/commons/coordinate/CoordinatorTest.java
@@ -31,7 +31,6 @@ import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 
 import org.apache.log4j.Logger;
@@ -49,8 +48,6 @@ import org.olat.core.util.coordinate.SyncerExecutor;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
-import org.olat.resource.OLATResource;
-import org.olat.resource.OLATResourceManager;
 import org.olat.test.OlatTestCase;
 
 /**
@@ -347,7 +344,7 @@ public class CoordinatorTest extends OlatTestCase {
 		SecurityGroup ownerGroup = BaseSecurityManager.getInstance().createAndPersistSecurityGroup();
 		re.setOwnerGroup(ownerGroup);
 		RepositoryManager.getInstance().saveRepositoryEntry(re);
-		DBFactory.getInstance().closeSession();
+		DBFactory.getInstance().commitAndCloseSession();
 		
 		// 1. Do job without doInSync
 		System.out.println("testDoInSyncPerformance: start test with doInSync");
@@ -392,12 +389,9 @@ public class CoordinatorTest extends OlatTestCase {
 	}
 
 	private Boolean doTestPerformanceJob(RepositoryEntry re) {
-		RepositoryEntry reloadedRe = (RepositoryEntry) DBFactory.getInstance().loadObject(re, true);
-		reloadedRe.incrementLaunchCounter();
-		reloadedRe.setLastUsage(new Date());
-		RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
-        return true;
-    }
+		RepositoryManager.getInstance().incrementLaunchCounter(re);
+		return true;
+	}
 
 
 
diff --git a/src/test/java/org/olat/repository/RepositoryManagerConcurrentTest.java b/src/test/java/org/olat/repository/RepositoryManagerConcurrentTest.java
index 00c58052656..32073b9aaf6 100644
--- a/src/test/java/org/olat/repository/RepositoryManagerConcurrentTest.java
+++ b/src/test/java/org/olat/repository/RepositoryManagerConcurrentTest.java
@@ -32,9 +32,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.CountDownLatch;
@@ -42,13 +40,11 @@ import java.util.concurrent.TimeUnit;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.olat.basesecurity.BaseSecurity;
 import org.olat.basesecurity.BaseSecurityManager;
 import org.olat.basesecurity.Constants;
 import org.olat.basesecurity.SecurityGroup;
-import org.olat.commons.coordinate.cluster.ClusterSyncer;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.id.Identity;
@@ -56,19 +52,11 @@ import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.Roles;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
-import org.olat.core.util.coordinate.CoordinatorManager;
-import org.olat.core.util.coordinate.Syncer;
 import org.olat.resource.OLATResource;
 import org.olat.resource.OLATResourceManager;
 import org.olat.test.JMSCodePointServerJunitHelper;
 import org.olat.test.JunitTestHelper;
 import org.olat.test.OlatTestCase;
-import org.olat.testutils.codepoints.client.BreakpointStateException;
-import org.olat.testutils.codepoints.client.CodepointClient;
-import org.olat.testutils.codepoints.client.CodepointClientFactory;
-import org.olat.testutils.codepoints.client.CodepointRef;
-import org.olat.testutils.codepoints.client.CommunicationException;
-import org.olat.testutils.codepoints.client.TemporaryPausedThread;
 
 /**
  * Initial Date:  Mar 26, 2004
@@ -191,9 +179,8 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 	/**
 	 * 
 	 */
-	@Test public void testIncrementLaunchCounter() {
-		Syncer syncer = CoordinatorManager.getInstance().getCoordinator().getSyncer();
-		assertTrue("syncer is not of type 'ClusterSyncer'", syncer instanceof ClusterSyncer);
+	@Test
+	public void testIncrementLaunchCounter() {
 		RepositoryEntry repositoryEntry = createRepositoryCG("T1_perf2");		
 		final Long keyRepo = repositoryEntry.getKey();
 		final OLATResourceable resourceable = repositoryEntry.getOlatResource();
@@ -212,20 +199,14 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 			}
 			long endTime = System.currentTimeMillis();
 			System.out.println("testIncrementLaunchCounter time=" + (endTime - startTime) + " for " + loop + " incrementLaunchCounter calls");
-			sleep(2000);
 		}
-		sleep(20000);
 		RepositoryEntry repositoryEntry2 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
 		assertEquals("Wrong value of incrementLaunch counter",mainLoop * loop,repositoryEntry2.getLaunchCounter());
 		System.out.println("testIncrementLaunchCounter finished");
 	}
-	
-	/**
-	 * 
-	 */
-	@Test public void testIncrementDownloadCounter() {
-		Syncer syncer = CoordinatorManager.getInstance().getCoordinator().getSyncer();
-		assertTrue("syncer is not of type 'ClusterSyncer'", syncer instanceof ClusterSyncer);
+
+	@Test
+	public void testIncrementDownloadCounter() {
 		RepositoryEntry repositoryEntry = createRepositoryCG("T1_perf2");		
 		final Long keyRepo = repositoryEntry.getKey();
 		final OLATResourceable resourceable = repositoryEntry.getOlatResource();
@@ -244,95 +225,52 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 			}
 			long endTime = System.currentTimeMillis();
 			System.out.println("testIncrementDownloadCounter time=" + (endTime - startTime) + " for " + loop + " incrementDownloadCounter calls");
-			sleep(2000);
 		}
-		sleep(20000);
 		RepositoryEntry repositoryEntry2 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
 		assertEquals("Wrong value of incrementLaunch counter",mainLoop * loop,repositoryEntry2.getDownloadCounter());
 		System.out.println("testIncrementDownloadCounter finished");
 	}
-
-
-	/**
-	 * Test synchronization between same RepositoryEntry and setLastUsageNowFor, incrementLaunchCounter and incrementDownloadCounter.
-	 * This test starts 4 threads : 
-	 *   2 to call setLastUsageNowFor, 
-	 *   1 to call incrementLaunchCounter 
-	 *   1 to call incrementDownloadCounter 
-	 * Breakpoint is set for 'setLastUsageNowFor', all other calls must wait.
-	 */
-	@Test @Ignore //this test doesn't test anything, and result is fully random
-	public void testSetLastUsageNowFor() {
-		Date lastSetLastUsageDate = null;
-		Syncer syncer = CoordinatorManager.getInstance().getCoordinator().getSyncer();
-		assertTrue("syncer is not of type 'ClusterSyncer'", syncer instanceof ClusterSyncer);
-		
-		final int loop = 500;
-		RepositoryEntry repositoryEntry = createRepositoryCG("T1_perf2");		
-		final Long keyRepo = repositoryEntry.getKey();
-		final OLATResourceable resourceable = repositoryEntry.getOlatResource();
-		assertNotNull(resourceable);
-		DBFactory.getInstance().closeSession();
-		long startTime = System.currentTimeMillis();
-		for (int i = 0; i < loop; i++) {
-			// 1. load RepositoryEntry
-			RepositoryEntry repositoryEntryT1 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-			RepositoryManager.setLastUsageNowFor(repositoryEntryT1);
-			lastSetLastUsageDate = Calendar.getInstance().getTime();
-			DBFactory.getInstance().closeSession();
-		}
-		long endTime = System.currentTimeMillis();
-		sleep(20000);
-		
-		RepositoryEntry repositoryEntry2 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-		assertTrue("Wrong date-value of lastUsage, could not be before ",repositoryEntry2.getLastUsage().after(lastSetLastUsageDate) );
-		System.out.println("testSetLastUsageNowFor time=" + (endTime - startTime) + " for " + loop + " testSetLastUsageNowFor calls");
-		System.out.println("testSetLastUsageNowFor finished");
-	}
 	
-	@Test public void testConcurrentIncrementLaunchCounter() {
+	@Test
+	public void testConcurrentIncrementLaunchCounter() {
 		final List<Exception> exceptionHolder = Collections.synchronizedList(new ArrayList<Exception>(1));
 		final List<Boolean> statusList = Collections.synchronizedList(new ArrayList<Boolean>(1));
 
-		Syncer syncer = CoordinatorManager.getInstance().getCoordinator().getSyncer();
-		assertTrue("syncer is not of type 'ClusterSyncer'", syncer instanceof ClusterSyncer);
 		final int loop = 100;
 		final int numberOfThreads = 3;
-		RepositoryEntry repositoryEntry = createRepositoryCG("T1_perf2");		
+		final RepositoryEntry repositoryEntry = createRepositoryCG("T1_perf2");		
 		final Long keyRepo = repositoryEntry.getKey();
-		final OLATResourceable resourceable = repositoryEntry.getOlatResource();
-		assertNotNull(resourceable);
-		DBFactory.getInstance().closeSession();
+		assertNotNull(repositoryEntry.getOlatResource());
+		DBFactory.getInstance().commitAndCloseSession();
 		assertEquals("Launch counter was not 0", 0, repositoryEntry.getLaunchCounter() );
 		long startTime = System.currentTimeMillis();
+
+		final CountDownLatch doneSignal = new CountDownLatch(3);
+		
 		// start thread 1 : incrementLaunchCounter / setAccess
-		new Thread(new Runnable() {
+		Thread thread1 = new Thread(){
 			public void run() {
 				try {
+					sleep(10);
 					for (int i = 1; i <= loop; i++) {
 						// 1. load RepositoryEntry
-						RepositoryEntry repositoryEntryT1 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-						RepositoryManager.getInstance().incrementLaunchCounter(repositoryEntryT1);
+						RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
+						re = RepositoryManager.getInstance().incrementLaunchCounter(re);
 						if (i % 20 == 0 ) {
 							int ACCESS_VALUE = 4;
-							System.out.println("RepositoryManagerTest: call setAccess i=" + i);
 							//fxdiff VCRP-1,2: access control of resources
-							RepositoryManager.getInstance().setAccess(repositoryEntryT1, ACCESS_VALUE, false);
-							DBFactory.getInstance().closeSession();
+							re = RepositoryManager.getInstance().setAccess(re, ACCESS_VALUE, false);
 							RepositoryEntry repositoryEntryT1Reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-							assertEquals("Wrong access value",ACCESS_VALUE,repositoryEntryT1Reloaded.getAccess());
+							assertEquals("Wrong access value", ACCESS_VALUE, repositoryEntryT1Reloaded.getAccess());
 						} else if (i % 10 == 0 ) {
 							int ACCESS_VALUE = 1;
-							System.out.println("RepositoryManagerTest: call setAccess i=" + i);
 							//fxdiff VCRP-1,2: access control of resources
-							RepositoryManager.getInstance().setAccess(repositoryEntryT1, ACCESS_VALUE, false);
-							DBFactory.getInstance().closeSession();
+							re = RepositoryManager.getInstance().setAccess(re, ACCESS_VALUE, false);
 							RepositoryEntry repositoryEntryT1Reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
 							assertEquals("Wrong access value",ACCESS_VALUE,repositoryEntryT1Reloaded.getAccess());
 						}
-						DBFactory.getInstance().closeSession();
+						DBFactory.getInstance().commitAndCloseSession();
 					}
-					System.out.println("Thread-1: finished");
 					statusList.add(Boolean.TRUE);
 				} catch (Exception e) {
 					exceptionHolder.add(e);
@@ -342,29 +280,30 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 					} catch (Exception e) {
 						// ignore
 					}
+					doneSignal.countDown();
 				}	
-			}}).start();
+			}
+		};
+		
 		// start thread 2 : incrementLaunchCounter / setDescriptionAndName
-		new Thread(new Runnable() {
+		Thread thread2 = new Thread() {
 			public void run() {
 				try {
+					sleep(10);
 					for (int i = 1; i <= loop; i++) {
 						// 1. load RepositoryEntry
-						RepositoryEntry repositoryEntryT1 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-						RepositoryManager.getInstance().incrementLaunchCounter(repositoryEntryT1);
+						RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
+						re = RepositoryManager.getInstance().incrementLaunchCounter(re);
 						if (i % 25 == 0 ) {
 							String displayName = "DisplayName" + i;
 							String description = "Description" + i;
-							System.out.println("RepositoryManagerTest: call setDescriptionAndName");
-							RepositoryManager.getInstance().setDescriptionAndName(repositoryEntryT1, displayName,description);
-							DBFactory.getInstance().closeSession();
-							RepositoryEntry repositoryEntryT1Reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-							assertEquals("Wrong displayName value",displayName,repositoryEntryT1Reloaded.getDisplayname());
-							assertEquals("Wrong description value",description,repositoryEntryT1Reloaded.getDescription());
+							re = RepositoryManager.getInstance().setDescriptionAndName(re, displayName,description);
+							RepositoryEntry reReloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
+							assertEquals("Wrong displayName value", displayName, reReloaded.getDisplayname());
+							assertEquals("Wrong description value", description, reReloaded.getDescription());
 						}
-						DBFactory.getInstance().closeSession();
+						DBFactory.getInstance().commitAndCloseSession();
 					}
-					System.out.println("Thread-1: finished");
 					statusList.add(Boolean.TRUE);
 				} catch (Exception e) {
 					exceptionHolder.add(e);
@@ -374,38 +313,37 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 					} catch (Exception e) {
 						// ignore
 					}
+					doneSignal.countDown();
 				}	
-			}}).start();
+			}
+		};
+		
 		// start thread 3
-		new Thread(new Runnable() {
+		Thread thread3 = new Thread() {
 			public void run() {
 				try {
+					sleep(10);
 					for (int i = 1; i <= loop; i++) {
 						// 1. load RepositoryEntry
-						RepositoryEntry repositoryEntryT1 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-						RepositoryManager.getInstance().incrementLaunchCounter(repositoryEntryT1);
+						RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
+						re = RepositoryManager.getInstance().incrementLaunchCounter(re);
 						if (i % 30 == 0 ) {
-							System.out.println("RepositoryManagerTest: call setProperties i=" + i);
-							RepositoryManager.getInstance().setProperties(repositoryEntryT1, true, false, true, false);	
-							DBFactory.getInstance().closeSession();
-							RepositoryEntry repositoryEntryT1Reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-							assertEquals("Wrong canCopy value",true,repositoryEntryT1Reloaded.getCanCopy());
-							assertEquals("Wrong getCanReference value",false,repositoryEntryT1Reloaded.getCanReference());
-							assertEquals("Wrong getCanLaunch value",true,repositoryEntryT1Reloaded.getCanLaunch());
-							assertEquals("Wrong getCanDownload value",false,repositoryEntryT1Reloaded.getCanDownload());
+							re = RepositoryManager.getInstance().setProperties(re, true, false, true, false);	
+							RepositoryEntry reT3Reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
+							assertEquals("Wrong canCopy value", true, reT3Reloaded.getCanCopy());
+							assertEquals("Wrong getCanReference value",false, reT3Reloaded.getCanReference());
+							assertEquals("Wrong getCanLaunch value", true, reT3Reloaded.getCanLaunch());
+							assertEquals("Wrong getCanDownload value", false, reT3Reloaded.getCanDownload());
 						} else 	if (i % 15 == 0 ) {
-							System.out.println("RepositoryManagerTest: call setProperties i=" + i);
-							RepositoryManager.getInstance().setProperties(repositoryEntryT1, false, true, false, true);	
-							DBFactory.getInstance().closeSession();
-							RepositoryEntry repositoryEntryT1Reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-							assertEquals("Wrong canCopy value",false,repositoryEntryT1Reloaded.getCanCopy());
-							assertEquals("Wrong getCanReference value",true,repositoryEntryT1Reloaded.getCanReference());
-							assertEquals("Wrong getCanLaunch value",false,repositoryEntryT1Reloaded.getCanLaunch() );
-							assertEquals("Wrong getCanDownload value",true,repositoryEntryT1Reloaded.getCanDownload());
+							re = RepositoryManager.getInstance().setProperties(re, false, true, false, true);	
+							RepositoryEntry reT3Reloaded = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
+							assertEquals("Wrong canCopy value", false, reT3Reloaded.getCanCopy());
+							assertEquals("Wrong getCanReference value", true, reT3Reloaded.getCanReference());
+							assertEquals("Wrong getCanLaunch value", false, reT3Reloaded.getCanLaunch() );
+							assertEquals("Wrong getCanDownload value", true, reT3Reloaded.getCanDownload());
 						}
-						DBFactory.getInstance().closeSession();
+						DBFactory.getInstance().commitAndCloseSession();
 					}
-					System.out.println("Thread-1: finished");
 					statusList.add(Boolean.TRUE);
 				} catch (Exception e) {
 					exceptionHolder.add(e);
@@ -415,21 +353,41 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 					} catch (Exception e) {
 						// ignore
 					}
+					doneSignal.countDown();
 				}	
-			}}).start();
+			}
+		};
 		
-		long endTime = System.currentTimeMillis();
-		sleep(20000);
-		RepositoryEntry repositoryEntry2 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-		assertEquals("Worng value of incrementLaunch counter",loop * numberOfThreads,repositoryEntry2.getLaunchCounter());
-		System.out.println("testConcurrentIncrementLaunchCounter time=" + (endTime - startTime) + " for " + loop + " incrementLaunchCounter calls");
+		//go! go! go!
+		thread1.start();
+		thread2.start();
+		thread3.start();
+
+		try {
+			boolean interrupt = doneSignal.await(30, TimeUnit.SECONDS);
+			assertTrue("Test takes too long (more than 10s)", interrupt);
+		} catch (InterruptedException e) {
+			fail("" + e.getMessage());
+		}
+
+		for(Exception e:exceptionHolder) {
+			e.printStackTrace();
+		}
+		assertEquals("Exceptions", 0, exceptionHolder.size());
+
+		RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
+		assertEquals("Worng value of incrementLaunch counter", loop * numberOfThreads, re.getLaunchCounter());
+		assertEquals("DisplayName" + loop, re.getDisplayname());//check if the displayname is correct
+		assertEquals("Description" + loop, re.getDescription());
+		System.out.println("testConcurrentIncrementLaunchCounter time=" + (System.currentTimeMillis() - startTime) + " for " + loop + " incrementLaunchCounter calls");
 		System.out.println("testConcurrentIncrementLaunchCounter finished");
 	}
 
 	/**
 	 * Compare async increment-call with sync 'setDscription' call.
 	 */
-	@Test public void testIncrementLaunchCounterSetDescription() {
+	@Test
+	public void testIncrementLaunchCounterSetDescription() {
 		System.out.println("testIncrementLaunchCounterSetDescription: START...");
 		RepositoryEntry repositoryEntry = createRepositoryCG("testIncrementLaunchCounterSetDescription");
 		DBFactory.getInstance().closeSession();
@@ -462,8 +420,8 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 	 * Thread 3 : update access-value on repository-entry directly after 200ms
 	 * Codepoint-breakpoint at IncrementDownloadCounterBackgroundTask in executeTask before update
 	 */
-	@Ignore //the test works random
-	@Test public void testConcurrentIncrementLaunchCounterWithCodePoints() {
+	@Test
+	public void testConcurrentIncrementLaunchCounter_v2() {
 		final List<Exception> exceptionHolder = Collections.synchronizedList(new ArrayList<Exception>(1));
 
 		RepositoryEntry repositoryEntry = createRepositoryCG("IncCodePoint");		
@@ -474,19 +432,6 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 		DBFactory.getInstance().closeSession();
 		assertEquals("Launch counter was not 0", 0, repositoryEntry.getLaunchCounter() );
 
-		// enable breakpoint
-		CodepointClient codepointClient = null;
-		CodepointRef codepointRef = null;
-		try {
-			codepointClient = CodepointClientFactory.createCodepointClient("vm://localhost?broker.persistent=false", CODEPOINT_SERVER_ID);
-			codepointRef = codepointClient.getCodepoint("org.olat.repository.async.IncrementDownloadCounterBackgroundTask.executeTask-before-update");
-			codepointRef.enableBreakpoint();
-		} catch (Exception e) {
-			e.printStackTrace();
-			fail("Could not initialzed CodepointClient");
-		}
-		
-
 		final CountDownLatch doneSignal = new CountDownLatch(3);
 		
 		// thread 1
@@ -495,13 +440,13 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 				try {
 					Thread.sleep(100);
 					RepositoryEntry repositoryEntryT1 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-					RepositoryManager.getInstance().incrementDownloadCounter(repositoryEntryT1);
+					repositoryEntryT1 = RepositoryManager.getInstance().incrementDownloadCounter(repositoryEntryT1);
 					System.out.println("testConcurrentIncrementLaunchCounterWithCodePoints: Thread1 incremented download-counter");
 				} catch (Exception ex) {
 					exceptionHolder.add(ex);// no exception should happen
 				} finally {
-					doneSignal.countDown();
 					DBFactory.getInstance().commitAndCloseSession();
+					doneSignal.countDown();
 				}
 			}};
 		
@@ -511,13 +456,13 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 				try {
 					Thread.sleep(300);
 					RepositoryEntry repositoryEntryT2 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-					RepositoryManager.getInstance().incrementDownloadCounter(repositoryEntryT2);
+					repositoryEntryT2 = RepositoryManager.getInstance().incrementDownloadCounter(repositoryEntryT2);
 					System.out.println("testConcurrentIncrementLaunchCounterWithCodePoints: Thread2 incremented download-counter");
 				} catch (Exception ex) {
 					exceptionHolder.add(ex);// no exception should happen
 				} finally {
-					doneSignal.countDown();
 					DBFactory.getInstance().commitAndCloseSession();
+					doneSignal.countDown();
 				}
 			}};
 
@@ -527,16 +472,14 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 				try {
 					Thread.sleep(200);
 					RepositoryEntry repositoryEntryT3 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
-					// change repository directly and not via RepositoryManager.setAccess(...) for testing
-					repositoryEntryT3.setAccess(access);
-					RepositoryManager.getInstance().updateRepositoryEntry(repositoryEntryT3);
+					repositoryEntryT3 = RepositoryManager.getInstance().setAccess(repositoryEntryT3, access, false);
 					DBFactory.getInstance().closeSession();
 					System.out.println("testConcurrentIncrementLaunchCounterWithCodePoints: Thread3 setAccess DONE");
 				} catch (Exception ex) {
 					exceptionHolder.add(ex);// no exception should happen
 				} finally {
-					doneSignal.countDown();
 					DBFactory.getInstance().commitAndCloseSession();
+					doneSignal.countDown();
 				}
 			}};
 			
@@ -551,29 +494,9 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 			fail("" + e.getMessage());
 		}
 
-		try {
-			// to see all registered code-points: comment-in next 2 lines
-			// List<CodepointRef> codepointList = codepointClient.listAllCodepoints();
-			// System.out.println("codepointList=" + codepointList);
-			System.out.println("testConcurrentIncrementLaunchCounterWithCodePoints start waiting for breakpoint reached");
-			TemporaryPausedThread[] threads = codepointRef.waitForBreakpointReached(1000);
-			assertTrue("Did not reach breakpoint", threads.length > 0);
-			System.out.println("threads[0].getCodepointRef()=" + threads[0].getCodepointRef());
-			codepointRef.disableBreakpoint(true);
-			System.out.println("testConcurrentIncrementLaunchCounterWithCodePoints breakpoint reached => continue");
-		} catch (BreakpointStateException e) {
-			e.printStackTrace();
-			fail("Codepoints: BreakpointStateException=" + e.getMessage());
-		} catch (CommunicationException e) {
-			e.printStackTrace();
-			fail("Codepoints: CommunicationException=" + e.getMessage());
-		}
-		sleep(100);
 		RepositoryEntry repositoryEntry2 = RepositoryManager.getInstance().lookupRepositoryEntry(keyRepo);
 		assertEquals("Wrong value of incrementLaunch counter",2,repositoryEntry2.getDownloadCounter());
 		assertEquals("Wrong access value",access,repositoryEntry2.getAccess());
-
-		codepointClient.close();
 		System.out.println("testConcurrentIncrementLaunchCounterWithCodePoints finish successful");		
 	}
 
@@ -592,17 +515,4 @@ public class RepositoryManagerConcurrentTest extends OlatTestCase {
 		DBFactory.getInstance().saveObject(d);
 		return d;
 	}
-
-	/**
-	 * 
-	 * @param milis the duration in miliseconds to sleep
-	 */
-	private void sleep(int milis) {
-		try {
-			Thread.sleep(milis);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
 }
diff --git a/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java b/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java
index 2d71d54d461..c7d17b9aa95 100644
--- a/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java
+++ b/src/test/java/org/olat/resource/accesscontrol/ACFrontendManagerTest.java
@@ -336,8 +336,8 @@ public class ACFrontendManagerTest extends OlatTestCase {
 		re.setOlatResource(r);
 		re.setAccess(RepositoryEntry.ACC_OWNERS_AUTHORS);
 
-		repositoryManager.createParticipantSecurityGroup(re);
-		repositoryManager.createTutorSecurityGroup(re);
+		repositoryManager.createParticipantSecurityGroup(re, false);
+		repositoryManager.createTutorSecurityGroup(re, false);
 		repositoryManager.createOwnerSecurityGroup(re);
 		repositoryManager.saveRepositoryEntry(re);
 		dbInstance.commitAndCloseSession();
diff --git a/src/test/java/org/olat/test/JunitTestHelper.java b/src/test/java/org/olat/test/JunitTestHelper.java
index abfe7a89d29..14c16292f48 100644
--- a/src/test/java/org/olat/test/JunitTestHelper.java
+++ b/src/test/java/org/olat/test/JunitTestHelper.java
@@ -163,8 +163,8 @@ public class JunitTestHelper {
 		re.setResourcename("Lernen mit OLAT");
 		re.setDisplayname(r.getResourceableTypeName());
 		repositoryManager.createOwnerSecurityGroup(re);
-		repositoryManager.createTutorSecurityGroup(re);
-		repositoryManager.createParticipantSecurityGroup(re);
+		repositoryManager.createTutorSecurityGroup(re, false);
+		repositoryManager.createParticipantSecurityGroup(re, false);
 		repositoryManager.saveRepositoryEntry(re);
 		return re;
 	}
-- 
GitLab