From 28ada0111ee8bd337af54f8cea2324c90a390657 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 08:29:17 -0400 Subject: [PATCH 01/28] adding state for payload --- .../constraint_events/webapp/src/app.jsx | 31 +++++++++++- .../src/components/AttributeSetter/styles.css | 19 ++++---- .../custom_world_interactions/run_task.py | 47 +++++++++++++------ 3 files changed, 69 insertions(+), 28 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 89af79bb3..83d862dbf 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -6,7 +6,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -import React from "react"; +import React, {useState} from "react"; import ReactDOM from "react-dom"; import Task from "./views/Task"; import Submission from "./components/Submission" @@ -32,7 +32,13 @@ function MainApp() { handleSubmit, } = useMephistoTask(); - const [timesRemaining, setTimesRemaining] = React.useState(""); + const [timesRemaining, setTimesRemaining] = useState(""); + const [remainingUses, setRemainingUses]= useState("") + const [isReversible, setIsReversible]= useState(false) + const [broadcastMessage, setBroadcastMessage] = useState(""); + const [isCreatingEntity, setIsCreatingEntity] = useState(false) + const [createdEntity, setcreatedEntity] = useState(""); + const [modifiedAttributess, setModifiedAttributes]= useState([]) if (blockedReason !== null) { return ( @@ -116,6 +122,27 @@ function MainApp() { }, interaction: "You place the key in the lock and turn. After a satifying click the lock becomes unlocked." } + const submissionHandler = ()=>{ + const payload = { + remaining_uses: "inf", + reversible: true, + events: [ + { + type: ..., + params: {...}, + }, + ... + ], + constraints: [ + { + type: ..., + params: {...}, + }, + ... + ], + } + } + return (
diff --git a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css index c84f5609b..7cb1df3f9 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css @@ -1,13 +1,13 @@ .setter-container { display:flex; flex-direction: column; - justify-content: flex-start; - align-items: flex-start; + justify-content: center; + align-items: center; } .setter-header { display:flex; flex-direction: row; - justify-content: flex-start; + justify-content: center; align-items: center; width: 100%; margin: 5px; @@ -48,14 +48,13 @@ box-shadow: 0px 0px 0px black; } /* Attribute Row */ -.attributerow-container{ +.attributerow-container { display: flex; flex-direction: row; - justify-content: flex-start; + justify-content: center; align-items: center; - margin: 5px 0px 5px 20px; + margin: 5px 0px 5px 0px; width: 100%; - } .attribute-label__container { @@ -82,12 +81,10 @@ align-items: center; margin-left:4px; margin-right: 6px; - width: 30%; + width: 50%; } -.attribute-container{ - width: 50; -} +.attribute-container{} .attribute-icon { font-size: 50px; diff --git a/crowdsourcing/custom_world_interactions/run_task.py b/crowdsourcing/custom_world_interactions/run_task.py index f61abc2d6..c263c0695 100644 --- a/crowdsourcing/custom_world_interactions/run_task.py +++ b/crowdsourcing/custom_world_interactions/run_task.py @@ -11,6 +11,7 @@ from mephisto.operations.operator import Operator from mephisto.operations.utils import get_root_dir from mephisto.tools.scripts import load_db_and_process_config +from mephisto.abstractions.blueprint import BlueprintArgs from mephisto.abstractions.blueprints.static_react_task.static_react_blueprint import ( BLUEPRINT_TYPE, ) @@ -25,12 +26,14 @@ import hydra import json +import random from omegaconf import DictConfig from dataclasses import dataclass, field from typing import List, Any TASK_DIRECTORY = os.path.dirname(os.path.abspath(__file__)) -LIGHT_DB_PATH = "/checkpoint/light/data/database3.db" +INPUT_FILE_TASK = "objects-interaction-task-11" +LIGHT_DB_PATH = "~/ParlAI/data/LIGHT/merged.db" PRIMARY_OBJECT_LIST_SIZE = 5 SECONDARY_OBJECT_LIST_SIZE = 5 DEFAULT_NUM_TASKS = 20 @@ -42,7 +45,7 @@ {"mephisto/blueprint": BLUEPRINT_TYPE}, {"mephisto/architect": "local"}, {"mephisto/provider": "mock"}, - {"conf": "objects_interaction_task"}, + {"conf": "constraints_events_task"}, ] from mephisto.operations.hydra_config import RunScriptConfig, register_script_config @@ -58,28 +61,41 @@ class TestScriptConfig(RunScriptConfig): num_tasks: int = DEFAULT_NUM_TASKS -def get_object_list(db_path): +def get_object_lists(db_path): db = LIGHTDatabase(db_path) with db as ldb: - object_list = [dict(obj)["name"] for obj in ldb.get_object()] + all_objects = [dict(obj) for obj in ldb.get_object()] + + primary_objects = [ + {"name": obj["name"], "desc": obj["physical_description"]} + for obj in all_objects + if obj["is_gettable"] > 0.5 + ] - return object_list + secondary_objects = [ + {"name": obj["name"], "desc": obj["physical_description"]} + for obj in all_objects + ] + + return primary_objects, secondary_objects def create_task_data( - object_list, primary_object_list_size, secondary_object_list_size, num_tasks + primary_objects, + secondary_objects, + primary_object_list_size, + secondary_object_list_size, + num_tasks, ): - random.shuffle(object_list) + random.shuffle(primary_objects) + random.shuffle(secondary_objects) task_data_array = [] for idx in range(num_tasks): - obj_name = object_list[idx % len(object_list)] - - random_object_list = random.sample( - object_list, primary_object_list_size + secondary_object_list_size + primary_object_list = random.sample(primary_objects, primary_object_list_size) + secondary_object_list = random.sample( + secondary_objects, secondary_object_list_size ) - primary_object_list = random_object_list[:primary_object_list_size] - secondary_object_list = random_object_list[primary_object_list_size:] task_data_array.append( { @@ -159,14 +175,15 @@ def onboarding_always_valid(onboarding_data): shared_state = SharedStaticTaskState( static_task_data=create_task_data( - get_object_list(cfg.light_db_path), + primary_objects, + secondary_objects, cfg.primary_object_list_size, cfg.secondary_object_list_size, cfg.num_tasks, ), validate_onboarding=onboarding_always_valid, + on_unit_submitted=validate_unit, ) - shared_state.on_unit_submitted = validate_unit shared_state.mturk_specific_qualifications = [ { From 70a008f20b50ca51173b2f744b405e2a5324a20c Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 08:51:00 -0400 Subject: [PATCH 02/28] added error state --- .../constraint_events/webapp/src/app.jsx | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 83d862dbf..03f58ed2b 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -31,14 +31,15 @@ function MainApp() { initialTaskData, handleSubmit, } = useMephistoTask(); - + const [showError, setShowError] = useState(false); + const [errorMessage, setErrorMessage] = useState(""); const [timesRemaining, setTimesRemaining] = useState(""); - const [remainingUses, setRemainingUses]= useState("") - const [isReversible, setIsReversible]= useState(false) + const [remainingUses, setRemainingUses]= useState(""); + const [isReversible, setIsReversible]= useState(false); const [broadcastMessage, setBroadcastMessage] = useState(""); - const [isCreatingEntity, setIsCreatingEntity] = useState(false) + const [isCreatingEntity, setIsCreatingEntity] = useState(false); const [createdEntity, setcreatedEntity] = useState(""); - const [modifiedAttributess, setModifiedAttributes]= useState([]) + const [modifiedAttributess, setModifiedAttributes]= useState([]); if (blockedReason !== null) { return ( @@ -124,14 +125,22 @@ function MainApp() { } const submissionHandler = ()=>{ const payload = { - remaining_uses: "inf", + remaining_uses: remainingUses, reversible: true, events: [ { type: ..., params: {...}, }, - ... + { + type: "broadcast_message", + params: { + self_view: dummyData.interaction, + room_view: broadcastMessage + } + } + + ], constraints: [ { From f405ed08ad41c8c43afc2cad6f3c9240999c44d7 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 10:21:23 -0400 Subject: [PATCH 03/28] centralizing copy --- .../constraint_events/webapp/src/TaskCopy.js | 23 ++++-- .../constraint_events/webapp/src/app.jsx | 77 ++++++++++++++++--- 2 files changed, 83 insertions(+), 17 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index 1eabcaeb2..d68f469be 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -1,12 +1,23 @@ const Copy ={ constraint:{ - questions:{ - - } + questions:[ + "# Constraints for Interaction: ", + "1. Does # need to be held?", + "2. Could one use # with # and expect the same outcome?", + "3. Would this have to happen in a specific place?", + "Where would that location be?", + ] }, event:{ - questions:{ - - } + questions:[ + "1. Can this interaction be done infinitely?", + "1a. How many uses remain for the objects after the interaction?", + "2. Narrate this interaction to another observer who sees it happen.", + "3. Are objects removed?", + "3a. Which object(s)?", + "4. Are objects created?", + "5. Does an object's description change?", + "# After this action: " + ] } } diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 03f58ed2b..34367c1ad 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -33,13 +33,23 @@ function MainApp() { } = useMephistoTask(); const [showError, setShowError] = useState(false); const [errorMessage, setErrorMessage] = useState(""); + //Events State const [timesRemaining, setTimesRemaining] = useState(""); - const [remainingUses, setRemainingUses]= useState(""); - const [isReversible, setIsReversible]= useState(false); const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(false); const [createdEntity, setcreatedEntity] = useState(""); - const [modifiedAttributess, setModifiedAttributes]= useState([]); + //Primary + const [primaryRemainingUses, setPrimaryRemainingUses]= useState(""); + const [primaryModifiedAttributes, setPrimaryModifiedAttributes]= useState([]); + //Secondary + const [secondaryRemainingUses, setSecondaryRemainingUses]= useState(""); + const [secondaryModifiedAttributes, setSecondaryModifiedAttributes]= useState([]); + + //Constraint State + const [isSecondaryHeld, setIsSecondaryHeld] = useState(false); + const [isReversible, setIsReversible] = useState(false); + const [isReversible, setIsReversible]= useState(false); + if (blockedReason !== null) { return ( @@ -104,15 +114,17 @@ function MainApp() { console.log('active? ', active); const dummyData= { object1: { - name: "key", - desc:"A ordinary key that will unlock or lock something.", - attributes:[ - {name: "hot", val: false}, - {name: "valuable", val: true}, - {name: "brittle", val: false} - ] + id:2, + name: "key", + desc:"A ordinary key that will unlock or lock something.", + attributes:[ + {name: "hot", val: false}, + {name: "valuable", val: true}, + {name: "brittle", val: false} + ] }, object2: { + id:2, name: "lock", desc:"A ordinary lock that will be unlocked or locked by a key.", attributes:[ @@ -124,7 +136,50 @@ function MainApp() { interaction: "You place the key in the lock and turn. After a satifying click the lock becomes unlocked." } const submissionHandler = ()=>{ + let updatedBroadcastMessage = broadcastMessage; + + if(!updatedBroadcastMessage || ()){ + + } + const updatePrimary = { + "object_id": { + + "name": "object_name", + + "contain_size": 0, + remaining_uses: remainingUses, + reversible: true, + events: [ + { + type: ..., + params: {...}, + }, + { + type: "broadcast_message", + params: { + self_view: dummyData.interaction, + room_view: + } + } + + + ], + constraints: [ + { + type: ..., + params: {...}, + }, + ... + ], + } + } + const payload = { + "object_id": { + + "name": "object_name", + + "contain_size": 0, remaining_uses: remainingUses, reversible: true, events: [ @@ -136,7 +191,7 @@ function MainApp() { type: "broadcast_message", params: { self_view: dummyData.interaction, - room_view: broadcastMessage + room_view: } } From b25afccb31c52c1ee5e6e07f0d207af761498c3f Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 11:28:43 -0400 Subject: [PATCH 04/28] added isReversible, removeItems, isRemovingItems isCreatingEntity, createdEntity, isSecondaryHeld state --- .../constraint_events/webapp/src/app.jsx | 111 ++++++++---------- 1 file changed, 50 insertions(+), 61 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 34367c1ad..1a380b801 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -38,6 +38,8 @@ function MainApp() { const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(false); const [createdEntity, setcreatedEntity] = useState(""); + const [isObjectRemoved, setIsObjectRemoved] = useState(""); + const [removedObjects, setRemovedObjects] = useState([]) //Primary const [primaryRemainingUses, setPrimaryRemainingUses]= useState(""); const [primaryModifiedAttributes, setPrimaryModifiedAttributes]= useState([]); @@ -48,7 +50,6 @@ function MainApp() { //Constraint State const [isSecondaryHeld, setIsSecondaryHeld] = useState(false); const [isReversible, setIsReversible] = useState(false); - const [isReversible, setIsReversible]= useState(false); if (blockedReason !== null) { @@ -138,72 +139,29 @@ function MainApp() { const submissionHandler = ()=>{ let updatedBroadcastMessage = broadcastMessage; - if(!updatedBroadcastMessage || ()){ + if(!updatedBroadcastMessage){ } - const updatePrimary = { - "object_id": { - - "name": "object_name", - - "contain_size": 0, - remaining_uses: remainingUses, - reversible: true, - events: [ - { - type: ..., - params: {...}, - }, - { - type: "broadcast_message", - params: { - self_view: dummyData.interaction, - room_view: - } + let updatedIsReversible = isReversible; + let updatedEvents = [ + { + type: "broadcast_message", + params: { + self_view: dummyData.interaction, + room_view: updatedBroadcastMessage } - - - ], - constraints: [ - { - type: ..., - params: {...}, - }, - ... - ], - } - } - - const payload = { - "object_id": { - - "name": "object_name", - - "contain_size": 0, + } + ] + const payload = { remaining_uses: remainingUses, reversible: true, - events: [ - { - type: ..., - params: {...}, - }, - { - type: "broadcast_message", - params: { - self_view: dummyData.interaction, - room_view: - } - } - - - ], + events: updatedEvents, constraints: [ - { - type: ..., - params: {...}, - }, - ... - ], + ] + } + let complete = false + if(complete){ + handleSubmit(payload) } } @@ -236,3 +194,34 @@ ReactDOM.render(, document.getElementById("app"));
*/ + +// const updatePrimary = { + // object_id: { + // "name": "object_name", + // "contain_size": 0, + // remaining_uses: remainingUses, + // reversible: true, + // events: [ + // { + // type: ..., + // params: {...}, + // }, + // { + // type: "broadcast_message", + // params: { + // self_view: dummyData.interaction, + // room_view: + // } + // } + + + // ], + // constraints: [ + // { + // type: ..., + // params: {...}, + // }, + // ... + // ], + // } + // } From 1e9a375af4fc96faa1b69fff621700493088e41f Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 11:34:44 -0400 Subject: [PATCH 05/28] building updatedRemoveObjects --- crowdsourcing/constraint_events/webapp/src/app.jsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 1a380b801..ed72f6907 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -38,7 +38,7 @@ function MainApp() { const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(false); const [createdEntity, setcreatedEntity] = useState(""); - const [isObjectRemoved, setIsObjectRemoved] = useState(""); + const [isRemovingObjects, setIsRemovingObjects] = useState(""); const [removedObjects, setRemovedObjects] = useState([]) //Primary const [primaryRemainingUses, setPrimaryRemainingUses]= useState(""); @@ -152,6 +152,10 @@ function MainApp() { } } ] + let updatedConstraints = [ + + ] + if() const payload = { remaining_uses: remainingUses, reversible: true, From 5cf9f575f5b1797276fcd1a1bac6553838ce0034 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 12:06:42 -0400 Subject: [PATCH 06/28] added create entity event to submission handler --- .../constraint_events/webapp/src/app.jsx | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index ed72f6907..e6490dfd6 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -37,7 +37,7 @@ function MainApp() { const [timesRemaining, setTimesRemaining] = useState(""); const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(false); - const [createdEntity, setcreatedEntity] = useState(""); + const [createdEntity, setcreatedEntity] = useState(null); const [isRemovingObjects, setIsRemovingObjects] = useState(""); const [removedObjects, setRemovedObjects] = useState([]) //Primary @@ -155,13 +155,40 @@ function MainApp() { let updatedConstraints = [ ] - if() + if(isRemovingObjects){ + let updatedRemovedObjects = removedObjects.map(obj=>( + {type:"remove_object", + params:{ + name:obj + } + })) + updatedEvents = [...updatedEvents, ...updatedRemovedObjects] + } + if(isCreatingEntity){ + const {name, desc, location } = createdEntity + let updatedCreatedEntityEvent = { + type: "create_entity", + params: { + + "type": location, + + object: { + + name: name, + + desc: desc + + } + + } + } + updatedEvents = [...updatedEvents, updatedCreatedEntityEvent] + } const payload = { remaining_uses: remainingUses, reversible: true, events: updatedEvents, - constraints: [ - ] + constraints: updatedConstraints } let complete = false if(complete){ From ba5d559eace41596ca4a24b041c3e05668501756 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 15:05:42 -0400 Subject: [PATCH 07/28] added events and constraints handling and packaging for payload submission --- .../constraint_events/webapp/src/app.jsx | 109 +++++++++++++++--- 1 file changed, 96 insertions(+), 13 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index e6490dfd6..c0e4ee008 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -39,17 +39,26 @@ function MainApp() { const [isCreatingEntity, setIsCreatingEntity] = useState(false); const [createdEntity, setcreatedEntity] = useState(null); const [isRemovingObjects, setIsRemovingObjects] = useState(""); - const [removedObjects, setRemovedObjects] = useState([]) + const [removedObjects, setRemovedObjects] = useState([]); + const [isChangingDescription, setIsChangingDescription] = useState(false); //Primary const [primaryRemainingUses, setPrimaryRemainingUses]= useState(""); const [primaryModifiedAttributes, setPrimaryModifiedAttributes]= useState([]); + const [primaryDescription, setPrimaryDescription] = useState(""); //Secondary const [secondaryRemainingUses, setSecondaryRemainingUses]= useState(""); const [secondaryModifiedAttributes, setSecondaryModifiedAttributes]= useState([]); + const [secondaryDescription, setSecondaryDescription] = useState(""); //Constraint State const [isSecondaryHeld, setIsSecondaryHeld] = useState(false); const [isReversible, setIsReversible] = useState(false); + const [isLocationConstrained, setIsLocationConstrained] = useState(false); + const [constraintLocation, setConstraintLocation] = useState(""); + //Primary + const [primaryConstrainingAttributes, setPrimaryConstrainingAttributes]= useState([]); + //Secondary + const [secondaryConstrainingAttributes, setSecondaryConstrainingAttributes]= useState([]); if (blockedReason !== null) { @@ -137,12 +146,12 @@ function MainApp() { interaction: "You place the key in the lock and turn. After a satifying click the lock becomes unlocked." } const submissionHandler = ()=>{ - let updatedBroadcastMessage = broadcastMessage; - + //ERROR HANDLING if(!updatedBroadcastMessage){ } - let updatedIsReversible = isReversible; + // EVENT UPDATES + let updatedBroadcastMessage = broadcastMessage; let updatedEvents = [ { type: "broadcast_message", @@ -155,6 +164,7 @@ function MainApp() { let updatedConstraints = [ ] + if(isRemovingObjects){ let updatedRemovedObjects = removedObjects.map(obj=>( {type:"remove_object", @@ -165,28 +175,101 @@ function MainApp() { updatedEvents = [...updatedEvents, ...updatedRemovedObjects] } if(isCreatingEntity){ - const {name, desc, location } = createdEntity + const {name, desc, location } = createdEntity; let updatedCreatedEntityEvent = { type: "create_entity", params: { - "type": location, - object: { - name: name, - desc: desc - - } - } + } } updatedEvents = [...updatedEvents, updatedCreatedEntityEvent] } + if(isChangingDescription){ + let updatedDescriptions = [ + { + type:"modify_attribute", + params:{ + type:"in_used_item", + key:"desc", + value: primaryDescription + } + }, + { + type:"modify_attribute", + params:{ + type:"in_used_target_item", + key:"desc", + value: secondaryDescription + } + } + ] + updatedEvents = [...updatedEvents, ...updatedDescriptions] + } + if(primaryModifiedAttributes.length){ + let updatedPrimaryModifiedAttributes = primaryModifiedAttributes.map(attribute=>({ + type:"modify_attribute", + params:{ + type:"in_used_item", + key: attribute.name, + value: attribute.value + } + })) + updatedEvents = [...updatedEvents, ...updatedPrimaryModifiedAttributes] + } + if(secondaryModifiedAttributes.length){ + let updatedSecondaryModifiedAttributes = secondaryModifiedAttributes.map(attribute=>({ + type:"modify_attribute", + params:{ + type:"in_used_target_item", + key: attribute.name, + value: attribute.value + } + })) + updatedEvents = [...updatedEvents, ...updatedSecondaryModifiedAttributes] + } + // CONSTRAINT UPDATES + if(primaryConstrainingAttributes.length){ + let updatedPrimaryConstrainingAttributes = primaryConstrainingAttributes.map(attribute=>({ + type:"attribute_compare_value", + params:{ + type:"in_used_item", + key: attribute.name, + list: [attribute.value], + cmp_type: "eq" + } + })) + updatedConstraints = [...updatedConstraints, ...updatedPrimaryModifiedAttributes] + } + if(updatedSecondaryConstrainingAttributes.length){ + let updatedSecondaryConstrainingAttributes = secondaryConstrainingAttributes.map(attribute=>({ + type:"attribute_compare_value", + params:{ + type:"in_used_target_item", + key: attribute.name, + list: [attribute.value], + cmp_type: "eq" + } + })) + updatedConstraints = [...updatedConstraints, ...updatedSecondaryModifiedAttributes] + } + if(isSecondaryHeld){ + let updatedSecondaryHeldConstraint = { + type: "is_holding", + params: { + complement: "used_target_item" + } + } + updatedConstraints = [...updatedConstraints, updatedSecondaryHeldConstraint] + } + let updatedIsReversible = isReversible; + const payload = { remaining_uses: remainingUses, - reversible: true, + reversible: updatedIsReversible, events: updatedEvents, constraints: updatedConstraints } From 8da7010d8a45d75f9256daafe9f627394b22af8d Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 15:56:19 -0400 Subject: [PATCH 08/28] wired constraint and event state to constraint and event components --- .../constraint_events/webapp/src/app.jsx | 104 +++++++++++++++--- .../webapp/src/views/Task/index.js | 76 ++++++++++++- 2 files changed, 162 insertions(+), 18 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index c0e4ee008..b2d1389c8 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -146,25 +146,25 @@ function MainApp() { interaction: "You place the key in the lock and turn. After a satifying click the lock becomes unlocked." } const submissionHandler = ()=>{ + let updatedEvents = [] + let updatedConstraints = [] //ERROR HANDLING if(!updatedBroadcastMessage){ } + if(!showError){ // EVENT UPDATES let updatedBroadcastMessage = broadcastMessage; - let updatedEvents = [ - { + updatedBroadcastMessage = { type: "broadcast_message", params: { self_view: dummyData.interaction, - room_view: updatedBroadcastMessage + room_view: broadcastMessage } - } - ] - let updatedConstraints = [ - - ] + } + updatedEvents = [...updatedEvents, updatedBroadcastMessage] + //OBJECT REMOVAL EVENT if(isRemovingObjects){ let updatedRemovedObjects = removedObjects.map(obj=>( {type:"remove_object", @@ -174,6 +174,7 @@ function MainApp() { })) updatedEvents = [...updatedEvents, ...updatedRemovedObjects] } + //ENTITY CREATION EVENT if(isCreatingEntity){ const {name, desc, location } = createdEntity; let updatedCreatedEntityEvent = { @@ -188,6 +189,7 @@ function MainApp() { } updatedEvents = [...updatedEvents, updatedCreatedEntityEvent] } + //DESCRIPTION CHANGE EVENT if(isChangingDescription){ let updatedDescriptions = [ { @@ -209,6 +211,7 @@ function MainApp() { ] updatedEvents = [...updatedEvents, ...updatedDescriptions] } + //ATTRIBUTE MODIFICATION EVENTS if(primaryModifiedAttributes.length){ let updatedPrimaryModifiedAttributes = primaryModifiedAttributes.map(attribute=>({ type:"modify_attribute", @@ -231,7 +234,8 @@ function MainApp() { })) updatedEvents = [...updatedEvents, ...updatedSecondaryModifiedAttributes] } - // CONSTRAINT UPDATES + //CONSTRAINT UPDATES + //CONSTRAINING ATTRIBUTES if(primaryConstrainingAttributes.length){ let updatedPrimaryConstrainingAttributes = primaryConstrainingAttributes.map(attribute=>({ type:"attribute_compare_value", @@ -256,6 +260,7 @@ function MainApp() { })) updatedConstraints = [...updatedConstraints, ...updatedSecondaryModifiedAttributes] } + // HELD CONSTRAINT if(isSecondaryHeld){ let updatedSecondaryHeldConstraint = { type: "is_holding", @@ -266,22 +271,61 @@ function MainApp() { updatedConstraints = [...updatedConstraints, updatedSecondaryHeldConstraint] } let updatedIsReversible = isReversible; - + // LOCATION CONSTRAINT + if(isLocationConstrained){ + let updatedLocationConstraint = { + type: "in_room", + params: { + room_name: constraintLocation + } + } + updatedConstraints = [...updatedConstraints, updatedLocationConstraint] + } const payload = { remaining_uses: remainingUses, reversible: updatedIsReversible, events: updatedEvents, constraints: updatedConstraints } - let complete = false - if(complete){ - handleSubmit(payload) + handleSubmit(payload) } } return (
- +
@@ -292,7 +336,37 @@ function MainApp() { ReactDOM.render(, document.getElementById("app")); -/*
+/* + const [showError, setShowError] = useState(false); + const [errorMessage, setErrorMessage] = useState(""); + //Events State + const [timesRemaining, setTimesRemaining] = useState(""); + const [broadcastMessage, setBroadcastMessage] = useState(""); + const [isCreatingEntity, setIsCreatingEntity] = useState(false); + const [createdEntity, setcreatedEntity] = useState(null); + const [isRemovingObjects, setIsRemovingObjects] = useState(""); + const [removedObjects, setRemovedObjects] = useState([]); + const [isChangingDescription, setIsChangingDescription] = useState(false); + //Primary + const [primaryRemainingUses, setPrimaryRemainingUses]= useState(""); + const [primaryModifiedAttributes, setPrimaryModifiedAttributes]= useState([]); + const [primaryDescription, setPrimaryDescription] = useState(""); + //Secondary + const [secondaryRemainingUses, setSecondaryRemainingUses]= useState(""); + const [secondaryModifiedAttributes, setSecondaryModifiedAttributes]= useState([]); + const [secondaryDescription, setSecondaryDescription] = useState(""); + + //Constraint State + const [isSecondaryHeld, setIsSecondaryHeld] = useState(false); + const [isReversible, setIsReversible] = useState(false); + const [isLocationConstrained, setIsLocationConstrained] = useState(false); + const [constraintLocation, setConstraintLocation] = useState(""); + //Primary + const [primaryConstrainingAttributes, setPrimaryConstrainingAttributes]= useState([]); + //Secondary + const [secondaryConstrainingAttributes, setSecondaryConstrainingAttributes]= useState([]); + +

diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/index.js index 796188475..d06bcf9c3 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/index.js @@ -7,7 +7,39 @@ import TaskDataCards from "./TaskDataCards" import Constraints from "./Constraints" import Events from "./Events" -const Task = ({data}) => { +const Task = ({ + data, + broadcastMessage, + setBroadcastMessage, + isCreatingEntity, + setIsCreatingEntity, + isRemovingObjects, + setIsRemovingObjects, + removedObjects, + setRemovedObjects, + isChangingDescription, + setIsChangingDescription, + primaryDescription, + setPrimaryDescription, + secondaryDescription, + setSecondaryDescription, + primaryModifiedAttributes, + setPrimaryModifiedAttributes, + secondaryModifiedAttributes, + setSecondaryModifiedAttributes, + isSecondaryHeld, + setIsSecondaryHeld, + isReversible, + setIsReversible, + isLocationConstrained, + setIsLocationConstrained, + constraintLocation, + setConstraintLocation, + primaryConstrainingAttributes, + setPrimaryConstrainingAttributes, + secondaryConstrainingAttributes, + setSecondaryConstrainingAttributes, +}) => { const {object1, object2, interaction}= data; return (
@@ -18,8 +50,46 @@ const Task = ({data}) => { interaction={interaction} />
- - + +
); From 7c32f04fb9b2e7003a45661378c22ecd7b52c5b7 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 16:42:21 -0400 Subject: [PATCH 09/28] connected new copy object to events --- .../constraint_events/webapp/src/TaskCopy.js | 20 ++++---- .../Questions/BooleanQuestion/index.js | 4 +- .../Questions/FormQuestion/index.js | 2 +- .../src/views/Task/Events/Questions/index.js | 42 ++++++++++++++-- .../webapp/src/views/Task/Events/index.js | 48 ++++++++++++++++++- 5 files changed, 96 insertions(+), 20 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index d68f469be..0a5636fe5 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -9,15 +9,15 @@ const Copy ={ ] }, event:{ - questions:[ - "1. Can this interaction be done infinitely?", - "1a. How many uses remain for the objects after the interaction?", - "2. Narrate this interaction to another observer who sees it happen.", - "3. Are objects removed?", - "3a. Which object(s)?", - "4. Are objects created?", - "5. Does an object's description change?", - "# After this action: " - ] + questions:{ + 1: "1. Narrate this interaction to another observer who sees it happen.", + 2: "2. Can this interaction be done infinitely?", + a2 : "2a. How many uses remain for the objects after the interaction?", + 3: "3. Are objects removed?", + a3: "3a. Which object(s)?", + 4: "4. Are objects created?", + 5: "5. Does an object's description change?", + setter: "# After this action: " + } } } diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js index ff316c759..30815adf8 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js @@ -5,7 +5,7 @@ import "./styles.css"; import TaskButton from "../../TaskButton" import FormQuestion from "../../Utils/FormatQuestion"; -const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, children})=>{ +const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, inverted, children})=>{ const [answer, setAnswer] = useState(null); const trueHandler = ()=>{ @@ -45,7 +45,7 @@ const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, children}
{ - answer && children ? + ((!!inverted ? !answer : answer) && children) ? children : null diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js index 0194dd84f..a5e96043d 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js @@ -11,7 +11,7 @@ const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, const changeHandler = e=>{ e.preventDefault() setDescription(e.target.value) - + formFunction(description) } return(
diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js index b7b898b47..cf6b03050 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js @@ -3,7 +3,7 @@ import React from "react"; import "./styles.css" //COPY -import QuestionList from "./QuestionCopy"; +import QuestionCopy from "../../../../TaskCopy"; //CUSTOM COMPONENENTS import FormQuestion from "../../../../components/Questions/FormQuestion"; import BooleanQuestion from "../../../../components/Questions/BooleanQuestion" @@ -11,20 +11,52 @@ import MultipleSelectQuestion from "../../../../components/Questions/MultipleSel import FieldQuestion from "../../../../components/Questions/FieldQuestion" import AttributeSetter from "../../../../components/AttributeSetter" -const Questions = ({object1, object2, interaction}) => { +const Questions = ({ + object1, + object2, + interaction, + broadcastMessage, + setBroadcastMessage, + isCreatingEntity, + setIsCreatingEntity, + isRemovingObjects, + setIsRemovingObjects, + removedObjects, + setRemovedObjects, + isChangingDescription, + setIsChangingDescription, + primaryDescription, + setPrimaryDescription, + secondaryDescription, + setSecondaryDescription, + primaryModifiedAttributes, + setPrimaryModifiedAttributes, + secondaryModifiedAttributes, + setSecondaryModifiedAttributes +}) => { + const QuestionList = QuestionCopy.event.questions return ( <> + + + @@ -34,13 +66,13 @@ const Questions = ({object1, object2, interaction}) => { falseAnswer={{name:"NO"} } > diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js index 17c00f2ed..b098e4f85 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js @@ -4,14 +4,58 @@ import "./styles.css" import Questions from "./Questions" -const Events = ({object1, object2, interaction}) => { +const Events = ({ + object1, + object2, + interaction, + broadcastMessage, + setBroadcastMessage, + isCreatingEntity, + setIsCreatingEntity, + isRemovingObjects, + setIsRemovingObjects, + removedObjects, + setRemovedObjects, + isChangingDescription, + setIsChangingDescription, + primaryDescription, + setPrimaryDescription, + secondaryDescription, + setSecondaryDescription, + primaryModifiedAttributes, + setPrimaryModifiedAttributes, + secondaryModifiedAttributes, + setSecondaryModifiedAttributes, +}) => { return (

EVENTS

- +
); From 6eb0253a5023ae12e27cd2364f99825bc058f0e6 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 16 Jun 2021 16:55:43 -0400 Subject: [PATCH 10/28] wiring task 2 --- .../webapp/src/components/Questions/BooleanQuestion/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js index 30815adf8..1967f856b 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js @@ -5,14 +5,16 @@ import "./styles.css"; import TaskButton from "../../TaskButton" import FormQuestion from "../../Utils/FormatQuestion"; -const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, inverted, children})=>{ +const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, inverted, children, formFunction})=>{ const [answer, setAnswer] = useState(null); const trueHandler = ()=>{ setAnswer(true) + formFunction(true) } const falseHandler = ()=>{ setAnswer(false) + formFunction(false) } return( From 2f8616beb7f5566f7d96ef85783c2b937ff0697d Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Thu, 17 Jun 2021 10:10:47 -0400 Subject: [PATCH 11/28] wiring event forms --- .../constraint_events/webapp/src/TaskCopy.js | 1 + crowdsourcing/constraint_events/webapp/src/app.jsx | 6 ++++-- .../webapp/src/components/DropdownSelect/index.js | 8 +++++--- .../Questions/MultipleSelectQuestion/index.js | 3 ++- .../webapp/src/views/Task/Events/Questions/index.js | 11 ++++++++--- .../webapp/src/views/Task/Events/index.js | 4 ++++ .../constraint_events/webapp/src/views/Task/index.js | 4 ++++ 7 files changed, 28 insertions(+), 9 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index 0a5636fe5..cfe366cc0 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -21,3 +21,4 @@ const Copy ={ } } } +export default Copy diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index b2d1389c8..2d06d610e 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -37,7 +37,7 @@ function MainApp() { const [timesRemaining, setTimesRemaining] = useState(""); const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(false); - const [createdEntity, setcreatedEntity] = useState(null); + const [createdEntity, setCreatedEntity] = useState(null); const [isRemovingObjects, setIsRemovingObjects] = useState(""); const [removedObjects, setRemovedObjects] = useState([]); const [isChangingDescription, setIsChangingDescription] = useState(false); @@ -299,6 +299,8 @@ function MainApp() { setBroadcastMessage={setBroadcastMessage} isCreatingEntity={isCreatingEntity} setIsCreatingEntity={setIsCreatingEntity} + createdEntity={createdEntity} + setCreatedEntity={setCreatedEntity} isRemovingObjects={isRemovingObjects} setIsRemovingObjects={setIsRemovingObjects} removedObjects={removedObjects} @@ -343,7 +345,7 @@ ReactDOM.render(, document.getElementById("app")); const [timesRemaining, setTimesRemaining] = useState(""); const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(false); - const [createdEntity, setcreatedEntity] = useState(null); + const [createdEntity, setCreatedEntity] = useState(null); const [isRemovingObjects, setIsRemovingObjects] = useState(""); const [removedObjects, setRemovedObjects] = useState([]); const [isChangingDescription, setIsChangingDescription] = useState(false); diff --git a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js index 8e479514b..13db8ca05 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js @@ -3,18 +3,20 @@ import Dropdown from 'react-bootstrap/Dropdown' import "./styles.css" -const DropdownSelect = ({options})=>{ +const DropdownSelect = ({options, selectFunction})=>{ const [selectedOption, setSelectedOption]= useState("Select Location") const selectHandler = (selection)=>{ + console.log("DROPDOWN SELECTION:", selection) setSelectedOption(selection) + selectFunction(selection) } console.log("OPTIONS", options) return(
- { - options.map((option, index) =>) + options.map((option, index) =>) }
diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/MultipleSelectQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/MultipleSelectQuestion/index.js index 4d2463ab9..7028fc9ce 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/MultipleSelectQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/MultipleSelectQuestion/index.js @@ -13,11 +13,12 @@ const MultipleSelectQuestion = ({question, answers, selectFunction})=>{ if(selectedAnswers.indexOf(id)<0){ updatedAnswers = [...selectedAnswers, id]; setSelectedAnswers(updatedAnswers) + selectFunction(updatedAnswers) } if(selectedAnswers.indexOf(id)>=0){ updatedAnswers = selectedAnswers.filter(answer => (answer!==id)) setSelectedAnswers(updatedAnswers) - selectFunction(answer); + selectFunction(updatedAnswers); } } useEffect(()=>{ diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js index cf6b03050..e82705004 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js @@ -3,7 +3,7 @@ import React from "react"; import "./styles.css" //COPY -import QuestionCopy from "../../../../TaskCopy"; +import QuestionCopy from "../../../../TaskCopy.js"; //CUSTOM COMPONENENTS import FormQuestion from "../../../../components/Questions/FormQuestion"; import BooleanQuestion from "../../../../components/Questions/BooleanQuestion" @@ -19,6 +19,8 @@ const Questions = ({ setBroadcastMessage, isCreatingEntity, setIsCreatingEntity, + createdEntity, + setcreatedEntity, isRemovingObjects, setIsRemovingObjects, removedObjects, @@ -54,20 +56,23 @@ const Questions = ({ question={QuestionList[3]} trueAnswer={{name:"YES"} } falseAnswer={{name:"NO"} } + formFunction={setIsRemovingObjects} >
diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js index b098e4f85..f5a2ce3aa 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/index.js @@ -12,6 +12,8 @@ const Events = ({ setBroadcastMessage, isCreatingEntity, setIsCreatingEntity, + createdEntity, + setCreatedEntity, isRemovingObjects, setIsRemovingObjects, removedObjects, @@ -41,6 +43,8 @@ const Events = ({ setBroadcastMessage={setBroadcastMessage} isCreatingEntity={isCreatingEntity} setIsCreatingEntity={setIsCreatingEntity} + createdEntity={createdEntity} + setCreatedEntity={setCreatedEntity} isRemovingObjects={isRemovingObjects} setIsRemovingObjects={setIsRemovingObjects} removedObjects={removedObjects} diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/index.js index d06bcf9c3..40bc1fe63 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/index.js @@ -13,6 +13,8 @@ const Task = ({ setBroadcastMessage, isCreatingEntity, setIsCreatingEntity, + createdEntity, + setCreatedEntity, isRemovingObjects, setIsRemovingObjects, removedObjects, @@ -58,6 +60,8 @@ const Task = ({ setBroadcastMessage={setBroadcastMessage} isCreatingEntity={isCreatingEntity} setIsCreatingEntity={setIsCreatingEntity} + createdEntity={createdEntity} + setCreatedEntity={setCreatedEntity} isRemovingObjects={isRemovingObjects} setIsRemovingObjects={setIsRemovingObjects} removedObjects={removedObjects} From 605b3c1aaa2468c9b59976230b88c25cc5aba505 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Fri, 18 Jun 2021 10:15:09 -0400 Subject: [PATCH 12/28] fixed field row styles --- .../constraint_events/webapp/src/TaskCopy.js | 8 ++- .../constraint_events/webapp/src/app.jsx | 4 +- .../Questions/BooleanQuestion/index.js | 2 +- .../Questions/FieldQuestion/FieldRow.js | 34 ++++++++----- .../Questions/FieldQuestion/styles.css | 6 +++ .../Questions/FormQuestion/styles.css | 7 ++- .../src/views/Task/Events/Questions/index.js | 51 +++++++++---------- 7 files changed, 60 insertions(+), 52 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index cfe366cc0..fec401253 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -11,12 +11,10 @@ const Copy ={ event:{ questions:{ 1: "1. Narrate this interaction to another observer who sees it happen.", - 2: "2. Can this interaction be done infinitely?", - a2 : "2a. How many uses remain for the objects after the interaction?", - 3: "3. Are objects removed?", - a3: "3a. Which object(s)?", + 2: "2. Are objects removed?", + a2: "2a. Which object(s)?", + 3: "3. Does an object's description change?", 4: "4. Are objects created?", - 5: "5. Does an object's description change?", setter: "# After this action: " } } diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 2d06d610e..c914320d8 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -246,7 +246,7 @@ function MainApp() { cmp_type: "eq" } })) - updatedConstraints = [...updatedConstraints, ...updatedPrimaryModifiedAttributes] + updatedConstraints = [...updatedConstraints, ...updatedPrimaryConstrainingAttributes] } if(updatedSecondaryConstrainingAttributes.length){ let updatedSecondaryConstrainingAttributes = secondaryConstrainingAttributes.map(attribute=>({ @@ -258,7 +258,7 @@ function MainApp() { cmp_type: "eq" } })) - updatedConstraints = [...updatedConstraints, ...updatedSecondaryModifiedAttributes] + updatedConstraints = [...updatedConstraints, ...updatedSecondaryConstrainingAttributes] } // HELD CONSTRAINT if(isSecondaryHeld){ diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js index 1967f856b..323b0ffb9 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js @@ -45,7 +45,7 @@ const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, inverted, />
-
+
{ ((!!inverted ? !answer : answer) && children) ? children diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js index 16464e7c1..6c2bdb2d9 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js @@ -15,12 +15,14 @@ const FieldRow = ({field, dropdown, options})=>{ return(
-
-

- {field} -

+
+
+

+ {field} +

+
-
+
@@ -28,16 +30,20 @@ const FieldRow = ({field, dropdown, options})=>{ }else{ return(
-
-

- {field} -

+
+
+

+ {field} +

+
-
- +
+
+ +
) diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css index 261a7dd1c..e9946c0fd 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css @@ -27,7 +27,13 @@ flex-direction: row; justify-content: flex-end; align-items: center; + flex-wrap: wrap; } +.fieldrow-container__section--half { + display:flex; + width:50%; +} + .field-container { background-color: green; border-radius: 5px; diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/styles.css index 91f86b011..37978c289 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/styles.css @@ -2,7 +2,7 @@ width: 100%; display: flex; flex-direction: column; - align-items: flex-start; + align-items: center; } .form-header { @@ -19,8 +19,8 @@ .answer-container { width: 100%; display: flex; - align-items: flex-start; - justify-content: flex-start; + align-items: center; + justify-content: center; } .answer-form{ @@ -30,6 +30,5 @@ border-style: ridge; border-radius: 5px; padding:3px; - margin-left:10px; width: 60%; } diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js index e82705004..9cde51aad 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js @@ -1,4 +1,4 @@ -import React from "react"; +import React, {useEffect} from "react"; import "./styles.css" @@ -36,6 +36,10 @@ const Questions = ({ secondaryModifiedAttributes, setSecondaryModifiedAttributes }) => { + useEffect(()=>{ + setPrimaryDescription(object1.desc) + setSecondaryDescription(object2.desc) + },[object1, object2]) const QuestionList = QuestionCopy.event.questions return ( <> @@ -48,56 +52,51 @@ const Questions = ({ question={QuestionList[2]} trueAnswer={{name:"YES"} } falseAnswer={{name:"NO"} } - inverted={true} - > - - - - - - - -
+
+ + + + From 6f7c0b5f328f7834a35a49923003e29db6bb08ac Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Fri, 18 Jun 2021 12:12:03 -0400 Subject: [PATCH 13/28] added tooltip component, building preview and tutorial copy object --- .../webapp/package-lock.json | 19 ++++++++++++++- .../constraint_events/webapp/package.json | 3 ++- .../constraint_events/webapp/src/TaskCopy.js | 8 ++++++- .../src/components/InfoToolTip/index.js | 24 +++++++++++++++++++ .../src/components/InfoToolTip/styles.css | 0 .../Questions/FieldQuestion/styles.css | 2 +- .../Questions/FormQuestion/index.js | 11 ++++++--- 7 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js create mode 100644 crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css diff --git a/crowdsourcing/constraint_events/webapp/package-lock.json b/crowdsourcing/constraint_events/webapp/package-lock.json index 9594b9401..691ce9593 100644 --- a/crowdsourcing/constraint_events/webapp/package-lock.json +++ b/crowdsourcing/constraint_events/webapp/package-lock.json @@ -16,7 +16,8 @@ "react-bootstrap": "^1.5.0", "react-dom": "16.13.1", "react-dropdown": "^1.9.2", - "react-icons": "^4.2.0" + "react-icons": "^4.2.0", + "react-tippy": "^1.4.0" }, "devDependencies": { "@babel/cli": "^7.1.0", @@ -5591,6 +5592,14 @@ "regenerator-runtime": "^0.13.4" } }, + "node_modules/react-tippy": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-tippy/-/react-tippy-1.4.0.tgz", + "integrity": "sha512-r/hM5XK9Ztr2ZY7IWKuRmISTlUPS/R6ddz6PO2EuxCgW+4JBcGZRPU06XcVPRDCOIiio8ryBQFrXMhFMhsuaHA==", + "dependencies": { + "popper.js": "^1.11.1" + } + }, "node_modules/react-transition-group": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", @@ -12059,6 +12068,14 @@ } } }, + "react-tippy": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-tippy/-/react-tippy-1.4.0.tgz", + "integrity": "sha512-r/hM5XK9Ztr2ZY7IWKuRmISTlUPS/R6ddz6PO2EuxCgW+4JBcGZRPU06XcVPRDCOIiio8ryBQFrXMhFMhsuaHA==", + "requires": { + "popper.js": "^1.11.1" + } + }, "react-transition-group": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", diff --git a/crowdsourcing/constraint_events/webapp/package.json b/crowdsourcing/constraint_events/webapp/package.json index 80c022aa0..6ebad191e 100644 --- a/crowdsourcing/constraint_events/webapp/package.json +++ b/crowdsourcing/constraint_events/webapp/package.json @@ -18,7 +18,8 @@ "react-bootstrap": "^1.5.0", "react-dom": "16.13.1", "react-dropdown": "^1.9.2", - "react-icons": "^4.2.0" + "react-icons": "^4.2.0", + "react-tippy": "^1.4.0" }, "devDependencies": { "@babel/cli": "^7.1.0", diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index fec401253..0fd5c9f45 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -6,7 +6,13 @@ const Copy ={ "2. Could one use # with # and expect the same outcome?", "3. Would this have to happen in a specific place?", "Where would that location be?", - ] + ], + tutorialCopy:{ + 1:{ + question:"Narrate this interaction", + explaination:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."' + } + } }, event:{ questions:{ diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js new file mode 100644 index 000000000..953ce2a72 --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js @@ -0,0 +1,24 @@ +import React, {useEffect, useState} from "react"; + +import {Tooltip} from 'react-tippy'; +// ICONS +import { BsInfoCircle } from "react-icons/bs"; + +const InfoToolTip = ({tutorialCopy, children})=>{ + const [isHovering, setIsHovering] =useState(false) + + return ( +
+ {children} + + setIsHovering(true)} onMouseLeave={()=>setIsHovering(false)}/> + +
+ ) +} + + +export default InfoToolTip ; diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css new file mode 100644 index 000000000..e69de29bb diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css index e9946c0fd..94dd2faee 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css @@ -3,7 +3,7 @@ justify-content: center; width: 100%; flex-direction: column; - align-items: center; + align-items: flex-start; } .fieldquestion-header { diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js index a5e96043d..b27ac93db 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js @@ -2,6 +2,9 @@ import React, {useEffect, useState, useRef} from "react"; import "./styles.css" +//CUSTOM COMPONENT +import InfoToolTip from "../../InfoToolTip"; + const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, formVal, formFunction})=>{ const [description, setDescription] = useState("") @@ -15,9 +18,11 @@ const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, } return(
-

- {upperCaseQuestion ? question.toUpperCase() : question} -

+ +

+ {upperCaseQuestion ? question.toUpperCase() : question} +

+

From 20bad330de2816c26b9463c20877ec224ff3218c Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Fri, 18 Jun 2021 15:36:39 -0400 Subject: [PATCH 14/28] added task 2 tutorial copy, added and styled tutorial entry component, added and styled preview view --- .../constraint_events/webapp/src/TaskCopy.js | 134 +++++++++++++++++- .../constraint_events/webapp/src/app.jsx | 8 +- .../webapp/src/components/InfoToolTip/Tip.js | 19 +++ .../src/components/InfoToolTip/index.js | 16 ++- .../src/components/InfoToolTip/styles.css | 14 ++ .../Questions/FormQuestion/index.js | 4 +- .../src/components/TutorialEntry/index.js | 29 ++++ .../src/components/TutorialEntry/styles.css | 31 ++++ .../webapp/src/views/Preview/index.js | 47 +++++- .../webapp/src/views/Preview/styles.css | 81 +++++++++++ .../src/views/Task/Events/Questions/index.js | 2 + 11 files changed, 366 insertions(+), 19 deletions(-) create mode 100644 crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js create mode 100644 crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js create mode 100644 crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css create mode 100644 crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index 0fd5c9f45..7b13f6573 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -7,12 +7,73 @@ const Copy ={ "3. Would this have to happen in a specific place?", "Where would that location be?", ], - tutorialCopy:{ - 1:{ + tutorialCopy:[ + { + question:"1) Attributes", + explaination:`If the interaction requires that the object have + certain attributes or conditions, they should be listed. + + For instance, if the interaction is "You use the torch + to ignite the pile of logs on the floor. It catches + quickly and begins to burn." then you can add the + constraint that the logs must not be wet. + + Use common sense understanding to determine + constraints that are relevant for your example.` + }, + { + question:"2) Does object2 need to be held", + explaination:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.` + }, + { question:"Narrate this interaction", - explaination:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."' + explaination:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.` + }, + { + question:"3) Can this operation be done an infinite number of times?", + explaination:`Some interactions are limited in the number of uses. Here + you should estimate the number of times the interaction + could be repeated. For instance, for the interaction: "You + give a piece of the pie to the fox. It eats it quickly and scurries + back away from you." This kind of interaction must have some + kind of limit, as your pie has a constant amount. As such you + may say this interaction could be done 12 times. While we + don't expect an exact number on this, an estimation will be fine. + + In contrast "You swing the stick at the bucket and it rings out + loudly, likely annoying anyone in earshot" is an interaction + that could probably be done indefinitely.` + }, + { + question:"4) Could one use Y with X and expect the same outcome?", + explaination:`Some interactions could be considered to have a direction, for + instance "using an axe with a tree" is different from "using a + tree with an axe", though the second here doesn't even make + sense. However, an interaction like "you mix the milk and the + flour to start creating some dough" could work with either + "use milk with flour" or "use flour with milk". + + For unidirectional cases like the former, this would be false. + For bidirectional cases like the latter, it would be true.` + }, + { + question:"5) does this interaction need to have in a specific place.", + explaination:`If the interaction description implies that the interaction + occurs somewhere specifically, provide a name for the place + you believe it is happening. + + If it doesn't have any specification, then leave blank. + + For instance the interaction "You mix the the flour and milk + together to start creating some dough." could happen anywhere, + so you should say no for an interaction like this. + + However, for something like "You throw the spear at the dragon + and it recoils, spraying fire breath into the forest around you" then + this interaction must occur in the forest as it is implied by the + narration.` } - } + ] }, event:{ questions:{ @@ -22,7 +83,70 @@ const Copy ={ 3: "3. Does an object's description change?", 4: "4. Are objects created?", setter: "# After this action: " - } + }, + tutorialCopy:[ + { + question:"1) Narrate this interaction", + explaination:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."' + }, + { + question:"2) Are objects removed", + explaination:`If the interaction would cause one of the + used objects not exist anymore, mark those + objects. + + For instance, if the interaction was "The lit + torch ignites the table, and the table burns + to the ground, leaving a pile of ashes." + In this case you would mark that an object + is removed, specifically the table. The torch + is not removed.` + }, + { + question:"3) Do object descriptions change?", + explaination:`If an object remains in the scene, but it ends + up changed by the interaction, it's description + should change. For instance given "You + scratch the side of the shiny bucket with + a rusty key.", the description of the bucket + may change from "A shiny bucket that must + have been bought recently" to "A shiny new + bucket. It would be perfect, if not for the + deep scratches in one side."` + }, + { + question:"4) Are objects created", + explaination:`If the interaction creates new objects in the + scene, you should list them here. You should + describe the object and note where the object + exists. The object can only be created either the + location the interaction occurs (on the floor), in/on + one of the other objects (like on a table or in + a mug), or carried by the actor. + + So, for the example with the torch and + a wooden table, where the table burns to ashes, + you may create "Pile of Ash: These ashes are + fresh and still a little hot." and it would be created + in the room.` + }, + { + question:"5) Attribute changes.", + explaination:`If the interaction changes something physical + about an object, you should mark the attribute + changes here. For instance, if an interaction is + "You dip the towel in the bucket of oil. It seeps + into the fabric completely", you may add the + attributes "wet" and "flammable". This is because, + after the interaction, the towel must be wet and + flammable. + + You can also mark that, after the interaction, some + attributes must not be true. For instance, after the + above interaction, you could mark that the towel + will not be "clean" afterwards.` + } + ] } } export default Copy diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index c914320d8..f37a7edd9 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -9,6 +9,7 @@ import React, {useState} from "react"; import ReactDOM from "react-dom"; import Task from "./views/Task"; +import Preview from "./views/Preview" import Submission from "./components/Submission" import { TaskDescription } from "./components/task_description.jsx"; // import { ActionDescription } from "./components/action_description.jsx"; @@ -20,6 +21,7 @@ import { useMephistoTask } from "mephisto-task"; // import { SubmitButton } from "./components/submit_button.jsx"; import "./styles.css" +import 'react-tippy/dist/tippy.css' /* ================= Application Components ================= */ function MainApp() { @@ -74,11 +76,7 @@ function MainApp() { if (isPreview) { return (
-
-
- -
-
+
); } diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js new file mode 100644 index 000000000..f4e7d64ac --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js @@ -0,0 +1,19 @@ +import React, {useEffect, useState} from "react"; + +import {Tooltip} from 'react-tippy'; +// ICONS +import { BsInfoCircle } from "react-icons/bs"; + +const Tip = ({tutorialCopy})=>{ + + return ( + <> +

+ {tutorialCopy} +

+ + ) +} + + +export default Tip ; diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js index 953ce2a72..c8030474c 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js @@ -1,20 +1,28 @@ import React, {useEffect, useState} from "react"; +import "./styles.css"; import {Tooltip} from 'react-tippy'; // ICONS import { BsInfoCircle } from "react-icons/bs"; +//CUSTOM COMPONENTS +import Tip from "./Tip" + const InfoToolTip = ({tutorialCopy, children})=>{ const [isHovering, setIsHovering] =useState(false) - return (
- {children} +
+ {children} +
+ } position="left" + theme="transparent" > - setIsHovering(true)} onMouseLeave={()=>setIsHovering(false)}/> +
) diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css index e69de29bb..f5c313667 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css @@ -0,0 +1,14 @@ +.info-container { + display: flex; + flex-direction: row; +} + +/* TIP */ + +.tip-text { + font-size: 16px; + color:white; + background-color:rgba(0, 0, 0, 0.5); + padding:4px; + border-radius: 15px; +} diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js index b27ac93db..d2a0d1a6c 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js @@ -6,7 +6,7 @@ import "./styles.css" import InfoToolTip from "../../InfoToolTip"; -const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, formVal, formFunction})=>{ +const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, formVal, formFunction, toolTipCopy})=>{ const [description, setDescription] = useState("") useEffect(()=>{ setDescription(formVal) @@ -18,7 +18,7 @@ const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, } return(
- +

{upperCaseQuestion ? question.toUpperCase() : question}

diff --git a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js new file mode 100644 index 000000000..c9f80be16 --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js @@ -0,0 +1,29 @@ +import React, {useEffect, useState, useRef} from "react"; + +import "./styles.css" + + +const TutorialEntry = ({ + question, + explaination, + screenshot, +})=>{ + return( +
+
+

+ {question} +

+
+
+

+ {explaination} +

+
+
+ +
+
+ ) +} +export default TutorialEntry; diff --git a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css new file mode 100644 index 000000000..94ce0224d --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css @@ -0,0 +1,31 @@ +.tutorialentry-container { + display: flex; + flex-direction: column; +} + + +.tutorialentry-header{ + + +} + +.tutorialentry-header__text{ + font-size: 20px; + font-weight: bold; + color: gold; + text-decoration: underline; + padding-left: 4px; +} + +.tutorialentry-body{ + +} + +.tutorialentry-body__text{ + padding: 0px 4px 0px 4px; + font-size: 16px; +} + +.tutorialentry-img{ + +} diff --git a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js index 23a85efd7..14a3ee836 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js @@ -1,10 +1,51 @@ import React, { useEffect } from "react"; +//STYLES +import "./styles.css" +//COPY +import Copy from "../../TaskCopy" +const EventTutorial = Copy.event.tutorialCopy; +const ConstraintTutorial = Copy.constraint.tutorialCopy; -const Preview = ({ }) => { +//Custom Components +import TutorialEntry from "../../components/TutorialEntry" +import Header from "../../components/Header"; + + + + +const Preview = ({}) => { return ( -
- Preview +
+
+
+
+
+

EVENTS

+
+
+ { + EventTutorial.map((entry, index)=>{ + const {question, explaination} = entry; + return + }) + } +
+
+
+
+

CONSTRAINTS

+
+
+ { + ConstraintTutorial.map((entry, index)=>{ + const {question, explaination} = entry; + return + }) + } +
+
+
); } diff --git a/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css b/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css new file mode 100644 index 000000000..02aa22d3a --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css @@ -0,0 +1,81 @@ + +.view-container { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + padding-bottom: 20px; +} + +.preview-container { + margin-top: 5px; + width:90%; + display: flex; + flex-direction: row; + justify-content: space-evenly; +} +/* EVENT STYLES */ +.eventpreview-container{ + width: 48%; + display: flex; + flex-direction: column; + border-radius: 15px; + box-shadow: 4px 4px 4px black; + align-items: flex-start; +} + +.eventpreview-header{ + width: 100%; + background-color: coral; + font-weight: bold; + color: white; + font-size: 16px; + text-align: center; + border-top-right-radius: 10px; + border-top-left-radius: 10px; +} + +.eventpreview-body{ + border-color: red; + border-width: 3px; + border-style: solid; + align-items: center; + padding-bottom:20px; + width: 100%; + height: 100%; + border-bottom-right-radius: 10px; + border-bottom-left-radius: 10px; +} + +/* CONSTRAINT STYLES */ +.constraintpreview-container{ + width: 48%; + display: flex; + flex-direction: column; + border-radius: 15px; + box-shadow: 4px 4px 4px black; + align-items: flex-start; +} + +.constraintpreview-header{ + width: 100%; + background-color: red; + font-weight: bold; + color: white; + font-size: 16px; + text-align: center; + border-top-right-radius: 10px; + border-top-left-radius: 10px; +} + +.constraintpreview-body{ + border-color: red; + border-width: 3px; + border-style: solid; + align-items: center; + padding-bottom:20px; + width: 100%; + height: 100%; + border-bottom-right-radius: 10px; + border-bottom-left-radius: 10px; +} diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js index 9cde51aad..ad1ec4c98 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js @@ -41,12 +41,14 @@ const Questions = ({ setSecondaryDescription(object2.desc) },[object1, object2]) const QuestionList = QuestionCopy.event.questions + const TipList = QuestionCopy.event.tutorialCopy return ( <> Date: Fri, 18 Jun 2021 16:32:06 -0400 Subject: [PATCH 15/28] updated copy for preview and updated layout --- .../constraint_events/webapp/src/TaskCopy.js | 17 ++++++++-------- .../webapp/src/views/Preview/index.js | 10 ++++++++++ .../webapp/src/views/Preview/styles.css | 20 ++++++++++++------- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index 7b13f6573..d86b5a0d3 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -1,5 +1,7 @@ const Copy ={ + tutorialIntro:"We're trying to crowdsource interactions between two objects. These interactions will be set in a medieval fantasy scenario, and as such should not refer to real people, places, or modern day technologies. The objective of this task is to focus on two aspects of the interaction: The events that occur during the interaction and the constraints required for the interaction to take place. At the top of the screen you will be presented with 3 cards, the first two will be the names and a brief description of the objects involved in the interaction, the third contains the narration for the interaction itself. Reference this information while completing the task.", constraint:{ + tutorialIntro:"The Constraints section focuses on what conditions must be met in order for this interaction to occur. So for this portion you will be thinking in terms of what must be true for the interaction to have happened in the first place based on the narration.", questions:[ "# Constraints for Interaction: ", "1. Does # need to be held?", @@ -22,11 +24,7 @@ const Copy ={ constraints that are relevant for your example.` }, { - question:"2) Does object2 need to be held", - explaination:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.` - }, - { - question:"Narrate this interaction", + question:"2) Does object2 need to be held?", explaination:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.` }, { @@ -57,7 +55,7 @@ const Copy ={ For bidirectional cases like the latter, it would be true.` }, { - question:"5) does this interaction need to have in a specific place.", + question:"5) Does this interaction need to have in a specific place?", explaination:`If the interaction description implies that the interaction occurs somewhere specifically, provide a name for the place you believe it is happening. @@ -76,6 +74,7 @@ const Copy ={ ] }, event:{ + tutorialIntro:"The events section pertains to what changes(if any) occured during the interaction. You will be tasked with narrating what this interaction looks like to a third party then describing anything that was created, destroyed, or changed as result of the interaction.", questions:{ 1: "1. Narrate this interaction to another observer who sees it happen.", 2: "2. Are objects removed?", @@ -90,7 +89,7 @@ const Copy ={ explaination:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."' }, { - question:"2) Are objects removed", + question:"2) Are objects removed?", explaination:`If the interaction would cause one of the used objects not exist anymore, mark those objects. @@ -115,7 +114,7 @@ const Copy ={ deep scratches in one side."` }, { - question:"4) Are objects created", + question:"4) Are objects created?", explaination:`If the interaction creates new objects in the scene, you should list them here. You should describe the object and note where the object @@ -131,7 +130,7 @@ const Copy ={ in the room.` }, { - question:"5) Attribute changes.", + question:"5) Attribute changes", explaination:`If the interaction changes something physical about an object, you should mark the attribute changes here. For instance, if an interaction is diff --git a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js index 14a3ee836..8047ecfcd 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js @@ -3,6 +3,9 @@ import React, { useEffect } from "react"; import "./styles.css" //COPY import Copy from "../../TaskCopy" +const PreviewTutorial = Copy.tutorialIntro; +const EventTutorialIntro = Copy.event.tutorialIntro; +const ConstraintTutorialIntro = Copy.constraint.tutorialIntro; const EventTutorial = Copy.event.tutorialCopy; const ConstraintTutorial = Copy.constraint.tutorialCopy; @@ -18,12 +21,18 @@ const Preview = ({}) => { return (
+
+

+ {PreviewTutorial} +

+

EVENTS

+ {EventTutorialIntro} { EventTutorial.map((entry, index)=>{ const {question, explaination} = entry; @@ -37,6 +46,7 @@ const Preview = ({}) => {

CONSTRAINTS

+ {ConstraintTutorialIntro} { ConstraintTutorial.map((entry, index)=>{ const {question, explaination} = entry; diff --git a/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css b/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css index 02aa22d3a..365aa206d 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css @@ -11,12 +11,18 @@ margin-top: 5px; width:90%; display: flex; - flex-direction: row; - justify-content: space-evenly; + flex-direction: column; +} +.intro-container{ + width:90%; + margin-top:10px; +} +.intro-text{ + font-size: 20px; } /* EVENT STYLES */ .eventpreview-container{ - width: 48%; + width: 100%; display: flex; flex-direction: column; border-radius: 15px; @@ -29,14 +35,14 @@ background-color: coral; font-weight: bold; color: white; - font-size: 16px; + font-size: 36px; text-align: center; border-top-right-radius: 10px; border-top-left-radius: 10px; } .eventpreview-body{ - border-color: red; + border-color: coral; border-width: 3px; border-style: solid; align-items: center; @@ -49,7 +55,7 @@ /* CONSTRAINT STYLES */ .constraintpreview-container{ - width: 48%; + width: 100%; display: flex; flex-direction: column; border-radius: 15px; @@ -62,7 +68,7 @@ background-color: red; font-weight: bold; color: white; - font-size: 16px; + font-size: 36px; text-align: center; border-top-right-radius: 10px; border-top-left-radius: 10px; From 6ecca07b70b655a6db946fd643a1b3accee697dd Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Fri, 18 Jun 2021 18:43:58 -0400 Subject: [PATCH 16/28] added screenshots for Preview --- .../constraint_events/webapp/src/TaskCopy.js | 51 ++++++++++++++---- .../Tutorial/Constraint/ConstraintShot1.png | Bin 0 -> 44884 bytes .../Tutorial/Constraint/ConstraintShot2.png | Bin 0 -> 22225 bytes .../Tutorial/Constraint/ConstraintShot3.png | Bin 0 -> 32022 bytes .../Tutorial/Constraint/ConstraintShot5.png | Bin 0 -> 56097 bytes .../images/Tutorial/Event/EventShot1.png | Bin 0 -> 51736 bytes .../images/Tutorial/Event/EventShot2.png | Bin 0 -> 40655 bytes .../images/Tutorial/Event/EventShot3.png | Bin 0 -> 72090 bytes .../images/Tutorial/Event/EventShot4.png | Bin 0 -> 41474 bytes .../images/Tutorial/Event/EventShot5.png | Bin 0 -> 67845 bytes .../src/assets/images/Tutorial/HeaderShot.png | Bin 0 -> 98076 bytes .../webapp/src/components/InfoToolTip/Tip.js | 4 +- .../src/components/InfoToolTip/index.js | 4 +- .../src/components/InfoToolTip/styles.css | 17 +++++- .../src/components/TutorialEntry/index.js | 2 +- .../src/components/TutorialEntry/styles.css | 4 +- .../webapp/src/views/Preview/index.js | 13 ++--- .../webapp/src/views/Preview/styles.css | 4 ++ 18 files changed, 76 insertions(+), 23 deletions(-) create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot1.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot2.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot3.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot5.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot1.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot2.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot3.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot4.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot5.png create mode 100644 crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/HeaderShot.png diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index d86b5a0d3..445d399e4 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -1,5 +1,26 @@ +//HEADER SCREENSHOT +const HeaderShot = require("./assets/images/Tutorial/HeaderShot.png"); +//EVENT SCREENSHOTS +const EventShot1 = require("./assets/images/Tutorial/Event/EventShot1.png"); +const EventShot2 = require("./assets/images/Tutorial/Event/EventShot2.png"); +const EventShot3 = require("./assets/images/Tutorial/Event/EventShot3.png"); +const EventShot4 = require("./assets/images/Tutorial/Event/EventShot4.png"); +const EventShot5 = require("./assets/images/Tutorial/Event/EventShot5.png"); + + +//CONSTRAINT SCREENSHOTS +const ConstraintShot1 = require("./assets/images/Tutorial/Constraint/ConstraintShot1.png"); +const ConstraintShot2 = require("./assets/images/Tutorial/Constraint/ConstraintShot2.png"); +const ConstraintShot3 = require("./assets/images/Tutorial/Constraint/ConstraintShot3.png"); +//const ConstraintShot4 = require("./assets/images/Tutorial/Constraint/ConstraintShot4.png"); +const ConstraintShot5 = require("./assets/images/Tutorial/Constraint/ConstraintShot5.png"); + + const Copy ={ - tutorialIntro:"We're trying to crowdsource interactions between two objects. These interactions will be set in a medieval fantasy scenario, and as such should not refer to real people, places, or modern day technologies. The objective of this task is to focus on two aspects of the interaction: The events that occur during the interaction and the constraints required for the interaction to take place. At the top of the screen you will be presented with 3 cards, the first two will be the names and a brief description of the objects involved in the interaction, the third contains the narration for the interaction itself. Reference this information while completing the task.", + tutorialIntro:{ + explaination:"We're trying to crowdsource interactions between two objects. These interactions will be set in a medieval fantasy scenario, and as such should not refer to real people, places, or modern day technologies. The objective of this task is to focus on two aspects of the interaction: The events that occur during the interaction and the constraints required for the interaction to take place. At the top of the screen you will be presented with 3 cards, the first two will be the names and a brief description of the objects involved in the interaction, the third contains the narration for the interaction itself. Reference this information while completing the task.", + screenshot: HeaderShot + }, constraint:{ tutorialIntro:"The Constraints section focuses on what conditions must be met in order for this interaction to occur. So for this portion you will be thinking in terms of what must be true for the interaction to have happened in the first place based on the narration.", questions:[ @@ -21,11 +42,13 @@ const Copy ={ constraint that the logs must not be wet. Use common sense understanding to determine - constraints that are relevant for your example.` + constraints that are relevant for your example.`, + screenshot: ConstraintShot1 }, { question:"2) Does object2 need to be held?", - explaination:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.` + explaination:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.`, + screenshot: ConstraintShot2 }, { question:"3) Can this operation be done an infinite number of times?", @@ -52,7 +75,8 @@ const Copy ={ "use milk with flour" or "use flour with milk". For unidirectional cases like the former, this would be false. - For bidirectional cases like the latter, it would be true.` + For bidirectional cases like the latter, it would be true.`, + screenshot: ConstraintShot3 }, { question:"5) Does this interaction need to have in a specific place?", @@ -69,7 +93,8 @@ const Copy ={ However, for something like "You throw the spear at the dragon and it recoils, spraying fire breath into the forest around you" then this interaction must occur in the forest as it is implied by the - narration.` + narration.`, + screenshot: ConstraintShot5 } ] }, @@ -86,7 +111,9 @@ const Copy ={ tutorialCopy:[ { question:"1) Narrate this interaction", - explaination:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."' + explaination:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."', + screenshot: EventShot1 + }, { question:"2) Are objects removed?", @@ -99,7 +126,8 @@ const Copy ={ to the ground, leaving a pile of ashes." In this case you would mark that an object is removed, specifically the table. The torch - is not removed.` + is not removed.`, + screenshot: EventShot2 }, { question:"3) Do object descriptions change?", @@ -111,7 +139,8 @@ const Copy ={ may change from "A shiny bucket that must have been bought recently" to "A shiny new bucket. It would be perfect, if not for the - deep scratches in one side."` + deep scratches in one side."`, + screenshot: EventShot3 }, { question:"4) Are objects created?", @@ -127,7 +156,8 @@ const Copy ={ a wooden table, where the table burns to ashes, you may create "Pile of Ash: These ashes are fresh and still a little hot." and it would be created - in the room.` + in the room.`, + screenshot: EventShot4 }, { question:"5) Attribute changes", @@ -143,7 +173,8 @@ const Copy ={ You can also mark that, after the interaction, some attributes must not be true. For instance, after the above interaction, you could mark that the towel - will not be "clean" afterwards.` + will not be "clean" afterwards.`, + screenshot: EventShot5 } ] } diff --git a/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot1.png b/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot1.png new file mode 100644 index 0000000000000000000000000000000000000000..9d708616959de650045561f806b5a67dd8b09bd6 GIT binary patch literal 44884 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 DLm%NG literal 0 HcmV?d00001 diff --git a/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot5.png b/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Constraint/ConstraintShot5.png new file mode 100644 index 0000000000000000000000000000000000000000..501c0b1b6575bac264818e7d955c028811b17594 GIT binary patch literal 56097 zcmZ^~1yodD*EkFVNH@~M&>#$wN;5Rlh)8!M-3<=XEl8+@fC$JSDcwVNNH<7#Gvqh^ z;(g!sJ5Y4T%IAX_ZmPmgg2TM*qM_l#|=Ddbt<)QdUln!t*6riXa23(PheEW`O(VFvLc! zf&X$5RkAXT^ZoBH`Y6AnPrtgZv<=X^ z-FYg6l?2B>=!~x5T8g10ViOgdS~VI*enx2(JYgOaLy5#$G}q6Pg>Fj2IKxn-8|9(= zDLyrT0#4Vpw`$U~G^@oZg)i$2?O0K$3F(IiHm#&Zsk0fp$WP_WQ3MnuXb`pg76 zGsCBO%^nx|>Nlai51YTzSHLTV1Cj!TZuU3$uBDNsFi{kCIrfAXT0432VpKGfggo?K z8}2fU49`P^R5D0``K#mnvSzfAD{rK5WqmWyBhML(nG?ghian~83Ob4ca(+^2K3DF{ z-c-W8

Z@vSF*xx>&-&piK!>$4np^~A2=Pb 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 literal 0 HcmV?d00001 diff --git a/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot1.png b/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot1.png new file mode 100644 index 0000000000000000000000000000000000000000..abc9b31ee6965059c9478d73a53006d8ca1ea39f GIT binary patch literal 51736 zcmaI61yo$kmIjI>Xz+yKZVB%0?iM7t1nEH2xYIyzw;%}~+$GSsTaX})(?H`1?k;(q zJ9F>MdvE>IYn@fqb;?fFw`+fU?~2mWP{hF^!$Lwr!ckU|(?LRd21P|h~oGn*2FSuwf{!gX&0mQ50gs@HzfdZup= zRqSji`#8J2J=`QsZeMt2ljUtm?B!m`L*@TG62%c8B|{3=SR@0bKB%;)q8j^2H$D`Z zBk_|O4O0ADTW5u{?nn}|O=;R2R668DoS)cKB(H+}e*}_Rr5Y$Ea&vu^ORJEG+gn^=eD)sYSbR?VG_r;*vkW)`p2uI^1W{32Hy3)vZ{#LrJ7x z&@Zirdm|l1DE2tuJ61Of9`R-j2?q4?%CN3ut~2GwIeXQYD&5I`ww5Aqpe`<#zq@Yi zuF6-(6C=5fn9H}x3MNNUT&BFUTo0c7j{ae>y!n-$<&(udh}7Rp@SX1mJ02A(1zbAV zlaOwoS)cWf=x=lIc|}r(JFSjIS$fGkyFh~gi39q;nSNr+h+4M=-hFs4oW{)ZL)TI4>gBL|8H;Yl z(1)I;kf33L^DG4}(`-{yB&~Lb&j~eNvB6##z0EgqtVUQtU4DUqft!LHDnvnj&J$Wo zT`rK$6K-v!?pqtN7C!Ug^=NEl2}Ztk4PGRsZj^;yf0JP56I5xMm$7KvG{}WP%C#dh z&ErKDWEq${!B$#W`az8rs0%2NkQEDRA&fmKdLhj5PpWHgn=z02W~Y(Of}KvNE@&}i zWb830xuw(ySo@J(w7+yxnY$U#9z!{e7kEHk#HKwSNr1t~u1G!Gv!zT)P4Z7Ef z`db`lB)f8}bh%nDioUg$a(|4Am+R0bCW~UqBbrike`^%UA(fuLZO_>Hx=LR2Tl!?C zJ^3BhVGmMqJU18b7{U4Ag5is_Xd4S1M*;m$sg|jRICDtH=N^?f`@Iqya#``bE{e^c z=uhObA~Xl=HdRk>Zk*bQCF9J8s5e(`3{c`M^1yGaMV$px_Hzw1MsL{@AhG)LqVj%n`?GltLI7vJ8!|V(w|pP@s{!qE z3=T$sdOl_V@y9d(6}0`^Vv+n@{hXD9OQWrWo;~GkYt?Ll`n=~<{M7iY*|!eG`%hQc zl*#dp8l|}AcERJG*}5W!?y*kNcGEr=w-=Nbycf8p->Ty{6a`hA-g)IZ#W*$P#OJh` zC7T7Cg{^XT2%rtt+B%a6$8N`l#2UwH_Qgijg=2=ZQ|a>_EY;%O^<9QsJilYSyT1hO z1@c&sg_3-X+BeY43y6t0}8oHk6BvdNTP>^_a8o3u+dO;pVJ#aE4(H{$)c*v|t2 zUY;1PluRJ61NS~}6SpQGCl4I-H2KMD9hhWUH~4Mw8w@(*8oRAF`f=1x{{t(CHGfv5 z!cCvL5?Gm1_1b9ueOK*N)B3{8rFSr~+M-3YC5^_ah7L=`hI7a$1opvema6f(_Vtp% zg1L(nr5L3gZYG71BEG^+EPg^Mg$pcc?}zJ{SEZ-_LBDgf>s!}yH(zn6>xaD`sq_1gRq)mPPG^H}rbPJB&VO~Ou>PM~GV<>yD4E63iG;)C97 z7xq^-8@tMcb=lr6seW*Wa)=p65D&!_~=5+dWq6hrBaJv}2 zf^A+~eg4VPQ%YH|^!W3!rz9-EOrU;fe$J@pY@|c z3JswGvtD~kWh+pnT@6yYOqPm?=`iZc^livl?pDG%>KW^qUkRhS=({{q8jfbM74Y50 z?gVxpR$xx>#M)2$9Dsn^>e$eC!|#xv3brK^PC3@xc0F0~E$ePx69r?VIoHNXZd2vo zx^|c+K!z6W7Du11a(e^IIp$c>h~Z|xo191K{FCgpN3EI$_Fo6Gucw=^d2q0^KDLK8 zZEfhJ7j3KFr`xbOygzF3KgZg@I*m4FMKw4wE9xkB*1O;1u5g&=n*UsR>u|W$_6niFO?j9)E;UHr>0Y8tBbZ6^M^kOnvn6 z__d1ZS965DXkfl+_#G%|9k`3^ECpWM<^*&ti;(!#-X>n>f9=zc5Twedep4p@v1HzJ z9&>+bPj}BaAzor>d2QZ#%b>*Ei~lRXKE<>sW8-JyL=uz3kSXz zT}98Q-c?8#kQ*sBQgsn~A8uVH?%RQ!olIIu1HNDCZ&ZmkF)ur{^>v+ZIE}9eUY{Lb zuH@bao#buh&-K+SDkQuOY`PB!%(R2m4bdiWN=5~`c4f~$?Ufzu{)&G-VLvgFlPOW- zyMFhrj<@oBZ}gN?)J)mz(&N>i{Kuiec}NZ3AJU6o+ea=dl%PV;9h}3*?!;-{{3wwB zy8lYdH}}5tSXQ}4`uHeem3ksT<>{gwv}6bUb;jvwPS&Xa4w%e^!8zAeT2OOQNF41I z(2zi0$Wp4vLAVpZ&!;2b*Mew9&i9c}{$R3B#Gr0qO5q&5%so9|Lc;B~#UTfBAVq85 zgwh1Hw&3um{@__QNrjZ2Fv$HrJPx#bfmDVZ#0hQsMxH23VbI7XS|)AK>o!yw2Z zh1{`Dss}uooP@AUl)$%dtnpqFG>1^%2O@Ww#W&bk?K~lDk7yf1Wm|Q1q_>DX2GTQR zGNk8-95UjOKqmiBUICc}3H4v)C`d>V0HkOCT}K0v{{1B)p1*DWD@9EXM?y#ZBSbvj zc_{y`{S2Ci`tLllA>tj9w63hOG9uNrcD1o_a1h5{#oa-i&QM*8Mi%61LnFY!#lb}MyefA=G2<7Vv&aCQfP zoM`^`YiR}Ya2Kbe`#aEoe*ZO38*jk>jO66@-=Br}K+eB!IJr5vIRDc(qN&*5QV}hH zw~ga_IRFr`W{5E)c=`Cm{#F0~_vU{_{9i2%|EDE45AXl0>Hm85|81)0X5%Ug0wTtA zm-wIk`tNc7_sjooD8~8s)Bo2}{MS1Fs}!-&5?ErK|JgJNEPc|wO2j@=0OT~^AyNd& z{`LD?#)5eMridr2fLfn000~J7Nm)+%oj3A9Hs*u4?(Gns&gT*R(hu|KAIaj{5aI^xRQ{xcdc~1W)}s1{WI66X=Q)8B7h^4UJLAiuZe7=YT@&ZN0bSph zdF^hq9^G=zvxdz?d}I2*kf4MI(OO{qQzG>SC51FeKRV&j{vYf7ZC{9?mgddP_5xY9 z8=vdhKP7n-$n?;W(>imU|Epf`OGK?ontz(o-{CI8x>GbIb~!q4tgfM|oGpGwEzBJw z;#8cSHych%fD-jTTj0mbd9Uvi5`O0ExOdj{P_($_FuQ;JhHeZRBug}(tM9pwY>X4W z%7leWXylG-G_%drp4@c61-Bm?|3_ndTIW@tUoCxjlFRvFbA@@?SE)7rjEr+%FPfCQ zVwD^S)z3%&aan>1s30=Wfj({ zEnLxq+6$xK_OW0tI$&&2lf^%;BMBac6d2gF;u-dg492sVgNaO>Y$w0lr->m939A?9 zW4iGg7yk9`ig!nG`WP`qGVSw;|6_{MNc9eVID%@8Kird7ACJ7+bTxzrfNh76JCBL$ zUpao&Fo&9s{>MWdL z3J;kpmF9n$dkL7=%!*UmM;E`J`#&ZohlGMdr#>nGb4*D#Q75t&d2vKLL$fC|BZVzT z7P@2@O#rZt>I?(^^Uf#I;?qwFsS~+6B=!#HQ8?wX+j}%^XIpV9=NG}@_(Jyw z-&cm2a}UhGw>C{v3gj);3F31dkB1=8kL%U;mfhmaW$^vsFDkzS?xqWX9=SQMoyBwdv!@41=qn%8U#%SN^5VhnaZuQTGFYy1pJ)dbUHaB_P51K6Hq#Oz? zU&jG+9J3Gf5NFFqFMGb@lu6*@rQfBh4|+Mn|iN@t+3X#CqHjn`-I)jDxN}Pm~qYxqlvht+XD)S@>o<$VMCn3IW0@|74NBnIBH_w; zm@j~$%HH_SR#IN#X(|D{C9vYI>(fv{%TLgco?zH?r=_KM;SMZtA%>0?+K5QV8OqV1?xb^Ow87s%BZ$Ne8NO7Myqhwy^5|`$W~KYdTN7o+<>8Kf z9H+z@T6~6=ZsrTv0Qzk|5gS?rkHGPu`R23311aA3?5Sbe_71fk*DGGkpn!d2x62`i zo0o&u_>vEg$AOwVS#IMdSpo|dA=1yX!`2V$J+=}I7{|d)nNI|z#^@MRAldQMm_^%6 z_ET2HM@8Gn0Ga^Hw!w1*p85Ohax%2{i}32Bl>KZ5A{(x1`ExU+^Q!7hdFy!1!*PN| zHaE@g3Y>NupUTN)uG$p3L7QW7i)6&agB(<>x0Cc!Rw}RKp7yG?l_^@ZIk2 zGg)RnPf2|_GMD$ZUu+2Zc3Ptd04w-=Pi^qNtcu#T<5}*uKp`}at7W%|_~yG587yn) zj>RY_O2c#6WvCx!p~}&`_NiCs#aTqx(`5~&+$gi;?eJD8k%p2PLhPl{a@imYR+P7! z*SC0lxCK;(DDhcz`0UtitaRwx+t1XS1(?gf~=KP(|kjY{EAqBV4 zC@IcI?Gnyg!8!Bo)7lcNXA4OsK3|xcJcuKf4mj7Z#>?AY+(!*aMe;#RcgK?a0>2qw zJQ@-K5WLIBb;V;ob>pL)(HpT;uw%h==}Tw4_`PHdfrUNfEeQ#3x+=Vrw_u|t+;)UB(%0{C98^P++IZBG-rZ3h4;+Nk|FoU zU6S|b0-I1>3gH!}Df!pxnk|`5t-Jj`LziK%&78X)wmIF7dt5p$=TzaRq9rEloF&*U zgoDB8R2ffKYaw`^S;->%mET3WviTpgLH@Ei*>iP!vsek|ITkS*aBAB% zY(HyDykyJu&(n36r~srmv>G`}*|!wFy@o3_)P`+fAF7y~Lc)j?O0}b35UIe;%ig8wyOlR%WZ3H=-9= zM})UKlvw`c&}feSK`h2*agOia%;UrP#BqC7O*KhsQG(c-*GQScxz};PvERz7-*L8C z-^~R~A@u3=A-(H?5hr)ro{mNY48OwLk7%EL}ZmV}md z1_PhYb44{2caDJ|KVu`wc6N!saWyF1|g-Wsr152Ah5B zL2gyMW`6{MjxTpZUI>*c>82PFV{ZQEZhqQ%>x)1pq)q8=Anymf{<;IQzrpPNgrHo> zLl-KUEX+LGPeOZHtlL?w^5WNI`%|rn=St#}@sm5to-iQbX{u(@U^+ZG0UYDAPVx;d zQ3`uwKf@oNP-4E7(<%Y?KW|}&EYKaMzvEE>-58AJ#cHiEj(q z@1D>837FiD2mi=??|d3!R-fIz`xUI32#eA9_w&Lb@s zC3C@DNEcLu$PEr!YHh>>Pc4}u4nlzFF;H0~Fi%GyK6)U+>%!c?%*W=)Zcr=Mpe0Kvfi+^=Ve~i#*#lG#x6l!k5}$aa3K6@+U%N8r@MgSj*_^YXlF+A%$I{?TW>ZF3x%Px)Y<7%nyxLS(J zwU-M)D3QRG(~eyH5+`Ag8KT4%cmQ+8Es-cUs`VPUJMl(2;1g3$JUYxpw#Nd(yx@9t zfsiL={$WzPtfU)E&2el=;iJ2%o1R%sDOdPt2~- zcqXq9;rbj!mB)j6n*;WAbN3d*Q%y}&Y`6Vr3p_HWcTl&Gv;b9{D+ zNc(Z^$}WN<}p=f5|=oQ77_WMR*XqM;# z(`FT~ed~L?!+X))sGRsd?uI{Lp0rDCN~+iG-j}lms+*OM>3$moDaBlox26}>a8J_* zQ|mZ>5$BUdr@cjI22yr(e~h%*92{SMNb zpdejINuzO5Q~GxvF06A6j@!~cTr+Hnu$3fzw6Tas$#62DP`V@F#o*zx0^TPu?wK5V+-LD!fFxB zJfh2IR@3T&ht6%=X~qgGgBqE|%TWkMOZ2Bj;C)F$m(BG83va2z@4@gCPYo3Q z^{u2x9yNlc?%oIybNVQ*6eaxD_lmIbN0<_Yr%@|SE9U(Co-7|xm8YwkR=;}dR21N* z`~nluoNoDTV8RT~QtH8zoKPmjvF9^m{!mq>LOkQvzF009T z27H?_Mx7lmz2HOsV@@NIkLf)B^w^Ra`r|j^Eax4i2+)mCI3&DB>wVPcq~jK=m*%QO*=RUSsFIW#i{dGQ6G~o( zh8|)q#}RTYosx02+>FR-i(;Q_K{kGv5>>5b{bk$%X?M&6nfX*U|MxtnSIB>@0GaYJ!2wR5&+ zDaNaX)f#frzt7WkbI6-}tG3=8JdiEClTo14eiFl73m;C5NfCRgPS+Oq^WmeP;!S^< zT06vaNYJvwfd?oLM8O{9eyG3)6msr>76LJGxlz&vsxq{S`@H{}dtaszh6SP2w1>(A zd)u8UD@Zhc!u?@_)$a81(m~Bv z3elI1!Jmuj!?50bq zj$_J$AnbyZUpcvT#>J0whE3A$1YVdS&akv#d;r4A*L(-F5yJ=IYuo<})k#&d)_VON z&hW*=)5aqbS5CE3JMY_TK$HhP^dYUgH>#5fYFPC)#$gduc@TX81JsVZdq+FE(GAjT zKxW7>xu+$FMl*(ix&mw{reZOR-X;x}yAx1>jZN1<_P#e&0L$8nT)rtNGTUTlkB1EZ1KEa&hZIuRpoIw^V zQz`WEIFre;a{27_;93R?q?VlY^<)*JSty7E} zq+1Epl3ydF#jO`f@a58DD>mwq=G3PlIQTwqp+7V%J7cb_U)r43Z88?CXt$GHAH6*O zRd4e^PT*yQxrcq-zI)nAfjDsrNfHEM$iMn{JJ2h1_JdxuU4d6{PU2kr*m_BQ!^?5G zd$-SCJ36!6fG@<_hdNVEpENT+l^h!e3fSuodYvGCWf6Khg}Zk!^Xf-dBR_;bNMP?B@#!b>L3#O`NxMPf-!7VP>|p|x z>235sT{i=q#DjG#N9}eGuTm_@{_5)iXbHS=)|_A5GqN!l>}SJRuR4MRv}KWhw0KX> z@HCw2Qb{GNMDiCM6iq53TjiPuACigz!CFLW+tH?wVtGz3oQ5YH&jyl%7%Wj=cfkM?*8`U zwPc#8G=vVNTjVV=?LK}OZ{BxD=PNmGr@lhk0MF_fFxp>rqYNpLfxauWD^vOY&JUgC ze6qqJMGd&kb`bi46GyAk-tqV)6dCy$N=1cZQ6hXxWoZNwVw3c6j6<2#&nVE1&U~A_ zuL(X&8H@SWlhz-mJdYrJ=~4_y24`mG@53++<`H68ITC7oOB0JLyp{N@3ilZf3x>wY zoTV$Lab11Cd&_QwQcA7%kYc64ST)2cKE`0@@ZfqPg^~I*D{K z@;XDI?zj2bk#Tr5>h{(PEqx2*uCXn88EISz5kUXt<1ChbNq?t`u8+P4lT|o{HAYS? z+k|Hwk;{z7e;NHRno=kp4|<=N^x`LKw<|5Q6+1z3gfcGJ*C3ZOdcg^zW{*{XPkdFP zR|l%z(|#_rScv3%ms(ec4=e9pGgsB4JDkpaa#!r5%4AvdQk%_2&P%IT2$m-Ar=aYJ zWU?9|d+Yc?TF3s{bz-l$+G3eEF^>BJA3xtX$J%K>N2^c2f<$`=%Zf!U$l9~XbI~S! z5>WJO;Y!xA;HC1S1vZK-w$RW)T2Q9oU3oT>UL@baWT+25z0WC$Oju9EQ=hFAWfYEm z#gYNf_97sE2QaxEfIRN82C+e_(@T8jRls>y~=pXoXBwzgGWhU}zZ@ zT3;OI`Bs3&HdtC!yX_cnee57pGi|V}x4aw~wyYyw_z9tQ zZ;xkUz!lA4l?4rnD=$F=@NX!?qFRkrSdr$;)Nd zG>!BJpE{7x+H!f3E|kFP5hvwqIVysCnG(_pNYPR`x-kj!8B_jO?acPki(stl@kFkuopelUel`Lr+l{1;k$#p`0|jF3?}^34|*AxGLfjp zz&#aHx+?Y;tpjawp5g+4@VvPY3(A^|jvrbT40H25nAatOA8YFUFpdn3M?&d7w+7(D zhnSf9nQc)}uGz9ex1%BIs^kI2lGe{Dn-)4&QRo1D&i+$EC_l|ym<@=TottFpL6Ah%s#*at`C*4jXLFfX*rT@Tf#jpeJL{um_A5uYd-8mUzIRX zx(xNIFHn6i(o1N9DIqjFO=o^FzDp(R-}nT_N}+gV#8Ob_0TjRTA*!Z@rmpX8*RThI z4g6>UI5^JhXOGBBcn962yN{&uXbW`Wwf_(oFa`e>>|J?fk27UQtn5fDpU@NT;jiZF zyPFX0oOlhqFaX9CE8Cpg4GK@y!`kNjF{pbB|qM1!fV<_!2>vT9Y$ zeo!lXkS#MtzmdplCg4;rA0lSAPZ>cw%jzXBPO$5EEH2HCU35=!ub1b$NI$&xDB?(( zBS!PsT=^N0`WHAmGYfRcaD2BjY3xJ&-)Q%dHiVgCp((bVH8Av3^)XO`NDM=9k+d&g z@RR~v{~daH?5k*KuU}*)m!vm`ab!?`LI9CdAHv&hADKF=%$z;5E?6jpHXv^mfJyYG zp)Q)3WD9me#yb~?u%08v>+LWqCk-JG)0jT+kgfgi(3^TaJ=NGr?AKRIf1%RNra(k! z>_2C;?|3@fT#K*hR|p5N>ojOzfR-c3#(=ShOO?7S&heLiV>X7R_*J(~;2+28>A8mB z+Kw7E8p>X=nKr4v*!YUT#z^g26XIBLvJCGsAQkOL;G<40B^Tb?zVqH;k@zx1{v35< zJVOZL@v4X@N&0Frgrq5%0~pwDU(L8%;};hf^F_CTwzZ2{9T-CZ=!7cE&%DBBPs&hu z(f=Z~lA10~nU2U!#Q()2^yGUOy=@HQq#<@9k9n14C|h)xKG6BbPcb4C_z4mE7ZrE< zI^9fz`%E(c_(>^-vb6i-tBPd#KoMMoZ$<7KN0b)d0+wdZ%uW5_yA784#KZhGqGzslm>T!6OJP=OtkI{j5M(@JCsbRjaHPEc& zjO;hLh_4sg%wQO3o!mdm%|`r5YFa&lj@t+Tb*Wui#>}ybNvHNB^-7K>{U0EXR`{8* zP{?fRLQt@)J|B%Ec1Y_f@%3ZFex0)0)W^5$1H{w4hcb1Zk`VRx8xybS4CjGIWx4qm zJT6h{YBDl15q;%eB(HNC)6Cf79jB#L@85N9-)FGP@C7vXM>d>n zfev&08WgN=qT`sCKQ9h{Gm)aG)nkD?&pnp^%_@sS+N0GE){6N~syn zR+gctLFIB}MqYIx&#b(;d!!l7E4ox$D-b3ov=>MsB6hGGdipPDfvCfEw@EjQRb!R< z@SXGk-{K;Hvo!1;8`>}7hPMX__U`mhD+sczdKZ^O>BUg(+y_g?6S+)1raE0(bm_vz zFzNS3h*%fo@9rTE;}o1TBk5RR)2M97Yf(P%%O6;~|Yglh)26V0SGgvA=p zEm1(h`=f+yOTLIOYy}oziV3HND&zH1kSzb`Sx3-bBHgT57%`f%@WtE zXWY;b4r7sQJ8E^{kYu3ps9E35?h}$=3jC`+&h%EBrp%+@>hY9TKnwdF>E2m`gPQPd z%Ri6T6IuOt(!{b>0$2434>+EmWCOYL8F)%1{IoXpp+!w{0s%`!SH{kV9^-F(wA^Q5 zTbNBiM93*r3H9OItE7cIwz*xaedP*L736Z?Dw#r$3VWSMD;&Lp8A_L$n#v59Z#uKy z5l3HXpjO6nz0T!gA+mp!Mg#W(-8jM-w9I1|S+?}rGL(tP_+f9vn;t5Z-GmV$ax9CJ zPST>Q@Dghr;ZCARBUBAp?W9|u>zJ!Ty@AImZO)8wb?Utvu?8X=G1Jxc=r(z}Rz@~J zxbWFVs@0qRZfuvF5nD}L)d%8P)T*Lq935&VOBoscP?EWrw-X3ks0jCS>Z@D!IdC}4 zWuU5aa71{C%g72rDyeNy>Zqm(v4Ov(i=~Ys(1$*+j|5R9s}z=+q~2;@kl)fnCl=Hm zFb4LNcE$H?>MSVB#JI&P=faBbt>ze-qa%9DnZ73J3bDJs`HN*F9_kq4h(j zF8<1D8o*aoM3{wh%x&pelA)y1<1tef2KikD9u;YtL|d5)t9NM0$8VMkpY4Hy&Nj3q zIJDy;@Yc9jnUQ@Tyf;uOiB3@|e>JIih8~K({Wa?*x+-|vizkxR;u^Q*DMt7BFwoT##_#kbQQafN0-cSTdj^hf3@T@J9B|2_HY%MWo)iY zaV+n@dHfKaDOPMCDec}#Kh_Z=exv8_H7Sk04L+0mdX74~+;-CAl{ijr=e3%qbfZfa z*p)7(iV8R-D#7(y`(=RZdfcI(d%pL*#S3hle*TK~T7#;+>g6v|M<2DCo8f!9Q$;UP z$uAR+2eWS32BSYa_OEK^&HRMBcyio!(7%lvK$k^*POjc(NlL3weXp2TQso{sE6p?{ z0S~O+R$+W$-3St8FB~H8oT+iW{;UjIm^bx59T?Zda_t(R@<-obY0?`whI@f~liW0x z`pz~CLbJ`EkF=c2rJQH$9%YMp6T)uUpPyxzi3cCHn`SSIQeotJ+egjXfv*KLvp_SA z(-*5m@|4FHF|};BQBmh5fwmfZ#hMb1^>HVxq2pd!8y=pQ#`f9sNP4hT z8qmRn>Dc2iB~=)a*%3m0j(e@Pz#oZKf1v|fyzY8He(L-B3m&(6uD_briZ%QI%mAVX z0dC6A=VX9!YQG%6`NQCgYHF7V)BU- z;Mw<7(}-1ZTU|B1;+Q+S2g2j8@|CLF&s3UrzB+h5sI?t5megN++|x*0*pg(yMUroO z;^zHbzyx%NoroR@L9_+$tL(9*4TA3>W_v;XEeB){k{tq{QH{GYv~J2Ik-B}@>z0o# zb~TqqS8u2JDGx)4&%Qix5C-lUiKJl#mPi`9Ps#Vqk5fCZJs`6JBsVlky>cw}oeRvp zVZMN@2S9vvX+RasYfbX7tO30v{-?Xx?s2=g^yA2FRrxq5#I4R%gYxv5>`rG@!z_@f z9z(DFbSvb%Bx%Rwen9*ebL%*@`=@%TyG#y6i;c!^==Ca7$$3POFi7*K4-tWIpndM| zgoXxgh{Jb;)#lZ9ZA%2LqjN(EMA8)eHBLkcFzvNOXiNbKn#%e+g(ogzYkwx5KM&_^ z*T-YTruK0> zAiD}V!JNt0e@+LiWU!?kV1~$McgEceKuB+1M50|@OlvA?hSOEwan2}h8m?%qP{}UU zb{Z9#p;TEZi49hJO*i2Gv5pOV71xkaXBVF`Z%oASqMDokl!*^&VJ*%LQ=jcPEQr3yda4TQoRGIzxz#YNhJI6>{-!w<~l4 zJ5%yQU(-XPyXV7_E#bzZ)`wuhlxOQBZ^3?aa?Fw)$MUFoaj%{X$q*q}-!fE6Bzd#` zCC!sVNPw8_$F;2#&G9h&X(idsJhg|d?*%UisD(+&4~!kP>v1x?y*K#F7sJg%X$img z%p8vdAYwmJL-8&EkF?LoHA@b-KG zUVAJat7va6--d8#D$u=L+^1U>Kr_C9aVCXR(>X@xIKq0u5lOcZrh zQeeGSmZ;R#h!hg%LrCNII037_A;KTi^}f9y2t!sKXS<(<(~OH~`;lf1p)Fq|6oC2i04E5n_)3UBT2W54u~3DzlpNR=Pw ziky@ZSfI_1Lg$K6CjYCA`!{9}DNAnl?&5)b;t)%*aBOK z>A$S4I=+ju_>cj~ba}01>Jeri5w`k24=AA3-sB5?awxm=dL_M~X&=!`{jj zSX-mbkkv`lD!CC!ADvagfP*&f@gBvTy#pTrY#;z*t12#)_8D2L4vBhxH69a?UqR@x zl}Nr9or6r(YMnCHgEtW!bU?Vm8JCH03{FlfyAU5gO>k+d_b#iavlWyWt*-W>?LV-1 zY#-D<>La3N1ZHjgunKBUVKw@gKXVvz)A?^;(Dax5CQX)hPGt>naWs(t!P(jy6>jQiT)M1dL+t7~p7yxmJF3n`ITRbAVR*3B{ zfQCqVGQ9}x7E?VJGqd(i(n0PmO$4u64~B!D;xJ^SM}Yh_RGvkOwJp!uRaw@1}&M|&r)n;aEc=v;eyaF3?CPp?S( zVFx4HSC%0Y4DB!g`xo@Rox&82=)qT3s=1v^xefdaQu|Xa&I{KdIjSZ5`F)MAh=7n>z~2kn-9%L^4GePA&wA0I>}ed! zzHJVaEEiDpMs99eEA?w&$4oG85SH0wQ}}kK9Wl#=%qwjE%7>xly=g+m3_7~F_LD3Hs?05(ahy?NZ%cQx!niZtLKm`8>ZS7x$V=;YNtTqS$D24 zFdgBa;g_k;%}E_F=K3b>3>cw%C(Nz5+~FnE$BOOZ4HU&U@CJNEakxEw>^GqVa=JK_ z7t@v40@tn^8rmo^t3ynK@&eEXYOX9=VR{#=s0MUue=d=H8~i~`VYQcwd&4T#Hw0!8 z!Ah)jwt$LZ2&Z2hva%!p`%Y_P6h(-GB_n?^a1BSPL~*V_FLaJt zV7Z?)iWtA!YWH%I0;JMcrp zr5$_wJS7{_>e9n(QH-qXd`G=G8HlZHg)lO~$Uw6Za?j9OP~qmF_~z?_dO(yqogXdq zgcnlvekl0V=nG#qq!lRhemNR!t<7SqBL|Jcsn?P@eC{%udiI_Had~X1TvvW~O?+EK zz{%2aVmRVSE4~3fr2k&+KEk(XpA3v}P7C>@Jxt#Ai60`x=%Q0NOWh688CL?=I@124 zZwP_DY{){uzx5+Yn)*(Rjhg}(dnmmQoG2h<@**mg(sW10FX#WE?XAP2YTtHY1w;^O z2|>1IeNQ5xw~hElpj5g2+XX_OR@bm)?lk{FNuSno6Z*bTnG2m7CIeBX>DHv|+|;&9#~V9~z+@lQ^Qn#XVLK z;#$oICH67Lr>|(Tg$7a-Y`-|PI=t!BO6b1qJ}6-CetS;2+BQDqzibtGu-@^5Rs}zc zD^x>M(XZNzTcxuH_1)G8ZcE#JRO5g;;YE$bU-h;(z3X=3GZ~@8EU8vSeuT7^T_1?j z^V$=`|6GQivzZqCDg=shQ!*GTwOZG+7VjM%9b=2Pc`_7se9T>DQ~J+-U|{$YTVPx^ zyrz|3YC|KAPAT)mPQH;1jqL&$=`i2;kOw&PKxRV8CwU#~2~$Mf9|cqj)_alWiSHY- z(zEoj7z8(f=8BKW7Ug19EJK8mmCdy&`|G+fPVSI;k`yn>XghA|Z%ek5`f- zG7P4fp{dxS$j=?ZdcYpT4K8}{M4j}cws)4Kepw>7U-pYN#0!Nh8d`|8*k!4|+a}Ej z3n_uxFG}FOw0~hVv=n?~o|*H0`>I%oxtKzbvk%v?R+UuDR%r46u0v2CXqm?Ux&!JFr<^AG zS_+$-!YIU5Tr)HNaINPGgjF8YrVKrGt)!t2bxFM*Z3^nrs?#Q#5SAXsK zU?t{8^r<}EoZ0cuqz$)efIIQkq^G3BuwtIhjyz(B76!qHu~UfL&C@Zl)vB2r)IpTY zn1RqadUT(KU$+?bDHAF*uuGV&D)iJrm)hE#CHY9BX2L9(;r{8jOh?titCyjyC<>i4 z&U3=aUGtTN=*asR%Zb%WLhX5)mrpFct{{Fu2}#Y!db@w&ASmqGzO0C9$GM%SyYva` zV`ev0nv8WulewfQG)_Xt?v%0@uUngy-;Fi9!}v&i?Lcwo*&swFe%rlB9LHpr!yIn~;-CK0Yqs z;oDFA3;FVXGz~WMeS)%>Pe^(E=@a<-N_<1@hZvR%)w_CgCqJ)C(P|?V9t8&_MtpLQDghTi2>FYxF z?X6mHQ^|ams^P7wTtjMO&`#E*AM0NBLsm62vR$!*;x4y_&Fq>7Anq%RcGK!nnF|we?7|sv{^X@`ifndX&FQ=DOKKMI>(S$+_obmBFu!2a zG5asyMPW|{o;J^D4=T^k3+b}L_l8s>_w=;pRmML$+L&H^#U)+VAle!%wlI2{%_m16 zQbX7fFShsDmg078;fYapd$Vv+Bn*W;Cen`Vs={|!822ke>K6^w3r8H58f^oD94F`| z=c<%q0g`RqEr;A`On9^O+x6UD;2()luJViKFCb+_30`?Z zK1RjNQ_!imKd$`^yT;h>6W%onBQaeG(x~2`XiBWwZ8RY~-_))t$na3@_$K*yLBZ$x z?|QSxzjbrcr1V>lDW7$yO(8#JgoruXa7Q#%wJ(YjJ}jQ+LHPoPLfWXYi!ssnW97`< z*jLB-TZOvB?iYWq{1)51mFIBxO}^C1&||?f>FMJQWFI9*-(zm{L}JH{%eikAz`t1KBP?b2s0Zdc zTr!_GOL`xIs34zVMeVYUi8N7R)RJLco)kZho8Rm{U-SJjE4X@Pnqq_KSlUNIIcelY z3B_i;PS1z(%t0rm*ij1Aq4|mzwI>qPwCM3-cQq%q>we`)6{mh?oD4*o>G>so(K{|72+KqiR3qhJS6c_f8kvP~#Zov|U<`)B)Te=b%a@(N8PhTy|30&l@wX zov-n6c9>_vOCvF7V-AbXugCYv;Zt0u>Gy;1A-*ijEx$n0oCjx|wWmfEx@V@JI3w8xCLzom^@Yfb~Y?BKN)s&_sB!< zB#YnZltIkn^haNcW9PNGswy#m3g=CR{Q$v9p1^Db*UKdS?d#$qCDEvtEo1L%GO0VP zI~M7En+9SkTzB_}Sfe#8%#$RQrNkkr?GEBa_h(6bJZBP zP8=7-ax^D2+<8kszeEaCp~<`F5f{gFfzPdwO-$!Z^e+_N#GeGTD8c$`Unj#~UEEsb zdJ}DTVcDM!8{*eEsg|LPIQlTnD(h3PjPH48`9}ykpal_d``>us zRaPHl#t~o_=fq_1|1T|ovv$18fzZNLo8GA0+1mhMn)xf^-#N<6Ay<;kXfJu7!%90? znz6%i;MomA-cEsw0a3Z3A|<8)g6nG4X5h3B;#TC6{O_FDzjL;4^5NJt8!qGj`IqrsBdY5&`_R9L?cBF^ZXznpXuvNeg1P+uhhK`| z*pFMTvFQ>BRyyvm;n4@)zJBY^b+e92jY@~0NvUA*q`nZeSwAG~e;9$FubNC?rDHlYr|7!^EE$k+`HExRfcY%YiWVCL0VC^5=DL?wx9Rz0V<~1C! zVdVw&SpKIK62t(65dJUYM2jOA@S5CC4n<5&_m&!|bUlJQZZj5}Vxtm5WfX|~e{Nm;kgp@0-xnjttc$M(*~)-{{;CH7 z^Q;GPoTJ0Rl{P(%-E<$l*vz>aXesmerA&)MNgohTlRo0>J$sE!kRZWJ&J+i`M({c< zAI-PHzrqGtts4ys{?5DaAh|lEN-ws~Z7FA}iCqQk+1z*JOkWe2QX*QjwtC(P|GtSd z{B_=6)5Uf^qvo~kxCwGvz2^?3|FOUa7ylNjFHh7&F@*mS|OAv64#(2ti;UH-$ z%uzk#*w(=A_ANIHf^ZhF%pxo+4Ki6paS9oa=nt1)mRR%Jmn~;ZXMZdCp1#rXAKT(Y z&a`GJ;U%DGh1LB`R-9hy=Zf|eJXC#BR~YpS>Rm|>9#6}SUF1b)=wVtM4xHW1qZfx; zLNPZZimdB88jj9P%5CcYLu4RehMbIonDJt7YIpNPMt`cO;L@$wn&74y)dPDWFigA# z*nu@Tw#(-Ort#Oz&%Y4zwhTAbTB5L9I!Osdy!;TK5x^hiv;{SWi`RPiTB z%J+-R987V%>{rNM`dJF*BO5y(+2unN76fNfU{Ljy|7ip!@mR$byjgg+0;AG^K)r*&)QWTdM0_*Y5^4UfWV3YHn_fXP;Nh~3jr2Q-TtV_EO*^{`C!*2VE3*&)NgmBw=85~Il9DIoo`Lf zS9K#jWR%Xgqx@e9^a*F3f>3lh!N^7VuuH>_|DIiFe*vBGf!=3 z&nGmbDnM16f7%L)eOrwO6(u#gCcY2PU!mlwov|_pYhD7mn>5BAW`{sOVFm#xn45;P zCpsF=<3NFCYP9LXRR|~+)B;w*XErH?rK~WX#xX=`GrpY*Kv8>O!}%ZT6M%BP45-Sn zdtw9+m7=y;nt%|>RK~>~o6!F7le&0a;~Lm%N&QY}ERrmH;hWTjvrzl3Czi8kKm_4c zNz;Yb!PJIzg1&WE=Q@BK^#JD9%M~^(#o2qbZsy0v?w^y!(D(b$)JgK?$$YZj|31^WlITX^t7xaw zeu+b2YR>4IU&)1e?V*pC3sq#w8QHjSF#ZHrCeu?)JiO*pt(Ms8=)iII2@;(McFEUH z2=8g75Zg&VB{A}1?O}7esmd9P!1jje$?xln74^VXEu@fg>Tjg+-}^zSi)8yEdbW@E zc*T7pYV2IM>Es8Al;<29Gm>pw<@{h#*QJ;58;fxkboDw?RGq>t#!w&UPgR3)Ak36x-BW8v5w+Wk8lFXXOvvpnv;h>bKHz@aS}V30bxR?_z3B-ifG zL?fZ6o~}YpNkNLkODR6GYVbM~=Xu{|rc$s|vJCyHAY_-oFK0RrC39O$hA%YgZqq%e zQI<*T8W3vSj%a(KV>#>nJ;D<3n3cOS0G0E>Hs|WNV;S-aoQ}nKU4u1U6>8qJyNNx4 z?wtZhK^3d(#HHGJPaRP7b;^g-#qQBNRGYQ5$!I*S?=aGW-(Bq@q$I^;UA~&IDqnc0 zuaN+J7U3WG83{q5uj$WdywuIYh8IT8^T&LJ{oz9a%T z-M;@?QB_~*2ksCgnH`!>9uek8s$49u)BxNO@ft7)`x*>~ertyFRn~dVUWawFX&yzj zBtr5$wM*WE?rIH9KvY41t0t-o4#Ct{>hbrB?^=39A3ow~cvap`ZOFn!>%rZ%$gt(1 zcyKB3fBODF|Z{&z=k`CtvA=s-67*lj=i&Jmd?F^xMB-S!40uRws#MmN73ZaHr}-Ap+` zWQ}jREL1^%w*X!?rl_Q)VU|C+SA4hEZi;Ey>&J(?IgR(*2GfbJf&=4wcL0Rf8S6gG z|7ytb2_&}#v0bN2a5eF88V~o?cVmbQrzAhwNs9-)o;{MzkUv zn6L^iseM7qmX?hNb?Y(l4E6%sky4%JsLY}?z=g8hdCPdlRFRT>p0MTB0Mb|eSXC)P z!4`Il^N``K#0WH2wkgS%!(Oc&t?4?Z2F$^G+pNd4c^Q5upVBz&TA8$E=jFcTEjO~y zI!FDY@VxV!YCE#XclfvQM!?{M`6wxN7Eax%-AJh&9rz12yDwMJGQ+#zq|U2Ydn&cB zKc7=lt^_y!(H>a+hrz#x>x-%)aZjI4e%Vu#q(_>sQJ z5^0T6g2D6ry~(PE4FnxDu zljzK%4sg;*xZa4RKzjn=9u0~KDM~petlLXQ?k$MNN&>t{wbc5`ICUnxWL8X~efc>m zK*SA0cKeK{^eawI=gAY{p{+z|S@=_OR=>}m7K98Tbx2j&Li-KN58MZKyn9B9BtXE) z-o*u2&tH<8giN_GD9mMmdM z!hmWl9b*~g(_e7|732$Ht(wm>QYQ6$tS}?JjsV_V7szalZ%YK*4D(T|`#_`!GwN-^ zbXCu~Qu66xZ2OCvbp0so##|Df4H z!J*)wMZ?D?@=`1aNh>PzFS_|dy2`X@0b7e8s}P%zWvJ}Uoo9_#4}pg#{_I1HyX&dv z#3ZoTVnerX`B$q8O~2{_2OHPp%0h^#p;*yP5cp%=YF4LTh8RVffLtUDeT^2*KS#d7 z(x4KVpsqSFMo!OL__dcG$9SQX7=E1auL%j{A{U1EjZ=twKebf`kO z)N^kkq%qr#hYdWw-@J=F2Vf}HSP@o=XvJ~{r0{3pO6Ic?;^%u>hfM@a?tQdB{oMBC zg}QR`LsU@F{i&T`6NqQ48R^H7I~RZ%z;pyW_@G`#UN$3%02|EhN%e14s_RHftE5*b zcW^X2{$jM$)%Nyld+!A?%W@{aL201I`dn6ZN>-)kz!Fvie|7uEtnXeHqgqcF@G4T; z>EFbGwn2|jBc$c6?X$rm|yw|ks2`FVs0IpV{)acB!vRvX5l`25|GnNg@EY_5+r%6h!#c@Bx$~)SSA*liY9(DPB)Rz ziT5E?VFD}l(XOo2EV@lW5k{$4(Ze7XLGKvuH^TxjG&mT1 z3av_Hd4kHs;&)D?Y9}70ncaP zh{9WnOy;H+lBOkFnNgH{2%o|ws>{zdDzZpY_CV&r2>JL#PaxN=ma9a^VLuq2RgD?5 zX(@dAnOhtI+hK@^1abtjZ`@QurCUZa3z1#R4EWLs4SQwp{BE5b6Go}DrlOQx zCZPk{VUpi>YjyAwQqH#XM#a&r#z+z-$?1E=m;2B_BX;ok0vLFFq3rvw<(_8Omu=J( z4_BZRYTh_yau4ANP96tpHb1apKOgx$(DbK97fP%p57TL`Dt=w_vjh<{SMu|5RRl+< z+~<;6Lk*$==WC8iH5dohzH}= zGel;eS~+^$)v{$0+e5CYr`%FYHwNPCN^(7AwsnUfdP__|loBpXX!wqJP)#4IWXmYT zVrWbD12vDvzG|1f<0|>k}DMJAQTJ5C)H<7joEgxdL^G}!!n1ZbeyUGVTC%LamE+dwLZ*}+&!okPBZ&zEB@ z!3e5OX!A{q#UHvRMGO)5V`Ev7Fn}0`bC8?3PrDB7eK6Cq#3gOXX7`7obl?SKeU!$` zDo#YmZh(m64wl7X1Ue2LlvGNP`KU{qG*_KpLCW>fL~3g0?Joz}-wqI0xyTrk(}YMt zc4Xy7Rau?CfaC-6{Ypi+X0yyQXawbhFgRMz3sM()7I&Dex9nC>?8B@J!F*LLT}+oE zC=+!B(l^JAllvf=jJLgI{EmsLX`r!CuBAi#0d^+h?HZ8JBrD5)#Mi>hm{&e(@5c5Dbto412}fSKz|aA}EBv3uHWXH(yGKpa_-6sUid= zZg+Z)EPb3@4D3%~!7yEh!b^Ele8PgX!|QKBBM6@fk!vxhI#H3^*%QWyhmbdjitpf7 ziEW@`{nDJuvyPhG6n1I|W$0DyqwI)pRWk6GS@p0(Cq$Bez8$_LW;JT`Qtg4L*L)Eo z8<|xLPafNe+1lU7hQ6gM?dr(~ob^ork|xkp=BT3xLn+KWb_ncU@&p>CpVrgjYLaZy zMdqA>9sIpg5RaMeWHK4*B1sSCPk`APg&T}3e{tb|$047#zL74<-sAFq5^1a<^Z z{?tFOJ6Hh>RULxjw{iHO1&c}J=tR@RYev8FxSO=UrDse)VT6vqlOhTMm!y-hAv^$WYfn~sJ$jj)O zqqXHjc4ns(InF5;0_!t7dJogRPVn4^O)Z&au+ZlntbRE&jDlqIL%5j`i9N*Vo>cXL zTsCUU_VmLub_1WId{SHXuu?KRwL5|zT912eBx7^Q5&cf5nQprKja;+ul(HfoP>#=w z6F?(ej9F~=l`q!h#9w)?RY=mjhdH5@2#Fp_(O&zDd*>)g>-J ze5w4tRKxw-@{=$cWeif4Id!3z6KY@b9&QzwDAjiBtb6SHif_&Xt~v zT6LKooU5-64CmQ|vC+{V9MdjFH9SCv)cY7oeqH{p$_!7%u$GAQ;0TJ_cFs{G*jI8G zg4z3ENZL^d57@|$xzKD?*H8zBhB ztZ3h|%}p1sO0ms|U?LzbB8F0mtrtMdQ^i<{kBj~qJ|;}tCe$t%9#}6;kMFHFc7u6C z&3+@Ce9d4jNRFV^4s#o&kiYW4waV=v6E*V6H!`OH4D-YzYQvUF7Q?rYlyspz>+IR{^$7t-IFwsD7% zL2EU(6q$)9k^H{`ZcPJiFbwXi5E_FR+o`OgN>IGd-R6a=xtN-pL@1?<9XsY{jA6@K zWxKOlQkeuWnd}wh`dlz$`V>e?zVjc8jJfJyYbak?Que(p^qi?YunQ;1M}+o6H}z*x zIGyD?TBqNzHYbdh4h!(Tzi_2}H1m-V0ZFAJZ=hdfHEVHNpo<-LlcKAKV-`_V_&FM6 z#BBcje0T6r)RPCd6%6b{-x=lsNEV5Aw2S_$Oj}xoG#ggkF_Ji5^uZHtf2;uTp7;EH z{BNyKR)7Ey3oWI{U}&447W+bgk|AINU|<$BJX|kh?l$}=(v3g^4KlgXBk{|DxY@1s>aRPFN}fu_2p@4&-B&n zccKqI-no&PV`!4|PzbWW;^-9*5{mR4TeJ?Cg%C8k^`#t?Ovr4v%J+D`%7Y=^L-@Va42P7J&h<73`|~1Z*(dq1qEt z4G;R~{DhlUJrAz4MZ2wj$3_n`!B$$`)Pij+Tdl1RSR`CS&`<=|Gn*dR9{PI$w28&o z#j5ar-X_YL-~@^iZ+|ufH~8d=`&gevA)5*k>tBL|jVGkKqgd=yn5B-_ABaaYp`j|m@jayB`mzKM`G>v3>_w#9C?Zl8z$wQ$*OlH)Ud^RA! z2+ep{1k-@xiAruoUjUO8)Ph1?Z)8kRKD(>>3IaAyMM<(2{X{)NDGUPJo&j0T?VTwt zdjbMrAO1qlC=dkrfie^-b6>07jcS1JlVxeR%*=pCrM=q1p~ED{;6zLpfuU-F67Zm8 zg!7;jjFmrJ#kg-8I)Zwb?`k@gSLKIyP|NFn)OOk1#FnU=ZIA*l6d2{RMW%P4P{to2 zK=+oR=afiD%jD*M`Z!&Qf8`50Z~Go_aMt6}@dG@v+a_kd0fxK|eUNYG#6 zerPI5AreeMay4Y2%|{R{`CoN86J%FFH1zon$b^STgEZ@;mSt&Y_bV#1D_patk5qer zx@qe3%C4Po;Qgg`@dh_f zA#<7`4`QN{_^ zHhbN3C~;AZ!!g72=(3P(nnhYO|mQcg>B*uYg^y;PI@FK;tSfs=L_(ra}e)S z=~SEKr}NUbMohFf3T3~42X$ku%qPbNIVCNNxPgo-(9OLvF3kajA)O(G&Uv~Gr|M|T zEmW>XSPmm}3&Pc$P}2|qmZ7x)z#I= zXSc5)bCUwUR|=d3bjG?<=pud!@0F}B25wC#Em89PvV41AmTS5f109oSdtpPW zHLpU__%LYDNFlE+Ci^8&9Jj|sD!l%wb{t*pJPq>eSq?A67u&FWxhAFIYV3Ho7z(C>2ZC@rI4krxyt$1^M$&$@R z3EBleRHzjf0<)|xwV$-r1E;hTWspBamwc3NTyCd0rY>i1X@EzS z6TmgATE3WIaI=KSFF+Xqx!@)T(Dmf)*@Y6r({J~ki zfJn1Mc61PpC}}UoN^M*Qe}M0Y|& zU5&bk|G0QPG=VE`rhF{>JjT0|RsEJVd5+TRfwsZR*b_~~-AZ*6`BZ()!8WRu%xMcE zt_>a4WERYyOCXcpt4c^v%q7_=LkhA!E@tzM0{>Otnj%ZQN#LVshK15F2Y$UXIUV!p zyXepv@8SCOt(xC5QXWOLzpJEc*fM-D#~V-kGSXMhDye>7UwIp;LYF^{Lt-{u|50hG*y%q>@e=Ae}?z-`t_=lL3$nDiQ%?D?eBHWb5DZQR*r3&+F z74oUGbc^E1WowXB_>DLb(YT{~Fi9zGcYB+%5XDZDe&*yy6u+CC6whaiftZ~led(?@ zHH;oBzlxnnF|i1|f~cPzSvecoHrOw8cm?tSuB~hB5*vv^l+l&+=>#v0>4%QFr}|zn ziZEflrn4w0x`@-i+hAbwvKqmI$3_4%$5M0Hgq_cdOo}$LU0+xA;k6I?{J_jY($)ukd<&(?t>`!>)PMC zjp%R|@WI_3K&co04*(qm`vR@1U)bq!hyfVMKu$VYDCjFM7PZH_6x81SHyE1fFcu6m z>@tk8Ab5(!Ew1V%J(4q>!s7I*yY7d5`rE626~@+koD=P+t>ivHu#hGKrQHrPT2?HS zD0ix~`tNX~a60U(7(^O)-3(X-zPSzq=Sw?+aC+?BLi$$Ze+L`V24mfK5`piT_5`p% z@X5qi?Ph3kTCta{arD$Qe*@zMJjQ~+9``(c6a~@5f;S5+tR4^tIKKsVFR&JJW&V8( z7qBp@4zpbSIAYN324J8dOy5CvIuZNzi7u`4f5(jRKF7YwbCKsOe0T-G12%B|+?xa8 zb->;|1?c8r(Ec05+4K$;V=deZ3oC~VkbzHrh?nhYL2#22ToONV2#=};)g<~&0O-+R z#wwX(F-dOh&5F3kggvMcbk z>%G?uXIDXUokpYi4A6_n9hAjtTt}Y?6}_!tJoQL~*~NGRZo?DCUm5;>LQ8Q^4(2AE zd_`64=yT9F3*u<4-^zLkw}AFq!aL38W(46_P;A7tRq9;G06(~_xcP^`>+*kNbep5Tgm@$$~NNJI=~(X9b)C!zl;1% z-2`obdZ1Wjc`(sSKvTo#U;qZ^R(J) zDv>G*gYi<7)Z@AtP$mr~w@iAv1%_v!04@`*-Yq@EHcglYAc(l2&|E#xTecPMWdx$i zeEeQ)69U+G;K)W{Q#A~faqbOk&u|rH->gvunB9NUkZT6@(S>JYJNEzu(1b^jL`3EI zoe4X&F7{aBg?k8W3xdB|23hBGWdIawM|^vps1yYr(eaT=2w>VpSa$*74Zg7Q zkaSYfG_m{XX+A>}1OztOwm@poRrMBD+7~P3RZ<3zr~881eq>{n12)6!w9nQl}GSwEfsuO@G-x??7;i351ge0OwW1 zqO66xC(z3)M@P|-R{{WKdwZ4l-Wy@Q^Y?Jo(3%ddf@O*DI#~!8=v$UN8H}pMf(3u) zE?+g|2AD7#uNe9{(6fW_6}Iv)4P2`yd&*vzDF7MN6#@`9tGw^dT1*#YmjIYI0D3=| zGYGa{fa$ISUBJGf(n)=n0yuaFcVG~(H8xa6qBzH1Y)ws`HwO-zn zduS>K@OUX46Z32Z-&TI|7i4%%6`j46W}e9lxIC}OM34L66q#p`?&Sd$*-KHp>)95-COAI>{?D~~Bj+MIFO~P3T|`_f z^yAHX(7nV?B=6?a_)PwNz+b2ZkrIa*sZ|Y$-}%p|L7$0t*i!pSrP->VzL&A@zV;zd zq|51QPaA%TzUK&b?4KgIjP$_}sm?=9dcJ$JtL%wH#vmu>$oJ zwOOSMO?hl%EZBvqjDh5z0MhJpgRx7UZ6cwVJS@&~8hm1spBvaqR)%8O6`$wXNh*K* zl#RQr3=eSw56^dQ#LzLV19JAw{S1p%w4;|fZTgBsgvA4$dF>4<4%wsy^)~wh$%V}D zgr!zTzulBuJdI}JWgum1y+GK^_nBVJl)7U)J(vc2MhiJ|SqDk45gZW~Vllztv^ZZJ zyfR}j|8dWXP&$EzwlwYOC{0i2cPDRCVVM%Bu`ACrIaV(DB7}k!{ukD)>?S7P61V z>F^*Uh9fr-8um8h&o9Y_jmpUws|0=4(`WPYGY9}0d}jswt^DUFVdSus#>us&MaJ{| zApPmnZr#S1)3S_{g|2a!kCaUB@oh zVVEx$x1}kLOnS}ZVEa;hn@)7)M0FNke{9?mvj$eDZb-1l)YAzdcWRQefeQQ{Uug{> zma1nsZ}4auu)S}PCbY{TQnQW#jf<4BdU*0|{L!-@*VM%eEW-A{Gf|@Bv2}^fB3we#zg!j zoAaORvn;yLT(wt&8Z!>D!U%m)th_y*wxn_quT6~9_cHE!zjVYpI$2>?=-5D=1;T4i z5Xex&I#^u-gvm#9! zI#i&RZ;lA{snqY(k7%f@2i~=XZv2+I^b{2_Gu?cs=3+@jc|GLg!%-uF2r&nO_sZzN zHH{Y42Mv1|-jKcV65ijem&TMIm?I(0kh^v*zd*+DQR~}4mPjBUtQh&}&EgQwO2=Zt zAC`11^2zavk=WLnaqL~NG2B!J!QMfqeWp0KPV&YQKGZ{@l_ z?;F@vsS75idL8AH-xaClhhzxITow`y3PL=(*K+~J3oU_c7dj};@Mt?Dnk^fkDi`0S5XpNc3R<-+(v3-`)TTY zT5BNK$cv<3dhHYIe!&|HAKm2*XT{(j-w%UFpQ0_$d=%G1tV*n?@zWC8!Df5#GT56M zsYi?1AldJDq3Gsga?tXkHD{y1_*EuPOl5*_*s{;+LvH?rBdpr@+E(+so%|&%W==4H z>HFRfQ&zt}k)rDlSN3dHe4oG##%44f>#e=%bO{;DH6}{uQ=V_FZzYL%e%gbkUds+(T^{$w$~ zkl(3JIXHK0D6itvezc9?L>HdvRP`cfF{tNJd`?SIU3%=Y+1p~V<{|f*u5r5t3ATW) zk{R!K3je6G$hSrycY*oLAnD!4ZQ;2EGqY@o2nw97O%{=%Hw7T+N3Eu%z5sG+)6^9~ zCa8+%g!_@nxsCV&$;t@t!X*`F%COee`FSlk^T$!IbCgiBQfwD%vYTI>RAX;>}~y|QJI4<8ow?$WsD%}B4ey1@;XZ@nd+h#We-5fi?nj(Cb1sN9=9{1p&Sdg zADLteKJdwocMwyWb(h(a$VR>TIT-BT zGc-{vhS;vJ(G|lxZp>d1MQQaYEW4>6}xa$!%d_LOkG`A%{zXN_a z0`lU54#y%ydI(OJt-}r^0^9`&Y)U(s1aIM=@!uvu;&hT6f6wSkB&V4mWwo@gp>&@+ zxC^ixH`?I-{egU}GbFln_=O8zru~buXihy;q#X(GW2;QLJCIxNUZb1>OXm(j5mUza zck#_OmIywK%>ZbFI1ak5y>yPd&f1^~bz0c)>RQ{Iz%%w3j!+tkoytU1knv`YD>d?a z{>a?Db{T33Xe-J?-3O)7wkXH33D#p8_02Z5L08Z^S)+-2VkW=Jb#+5UZ8!tShuCJ= zW*RM&Ekugt(v~jik4jDLg-IDGgZ@rdpu<$&GSe6D?sxX*Zx=^0k+2X$NFF++;PAXH z%a9h^HAUybJp1Ns7K(G9dP5m2-!-FSnR~kea4alYq7L3yMz<5L;uGCQ$3v4pfV}PO zJF;v9xw(2{zSq0xfMqtL%DiuZh`I7=S%zUCE-@fJvRD*|%fXr)V>@dXpn40z*Xd1g zm?)j7QrAj7Q426IYxlU@ltW;hC8eaJ&eYuSPBhegSeZZs6ERM}4Ir=A8D41ytzfaQQLjVLU93YT8OHS{Ncsf`4@T(FzsexIZUivp>>@zA7!2f9 zj^XCC6}v@fzHT zB^cY!gunu5{6Ghsu~oVBz)6XFcU`OuBNk`nX`Zo^3>7XC#qtk&b&C8UCClR{Y`bfU zdQD}?Z}yQxOEKhq+ha6r@6i7CFZb@?nY+{Q^V=*a>KH1~2-|c5d@t|cOn=z!+PgBJ z0V;x#BIggB7!MgyG`IZrGWCO4*Lh@uw$kF7qunKw5mV$tGawojgwJM{dG$A`&_MIz zCgd|gtQ4fziHyR|JdaFjMd0p*)IlHKSY)Qx!gUt*8`aTq?6z&Mi2@03KsB4MWh$42 z$Xt`ZR)N=y!BfWL9&dk#L-A9c1}TxUpkwZ~$6%(nV5jFMD6Tw9MzJzGYrokh+l zD3P;~odddVj>B%;X%W9PI$vPG!gVC!@EzM|B*WmjAtI)EblIx#7^UfN2x*X?JDTC%eFp8UgU;#&^aYsq4`-#Nhg z4m$ZB$i3XYEPqEHUso~mzcSAB{Lr?C`>$HHwm}8{}*|85qhp{ zzI>KuT+|##s8Vp2(8V`13^L^64Ya-ZL4L{$aC|9I!Ei`{SRI5fP6nOGr0 zh@kMB^;z23_Wgk6|1xTtv}U#N+a(VWWzbCnZ$5KU5}1#E1c?BeFXff4#Z6>ns1cI| z2qN&SEtCn0fDP&x%9_TJEwiE$Xi_KY=HL_S<6q7PLW(Hu#%XOf`9)s->LnkwB#lN! zG8S0|gta4KpF=}gSTUszJ+X;OVbh0Bgu9GAc<*^mcU|-Z+U5h*zTEUr&-u(40(0V~ zG!pi8eg#^UE%YNvK~*1DJT zzIr2A$F$aQE|3hT(>DrR1Yv>lHyEpR-8(7jw{4pijnWhrw_Ejg&Y;eL{dr(Xak2Y8 zZYuva`GeU|wbJhBOa)O1rzUk*I~ASFYUARffwv z4fP`v`}|~k>)tA7olQ+1LtWz64eMER&U*W%`C|q{P65S1qBjjmWQ>?ovTy7NH-_K; zHRKyd?(*Y~gy#3Wr2fD5zWXbxrD<2jQ3nwjKmm!vkW`Y1D3Xy;K=7z!5G6=PvSi6g zGNMQ_ASehDhA0vwg9w7;BuSFwoNw*(9zE~3zI*?HyYv@lF+F>CS66peJyrGeuyC?= z(&KfxqdSh1(S+bKt!EKVL=BE^$q!GRl87@NXxZeIJ-RD0tS#Kg$HN-!+~^vtrxdO= zo~K^(@L0tUtBG764Tw}zIL}DTr<><4_@`k7my41DhzH1MM#*I=&xT1j)Uo;}*CGPk z=&Mr@l+1Ew@$aH%y@k&miP6%)=Qb2p)t@eDGSV6z%{v_~rfX#$GGdwFq$&}5ooh|G zjM}8XJZb%}s(BmN#{7@$t)gFFnTuDiRlbx9ZU~}DG=p2`Hq?wlw7c|d@SLr~XFY{$ z{(47k-9PLcH;Q=8{iXTje zrsfXn63588#qc3VTuQr6T^+zqPg`&2%%c0@G1ZeODYhS95D z|A4$U=ew$b^_o2nvdQBS9dDVPx;C@Bs(Cn%Z@WIWxG4LKdQ!uy_^L~EVBiHF7Xr`s zLDIh5ZuO{J)34)e#|*U7#d1$ke^7PEwK8n>#s?EAT)*$X^W`qD2F+4vsc82Xw+>V7 zB6oZ%E^}L>Vn>6M-EJXAJ*Vg9bL0%lTQa$*k&CR~$g7c3B0e|M>LW~|`6Id5wr7*NAihv|L5^i%w|EU% zEE3zj)K6aW<{ez*(uhC1@RTB3Ks!yANUcR@pg(Z)1nuSzGC`W%kH?Z4#cSt)2l#tO zpzqPqJF3Ojd)VfXT`95XKx${$O6`L@e&!@J)ty*#gj7R}@Ny7g`evAV=TGtE{6i)Z z6VJVKQn}qMLAM@Qc7Oi(m|pR4wQNt0VdE!5s8)4(M)ZCfdA8_Qo^HcN?y-U|4#{zD zh$0%0_QhrUn(E%JyLwe5ky_m}55FUuT)l>=H*Y}yHIUTE9&ODUm%`%j!ygH$LxQ|d zI9eZM%QLC(2U@}$`vtLueA#5fuWvi=QJSpKTdk;Ks^EAD{@PNCrK3V0^dwYH)q4a` znHLkXXy%2lcYhANCT^f3K2khfu$xgs&?Li z5@oC%!Dxl^IlOHLn{A%Ju3Vo2@cx;MCunqbqPs=zjCCy&?UZp0W$~Lt-4)(m-R=Hk zwFLb;vt2Qi(tUC7p$1JxqpnPq12kuK#5t(u6knzL_1nT~9GB_WQYF^1&H18`8~~FP-^9WwIORW!wFPKa-lqHj{fyHd*A{N?#BmeY`NeQ+gk4 zd?w5oPgYqyYyc5B2+rG6RN>JIuiky98atbbJE0z3JuKnuB9}b0I%X*zuE4F9`6y0# zZG%<7eS012`c%<7`zEXT$=jEc7b^Q{RpC4eOrPs-_%m zU}x8e$nl=~4Klt$T=mF&CB=9PrU*c^&LS-?^#0=NzwEX9bdKjt!fo`S>4Y^_eazF) zVEW)T2gCOtR}b%e`WW?a{n386rYOrkiL(n%;E|0A37K5N=yfhP-CNlXKTwkJR{X;)qMS zf6Z?XxNptKoR|&k`UC;yz*_d^43UmYRvy(s$EVk?J%3+S%Z=}4{akp@DZh5<)f2bi z6<&N&d40b&t6yQ~QdMn;dm^MyImulO8={}HEj!7l(=A;6n0CeY9B>vkFo9OS6_=~n z9eI=hAt>AvAlPA^pr#3NV&|!f1b0SmTrTE(1%6w9B~A?rR4QSK|%Ss03l9R6JqgBCx(Y z#{A&BCuOEGkL1?~IoW|vG;WARk>Bso+rn(Mn>~8h+Oxe5slJX@XLnbQANn>ubBup# z;lNeOh=Vnuw1s+xm0=n@7wD*mXC8b$`(<2X;T97ujjq9PGV`XQB7U<8Z_)HjV4AON zdr|L1tk%_JYC}=N3utl4);v`;5jmUm_KhfY3ol z1g4^S4wApwbdOcd9GgMn6Ux)&ZVd4(PNNa_*yntPBcq00F)MIqr=MAhN9Q8Xm@n#t zSnQyfEo-(|Bj1|2dHqCj;R;t*xZE>Q%782mg&3bLy-z-*CS|#@^oA9?YS7wNS*(6IJ;vv;8!PvQ+B}n`H_a!6T1JkBgXeGw?;taD)%wQUl|wY{8CMmP zv*$x=tLtg3p2*2*_?2Iqm!30%j$|FRGo$U~R&EwPf$A)}$wb>AqgibDvfwe3N6(ky zFlVh>1%>A}r6U}kRhLXH?@IC0v?U6A33i9sw zzF0RTv?|=a&uv1MBGZaf5B-8_O~6H>WzCn2HuO!J4pilgL+HxFn0i=XYdd95Be=x~ z-89vn-f02h#TS-53c>GkF57X6ejlU=CAID4ZQrIlo4v@>;oL2xmi@@}<&mn0D7Q>2 zF-MUag)oPDm(m;AoXf>-!R=2Ja;+C_4BZyyzMQT;Uz+W3toK3%G>jb6di#wl!**g;!KU*aFs$XQox1x^Z?Q!8VR&Pk|`$h-TAi(Tu z@AlyDd7%7mabDt6s$y*9Zs7_`k@|z|me-1j>(X!4G83%h3@oZv_}tHjB$o8UEq_sD zy#BBhn*uJpJC!B*$);`rOqX{=*P+i^8_4#b_2@2Zy)@s4Hx)hPjZsFee7fJXAVrP2N)zQHdSh$n!mCB!(3icoq+oHec_f4SbbvH`&^!*~8IVaxRfJF{`3?l=(-j>gYLb-{(aTUA=+d zPuAuTNfF-umDgNHC||6$<)Xs8Q<7_Mdg*nK6C0y5ONO$?}}eLaV;-^VEg&O z?$A`QnVn#0^1b!X#Y<|jz29ydZtGB3Y|+Ae>|7LVRm3dQd#)JcHl!mkB&=s-G3F~3 zaSYD6%{62U;z>}MOrEqgRw+Yq$sq88*Us!@vujKpqY%p z-g-REOkP4o^_7a2S)osqH#_C9GpDSIA(Pgrr|O=*BG0g4F$N!qRi-trM>OB2zA={$ z)f_%}uO5G9nJfF{snepv4^r1CmQGu1!4Ih7N1?^;) z*y2a|!Fa5@4xt~6= zAAB(2ZLzqBdvt24pm&{<-|SIQ6g#cSfoF-2m3R(R=Eh_z1XRw);aJ-=P5HAsa;t8& zQQ`ZGHxl-#)+?kuZ-l^^#T9kmnB~8QhNN)Td6pBOU(kk{t-H?c&2-Fbu=qU0(lLXL zLEfyM#s%k=o=PB*xWC8bgy(2eF-Hv99m+=OgafY(vasrTrnhi7Dq7`>K!?H``0>0t zQ+U3#BnIP2av7IhlgrL1`9LGu;95R={#{F}$aM<`VEgc~g#@ox96;$gW_N#`5*s17 zt^bbsuqPf~d7Smth_v2AA)RW@k#rp+%w>1s?$SiXH3?g@*)BWwyC_l>=&Tl^Snz zwS|*3(_(47xqw|uJIR0f}L0&&^QrkketW9;L8zP6>`r}Xhh$c zq30+K3g3FrtRy)Dum|{99GEgig>v%($42}_!1bGK^*lybQkv%3JdVZPy1|4mFU(NS z#N$YO zwqQNYf%Ob0yn%tbtNqRYXsZMgSB>&i74nrl3JEi#n%Ke{EsnHI}k0UoYE?FEt)CY+x2xuk|}bK^aS2^CfY<% z`!tK3dd{Jiq`mEXuP%-9S~&$@n$~DOyk)o-!=rI`nTZFk{&i=NaCa?VvVZTA&=fDy zh6Dg}8ZBme@*IGS$>&@Ym-5lh7~T1A^+3=R<}jY%=%?J4s$2k+Ph|~;r`gcIwZij- zv?P!olBbHYp*7*7ro#QVSy;Lw=whj4CNN!B`{&$+usY#fGY!uK%*?;Ui{#%Ql14aL zZPPt}J`=QfmH>g_gKuxh!Nm)raTgskdA0K2WeF#@0_Ji$O7^B55U%t{9b!5*<=PfE zaI7w^QH#^u`_J} zY+atjiXi0vl3a*C@x<3kli|(47kDi*k7SC43J+tp*2?yn8a__Q@t-5)0wUgr3&=|G z9+l!$e2T?L5wcI`08eQzFmW9ZlAeDtQWZ!ouk8$xAq07pXBpTsuXKI*la2e!!+*2HA0RuQ>B(5-Ja=i%NqHi!vy#TK z8M!kZv5f9N6-SD&tRu3LI9hQ#_h~II3kMMxNM0ZP&qjnSZ~<8uGWj7L9U7D}D-N%8 zLke?*6}2Oo?6zLXl8-EDl71wI;vmTlPOMJh&AWzvjU$LENrqbU#+VhdQQa^f2@%Rq z+8*U%J*s*AV<9({?V|^Jg$h)?aNU&LB2dMMs2kmx^xegJR9OaRlmumlggM3$Ds$!p z-a9GX5AmH~gaxjMB8dT7w{!wf1163fyN+L-spmRZ)M>v%>P z2G{){`-|o9)-DA%&u|7SRupU3GzvF*6Wt)S;z;!(=Jom}lS3D4m3F1!(kqsoHy@{N zy+54l0pE5p49xo#8c(_x1YQVJlYa%Zw;{l$V#RHd6qT-;ad=ZEO)5NsktF>*pe&XB zG_+cyZgVb4I^g;1npdepG9AJ0*9ib;E-UP$rot0bIoJn>VI0p6|Lr=N;b-73tbC+? z66XTZD+UA2rC$CG{4a9r8Iqml<1VoR1HeW7(*a z|HM&s#k)@mDEuz>>W5wWwEIpYSK7;K{sq|{fiDXfx4K}Z86zoFcdq+~pV?PH*tCP& z+Pk5|PUUT$C6x*Loq2;p;gR3^gYQ~mh8yAPY5 zo@G16B{M$YGRL&anlrGH>FB$o%A5Nv&kc$cU(ZOMaWcP<$rj8Z5nXp|6S#?4t(#O9t~SseneoJD+^k?PlGD0xvk)`^Hzb=iTz$ z=MyfQ+SQZ~r55%yi&!$rbMfbxkqe~TjO3DEs~F4wV>7{uIg6|qvGpnE8Om@u&6(7P z`{*vC!AJW5$zkSj4L504r03F`SD~h)ch4Ej!YMRFpCcbBM+KAtP>r6{1F@nLp^lq# zK-d�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 literal 0 HcmV?d00001 diff --git a/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot2.png b/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot2.png new file mode 100644 index 0000000000000000000000000000000000000000..e0452a5555b3a6a9021e8c29ce797a604683992f GIT binary patch literal 40655 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 literal 0 HcmV?d00001 diff --git a/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot3.png b/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot3.png new file mode 100644 index 0000000000000000000000000000000000000000..cfc4f324e14b7ae8aa9a4a4d3653253236f44c33 GIT binary patch literal 72090 zcmdS9goP`XD-D$-rjEnUyN zSiG~K4$HhkVcq&fhqM-rp z?d9dQROIEsTJA13_KwzQXpf^)^l_j%eU#Zouac5R&`FX=Uyv2(-)H`ei~bagjv4RX z8)~vpID?5Uf=Zz>|07FGIaZRQ;*PcUPJp(8q5+kcHhGFLGr;65Wk1W`V|`fKR-;ki zY#ty}oyL{Cnrn!*8gpFWw$wi0cE42ZDGnGN|9TS*J&ofv!ou=B+MD*<{i9n-8S)!1 z<%mx~33vM6mI$mQ(30>##mCl7#_)G&ZNf+QzDuCN@#ifJvlT+t<;u7s0CG)AAp$AB zwdloMZY#kWa`be|AJIy*>y7Q%(P)Xm!vpKqa^kc(%-)p8iWX>s$};qAWbPLrE(@mQ zcjAg6{meBHm!xo*M4R}H_`8gt>KrMnoc=-jj;~GF3J(?TyYn~K$mip&?p?NB#+Lg2Z z1n2sJzvL@hjw;>L1$->}lmNB&TIoqZ2$n^^zxGqXPFj$7U)2ihGqLyh5jz{Q45bnp zB&}?nZs=~li0@LVIn0EyI-6;$U$Kw7YVZ{^?I@(uIn>}<<2d4jD@2{d9_{7$on@V} z;^2?9|X)ACy|ve4l;YEt@V8Txvb*n z>h@rFh2~Y$B&KzyFO1U1vy7k79}AA|2trSnAuB9lOTL=rTJLtB*H|f6hi6G&7}BL zB~~BeNkqhLFwNH^4$YfH5%;_AB&B-;Eul%#Pa#LLiE4wg>K2@kaB5i~>-18jFWO#| za=Qb_vAj-rPawTVIG{s7j%x{Ti9Ijg)u*cD@umD5OBuS)Ohq3QFVDWTeacfOmY_b1 z8qc%N4533;o@Ka%ErpC!<5*37sH1oWyEVUZq4D<-)_q}R%m0K?iHK$9RzwGBinQ#F z$sb>sP^NLX)M}oRXO+IR4bl&g+F=d)(Mbu5LU>H7?4Xas#{lf!=pTD{EPKd(?Ytxz zpeAAS%h=0(k=_b-2R+X&bakKpG~S)vyfzR`<>2hqag;bE@AE9>)JgBLYOf6o?jt$Q zRN^zqGBH8ZYI1m!Sm6^F;)B~!cOK7Wh#%bgGAJl$MVRLaSuoOdSZlh~t)}GwqK(#e zVJ%TFXx6tBLjaIs6I{{|Kx1!1pX~5A4&gY!kOh;+VMD-xf?yTISGl^OLUY=5yq_T! zTKIawU(7Kk(QCry%$Y=Rw`5pF@P^WVCza(Q?a4^L$_k=aEUvTeD+pp!%e!nV&ZD&W`R9f43d2C;`GJ zFhFwLJqZP-##oy_brjMIO@XCA3CGd)kG;wWw>zYk6*3b9+?4A=Sq~I4qcpp0S5yxO z&z+knrQ^+dm{#V__0i+a6eEo4+!l2(+bZY!5u}rasx1vd{>-%_b zxW7s~5iN{#k30%K(l9ZZGoDipC~J5eQ2wI+5^!?7l{hB-)T`uFSI7(fnTCndoT5|y zd|}J`Z+7FK!G;eWCf3C1DT*t;RM;NNbr7+46+EZ)5PTr`{871m)A&6HL;EU04tvVy zsrHQDoARd$700W_Egamw*f>11V;F1rH1=M7!uwmox1ll9{AT5=&{G12R|#JYg}LXA=&%3w%ha7RdhKbG(HJ0}4L z$hJT&L{pHLf5GK;B-CQbDH>oj;X7^Zkc=+?rbd^Zu85R$MMzd1GQ9J@lB$oXTE* zqB5K?XhnRhU794H)}4_+6i#7JYkc|ixf!PX`M9RPX2!~AjPc7Ef@)fS(#%bUL4rYn z=pDVGGDzt>4wP6z?>3XX)$2asQ|9fz)9D)H{=of%#|z2t?p9m9DXhcs*IPSFnJZ1m ziThSRXVB9D_5dS{Y4kz#`jC_m%~0;pb6N4Q?CKq;L0NOzMEg+t_eIur zrpcBagPkG}_dSV%dj)K|9D)!}`HlB{$A|&M7Glpe@qlJYog^II3r``b744>HERGqK zoObwC_N|z;H2E-@jwMH7N?GMSZFjDvQlf$6Pub7UK8rN)V0XG&==Dg%eTmMZz1oH@ zPfk`+Smt!qcMishQ)wpV(6@5j2FST~9ED#+*F+z6{=7F>fT!|Ih3S?2D}A=wcsfz% z@jBJ}k@xf8T@PTw<}k@y3Tb$2ry5#aGpJ-!JnWop39)U@OsHS-@ELwT(4T!~l!54mod!fRKTpQaVA zsa~a7b2}L9)%zdgFXJD^7;$0f@0k`he{g+vwFUX;Fu^zRrtHFDcl8U^*V+D>viD`L zD;&5IA5@sR)CYE54%3CxIqPBS?=0ATc024Qes}(^+=*z~xVp<%bu(4dNYQBDkzhg3 z$lk=DCaX>|=&G7QMSSRH=f-191DRDQ-nv7&|9pm__R2Fw|JfMhd&&Nf-=6zs25kadWdax1c1-J#CP+=sE>5_v>KB{&JbL>`kA76V=2~R!JapxT17Gu(pvv0@4V!F7m+V>pyB~Er z!WxN^bMEX%0~ggWTg@!XEOEE_JO34|1p;N>7iMLRtA3@YRXuC0t$x?u1zpvJr!f;L zmmj6{=?s;>Ft$?q?yjCBZQHuIIvY381XQ2sEq@ZP<(PGDM7AC;I}gnXpB?R=%;j7K zALOp)jU%g+l@cEW)m{Yzy|bOE>|svim5vT_Z_S#x-74MLTu;Cnwj2JM{Z6Xl#nNSd zr9j#7R{tTdxT%Wii5JCP-c3*UL`?$ z#Rnjx3J4||c6xL8wR$la{PlPn4gC&}Yd98T8Bd0Ahdk$ShaHWm&4!T9i3cr4^E@0J z+)z*WD5aNw);Oi6k zp;`dcEd`+ar>z9wM8o)3KROy(lsy{ef97bQp1*%dsQdSte?Ku^MWW%L{v$=*zPafC zosHR-GwCaWW_qJnzrSh`zVJA2rP@+2UTpt^FprKK+{k{PzPwyR| z_MfoVg?d8O)x<1aoOobXE*922zD};c_d%2J6+<4a!mVeCmcOwN&DFub7s-ueGCr zg1r+8W~eiy1cgN;{x$#q8u@eLUn`-1Rzmps`Tkz|*U=nGph zjO-<#t<*`=D4C?>G2o}bdkcm3aFS}ym{1n;4O-QiyfHa0nz5KkX3 zFR!uIhL?@mf!m*|^muVG@RHE}_w|_s-I}~}`mt*D+j}zT|MQXp;9E3-9tUIo&uf|- zHSF}E-oStq4EUcHYBl!%T#D-ae_(a444$B%VDG^aa&1s};m!24A&rP@?oRcv6qcbO zWh~~AW^QGrwo)85vrE%qq^`bxzbp>Jy{rA!pj(1h%QUU$%LEtuL3doE#hPjHLeq~m zq%N#Br>bpZ>iII_@S$&@uX~*H}WJPr)+Z`GKhJ?V>Q{97w&Fr zn+`e%Lgaax4&5|0djD1N{J@p_-f?R%=VgH{gvPG&%S)c*z2KyiE^%`DvNo#&^J zO0g%%fYTVNEfXcj_XX3t+P++`OW#e!J=pY;h#f+`oD9R+jEnR_2Rq0Bla9QzYTfsG^|d>^b=!k6(oM+Y-PAR-4Wz_ zcXPHj|8hTNzvYTYuyJp$v7b4Lo&|@|7c6ZP`E;4+zx)~END9ZZ;BEf(YS#aFFu4pd zfZi5kJ(4SHqpLAKO42zH`fGDknQs<2&IY`f^boy%Cq15C^yyyH@eouSmV8kWbffC} zkjheIJ=4SLXtggSKgX?`rmCN(5p#JU-hQ;GPlY4PO6h{qk0aAn4qQ$xgd*(L6s34t zw!4erAPbrm#tRe(HjUnPvUoJ1o0*>?)Qv~$YE1H4T1+*hZ#**~mP(Fi-ZM@dK{wlG zmNUjGYT&ftxlY@k^Pae~FSb7&&3X(gN|BFS1YON6@Oz7cF2dCw|5tvE*x;RqPB!kh zY`6M<{`|QB3!V4&<$kk|VULm|r;aReJw%h^+*@uvECjPk7CgZq05s7nzQmz-4KAx5 z5}V>Y#qYyl34RD~pC;6EfdP=u&F|YrS|*4pB}g1S7Wlw9ejmP8lrbN8<>YsBGErDm z)a_G}=Gch#f0~KQ>w5CI6b3SHMu1Law zj}M^F+x9WI`*zTBOwMLK5%LV-~?t;B16$mEWjaZcnC|%EOW6?sEJ7y zz4s(6Ls z#b`T@w=Z2q(@~7HV}F7&<9UAC$3@c4+oQBrOw-hZR}wEz9Z>yPfLQpp`SZvFoJ zN?Jwe9-i5?V{8?(d}J@<%bn!GDy$=SJc|Q7?BWX;K*N~%#}u!@W2UjQsZ3FiYZ_tO zq0CKjmq^Q?0rP0H*1((ZZz+J)`OSyjbfHtJfwvd7ciZ-fjFMI<&-4yC?zicW>ULaT z99w^VbH4=yXSUzqUM$oJI(U~l2*XLg*pFfgJP29{x@+c@Tc)QTit;FLKApzP+ngY)M~!r`T$Vf*da#l zg~ofG#9@QIJ@zq88k0sZzZ^~5&=wG0!DhT~6C8G}E<7hl8R39t{Rr6>f>Bsm38BP_ z+H}p#=3JB-+XkL>|0vbDc}cm}etLz1GwMc3`b z0(UH$u7*K3Cu=^fS6MC>Z%h1twm4SztzOF1f6f};p}JWNd)y-fp9JE2TTZ-I}!RymDkR{ zxMjCVxH&))d!@C8D|)}lyH2-S4kMO2*q8m$_~FCX)^crAHCHlkrmenLmA&iLRA=}0 zXntTw!xwyua(QMPtK)+bpV#kNSFQ6*|9YP&bu^>MVbZqXh|7K6NT_^mVgbc~Y7 z7xJ!$!eqc?;;oPJZiltBCwv&UH63R9`AL0OU%RNx==JZmD_ZA8Rrzd8yMSdjZ64<5 z2TL~O6Dt3hUEq(HUnOjdKb@9IZ@99PT9-HOi7nX18oc7FX!^b{lkPTUtf>q_UbJ3r zafzbj!U}iSLH;AhNraXxIztpn7#ejaGVQmPM2%r((c{8VirfqO3MygBoy>7Pm(Fkv zMR&pK7)v#B-V`T|3Qp$C^$5@C8!^xzA5jt8t6RYgbmAxJrlqCzw*hH=Tf!ySaBTaq zzVSZsv{<)xRPu7;y&G@+#-iM!LeDRh9;M3cC+aLWYpcgvqQz{| zHExrY8Iw_bKRY$Q@tFxl?|BSMT;+8g`>S>tm7NDR=XCB^vpv)e*L@s0;We6GUSD=l z3J<;b7pGYjTJaiZYYa*GuezesX$M}>lOH;kS-k2vOfWJIjUR&rs?dPnS}Md-nZfIg zO!%1VW?@>l*c;knRTtbk3Dj&UpEOYUCZbb|-W8Wja^Q3H_!2j5p!?$f0MQ2b$_1Jm zCj9|7zkIFp9O>mm$X(rUxJcp zzU(B5&Ta%XKx6@!{`$dM@x;~-bQ`~e_adlF4=SYL7SZUprz`b4ZxJ~AOzCQ!K$8Z~ zWE>{{5vrO)34}DybHi)(>(QLs)mST9Ti!!Ph(#xEYnizP&UJjd2TjLhz}XxJvGlbo z7*EP#*|LbsY9(N8+M(hkC-%}flp5}%X#CMT_}LvwHju-W=%%cR?k!^fv0|+rgN6F7 z9$d6V4WkSQ%c$HHv})g`AL|baxZrsbp!gA$8Vvtvr>Z`7@6Y?4{wQ1K)s7;RxU-*8 zf!5Riq)YQ`lQatq#Cv>?+s=@iS#QzWp!MFnD?|eC_JpxV{OEpUmR>F75Flm&v;N^( z&c+SlLo%05=VLMdGE z2DC1nqvYK9Nk~;8oomtnBz?Ct?E!z_EoXb?%CFMu_OoQ8M7;4Du^^`E*e7Q)4`E1=|WxjwL#-;wR7G^vr*WY7^#tzd~ku%Fr)4{2`XA}=r^9#2PVp{J9-CZq^F?0v~rQu0J-e5uCc;{QTku3pNmr~3F zb&eIbEO6P*cKtx{+}HR73<8VWC%+B$`ePU)0T(x}rFR<$8_t++z?~ADM+C~-F&O1@ z+$wmjK??Ps1jySRoIFya7F~Ozv+U156%FIW(}i^#)c#Z+ZZc zU^8eVxQ!Q{-yr5vNgbch**zuPPH&fEi_ywo^SD@yeE^3&CgNtv_f9{_M4+E=D`cVL zmx}|jR3GJHL^YH=Q$`^Ws$vd*i~YITA$|B^?JUc%^j#A>0XM8PV#&NbI8PTe2y0Gy zf_q%N@fBlYryYlhTNCA?nfs(iP?v?6d!;^aLx@VW?j$)0O*KeqX-piW-Eu-C2!}Pq zt>i&rCnVuM&=@5=PU3P0!VA*Q?^$`o6LeBalYx>ZztPvl=R4b2ijC_J>Kb4UhYin3 zp3RPm9wu&QK2LGn3p+kTS)5$Xk6Sa?9T|}1hxCw7IVeVx@@~hc-+!td>U3Drvna{^ zoDuN^De9Cr!Ung#3Q+8SXBVB9d2R#?3h!Ld{*e>%$G&k_1iu1fGh><^hJK%mqBT8=?F8k$@hwm+oiriGcoboFqJ&TQe3 zg(!&rlt5r8Vn}F<{88J{##)*g(Y>e&GEXV6S}qT@VT{-`QX0IKcWh^E(Y49UHjoP1J5kR7WSm*0NDn5J14_Sa)JFX0h`{yauIq~;+2Pypn&eg$?s zvLc|TcK*@m<0Ad=c6*^UDDx3+8Nf}_q3t9QrfJjWstBL?DT$YQKmpgF*fW9#24jeQ zs-ql0i{#;w6o{`+NT5^jK0kKHayrH%WAB6rk2Ydfy0lz$*9L#KwF#>ONVVSVx&)}I z&w5agTOZ@_Lbadw3cYhQW#Y8VUk@1vSg>{Kxhl^fm$8`Vm|x$vx8C9aF!Dj=RI~44 znEnn~Vg9E`1)AUM->s6Pyv0_%F7F;}2r86aEt!kWr!_Kf1Q z2?#m0T*)REFUhvC)XPI)o1_h~CH70GJ+h(l<=NhCT$r!TWCt#H=Yfw_PGVnnBZ3=) zwV+3GgH*~*z1@QFWPFjdJ{c!6Twb9|8T0%qbXep#qo8LdP~9Xny{LNIS%= zeF2ec(VMMA;{ga?ZEeNjD8cfY?>FVvJk!G3JwS%1Q0LMJrg93Pi)<8<(n`y8<_UKU z7@JG*B{UqNQQgCGMhqqfCva z?SM9B(@goFTBP5*zCR7nlSQxyVRUlAZEHYwL@64-X20B-vgU~I)gh_Y2anAeD65(Y zWf_r-JqZkSk8K2gWR;(`SK|d?JPOCNuv3=cP)o!09hPG-k$(i~BxT9Lo~W-Ro)Flo zU>Z5N4p|I0U@(!ZcnDuxMhP%S-a{W;q>+>I<>RPz`dhsW|DBb3_5V8XGU!ua&;yhQ z*m*KW!x7;^DxxNAcCT7HUBS=l0X#3vuGP1FiCav7c1UC;PUH|*fNq&>>{{&Orio6> ziXxE);?Rq-eT@qFNLT0Bvsq?lT+4OQA?Q#EXMz4{{)M%rz0sq*1Q^j2jQI@ZHezcy z5MSVKzlpf;^bnm>cIn0;@==%;aYNj;lvtDu8@ZDfTd*hwc2s~S zfi0c|UcWc0KxUk)6EjpwGeE=?uIyQ|Q`PS7z7TNsi1>KoTVLpiwUJOmd5IWMHmWzj3(RTULljv!By=Nd7$MPC5wk&oFuKG994wf=*Sjr|og1l1v8=^>C zo9CUQyW4M+=buXqD1gGec=jl+rV@lYa0uSr|K8p}xtvVn&J175h}~|ZjNog>ygi); zSa=<=Qc ze9*x^PE-RBYuP%1VS1kmreX234c@*KXXzlIFiib9N%bM*LZe&go6?xo;N0_i~9JI@^&n!!p+ctW{AIlg63Ce|P zu^>?7l%5myQ|xvY?z*xtHLeWDs=lt1r5B8ghDbGk7)x$duL1~JE$tYo4ZRnd$6&4q zhkdl^jQ~>$c@m$&CYyJwFcm~0jk$)w4bb(=DY~CXGA2z&F3UCi_Rj1P481`Rgrp<8 zF&%D`X5#(L5fv(a_KaQX10M`uDm4QzEGfXF2107-z05}&#F@ylCyDiiMp&lWVFEve zpW8<%NF<+5S|-NRN!b%v)ccxM_D4IVu`w<$O%MigbSOM7fc**Mqr!x^6rBf(Pd`Z= z97V%id0xMS^0uM(T1&nf47EY=r!-m1##?|Hc&v|C>{mInPPCYMFF|Pd?iq#~_0O=1 zrj2{=#u-Jh<>|9Oo27PAsZ$O{ik_3d{ZNt!WwtWSN&IHPp z#V1=DcWxH(TTtu>nOz6*?Ie|`FTC8Byb}{lgxu6IOBwyar`?#(^`K7U3E3*xa{9#-TgN-O=vc4voMsq$!iBJUhO$Ydqz^=pe}Eyl ze`}yc(|A3Kjk0X5ohoSkmkYx@hht70%BsPAOTD#Iwc2rU$Y>E{9_%H+%}!$aa`#Ic zCNUgY4Rm_9VVSN962z)BZm!7nw`qIH#+|U+x^BZT_{;b&^=kYZQ9G~Y-UNH$`C|ke z^>KvE`O?Vu+#A@spCmFEkJ1hk{kfa_1h-v|t#V^yW4Eym`3VBo!EJ7zXnwKLNws^z zqw1xzygZ4|F&#)54DE{XW+GodhZ;=+q{e@kWi}JftaQi6 zk_9-)0?$MR12bC3>I?1VHW5w;hzR)+0^PH8`tGP9ws$iZ>0&rB}6{ zuEcVg3X&MhhYT>Mz`WWH*qcP&0W?CF-raL7foBM9HC&`H_2e?}Nsz47JRIpbQs`kK znnQ{KVLdQ*N!%Ei)LKWv=(!xI)BRgZi5V1Sx@0S)`oYFc(j|4VCapr#KWcoHNMS3( zAFCSnlH5n7t#0{Jb&os?2fu(LJ><^YUFo473V7y(IP;~@y2!bSpCf`3^(M$-N7;d{ zg%tfN5#YmWTl_(6I{gd&W~uKa_MdMz@hxC2MS^DBhasKWa4do3VSTqz=Bh25(L-v z7b`TZL;=*_sY_p9Je>jS+#@uRNx=LuhJTF=A1(o?W#pS6hJSGTIz^;jn|1?(G4j)Z zAi`C<_?kA+()iYy&kDnA@x;Nqig)V#RUFkVU-9`1DHA!zu$9yMIz@K6j?qgry~Ji$ z+NRgps7%^qpviqqS#GM`*vkm7fgKvwln5RZqKtOp+g!nWWSz!d9hIe~W_3dla$x(I z{S(20uhN{$K^LIT&zuMw#bU~#oux!hgWz63CF_$mNt}gfZ&&qu=0!A;FFYOLHQh6z z>9Nw^*`Mnehaq@=WKbnDhGK+2(C-b8|LC7#%Crd=G_3H%f}FdAelf~lY%pCCCmI$I zSVhsjTesSK-}3N?$Vlvky82!8b z7vw?sQGtffkKlHE$@10hC*(`4>*EY&rqJ|$ADXXdv5g8+XNx|-eP zPnp1g`7m~L9*L{51CB>YK8m*wC~Szo@!Rf(iA1LP2&_I439ld%5s8wCf@LC>t26TG z5eLYD6z$OddV$Ev5PMY6eYxuKL}_3Z^V1CPukK?lFotR?^w^I`hv64*)j%F&_hX(} z8o#F@aqX=jQ@8W1DU&uq50mVFmo4y4Rip%)3%Zu);p}7K#sk%~u<7Om43kSFIv!rU z(a|6Qw&N4{ECl$Ny8{cVQ2?gwIBo}ObB7K5DlIGiijp|WVl46F5EEJ8aFG8FpQ6Gb znd;|<^yM?dn)-DAmOFisG=Zo@4J6jKn&+q1yeD*hYbut8P~XJsS#?SB1TwoZ1J}Y8 zBe-?0s6rRl`=B4Ya`u+*Cuz|UGrZl0L+a;LJGsZ?={e zZx=Fg`%%tS`&U4i0^NFED=!#~U5U}c-eFTE_j9Eu@vOM8Rx_MgOpM@7Gw8 z9o}@E_JmR?0zZBhmx&hJfoa646M?2iXoSNyN4w&NPsL0RU~|^Q6zW2B*#<-tajDUr zj6Vh$HH>g6E$W{yAQCb*bB0!W25@w6Q_arArY4S z0cAT%0qBCl6xnWT-pY}E&Dq!obH8GSz8xkXc;1XkCSN`yM#(3XP0uajGi}eY9+$uw z?%+M)k85F$&J^itZH^6(McjHzBKiD4TedhxAfx1cF7K(jzucA!u-4D!otkOh4;woS zzKbD4$1B!A`LGeZnlPseOlEBP4e&s&4o;5AslJ|gB4Sq;3(~}$f4uktPhp)(fOdIp z36Ck0*>_lcCV_WHkK>L1bfIoCN^d zhY8rep&NflePo3VT#?BxU#xl(!s-U~Rm4NEU!f8r7%Gr!a*f8_-~{4MUL##@Oj)4y zpyE}e*MMsa-_nRR!_Oxp=0EBOSmL4Gx`TiZynMRiQ%_TEG|?jS^YlOJc!_i8l}orc6Fm7J*Py$Z1`=Y>VMPe0Mgz^A^iJXe%muHtqeYlxE8+5!mUC>*^)CsBw;DR415Em@(I7X zuu*j!4{QeCQm8g8MbcdoRUpH2p>jPjsvsm^B%#nGIF(jPS4+tg1ha>|TXT?WT719q z9B0B2`WU017*2O-&B*ZFll!1LEb9!Fk@OF;sCkU(2GT?SN^oHg#V9*Ic=|kYw`PXN z=F=iAWthasW@XgJd}Lxmgk*$x3s0jzIAi^XmqCpo$JcVM4C$dxyXCg*oyC>s$FIg()5W5O*cEJ zn17gyN|?g~lS+C&6nL%rm}P$qCl--Sam zo3r>FXC_qV3`s@VsVko8`CX+7RW{Kbpcc&nXXc%V%Z5iW2@J4DJD>xYR2HxBQ)j#p zbNB^FF*=m~tCad0(?Mya3xVC@IL}#N2@$fKI+NY-khb~p${#k zens=CA-9G;DwMy}j6Upi#TuN7LDsN%8T|fQ;lI=)%-y?W2;2Hmdh3kn5)U=Jt51N@ z|79x1$YgLZep&AS==3m;qchF9Dcr(0>E^^>)ZE^P5O$vIFwQETm7$#Pl?G1b449Pi ztQ&a^?>^53`q#jrkTG6)k-e-UQw#+vt z@X|grh}9EwghVf@nv=CtA|T^ORh|@R$ebqhv?C4Hv^ax&^bOVnVuDj@cM$M4E&lox z&Mbn^3qE%CXNwv$ob30@!?mcl`>hoQDdkirB_ltB-hvz6GRJ@;#bjqI6?s-Ma;)lF zMwWsf1DSCdGz1oD6_iIme-9pss9M}^W&qPK(S~6aIpkv%^o+>puVaUrr5B1J9!M`Y3jI zfsr)gdK_iwq!&_$Q)Di*l@8j{mBKJ zooWmz`em08QEn=GM_HiTl)ss5pts2F`N|5WKVPJEvs1JSQ@_(+l0*m)l-h?XZ<;!j zgtg)-Nz%0FArH%F_{g!$UhD>I05U0xX{(swuym$K(e$jKMtX#&T-5v+UghZ9nT_+d zAduL5Z<#0xxm-!)>#U(K@kAt@qyk_j&u*uW0s`uj4G%RU3P*k6xS&Pjgx*K-JP>1Y z^bE;@QK|Kqtv7j@Q_d*F(r^oyXIaHkeEn)1N!X7Hb1^gdk4dAdsB~Ivz5!5m3Jw^0 zsfIjiMQB`b-5fknDj3no{fV!#%Wpj^Eve7!_K0fXxk7*PSN;qcic~6vpdZgZ>2`dd zI^3W~QW>X%9E+lY$W4&dXA6@Z12JIE<^!XMv)lU3?PUKZI+ zR>&Ac>cf&GvHt+7R0SpQEwYK7h|h@2(HuNy_6xWeR{oSRg5P2K%K~W}&tJxPp zCcbU9jVPQ z_*5}habjapwH!+3@fO5*-1mO#a+@pmt#nw){jz-0=qHFDVL_Z}`yWa|)5r0yVE_uY zHW%t}GvG5I0re9?0LRxyk=q3FIUWAQTcRE8^&>YZn-t{Yra76VJ2>+tJQ#CGjJ!XE zU7Ox_WgZbAnbET->UVpwezhFF+sKPD6Alpy?H;`~5(F zSt#`#%Vz9SL-Fb7CsnAp#d)jh>X;znK{rk^B9R>BIrcJ50B)VxNoPOPL*;baaHu`f zbM`c&ylPO{DL_8;G|yICVQXjQ@P!AJ8ed@{t-R|0nDfe1AXR8L;>Hg&=@eiS5oL?es`K0C-_p|3z zdibQE)opKqP8r;7Pd!$9lUux)#-H6&q-%dbE8hirS_vBUSazv4#Yr#drr_hIUS_xr zT%6j+M_KGe;7I=VC%D6$YQAKr$=08~j34D_!bKDb_l# z@a8#a{$lL~O!Uz7YyMRZ$OK@E1))7&5!(P& z&MP?CLP^Yip2$?(kJV7R?Qzl-`tR}8QFzqCSUzsSw{A^JMcts-ONI5?7 z0s4|?aI0S(QTwCOZOjP_ZYS4awkn=jL*fFYS8kB-FR9K2Rte3WrR37p#{BQgrXjg; z4KkUS9uiDQsn2VTnRfDOR$(uJXC4j1!~SVAUQ*C^)74?}1%z}Rc0ZF*#Rg5vOP2Su zZ_eus2aMG<{=_jkrO-8G%g#TvlfIU*Cuy7T@P`P0BGZyTPjSB}<@z*TEp#tQ5?vds zawjWUG+D+OugxWW_d6hU8dXbIciagYU9u%*siQHEn5{6A7KqvY6E7Mm!qoyf=nM{i zr4$1|b@SgJ4~g%K1ke#ONg4C)B%_1^m=;yX{!Ik(>=4uj+Jzw_yC|rcwD~+~QxS;g zVf!-YmyKuhFIOUsEvbc#>8)lS2$yTc{S_)lXP1#J3#N-wba;u$=ddKa;J;EPl4)(p z&Vx+~4%t9eb}QO;z3GxgOEsmIN?a-`M}q)wA1`SRP#~D3OlxP|RVSRglmDsGmwCsG z+HX+s5tktlvjY=y4sGY7IR{vxPK0X&heAE|)C?pr`9%9rNp?m*O2bby*U}d5#A=l7 ze^v22WuakJ!u8QIX#_Cw%u5tYJ^IdENz=fQ%zWunK%_Y}is+xR%E)p*GF3A{?MBmn zbGEQQjP7{#?z2Nkt2N4-Y0mUrj=t^0It_Gw{paP3?x7YHj3L9b5$8#c)FuU(q8Mr?e3M^-`OR@JxZid8NPEx&8qa_#WU zf3EMh-p%LqQ44G>N72wXdTuTc&qgnux@Iqw>J;aHVkOY{lNGE7%gFBNf8fdMr-)jG z9oF0B%Ju1Nmsx04?aJNvX;>S1@wR8i?X)H%^)KB21&|2U;Lynmr}yZ@LS80mHkr){ zPM89_Rq4xjW>`$0-ZeXogRb%m1QPGR@%ogO+A~`-G3ZoKTlpMtz#O#C#N zcT}Caow8&wliES+$%d)2x7~4Eg9BtOrtJOG>nSot32h4O^9> zSr<3#Ji<&z=XL83Cmr%p%K`t9f}f)J#nC!k(c`j;3~))C%x(vIcV+r?JH9h}V`iQ& zJkYn&I_Dh?7az;Y;+(?bi@FXcl}4I8=MqFtS0qOgLVdS?gOK z_fAA<{$@`-quI4+z(m66=h$F!WTC1YU7yq4S_0uiEg_AEsPh}4`w$#;EiRIGxV#FM5T@u!IW zuXnkZq=U}J3opfuEWCKRcD!!28b#c%ywIAa)25hFU%V@MWo(aU0o&yZ$~v*?)|=^@ zU2t3?&@bw>jxpPv{z7&Qj)aw7Il8GuX+9+)-P<8J%|W9T8~6GM;=1eiYdU}sLn zrT4~VPKBBK+ZS703$DbRH=Nerb{tHa9vj*WzZ##CRvj&f{(k-wYEOUmqU^eQVu$T@ z&9v#yQ`3c7QUNSpTys>8sRa~Sc&nB?K;F$6(}i%4_#bqS|4OD0-=c^*(hJw(F7VLs zVxbX9P{oY@L5qzOUVkok&%yVnTPdA)BX276V0gT68u8Wcs!?$1Vj((IT|IuIqNZlt zY$D+C$9(Ee!59mkZ&C^c^xq0K}gfwMZ~fzey#^A!X0l3c-c-In$A;61XIHj z#I-2m#CB7=fp7A|{OVr+k579HF8((}cM4t-rS(;}kht*3YVL&0B0*1bAL3iIc0e!p zjH(V^c@$U=IbPIT+R{``owjgdSE^zmh#16h0~y4B-5?+#NJw``cY`#- zrc3EA>F$nq?Q`xqddKDa`}-Y(;do@T*Lv1kbIqQgiOeeZlK8;6(oHFrh|PG%IDu1n zk<=}!)G-3aY_rPr*y-@lNBr5g2NcY<)Dw>)IN2hgh{w*@tc2H;1@)GPlq6YQw}-nD zN%P38WtdJ!<6H~tXMw$sJ8-!1QCREASe-4u8+)D~nDQ1-h4K{4`)fh!q0Yi+Yhz_O z)+>F@I;{#v-(i@ptpf^x>SIKxX??@nE*ee#w+;@E(mezR4rHRP!|AsEd=u>!fk8^{ zk7tSy|Jj22HG=7%ml+GnmIgivb%`ux5KunyHR@7{SW%kQ7q++_YC@R~i(=BJp1!$-?a zI5H?jZzrohT`CcQ2{01}MyZV{%ZcfSe@lvg<&Ul?F3o-6uF`wF`o~3Vt{uGeG3FKt zi5_Z6lM#G;&j>E|=wCEgzEw%|2Pr;Xk{1Q(ugb}V@^uDG;> z50i}l?4hPqIC-=BfkA~q5GeXzg9AUNTVQ19fB zQ(p5C`Q3Ib(s>kZ$%Kz!86}(nZmNrk)}_ureo(ab8gKgut(t|>fn?vNUcBZ3Da@V& z)?cX_pOlr9ju8afoNS1E4H3uG?x8e5#2#wWA@c9L}ds0x-j1+Iit9b;cC^k8^|g!I^Ul`|BofaLCep|T+-@_ zn3%Vvb^(RX#V9`lb$Q0&b&89p5!!{PeR`pgx)~+XXGE?!xy63<0rr@&&v{aPyuf+i zfm!(87rsUVaiDx@=`nIo)ht-`1En3?9as-leC?p)T=JI#s_tD;Mm1;QWsez@)>9r$ z1r$~@5lB<8RH~;ah#6bwZawdkxQ=EX0!7_HM2mv@D|FF}1|L3j;btrGXCq2UYy%+5H@w#!(ovXCJ%J%-HzLqk;(*w|%J{ z89aDgUbe>w53bR%YXcbMi!=)BBeqYoA;-cHk+?fBNbii=^!{Tp;jT|HU#{Vh!B$9k zaLd4NZ7+m`yGC{Cd=D;7s+fI+Clp#w3n8AzDDjo4;;s(|L1GSp}Q$?_aEsDaq!;yj~D%y~8T{7?4UQ*F=&Y< z-c5BL9Mm80!G9OE-gng6-e)%zws>Dqvh(wb!lL@y*>8Rv!x6Sln_JBBt?5L@cVLCv zphhd*i-@6F39{Cg=KqdNOqfA*S>_Kj;omdiCI=^QYrIw;%fYNIM`1kQ1#{1L_+99@ zm=5W9x$2ObvAM&1*H5G`Qcc~=n)FzK)#KB-S=r%5k!gZ`B%M#x0)Yi9{=BmjF($!+LY(`$LD2-Fv z);*^$cww)d?>Oh2^)6RBtgDv!wuhQ}Mo-_ytP!q;vnT;PCg%0dT~*18$5`Jww|p6! zezeeE(r(yJb{27Igwgtr62J;?GzClI!@I~reJdE@@A*)Q-b_UMT_a&Eg%P%x5}7VP z=RCf8rD8A9lK6C`>RbCwzmf9%{T*-BsiO?}%R-5O>f;N3vI_~J ziD+>-X=S3WQ5W$tJFfIL%bQp!>uUY9wr_K5j@$b!M}Kvq)HU=xf5;7izpu(>Je7>( z<;U(U%w+e+R))N??xrlB-?7K2Dz+U|s9TKb)6ijNWH<8VTF8v9wVzr`>vZ#$9^A4; zYZ0HggA3O^NfUr8K`=@n{bZqdaPntHY}Xt>8#drfs3R8@$F=7+Gd4v;YEF-A``@zZ zUzVy7tK{>p+OE|9Bq{pVo9;^CRkuMf8bJ<)KXpXTuJHQ1jY4RJCNQF1EP8vu2@2LeoX42A_3VXJg4@vdhH~z}`3Zl7(i47&%_I zcmzxUs^Zhe`lC{#*R=_qkM@F2w=F7Hv-b3}IMwy7P6~{Q47>%WY@(bw4@B5IXno_~ zw+cnGm{-2bYq&}Fus4B=Nw>_lDU*Kwr`?uKI*DzEB9cGbUC2zr*;6%@Ny4hGWGL!d zA(I_HRN3XMIbOgI%DENHpL%lE?yk>!wPtHP>~e4%Ew~%uGJiHYeQI$<;#^=> zySb}pw>@n0vnivsZ_Tgs8H2JgsB~XEYDv?PG-zh)q@EA3nvKi9(R!BSBzSk*^f2^D zns#0RvUf+JZfv!0s+M~VW@&_O!aNF|18?bq{oAQ4T14ov*k3-K+X`GKiU7Lha`UZKxu!h_=s~i5tn4( z&9wU^_SIBBHv=mOhP*&FeWI3T9L2JM%e{0d*iq9AkiDuqi9rIDSsB-_*VOM8CD}pd z((2o~7pr0uW#^Dy){BmJt^^OMDxJmO=j|*k%|~K*G(D*nI4)Is`%RKXF9aAck~b{4 zu2EO;5Vs((WjB5?ak1O)IOmrA@vjHYXTp}7m#S?*tYGubC0ksD$7+A$DL2mtH=5V9 zz<<8&k%wyu!9aIp5w3PHSDjNn-N0~QNvt6m2f^TEm0Xc74!AOzLq;NYqX zIkPAsxMXOZCc!fq+N=wlaGh&%w;I1Mb40vTe=?ZEHWs_E+n@Cd1xb6146x70S3c5v zSfK_#Z90wC8FI41^N$26@z?fu{6W4_tlPeO-~Ql7wK9`KUNs(V2NyG5>t@{9#r1EM zrJM|(C|BMOohUd>NEU6-&_m#mp%@lf7HNvOU*j(hRzw)?NT!orBi`}lfP+xtq4m~? z2+70U?16IAEg6gcJ=IQ;cUQxeSYMcg8J_GE@UnQ$3v;a#MViHvteuE(RNE|*RP+W$ z9dyc6I(2okS)Ml?=D!)|#(`&-Ps+QV>`C?=kL46uHgx24ZnpxZoL7>{w|mlx*EpJ; z-qy^g^OF5$lY1;QeVGI3JoN0-hPX1pDDP>N{6qP(vW1b&`CZXs`2 z&wXH@530WRNt)Gs6ANitPdYZTWuxEM41|nI#Fr9^w-$Zcv|~vr*7A$%5~!>l&Xym( zK3=;*pCqk%49dbg&mGvV+AdN-wYq*r0l#Ii_0yw}RF9FGTc^@{a{aK@GQky0W4B%P zqK)VDd#Ib6>Y1{iC?yv^3r74GW;?4(@G!Vxv&XGoeQcxX9h7Ml01v$W_$~1|GVl>XzXN;d zw9l_hEj?Rk9vEtMSj`XtKsI#RSt~XP!HDe{&~$@u)-wk;<<~nC1^li03XDY}9U$=3 zEXl=0`)^NNE+yZvnhBe=dp5oPc~_NLPDh1`zIHnztYE!7u>WJvuY{w(wJ*m{`L!eQ z;9Do8*V1WA>b{&!)v%YsZPn|~P9AcvM%0S* z^V-deK=xitod3c~5G=ZtTK2Z6gs2=kw7Vx0U0uL6`+?QdaByf`D)Qhz^Yu}maBr`Xh}w!BqsW2I z%(OK1dq;66a`EhnqUfAl;FH#6`%4|S^Sf>M4LT>EO2nQVa%P8+9v5rRR2rO|9 zj5iptk)zHP&$OKluI|@;mmd{VFA{t1!u3+h>a+9ankOG&RQBUHtx>PPhK$;(y%w_ka8=Exe0W9ma0n-7sm8bw_f2c zem&6k&9V}?Xwg{F;Bxlt6sEd%0@2hzWv9rBaPN^RqAdXXL6gPDaP*5`T)u% zsll!CJ%)}={GC8a4)Av2ME$=b7QfB)S)3$jM5=i)tuG~ac>P&b#uc5MYoW8mwEL?^ zOoWfD1NMHTFH&XYW?F;d%uB(E1E+VE&4x>tKic>}2#t;VD)UyV!zz|Lc_lI{#T)xm zR(1OYFZbk7_gf;I9jY4YRZ~YF!wRY#CH&w&@!&Xnv)b25ZYm(TLrRDI2;eVkE+1}? z5n`QJTjy`Yq?UHtHu-Jr>$SF>S2=v?yN$D;4r1J~eE#_-)Wn;4Pn!L3sC>zUf0?Ej z%P>#QUL2$O zerB+*Vt5FcMztja?1VCrty8tCB#vkGNNYuI(O>Ig{8(7MDC|XiCeiYMBV%5?!@ghoLCfLhVXuam~tD*+9z_yGBHNy z6pZZY((1ASTnv^Rv^ph`N^c7-(nnhZGoS<_-|?@T&k@Y$SBGAr=}wLdFV;N!u}y}NB%D9QCk+qcZ}ZzNHFbgI+yJ})YDALP_%uW%fq0eYe02{)R=5j2^8d+k={pQN z^^$3Qxo4?x;8nI8bo61Hm{^y^tH6fA_m%Ne49Cp*5*XnjF#$(zojX2o~}|) zH+JH|WiVLPe6qsTK)RbtCu{$+T&-%`Qi%WKF0||3iy7f^3#>63)UqJs5WpaCmM6vHK_r(iB^43&Rl1j&fdQqDOpE;W z?yw*sNpu*9W?7CErpyCPYfrpzpy#QVn1w0^^H2|aT7Y};UPTtLCM~t=5D={!B4^burC;^^Ia<# zaUhVu+@B?o+dPov3Vhiv8K)4qbsGioYJZmN|Lr1-gC0(Z%e8UzYDN*-Q##-Pk6HI= z=Y494U*Coe+Da>T2fnsMK~ZynqRhVTFHB8M*M}!27>p*lBm_<`YvVlVN4sc&H`unl z>GA8If(0QJ1k7I^yG5jvzb-it47H4mG?N`H`mOUqSol zL$DwcCAIJOqRZu8v37j9_)tN=G;69mu+CRjD+J#Pp8y?>>@iaif;Q6QY&}xuQ4MSbX&$l>^BF z4DbOuOle=eZBp;qkoTEEv*G1eEd4%eyJC8GuDQ@qPzFfDEsWU+eEHJ+q%R`{EFx<5 zCf7z^tBg66SqSGkj41)3U0J;UYiGCbE2ZVG9ELM1W`q{eE}9+&h(|HmWEO}}DPuNq z<~Bj2gr9nXaAbtZBUB95vU|VYxA)b>tMUHNyzY$@Aea@U@ri?jqy1cTZ@w3clv%JV zUNegE<(o83*o(` z_ezW+OMRpjAoQgVKP>#O$@B&TSxO2b;`#j<{u_I;^aRn2<%N>+ihzpCtmW?r!~8da zJN+&?EYF`%vWY!Nda`gl&ESxsKEQ|BEZB|d&Hkh5rkGA*I`lP`M@(7w4hEmef`w>e2aT5s9r8mRr3lO8?g<`tO66XwqwBR$VWfC?;iyB0Vb_?BL*F_tNfN zdz&0-$h$?E?fzXsf1yvn;a#s`c*T&Hus!(1`0JB8Zj}eEj7N+|mwg14Mi!wp6-uxY zp==`5X+1jc@6<$aCVV)E(3cSnVPkaynp@?SX=WL>BSK+a8~a6djg2+`Nk|d{WzZVQWkgvRc06B#J4!<2$U>k?bE*{dUGK-g| zvA-CnP4mKzQl(sXhHTItpF3sQr+Gy6Fl6=YD{p&HMxB6sh&W}O)@+-o6<*A;BpbC; z^Y-h^Gbjk~Q~TaT1F_p^5UcT9*>10@;?cqLWGR0?`|Qfc<{TO|d)uE4?afov)?Yq) zQOCwpbd95(G7qVzTXQ5*kg(yz_`cT1NvBO74W6fTx7224ZwnN*HOUZ?olk?e(!WaC$vAk|KmdGmx$2CP3&r~ZvLen8%p z1}u$LS4m!`ncnwFIZe6qUH2xTYg1(qdqwMe)6Y+->f?KqWU=Ol2egJ7{=zr&KA#>rMr5yEE1k>v7 z?dRHHh>?^|{PEoA_(?nqr7qTH)&Rvi-6RI<$@%;hHhN{-AQe5JLrdcqLk)%Tzy<7A zkU?QV9Ee`M-y1sO>>u7W-FpTVR9ykrNPY>ZG7=@d@6C^Xis?^NJOb|M6D|5AYPbs@ zDl?%4m}j>C$>zNYK*FPA<%QRMfslOtZJsV3iEiy3;Iv)0ip z<8$x~olYT{PeW%wF|QiL>P1-@$Xr(xhRw-7!_<;XSvs%NOJ_scWPQthcxFmO zO$v_|V&@|7{y(GlRTi$=OyU_@oM z7q10sFFda>EA69@jUTPywZhugdY)Y8nExz`_u5I#h-U77YN(!NjWtXCA8 zS<6V+^BM~S^}nd>HT3cM)XT%Kj9p~N#6=SdO;%W&;lgVf(uxp8cWK5JrDKIo)&Oyy z3);t89$t%&S^{?d<;8zKoKPcjosyJ6s?%9UV-(Zi9T`!!fYv^Np)TGl*{BP4I_mCG zJew|?Jg&Je{VtnSkX7Z3VUV=|QWM7MELU)lh=y#kcBPg@Ov{bVKI?|Jy_HslmII@R#)GSrgnZpQf+O$J*@wT}8>hQhxl0%Jlrd$f zTQkOkaHy#FGkZVmk#MA!f?&jT=>rl_iKK3TU{Xgrp{rG4!@sH^zq(VUMJGLgF&C&M zi0^D&Kcw2f;u^rbpB6E!3FBYII$#fC+&?XL{`UocKl~U%FO?LQd8ma#tVK?;R%Onl zwHBkjN57CZMA{gXpHc^Y=($%mbga z{PDBKz(MP@;*Z-Yn1xDYZTa>0bw1nJh3ouUr(DgjICNwkiZ`J8Ukl8=Tr8;@17_%% zvyDrzG!|5{;FJMhZ zrD(}~Z!O}5qE#MNls(1w3$dUlVA3E}b->-QN;CSSM(B6sLTDBnI5M8ahWX8eJ_{EK zjcI(DWy!imbjO4De|1Li8^1u{W&LW(Mi6x!GXZQKiVMtNw&Yg*YrKblNr68{NP3Ab z6U`Wfjj6t*=hKpYy<%rhVgo|E7IXl10a_O$@!fo>x6>} zj)WMn;@O@}$RR9zRQDqN)((7CO)@oaF92RSK}vvb(MfU-{pMXk%(V0QP`Sq9;G4Hl z+YBPL7MVqGEpGpz#t41K0q^vk^Dc%M(r>J6DAG+|H2`wxoC)!s4J0~5BkLsi-dHT2 zU@zbJUK+F78fBgffHSr^RPE~idB8%KXxp`{Zn+Lr2q;vPBAMkK5bSm56u$9w5WsM{ z;qBD@8l{Hz0D-E}XQ4*Ot{GKqL&egR0y$h#jNUjl5nAN6V#eJ1dFr(UWUYvIe$#-}s{<{$81d?HH;9ur0cvs4o)D&p=5(Elz6CvO;a8C0p;6%z z(V`%M(>Gp`rlN&2+`sQc5(Kf65Dj+&sQW&`r=IvI2zc6PSdpU0o%|Wg(YmNk0KFKR z-RHEJd!9Jp{qSuRHrP$Qa_PI<`l#}`pbqarGvyzfDnx=fajam6J2-8uU}@Z_UF%>z zKc5>6P1|X5BIyE60>?AA5KxyW(jQ$fPTK*t^&;~DaTb$#BJ36_W-vJL)R?>f zK~}3nU|>R85ZU4X{#eR^@hXkF*n@=xfbX~Swm|~m`$;qCQ936xT$qO2L?KaciMTCa zFTa$=bm3c0^6cv#BklX77qTk%Sp{aCGVlKTID**#6{LUud^=c37`S6qg1Z}^fonP+ z`hlPK2e@KXL@`m4-vDUV0zj&O=qVMV$$@g|!{~qs$3OYEG zymG!ZEkCf>a9B?93v<7QW!2b)jFmiho_F7bE6qx59H2dAJI9LM#r784BYty=O(W~C>t8l%$`=}nr^pg ztDsU{99FSKi=SgoA8xuqZoom`9N!w)mMXybv|g2fH_UG1@q$)l{n3-&V$&&X-+ z#XAe7O$d}~HOjpGRw>z2o5jl1UElMT+9*-`zQ5br2Eph~6lKwdwaN?bLWQ^07U~Y^ zPIHs1w^l`CJh<;p)ICf1#(bH^5oIzubnlF_?c1mCJkn=u>c_Tu*6YhW))6t4|)7B+_F$Dx+ybME* zF>;|gC`gF093}g#Z2#>elBJ~TekA>&F#OJwT%G7oRKLDtKw6-8M(@~(0L+Bg@ z_CQP>DPw>RKa_Fr@iFNEyezxSF4Fc@Ty&x4%1}m`h5JDL{%yJ7SdvU>hgObM+aO+k z_abQq*Y=T;G~>lH#A{$wff z2p0kRQr!Py#U%if_m%pnrT;fG%mYkbtY81(YCxEOMCZ#2tFRn2Pc>{c<@Yb1af0lk zbqZ#9sF{{LakdX-h~IxsH@MyZEGqkQ(o3PTC9p@oKRZY@;j~C3^<*gs$st17CU|Ue zD|ol3_SQ}so$pR9>yNGpsQXtCamZbc4aR@7hOB@Oue(fF=H&ZPa%_TmM{wMsi9yGy zN-Ue9^GXv9=1=HvJ(jPnkvAJtZLUI=k|<+FSw6}nJzqlVA;RQz#1JX@ZUFA>kZvh! zR@6-3QQ(61-Wtp2s2T5`z_G6TEjMH}pYKwi|EcgB!*OSEr&dM{H{B%X;MK&pQ&YR- z#)WIdq+T9a)#^o%!ow*opF5;cZ);J9=a}Q#N$?yPAJ3qwpKgSHui^7Ajd^rM7M}C& z;pd}rDP;&aI!#63g!PL-C{k|)2ojK=D`3M37~X_Wua83e4R52QZEAJS=Mb8{UI>qT z^^kTPtf}oRVODn6Cuh#bEbx)`;|n{>SD*M5!lvJp6x;kC0?#p11=zWT& zn7#c>gwsdbB%xA!tchw?9P<+X4;N0#gP`Hs)78#;F0=%<3`H1DAF1rcF{hR3CE&_! zkQ_-gOFcwA^jb)y7tY-&aZ0slEEKwLosyfKqLf?g6=tW_wD)u2gerDVbOO?%HrDYV zYjTf-c56U7<=i0q03@A+G2C}^fnu2{9r0^rbMlchkzl9MfMfhQ3X%xjzaq+;GGl|h zsNI)6)Jm2tO$(;E+UOHC>MF83=1Zuv7b;@EiDt40o3(t?So!%_Tga*mUF_ig<1-Mn zNua8j?U8=nx1aQMxInJ5=1M_UlT%{asFjkwvlr#@?&VI1dGc(cKwDf~yW$O7oc z5V*l4#+rqv-2=PZ@K0n%!c!<4NzQZ+2V}9E_dQ+N`BqXkzWm0x!r=$0diKe9bo!hK zW?kc|_GOB%5vAenusoAceUz_J_caJEXr!k=@dAOfk=WT)%3N0_asbv z#DQaK|5nk-Vr;ATi`7dr1^~Xe_Q~DAgAyr1zvc7JaLECwx0EYD{BpJ3e;mP>-R1L_ zq)AdkOC{fiug;@0*f7TvE#;E1a}1f05_3kYTo&Ov?4hO2C{0sRkman_8QBl1`8=#d zRecq^ntC&E$*AVx#H@MQv}qLAt@+cUK>_eWOk%0q)g|jsx{jhxeW3lx^S4ziR7N4% zwT|eyRmJza9Pv^}OU;UPwg1)_%!7oK+*_&om$~!aoiF|rvQ|#?Os$#*EjFz8hGo9q zf#u!ZGuUanRVx|fG4wK=zak>$CYOnAa%V)Rt50Se_kc`^vDo zM*>&!d{Dtq#{<*n56f4oWV#4rg*{Qx&n*ldLrKq-%-Hw3ymUG2w{`Ec!alminAIgk zFD&x>N7=-qbEiQH%2~g=rTthsgO6}Txn#pYVbnAT2+K)Gbi&Br|P}zQMEQ%~m{R{*4HPJ*iiZeLHV+#zu%aWQQQ*K`&x@3Y##(V>S3OK{&#h|@%mPZK^L-X3 zo?(V_@5lx0P7`|6v8iZf$)wk5(HGuZE0jI|97gy^l~Pql1z-2esyDadOD69J&+vEw ze8R2fD$sZVh2ZrlW;(i{QA`(=`r_ZsGhSjMhhXsSlzre(nZ#&y2wYiev2Em1J#!%q zD~<_=S*S@;yRmy_dW?i{^+cwFk~km7U%2Cvts>%1J!&bHK5x{IYfHN@d!A|y<(DYs z)|xU*zdkTNUuWvgx+=ypFY;tbnZGwIweWx!{uL)L>?^e8sO33hj|;`iI0TU!RTm9V zKpsP=d?)SAc}K@^o9dz-JgMHAsFbPOF$~i*2!9iyTv-kg5jE_36F!JK;IGEiv-vGE zzH860rDjIOR2=9)%byG$c?uZl%Y4mmsEG6if~0&;IS%8pNjEy88-%CZD#|!$J{az4 zcKQEDue=i=#O6+|Hl@;=G3?ZLykeekRVdkM7p^R^(ZeOtoP80|dQlaj0Wy`v56M)H z=AZ>KLy+eDH3xwP?^dH2VVSR|rCsMQSEuWqFdeOSzc}#LB6&neN+9p&K?InaM(hs7 z%NoS`-i;T{Q_SF^;ldXkFUv_>njTQEJldJX&EihR!iDoVHfk(b^3#@bsBEY$p54Nb z-Chf%&sV35oYqIz;g~{CTH-)ONf>7`qs}=0{*XOdukFA;fICdyKL(=++?T$Ezr8j| zj5t8tb(mB+4QXpdK33PDW;`gVwez1j6RV`=QNCJyo~34$v0xlf_Lnwirl6zIMwRVF zWGMA5I&}&nr1sSD#nCRb`eYL}_N`H7`)^SQzIrO@&1}u{zmFjaMeb z|Lh_~=^T`aK)?lBr6Nas`j7er4FUze2{fXaQ|H!MW6QoDC7X78v!O#{4E`kdXTl#J zlPJ}$NGg=ITcCGFuJ#n3eq2ygnUo#dIttd6FdhJziC;(J!rQV zm%@qcqTox-QY-LP%yx{dr~!}4_u~9T-v06zO^84J`;We^P7Ggmrcrbn4>wfFQZ6I; z*I4kH5>PBbi>bb9yDcCGF*eV18Z=oUicKik-6+Dlcikfw3@(@Kmhbm= z#anGn@LE+=*6*FvblEO4Oj{W(&e|nd^-KvW<-H=EAMT64)Ec|R_>|wnEwrp;F`inv zRe!pqCwE-ys!hD?)mUqMC_M>}qz#h;Eu^5b)zI$xSY%zalQ!2 zBWrq$STowXxYpaihVOFOW$X8JA5@JM+J$Pc6uH^9gqIwoy*iiVsg(2 zhI-T4bUl6L^qwC(Q!CQ^p7P`&&#>TdVe=_I%6biG0@+!?N8< zY0u$UjWBF@jKF4;CihNa&3YEUo3+A+g5+mv%F zCT+%t8<}JGjy;E}tfTjTbT44JD(0CdE=^POPTC2IWY~Qq7JFMl5`8yU2gKTp3l+`?h|^>{hV>{UX8w8b$grGVnT{z;gc@ka~g^#2I>%ziw%62z8E)p zGZwN$%UrRK*5-1hmU&_yo&Pn(RM5X6Cp`5S$>vslBbT{$OW9Q04Wl-DPWF=f-JsiG zF|E&WYjMB%kEeqMt@;Z;DmUz59vXW?kKNaz+Ui^NDv*2f9FB|`e=In@#Ah$M^fS&_ znN8|N?K9utlCim3_qyaJWFEM06IpoJq&m3k^I~9b_@E04ovRgQML~<1J>R6f#Ynd7U+qfPHIFEMQe;=jgvic}5uFjx$!RcCp7aPlcL@+riFUF_N_U&F3SO%-{bba+ zZ~ssHFs#-(0*5v45r8BhVzH%fOi#F_(aUo$?4 z64DgL^xgbctr$R@$ZM@o#*yXaIM^=B+5U(p+D3T2aw$PEDop#?1FQF50hFm)fytj| zXG0cZN_9rwOaI45TqcpEB%EvYbI+tXC1Z7}FzL3-!1F`;#M4h2wKMKBb_~rk@n;AcSOt zNa3I4BBTGYjO>REZ!p`W>y_tHzBy2Vptu=_c)|yiPi#m2t zz{!PATr9boj>9J^>=y0{vsz&TF>I6BS9K)f!Qr%<8;8rO_0{3!#Th+jiVS-LFJ|b9 zzW>WWzCH%#e)7LVT<(_GG*UAwnpvur&T@GUzsSloFyy9I4Y-?E>xLb&ZDKudE%6H4 zOJaynqx7^3M_%5}ig49=$@tJsO0IZX+M#n=)wFD+T&iGTwt<1}J?|$nl>Z56$MS`bm3;Jl&gAFcxN5Hx9R6)}y2vz;a3s*OxG?hS`BD8E38XykhpR@_gQ#$amq-;16-0(=qm;@SbSaeD#)*8q3kC zlVrwxA5DBZzL;>K6q_KIn?<=?NkHj)!qq&X{%)RMOqT(#w$FoTqvaW6;~K?FL7=M- z%DpN|rGQ8#se!~@zI}-dp6%EC)@-?-Y~)R*T+B@xIAvY61E9Xi#pSB13d}|6=|LxC z=KB-^pqp2VG@|L2B2h#%#mCyFjxrB}5VqZaa+x#nZbmjJnq5Mo$Gl~SLYt5L>y(`& z@{a2j$$hZIrh}czJ3nA&kIz_HGJovJjkb$ijk2-W{CJpbpWj4PTl{*wu=7^vytF1^ zfwKqE=N9}cyX*wFb#BR)Y1>iTu+?&-_pBcnFkqQaH^k~sDn*cNWWmX4agk!kA^pse z5tGd(HRRabS2o#=uN0v^nkZN2x6!d1+^y$Ucqj^qT=;T)3r9@tgO_s(*ORaq5 zl~OD2679Q%suk?UVXfAvb<(e~{O_V34L8%*L(|JD z4YsoJkAjB$F>(t-+0UY;b8Yr&FZR?4;cvK3WxF5YWSW8)9Dw##v&W&)g1pMFU9Y%b z{H(T~Vx1~|Ku&J+YY*?MYX6lVGyuuYb51Uo3{= z&H8LcL~TIsy~&1~P=dW9U7_gJz?Akc%Q-w8`1__92fOS*Be!rXX1+d0;&Y?HfwIWT z2peI{@YKnuJ@y%NoJ?NClJncubU`%J61xF@RJ~Cii_k7gXl&jx1Eh=L51dI&XZVPmu*nOU)DC<>cU%)`r?DF{;EVY z6kRC}ICT9U8+ilwP?-$0CXUlv5GFzXvDgGP3`2y+Kv^=(;Bb9ZnOT)1n&sW^kYpy+ z&9Q*N)ZQ9ND56NH{XQECSlVZ7v;q=jc}(2dAY$%fIu0)*qQ$!<%`9QJ_u~F56si<- zW20rY$f$=RI1Ic%Dzbwhdaw``x{z6;U$AY%xfU*!OrabAUjQJSO0y2FfuPB6L+Ysk zGcx<1$>8sCk|vj*H(^k`>_^;q>%GGFU>$=L5QB*sVybbUVKwesHQzx`)qUbwf0!C~ z7W*GylQaR~9s0iQFyVm3+=2bIm=DM%2|^=xNl?6rya%aUgGdvrSWwB#`cfrL=HQ>) z$wJy9n<#|c|M9Ye2%$+R7-h_iFv1U66TCxZ+cqD<<8&T$gG#2E?#tn7=r?3N%trj0 z@(>VcwwtiC6#RD<97+_~c z(R7W?zcm76P<}QnnQuY$plxR+XgbWp_TreL@3~{t6H+(%n=8o`tZ!rFjko_RroMpo z<83an>Ed%FNkrkwvmnHEc|v^C-b63NDUt;hx;^i4MD#qjFc{?)y4yCA2-a76Av6(z zZJGbdz0VXxDt)+C(5*Jt0t(A>i^gKhC~x9Oe7eC`#S%2)fr6nRWue6e&;hxcSZ2-t zE7kes74jRdA-9LcsG|t%tk{hX4Pb*R`QE6hdENF4p!rI5*bHmgaWpZKc~~SAhCp_y z{-87mFt2IdC$$DtfYz1!{XyIyn3sn1CZ^X%Q@(N*fO(ALMjj@7-1t)J9Q^xU3iA^t zRt|#>dNkYbZ4DM;gd|O>VdOQiJ>dbT9dL=Ed+|H4{YS7@BI!HWCeuPxBb)!@^Pj*k zV!E$$W9_f>iNF1-fBt(HkzL`*@igZj_3FLKtr4GJ5H_4%Q{w~ZNXQddK|{KCdshGEi~rKre;$NVaKY!x^*4sDD@6k|{opgW zlc=WeRU&`K!2b<~BR)q!tD#<^IB$QyZSwQ0Xm)L_R-R_1fEV4d$pa4}#Q~!3?>?ReW!5@Xku%H#SPL=ZqE+8#9BOP!iq!aO?pd=pYEeruXoy zF$@;y)cY-VcY$4@69)q=sIgNcPEA4z{71o~%tjEUXv`$2IKr?ej+?uQ0`v)!Wp}o0 z51}*x;8X_PiJ$&H!{@kf-o90NXkPl|K2;?E5T_-2h3FsriSPZ45Qppe@$y552#|8H ziT*<%=Zxw#3Yd=#F@@N}p=@9aVTeW8u?nvN#9~P1*9+481{9LN4_hgqAxYTtGt`i9 z1~ed4s9rDjckw#|3%w5&I%BvM&_)OT?g{eEF{4p4!#l81v*9?6?s#5RM$K-QV<-EiLq!F$@VY+Tdg2wHr5x zl_Z}FD^VgkaBIE)j$+xy2EiBP3Zve#rVb=zzzI--@SeR z9cW435T}O#Tpx2i+qgKM_&d`*lh_?J5ErjKUCnXzj_SwWGDeSTf&qSh&BzpB-XQ2GObX#!q=;-xy0vz%%Km(^o;4QRts9RVU824O#N z-K@))G%J4Z<)KEP!7BFX7~1*)PV?7SL=j)X7AT=|r^BAH(xKe$0;l-_83vN4c&IXY z0>p%KUp&kof$a%1MG*Z$kc5x{`ZmATU&L+Vek1Wr;|)s0Ut(th`8dJ0q`eXU4ov+` zGm*`VC-E(u6vSx@;Um5xdfXL*oc;VmuS<9X`zr)3`bvJ-T8TU)(F4vf;?uz=53$Cldw9dDAo*U+pirnD@9dPGj9v7^ zF6XLXv(iU-So>Lx8$m{a99HD+8e~6cdM|Pc>auxwco2D3ndK9fonLnf)Jw!BK_6R_ zh7UJQKu>$o>E4HQ(lhaPQ}U$F+wQ9%KXDASaHETLkgB9Cs#c&w3eCbs3fN7^$DY7v z1_jD~j|*OSFW3jG=4)n=ILu=o01Yhj%VY8Ejf&|yp70z`&HCN&f=tlyRo3OOBvBb; zKYr7hJDPUW5uN~*{NX(F!6E~o&F3$jU-!^QkO`Qzb59R9OkZ4_^t!1a;AvgBw=RL^ zl8tC5k9)h3$kht7OgxErYh^5lQu;YahQy^Aw!#vg1AYs3&M~gKox4DCkn)cEZMm%~ zCMq!39e?GS{fIk|c)6ePbq}a^{e$pNxZN%Qr2q2+KKu7Sjkmo!u%CkVssmeYS5A+0 zdt$i?EbnJTDdJSqH^ag>vOsE^M0XTx(|i$t#LotO(!b`O44Td@ILZyv2jzyxdZ-O) z49F*1^0jgOf6RULSJht>B_bdt-AI>!bV_%J2-1y!wA4ddkdj6~y1TnmeS~yKmmuBs z=$QMyvu4(sHS-6|4=k6&d-vV@xhMAC=bROY6zNNoJ*ERI)I* zp)`maUWa{AqIH9}aU#?D@DXrAiK-@)oB#xR6AB?NX!Gm1$CvMs>aO0Euj3I*_HMoul0WKn! z$A97DFQ@z;&Zy#v3vE9gG|V7gYu`|V?sg>%rW`r!prd<>zEcN`#Rz#*2MH`lw%bKU z^zrU&3e3%YUn!Mr>)_xHeRc0fBe}mCN~QfP6kC8)B3A70=ch`e<ekN%+p?*N;%ZFsj?zcShI zPWU_Myg(f;@jBCcfmQd^XTPS8pi^@ST@ks)HZkq`J3L&oS=?`X88*jT+GY}c>E><+ zU336JmOUBivihy$!-12(o!9Qz)2}Veem9d@sjs2Ne%BkAny)%+37|^WIvgHvamtdu zmoB*!-e*=WrPjU&_DCxG#i(fe@KNg?JFKC~S2gD;z9+n)?Ct<-Rf0WhX92ag^ZL8t z*g##EJ5UhKqrw{O(q1&lLO!Vo4-j2K+~cI?u}>Y_4hlDiQu5S<4|rh}PQHWXhR<-o zkly@x>nz`N7434}9HLjcrj-_-EDa3O=0bmjEW_K8HvEegP9?O_*Vj+qfp%0w4)kF$ z{&&AHx9-5Luxp>^w4o0Y(djM~1eHH;Nl;i=|8>73jc+!8@&uJi_^91=xq^LNj{#=q@#AwPHv_OWY`_+@b+l9J#5>eSlb<-ieD20Ld{L% zX0<#~Tw+!t*5tG;nTJSqkP&;gk#5HTv;RWNqy?Q9ZJsyU~dc!i;y2U`4 z3DHQiul>ri^HLJi#`NVn2n;Mc>#mGj1Mf3FJD`xOA|Cb`DwD`DNAzYtR6lakW3CX+ zI;;jGbIQk;cVk+S+gAtBr_?ocU8XrS>g^|Hnt6C;TJH=0rovCL2w~98_f*c_7ZiBH5ABc?iLc-BWwh& z{eJ-Y>zyaUBQVT25CX=|q(>8ln*v88X~rKEcU&`EFQ{;;Nl=KMNq5`Uz?9j-Q^PCqv`DCPB`-IsbYq z9l!ZI5v#+or6|6z`@60$A0NDsRn-0O?s(6UnivZ+Cx4|+1|}3meJjqt zbM-pJ#=lfHx%uW_Ii}Vu%HFomt**Ymlk^lehLR}YePJK3R}|qwg#X5gIiCN) z)p07YF!Vy^#m5QP>U_Xzg3XVhdrDqR7WDL=ZJ!Ym7uoPX#G1&ezxQR6$BTNw{B zPp^jUbZ_TJ;?84abquH1EswA&f4=K(u_+3z*E7zD7n~DgQYFuB=~=de>r~RK{9t7o zNpz#WTf!?`mmjz$3_--cAj(#l;tE+ZBi@Ui@8`AOG&30JT=nR>&B$W+JJWb#lk*C) zJZs{A4;yyUh!B6>)Kk;uclC?v#>VyuD^t|l`QgTfUmHCqK)#(GuU^7bFSwIrqF#E$ zl-Hqrf2Lu1b=>BA_r#{BTF(+%*kTcwv9?V@fpY;q}33x-JfDB4MQH zlEFq2vfM04%Z9QJGtNe(IiCs$&pHIhK=hW5jN=}p zih%zUe|^(u#mlRIF-`Fp`*f6RX)Fp7!MVupYP#PjsYoaN-!C+tKZG3*7h5**pbV%Iob}zvR3=c?Dd}=8ZT>-J zj*dT*jyG@JoB-yqtRYXaktDuYX4gb0_}9W`E5qXkF=kj2JBM#)ou_eB^wJRjnR#m2 zvr&%p28*U=G9o@f1;b;NT{lxzcR~tPWM1a5W3(X%9}ue^kQNn+0(%TUW;^N0{L zNSx!TaTe!d`a-A5lv7Ph|5wo_tG2ULE_VVCgR{3>>B zxPFQ)^0z6A5+$vQET!xFw71Y1plk5@aRPX=ynXt57(LhHQFbx4(T`?BTBK9adZr0cnLzURuH%=cX%PvTGHpOLS1X9mer4xk!fQY5^@MkM*c{-rx)uUh6%Wl+Vp4 zlYhT7+DUn=uAI-SyVCb6@oB?y9=89=y*@Sw&4|ekUH3F)e)N#osx^$~oy3907S%rq zV*Dfjpw8+4;Db$(@i+X&|IjrnzI>QJYpH-3kLU7lO08%aeL(&}h#Q#MAd=;q9JLsDXCRryRqEy}_<^s~eA+jI}H$^MKq2P$>Z@HCO>7##_}8a;RWU=Xs1 zy?ubfTDFG*lorbN4sN@U+N%8T_b5Z&$RH{5MaDfOfA~<@@ZssF{k6Apr+h;$h-qGopj_!k`oQbGaT3T%jaMC_f9%Iy0FzwlgFDG4MlP;l$n#z5@P!9-UU!PFzh)~t;kFajRDqH z$1$pbkPAiXMIriE^fjBH+F)U(121_r4h8HLot<+G@7jpsK&o}bmU(FjCwHnRNen(^0mxg z&)_6}F&r=uf=G|^GJ&=K1&IQ7ri$~^c8`zP4~Cf{-=;y4oND{A{4$a0DJ-P>ANqB+ zzyw1(4ad2PQi>8Gbl``QU>NzsxI7hG(a^Lbt53oi@~7pTC5=%#+7Q+Gp9-`6!%6Iw za|Z#G>&4X4kU0P58U3}r-xBwb?rLnb#!x&jM_h>8|IFm@3#$(B&8uy@p8FzA8MR*fmK8A9yaV#oYV_=#c zaivIOUL=1~mrYb3h#6rP4%1T~bRT>Iz2dNyb- zSV8d(-TXK+enqp>v&j_SEK}Dlb^&6Qu!L-YZ1XdM%a)`xLENT|h63GOs_tf?etB}L z3QZYD7G!b+iI|zn|0H`u3D{Sza7>f+1x+jIorNKu^mDWkWje?^YAM`3k72T&l|g6U zEmHncSPpHC2VEU&eZwv|n4(9-j0~+FX8_*&EMX_nX@BzdE$1CHqXQ^5UX5M$Vkz6vAfQY|Pb{m~TWHWnR{*b{HlRN979b=mkKbjV-`Dj#S->bHDGa6bD$aUV z__h0ES+gWC!UETUZr@Bh^@V|mhLc096M+lo0&7#W?rF$ggeZwss8d&%zQ&55a7M9j z3$gKTCBlOAsk|tI1T{e$ovmOV^w&js-3YghshEIp_CK^U2+chJqZhh@a_SVw^O$j< z1`C-O7%TRe9?*^p97FLq5#dJa&0V+n1ui}DQ&f*eCPL`@5sQ4I@F?8Iw!gk%^_)F& ze|+rTX7SEHx6#1C&z)K+gk@IxspN1R? zZSdZ?C7LeNVV00C%xsF*r<_y$UCu`^Dl)A(%!%BcwmbWh$s{%>HkqmX%`8aLRg4Qj z!%*Fv%jahjKk}aYP%n0KF1ZY{`Q~6@f~@-bG^sUW8`06s3@w-D^mCeL4UL-jY@lxQ zGp*A)WG-(7M6Xs2{<{F>PVukA{D0!)4JFI}T%eL$y{!^7upv)a$-HYGE3LMv{&9>) zI)F>b&y4aZ=aIUn#DZuo|0Ht+@!50$64_S?{n3tD@k%wJF!JiCV~VhwkRG#Wtc2s; zrQ<{3vm&3>piXi&2cnwmT5_9wb_nDS=~x7Yxpp9*)wibSCm2MjeEl=?4YwiQr1E-M z7OOfg^e1b=!pZm?(?u{_nAtav*D($+Zjt!CW|h^5u&Vb$67%9Ve=}v-ha-;izOcB; zN1F8$3|(!k^ps$5{KOhag2d;2V>)a8lp_JuFo@M(tm4vbLwV%IKOlc13Vn+LJ|K0(7P=V9Rk!T@YUC2qx^Uxjxe|pJpmm)0YzQgloOvKy*c?nMZC12* zm3Pvdj@5rnTorH3j_s_md)xAO=!L*V+YOkhe6laj4Jf02$|tueeVzA17UF83iQ`{k ze(~^0@C|W2edzO1x_*$(;!t;UF?CJ@!lc_B#a5iCzrIu(MjU~f73iSlUZ_`4sOrE+ z#hDj{*Sf3vc#@dQwm%z_9cG`t5vs4LEkJsuAIxj%g?kr5t&sEFvXiBzYi!O4*u5c! zvH6`JRtYzA#(Q8_Ys|upNVNv67L4AC&HencOgLdHfNswIGf^B|;3DHB-riyk?Z4(eo3p%VsP1#D**CK=E2gn$cJngbZp#-3h34r~ zSawD@zk>GOJ|pEvi&H2>cOF*P4>JJUsrdp`Q{|4bPfYT~!XWyFv^D+255p>5Uwntq z!~(Oe`4y8LiJo=~)MTFLm%&@EJj57xbfC%7TeKu5pE6W&90v!d+U7tKB1IgvMkaEh z)sK|s&di9_4jwcVLjiW!m!ZH| z)>F=bd(ai*PyXNsu&ohsy?LSb0o+m}M@bd!AxXUhDWW<=M2bp0+5faeT;4<<=gKs&hXn+yjBrr2 z0`#uqTJ48j`5UIPh=N)F0?ZV{M*9?w2}x5WyyFb{Ht^3ih3QWp;r{e29COn)^LLJm z7929~`$n5Us(9E`R1(%I-+nwcZvSjGhL@VVCD5&%Hj^zZ0}P=ryb~1nI5eC&7&&WP z3Vt-9?rtP(BSOra)q>F4G>{{6rP;b)PJU9?X+jwir3!d_hJf(+_!(Es{eSfuKgf92 zOfNgv7?JLZr5sJG=pyH$mHTovKHW9p1wHd?MXe{2vfSa{R^yL3~?#U4|gfFf z@u_)mxq>6(AwH~?&E|qf*jCAAC?5CKzp&1V7Ojo7;XawwqxLtWve@l@U25%p5@1J} zNUhVI4Ld>Ch}kU4H}`x3a~v42sz0+HftC{LnLekA9wIyW@r>~4xxUliJDb*G2HD$& zrs%r-!4UJ5ja|L-(cWsaUs9RC9}A~{oe2Dcy)E<1n?gfCKAsm++xYSnKD1Eg*+Nx7$|(fthHQp z?sMOu0&C=JA<}z~>){7%P5En+N6U*jYmaLz!M~qVm5B{M1_)RA*L7a4MWosRI;gU( z5zzX7(yJb8?@kBXd<-00EbkdE@4-||$jnx%9s8xxBYSCQUW}L!k3TCDQ|bp=onGMN z7CCQcYb=Z?rwSm2lPqQBYnAsP3RB3UJg)gvdIyeJa_n8~+U-h=wdR`14Tuf5cLPua}WpWK~3w+BtXU$_pf?q<3SFvo9Y`HRu% ztUZjMJ-rJiHr90#Ru?R5#2In`*l2AoO3yh0>2~Z|FRvfU<{pU}Qum z`C&9)1t(Pnj7~w4*P%}NwTH!`{iIj9*4Xg$CT~1Kk4lZ z*sm8^pxug43!oR4PGV`KZ^Awfl=;0fy9ZbF<66oHOlp8f?Glk{9yNdkuYchP+%zPC z%-xk6K!sjJY=c8_y@nknK2*=xwgRRF@BV7WKgy2;PDkeKyN-%B6>dA?K+h?QJmhP} zsqE;B|6s$q33-@bJ>s4fLa_Xg*g>2ub%tW0)>M0=869YW3ymFyn7nm z4M3v0`kwCkDvVA5L~#F9fu2l73B!D?c#ECYp20R_Law3R=z##u$Coul)l+%-Gey6s*+^X&ejXD-)lOKE@1Jn~?Pbp4<9*j-5?nvB zdNZNSv9v{1qm4welI=S3nkk{6O9hbPQS5k1{%qeqH4kwQHWRaSNDLH0(9Joz?p&%> z{YxeWV~yE6LE8?Q$L{;{B60V?O#f?EC7j8@pctVuzp;pOQ%%-~e!8&V?Dq}oQc?Rx zA98~6WKFNBh`h!H|3&ir1dqfn>{Krch`}GbZ@0uBJ-OYs-(2cQX9-k^r*Di9!F%V;ut8en z9gKSrBr%1$esBq-FEL}WmCw%?N@Y)3D}p>b}Jstoq*!~M9%=mdCl;`i$()pFQn zW2_4RcQw5c$H^Gb|M=qsm?9N|jY{$E+Z3W&0k*Ibk*R+xiZFRWGX=J`%^L|9EHQTg3`Fts+J`o(1Q56Jqt$sm1peX3U0qrB9Y zBJ~5%{c&ceD2wvvMF+(W@so^Oz(FLvZ0{0lpzY2-nge15DT8;F598A&DLx%KM(*!w zfuN%8NRLDNf$B83NM%6okyy+rLS~pZG=ig3P!C*%XyQ3}b!- z{+WW7v?$fKR4gvhbM8|bLBM9qcAW-NQC4BDh}Za0BJZqotIpM!8md;DM5f>4-!Ir9 zT(H~-c3aX>=ROMJL+_159sN#q|MST%T)!7O33tFo-5-B3+yWlAS8UL-IM5LndLF8| zBIb(~WJjd%Xv{Us9M7UTJ}-v8v{2}Bf3D?!2!vY$+%)NcaD+)M(EC^xoKq#j)FyYS ze(nvP1|~135u_ygWu3-(EFS{jJ97V{u@lpGh6>+0)uzz2=}=MpODc-@w4QbF9t=EP zu{c}SZdXEk4sQ~4?*H^XEVrFI?iKBoE{fmpsF$+mxBJB(Zy-B4HHkf*CUpe~-A&Lx zw90e_z<6Jnxzq4IU4IP$Id6H`{A|tnP zsJxuJ5>C9YSIQa9zh(aWr`}8MGdnKKfx2D}EEO4vOyCr0k+|lHt*yW;RN>$y#&7>)dYF}{a;GowJ^_)9Eb8Lqy}E7406(Z-=Yu%Eg70vz3b4{U*tJ4D4%Uzd3q?DVIj*y0L<#4S#lL0#z5j zxi5xO7Z%q^W4(rcU0U`>HLs}Z$>_;&b;c!;-<%Ci(*jH$hcO>py}82hB^VrBwdtMM zIZJiX+u2P@KJQenV7;%LR`ZBTv@9b`I6fQ3WAXU&eK~^VzL#e3Ok9z~ZA@d$V>KB$ z_aVtTb6J=7f%tT9CrO(PbcB~IGb*2^-VJi6R)K@Ym?bX-vGXg;FcW1UG=pOCduTRCG)|?ltpEm%JWYH zw9(vLyP7nM7P}HJV(iB|&guumS+g=EP4{o~d(m-wA0(MsmHS5K#0ANPDW>j=E>&2U z-KV=Vh!A2Xi$|#gKvRI#fh0Js;y!wL{+ru@C#(p~GFxp3R9uA~XdY<*J#c z0hThsIJa!O+6G;t8EcF5Loeb91XRpqgnPg4e)KLgz>4!hJj8S=r}a8kL&%3fRATf= zlmPV!svFaj-krm9gEDQpum+{l!L#wWw#9(Bw5njShUs1qmfP2pIJ6NlN4>z<)I$U| zA}z(f_V?migC52Y#GNiAlA_1KKswZO^d~pITcY>dc`;;dY597eR)d#%r8AmPF~Dvn zqjIYCtw*gnNaC<&+9WVc#O1kR$Vnm~;-G@Re~OMpJ;sByeJT3SmJA)Nh#9Pi-Q6(4 z3akjVbfFHcXz9x=_7haC41|AfQ=%%j)MH5q_njR0BNE^>!oGsWJ-Vp-dN(ZvrzV51VmBk&weXBm4!JtpCyv;z|p?#Yxuw)s2h>pDoRe#vLG6E z4}LO*#;K;W^s62l(HCv(=$3mG6aE_iUo1ZBU>B%9xBbd7n-J z7%x&$ulf|X3B}>|vylb$!$)KG(uc?I{Tf68PMz1i*VnKa69Lc}s!b1M&ULl#F48lH zfq$JUujwVT0_l_E{K)FB&@>Qajff7yCq9xowV$MJZkaoS!-=pUwE#`xxV#FG(zg2< zBnlKz!JZ?7J!HpWl$Fd@MjbnQql`Levu%?&t9<>u6ikn4yrPoibmnN!zOSxZdQ>zBZ5{bmfyKR zSHI+z^9f~P2mRtl(36ZGs4*H+OaswSC~`>92L(xlA>}E~y`;lnowm@w0G!|g>5qr% z2vCR)+k-?*F3wE}o`$5@RklRR)B@b1meFb71gH>2t=Hbit8V5lnl}kJQ2ldDm4ij& zLQA(Mfe(x0sriV92p&LQu;F>m$RQHh4&XY>72`r{TeLRz(_Kewcr)BV3e61{X{NE0 z8Z2l7bb3S3D^a8}v8hVBZo{WPH2nRww0#r562f~$-OXiEBP;82KNQG(J~ ze08xKpqWv)>eau{iT)6zD6v52#*i$hj;$evID1vAD~}JC!{E`f<6rzJeb&@$m8}(1{UDwUREcX(X;N% zd<3}&-#{UhI?Tpv6}Wy!P!9FUb%?7^=64BU9u8DLM`}L5xX{A)FRGT3cp5Z@5 z=^z0gx&zJTAexKc=()h#gz9}9{;wRGvPAy9mOz9t`c!1>gYSLFsK8kE( z`b{cGY9b5AuX%AK_Zw!6dDKN=3FA`#;7F35&q)sje&V}xGV@v;_Y&V)9Xk_MzA3Hc zeLwLA*G=$r91$tZ9H!`N8SN=N=kGZFi6JL8j)J70Y_zlFvEq)=0LsZGRAv9vLqVp{ zxxs>Bo3}g8Lwh3U@b(6*Yv}%Ru2U-ivAc(GwnsIV1%OHO52i29IZogUro zqp}_InLIl6#@X1Wj+uR(mnm<;S8 ze~s{Xi%3~TqrMg8t%Y#S&(DJ(o4+e$jEPcF#1c8~hN6odw(g!j>YdQmh)>|N2K`z5 z*9A`&*^e$eFGc-X&L+{d*;mk6%ip*zp(Ez7lhbIs4*S>S>eYfAkP#wz8mn`mXU6dw z2!`<+{6WO)F|*Ge|IqkdY;UiLR~Ae$ z1VovzIm$T~ zyBF1GH=MpiXUZVxvFPFUP>SR7OA_8_kP7t#kD3%jHo2Hx_WgA}>UWTgF3G;UcD<=L z&$xyQlJ~KVn^4}~=-=pGlu>BEa)}7JwY!%MV_uWFn4{WxAR_)+_#stb#b+`@7)aP7 z2?d9M({n1nS|w7zPPu)pFysH5A*p!@n{P^85mzpJU*kLi%uIF;saeZ;)IYlh;IFWF zSjjiqJ?L8v^$USCVe201K1p2Rr;6b&H{hpHgc^nfD*!LrcGUSZB2VQ@KpW+Dn*9Zf z8@K{5s}oOqLy)m9@|YrXHDRnF6C3{BO$Hu$>C8MBZ_9)Yr>bYivg(R?SZJ@@@y92M zJwMj$?Xdz8{t^UPE*nXoQKNB%@b?p`hF*RN1h21)#P5F>KUdm)s@?3`=M{Y}^0j9F zTyZpjF!g@MFe^Nv4M1B_VDu_n6tDB0>rOC@qA{iatz@;O&uE;tE&I5V>3x_oyJNLldq18I zl+j|Vt+~~^nsd13;c90Gwc>xi_<}aDM&><%P_;?dIE(N?jZP6# z0;t_BAly^jC(zZ2)O{(X6lc(hB`jN`PUz`yj%%*%<_>#VI;O_zj_Xyb0?CiJKfRc> z@!nBh6|7Q)DA{oX{ISJrUu$9=fTjxN$NvU&x@x3U&1Drmme3P^Z;$6mFFkb2f8VJq zPavfEUO5=9HPUPHaGJC;$wpN~2PHr&Rp6BUah<<)1zO!cf2f|6xi2^_Dds*}(6dTm zsEN1@4U>}%d$>RHSKm)?&7ve_FV=QL)GQ0`UuDY}3ju)d3#OZhTg5QOSoJE|%3|v5J<>)WcLH_AGlX z#j6urkET7k4==N1uvDYY#9bWLW4e}nzcYsw9Mr{$N`6u#&)&&YepMq=%@IRg$WIBP zw4JqIC!p;%UYl4_S)bfe(Ah&b24$+g&CJMYk)4?TNrVZKa2+%#b;#YMotlxn4vJ}+ zgun}YL8}mb_y=1{p^b)d4D;I6Kbq>Q#2KC-3;#Y-7{x!|-=HI9Ijto|3b|bJ2;FJi zN_SPGGVom~4X3us6OWgh6xA{Db?;MNGxL2*74O6lK6UAurSmf_tF&!e-|l*H6<_jI z_Frl#L{xKJp#seK)6S2HX84vM*1-AP?GJY4F$q~7XPXew^R^@AxE7;mhWZv%S{j`v z8&xmKs_#6jptYJ%j8hUr+yI{bc@mr_p=K;jm;0?oszQL9TRRz;dYT00*8*j1rCP;S zK|?1QgKT3z|9z4?j%JWf9jwU@6pMs_qK8;T1*s( zT@KS_66<4WoK?l`_lh)bZYQ$z2@E{bik&E zOBMHplq#{N;xk)IOWq3=J=PYM6=F2BL0Wy<4qNSR+`9UVaSYt2-lc6$)vY?z?1==o z%g$~ibIH;-e!Jsg^{y>c*=*SPZs3UKFpSr#U!&n!${04s2PNY-8ZGh{+b6T5S%It8 zJ{nJ|q%nwZz85`0H6QMGu9!r^feIZ2@K0r32A8Q?z5OrN&je|}Qe9=ys;COJQ`d}I zxZi-W(15Zq?QUp^5$EDK%+9f(D8$BEYNI4;?L9G$$5sQDj{k3V^utpYJhqGh0_dGq zzxMuF+u8;$RPFUfg4^WHi@m;1;=*WPVm{u3CS$JlP~A3{dD(vQha!<1bvu#g^w(aO zfN1b@nk2I-m2Qi_(F%$(#+lT&tN=_okxwZPmV}--)36 zA$Y4k{;wu~e!P!v026tj*Od5AkZO|KHFDWJO`4T>qjKR_96<+N*q;_l#95L zxm2;WGAd@bklRE8XMrp@!%=^;#-w}cFrTCnY;G5pc_8tJo7+E(2u~Hk(%0_p3qWc! zH<#!B&xhrw+~W&EhOmtWW?z4=n=B{SvMiur{AN|su${`_p#L|^>FdEx5cT)MAI|nj zy>XHks|@eb5f*y17k}_#BjRj(0Yt;-NQw+Z==k6hEV#!;5}FSIMUeG=;2Fq1Gr1zz zTZ?OGV{0a9GgLw24nD{adk=eAL=YiZ^blJR>v~)}oWHGJI_$LGH$UlRFLv6Gc3JhA z{=t}LZ@$kfX^}TDRIHIFMMNI_-tTr{g-p0$Vm2)PW9Ne@$mclW$g9Am2v%O09ogE2Kz-9Mn?&u-Keb;Au|>b!ZidJD?A zY`{BlTjaqajkK0ufNJW)`6IteVT)i%43kHW!Tt7!ePHmZbUP8)91r^A>Wj zh)Y0%&2M?#1R0&LfXrOj3j8uZP$6fwfky-~?(PbLXmZxDmQlA1y*^N|{ZkWoBC#lLeqg`=r5*`TG^$&vaBT?;Yz8Pb0hwV0)z;;V5 zxeQ6$V1CWs*p$iPW!ueHCx0HI)2zGV{D)G%viCE6puX@A#h??!wn}*9W(CBeHs1|h z6g_^+eNQoh%rU&L+gm4Xt4zCf^hn`_EH!?tAjb+PDQe5f5VfRTXyYwJ@3?QIGpkUki4C~+L#Xdj;Te3 z^zch4D-RypoyxXD^oM4EE%<0YyHgC({id7qs`}3+?(nyplA~ukI}5F$s5MsW&C@oB zDk=N*&*ruKap6WZ@qZdodbkmF6OKA`MwEqllc%iuMeaT;pGKO*o&+Nw+CwU*VdI{v zuIHLLybU#CHWaTOe_epPQ_}UKvkL@iYGInoH%0^VuHISWQT!&ZJe2{!qrOHpnodP&%BX79CEVR*zqThqxoL$k0_wSjfq>67@ zc|Ax3goMe_QvGgfqj1O*(6GhtJ|5qiPUB2kkuRfkNy^hn-&qmQb2W5!Oca0`I{D3a_0S!_`^wz*o?arZ7SrvUQ-`mIO7$MdS1LSjwZ#t4Y#sS!b-<+ z@pF=Wg2B|a(|O%`YQ}%3^XoI!_(>ow?<(wgh?owUbiap_X+N^CvLFN1ZQ5O5?E2qy zOYR3Ir#27sFCeK!K~hzYIN^N@EWe!yciPHNIV#IWO)gCz8rKkmz)VE-{~4IQ(dyE9 z{m|DTMpzLCGBXL9EWd35{g<~OCPllZ|Frn=*K>Fj2`=U}eG6!K8xIl~al_H@t10o^7&8C!%GLQMTX%{u4Bc)So3c z2dzfzCX|vOZ`D-oi_d;PqpMt>mSdt~B7PD2oSbpe_M830NL=kZPk3jCBz5xwk~!Gq zH*mQ|jdbWoj#q!#9UdJ;5JTyUOQKZ;mUwISI$y`VkxDaCXRX=$-C~EgaR?GdG1<+A z8cg^Dh$nM@ST=vW3TkOQG!1%;{NPE4G(k#`rY!4p5dbY#obh$qJA42Oo?RE=| zv{vSL-bkvzu9@|hiO}pzfBARqmX_gxLD9qWsg~Ye!)#xbY>14v&tPx>QH^tmMSiQk zH;s7YPSlU3;IWdMq47B{xO{Cl2Vkdi4um+`e6DXqfYO1SD66lR8;OfFwU2Shi5RNB z-;2qIx!a=5*%0xA)jKP{SpKVxO^DF<+0A$)Zhs@hc?nIhLALRP z^qazCaU3ULx>9+i%Hr$rQfxRGFxV9xALs&gV?Jd>FVaO9rT|!R280lY`ZH#NNGPh= z{eD%jZ|8KHxl_P^rQ5{Q2HnL>;HwGJ@WhChpyJ$z8G)AjKSdvmRe_sIIOSCq(^oc6 z?9vfWR|iG80v#YJU>sM|#PmH6=P<$5cnI~x1@{yq>2I+@vX_R$Bt0nSPPIZ^e>PM%wv`TX4Fc#wwH{ZC{VQdhcn!}Mo7Q6f zPse+vp6uqiHYs@ZsSIBe@a#mbm$HbU_3TL;XGfsOy)Ku#$~^*HU7!ovfF26Y$)is4 z*n7ZKQY*HKZuzu7P)N(lc&(C2s=QaoVC0O(tfoi-#GXB|f%CIT5s)tJ!PBJ<3>yR_ z6qRg)n-0P!ks0U(;`!ulZFwm+g()b1w8>?y_O^^9OYQD5qk`9@Ob46T-z*ztWe82*b za`s4r4D9?CHDf}SktPgil_2;}EoKIIAUU2E0=e7eTz`zofE%3{lhfb?1p}SI4F+l>p83<5)*6lx9@i@@8oTWYr@|Cq7HsrvAB7@(4cTDT>xw{*j!?WIq zMV!xo!4r`W*yaO+jB(a6ntW8{dLOMGNpvba0xL z*_xWFQaH*#ice`MS_YO29KhBRg5TEp5mEmH@hP1|7ZnMIi!?}#KL~)cfZ#hh`J$R1 zY%JBxZ}(G3tM|a)S)UfI(Eh)7CrNm$|(=(fok}S+Ztw$TYwjE%jv{4hW+y-@;~@5MWnn!H?x+J}vT2|Se%a|iD#=%q z9f`sv*7~E3nbx8+mieXUU%mLTMbBgPYzh(=ZDbo*^j{Tf{Sln?tSc8vyEUs)-ULSN~&`JW2hr6%xAoW-nSj7WS*zo{GYC+i= zP+Rc<*YB3Mn=2SY-J9_HB_%X4N&<(KdYgPpioB^j{4=K7bB4 z9>5LeT!M$z%0-y>=IG%Jz&1R9AL|+h(AnZWoLh=uv1`0t1>^2a;fx?tBO91&RQa+Z z>AasVhC~%Dfuy>hHsXqfTO8gw>kQltk_uw5Y~dCW{Z}S?8O$~UigWv#)92N|8B83= z2)L{()a};}rh?%=E7nJsuAr6Te+IMGB81e6a|Ni&P~80M(CbN>A^qM!2ejn&jxG1d zfxJIK@dOUJFOn(E+c+(IZt*FzHE0deZb=+Hf}nf|belL#Eo?|*OnHyzaR*v>B%A#T zX=zxl=h*~UxD#XQhg>UE{mu(G7RzrdujM>(_U8jd%Z(I}GCOQZC(?NL$c?Jz4}OADZyzDH2fScGBOkfWyehf82Y5#ET1e zNq>+gEb5~t!IvWVAM8J5TSj4DJtX8Y11LE8y2}ybUVQo+@LNk$b!v;UZBw@vBqxm8 z|D(O{4#)b9|1CX2lE+F&b~a@eGSXvj60#yP%E(GqghZ6RBkLifgoarnWt6?Cl-|zQp-7@)angRed(jPtt_0$t-4^WJA z8(t+HPXjVr*75z9;+KPbKfk>20qb$mo4!LBp}G+pkeK zGi7t8&d8OcR9}r|)B4SX`M~oJjEq$ zs^zNffW!;ovtUw>0p?lc=gNaQ%I%*>>^kAM^V4!608)Dt{S5Op=5D)xf`F7CE}w@^ z0kg$zSiRgsF|!0=acYPMm$jKqmYRS4gSz60?hC8yi?JD7oD85X-yB8*Q~YPyeC2HA z)?x_VGwLddi*0V168KoN0|LgNLEY%Sk}XWbKYY^AQvI6O&dLKuzd>eN$N3I=eok&r zs&(0we7~m%7oBr^sMXNPy|^Y)cI8jb#*1T5S#tEZMK|C@;szR3p2gEJOat`zpO%Y5 zm?s(Vb4dwyP%}X=(kIGq%9|NBUlpw`8{cuK?)ID#PZ8tVGa;c_1DT-X(PJA9VhjO1Fc?}V-6SWzepybQndDiW!K2<*)BVk%bW28 za&N9P{rNeJSK5@Wa8a8cjOBF64Uu3Pi4`bqpjLQYO6B|s^`<%j910rOJA=Y~Q~wk; z7t=d;{yFkzr@a3c@<^;i@?m9e2b%`&9}qu$NrRyT+;>r%7%FZi7o7owFBAN9^;cA6<+Rc7s4V z?dw-fMW7$M=O*=%D&Wb8M2wJ3-D3274?ZAo#Xh_4ygze)*z*P@g%A-g(r^!xIsJ@I zH~kE&DH?BIs(E0FY1}$3!EV#ie zQ%I6uM=M*yn#Zz5{f<+te_HK6hMP;ehxaF8;qANt!%U}Z_RoMVb<0O~zknU%E$zae z_v}GiR8+ojKj){Jj1=Kl0q=9^vsr@eJ)<9-I5#-*teVASl1b9$viR$4NHQ0925$gy@ zLs5|c#TQ6KyItao`_nHTDzfy+$vH!I7BK4FMXTt%P}^LRSO0)`PiJEN@B7@3r)D0x#KxOYHB`Um&XARvRk~`Ch}6xNXv1V4#@JUyOT@@iI58 z)E!(7k^Ud?OOnzj@>%nytz~2IwZpK_=j)fMtY=`Ma};{^y#CO9irKHa3E%BRP@4>m zZ$eg(VL-vO7t4C?ba-2g+3R!tM#5pt{%haoQ`nPcIEFiI9s~U>l#!Q|r$4&c6_j*F zOkMeecTSl?7f)*O>P3qWfV?vdKFhBR6Hv9a*;Kg&yZ_IKENDxi;4Z0M{C?+q3 z%v3Ufk~e7@wg#`5gjLpE^)h#t!V!SGFxUb@^Om6bWD03U~L~N|G4!XKpeZ z*=Ada)>*=f%86_0W~uZ0`tA>B?>x7mt>NwUO1{=O=vtFN7*33iGro(A86>hZQz zr0uqRI6_vg?Fz4iz5mMjOBwZyX}^Mu@EZ-5egm0j#qpP^8p=bBvU8?i?wn=%xHOPo zy}S-JuevX;w!5tYb_CS4--4He~y{xaUl)KM18b+oriHS>s=Ys7ow<=(ppv=D6{| ztco{{rS%J7RMVuh&&|n=U#ECK3U|*_fw(|wFZg*M4EZE^sAh) z<}fmqt?GYMT16S^Q}hTMHA`u5FNUuDL1c`mC%$Pzz^@io{5IQIO$paYLOIU5FMTGq zDdYL9HiL9cr(Z>okzJM6ts#%$)(>ECJ66>j_kw}HC<%3A%#$@=wM4~1t6^gXYto03 zHxp51JCeR@F4pw-y%LKut>;WMjR!=&44A1#j;M;5mg(Al5HfN$1lNPL*S@yvRc1{s z{cXg<=RlZPQmPyAeaDcp!EB2_v@>5;x4GOplzy@e?6r|2rS1LsLaQ4671a+$lGulx zh)-K*_tkqb_p4m+dPeu*LHbRw4q42(8Mx`)KF#OG$qkG! zwIK#>)F}d6R&_eXdosOmz}YKPRC?~YqMdr#fr_D$rEYLeW`_w? z9jmP}XJM0QI_{PPsCEiK>TUfYyG#kuwU&KCqMl8PUVIDN(^IKCS+#SYb8I0h&2z=v zYsBNj{L3VX!f|Vy+4P%NRl$t7-1W)Uc^CVlUwcjWrG)eZhdEkxFC-$ZB5h3IU$1*m ztP}>G3!Lr4bAMdC2JG`~fqj!C7c74i5m!Fz!LWS|PtI7Co!cUsM0$Gt(m0=Zg!@ef z#w}s(U?T>F6PA<3z{L1H7(6&Gm<5#3!o+&uft9JJyJ9rt%Gdu*+dkuYsPB zkpE)kE6|Enc{sk5=E>rR*s`vJBjUK7!zcHieqQ>CR4#t=5YNNzu3Jju4zKiz-{pN& zJl!c}DjUfxEpZ_h`NUT6B+CO1!AT1ohFHzHxNogeutQ>A`wol&UZT%(B!+idin8ls zz1bU@=V{t}2P~@G(@9GWd7|-$i3FZn9PA-&5f}^MueZHIjqs*sEVR21`0YtCCMThU zThN9ISTclV%=1QZ=t~GHbiBg0ksT%V^rVGxP*S8)VFC9x*O!L@@ns-Kf9>gruNR4F zpdmZ%DOeoZ=yo77gsjqnP44P)FtZ+viV^v8@F4 z1I$F9mECJ(9U0o8%BL)$7F&Wm zr`PsB_w#&D()3A-q?mUDN=Lgz6WZi`V1)nzMI5LrLpll|F&m00R3t>h|;h@lorl!F`b zB4&!4N^2}^gdo(dD;!oJA~-SMc(TghFpIc_;FNfOb&X}uJAx){ zC2{zgU+~D6fE~A2Yqfck1L-)LDxphOeLXkFBc22ox;x;o`u+o4Ou(#cUFa~DjnTUi zFE8FE)^$dq^A(3Wb|_$XTT$8uFTvX`8WUBC(85>{`Hqh3i=~Z}p7sXB&(vTD?B&!q zdcS3VEH@4wOx8-D|EIb-4N=>4pDXSH6D!T5tfLG(HI>)_n!T}_0N9z0nfiOyc7)*7 z(t#t?Gt=~vc`9s>M;9uIV>_fpDbTs$NBN;Vf6>h@2K?Ez#`jg zaJk`OzHnV~1M1Y**g;{CE#2pA7!z#Hmd`0|HrRUu9jzM+vx{C&@iZPV@6fzOL}NG}!mt@83E+?r>>lJ}$R z1NFar1Sfo2HK;^BL2=5ol|;vuCsOWGdvq#sYKBlm-w>xgyFvgg^?tBShIWSAV5Bhg zO49VkdA=(JqzW1~6NJ4U|K#q-s&<~nZFb+65pT~t{pcwVWh!lHu~#Ei2asm_h?tSM zN_WfPNMICp%AoF*TqnXcm+!e+b67u!?4MTIyjT#aBI-GlS1K14na*gG!t6PdQra~) z9Dod9Jjbm=3hQTlcDGmCK#J~=hot#XTPBkMj;&)e#4ON;P{-@~XALtMbj}`l^Hu2? z1OK6owwoK!|&}mp_(?mv6yJfU3;-4Ao_B~(} zZ+-yk`F`Gz`2kG};V~nR{(?lM48+%!j(ximaj~v*Dbpu)U0a}=GX9dl9HYa568`&7tcN>BWjVSb~0TvHU`Oz7e(O5VGW9!>$SqkZai={}-J zOes-#9x16oD0=x!lLxSvQVoF~X;tNt$J+K(K=24cZMX;X%ku-FQmn(SZ45)QnO*(O zMW9;DxSapoAP+LKI2kXas9chB*&aMgI&APabT?0G2Fgdk-v|b=U*?6sQG2KMgpLFL z=JdT@aT0~1BPwty(Sg}@11lu?ytZI=RGXtwC1u?$Gb#*+1{RuBjD1wVb1 zEiBjGU@a-i^vYzX7?iElP_FQQS7O{BxSuNXDUJCeIWnxZoLLCnSACCIIQ%1 zkRAo}#B|OwAzjfweiJ9a@WFnBD^ACSxMA}p;2bNq)n}o=m`B~uw(Rv@B21~RJD+=G zlquV_PFgrn3_8DQLq_7jJh%;-zg_mA*(OBY4io1x0@%+tdg~CLqX|qGz@o4|!hzK* z;?N|k&J8#nht0%ZXv9afVQJd*>n|b()!>xD6eIJS^Ph8gVHV&*vp{FD*dZcKU<^~o zzO$oxCkkEdYjQR5eF{Ye)xT-Al%tyHjfmjFSR>#T!|bb&IS8lI^GCS&?mkRq2K?vh z=5u3mY(q*%LA$ur&5$%zeK?RB;tBR1XbL!JBpYKl$Dq=)4L!o_ATfH&S`;Eijy$bK zk@yfdRJ93R=BPsaJ54yTRm9Djf32`O8)U>E$M@)7l<6KbBcIuc?g+u0kt9$9u24fD zB+d8V*rp>-hau&?-W0GxTZp_615V~!X7jg`a8G^E-FvoRQhHpWh)#{}BMiDbH15>s(|n0gyZX>GaT1qJOD&x`@-dVu_+CdRYLUx1@vxBDa$b$oP~qbf6&C{ zABKZ8zZNND`#*7XaF8e612RAekAru9N(}x+%O`VqgQ}r?%c3FV2jiualBnZkhQb5c|iuKpFI8q?5v>iuC`D5>4nVLkhC z^icq4`dZJE3tmO3E25t`W5onG{H_2G^Eni`5#rZt7W}@nLUA=Ma94H*z{fVg>TW zon`wpi6j!OP?$M$9uZd??9uf=(k1a#zFkJgqANnxzs_?@h*#DPtfL?;)cAWY#-Mh0!V8ofPT1{mHFiq)JsWV2pgPx_0=Dl zn^fznGpn-DRES)39u^hs_QO7xE<#6aLJRoN` z;E7Uw7Hawi@@H3~tw0it&%>b@BU?yf5v8t(;|#h1sM`b#WpPB7chI)LD*o22YgcSU zPuBo#&>$TEyT~MKN(?k;03)VlS_#;C8))orh*7w~tRezoqpxTloZr8F9Hpd`n1v7O zarQkeEMc5~WQkwkPU08-!!?E+snk0}IHxxGSp9BnVKmy-rg z>k68q@DOp5kz!`=Ao$115Nrb+3NGm$y{D0-bm`vWM{Wdvt}kWm&IQZFi}$Asb$Q$b z%|>~m{HSYXO|RaNJTx~HaYl&~cn+_EAE%f=OvV7y$DS!UP#y&3yFJhRZT!LP@Osg` zXxe*a8nirOK%B-!7#a3TZ^oepY(KOTi>jWP5we z*?);ivPZ9vHt>(!?vk8Tkt*73BK;U=v=eKG9`#TtID2UcdDCerFO4&3<0rm2n*6+8 z)^_v-Wcs*&f$3vm5rO9ua3=|6pHnUf-M2KqT1ekOdqo1g6P0!%nnTDU%+SlcbkG+F zUoD>446Z5r@I3Z46|}fuKT2zPX{-Bm>7n{Y`d{lC`BDGfyDVF8Wx#Z63$7_K@Cx2i zl;%{iH_463TeD9;l>sJ?4hW1G^7zK0G%clfl#k_OO+(uhSpT zjoGD;fqPsKCiW5!=1@h;c4P$AywY8MAs0Z=9#e2;QV`nf7pd>XiCz2!)}tfdHLNdD zo;c3OhKo!u+(oYvoQ$pTB2GuiZO)0()8(p^Y}_;p?cObaUYAF!hK)JZ?J#JU9chY5 zTy%8E4i+fZ?p1T(3?sb$5jBA_nTEDIpD89>d_2hYA!XiJIL!XZ4l*#zOBDCy6~r5> z`a{4?37@MY+kU{MfDE5Nq&PR3WGarLg-??8$$t7YGuiIEVV=$S0s zEoq#tunf2zeOs`-4q-LCZ!o-kdwwfk;0|P)?>R5f>fYkolj6} z8!Vo!B_O-;S%?^N4+mSOJ6WL25BEf|QheJ5n1EOReF6q=*r3@>m=QcY9N&48DYkXO z)!aDYGk2PseFPXVHpdeR0yh+So`)RJe7CGmb@`*yC@2Zs0Pw36Z!Ul2FQsbK<*r7i zX{7n}8@m+#D@w;jvu?>e@C9whp|8{=w8zz=!i<>(9J4czBte^kd>bv^D)~ zaYJ*K5HeFdQ1HTdbXgq6n2Ei~TXV--s{LJ3)@mm2)gyi&)93dDrJ$sT8-td2DeB!@ zUGzr+E%3#%=QUDE*2LR7I~+Y;_4%eF=l)^QRvot}VHgm@=(Js59iF`aMX2)Q1OGmW z%WRuhv1-Y#|J1^6AeT2{xrCEM6a7|Y2m6j4knr%w4Xa?g812H((8O+pmARCiYcELxv_H8cuH!a<2f|Y{$!9Fn~!LFku_!J2~ z?)h|*Sn+>Q1LO>FFdEN|$?41w}ST-{Lor z+3gGLhbE|Lf@&^MejT&;XA=ebLE$9yxgD6=Hd6qF{T_gnG%>Q5vdjGwY&X(|y8sNv zEj9~tg*mi8!+_TKMW{Rp1TS;KDusD18%5m%F+GK_2jj` z*2=OyrR=vz$s{3Aq-?bo`T|BDZ z4S2Pd$mi0BGC92NWju#0fhjXsx@u;9Oh&8Vl6}ZD`HRbAhKO}(VFLkY?pl@Vj;I)u zYwBGbD4>o6RNv0?9DL(+4FkaR{!M5KJ>>+_x?Wz)H zA+DYB7(itmMFEpbMs@Ce92A07ms9wj=BzZ7I}Jc(K)?tRs(CxU;NcA@QI`SoO$|V{ zr~zc?aBqS4s(Bc)9JKDl_M?jCSaF{rWP8ct#*1MMaSGfCIco9|r5Jp!1r6Q^YU~LU z1^E@Aj&C4b;FX4WL(`F&PFU;5&P+#atpN|cwLrWB86g)GSr^VQYbu`Nj0K?VWWr2( z4hM9=<)lE%9)+dBVLi52K9deG`c2e-As3=b^>0=7K8Q5jz68bLk0gDqvyI5-^F2+D z=R8)wyc=m{Qix|NUe{m*?|aIkH&#n*@$2RFYN!cY!R5WcJ{*SvA|vd@3O& zvjBSfdAt^sFXKbtp>G52@}^4*hDPJt+(n-_&bRg?UjXrt)yL|eSa*TsCy&_&(^Z|E zu^Lt&BG(?=l3(YH%k6^Z%NlLy?WIOO9{_uDQQ&Lx7JeK99Vbg5(29SI)in=r-C>o` zu`)}^h#Jm~dVd{WhHEh5S05DG^I(Vqvo^MqPFtIDCS{ewq)O1K4L&6(BFv^yb;>pu z;-%s@;RYuIx;KCex37Gno$|OKU#OT+0n5T#*MW_=DSYD+ox%#F@&)_QQRI;pqnZr66)47hUrmf6ZALSQwBhlE6NnLS|K|>=>y!r%#*aS--3*tu_zK zkPx+?qg2kBf+&cWdS_QT9j$y~+Ibw5`(eSTl;>=F_dp8T7Z3TT8}U)57r%50!R7El z`%*ZjI=DZumyC8~fo>qD;I_%CTGt_D7!~a?(64aP*?-pN?o406ptmbj%tB%_(@-eg zoXxb~F3IxrG~i6l!>L{GBHFwwcxkrWzE6!%TM)9t6;=_$dD1~r9o7phOJG*h^qNWk z5MU)MVY~lcP)x1fRceadlj$OPp8y!H3yn?UH{Pw<>xRLtB& za^$b~%8@2O0u8=RaEJ`sl2Gm8r3V41508==TiVQ%L95yA(qoR)MxFAy^s~UV%w~{!URfi7%gMwSU#}T&b z1poVnO34h)qrdl#KEEV#doOUfyW(T?H=MjpIS(K1^x;h<=)@`_C~Wy*-jj1jc%z zLc9nYRuWESc;}rIf-3=d^FR21lX~a6ppU)*@L*Eun8$unE8QymnIBUh8(}kb^cx%C zzl84c*_>x}f>U|Deb)m$c^He^hhdQ!s(a$${_{@I0rXK_c;-=^g2#wqR&HNVZ&d$| zK6(=XrO%P4W{9v2S)SUiA3CBVtW}}x+lOgJn%jdHn}cD&pIUX@B$-7xK7dl24D#5* zmjQ~iQy=#elc0}galSpnoO}7yA);IWlM=%d>ya_^CrIDYnXYsbvxeaakH;QlbI>=% z#Gr%3DZp?z{4|a%@HL#uk3Wa23e`oB!Gxpz7YM1zb`q*W4_$x%i+Jf_S zIyS?#l9F0WK64Se;&`vq6v6v2?A&iRjej2D8<4@2#_Vs>lMyy8y+tGqpny4N``4C) zB*41HVii(-(gEe@%h)#vD4=`HzJ+V)IV{R>I<9L^-1%>P=VLxi2aP)RBWHVaOM=tY zw9gGqs-y;>=c(b}SDJ}bOW zMrt(RcC?J*3Gf>{=`a6Y-o@WN5v)fuwAD((=u7mT>+vASA{29Q@kQ?WV|b>lpF|iw zb%1w_`#MhndZI^Eoq?N4I+7g1+ROHfP?A7j;z@&-1qddQ?C`RUdJ%ll`u!(_8i0hp z7Cy$KQ{YBlL^k8vcc1m>tAImgQS>GCI(k_2MR}MFpMk}`y+?NQUmh6-v$c6Cd!%;T zWAqEViy@OHc(pj@v?!CcCkTX3;61K((;WLJt_j$X+o`Zw3xsWHu<^*#!FY=2DIm* z0RTbEpRQv{B?9N&#j9OB1`l+j9Oq>D(L}-0D`_Q*H0Os{9|7Ey(H2sMMoKsF*( z%&Kz|VS3Yg5|}Yg!1TI=jX=~T{}!;L|8o2uh){8k;Ut@MhD~3WfLjS!0Lt|>+8YKE zkkMn3&-BBX!(KU}4&C`WPd;3W?2?TH^Ez_X|F&3%7m4pYJjd`eF}84)@tkm26?sVDaKWd*B)@?k3@`TD)o1v^qZ z-`+EXE=Yi~-kA*8X$n9fa6TzKNxm_a6!3#DW8mkfleYhiIV6bjhP*I`k{Z}O2Kmzq z&Nk7b)51;(1j2Su9Wt;VjkprpnZ>pPM_;`6TR>o89B<3!5X0Fyqq9r#hqKGG5WTzt zhOlJdw)@S%7zrAko!^wAAcHxhdmU1a#Z9t95hl8ih`^mG{$6(LmtwY@K@P|JtDk_z zxdxDb-5(|#0KxK?(R+Ec)c~o)EZ@SAXFBzwq-wuH(X6S&t-G*Cj{XvaOalV{;mqml zzqnkv;k5zT!QDGMIB1C;8prV182A0TCgW{I{`Dq_!IiR8koM;v)vub z^*?~C;!@fBtJCp%=mzeGaQ8drFMA;XtPFNZqF6I`f}vCy0n^^dxNuR(KFsYz__=5C z9K1(c1A34Xc-$WC7o43aj9}CKqz%dt)*=aBZ1(qKZWQ2K5QFcG4^0R{=pro|D(6or zT_g=MGMKk}cKUrNg_}N4g>4&TpI+!T^7;KAP`A8%z>PGBQyxxS~Ua45*Y zH?qBDZ{grDY;2^ZH58?#sWqG(EN$Lfz`-eeNYZ(#t2scJtsfs7`x5~-7S9X+iw^Vi z8We=rNMz4Z=@NgyKCet=gb-^cV0)2Te7yhH?!NtP)_L2D;p zPLzaf5}S+KeZxhX=J|^tL6uB=ih`A2yfP-_5zFtS&}BR`pG2HLH>8UV?Jah#Q!48I z=95=T^7@5xPtK;&(_0oFv3M)SDlOO|8WMSuuS&i~YAgmflIft&tJi$pq&Ol2Rjagb zg!9ot_qL=czKN>gw$XPxAvl36#>JC!o@0K}+)i2hfqdFihbEh8O(34is1l(u`BY?h z6{{QDrK1e3yQEu61YxG(Ylp#QP^^ZwU!=D~g_uPAvPYB=L~xCl;At6G9Ky5*|t)qzHufI0&hdSo*@L2vq@J3yRCo z?=_=C;5lN0RH)&iSu7ppPTC`g4OgX}Un0`L$6^knQxX#d`1Jdem?r7S$8vL}OK{PW zi3ST2$pn#K8i{i$i>|SwiiSpRQ9&Ckj*THg70kU4ViNs+X1cK-UUQ#F#i$HRshToz zhY(9)(9SN0f#D9qy);i1Ta@@Bd@|1>Gms2HexBmmWI6C>^;7ei?+pZROzw?u97udT1hl-&t$36u z<*;bx?gcfw47<$wKYpHEoRTN8z1C=%k*1Znw({5U72l)v|J_Y!5?Uy;d- z=5>;92%yd+ z3~@w0D8TCUritsPp2cZdGE{kPiED+Ef+K)?fu9jk+U;(N{XvF@S}68bk(-W#IYvuG zPkmNdSgJ{Ghx+{cx8k(#jo(AR6@33N@$vVM->|O~I?aVJgVLB1**cn=c(Z<=6W0^x z6D()ME40SodHJ!zX^mTE)I_!)qDn#qVa{PE0Vis2-!2#|$orNwDfpIoHD1G?pYFs= zNW6CY3e$SwhVVx1t=xjF-DhY)YyOz^WDT_*3wummq_(VxthdbWM6Ru%jU(SBsS6(q z-#h*?8^|P`t)5L4AEOQ7yJQ>6ameSH0@=x`NmE;=T1(qE))W&>r4#w8Q|@EYVFQQa@6?D>A$?3^k0MQk!>gwgUUQ>pb`j z>6-rf=G;s{|qu+wu>{V?EO6Rd2al-bL6_p;JZO@ zZF5!!*1QSfVi#?y61$RwQX;)6P+P@V{qpp)S*#BS+&~InidoJn$x<$x;b-? z3Ch}w3Zhw^X(J~|3Q-CftPFBJc^tXRNSv6j9wqKRd) zJDczHC(({Z-R|ryXRboJu3A4u4_c?tq#&o%m%++Jr_iRz?D^`s>V@pj?H%SR=8+CE z77oEb#d^VPXV$RGmF;!r^OEDev#K+t)7dSzIsGY-N$(FAo>W2V6{F-iayc=r*{zO1Cs*PgV=&Dr9^_W ztM_z4B`qaW9U~p%OSBzS)2(};y+Rx|I?*q5U+A?M`M6!BxAM78D~2j|Dh?cDj!2eO zaYG{dBa(3Ig?h;;i$4Amo3%YF87rdw7Iz#+Mw25mBd?fG+M8=87XuR8kg9o8BiO`& z-0f(p-6tAZ`yq?;W>(JLnkqOyPHYhWPF@H|H)_VQ!_0Gue?Bl%Esp!MhCGI?MXX%F*_~;CV zspf*rR^yce=?RSq*af)b@xNeSd^dU>SsTT+GtZ*77erq;P#h9SM6`u1G9M9@;E9eN zjp`;H)BKWfakDJq($Hnt!>g1flX0k`sj4&g?T;RSCN1P7WL8V)unVwXeASiDWEU6f zF<0tH)cz3sMR)wggvZY8w}o+qZ8Z{_45s4IU!hdzDeHA7IcqVeh$pNk-bM7PB3ij` zsW}=%7yPbQwnx#s(EPIlN0)}Jvu$3uK!^IOb*t-!nkMbtSkENJ=e_~vGZyV!P$Ybvqi z%65OPmgvX)U|mUmNkX|TYYa=dkwc?j&-Ex-2${Y16P>+9>l&xyUhIs^j50f{S%c~x zu<~}Yy1uOb;d}H&ZGD@!pt`IEG5?!t3Pq8TyS+P?3AL`Q0+F^oyu){M6!kZ*Njh&P zDD%Yzi^tx1x@|&Hy~_{KXLO8Kb*t?p%>1|E9VPvi);Vq3=7otpE3RTM^3uDs!v!ew zsF=UWzAKt?pF-W8-O=39kBJtaonM-AT+=Bs^59SB*CziZQgH8vNOcXy_T;(SMrve?hGDtiWn*yp1Tn|K&eK3mF~|V4zpI{n9S7V;^~(_IfTl)F{-l1Md4r_7uSaw;Tlzq ze)7HXM1F&Un@v)8&H7W-_uk+rm}#_VasAQ^`x$OSFx8Dee4Al(jfLsPJ&=2Rw9r+w zR8@sz0Y0O^J%J~MLjpd*121uSvj6%l2hRkD_~&~BIJj^dxF`R(Mh$p>e8d8;$2Nbx zBgTipJq7;5176@A3k!P}YX{eGQp;T63sgr1 zkP93fA^qbEUhy^E5zzmnjh3#fuBwW#nS&jNiMfNR1qay95x5!-P82K*e6+K0HK7LE zy|;G}28+@Bxk4ED{P;B|4fUT(Ty4c@bX7H|r5&6ts9$h!ad6Ryqft{+i#nTI3cr?- z`$u!&KQS6>S64@2PEHRG4-OAr4hLr|PHrI~AxCEDKm5=i@J&+#Fn- z|J66pRP^y%VGSFw#e0y9jU6B}U<`2{{uiQuuKypu{A>hqoFA08P@N(&6Xm-RIBS?x`)Q8ZL4y(oyU z2Z4#^b*UCE(wAwt<)Y6)AJMcmq+Zz&YG}Rx`ZWScR(6|3Rtz2&9;rYfF1mf}#y{uC zKRm5*W^SRmrFkKXF$de6A;CP}fiT`G9x}l1dwphxXU3sZW>6?|v@q2dE%d4Q;^>_8 z!~PVvwwNYkX~wmpqGG&=hkalUqdKJvri23&vSH{OvhC76#ivl@Ig{3-w*aEVqlW)) z&m*!xgVW7X50;tt47oJ8FG;3$Y`L{mW)Js2lTM}gQrM5`|JqC}w-~#yZTTJUSoaW^ zTZjJshJOVKfBu^C{M`3UG2n^9e}6iMNtU%e+>6ME3Vbi6d4`s-BIxUy> z1UhPUl$wHi=vKCB#ecaTct`CLl-W4{m=fN)aXLKjYb?&0*it@X#H z;zQjAlaAE%k;48{@_(j)mwObwP-immKi7p902k_kz(-RY%lo9x zZjM2}?tNUAh=HlL$t~aKpzR&NqY>^2>wk*0aU0O;G4<` z&?W}HZtc6IlDEy1L-vOY%{tm8y3fg8ypLUI_E2uuFbO-g=*(n{O-!Vd{rD_yZO#1K z>w=HZShV`d&2-BQguZE)>WvV^(*OHGi_k}S26dWqWdpn8x2s$PA)!ZZg~9dl_qe;) zzl1@sX&^wOpch81K8bo#PG{eU!25_PtX<-<>5MfnCz{LmjgO~*WGEP!S>EqsFn^B=k z8qK$F-v|*R4ifJ)OT7)dB?2uO>r;9+>uOknfG$_TmG^fy`pY%;4tYyRe|9t=3QoPJ zqGO33=v+3SbM9paIv$Fe@y1YE@7LMO<5h~mA)=J)K;DIp%AWOvmx{7$9|q-hEyCf& zYD6%~Fsa1nLw+^2goYD6u6@ZHL6o5DLINIvI@x_p}11J0JS_)1r`T^N=qBMty9%>Ee1dwHde7hwZj%Do`UW>A6y$TBIpKil~UK2*#bhVgEp z)$?@2xrabUA@5~qRZ*-D`X6ygs^GN8CGc7fJ*qg_SZOGl8%tPkzB;gWY@oAyYpY3~ z1Yp*@s9YoQPw}By!fq!u_Sjn z?OcQ#v`tMHu}}mk4wg3M@YTO7V#)c%9{E{JSqLC7MFm+ z*B_>55{#e#nj5L{X_2oZ#N!6GuUhc?N8=>UNf%_v)7sl}pIWHbl*mpM;vl>rrLvl~s9 zmy{HFy)Vhn99kc*z?Rb~QaPJY`?!CBdo;PLNWMAIWK57G6kog}PIxqjhdMD^N_hBv zg<8akFVCP#G?hMRhu!bgC&L~sebuLcXreP;Vf)-8ZJIO1_BKEUcXO~3&nHi6XeY3= z5?+H@KXjikL-32mKxB_Txt{|;*zo7Yc0*vN{)eB8@DG5gggMMrZ{XtmjMfs-P*qwk z{r~ntBn(3?qA5hyYNren2w1fhMzh7%Z%;=(_+$WEF_a-N8Zz0X>htpX91Kug?B`dHt&10{eo~Bmr2k!O~7y!0L~Qkjf8gCla(Z3&uVV} ze$T@2pl^O;Gg~p_6puwotj0L3x98nOR~QR;I&a1mPL!*if=>?d*S0G2Z8}>J;^Uo_ zPf4eAW8Ud}XS~5WNRqg}d+Vn!rt@M?*GdfCZTSt=mzf5a7Pd=9daV<_QS=Q~x|FO1 zQB^?%$c}E2Ga~cbnoO%(N5mrbG^TJYDir~*n$U~ou5gRJ>B=hbu_-OuT&*o*C_0gv zW|*kwiGs6pRi@wd_G`c)@r^FPUo3d!KrUB4F%YlV?$6f7a~g@W&YH!DF(5w0;=5?^ zzDPFd3ImPe9h+XCZ9AV&=nS^{-jGj_N%%o(?B*tMlhephZs?VhQJ_<@44NjI- zgBp5}X2k>s20Ng~QfxMoACVsbZT~C>9K!Uxzds*&As$o8Ui}oRUbe2Q{^A}b828_E zXxXM!mv3dwy%s}lCGwg*GKy7${S3sDSzzaHk8(Qha#Rg=%>MJm2O&^3>W;iL_`*(1p{#7b1%n{y>U-Y# z`qmh&)S$6HjtZD|M4AfvT!Jm@T@2;P^~6I|k{$u)N#v%-a;XMK+pRONzG0ccY?>b% zZ`y#c#5qjzB^S7(CU|zcrCIa-kkOtrX)nYj3KA-105gx2?3n zo5Km}t)5)69|=*!=Vo^o%Hpd`lQ(Y`0=H2QLCQq~h*Z!6HN3O?-w7=JMJ<*JWd@C+ zt8`UItrt-50-vjsXfG-;FRcoPi}JSncp;Y!6c|f!*U*d3y}|zT87lu<6ByX6PQc?} zp7gyBus@pWVs9n^Bx>hwOrC1MZR+i&F>YywJf)`$GA8L-f0^tj!jt{_Md8k>>#$Cd zVpLv#ynbSM3Qp^H6apGxR@`g4C8I|dW#>I9ihwX1_wMO;MP3$29HsYX@92ZX1H=6x zv_s{QcQn%WpPX`<&n!P%qpk1L`L1f6OJ&bSPH4qvrzTk+d=2aV>w!UuuN zLDdXVM|Hu|H8u&Nw?|!;liFQW;3aqx9`guj*!qnu*kQUtN=<0}Sr;9UrB%7@PDZ4_ z!V#ZQ$yYp3QYlnK-n9p=>OVi~Kr~^@@o^TMk)g*5_0Zzt!N-dbeq2EB-N2%v}}(Xk8@uars!jyrLED@-!cPBM&#y9*<;vr_Yc_%JIvs`oEjGjRc{8HD%qI7sfN6JlsRUYEOnjEM| z7p}PPvB3DnYBPn2p+H`Uz__b-Y1D0_U!0CJ>wC#&qAypTjM0MCl+zqckeIH3yoylt z82vhbU=xu{^(ZX6ocsjllXMK34_j}_#CiPaI?3c6pWhuVcOfBn?_q^4I1;+YP>OwS z$|Uu!l8+*#cW60J#{CHMcJ+>>OKq@htWv7=?e&J< zL+AbFQ1&X|Z0t2Xd=lGt5Z^y#(#Q>%X3yl*t)LzT?dTzM`tSVycCwM-KstCP`04H2 zP&9%k+WS;KM^cS|_u`*k_C|H^$=#l-FRxs=U-W+f9arAoe=jbJFUs~(`mR%MA9@-D zM0M9sTp_tayMJqQNimnBAcgn$wW2T^&f&=uURp@Fo0l|cmS<=Z5r;6A1C4E6X?&%J zda{zmcfC=^GQs4GL$QiJw9_UOd2o1oAjj+6uPQ!ERs%Wp0aL6cTxf@@O!f`S$Q>#I zbR;shaKEB3!V?vpz00v%Rc z4#)G3it<{Mi$BJh*VCpM_=p*@0MH^3buS%g! zugl2Be$QW6p9Huzu3_zxa9sOO>NBw4cH(Zd9^*mPqx~f*ZAH4P)LLy9)og@n41bEP z+HpV(DO)#eSZ&#yMiW@;`Gkur3Bu3;847YGh}n$Oxde-KPb-&|HQetTQ-k_n^C+N|6oQa+qu} z9xxd9>2T1xNv?*)h9POAmdzK zSluT>oE$ie7fvG69lP=MiBZuP9c!vLf{=h6&f9M$&aZNtYrgqXgw`WCUEwI$PL=WJ zrM}&t*zNuiVU6N|vS;(FFzr@35yhwCYJ=>XQCn;Nv+2WyFN*ks)+EVxW)i%~dh$CJ z7sP{E9(&U!@um!&Pvx2*-yd7B$8Y&2eIUxKvREXjax2Jr_ zmlaCzgRn{!N)B4WlXHqkBy#*wzEK7LTi9}uTYfVzx6n68!kAMEBJtn8?s48F+h=

t2<27?#{j2kDTP<5Xu}eOx`y5#@gD$%bby2R0!zPomykpR5sD~^M=@~2b*xR)>g-s(`)Rr?0SlkA8Hc@`3kvJ>hArfu-i`R+!)GE=p{t9_m%hOb9NlpC`LH%K@)6a7+3OwTmAbW0{gD_b+Gr!a#xaZf^F= zQP_Bw0j2;LOC+w1A$oUq9OGndmeo?6puaQ#kb0TK9PMsmmtz zr%!Wg$X`!6S%McQgV%Ou`(#sk$!;wqu6&@nEvl;k(%^r4(~NtfONt#%+dM1kQTbkN zVXHsi>ethP)1G>L6RHtUO*s`m?XZPQudvYiBoHyts46*i&KC#~k0l$51Di>2yb0Ue zuwb}1xP=7$B}ae}D4nT}x-|x)uds<-01?X|dp)@k0X%N>%$x#wq`yh8AV2>E9hrc= zLAu5A!7W#{Uk4IVe;lp+Q2zR0igFUm8}hL#J+PU!ACNk3WPRn`vG=%?46xX!K!_>0 z1lm0-p*(UD0jK3(7ZshB@5Pauoycc>Nmy<(gQqH4yw(YO% z1P{wr(}mUBBTny8JRf2WkJUkT^Yx83X2=5-N-|HmVaqI=MDNho1E=12^C69D%l3&A|ft0)&mWEBj)6JGtS2Uos97S>kWGLxVCXGVL3*L<{>}GXuhD_kF!;T>2 z$;tH&i%`)ZxLy{-;YC)z3a z(sS!?y?#0nLi!-TefVhLuI4g4emUpv5SJlWhruQ!@$8uLu-<`+b2HN`n^vOSrOB!F zVl8}AsN|DbVbi%wl)3T_gS=OZqB?kr$zRHN@sg2rV(-l%7o^f{aVc_e?P|mUbdgH` zu=urZ1M0vF)t%gj{=yiGYUxVlcM~C=3<_kgAB+T0`ZsHzR*Q^N*~G%lnsMaWoy?Fa zd5@Qcb#KE01qFv_x@N(GWpA6^dHimV0U*q&57)rms$981DXFAo3noa?((7bb4spIk z9H)&DrO|aiSg(NGHtk0HgOwck;l#C2x24Q34tW+HNZ5N~z&gAT$bA-%Qg_CMKve}p4g zU?LxZ_6jX@%mXO@(6Q0wrLnqIOiatZV4K0{yLyTIqq<*9{HWbnk0Ip;*S|GkQOQSg zeja?SMoosZn$>Dk*bEQ}h;6(UhqqjlO_yf`{R+%%m`{}nNcV0y5pEhLD#+NPjR*vP zHNPo^jo*AN7``&a#eCH8a2phTOwu!>fL6s7KBiYR@5{>XDL%K-4nGh|f zH=|cuE5iMO3IW2Zll>3_~ojge73*R zwCj)7XovIgt7iH3B%6Y(dW);DmJosDNdKR|m=)%?J6rsHuhCCn*qlWlD3!pp9iQIH zDYtx2(Y47Te+Y0b@u<#pQ*vX)kdIpK=XQIsW)gIg_5P^1Uiz6Qy}^$&ewmOhJrAn31idGq_C>n<$f3OQEbiYjO>6JA{7|@#5Cp+@-+Wnk^xOH?Wm?watgOt zE1_7j@}JdRWT{^F52ws;N3+=0dFq=?M!>{oNMWPN>&|z|!{?JHUARzH+nV?yVT}6m zF9&lb$?3Lm81)?iWEhR#@{hFf;;sPA#7P!JP{u4627ov6IRX$W&8Miex8x?s;deu+ z`=L}nvRp=llApiGl)c-^j}eYH4?XIoCK-e*?@X0*PNz^r?~dh%L#}s<8Fn7-FC;oh z7D=2c#0^`#+?0J5-RJC1u6N7zL9f92OkgPlZrR6uWcqvHC!ZY>=Wv={Y9V>Ec}|es znsP+xzjz_nFoz$Reh-PfH~AvQG|Zn|X!fCL&dskN>9*xqUEWc!Q^Y9yc0=XxGtx() z@txsjUZW(PBFtaD&`!``)#zQ2mI;8SEN?ozJR)XYvTmVx@R{Hx4qXY-qfAhgMd?0C)Du?8^ z$Bb|NQJJ3}yJz)H5sYbrR6f3Rx`s`)L1d{qz*>TzYtG)o%rYuIPBVNun2vlo>Irt8 zmr_|v|BdKTbXUfgw9wJWqwM+}#w%F;D8;(Uq2-Uy(>oJXo3k$0bqVRPNs6{GieG8@R0 z5;*9ZK(RBG;ayE={T;+PQy|(5YFsHw9)4N{SnyfmgDz}|XTM1f+5-`T@_QWg0`9G&A?4K$a&8n>J%u`^Z|xH8^*GSL_dsld*`oe zm%v<{n}pB{qpJqj68~!2oiK{sFZ-t{!ks}2^K+kb3>I@UR*!or9+c*YI0#Ts-ImcD zGHIhvyB7{FYTJ}91cV!cc`YVHRV|+*=wUQzxbH1w+q1QyIFP3x4bHH<2T)kMZi**m za{#cc+T^~^G98TZRO+j|PvdH#M~ustxV90m)jOOxdZk21x?qL<`Nrznda{=U76EW> z&DQ9LKpj#S8JqIG;ja=9ZyJ!u-Xv{9yG(ClpZ7`V@jE~b99=VnZyJ}D?to&57wK%* z-iv58{d)T>#p}K5QM4Zg(VhB=KN$n3A4^>9Nq-OF1CAk1qI;LD-j{}}X~W%pIqMnt z{!Nb1>+cFA@-;F3UOL$iu*;dg=%&{YI7{*p{HR3Vs8*VpL=r_~`IyQq)?sP4)B z`e$ZHqspU1N#p3$#&& zF-rZc`|eBlhSFG24}asa#MPCU=RpR(6|OuDM1&urdhpKAG|c`X&)0b()~jl>-M&x6 zQF=KGSy2~0ZDF;PGw{+LfFPu|c6jUkk9&wRT4s7aiTJY~fb$NVqAyG9q3@E7!asgm zt+~E9q&lsO(w>Ini8T0a1!@SFv9*yGr5{mcu>|NVP;x`N|v zQ~%CHF+bDS7_e^qf%s@vrw9{|ICUU7{i8yJ{4WXt;7pV+WcV$=?2m9jsO;`a3^beb z?<)6Zb69k+%4ox5$ORPE!NhBplFge1SDvL5>JM`*Z}c#2aZRS^c0Il;pwWK{V7V-uN4$%m7^z^8aQRll;>Uy>B z*1^eX83oEIXvq0yy^-8E+54U*8)Sq(O+XN!t_72~Da!{G075~9v@{Ep$qxKaZ44>t z+FK>aCI^Vv_0}TN($iUDL{B0>;xQom%$PDP@5ND(Ls8ye(I;RbGzU%=4BEiVM?iu7 z!#&l@ze&z8=^^}-cb7Cc`(n^zEpHUbJ=QQME@JquDwo@VAH1!VIb?@jRGFbs1yHVr zjqLR(#^|_2g27t=!BFRI#)|WswJDN~&vXL73)6^4U##%=zWA?_@f{mbGp7GX&Dij< z&{Y5Tf&BmHYsUYtsp3nd9v%G53nmwFSLuzR;*^h}tYr}cXcWvq0mf|<{V!JE1MYOQ zNBK~e$kcbiYt%C$fD_2$bLq&M`N(9srvvH>qwZFvw7>_7=M{o6lqz74o!^SE!$nR2 zypQ|+TdO#EI71)>U?YJpAb&BKj;I3Dc&*Z7s`XsX@V7Vt&K3RL&Bc`QHPEB@W5wcE zm{lz;Ezl!LIXH$w1$?nLqX{JSbU;ECZ!wq*nqV_(h5RnoQRjdhy&Un;*8;+^$JtN^ zq#Xcs6d@UbchPo?*lsY;^9!A09{i&!=#FBM+IthjJlW0EU8Dmkv)&Z zrQi~v0-d(LfwKUV&dw1DC*%Hb>!?)_bS?jMb#bsz0Azb6h30$!c|!*1D(frzpqFeC zK&R1i>h-bg2oZ=}Wix01yz%t&V(rp+VAYzgeLl8T0l?JgV(*@8jOI98e*g$BN&q5K z)duGSkZmM~Z~;b5BZEnxX&lfKTbqjR9wI&0q>A(U9LNNlBW{x7V`q2?+pal;+toq0nFSDG8KZ&i1}( zOtKgK9|>58PMjkS07E~1R4CzxP(qIy0x+ON*i<6dJP??fnX@NL65_EHf82lb>r2o$ zcW`(1w(+r7E>`O(83#a!NpgHdTs8TBumF|d1_vK2cq6W?IFI`s1{W&ek3xro49~_4 ztFp}Uc~`Z^S*K~~fJLk!)Fcv_NldSeYFya-YK9PNEUGH3N(uc_t*&;1^SaVZt8eqF z&!KK9>!9pkbRjW>)CCSu)fa$|H}hWN^YhxRN((i*ScS**>Ki{Og^jktZmy1RvgCOa z*`!0N#i4nxkUHGpQ=6n0n{$Ex#;*$mGXlDD$liZqMFy`|J@Vo=_bH8DK~!3yvD6p&o2>R_()?{zCR{1V zN@#`L8@_aWgV?Jz^-o8C$gX&gG{a5-ZdPJDgc?f?nWxLr0pd47{)8sC#Bd}|cr3mE#Wm0op{3$KhXMv%k_Qfo-+Q-7A!XEd6tWRl zD3B#4w}z)#u?OPOE2Z*+fD@Ts%V~P>uNg`rpsEAfv7C`gFr6_ zc8da>tyBjZLM}s;EhjUa1)L?p=#Qo%hI*qQwTL6Yd!x=iOWwOV+olCjRS&rpihqj# zPbVRYz@$_(BIOYBP=HhVlZ`WcD;pqwe%A+eR7I=I^PH01*Zuw8+840zqdmBzfTG&#OW{)}$2iQDmxD_)zl<@ZP0%Z#ziVC9bO=j2MP>4_TQSg(v%-<7f z>cbt$n5NO-`d0CKXiAdf`*eSVJv+rL{=Qz38U=uvenQq4FP-|6g92i2rEAyZ_LC0oG`0t|EzGgZkymmwtf5Xz?SFIX*r8oov9C+Kj|R)28emzV$y3Xs)$-4Qn*f z?qXXTf!gl*Ke&@{0E-YHPm*C60ya|@m@)e^2z6j2eyWg5VWqja-z~V0=d`E5Z%M_Y zw{k<_$3MA_hhc%DHLU;SI(q$YTt@|JUj&KUqu>um+eJCTG$ZU+QLEVk$5O_QtMwE} z6Yjo1ydGKLqFYjQ?)8)g`qwdf@;Iw|jK?B3pxszafS1b6l;kK7J&c`pvRr#v}hlcsyUmF(-d?az~8+YT1*! z&ztlCdcbhO+U{RQ#q>h}son$+k_drx&M!t_VnhHb(7#r|HbWNJhia7fSQcb}e+6ne zzr602I)a6MWl7uhOg&CPvIM7n=wiOnrE~?H_0dFZ4WO+C96pX+HUL^Kp$5h#&~o7z z1;z%L>V+Eb)(wy?QRe1WmJER-b|IS{F3vjQQ?RYmSs-~jYoua->VYJ^f z{*U2)9tR}L_aXgf*^vf*-?}z9Zmogt_UkAqtMRzw%h2Nc5nuLGrRkhQq9J6L&_v(}*H5vjV%eKt3{1Ywi1Ob$>d19! zq2w!{(TjJc_Y^~8eLr=tmDcj!tH}v{jh)G@m@gh+PqA3h<*+jnFthidCnbtKbsvO@ z&8;ok6K-{fEPUU7kL z_g=aLWYwnSv1d@1jiI z;!y=dkjaIdWlq)x%n1AesNgj~8rT(2=5!U!wfOA>{~v6fd<97ny?tZ;UB{4%h>XRg zPY9;`cphh4xQZZd{YMIgB}Wzm&U)Vb9%Hg%_Bld;Ia8T}@jwwdjMvD z#Zbws6X@R5+EHAW)akhwj_UG4fie*ZuVv(vEe%#Na9;utd(SJ$FWcoQTmoE+5Qmjm z0)XID@kmRH2COasut_iPQzy6x2vh#V+iD2-59;wNx?GA<_lk5kZB&P0s{3fM2gQd` zuffqltJ&aR23A0M1>@}3R0|tGTV)#-kwz+6fW^#T!7wceC0ZKj(Q@d59l&o!iXBb7 z#zb=fTv3IR!Xu>wN_tSHYo(0e#K=>ANd%Hq_M>qj3H`lB8;C918vm9 zzB#OfEWp)U^(TKY5o);U(UYj{Ni#Sb?>*;p?kapaaZen*YpMPXGrZC-Pk zev;7y`(Lf6R9TOG&OOZHw@p^b7M&3-*Dg(WJ(w4=HejRQ2his8OkODA$B;H4K)hs7 zs}J&jxU0|f+(=`<(k3>^xd2FUnfB>mKZRwA(bB#uAf|lsm={H2bSY9JAPBKTYQO$f zAoEdnpzza1IZP*bH@I8xw+F_yr@pu1$Y2<}f6Mk@Z$t}J-Pn=_vzb$}ei@)`uqHCx z_cKeI5AD6O>Ev!FpV>!j%r#x$8^x(G=@SM)HUwreo1|EhOIbFv-CGk;_Lu?I$9oV* zmXQs8cr^Km*B;8J!XtO{Jttn*Ee+43j;F&3#br%Ot@qcqF}hHxXHcjC9(Q7=2(CW= zt#A~Di1s7xC1L6FCk{MfZ54C*<*feF!KS!>m8O~SBI=GP9|oWDyf^hP4rxU6t{z0j zsK|1EEo-BFN^0}ErC@DTzul{hh^t}JO^dAKC4HT)K0;^ftv3g}p<9!s8IU{JoREGlo1aLi2O***4DhW&FM+s2zT&jtgBWv}`{hcY-&?~8*Zz-;}1?avLz{|1<^{9S#=do$JY zK&npv6q_;;$ozgNGG>|gk&c}MV5h}QRX|=_K#wW$CuOA{sRh0z-`kz_$*V(G6Cdv` zTD}g|hyU#l#HX)Ibh*2p&$}8P|KzA}H>!R2=JD<-ooDj8UY$2ULFojjAEHGkce+2R zVA5jR|A8kTCS@N>gy9C{W~yo;`+TQ!1J-1+#ihZ|_*J=fVivnWR#{2Q*S3Y1zJbhs zMpq~62>`rEW|Y%>XMIoRv>A0{jdG~48?x9g@o-BE6f+WksY|>?BjVV5Q&Z9T2u1kc zUlk>?>Zkz>*~HjKhU(X+v!r&xw7-u;hKC*$pQGbP;0!n@_aUa2&-&##@&BKrAQJvE zLZICC@EPgT;B<5AdCk$neGltUrJf$vf$1>%+WYK}HeWGyBdv6f5oRG}E-;gG0PYw=AZboH_ZK5)jZzWMwdRs~)_@Tgc7 z&knr+*0`P*P8ko7_U2J6N{KOe-}>L3^H~4Ptq6evy!y2TkHsW_yH8g6?W(EDB2}X1Qj0&Byh7~l=l@E+VaEqb}o8$dj0|e7Rt2)5%g$r~1=S@1#P_5;QDM~D}k~+x_8|W&AycLW$=JpLU zU_O$W(XLPA^}*89Dt_SXXRNxN$Jv!G(D>zq9H$VAwT%H7Cvx(H(Z0e*i@hn)DXx;! zMyK295NP!*dR!53*l+_F%wWFRTEiQ{D@dCM5=|G?k?P9e_DAM?V+e?Kol74s znsRoC^vS{uPkU}7M*=;>pMaB2qJ z2B7HKXL~chD2JV*{CO`g0v;TARy*(PkZ%0@?=l`EG7n3=P#Z;RZXktXloP2U6jJ#U zlhq1>*dfpT+8X?m6IruM%K7f89yl;`(LAukftx~(Kbr`&azu^1+XD;00^5Yl8X&y8 z6MQ%26u8p!Lt8h^&wd;l%w8%l?VWf-TZCkO;Ky*5Xc@62x{s8UPoL>D4gQW3rVPCR z?lG{pyaUKP^1S(&+>s;_YyuBgn>iFTO+XPoD6lextLMZj;sU7efvBC#UjaBmlx_}? zecl2@rb%A5^N`rKwRq(cu9j2*hwQZB$w1NM5O*ML9Lh9xKLKt?5$JT>9LZupwH%|i zrY2s%Lf+!~Re+^Du{&AH3e-Xbs(o=%-2*X>LqPM9!WU@+sV3cfFEI2?gkH#O)Gzwk zqVf&ttv&>P3@o^`566bT{F;kZ?QD#ZheZoo3Luf9=m&@}cb5MbdvD=YW%q6kD}rNK0?J;awYlXPh(M@qOnX_`YX6gE7$U zy6?U6y5=?KT&J2V9e~9;P^s^8u_l3%fvJ=Y=diW~K79ys>FQ{s8U8&bks2}Kuh?o- zxgB-CQ3O}QUdX+i{mu5~;NTGj^*q~u=7`JV4Y16#B4PFqE7AaAj!X7y%hjG>MXWw` zE6!4kqDWp%9E33MJokm=I77t%`IE2oaYZX<7u_TfB07}F^_C~Agad$>J9ItQ?l@q6 zci7KP$28l0TZUf13R4o-mDmc5#6GY2yck#y7y>kBvtq~kS5MS)a z>$)UrJ`cEt-9@ek`C^~9VBYn7=zM!PH+osOn6dH@bL#&+^bc`+H}c>CA|l)ippXFS zrnn!cC>7$Nd;G1tM{hk&Yzv4`-nhBij_Z2x$_k?NgmMZBd(L1a;+`((qe2tI4(!5@y+}!nQ34Ww}lZZ35q`$)CCs*s-B9Cp!0txRfoRE z(AN< zkY8SRcLPRLq>;$2f#^$XqSmDV;@Q@wkB^vnOD`pYL}uUJrBZ@zj2eR?>i5+0%9n+u z3~?YpE&3*M{wkY-ap$1DE@HLj1kk2DP4iYBdgrbn{NIYw|H5Quo;Q{hImQUNRXNfj zR}6(ePFYK^KgERtK^wYu^>SeL>S2$a(&nk+E%su%B zel2<(9el&kXhw@deV&WeKkSTc1z_WWFoM9?_>Sfyb$wx5k_Q#`Ko8FmJm0wd7(Kvl zLQ@wdT2bVp^SQ+CCgnRyr$3Zi2J`)Uu(C%8I9OC<{q6z$D8wkZFL%PL*b|+>9<#Un z=(BFh+)-B#`qRheVukNZ1yMYSYE+&eJ%QFh^gZ#np9NpSmL65i+MU}ykk|q-Mv@r^ zMMW4+vqtYj5OMojb{y`;B4jzc&V$ zFR%x>yIal=68|r6kX_&mGA>R6oI$W8_ZejH7^x_mP^c(BeSeS6gn&ksi~q2Ul8Wi) zPwp~5?kD(9ttp!V-sg>m;`?XtEt$LOr@`c<%4eDu8WtK@htE4qEKP4?npS%U8e^FB z9N&OS%~u+PP(t>}qr3B!$T)||)dY(JLHA(M7q9d23qE|lw3wi|FqiO^O%NRR&U)5| ztQh9-+4fM$ncx04;YoAh9hP*AK={(x$!hQLv;MRMGPW7Z1x-b$uXSLiYz&lkNcX|* zP9d~Gj*j(4W^zY&DY{TOYKyD5r2ir#9V(Ho?IfYUo@HI6!1T@^P}t@38t6#Ky9KQ8aG~o?Sn0-$PaoSriclgYO6j z)NIG-d6oe>6#c?Xp(z1WH+liB0K9f`OArWM`g~k@`fVMH3A&D(44Ynbq7Gc++c;2P6Xiyp9w_gs_n+IizEH&2cqhCH`^F3fChm%{I z2^e<+nP28-a@RSVn#~q7 zrA|b?_o)wuW(v{2*AxOEav-n&dwl4R1^+^CJDhjeS|@(0RWevhxC4{`-aCcMl-o_G!7Cj@^C^-_b^{x4PbKrh4qv|QHOx{$omdWI`c zvm*P8ix6PMsDhG7M$hYUVDTZxE=DVnT5Ub^)ARZHbAr)q`GTKK0?j9r+8-ky*g;Xm zGd+(-B-cRt(VEwIJSrOu8-0WT6Ga&T79oFWdpbL%0LU6%a1FNepCZ$*9sqT@Hc;_d zc6xdm5khff>KxV_lF2B9xIXlm9D{&N@B|x|NesxKk*LtIC?HU`70jn=r=MJ2gA-Pl zRjZO?^fIF)y#3k@B!QIvF9SW7f(T8<8MY;5Dx~E9>Y;W*I_I+K)ZFODvq2Ut)#Pz< zY-#fA>ucDPE*7`cE#zQ837^Q=@pZM+U+<0S`E?5VL>4?3v!#aKWyz*xF{RG} zzJUUYJE^c_J2>k%EtZ#;kG-rW3!?y)fcOKPzR2I<^&eSkPmqwMDw+y+>84@%|JkB`Aw z^X3|WaIruM^Y_NULp-POX7-0Jd!HVr)RE@8xDr z7RcNQl!}*ABV3le|Fk}Y(>GLMeU!LfJ0?a3v z6hag*sStFyN@G2vet7a-6zKM_(|hhaT%0jSd%8uN!w_GZn>(&t{)(8g;UM7rUg(u=57$xj!*xyo!Hf57&Vl$zZ%(drKsK0Qgu7 zZ#^+uJWlfe7$bE4>ifog;y_tANWrp$G#$jZtPUJ^fC`_hv!*X##CN;|EcC-pJVg`< z>;?V`*lD#qAVYoy%VYCxQV^dhkI6v7$U;^lS`F~>{A*RhW-Sv)OrinxyKQR$tKu)k zn|Flt@n2!&z}P?tD5DfKPfA~1OU&yH5Ev5tYL??s%#}aqSQ_kM(ROCh^Lo$4Zr=uZ z&`$coXa|d8kz?*B03I%-1mk|avu3J<|w3^9RDR54#`A=K=xRx!n*Yc!Mbao z@C3yHs&;BraW;T!|JwDeo{vNv4^R^}P#x)g-Y9B&^lhBU-8lby{hoi!)#`{L-&6qA zytG@(!Hq1}-F_mI_Nz#w@tAb}RKNP@)Omh(N_TTi+K5~rL>Wz5sP0J4x*;4KcuhXM&wleA ze^`Gs+O)szq}*tVN;Y8u?{hmz#srX&mio8PjSwH9b7fO4y60Ru-)aPicwahs+i*&J z-KFjU2pj>5oLrU~Rz`#GjdRC$=p$?)N)EL6uP>$;!Da^3vVMkirL7nbYsd3cwztbc zxREzZ)XHsh9Z<$cI#H>e=}h1F1UZDa!;fro(rC7NO!8r&RgWY}#ZeBd`|tBw2IK%^ z(-yQEia{Mt2MgO8VH=~%S-s#G3ZopriaP8f)F&EA=<>fpq_8O6TbSoN|GTpL{wPo) zBxZ%rh`Y}P7l5;=qK*cixKE6PesQNRk&sa!VzI6Rm*;!;vU@!BIye8Bq8tQ zX8J)UQCqYpWuaSaC!Vr%vuYVa_DK(`=_PohZ|H3cwX5(Aj{anHmNdmRgcbXqYl|jU zo0hXyO^|@0QOPfOpZ7DM75$~2({9E)H5ut6LjjIJdWl|og%k$M)Y^q|?n(2Gk9_kW zZDa*ep5km!)35L-GadnKW2fAV3uC_~6vgg|9gAHbIg6mbex+QIJBolroR0K;^h(7o zL#}YJ$?f2$-Zjv-9G|RjY2Au=%uPXc2;ymVf49|N|Y#uHWLoTQvp2n}#)0QK6-Xf%$F zLS!OzZit|n>E^y8i)vq+0RcP`unV^>Q_pj1MN=qzTZaV*^vXbEESyX zv3kOvaKn=@za(4m3dx`tva6aQRWm7hR{7dVO}%=NW`ps;V3jx8w)KzEfg{ zdl?;P0@$ZHUQK$mr=nl+~eSyoSr%7`3Pq=bcRFiw-&B zwIO<~c2!g0g1GfJucWCi`+_{^sjtS7>jsB2k>~r4av>dM5TtSFi}L$Y`{P12F8y{} zO7DQ6)FYN%Ur!YK_^#AUK!lgk^>9_XH}OTzo;>Q3&7L+mqFgB$#;^P=<2~2`)Gh8t zQT*xF)*6z96EV>qnIi|`PO~+KU+8eEowq7f58K2KSLR?N{ zzaEn+StAp|p4?xxU99Gv8pwD08|vW}Q-@NsvB94Djds?&!lCZxkvW1#S*EP<)7Pb5 zA}%9R7d~rl{Vt|Tc|S8P4?NexO#^6Le-CIQgu-5mEFEz+|s^70y<*Yj>q>B`3(=687XFRbc zfX1`yPoBw3Ho&4IZXzerdLm)L1mdlNfwbs#L%46G9ktP%C4-rL&6 zCkNZPRa@x~50^GvkwTc~EHya=sR7{wtnG@4T%PN5oR7QRe+;~DKviIDIQ2HfY0EX@ z1M9iq_gjg~K-lRC)S>1i#e?FVjhZ#%zf|BOsyRC&oI)f`^Swwlv`5rtwg0fhvgPLi z>Wy}lrv+|_5B1fB?8fq3nAh*!lVZJwq|EJ|&oi6Kr=7I=wX8=T^C#zGIar-{byoI` zya?nJo@>!_l~OAaW3_M7>jpzmbT(EmRt}QRj}mM*BQ9)93|p$V6rJDSSe_NwMG`7d zD$kwL>3Je<-c_Cqpk`J}SWWtcHzq~VSY-w%YAaf2P6bxUqRBIK$1|#QOT`Gf?zzdo zug?@~1*zXk)#e`wEqM;D(Iu_fXY$l~a~m_bB|@_(=0aNlxnjRQNP4F_a;cQ8W!*`= zAj{r_Um`zPo#`)$7jgi~V2x2~6>-HObu`B~-!(}iB}G&zVsna=TzY?m2liNPkAyoh zHPJP)TJVfOG9N0gIy(F*^furawX}+1?d5)?Dv@F;HGsP@lp(*!b7(&IxsGOxMT_KM zHYChV{uTdiL?vVELDFB|QA?v<@6I$*ZqM<6H@Vm_=r!E;@bK9j$QHYTD_42MlOf4*DFg&kx*oSE8fT@L)_bqRU!ad_fsE zkdL$ncfzxW7}VIe#g|)NO*Ql1O49JQ{zh&DHdt}Oh3AzhcAeT+p@8lyP5Zssu7G_m zzp*pIt>79;envh=TcWVZf~q)Hy$zW;XjA8xx@9LGzd7EzoZ6c`| zL#f?DOgVRgn+ezw^Bz3pe~iKgIm?n;Pwon%_ZFQ>!&)1p^N}UDKJh(^yh+<0&!g6G zEF{GUHAGayTl>f}SjrV~6Z0)ViC6wpgGM(fqx68JN9UEd6_>`|Oh$O!3df9>Y<9R!V${d7v3Do_e@#x5Pn(m0@l(TdAbkC<5})ZG;S+ zzBU49`a((|uS&6x2|Lp7fR{u^Zv& ztDpFaBS$o*Ro-E>P{{H3?32q1!LB~4Ivfe?0DNJ)d-pv#si9N}V0+iwAf9tRdi)s8 zzD2!2O&)gDxliu>aS@GlGR`Hw@}PJn_-EYnp=2Wj_UBHTG8&En zIP6#K`cVJF0MM{1Vco}&9h;lAkBY0K-$)3)OjPamyh4HKJX*d=RZH({qTQZjPy9|X z*1353qk&ZT2=dWFTiu3vfx>IdezvY*K%+l=^EhMOJC+i}8c{5bZ4cWK#@Hr~ZC{XF z@n?TAO3t#LDWAzW&dUJSKa)8c4dSy1FbC`(^WR@T(jLHM*ZT`neM`=l>k04B0}Z;4 z&92gx_eSSBs`fW7@n_lskmoX3d}1R7=uIX_e5K4{=I}27VHzgeXhlhtGYI zc&xI~)s9Y5hB(*sN!svuZyEs0!-|ZyMt<5_caX&=LYYPZPT+B0S;cPKUG3)b}L9E@CPxM{i5-ouW z)~M*vj4P%T>QcDOg#!qb(Mv#}O#Q!Qd$;&djUKNZuP{!>XL)bk{S z3`<4Dx^?E5n|6z`vwvOR+Ek8MTIgme^^i&4#_ivcvin-6u;K7S1$MRMe6DrE3TGPLD40{= zL@yis#vGeNH)(l$_<=c>*s7nJ&}g{-GkVV&Ebmdd$G$_lMD4D#v;qL+TuLtv5W*P0 z5p{ix;s}#lN+0Vl=X369o*+_fkF}Ch?~Xm_d?^>xjdBR)H_}IvxhEH5)`AmAV|$!r z{tu{8SKSZNPlfy6Kv|CmomKyxV`2FY><)1RCTmRb>Qt(1d>BJ?$6~ z9sZ!LjQ{^Z|6lF8y+BvMYoHYo(E}PLI(vJ2i434_W&xTPu4|!x0*y~X2!!l%F4Kaj+ozd zFGZ<87?VUMhE5(sRPi61pDMC7npXBWvLb)YP2rDw6tg;;`_*oZDn}%Un4ic1@b!&g z+TiKE@$aGB=IA`?K9Ebv$jOCSLmM@LjLh(T#k(JGl#8@@^4{m+N;YFM-M_B?FG|0t zJwV;l66e#3*g#Ap1a##%;BPMR7^6BG7$~s<)j*9o(Q5=Ku)aP`Q)S3>qHp9hD*Mn+ z&?Y-ss9ABm350IIQ3o@~v@8O=4EVoS{K443K}ze7rq&MSU`mk^~`|m1r)m^0DX|YCxR^FufkV4Jh)Qh)#?)spas88VF0W@ zr|n7B!w02Z;0bJ?A>FSWeu!Q`TeT}#VKB5L?UpX;s|O4>*$LTnzV6P|$O5B2rw;zM zdGg8de-bNq6oX8XVHB^FAf+l0x}us&jNGe&g8243nj9KF1Lerb2>#Mz{0kd=~Gav`+85&XH!sHA9+#E4koPnnEO|{HX*v!=W z-4i!TU*@p>KS2YW4a-m$v|J1sDd5|4nV?OecdI1duKIQ^oT%ag4e~=Lp9Cl20 z>swioXn40ZHC^Ohl;XO!VXGTG@uvbqtL09jDb82??W?MmMqyWFJBWAsHpg;UuRM|S zi&_3%WkBhMV&Ehw89}OCX|Cjb@dPsuNpZ21js`~#K3;iz8u4Fg?Lf{>Xf=hiz*8`V zF~eK7{4>;CD{C$FpXB4;&#&*nHWVMHb6S(%ooND$_=sYNY#sfZ4ACP^4MK1Criv#_>wwR|Z4P1z6f$4uV zxWA$oERv6yv!z#!a{4}UYSx1ESBjl|6WiCjG$`Sy@D7(Si-(ox2nm>a^pvntbNj5*hoJ8swB%An0$#$B0F2UOeK6)786(Yu7jtLqv1z+Fv*%OCmpaJpr z;1@pwS`n(u32QpkbBXV!gGmmcfOE4l4qP*kREEp48!kMPS&`O03DCM`E>hKHM993) z-;R6f@o#4o!uu4e$V$I_*k9c5+Phhs64yDl$k5NTNI(Vu9)Vl{B7V2mBtA|SJPxnE zDzc~ZSP@9pu1Z1Lujqu`xlgN z_Mz3`pQY2LkmG(rL?F)K>R;Hjl={|Q8@4D7$}~=pfadKFt^>4BX;rz{q8jt= zCT@UGHWn}u^z}(>Y5t(z3lIIY5lT5L4B8MDnlW~)tX~q*if!cZjuH;XE3NyyYl9u# zPvGAyxX2)f1F|X3&jb^hUfLkfT6Xz^q&WxAp%~)PZH0j{G!Rtb9pUl>gs26{Mq$O z8}}dh@7~oFo(CtQX`*Q}?UYf36a7c}ia?70+C4K2!AYrHW2?KMpLv5uO-e8SGw1Iu z2s0fs=iUV0-}(Yedmzya^d1>z=6tu=Fp1V?d!9!2PxqH+P=121cKZ#)pO$bcN$3q= zh_ZH-^m2|Z=Y$|qCAR+YFlHSr0aW5WSNcZDFd{=~MeKha2SFUaLJg{c%qJv)adZL% z%n$|ri>&OeHi@NO!W0%7InZ>7MNhdVn3u0*Up1wJC)p5|8G&D=!BL$m?)M{3S9ls| zEsHiZ7FXealv3%=3SY)JO8fNq&_)vYM1V`TYflT4UGk7gf@(-!VbDDU+X^4#5&VNv zdI(!Lf$f6sbw`$<-CjwsXfHI7yS|MFgabE=`hagJ%3w*np5-hg0PB1j_Z_@p!?`YN zB2;m>R28KG>Heeb0%?OMpF!N9SetOK_KlXie`9)LT6Flv`JYz&^W!{9mE4fOaP(s$ z!?&8>q1KN;!wgUE8~!nFRmcn$I6GL)-ano`wwQpw28KY4JPHwbnBR{NZQw0w{z%=o zEx2q*3H~h+D0yK8C>&>@-gg~3Pj)yrXgX?g#hM-bwG7^U(~JvvjXO1IYF;a}`^q1rom17B2{o)@FAp0y#J^Imka@X2g-!+K$XS_s;nml889q-!#ENw@JAg#2xlIH=;|HScc>y5 ztGp=;DKpOIiW83|_;fv*Q)`w;Vv%NcK4O zuPh$CujdFY zg;p8x+Tu75Pki1ik-bhG%8q^&2tFK9ilvUt3&wKWjdzM3p_jE0Ah0Yz3>6E+T<7l< z>FD4$IoLhFe@aJ|Vg`lf-l+l90W+1SsXGM|FuH2f_Qn_atq$wGD>ofrqaUJ(NvM#dSsyUetakKgf$~Zg>$N0h_Gd-N zusX|#P@csV=ICw^+-TKh9QD;rS2%#olvJQfpWs$lwgtLYQ1-c5?K47FmIhStd8VkJ)KdT z!$=s(5kJ~&-&1pIaY6%B!oM1Dn%xT0w%nWqgy{+?v+33)7>o-Cs3U= zr{YZK?>it}^Q}0RO|0EPuXDLcGJdA$uP@A}y4PIvQ#QJ`c6)Sn<(b1)J8Jw(MEpU| z5IGNM_SlFFwy*4IA3U zg<#h@?3NEKa;bE)JY%~{6EKK$IhflH5;4DWSMh&v*6nO{94w@i5kR|n-j%T$dLhPQ zsF1db3k8w;w;poO0p%c&$VdS@EEdE2u;5kgzm>iO9kZtRMJr`ZjcJ9=7Z>g&ouqw3Y5X}DKFf~Y;tLyA7S!1#zIQ)&M9ZeO3yGxDp~hvI zGT-_*hrbd(S`AUfBU|~X>b63SN(7B+i8XE#Mly;MZ^>IQS=*yci~g+ZMtuOUnXmj+ z)APPYL0a-Y*-~ZHs>~%7a58@U27qCR8Gr7D$T$}NhA{I)XigR(3NF}oxYUB=d6Xi> zz--kv?Kj6($v%%}d(%&*PG$3)ov+Uz=1>v-@+t6w8kUO`36)I=xa{RRJzLOkMcgf!-3{*12Q{(480;aR?DS;V&tR>nvV&uWq*B@2@nae??;WU zSkt45lf(D@ZAZ|v1WVyh#>$2j3FU5F9OkegQNo;pYsbFyCnr-`0PW+L-C8ZRy@2y0 zyZZ0=-)>V6rB~gl?J??1aFSotkWN$fRPyu&9TCKH)x^c`B&HO}-DSv^`Fgy^E167C z+&N5+{iQ#9ki=AaLGR46U99R>in<@R$<>=#{9=s&+Z%TFBYgG}))7suqQIEc5@=9V z71I%WgQd?CpDLL$rPF{1JvcZRwJ{RZY%)t!DU;C1MS*0r|4T1X{_UF7=X3^R(v$=6 z!`2;nE;)zXx{b2&d3BHTt>%{vW{Z+++Xv{>Ka;TvD>~ayG;SKmqtmcYT=BbF3U3r1 z-&_XMMjlq?A66b)9#$VdlPo0bcG^!Q$w8mgN!C3P-1;S06e1Icp*h%gS(n4O%)}Yy z>3ue8z2@vm%5z2yAW8Hdw}zz`jz81F7o*iw(|M75lbV<_=K{@G3{4dq&F?IhRr%@t zw{64E3gj2Rt$#~@ry0I76Kb{^leqtDp0%ZcgGKu{fun!2k&2HkL0%a7N zrI50fwQOL%pQnV4I(gCHh!5TS#Q~}pz*!*j{&c}=ZZ-@Dzg~kGI44RfmW>aF^zqU{ zy`{GMTfE;cA$e1PQ_2otySWSu-zW0FBdkTG9o}wmwvYF!qzltD7*{iw_{hc6HC-QU zS@x!g%;I8=EO;Av&bS#A(a!JGv8q3TQylxH1TlUJb7jW$DD6i$H}qFH>vIw2=tC$w z8%-B<_{RxPPA8g1Yg;OdCnuvZ+pn??)HrRW4US%->d-IgvMi<^7V*y7xc>3mel6bM zm^f-SnUm9@+_dnzR8g0|jeMuJdoIQNVkqdaFLPtyb(|v_1Rd)>1gGpp1kz?2_;oId zYi`Ms@DS=MF#a<*eBOKlVG)XRoM?Xj{ebs4T`TP|y>A;WoGyr8EnC7ow&`Gbf|Vvf zOY-XvZ*fLvsmSfjJT@!;9`lKx*LUJa6%Fj`m{A9^5;Fn1*VD6>uL=}(+S9M{zx6n; zi8>{-2RS_DJ!~u0$iQam)gBa$4qhYYY_~_)hLz&(hsr7dy|E9(Lc5_t_C)Wh7^F8z zrE4cbnn%6k@f)bw1<4DGA-umT^sBg$H#Zb05O+S$e|E`4f4U@WGs|7)bx{tj1lNA_ z0=66kk_`$!6b|bH;YHKsrh`n_!cIrjgYY~HFgw11t9$x^cn;}9ESs(tpnOt;yeR&! z`F0Ooe0vkdIbaK$09Zp}3$T}DgE5Gm?!av=CLo_IciqCzmjy&ClYT;1DTOdhPc}H(O=mMB|((!DmdM-=tL2FTxNMJRfBsH)90uMo>PWrgvt!19fFCt4Wp_AUCiE+|-gOKnZ37 zM7C&T3a@visib76h|K=LUbZ(770+b8*8Za-WFA~cmIc^_9v-VltM{Qay-XN22sJ-| zI0^u;pK}{LO0z0q!BG{P!h{W#2G`5OmAh#=NX4@4cgS7`JFd#Nr+sneg%jOL78Ra3 z6Yt#r>}9W0wjKWs2^q(SoNjbip6lyru9w?P{uYIP+rM@4No3H3u@Ns`5cczISYOIR zFUuOnna4CLmPOie`D{nb4%ZO&=OP9`9F%jSvC6d-nTRkP={_)urI@C0cJ>wPtm$ub zr$u-JA0X(A3wlkwaUok+S2oQ>*#|ECzdqy9A72{NSb&~mvta}VG1jw{(%9_a<~=sQ zmE~o`WdN3y#brHOAHYchdc~@Y1iqZ3^+sSx2)C-DW)$}UF09T0c1P=)XFq-S>NWt? zZbU-M86k8RTwF9RO7s18Zys<@XaTEpTz`5Y%N{KxsvdYzYfP57wk!&|5CYMqKV0bu zS4avxH4fyj;s-^&QQ(`NTHxLr+!uHb{9by2=Vbmz#L4Y8+g87a4!4a*a^xB{Jv|@6 zd|UX{gNKVkfFR>kaOpKt8mVeUFZ}Gx zF|Vj3qnVXSl+in>c|{ouBR#Qe`Xe7NYPMi9S(szfjv;F$KkE?l(>%7CH8vyE;3YoS zv2lId^Q6i=i&V6t)8E~(XPVwqT48-;AkNdmbSB%a)cL(G&9;O|?Y8JtS9eyE-!0j4 z7N4%Bs0>An+?#Cl6>$9S)#A`d3xr}M#0G!&h;349Zyw3iqVIzuVn6VRw=i5^_5bY! zHjp(SIdlDTDlowI1^{3TpwnvM4gpyh^nlg+K)2or;GQ~DM-BL}J3q5DcL|6wSVRl7 zBOTAJfh_F9#WMO7F~=U4k<$g>2!12fce=sJJe;1phST5Sr2I&&0`9#Ch6W&4cG#We z@m}}8oZDs-ZV$z0q>=(P-RFwEM3M--G7nU`0Lr`VAg{PQ$5yXu>ZRetr>c7+0lJs< z|EYTyNSYWUr_3RFyCW~|WGWQBl8v@(S4pot*k^o<@v*G(Hkwc4*R)_>cN=aO$C3VQ zOSdR~(`_j3(87!GWrMDUkv}rsvnPhbVe$E0h19lW&DLz%cTJq-7AD7b(K_u7F1?qB zh9v4y8{EpfKk7ZkhlS&7tv62p!@i6wRA|2nDoOtunRYGn^My%S=8gNH>tP#2EyF|M zY#Ic1mBdfQSlm;E0=C1e5RETi=tP||vn<_b;ZLXwD+pOW4>n>iKDzx+mDzj!%tbggP5%{Chw#md5k66EbDS z7P$exHgGSnGUoi0wy4e)o|(_d1#N(^e@Pq!i76gqq1Cy_+A`?-t`ua&+Vp(t?t{>^ zq^RQRb;^>VRK(ekmXop5Pici4AP1U-@#H ztx+Af)V&hwWari~&mtF2Qb*qs*d*H^h7`cmFgtt5aI%To3uxXh#~oAV$Rut!FH1-}S;a-$DgO>)sa!r!1CX!2~U+hrr54L7!l)_qv-K)@gg+`cNch_&X}=T?TzRS;BY8vOJ1z=<{bhu zS1iq+@b9N|;SIdGXLx9UZ$_j5QmieIT#Gd!dl$CcpCGr59r$_gYQJQiR`A_2-S}=9 zq8@c0dG0@r7L*l{9W5b@_&S0fvSpY+g@yhXxD_~A&3OHGrkPJ; zX?HJu)%wwm(@O*E@Sq9A2c{KmqpN9ZamRo(Hc>+q%I|61$vq!*MxX9QCG1gq*JKb_ z1FlNCd~b%tL`NqvPkgIvF;A8%&XDbjO~N~%OCa26)b#~{`a|CdxGfcwhYA}bB;_Q7 z+Bj(^pMN(DD=e)xUDzodBF#7lrHbDHoJ_YsP$LBr`hi}Zq34&2ZY%2;s6-hZVGpiy z>s6A4y%AptgNuaN0Qy{}Qvpl`fyM*h{*uE#kmw0A;TpNypNEOUSL>2APlu>cGr1os zwm)<3kmPA_eD<^^$6p^FkO__$5`h%sB^-na(L4Tuxz!do+U~iG-XaY$bXK0TO5_^a zAA`mQV3l{R+6g?+bqn#Z9Ii}9!h2Pu#N~uT7Rof*A8EF$Ay-LVY!%w9x&h_G;i0^ zBT=xmYq}Y8ld!j<*11W z>k58J=-c3)rMKUWGcQ5x!bLxl19FK{<5jZYL0ktS-EJqy(O>Rc-r1tOxw){sHOGyi z6Ahv4;*8?HA4R1eSXRe-q!P=VJbL^Zx{Gy=IfsW*2(RC^rk=axXV&~Aai4%=g?Q4z z{{U;WeY?MJDQ3TuTQhs}0tEDdFJ zb%oU*X3TB2xf(jie@~;&E*4*sIUfrb46fDB*;?!hkJEcrS0)*Etm1Nj435eB^r4Y2>%K*R2mH zt`$G*EJqo#Ho|qw-u-N{9b`h&duUX;{Q7zyRmq(zL*LOqFC5LM7BABZjo`3O4L;d~ z)`HHEjv(b1*A(qJH9w6qk;4wD4GC!Ny0okCJ8>c_M1{;AulJB^F!3qAmeli1Mh0m3 zIpv?;HZK0jEas3WzN(T>*PS|DEIBlgk)wQ0cQkWMfCcS$%0J=frziX2a3~Gy3!5n% z;6r!?cG3s$0_vnr3}h{q7D{G94u1=?vgUd%B%vifua9f4($#mhVB1NxXfjz3-t>6a zMjC{uZ8)>=A5F(@oAl`! zu`O^=ktrCAV|bb~Bg-yNAIcn;iT%6k$MjsCwQhhgOFPa4Il!UztP(o@7L~C&}GwV;w-xcie9~g68ZV}p9T<9 zh;H2+Q*ZpR_kMKaT%b$2<#2dB?AYSPuVo+KhRnn=pCpVFTe2=^=~d$g#V3;K6KvY? z7aC!1g3r=*+DRs-41*T-1j60l^O9+pVY_TACex)3Y&IxxsLt=uv0Uhgq`P*=)S#V7 zxNSe~PD}h_REYV(fLCk~*ICv6l9M!$Pr@mZOwiOKUJyH*Ihi%F<#g7nUg?GFrf?8A zn*s|o&jr@HW_PBiHH6XBrk?9~+p}s{k4yHdl84b1*n}Ir0@p)ZGRf#ygxidH*-tx? zjI}P6Hj`NO4UYZUwdqcRyF|M+2I_(>eM%APzCjl0j&lLOCt@J+#fcL>6m{9?Bjxiy zG|hO_^&_PB04z;vza_w9&r<nnJGMzTlpE(WV1-L`Sn;=9W_}Hoz!madyBRh(qL!6nuCWY&zoAY&tW))A$4` z68R3gj1hur*trvVl~EJAT#erH zP3J9A1-WKIrLFl;14Y3Ug6$j2qE7^{W(Dy{2;I3kSD8p9k0^_Nnoe63vO;y-=#3Sr zxSqE02l%0lG(v|7$2(IO-L12@>MDpWe_-uP8<|5qYLebtJkLRCvSB5ClwlU)!pG4A zb8*jCkRv0buVna~SUTcgh24t2to_odSGC7)%}!kx$X9&j9s)|6m-%r_DfM=5v@jd= z+4N3rwRUn8BcB%f^9j1zoT#~F6l&4##Yd*gxXpkeyOU_d!-bwk>03tz*_3<}-|>+c2b`P$+fO2ChDJ<$fIdYcQZ_FEDOU~!-jOJL zE~FB948U0kXz;+}NBp&h{W_&LLek0Zl4iAa!-v zClmlxIZ6i9hj;WKRZTrTl;ELbr=adI!!B1J?Ali#72I74A81B_WV#yp+f`)16hxMq zeD8ev1)Lhc8gma2@&Tip&GEdLC?qP)&%3C2bQ*ex2g?v%8Z(naP>zpL?1Pig@TbcQ zfhIUOy?yRg8%PUZ{wqA#jW@zEMKn-(PLET`DR?OdVV=v~|>Fe4xXiRh_|nbxUr4Qk}RweVD~@uBy>`Ug)#3i(ut zD?aoU4|9}if0evO8GN@;Lyj@AkP#k>?QR){F1G4zKd(~mvY7s|>Sc}xzfEs8*HS=F z?M9AlnU`xmWju9|>mlksup5ShC}AS4&rCIN&$`+;Wt8JZq$$Qx=%oN}1)0C z^w+p59%4pU0s&Tsj_ZQ5URvJK$9^>vCgVE_&tE(8EleeApOp4X1m*E|Dr{W0Pm5y9 zLM47>2l#GwFK~E-AD{Gb#}TNeRnkx0c;`4py`3{9v6r5q+HG?f%<`2ju;(O7^n`UV zIXpjYw8y-Xc0hyZG%PJd{_;~xpDy@ubvIw7LC1FS=JwV#L#NI~^M%?sE!%!oaq^!~S9?(XlTK%B(AXBRJ+^HJ2p+Vzf@M&77<7hgf0KLc^H;x5cT3z1PK~ zG&QhpXFRQ*2%Bz&8`n3W*0sk_t-27I!cU{7GZTJE(fq)|%9e zr-=GM&%4wE;z}fBVH%uw|0==X6Et7KS0`XMD!e{tw70m2`7s~YY_Ks=R9`5I(#4@p zT6Unhy#d_feb!MpAny^+RBS>n!4xQg1#?!h>Dv1IgG|n1Q24DUpCPRa*7(?5VZfSB?R`hIDt2gTxc>ZXSf)mzBst)i@l;-<_<1S$-m3B&w+!-W(FWs%z0qa` z^~e{GQntco5N>?`J_j1)KlnC*v~S&vA3rozULA@aX21p&mtN+^vc;FDm(9R^0g4Sc zGMCT(YTMfL(3x*C3>q(Pp?8nZR@+!fp8`|~wVF|-7^HWXxjd(hESLV1vi>{FP8 zR#=?z`1}q-;~=-20)jv7eI55ve_|H!Sp)=CwEbA)bSiZ<>}mr%sNX|Q^*kv|3%xbe zJa4l{ZGS5TT}4h)24-Oua@t2lJA%z~x?GV<(^DjI^~v*NGU)`nY@8C+Cnx=~EwM$j zmmeDX(~G{#?bmg_^@|wCh>$-tup7`*_@NWD7Gis}+s0+m{oulILOk9MF*6pX_Kh(* zr&gq@LFvMjO}i+M`=#EL#9h33_i}boS|PEr_R@r8bS7Ze<8@yJ*Cd zmT7-`<DJ9FggwbUj1lBU7Is0;Ozi!o^KR?1hHLmGyqr zS?VJ4;u}NJl6>Ya%kB33UR!>^5oG>D;M`m}H7(hxF+03=V+gfIqEU=%bWo_^h&;LG z)JnIxa*atDcMJYPqBG3Y4leo4P;ZjDdKyQ^{WKCk z3E7-_k*JM0=pL*86i1x_Odr{2Ieu`Z_onK+RS9hitoxbur(J;j=31giG#dJoQcrWV zJ_Z-vJxv7WSs2f_rGP=VX(qTQrm9e*>`ngrGPaI)sK7{s1y18XD&RN=Iu7Q9v|^Tm zbU{}IaGx_(05Uc~A&>grq&DPf;o1Kw>s-L0PWL#@G?HkV!EV^5Y(qQis2P`tBE&>7 zE=@L?5o3^BoFc2Vr;%z1kqIegUD~i3my~iT4c59P?6G87m$TBI9g`!uY#sZ1|I=yh zbDrn_%=66if1mgN{{HXv|9e00_xCh&+l{rxz$C9;o0n$OsDd0SvU7!#O7PL;fp%Ng z@?A?hN|ldPsLF)nP5-{C0DZ4+L^+X^U#gkxxEGH?m@8?w0(0O9xg$#Kd2iBAKyrw~ z3&r_wrtib4*zAi)o8A56_CuP1J-$40!KS_r>2~l@{|B7UPIJHhQ|ey3$0&UA6gQQs z?TAy6Pn{|STpUy;5uMyCAZHDPV9)|r#rUWmcpXkje`yxDo%|eP;q}gs`T*2vF(9>I zd=1(eXF7a_k86aI;7oElydIsq%DZnlutEGWx`zWmVvUnVUm!rJJGE_bn=peTu4HS0 zv^-IQ7IF_})elA^7=)>2HJPXh+Y(}{TrE-vO)0eMwyS7+AtR;gx9)J}7Y`!+&L-4> z^D1829QSunKj`@}rYUC$oY3UE+^A17`@zL8tqS}p?^C1jZ(iL$SR}&NQ?Op#Fww#S z_h3Hac3v+TI_>a8AcvkGZ<7958uXP;_uBAH{r8%#F7Q_={|i)3P9QClWmt?BNrPmA z1`mhqmN)as1iB=(Y916M!L+_@nN1{DMT z*{X|~N+=@1Ina85b+uG*i4TeW&^N!DWlz@DV#Gkve#kcKg{=2^U%A@=w?B8mvc4VV z`U=Hr;3EQ80`HN!zGiXvLcbb1I=XRfTmAL#EskypF&3dhrmcWtS+Qnr`{{b6}$+ z4&gDXcj%57sO0zTdYD}!6k1trn=0aQ6yZfDorAwP6xhOzcfOj9p-R03?!EYU=%H>=tNsQdMu@iZ1rk2m^2UA~ zi2;cvmTXkrl(LCIwg^h`d%|V3i|PnFtZ3^k=Bj&@0<;xf)WeF%8pR>tBeNf$m z9Ys1O0Q7{|Y18 z9gAT0Eng0Fmt&Roi44yH*mi|zBc9GX;((<14*A=2Kj}tQes%Z$;D>Mmu z`aM!-9jNs8fVeI8nayG7S+M7EdzrbKu#pP-R9Wllx)03Gn;p^Nn0`^en{CZ(*G$f+ zHdhWY44#r7Nr>F4@Z{b67LqX`3feHbQ1(Pw-bdBLOUU7M+UfXrp9r0=Tq@pQWToa ztQnxnWdG*3!9rSVV?;i@!0i|NEY$`LRBLV~n%X0{5FkKRer-%ZR%N-6nHf5>1?%-} zG(=vGBKo|5ro42YOB_Skk0-9>@`fzn5vDHol^L1GZCpH6AfaOep^hS8sVSRJBHe2^ zCm|b^-r#+!ZFtk)TM9B-zktA2=DUWBJL>gBl_I)g^6?knr|(Vrcv~s$F%=x|@jE0r zvX>oK+LFRw@Rkz~cX;}%1O~!{henAmGls!KtC-a#?grnQmS4{bt&MesVkf}i30Z~I z+bkKq<-c6IT4%_bb}KKyMq%I^5(hM` ze31G9UBK9%l$C&d5q%wYrUI=9X02CdEI5pt#^0}tG@-^whByx_Xx%XCY`F}Lf;VS= z`k9smFU literal 0 HcmV?d00001 diff --git a/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot5.png b/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/Event/EventShot5.png new file mode 100644 index 0000000000000000000000000000000000000000..1d79169f510aaba00fd2fcf80758ff0ddea9c047 GIT binary patch literal 67845 zcmZ^~2RK|?+ds@GF@)%&8@&%gl;|yb?~G0mZFHiK5-oa5qD6=Z5hWNQVe}FN(R+(X z^xplq^StkK&UwG`-&E9+6Yt~wK{oS`X9W7--d>VWV3=Be56-7M^3~V?C2Br!g zE^x;U_xB10#$9J;1qB^d1qG;%m&apgR|gCXmAFjfJ0|+Ql=7+ zm_Ffw^l)gIz^oZmWXM>03xg_%Vs%kDb9^OEijvZ%gYIUCuA-7D#8;O*Q{mqlBOhfMu6oh}dfdR_qNUyTBdxMdI zzTVltrj#YW@>P!h5SDafJiJ6;FNu)?CN4d2XoknW!e|xUXC0Bmh{d0`HOp6wSeLKh ziN=&~eiR{;8PEVK8$wz`&gZfEtM^<2ID*uQLHbPFq@~K;oKFZnKgNEnkig(n;!IXC`2FUQ zBsJ~$JpriSPj3ZgCK05VMlKnB$?~X>q77Z_(i1rX#lT$b*dr!O)|BY3a-Vv&(vGs= z*LBo-BI=z5>uPr{xr3$B964$Xju-H8=rThz-st3{+!e&J?GM(~6YiiPmgucnVKIF8 z20wc9mmGbWq!vjFTZbpeGoWfjI;((*FhPGKd$kYuptBxdDc6ZYI)_6eR%iT<#J~zs z$31U!C4NUmhnxgx3iS>RKSieKIBZW6M2HDmI+PlxLFh_z6ZBcdtGPpF;VER5ivvu4 z*=yb9KbKVl5uV&zE7WPtlh_Wq0XCHWJ{9*Ff^lL&uEd}mSt9d?IiQ;GcO~VO1lRgW zQJAn4qy`itiTg3)(SBY(HVEE%2ni*dfOYR|e^yo#&qMoOk9)XpR&PET-OE?HwhPSciCFp5g< zF3a>%OaR9AGi9_3v1=ttbXzE=TQsCiNSs3lHjGe^G;{_Kx?}7#Y?w_CQ`^~4vAFH9&?yPWHMnNnbpId=>*4w2qu3H#AOY4fbgds1~1G#)#K$?gX# z?}piRlLt8YO3|BGM9wecF89XxDc3Fm&2C(pif3_f_UOAx9+UU_lyU0k zblamFBEx%04sss}Smaq)VCXcvWF&v|PmJ)#YeStr=P|<%ZwU$u3tJI|sgZ@ZBZhRQ zTRiK(?h5K+w4OOgHVRwyF2xgIO0x+sX$fJlw}K|yg5ePyyI68i@+ zYOutbCI|d8!d3_0D7?-ZYZ6o+IcLo%hWA^RMGQQMRA1yqfw$YoMlmfT+;ZdgQ^;8fdlfrk>0ZQrQ&vkg?7_9C)r-DF(kW>%LsE=Z zVf$1Yiu23`I(JKoKED%u@;piLi!LQi9D5q^e<=6) z(QoL{`?B&E?;GDomzBJa8;k$Z_v82-y>ZjqWB7;U3Z;7Hi!{5Q;C-KcuYDpftTX(^ z$XVs#x05=TT;L4eK1nt4k{GX;{qTJ)3yV4UoN`FTXO)o3r;X>BM+d)?$7J+;-yIu> z_<{_zEFR4%xfRWqe0?+QH2w){#?6;ppJ=2cp%kR}XROdg%o!nkO5-ieE&Sv`rE~K* ztBaX)jWCBZ<&!LDhLPr?sS>5}nsHkf&$`DhhEDWjpFfPf(VXxbP8uE@vn=|ee1SYB zpifJx(|Si_KJegAA^z5=5*D)^Y)|2L!5KA^NS;o z-(mNyX`*QCX)A=^2?aRC(oWMRJ;;5Gn%YgYnLx}fg|-K_tH&_Xg%068s1c19dTH}% z?pKX&a&??1s=6cK%O2MXj4VbqMK!CJCVhoH@2$@$hJNY>%_!Mh{ufU*D21Mx4oVJe ziU{3L5J-RJCgdXcN2oziTbTd;g2(lDr0tShs!erQ(NxjQ$Pcf?HI4o!{Xs_dJRUr+ z#~zk@8!=Y6RiuA_m`#|rR1G&QO_EO=%t%(1OyN#z)qVK%#YXwlL4AMyjJ^LDL)}Rg zWZHPr%2SqJl3tPM6`h$f@uSm3;^cR9o-?Vxd%V8+SNH{Qb|B)txV_$cKb0Esvj5$a z$uji(^7rOa?n-m}+1G@mey42aY~1XI%HvAO3H%9Kci{$s266WzcaK^6S)A=xb2|aw zrMd!m51o!rmp9h9jw<#x4{Hw94yJ$k&X`X~j0eS?1TrGEtA^+b9u*{i&Hozs^-jpm zq4#0`@yyDJZN>m6`W^k7>8pXO#_O5O8Bh+UGp0G#G-v?S7?ByFjpRk1%1K1#*KV4a zR(z?LKo6ov7Fp1YlV3MYH{TNTvPu@S7PA>}2n+fs{CXpBQ1z|qchxo`d6#-glO!s( zCpMF$LA;BOp)`I}YTD(nVz`v0EOjrHmbpN2N?G*{O;@4aqhwR5pK_lJKZ$*Y;dUTw zjk+Zh>*DfgF8-J-Pfk`-*cEg(b_^s+K(vz!=vp|gL*x-{`%xEh^>Oc0-+R3>k+hSuDEK;{?L(Xh83DUxj=dO{ z<4ASy%k;+ddnF_zX`{!*AwRniJdIKtxrfg;<|IWt=yxb&Vq0PsxOO2Gq>@9sLnfJf z%%d{izK=@*kVfhh5ivv#i&LZCP-@0o}YU>9cJuV$`&$knFMCT?oE_wS8z4_Lke`22M zJ^a3?4Rf1EQZfIMqqF-?pLi4^C8+OT6ZICCqW)5B?G(9k#euJVD6IPOv)1E$ zSC9PJ;F}*PeNnAssW~t9{cmTrHjdhPc6kz>^EbgOI12>I{7lj)n1GZL=QvNu4Al%`fsY7ayjFvx0G;qwiH?_AMEV~cR ziJt859L*J6gzpxvz8-I{QGS%n9oBFW686e*rn;LcnO`O@%&R4D;`(>l=Eiyw&XChk zU;ZoUk58A*i>iex4u1FV@k>~$S|0gQ+`PW(?wY9oc<+Y#aD8ptbB^Al*yDTw7U;O^ zK4G;T_TZ%BSn_GX#n&AL)sJ#J+sX5cLm_I{hs_?-jw9>){C-w6Umt~rd@q<;;9pW} z#3}$$xjH?<#qjXQlvT$JCmM3g*z2oZ42Sj|{J{X-fO&=zu$IBHgq!3Adz)-9ND*oEq33I%QQHB}LKXQHjRrBh~%CFUW2lQRo zFc8-ek0hVE{+#E#X2>;sH63%)&ubv|h<7kieXOa8 z!40(WFt9OcFmQktCU8n)(*C#o2$K^7>#zGD42);a7})>wjuvpe{iFcrZJ+;KvC?8N z?f~CNfis{G^uKRo!wa$gw~eU+Jj0OFS5Q?2uKIRf4i4_#P98q7V+@(V4KPB*)EfhX zlI`}yRMlhM1?W#W8<_Z*XlgvP^KgUN*n8MIzyjP5w{$Qh10DiRHwPaZXn>omyZ6HY zDdxZ4cnGv_Z}T%l|9Zv8MT*%(QwOTx;pG4ofeF9_n5FTdP^hGr{o{vvijV%MJMc}4 z*~!NT@sOY2-`^kRF9h@Oa^x2j7Z>LjxX*w8J|FM~pLd|Uk4*rdyEn^!i2N@dMF(#? zFK2|0vxhtMmadJhhp&$mGxP00|NZ>ucRB<(|2>ks_y0@_m>~b{6MjLM0RMk!16?I= z?>^LV4sdWaRdjX()(jX!TIjx*cJNa0 za0ABlk^XzX{-^UlAO25AN&efZ|6?isv(A6r1r}NwUy}d7n?57CqP78W z1-R_5PciV96F6_Lz!}uy|NXfo28Jw#s-m1h0On>MxLI?Iq5B3lq0_}azVvT-fF!n`#+3QaDolgTNX1tEy+2UKC*&lfhI=&UTQpvAne~61GrxGUeF3o*y)L zWX{+<9kf+9VRq4UBDG$zaCUQ3-owBFCIhEn{OgEfBJR(4t&+-YGx%8W_Q~ce?06l- zl&FW~$CubD;eQ{O*ll2*rM|6$b}$UMcsFW-SY<)csTerfZ2`uCn!uO84`LQfbB#C$ z33zRN6{$Pz`gC_&U8ff*6qA(mE;c8MJf^9~1^Dv!5g~?$4d&q-^|}#xIc_I6_b%3U z{a9oW{WWVNRL7i`1$Z~2O+Fl{Zqu0FO!SYAn541tvPxtU#-5!8JM&*=VtLJy-X2Ld z(NgFd=u{t6RPY)*4SVIfc>MV~$KId{OsG(RxNuRAYMc3E#NV?6X39*g^IEYJpk#v+ z_`Scfd~4F8ETBkSkuv19MuTDSF#He8guRCgwfF7lJq93h`2C|n&)L5x4J-h0bT~e1 zy^}2gZOYt);@R-*gn z(Fn@ZPJAU%Xf>84DaE!kKG2fbO6M)}U9Y-;VK@$Cpxvk2_I9EwLBK>ut|>jk|2_xmSlH4E9JvJZx2tOlhoTzdxxMLsTfCN#}(H#=2k z@e`XJM!R!0vtksK0=!m?gNYAw_M{cV``3o{&|D3g4)p(xD6axO{?5pZcIbEMPvWMmA|G(5#a>L{K zu1|TZoC1HBm97peGg8FDQuRvIGK=LRarGM9Ey{G?#KaAG{d)aO?QDMyXIowcAz{`M z`sH%3o3X}cLyv67;pev(_kDjGnAW?R7XK`PH+qeHFc)QME|hA9etn1W#z=ts>$}CG zaTvJ;^YWS;z`Me%vS>C!5Bz6}|Bw<{P&H|lMXYOiRiEZFo{lRQ;-h1V_Xy4(+sKQ|Qcdr?@230^(pI4FSF)`xT zyU%fJOP>|rr4i=*UQ(u&_t2}IP*f$8+c0sr=H~jMsqJ=3d=@_j@DxgZrQH)v)J($w zvt|MlD_*v@`xjHD++ZU+C{g=9Thk8^f$RBFL4DzvSjF@=8or#_w7}B zbUVBn4+bUHiqp03%lR^Wem6#tBo`1-mw@}DAy`R0j8j$1bMzyR7CIrE-z36h%EFuo(@9w%`5clf2n0zR*;-+f9;So4>8XrmXC%;!D8UP#^u?tE7=q@M!X_NiTgl7uqp_E5}awr}i zSk(DjGu)0xhe=_c!XgHR(GE3oH%IEH=^qQJ^H@J;-8Aucb#(IehdIes{&) z4u1_ttT9oH7A^uxLWqar?3q_Ly?+ix29ekz#)>WW5>62TJQ4bNG7I)(O@6pjJM{us zdK^uFzT5)lvG%{%Nf%ERp<9iU#V7RmTT1QVLmpPyZHb*`maXZ!gb}l+^r0tn{v{z7 z$N6$hChj-aS8KoCB#UIh@Q!J0A&w z`OCBv0{h9uxxbnHFP1m z!)~s&xrm`zyr#CxFHq6ZPFNta<@!mGes>am$&<17x3=SRQ9_ru?nKe%rfWndL00_R zUwW|&c$WBJdrp8p_0ttG*MF={M4M`>$6SqFH&L0~b#am%v+CE181sIVYbgzUk6%A6#^VK@*7y(l2-__2Uu1c8R!|LYW_X=9L$ z0tUZ#wKrW8Isn*Bok5wK%T@mlO2UYi>+}AKBq7H^Iy=wrbuPx@fDTaQNXB;kLy02$ z0@(BYk6~B+ZWQBuJjRveyb17}Q9z5XRkafxm^AuqjC5warb7}eH@VHgd{ z-6cWQIU#+~fTna|?=b6*(9(!DnmP?g{~Kmux@r7tgpiX)*+^lAP#i zOC1@Y36KPq2>y|hBK2&Tn<8h0S(HQ3hS93+3cvxfm?Qvu$u3Uu0qtPy&=)P{Z?8T4 zgE^GS=3ZL}t|yqTswGhFq(UqQQ(t)d^)F`zt!CE+DS93Eq^{K#|9-7hY*xZNQl=m% zUh8SJ8k76x8@jWFFNZl*&l;uX^(I~%P zbVk9%=XbR=3M37eV-wyTFND}~`?C3&-3AYm)`UtID70?;-iN}ogvHqQeW#Do>z;#O zOR1vozd1cRK&>RDuO!RNUp}Pqu)4WexLF0(Ez51D9w+~y-=@idlFTlYzyh==X5EV6 z&q%Ax5LjHDwM*XB=so3--TPMam87E$_1yKHl&iNdU&@0u8tWe7gT=al=M@IWlUBol%AEt`~&i!(%Tu-oA2A14QH^p^=dVb0!aOoUe)snfdH3 zyXH$O0*Sc=h?mJbz`^VN@}r->WtIYN;G@d}3F>6V9r8`}j0B>S@LLlC-QCOr%(XNq z0wf=-8TEsR10{Jspmg@QAWsm?cl~H4-_pR6-m;D5iBn$F_6!%6viR0?nLWvrkVNx~ zft?nKabeB+X~&!`V+Kx`F`U72b|YYmC@{n}X}x*$y+f}*S@W`r4Fp~V|IJYlyu4H> zfw&1=%QRm0x`_zDBIz!8^5dP&GM+UX33hcycCh9`*v*&f*x``X(+7T&RW^RQk32l4 zYLqIQ_xn;@sHB5YFUX_m5cvD*2x^(o<`;!e3J^R2hr`Ox4b!s(@3HSLC-BFh>;Oj5 zfEGrn<2}J=(j&{?a?B6xGNE>&K9~f*^ChS_Aa24zsy`#5m)x<_mfVY)4L%sC7B$0r zLc}0x;@-GMd7?%m;>sDYAO*xpbJ<@sgl%WunUl;XQ%g=LbrS-9C^=c-Vw&yZCZKSj zf}k=|_(O{Z1Jfv-H zy{}20FR1c~uErz6dme&blU(L&_fRsX8~K$}_ZJ6U%R9iVCb4{QXsGoAf>_KY(kzn? z#vd(F?fG6BQLrzEBPqv4S1)ho{16GSiwHuCX;6Zsog(^C2aH%hV-QRH5& zTs{0~oRA3dP{L;yRJ<>eq>d*GnX0}iFE*~{lbJY8l_@1ql5m_<9n*-q=YGqVn&}vE zTKM|KRItlEa;BP02dy+0xA+-P7wu;=n>`zsk-P8#FKh;4;gjmg^>8_s08g3~<20BRi1eHFq?zF4e(;_= zRWB*E2U!xdx>7)ImAhrBtH8h8HX7e|@#agV{NTMzy=BGj==HM{T#u~e-I<<9% z!FZm6b1lR}F7x_W*Bla8>e_J6~t5C<&VFD}#vy&8-*}3C_!y)w^!w z8AXgA zJ>!go4*Kxu*?t48B0dtZkjTP8X`sE#zDNbZ1Jp|0qZ#|Xf_ZCJtjgZ3>ziXUpUHJc z)9Lm$rJ&;J#v~Pz_iidpF-mKK%H(BwQ!ddp&Z7*}ml{d42l7=H!{t~B>ZSe7@@oBl zGi$YsU-o34e&S+RxO2z6oK7dKyuzF@c!@xUkFA?wg`TW(XGPnuxAA7$-RixHAIa32 zHy1}vd4re=BJgU7)JydOo=vqw{W?fQnNBmC3TA?CKR)YzLLo5PK*oOejdHR`3vzl* zZU!*nwH!&H-#{p+nIF90Tlm|Z8V7<8+ip+!NelR1$GBy_1oNfVOCbLuh-CoU&IVh( z28hyy*03zTJgtL=9F4iR_%DPs2s?dmozw2b<-NP`^bcPH&*o0ULTJ}#zzLNIsN6E@ z7>kFy-nw)ug16cmcX0bwdp~QfCRD)54*EEd)#P!HA2rG1JmcJyn72$JkD#;dsnsU; zziio>p5JPipJL0to*@xy_6`I%t4DB@$4m0qAZhkthl`T;rLO7zLH7J4_b;2N8Y#WA z3LSNdt&mgt&XSo2(m0*s0Vh`yYuBmsCW0USP-G@|1MuW`t(3+6pDcS|*h7YaQ8~oa zXWw#9j_I#b#sO{b6-x_3KT86k*+YZ$1>Xsax3l`ELqy1rgRew~Hugf%}qArJ$d{HXTd{c}Hx_OdNe z&~3ii^fqicaM@Pn$g{Vlo;{2c}EX41O4zS!yV#cUyGaaSyk>V4g{ zjp5i~vdd9n9cic_{95KPfqbA1CtWiUd?`59z6wq+6B-m_v6ZAmF%*8yOA`M{g^uEd zw;dp@25rQ{*^lPS%#cY4fz+7Z@uWsX~nA4 zLKOrM+0cVh$tNc>npeFuc<$r`7GK|lyQIFT_3KxKoGqiowr-?cT2k2F zTX|)@*?#)bIJa7PNzc;ZFwAay7UYQ_C-ah zJ`4?snIy}AngO^*w>KUcDM~@^hb+QI;t{rD>dAc2kp4momK?Sq`LgQAujlUtPrAiZ zv9o2aPunZFKlyDOrYDHnfwGR7U@fFE!keeXgNj|%TRQTC0W zd~O~f#WS#YRLG$Cde3vw`CsD^ozXH{r1>1?8J;{6w0O+V*D;XlC~TLgbZu!<#KLX^ zNd~jjDC#2+K~qR7%YnlVL}w9^%6AVZA`2s>q1ZNO4jov%JH>!aX~F5wor!2+n(w;s z&rb9#ja)>YuwLv?fgWBnOcaM><^3eIin7FzcfD8 zKmDWmw6R!Ny1jfe3VXNHW+uL?x^U`BpDX$3x${jxX^55Ui-NAq46-MIGu=nzM(DNq zpq&R~5*PV4dhz_LRlE@n5$qao+dFNzRM0qNU!O6Cignyq>fRb6AqFC^B;=aj6`HAC zQ){Pjok2+OsL70?coC#d9jkCGwQt39%#T_GZ4AFr?s;v3lTE>6MD=>WgOF^b&=BJf z-Y3R^r|l0r=M-g#ncr#`Y-cIWv__G%G4To^NvEH#rYd6(squnO>il=+k!*esO4JY$ zIT)TU-*N;=I{D}!Ua{sTFK~HAPW4faPgi?V_jkf>%tO!CAU9n3AsQoqPxPdMQSwf1 z9>5c-xI}cnyp#mSFSeWbD^6ErWQIco^!%ASJR)Y^ps5W|HCpx7^tuhz%XWnbS4;M!$>egElA zAfLRwjPkdfH4333^pmhPzrYi7D+#t-hl2HhFp?d_kze42i^mr^(Z}j7ufA++UyRLh zo9BrMzKjuvDM~STMZKP7esLtHD!z9LXL3NdNqNC}cKFwoju(RXrjzm@kI*>j+SvM^ z!nPXtR0NpXi-)vMAJFwLoa@VhVL1UdfzBG2%bLVY&_|P8PG0f7lGxZSel9EW2$0IJ);-e*SraB9{J zHMMz_6zlWEQo}L?CYIucN&v5eK7~Hz>MoEJ#rt-^zt-b>FM#jKWjW0Y=vPPcwzxNC zt~o|(G!`g}(DMiW6`{tjvz6C-#{7e3zE(I323|!kx^N{T3E(36q36y+Zl6z=6H0)H z_bsne5$?%zOf1}hK{S!=Tc<^fj)-s!JC5KN4IGyaeHkRY2?;rL2z|M>V?d3#6g;*i zfL@2QYut6!KRa0nThORELj5F;)&fFlvURL#HG%4=i?lpw*5bLFablrM{SaDYR!rap zy7=CJ$d|uvoMgjRuZ_y<`-y}1{L}Kl$A^-uu^%FW z@QhmkWQoeSDw+T?ZTL-u{riyQL87B!uG0_@?l8L9)i-kk~i?|4PGqkgou6kKZl#kVhm8Eo4o_di$PO zKmw!RKryVsn#^geHWG%G4RSAZRm*gxCh*xfsoecGm}^$L;p#c-mOZK4_kQAYlo|}A z?cA8_Z8!UuN}hVT%g%cLhGZts_dVy^{rJkir|MpFwY_C?DaxmjTR4=Ul1T+2SGBN@ zKG*1R&<=bPWgr7Pnbvt-82QuID<1qgZ!t?3$WG`-sS@&9Z{~2G-cLf25^J=T6dJ}` zr(%l6sc_93#tTdV;6XY#(WQZasnlhn(l3=nx$5xfN149V8nHL=8+rZWUM_YYVj2Ot zZfsnzEq*9r(gQRNHkn5l@(7z@9X4eQ^B8ooc^ppQqRM^5L^ARy5 zJgo$ECB%DPFQ}_rH3jYGGHFKZ$&+1Q?>0O(?^()mV=MJdf3XsxiUYa4VzP#H5ej0i zy@b}wRjA+UXB;|2*n7bp${+qAQID!&jaw&~=!;TV*LG@swL81an1&1E|^3>?F{$kg?*UH~SoMIph78O^zi;X7|*TFh`oywt)h!C?jzj2bON((o9 zCUd5g2MD-{dN7cP$bSpq>}UNyNAZ1R3rA={G(i8P5ARVs>Pzidf4#mp%}JY5cn9_q3dg={4+A% z0ph61P!CyplZRuK7Bl+vMw$Ub-=i*Y2^mOLU3(5dD4I<_XfZ56bE)&-{Y^ zoPBVA`_)uWOG>=|jCmVRv8rb(m1kTd@J%rQ^z{o$_#-v)f5j?i&3kponeNa0_+msL zw*qrTs;BU1egAk}g(pX>A%UYQyR`zK9!U1lr3!wZV3Uw8#snM~FXBcPUsSv^P!3bI zZqDSu9v@ca-uiJ=4qRzNoU@7j2RyUJMu}bnU{nIrE*i4?co+k(M3XS9GjE^j@VO5@>YzWWh@{}=C~lwww&nZKwX}Wx|hv}013XP3H3hb z(x2Dd&xqzjJ+gg%HO(EC+#GGE@I^8XW(BrvX1!cD+sfc&Zps~tt+{qCax2}s@29pM z&iE^z&;PhT%j4?|-}B0FFfP#2i4K2*aIn> zpeD!FeoX*w$qQZ`0>~xQ63F>1vvr-{rma+={7Ciar{)efb2+Y3)2_D60-K}%K|H6J<5Y*)B7sXVQ}g(r!ZZ^zy0m zSwyAMc(CEK@7^U+XVR8BbR>w6xLI%Sv3El$x+WG{0Rc<%s&*AP;dpi->-AX-+caQFbfUp`5=45?& zy7$=BTEpiJn+bJm9=2RUyXk_W3s(2uUCmsv;aDU9pA&f2f+u45P!;A4FxF%I!35D1 z4;`yBCX_YY+Kr=vccnp~HhCp~afcY4vt_^Vr_hmR*+wVD&JC+v{pxfj`LoNu4+MUT zdy&NL+nN5-Ab}&Zq90w-177Brwu?KK2rhYX9LUg{K>%Qn05Qv=OTt@g&4KnRX-~qU zUQ4IQi?1E~?Vd4jnIB2MY2JCA=QVUN4+ae`NJGk5qw2{?JvxV#{Jza=!!~Lx=7G{9 zWGCaH-`T#Dmydq`hclZgeeCSp7`*l+Er_Mv zE1D7(H|zVCzjT}T)KhwS1!VSCc_NzeU~@rRDeKaQUHT;5A&#SoS9CW!lh5c`XX!!^ zS-h`E=@i!LuO-$}Cz?Towspd&>FTtptc&uC_>b!1R-9joRM$oudTR_DnTH|#St<2j z{KeFN{meIR(#yI$RYEL0HH=n8G+v+o!7;)L)C98b0xenRGpd=3Bejm&rk|WrOM`fm z;Xu8Q_KPoA=yt|aN>9zjr0|TM)gSIM(|&L9VJKL~133-GSSFLXK1P4^`zsJW zJr>_lS*Huytga+5DSlebpb&01tDs4|uzNzIg|N8`Ve15HO$wo4AZ?*?4wR3nK%H-W zQjNOh8#d*&V}W)HKJJ7$2LgZv z(R2C}CKunL_s<-9kslS5(&rntQcC9sDdH~IUmt{7rSjdIqn&NAG_V0Q3XMH~WW_|b zN)m-(m3^fQ5K*IxM_PChsMh>z!I&9sdoP;G4~6?0l<>_zXl%x9xCse(nP9v9=fJBi z?#HzK;&)76L>c(t6Z7Nxk_0J{EqAnrY&9PYl41X;)8_@0+>&)SW82x6r$_i;q)P*B zzaOxSv1QB26Ql!qZhOm}?Dg?s-xOl*l4vZa-m;-80(}*Yih+(a%=x`a0LjJM3}pY# zAnKQA2|)3kTQ~YtAWL9M%JjY&Bm&hR<-AGSqvgEyuRc}D0Lige7&wquxVQCb_p@Xz zu_50g5}CiQW@3?Iv=lcxBZooS#aj~i@#j^Ia&eZvEmy}gfJP#K zp=62E*@gig70&&xH*MQG~-grg>Y6v%98Ge}Qi)IF5kQqN-=0Gl}3kYRB8Ia#6DQKdCeM5BkRpa~C%+-0J&_ zr(Ul=$WdE9}i zAe8n?3rifx>JaFt4FEDe@wb`9UesFFHfh8i$M-|ZMp8jPvsQ-OosqfRjRdoor#oll z`Hq`zM~S5Na!toRh$e$W?^^4TXCT>^fjo{tDzGyiQVMPFMTq5)Mh##ydAgQ-h1CQ$ zIlRLOLXM=xYxGNJG!iHO?G;k}d!Gz3YZW=lEPRp>no<#VR0`xK19&-fWO}YRrt2O7 zwD+wW-C9bB;d;bk6D^86K#|z_6mawn}&Q!;T3}_s*^IoEDQIaDI1LVGc zil_VHbvr5kH)xt1A_C`*QD04VOump~(vJ#Lp~3M3qc4Rx*^S=oY9Gw%W)s3)7;U+h z&J56i%Uy*}*?~Zj10`R5z=|x0=8N74t&8*l2|b|B@(!S{_c6I&u>u(gsfcEL*dU$8 z6X6+l^_#nOdL)jfKO^!IRI_=Ab3H!p)}T$toGzp0yw>$4B8Rxx?}r6*l^H!Sd8aFX zPpV#jn~H|}FlR-JcII(3MANK(23BxI#XFw6Q2{?JsrAzRM9zxxX(`MReg|>QT=DoQ zAI&^+4EhKqCl_we9Vi+(BK438GyiM_B(WM#iza_B=N866`bb2vT4EompJp<;Gy371 z4GQa`arR80lBfC!lzfTMs9vND`lSOmUi(>r6;z`7u7ZOu#ypu_lO;LjQ1ebWw{T ztTmjF6%U}fQfI5_`4q`j%tMRl$hGp1U-6wM_))F*3DoUZ%r>LI9Ev!+F3+PJL4r0_ zUg--sTs@kEa;gPk*MUu{wR5*+i;GN7RWeFsa2-a_Prx(Wlo>;9qoweT@KjfRo_ZfUg5?qUH%J$>sB(zYQsLG*Y91_0XmJJ;=M6Xj&>Q*7pY2N{ZeAZFL4{SGp z5i6+*Z~)ux1PZ+M<3}HFW~K9cE>~eY!C-XXtP;eT<0*cOOFedz9BV)wUQW#SRvOaP zoV6d$d8yqg9SZ+Z;&wqG_vyY4jA^7H>=sJ zlh<_r!$drX3L>tA?}I+t)X;hBlip|A2i^DE7=w2sN*O|z4!fW48dUiqL&v%yez_hA z*m3x2Wq zr0bxmy=D2dE=geP?C{B#CibA`AZ@f1F_%BLF)p-=Co|``#{Zt%@_6? zsBycd=U_LRO$~P>+Q@Ez9Ty;|l`?n2z{jv`OSVV1Zat$l7*m;ds+jSE| z$ii};1Ku=o)S?l&J2S186BSShQmt4u7k#-h5u!2vO4P%hz5P1V0|*A5G*$o1xts+O zw8$V*SP9^d?4h6EHNvWb#XVq3!UJ)vKn?;(w;AEFKusXko-m$5l{9*!#Sfnpj-X5T zM5QwgYVd;Hor%qfPnh9tS6JDIA$Spz;5?GzUPmb+?9R2|*gM^J)P8GCR{`Lf*^$6^ z=~%AQtvZzGC=#V)$j-Y6tjoWYO z_b-(jt0lhs%#0@V1$~V1SE^|m@nEb*jnJ zs661mopMksko4xZ3f_yp1hT?iUqI^H>O)*FDg zL~&zNTL8FjRj)atQ4HANt^g)`>yh_l{vCR|LSmh0(D zdLX&Q(m_b*yT{wUUj|f`vxmP63H>foA=#Bg?}8MxGhdlo^uWxLN0^S1mq#azKMM#C zfSsD}c5971T=YDia(smnT)Ivo`)dOQa3x<68w>03ouc1!%`RjoNqiLFX0rt9(Xs!i zDaEcJQTLCzolhmqfM2PiQQDluGE>4w7J{fm7-)Ebmro#yX}L0W7bJB)qdjd#0$9>6KuG`Y8!mLYRMVlW4VlM`&M7ZHaWx~4f{Bc8w*LIcsG`HF-cWCp9~Kt zFz}Ipr3u_Rms|E{CODrE4>zaBt~ub*F0WnNraxn!i&b21vgg&|sP<0=x$k%Jsd81C zh6k&0AczSuSZr7%MT^k~vo#S+^>`e^~S3M7$PYH|de%{q(`ytihenqy(t8oZW#Y%Dd|NGiOBJ;iac; zDG`vSXl5tvkpzV3{!YGU$F24F-y=E&0~lxhR520Ac80gCh5#CQIfxzVFo~fbCszRsqK?ne>?wAgfD?DAA0RB zl0cD?0&cwpblUSCg#B{v?_q%PWQ9RbmTa3SnC8hU z;8ks8M!an`-(M2DQkSb!P|9IWB%{QE;YQRmfD#Pqenyn8a|L6aD^Sgk#*x39G@94b z*>zjgCJY4_lh7UX?0=W%KkEd=K+7pXOd6eb;nbvh- z8g#O~KkGdd7_(5ML_lV5`oWwS3XvzU{7n7{w|{Ib?w8i8T+jajj{fmKSwOKilE6qP z(mWM+$dD(Sgym6=!=Ekh>Q9$^4YRfohuQzf-dlfFxpjTxN8DRVIt7tN8bJ^c>6QjT zxtOQcO%^(4Z^0o5v03IB&1vTuI)L`{oH4K-}gUw$KVGX=jgt!x!0O&&iRS; z0)})BxDU_wK}${gmTInE97?2Cd((&kFEm+TV zpD>U%i@>+?wO|?PEft&?u$A#jM?mZM%slYW{;|-)K zs!rQBMsaMz-4np~lmcR{-K^@R{|E?dsSZAX#y_+bvO~ap`LIGf!MFPbY)c|!L8PtA zHx8j8U_hjcuGSf{|5{pqp^8y2*V+j)BM6<4@2MOn!6(0#1ak^yD;-cPE!&`9EoVmI zxZshQHOBo>fFdC98MYBZR#R<->iSR}e8G_q5WbhTIsNd`k`4N55DVE znTCBlop?(rBc7cq8@P>&Uj;R?2Dm4)Mr9}S;X`Li6eetS{e>(;bO>=E3$`&fJyEIH z%*>278p&Tt;2$0R1WL5(I)cY2|9bLuTty}#IH3XJ!Tr&rSn)7GjO=}W9F40eY@}Tb z6RNQR@}>H07kiuI>5ma=V=k(Pq=o}o;vu2aS*2q2_?!T>WFx7C8lo3#Eqg*L{F(6l zUm-CghVuUxF@WS>s}RIKx10i>sXAf;AVH)M9IqmshMHHPsTl=*<6S1wOgfKkmd2zT zz=bJ)&lv&=KFkrllOT|pqzZZ+I0xQSJ1CflZC|sN!Zf5=Hq*U1L>R%_$s_=b<8wwOP&GV{XRUfS{30tvFp~93#CrkY;>0-Alg%+2SVm%Z zV8VlHPDscYM#>#;G7z7Xn@U-8QKH3ZiY`VRHYf5n3p*C^l2Xq>3K-q}WW)2XPt?aN z7bkLLX;&Tz+%gPd4ctBgRD=G{*3AsUgf!S3@Z9V>1vTd7 zb=&ALwjwsf{W;%41 ziT|}`C>|o#dyPeuW<5n(NHD7n8_dQB&bs7zT@w1}IbFFp3fn@1bHY$6pA1kh-QQXN zYO_CI$6>cF^+@2OOU8HD8K~JP6YqeI*VwDIXrJ%lDMsP zr*XK&$GbSS#PUD z(b&2QRipU@q<88vcx3m*A|GIoNC8Sm0zIA&o$Jb<15Y!4ba! zN~+fxTb&BRt#e=;GXSI$R`XdD$&etHa+?Z&LPts%{e2nYV3wez`)SfhG>Xr_n!tbP zeD?Z(k5%vuq2i!Ct)G^Wpe`K%7*VJydMBZdh$f4EdDaNvb)+laRipu;5PzY1MHaJW zb+3ALEWJ`Y%2QBiS3y}te!kAx7wc6uYhxexorc-tRCQrSqVEvW)Z=!!Nvb0d>IuY3 zOy;>p=ym_|=RS>L*cY^wtf(-m|fy6V(Ty5Fc;oG4C z3L<5MQ1G>F)${*)WsnareJDn{!gqiO6kCO&@yB}!Z1n@>HYjg+=96Nh16V5(4wNmB z=e_uS1Ig;#$=qXlNZP9p-kKLv7J?W8IR5FgP? z4%W|60FxH&eiCGrHim-o2$zui}rV{V%Za@0fg=AYtV$`H@A)_C7aDjfrGSd?DbC@yO#I zRU4%h32~x5WDjA85)*z{RaSdYFl#SmdBH{224i)BYG_*7-i!!(7vXnPDi9z}5Fn1d zaNEXzrDE()-occ;r@2`nXmsxnvnH7si>IkVo~UF#sM8!WBPWIhQ(;Swb3ogJK*D@` z?*USX&OVVQr+i5Fd!;Dx<7Wwje+#0u5Q+Y5(nkMZ|9T|xJpysd5pgKqI=12sQfM#} zww8ldiPm?_ny>upj5QQ*E5Kd@3t@n*^rA%Ljj?ce&WEQ?r?39VOGkZ!7<$|P`isvC z;ROJWt`j)cW9Yxa10=6vI5giVs|)mDA5iFTwV{LrCXsV&{Cdbm?SW`?KQVI%*=`@7 zR%6zjzWRX78@)M;^|w@A3=xjQQrp3QJur~y6KL-~p2Jq=tQ9A4*NUK?`ruW|7+>I$ zCGr}sy>o3}EtA=$kZ=wDRuY1vOSi-yp88+qzc<8?=C3xf7&Q77I|8Gd9^2-Ha5S3a zFFy=J7=%p#_PTTNck^HX3fSCd^WwVq|MfyZg-j^xpyf}%iDS;EOjOegbE_w>F4+S; z#WjMc4}|&%Ay(o(U77#CK6aG?EJu0N*_weH$6YJS6|q__$tIgQC(^&iAMFz0VGSCx z8=w4pLwbAbX^+sg$L-j9S%omUF&D^2u!B(}@D)I8V1uTrM%I7-1tcG16jo{C2cHqC z%qNr@EZQ}zN60{X|L;m1@yE!0MCQ9DTfO+#8T>!J5(i=~7TRF)_}RZg@K3uSRF5F} z>^ldp{VQ+&&-U)+L41Mx@wTo1hYuD)+Li~8U%x~d4ifPHeBS^5La_$0jy||n_dP@- z_y7CJ;R7e-wr2p3z`x%8pXB}jUOKW6a<)4YQzOczoD-OHd@)L>P4e*Jd3ex&#hT(b zg3a0D-i`wrO?+IWC`hPO4_e>GF~?Do5KSiSXvN1Tgr5;h?SFnQ0s!16fc6MTGp7#M zdK#ui>K!c@)QS@uhB0uZXz#T|t}abg_%ThbT_#y9y=0j3I0@od0Ds~otV!kZ$+%u) zJO1@_k#zXKONhV(u*O`1#0y*8PTwbSS;QBrHoDlFj~6J#J{Q44$hGq1Q{Q6>@t6Vs z5Hs3%I0Wc#SctT3d>ZZmd?Zt-oICGf6)9ANQlRK_>!4-dFxV32LDR6m7`^_x49|M6 zqs98%&!}R&YIw!z7WezLzwYjbJArWVmuW58#ykJLHW7^C7hyD(qV#pYny=^Mt(q@Q z%}28Q8^{N`M{{L1K9O2IQ>Atl{eFq zsJvHIwO`p{XN*vbvK^DQ1n+H>@ozV$O3roHX-du+fHCubwqj%p*nu=jWqLL~`bX(^ zHC_gR!7$`FJPMf#W5*A&3loYujhpr!Fqkk_3dNoNw;3dCCdW@RQx|b zJ|7Vosn5(8LgawZOmBbB6qRjKvdLV=9rJB}4Hao6WGw&C^2T!Jt3?7+dB$K%gnf0X zNAn%bhIu3h&*DSJVvpbB4f?7GBdrL7Ie|~M`bz>&M=A~*e?U$=GxNOW2;Y>4y&cIC zmn*$?dNfq4=k(cWZbY(+(Fp(HiFTZdQanGV%Ds7Z25cG>dhMZ>Uqe@=SFL|hSQn!zx?k*l>b5q+t%H!(OHqn z93u56sN?{a7!8Dt%H?iKIk5%HFw~Jx7^Lfu(Ae zzk7$iFAW+isue8vhaXCG8YZiOoQ!vjkd90C`oX<e8pvzXxse)VVq;S(H_n>-;}Yb! zNIFMZZz5TmY3AoD9)76w@$tNIYm;5ke1o^`DOl0lC#~!Es7_ z*AdvgY(9PyY!U}Lb;7=j!!;AI`zsxH)D-4WCg+M&namgJzq)oDJa%wG=%W#h4a5G# zmjr|?Os{LfYc=TUIuJ@cyH3z`E7W#b@!w~^>jph6>soi%^R5JKyP!HNuhfj+Ol6Iu zvii0U^<21wY1;gR$H<)LDW9g;z-GE~xXmBFq|?)QZ24$?9fHV5}`V&YI`D z_IKzCxZU{SYF`LIAW$nD~Qw|=FL)5po(_HX6nUkl;1@8 z-1E19N7Lg$eMebOU65(mm$34vk ze|5cE#bLWD=DJ(aBdc&Ba@~3#D>29oUTQ?3{S5UZ@HR09J{L+}{vDq?Qk@qWo~F5E z<3t`*r0#5+MF6R+UJj_$YfdB8g@C}^86Wb07btW56!Q!{D?syPm2{T0Hz0S zQmGk8q4x;ykBqkZ+}HUe3>zTQ`$(xz&T7zZd%agH)A0$TLzR8Qs5>+Yh?T@Q=BmwA z+HjYvU4jCiQ)4{{Vo@QIkAK_ZDsRdxW0Wawt_2$q9wU6uaLh?l{%*i@rs;}prphgD zo%u%G>ErL*-3zB^zR?LuwP^oS(*D{0iO?PFMe7?8bkDFVy_&zWS3~L_t#~Lxi3qef zo%t4!UmPSge7v+f7Pteihwj;_4)kW0i@Wn!TU8N%ABp-))ZW9rAjuCH1d!47JaI4H z1rmbI=XipqJuk~<&I=BMeZg^wniU;TNzn%VhS2hMiy+O}Sojc^1HTs|ZkjG2&8pi5 zmN>oqLUt0*~T}fmgv7+0QS&{caCr+d?Q8$IJAV_>uKE+)sWOoFQ~_2r9n& z;9?>m9n8D!lvv@+x*dPx&Nc3fwo0$UAq{|p+K#MU8>xuAicLobpWGhH|7^QLT)L9xz8~dw`qO}$rU_^% zxgv7BS~aq!!)YvVHMw%TI}N^g~#tyQ|JlyvU=u^TP*IzGN>) z^PV&6=U^MuM7T@ddYUKV7%7@Kg}vlhi|u|=AudkX_;d}rBegJT^!^fdF3@PUO$BuL zkDi+nS3uL7rt^An4=5@F5yi)u0n$a|tL>ba!FS#5{^+^ZOU-uUN|JjWVlLbNos~E>d){)__g9aOv`P$}T+X}UG)i`@W%>K(q@9k!FPFXV z8v~j5lL}-e`V}5A9QDEJ_D?l;KfjcbtcaaQi8i9z3By8gi_IgSm4cD&H_M)5a=O}} zZX032gRh;+^NN{!kj!0PNbnbu`@RqCQ%uZkJMp0W0#rvCy*%7nJGujI~o9s=7S%Mqv^UDN?D_7|Zi z9NiC@FMx+r7%7f`^WlBy|CpgcaCm?bmTV%@N8L9inyLq>=|K=fO0fG0U)zqOK80tX z-q=k7+KV%81S&rS)hn0|u7BhVNK3tdMPV-QZ_*FuLRN#lzdsmw0sgPV{LJ=81IhP5 zu?>ufCM?$k)#E4@QI&acplZ}+$dhE{_`Q!Rt8XI^EEN5ME&il2@(tIZ6^ z!_7&j5(}1iZ?Lj2@B;rmE%kS$l5fdKq+8R+0?oK8M5u8Zd*miCHCG9V%Sv&Aat5 zK2M&gEOO9zI$pSLv7%8=JV`+2$7?ByE_4Z*eokd^uR#selNnw z%!a!C9R-Wlsym?u;QE1eNC5DZWlg_f)Q`H$_SsssR+O0}X9Q0ghb|B-tBAMbvr!PD zlpBCV^i5Y7$?;uqJglXF6VEUt17a;)y_-GpK~v7G2U1OqQaVPaBxbVv!WhtwnT; zu|UHH90%e7|3YjR*C&K4aX*q$G}JmTP5-!upM=-WIB+9!Qaqen@0rTIhwN_pPQ9@+ zkb{R*E4R1TVLK*AZ0RP8P$iqbMt8!FK<5&5*3Z}HajDPq`xHzVdzpGte$?ZDaf9~D zQ~z_0uOF30py}l0c1oc6N94%}1F1(E(DYoFrCX3&))VwR54G zYV}OGwq<%2&+~>675yP!(?L6WcO29Nkaik1%zFi%REKSZRv<;@wfQ2W&znace1dty zQPj}!>Oc~G{UzxJu!HQbg|zVi9nLSr&$|Hx8$Q$R1#iYAdzr|?5M|g7f9f{_n8QfU zd1h@k2IhV)tWw+y4lx>C(gB7I3M;o1Le|xOf3@p*{r+0`i6DlPRlfSz<&_8O@}o|R zUO(iGFotlUB3JHHiHs3)6|-#)gsbZYp)of3l0jJ<1;X%L0PlqQ9m zg}cZcwX6%}W|9NvWQ%MPN7t_5qhDr|90h^X+$fl#kgm_xtq;VzZv(cl$_hi8<3H;K zS+c}U5=pnwmRKw3A|sz?VF2Vf*|lKTpt5}TUMUlfUmUOoOd{$eWPVqO6#8M$5P9^p zfpA6;vhG;C?b7TSB*D!3G2Be#hVA;f;=muBA+U3Fha7Zp8oqn~XN5g`cXTIJ;+PoY z4Xk-W-hwsE;EWu3;;npAD6u zMQs2!!Ha8bbP5s*gHhChLRH&2?*qxNpDyYxs#S zXicL|y!bk(zpL0tPxUanuGzsd%lKP@G&rvAG0+OeGHz+sfde2@1X`g-A3%{E&l?W0aNU*DC*GFpyphHOlZS4CGELy2oZtRD6dn_fdu?9qqP-SW0eM0IZeyDWw zev@T-Y!hGJIvZ63sHhu*1ikhVfm*pCFnNj`kA{AsSRujg>9W4e`rVmK1T@kss7UzA z05Bc=Dn`mZh<>>93|Dpp$1;lH7-hLmRK#5!!d#dG z2kby&lSEr`3XzrKbNp#MJ7$t+P~xlpOzIH+()_cNZX_(^8_^Vs6{5F%nx+$4FEILuCRnAJ!Ia#p3H` zRkd9!esblmL-%N}2MO`@R;dzN;uyg2#JUlNULWA!3w%P1B$O)*#qqwM0T)BAYf$Yq zRi7YiBd`Q-$_q)i1=UN1UVVqyA`B|)E$jkW=p{v#)gMb{ETp8QM8_2hQf(%ns^qYm=XpL4aJF7xltVWBU4z>fwP5*ZWbl05=lnc4;L%6k z@Ip)@xbeyF5TgT9>z|B#&8alb*8Ne#Iq-_=F&@^MWxMaf$VqVo6pccm!l_bfti&P) z7-?VhGEPIPR^>NA6k`5~!X_?=LKD*Od8zI#s9$^ubz1xf^2Y3MPifg^@|t4n_vz5s zq%)IhB>?Ubrq??Ygu<%M`{Qb-jEH$*R{`>BRyFv54uv%ecah?$Y@&YAh3{tj9@_p}sl>?T*$M|nm6fL%uz>|5w}E$6J@0Oz zDmHyL?!;>ZmhQ(UGdH~+M~9P->nsMI7-gccL#@PtoY)dzF1-D=+9le%>a5o=ttd~Q zNw%Tjmyh%^zOww2A(9k?1ldkrpV(8gr4zZo_z?S{EFzYrBfzZcGWyq2Q+{k?V--Gw z$_u^OciAIA%Mmn0UrGX^@k9UWWV<^W2~U6zippAGKcV`z4he%V> z3;j`St4;A()GR;-$1mO&OJI84lZmKB3uje%#e;3$T`$jfobCHnmqyuBHV`q4eIP?r7Ias_t(_SV83IU;I3G$DN?V8S z*IqBoSp-*}T_zwG6R;eYgJY&3ILKdUC^MTH_Ui{Ab|d;M!LXGM69rDnlQ+Px~m_poZj?lTClM ztSGi{u3=uNlNr*e)6g$LdQ0iZ1cPTGG?xdkzwR>;jr;KU4wI%JA3jOH_kIIO&0oo3 zx`BAwu@iKmuD^ z-O^76TY=LvbkgVafngVfmd^@3d@bZ9gfx_|Y#X$RT!b%X<$>@+R{If(Ffc?dee5`{ zw5bRLI%dQJ`d*+>nr*_#(7(J-n3%$**Q~uP^3`@tLIwHb_1PYi+~*gL!z&V-*yYd! zLad3n629A^l(qm;1_W~%O{ea`&_bnq#JEoVB+65Db_@|T$Qc+^AU*7->=boqyM9ru zeIO7{1Wgb*PdtGAU2Nb|L^8LT4B*{2+4+%xODudO?-Qa_XvH5hMWGdpK$qT#9jbz| z8kSZ*Z=WvUA)BGOD+zeRoULJ7U_A;=1fuQK-u=sU-P`4w^vkjW)G1ar%WyzVeOEMFLLXVRISaaBJv~0ER-q zV>_upEgT3**cuW#Q6mM-&KH}Jew|Gfufp*inROx={)B(h>I!w_!#0!SrdnG5XI5D` zGLE~<*XMOiBV(?*DWKBoL}k`I1zHWWr5chT8u$-&)1ee|wTVkW=#YCwz#@s+mIJ6X z-L#v4fA|&4f1&2B9E@vluXgE44J#&vY0!h4z0uqdTj5|Ak;ll0sVIcJcr_=UhKC=t z6`03}dF01@xzDD|TGfwvFKXUTye{W_u}bsIgcYp0B==uDM@^77HoT^{=@K?RUxT}C z0V^_)g|V@1nlSm?pKgV5(hog@ze>wVN9(0mw zwFKeC*?7Q|>zVn<+{Hl3CPsupOBSWQE2D3C$8Q4bqExqO7KH^o5|4QN4J56-hO&l& zGN9{C_H|Ky`T57)U_#bQ6z<>2YHhhkjd7*RNJ`VXg(&Ih*ueU4gom}j2%Ys}9#p(n z3r69820Ky|rwIL=nd0?$#7nn`jdW6$uAf`{`=%#pXL}?7&)B;j{sPb>8_-^_7%371 z5~i~GK3W7&y)u`#j;RJ)wsq+~Az2O8goDX9532(M<3k1Hf6UG)l#qakLH){g4=M+B zeM!em;L!?at21^GSbB`cdigN%8-NLO1QDR1R|HS{53qcoOhs+EC~8cM@K%rB8XKPj zLv+@9WgP8bP*HDv`v(lTe&8bpP55^Is;|cOR~}bRG*NZT==~?sJM5-c%fP4nifsJ? z%vq0QTM4zXnd=UJa~;i_YH|uCWL3j43Q7D};6l%W#BF>g(EW(v=0*M?Ugl<+@SLBR zmE?c$4j%`a$iQXXGA1QN(s%*Z#=vyhiX8tTpt?iZkTB4d2_Gt(!^@;!}qWB zrf*PHbC#pAU!(!UZN)?oDh63+`=utp;tWqaZU6-OcIje7(z8S-N{Jvw1nJ{2p4t*A z@G`6`2geWs(Lq}hKMF?daEc%ZE{^sKhhH>&UWp`Q^b|F*qyn?>v-QDrCeqR!;@TgE zo$)wj(iLm(Nr>o9$iMuE_OQD@<|XTEk_$&1rlgM)z$BmE5)w@d9~Y=^j%8Kq?y9mp zrMmQ3uybB&Q7XFdw42ZTnsc?%BXimzA4!e%O4IYVMbO}#QTU+Vc4NxNo$!|5`CZNF z5cGtFoyq=E-YUE6K}N=zeD0xzb8B8g5#Er^fl}8hTI4eSW15{--&D50zUHW(YARPt zu=KrLrnu8!-@EQnuGW<6dzoX{X@Abs)@h%orRVaPlJa`|IaQjkZ^Kk+6d9gCWJ+#` z@i{ruU_wH%FVpME%m5juJvZe>a~azkE2OzLHWgk$dGuF=76$D3SQlzNF<`}6uOJE2 zrpQET!olqUG7aTy=pMk1c>p+;TeF^34zNCFy4QW2QUS<1peeP0tO6f}eaSmLu8 z!;m!WGQb*OnSHR@-AP>^>*bMxV{!6vvkw7qxiZh-0*22gTp(mPGCV)enZ)_3gEo9~ zZs2(YumG4#yE=1=m47X>4sL&*NOnAFd^H zCQ;G3>#f$FcISIxIxTDoavp9{LomHv!(TPj)4N_ORCXy-^Xf3e^6n$7cPRC?V_#sF!SQlJxyatx zc2H>E&T@V5QhHL)H7cKZG1ZQGDSj7kr`s_Zz?1&y^L`XL6lPX5;Aq4zT!tN+t>6+} zg%-)S(Pmo_Ap`Oapn-x2tp+XN4y8U-8=;l5R5Ct+BUUnp~8uV6AmyW}QoB~t_Yf_D$+((Z%~ zpAW@y+(&jVRvMMIQA(gvhhMy97|p2jLe3fI>5nX~!J$^}+W**<{{14TUlBxecH zalcr(DNDdc64_e{FgdLk!`E6)9xqYRUgJ3!*uJH-5kv(C2F*Px1k0k=5~&bhn^mys z%gM_vd93n1zS_Rk7Q){2owvO!$d74NF^d>yx`N$*zT!NSf5f+kp`bCIijT@Fp%1Tb zS_`P+bCwF9kR0h(%~9Vl3UikqYQLns?WG+ur#5-wLUo=(uLUalD$|Ns(j%BLwxXgd{997M}&YQx>BPpmbt9Xq+I+Tcw|2Gm)riN=J$7OZd_?TcThmmj@ z1N?C^Y4O`k)jJtbq{vcgHxM$b>&MTXP0lvdx*nS%46ya%IOm^_`)ehn*1Q}BTAu9n z!u+&o*W=BZfE;jH1>&{^gs6T4)DNeRJBEOR9RrrYMFvBF`tiA7J7p&qJjVR}_Y9v< zQf_(Ye@0KZ_n*VMJH$@XaGB9^-^}Gck6_4b>}z?ww`>>f};{V zZO|=z>uL3VOjjlSL&JP^NCMd%*%n-M!7_a_P~0(R9;GL%mwQ`0HwAiZ+%Z8kkhV8B zZ;w5<>8+42;SeQqu<&)umBp4Z^jbOiiD%B7yzUE7fJrL+84~gH{XnmNB8s{49^l+V z*=k~Hd{iW7zM}xJUGT%Q&>Ncui;Tu zyD;+d5f5DdYGDf_b?=%1Zr%Ml&f@3a1QGX#04(^7djM$7?%_`7BW7+Q--p98hC?tG zUiJ@}FIh~$kJQD0WP3k-BJd`RlqiR1KJaGi-IU;jt+m@Xy}{qF5a_+6_bb3Hqc}#* z0Xlw0iD8}Vcx3e*;r!k!77KopdX=>Uyd2rSdA;#AL%Dc^p@qWQ9FV3p)$bbWDdJho8l7Ci9k03OS;B?4R-MBBRZln&ydP4egiEV(V zYauKHM#~LEFUNve9HtEdP-g?U1`*)y@zz#wO}VCzw^0b+T2Dj*Ks=_Zc|EQi5Lo<7 zsd8?xg}*PXNcBrUD3Gnf5C7(X_%tDwv+Li>x&DQmXtDljqxz9q7Wym-=`UI=L-bh| zx6UZ#6<@ZBzE}hWFd8LB4ivn`bUwhG<2r6yPoTl$Q&oYS64CfH`C_DG&k{9ngB=w8 zTwj-4nG()pr2VVYy6^H*(z&`zzJS^US#S$}@%TqPtr2zdGLl8?(a=wUuJ@0BIS~Qp zo5~;y%@+s7Qq?U+%36#MVrCu5H2X@sLgt%;(`U5%1=#07k&+`~Bb+Yz?Q#KLs=q3i zKy|0nyD;^qw~T;z_)Hr0>bY&xZqGWFl}|M|TR(c`QtmNr*)-ySmyP=79uWDkr({!z;9{SX^)^A38e_b+<}asD#y4_ z8=cp_^)iB8I~MYX6&V-?x_h$^zvoe|8oj@o>#ER<&=%}9YSv7Dc*6N1vuR+D2H~;> z3A6+^FHlq=*5$oirMoMkBJy}9lnl$uqOe1%i~g`pA-D%*g~&a7#vIf+lTay zCV4sf`MdZkzpAO+!re8|T$izUrGSP$jX3jbFF}VL0{$cV!e>rd4ZoH$mRFxDmtX(A zB+dR_l7LqcNgdA9j-To9Si1NRL}O(i(T8a#EVNK5PHHNwmsr)}G0zq+hd<+u#k(>BQe zj#OtdP^iZALt%B4kFHc`F;*k0^qr2k99skmyhz^X$;*{vsIZ2W&3!dC`I{6hx|gP3 zC0+YrPBqP(vNf-c6Wt4>f}-t~YXuvwZ!yqVJ*l7#Wq*c*;dF?+IMxVmQs{=!3}}Q| zfJ;PRs%g99z?Mar5Bn_;p3?V_x4bp>0JepQ3x~?TkR)UPq0?s$NHdwhtEtyNfsBNM zUBl)8G_?^V0UKRJda)Lzb=}p_L-7(***3vDC7TL!n?D$779N;FmK3Iw-VTR|snL(V z@C6%Hrm~ALH1lR>4M`^+*498q`F z3%@-YJ9@NIdF41x~Aw}SOFP6L9e}Z1^X*(Hp(IR9~mwLW4rSQb#L`lU@)dSon@$tGG;V;^$ ziZJ3a0sf^34p^c|3K)LVAk1&`_xaD~sX;%G&LElsq&rgTaz8SBF{3}sojrIb@k|Ty zH7phgi`Rnr$_q3$AXO5iPFc%_W6R*O51^@f3cw9b6+!NsbRuaY?UY}5D@f~x%n~+r zrP;ePjnV;UUT39{mqkZtUNm?jB5L;w61^+w6LE2#wQn;ByO~9KtMQa%i3ppCpwVMw zDT`phywSS+#gz*4Vd~g83~8xuk@4)Hme;50j1O@^G~+Bc(^jm6zG?qX{O(*x$vIk~Yth_Y||< z#BPx;<{0kf!=EvzydzAo#||S2_}LAo_Cu$(bu@Fzn6cedc|>OR#CamNAU<2U02e2Q z%~WoCVox3q(*EruJdAaPDyfu6&>L( z7pMmt{CZEmkF+dfy=iuf9RG^6c7{J4*_!pgLzu+-{Z&u$QHi3mcCZNW z=y#9&{CPmd1#pX^qM|ZwoZEOjuBwyMySVZPz@1ayzkWF?mdANrBr_Z(rNXcUBu($H zi**{*SfC{s8#4`j?iKvak^#eqj9eR2f6(|`pL#(cnutqCRcQESNBU0UH zv_rRwZqBFZwQgAZZ|jx03C^Z%IKQRjkXHS4q0x>N$2U+pkYX%C*O6lAkIP=~GGNDL zbtr{No(v09s6TC zXEhGzV4b*<0C&(dr>OLcG(>aCJ;0FY{FVRSVvvN3V1p+;IZFnA_d_Z+tEtrF5;5QR zU7lms!uv`KwDT%o2F{55GI}NMm-U!MK$4C{t;oOL^C7{&S9*L}>KqQw%L{L~R7oT0b z*FD=);yIs`;6Ebanxb&NH{6F z)}IzG$LEJ3w^sU@RqIS3ST8v%jBmC^a?Fv<` z4L;?t&u|@5-P+p9)@gA1`Q3h)KLC*33hLD9pQ87Hn`jWk=C5*sn?tD~z-FSz7-j1{ zrHC;=4)W@B=irA-wh08Sf$cS6b9i*E z?mLyaS zJo0<$)b$clTR-tzn~RJ7@hMM=yOX(nn2Kj`f#Bq(@CcnOi4!VOumHp3BWy-2ueF+x zM=PtZ%CY=AymG5Bf}8HKlNU=UhLAe0joZppe+h;5Jf(2jkf6`apWk&ALLrh^{rUY* z^z#2iuK*Os5#WwQa5u!0={oy-k`WI3P1$P88Qh-mZPEUS$GkAGA&ayWxw6K`-*C0a zNK2y*77?ZL+CSiCBxvHfx4+orK9U=9o0NI@%IQi3J}oS52@;MFc7ZsE;*%9baw?F? zrPAvq6zGVf&@rU9%iC$X!O8mV2cqVQq+Ejof%sSu`3T{##wsS@?$q}?zdK^TJANDK zeDjyQ9#0TFa8oL@1$}LQSY%)t@~yhE2-jD4&p*chX*GLU*k9PJTqe0ZOM0%F_O~fc zDH2K}X36ZBlnY*2xHw#|Z-e`9tQ9NuF;nVzlgYTUOdIoJt>q`eG#qzvS*z0o$_@?# zgw{j8B;v4gdf9f9D_%tjguW;cNB6_J#CWU|jf0OD@^ft|d)GQW!}7GJANkFs)t5H_ zEz@e`VGx0ji#TyrPy3kmBn=yH3LU2?sdS==m-^AGmY|`bjaPnqqhkha!(Bix7rF_q zqPh>LQhwFdoQi#BtjCt|7XF0i;F7U{`-nTVz_elLgMuEiHfjRsk-?mTpxKJ@4D3P* z6i#}`Mf0*=@-K`p*Q=KO3pFxaQ~n^+U&J_M+IN1K8P*CpqecRUB#!LNYs4Wb2SE~t zW51la|1R75-LYS>SdrqW_H&JTdmLS@>#UjBQ}w@4h^`Kf6yh_@-hZf6Sn#1w@MGd# z;nyKv>J{;U~-FIzD=`G!6cGa)B$>6`*m)c2OV+?)ZiWMCYDe{zl*MJ#4YO#A#fo>&U7 zQ`V%_p?77C3(Qj*=cPA(ABqt8yLq6i2G^nms{`o zefl{NJDkQ(`ldg*Q{6zCESCIFbWo69BElow%w4=6vby_@)q}SK{gv650^C#cNL=B; z;lSdW1F3rA?8uTAO5Gh#$Ufz*RlQR0eWQbe-JV<8+xHT&Z>_LVXjX8?=}|gVB#gw$ zD*AWu+{HTT+0+dBdla(k^JcjR?~B2|XEMGhlN^Z+DyUP`-w6$$dqabx z%KXsxv^YKS`?;q!`zolkduuig*@G)Nlqybtji0i|T#jMw_X~fRf*VkQW zZ0BD@BK9RVgoGIBquxQ;xARXE9>T`bZOiv8_m%kee+2%hjrR`3BWy56pZgreDmIRv zC-|vf^v>{k#7ood_hVv>Pl)<*Sir$q0gWL>MS``Sh6+)j5_KQ$Pxf8t{4}mM_iQkE zGr;}y=wLr@s$yg3v~iG|OsL%-Q_bVZFWUPB`jAImMj*~})cS2xKmJ!@mvkGbxuuz| zoDnlGNxq=3h)e{aJz&bsQb>DKdnyJmcrY0tBUFwy zvxJ75`z;HZ9Br-!;MV(s>_yGajuT62y436e7^cVyU;3P;zyQN_jWm&7AE7`D)AlOU4An#s zaTimzzfBznyuTE2mSRvYv$f~4w%AG8plEVg_&RYf`e+$yWx^X#wt|P32ePj}4on%I zt$0#s57wN%%zIT>pnR12hD^Y($Qq03kqH?}Jtbz_9-p?#Qrer}=UQ*>wor<0owYHx zG2SmC33Gq-%NC^~5$|&Gr~LllUA=BmVoap7Y>A)fU1Z)ndQfWyhKH+BKTGDeE)~$p z++sQjprWH6g>6z(QDGAj=H1>;v5ST<;k*)ljjJCF%MhIUTz>ys`13o@w8v&Owi965 z3T_X%v+bxB0fVv0; z<`Gt7u_~qjJhxi=)9-)-RssaB+xt)8%KGes9D)?nPVmEr53WK3hYiLVw>jMJ1;10M zBAXF$SLe6j*k}7)Pf6h?vtSdWiU=hcrDD3@0D*r+GfD!}l}z8J8Vbsap?~Nl52B)~ zihGKj{6YKlt)7QJXwl6@$Mbvfm^9!vl%r!~6XtGCVzgOgFS44zfAhaQ-twJH=gCw^ zlj|hjFzV~?AGPaO_YephTXG#pV0$a0v9+<`LuD=HXQN~g`FFngfelJ3d#VW15a%sv}ONQBX19-Qw zE=aeimR9b8Ix`Ld zZJ&r%gU`fb3sX5dHCJbiQNBn=^6X;QUAjnxyL3}^f-c5*!R$+`miR~Q_#A3`F)Dhv zwwG>E;Yrpj8zE)EIVwwy9M9f) zq)_&JJ!MO4yiVb|{AF1w?+I+J><8`?3qM~5{`W8P5Jc<mGQ0@yU(Y0&0f zR@?Z90~^7!MR#kyGm{l08B|TUUuYV}-@2?K9-m+oR-qVf^I~I+X1-GTiAS&AymzSM zDcyXd`c$-y7WVc9A#7l9rfakrJe4wz49P&?T35s9#^$1lcx=q@aLgl_lwg^2%)+A; z`nyR+ck%>k(%P3Ss@{$hwMpQP>1Gy*#p`m#(nhu=>7`L`JEF;IUEIbleC^gNT8t`d&6Oj(=LH2Ic{JJVvMAw%FmeyU%uJyum*;9KwM zygneama4{17A_n0i;m=d$V4~{-HcuAvo`}ApNMEc&RUlheR44D%phA(0GjaQd3X$U zLEq8fg6rsq3Bm|}^mtVN)eaCK{S}cmT6tFHeBic)*mc_wDq#6YfHNvs;DC$4>SQq*LH{hn>F$CW~ut6jT3vS_(RE&%4E-Lbx$-FN&m&4q*q%5 zJL!DlXbqEgk=H}N&5^ch;v+;Qy<4J5Zxh%;SOV(zzgzw?);Rg_sUxeiCZmqo;f~I_ zNsGSeiGxPbjdRAp%e;PM>x-IDa}SBqo3mPb`G}=hy8n;8xA2Ox?ZUpLq(mA7DG3pQ zA(bu>X_OMAJETGB9BHI+2q{T}?uMaZXq1kjkq+tl&bfWw=YGEReSgBc7K^oXv0$$2 ztbOi%?B8*7fBk44YV3^*X%xxtWpDG2-V~Qz=FEtWlB9>+rRmegoPi=fnA*o%M~J`l zeoCfCazh>Le!G^wk#q8;I0vcg7VLVnYWgqaG=MyUiyi`eVE$;=d?f@Eet(-^puHIL z^ItvD^H9kgOiHDE-b6|#D%HRyBICPYnkpHs*xiNaPScuWCC05>V^JPzKvbi|e z1LgXe-|QI^SbO9sYH|x(zNx23bCOT*GuR;$95S2O{_VWkZ@^AwbBG}y#5e7oPu}0Y z@FWM}0eRB3F<<_&so}7akhuH1;*T`uv*u5gAA73*BvZ@kT=VFSCi6X%o~m+658;C6 zzD(4h+Sgl$;t!18A=6W$R{8+e=$ZGmpoi^={P>$ zrkjQG6Zx|l)-qSSFn*y~5;eW4?qTeQh~iORntl;O7;C(x$W_gZi)M=G(+O)IsLIjQ zGSFVAICaw4?ypffySwCv9v})#gn(d0w5;G=IE4kQ^u-sX$%vV-4r+j_^mTI(e5@}v z9ZT;gLKU~PwH9N48bk7iMx2vAe@fUQ)+_nN2g8TAg1OC51qfp|5UUTIIS*=*C?It# z{EOcy{-EhppZq*rg2*U9dHxYv-@*YWjrF=uHscAtEmhhf+-mY_17Fxy!-V5O@78dH zu7qrmz10Vxz>HK6($&;(oXob1vUNGL7utz2OFjxx=fLG3zMzN1$j(1zpDIX&v0>A# z`y|ncXT7>Dx}x{+T`w^kuTR`)GoGvBTi0NOAASXSo3nY%N@}$seK8in>dA~^kn?o; z!2Zo{AQ{z7k&AalE)pH@PAS8!VHt@D>T{S|5$x=TMaSaMu*hw&oJ%9KV_hV?70WWH z8TnjSdd+Xn90IK3l9R1PT7#0HE6)K`v8=@yVxnE2c}MqI8|rN!xhd)KAWrYT2>rvL zVF*xoKtuqSd6{E1D-p+c5ELr%vwwX=lb6$wlP&V|`j>lJBtS#PgKkI+Um3^h7+GaZ zlnH&}U}*9pbM#F^j&_t_^OoS?91K!@bQsR4m`ILTSgV`LeM9jmB9-Ei!$(NMW{7)G zy!5d$tbCdUfynUew}RMaFlIEZk*U=g#&glXJgI`G8rHJvpBwC^eMrZ~qGW*!PGM@; zO5N$IHRMX=AoLODo(hTFIVID}LI}{k;Cd8OnD+A1V*lryT?t(?1=l9KFHmzSpr3xl zgGE_sFLeh&`Lm7WHh^jxD_Xh86RX5iK=vI=g|PoB(0Un&l;JXi*sY3iH$(Xy%cUI0 z-zJ=Q*;VZ3p79F1RaSecfRLh~$(BY8%xwy!dn z<>%!N*<0#2W5PRWFqq#bHf(`Ioym14wwgz{ox=~26nYAUdY(NFHWsoML&Ntopo)Jc zI(xc>iW?u*zYt}WcvDXbufuwVi%B}_7a;+cxvH*ld-Tk2mV{bdj|iv*da%~`|0-Ec zR2V3r5guwph9wt9!{?Q1+-sCn$T`Mej9(1avKovhi zUV!J+GGI^moW7?MH=$mY9-w%Ar+=ZyBb*k}9sk=;@Ty$TTP^&f$Fz0OB7$nC`(k7z z*rxIIqi==IIaY~U31=GsFP>#StoEaFg=k!`eWrA7J72)=actw1Na6!ykxje9Ug7bM z1|M9A$(!k)g!?~3W?>H-iw*{;Oh>FCkGN}aYp?(d@$z8pUG2qE(@tJkJWy~7j(?}& z<4h8gcAa@wIeQrX>+?$f3?slCe+tI~R3>D0hus2tDHi?D3WlT5fI-%(|1{?(VBgF}sct|T{!M+rZ6 z+`>g02UI=@7_wCczB#rG2&> zV2#pBve|Imld?uF0k+AqHwM!woYD5ZRUH&K4}s&3s2uI;cO-fS=Xt;cI`M7j$8!fM zi9cF5oSGgXjNBPOjIg}A+6(TE)X2Nhq7G7hm6mra%JZUcL{qp zo4pa8WvjWoa0uJ-ihJ-?yGzs&9Q0@E*7d~2l)aJBURcTHI{Dp+riz7T>7GTBJJdVm zp#!4AGELN4I&SmQSO*i+bHb^Ji|Fwfy2SH2>o6!j4o`cyKOO`)1G1HPn~8GoP@I`} z{Lxlsa_$103?Y~kzuNHBlenuETD84Ry)#}Bt@DEEg*OVA@aKiP3^hhV#FrIcgCc}` zWenU{TV03tP8N^nfmB-4Nr)J-7RRD!1~N8fjtkFFp2TZ-0>Be|s@j1I^u2R%>WgY5 zq4*5}8#1?GoGz<D1L{vPFx2#|DD5Hx5f#`l1%RvyBGjv|xC3o&G zkg>HNM5>txl@bW(4KclZ*v~t5p^cF`{8*-mZdXq&(1}o-N9(mMcNI;UFLK_P^Xi+f zfIQ@PGOMYjdl!|fSKW-K%Qu#uR*CT3Us%DT`iL49KVxNt(rg#W1Dieq33Hu#iv$o4 z3B7Ve!wS|W<_7zpGaCm-!uI6!@-bm?>@Qud&bN%sk=})W@MA z8{kqng$QS;LV@g~iUjikZ45+=L|mAAwxJhTJNFyCPGB%j-A=?$!DvAgTk{2FJ|h&d z?uNIL0ynTB@#=+%$2Qk!wBxLiMTv-LtzMdkK6<^DZkgAsTP&QmYSM@1wu;zuQn5+m zk{yfTd-*bU83sF2j5>OHVyMl_BAr72dP9#`=C|ycoK#iyb%-19at>)6%NfoO!=`E) zk^5I?*`swYx}I+-I@V_DhtG&*z6*<+9Mh^xuADs*zYy%8IS0N{;pTw5Dg(d|z!8i+ z(N3hgchpeyk<07Bl4<64iLu|v)Q2zGt{lpTXI5}|>{Ldu(Kbbr_|7$_r66yc=hC>` z?59|2VG~(V&cECuYE!#GoKc6&79lkjisjmbeQ%#HBRH!CHhgL37bW6j5dR zf1)m2qzBOnUg+VTgDXmI#lc7=$3TYKeZP&0~-iQniE z>x{QxMew`koB~4f%`^3lic(DKHip%$r)99TM+gEjwUw!mhAZyD9WV{^1RF8Z~kIPe1V&74}yn)yh2L$smT0&m??V&m@#j`Yc?fN*hXl zys~)1uJo&vvp|=jDrt8!b$ z7is?v8c4K{XWb0FYRR>^fnEZ9X-J^E-wwP7+=V^QfIe@_{CN#)DgYY4D=@ffx=Su> ziU%QYrSx0_Ge)pCY;Co75OHS(Bj`!IS^i3Ul?v@z9F@iyp5^=g_+r1qbN$k3ZF?=( z{$lGZ#*H5#-TQ0Hy<01tPJD4WZSbCh#?s0^6P7j;uenxnrmH@6({)iX#^!$0bF>Xt zO0}k$_l)YluFNwZu|Iy7$5tcg!A^JeJN2VIgL~hSAYZ~Gto2yBh#0=(niieZU1q%U$i=hw}KvFb86VF3JS!9Ub5G`SR z!J^k!2y8kv0*q)A{6N?SL)E&uLAga_V?S#<qp8u2!hWt!NS3m zAxpkZPOfL*QTWQM9iDH5M<<6^DQB#i>$py%?`%);DcVyZZL( zLo``;n?oJV@mm%XMgB=~)=|$GF81>ZF+Q!;LjHE@@{CX7b5l{Cc{U<%wMa9>^=fju zmBY^DNM8+OHQOfv;Si_Vu=#kA{&6w={i-W={ILO;`Sf*6!R2;YJ-4p2qN}26oZB1y zoV9x+?qEuHkg3&M3G`N0(ar0a_;8e(Mtn-wjC)+ptn8{|O)jZn8z6|UB`)E93weUky_4M?5lXoI>Pfi>)`PN|o77Kb_u?*}V66SJ9wHubFQZ zu6R>!0bR*^7o+P_;Zr$m&ROfq2wzF~(QvIZlMfI;J-nOv^C}M55;_cokq1sgH@7|Z zrueD6Gj2SxsW|m!+LNQn(Qr7=owzuib?YSE1GsRK(izA2d-vhIIWseQ)55p22*m5Q zE20X!Mh>N$7^Mth#G8u3Cfa=K5q0NVEfG)ASF;fLj!|+pbcd>F3Tt^zGOImJO}Ohv z(wrmb@XC>B16g1@nFNgvhrAumdd*qlKWzSd9UBCG-U55WOG#ZPV$!hxCBZ0uA&Pju~KiKwj4KjLLA+Zr^XI(Gij@U-Ln(`?9> zp2{?}mB_@@CM|9lRl&(K`L3wvSWSl4$mb^kUfvN8`79|FFA$dzPb8Xj>s(?zMBSzm zk?6?ZxP>+_$glgWr`H?Q^qn)UYsi7qK zF&dA#&W0Eh*P9{F$b(oM5G|kKnyqL0A3ef9F4J#`45Kovoxzkzh5<{c@Z=^GzTM4CX@)odu*b)vR29#kZm z;CGJhAGuS9Jk_lNa7|P|^Uv3w3_u8QJyv}b5r~9Z>$`iTj}nG^6%F0uE%bBd3}_GO z&gw5MAKKWJKD-(Erkn1~Gq~57^+9{TFPeAx)YM0Wykd@p1WA@eJ#p1w{FW5o1#nZndP+M(TmsL1#s(-(gN1@Ha6CiDXyQOV^iMIszXiEF@D6FiQT z*QzfHO)84R?^AE?J33nk&%|q@VQ~#pzslp<4xQzi^7IWoqQMB0B2Ug32rKnNf9%OH z7VUARgb#q)MvYnY^prZ&z~W(P#}#Z^}&w{(Y1fNkOpr1xo)ww*yaOgm>!X zF%*OD@yE`lF`95GR&q3OXn+6y*hq4nK}59VwrcfWw2Ae5smWZaL~X=daS!$qtAo|) zAoD6{XVTwWJih&dXK<{FdynJ&@$j!Palxk`&T5Uo;~+8u4A*YrBa!T&7^x;(b-PRgW*j7E?vnZ)XIG^E*b}oQ1KXEH1YU-^vq*& zDnRZ4qv2Fr!r9Q>JAB65?t7|-XZVp(AyXh7tFiTv{Tj~;u_Va&pF12W1%`%snjoshocj&l%3^|4Qe;q9nw7_&63k+hbvd*X%^?Z%fg6WF+!hpcQzWp~|H)Sa)5v zlAKCDS4EJk>#5@3D+e5kkGWUxz5B+Mw9KyW$r@(u zLkpL_cSD8Cf$Qz`gRzPMgqGKKm*4@WW8@6Io`koCBu@|}xgr144yqg;it`jxld*2T zzhTAS@6Ta?mC${#Yy|>%%_RSD!pG083bFtf*xpGd=w6|~G*jUcdRp^4LG7azD$@sr zr6ROeN_~pcHX^jx9xmxRgM!YOf2d8K=k!P8L8$9x$ooH+Rz2w&HnpOuopfRT_dPJ6 z0R?vJ?ms;DKq<+f+wD8ix^hxZ@0IrF3*21Qt4o*03WM>LrH4CF@$4^&HLg zR`%5^hpH!t{w5{aVE-O!CPoL}p9)w!f#l>GeHAe4f~)tUd@oW0{*#gar@^lbyz=KT zR#^aG{dyZDk+@BBj!eVZnntEnOc|u7K5i>vUc(iic8=YXX0*HAze)4TGOx0@)50(> zTUN3dKPnUKr`RTV2YFvjVAg3-0S$TEm^Z+R;J@2tC^g83sY)XPKvm;AFPeJH5dWg1 zIMVbulAMc%lxuEBd+h_ID~=3~g-E^sjRqbXxq_o(&XeNBaM)QyWd;>fKe#Ua_lxLn ziV4O9PH+tj^d?Nwgjz&ppMFtjh2G)t$0KcbA%W3V9@QeQBMYI?Ptq+uocz%fX-^N6 z3Rh=;_X?5Hefsz5zY~Iw_G?Y&Pzijttml$4_%808(goH(KU*7a_m|1#?=Kd1$=WuB zE@|sn!an;jiqS_=3ZosSBsEsd&}K)%YDX>n^8Qw9{$`P~WI>zLp9yC(aQS^J2Y%t< z&wgG$yDBN+S84TjH6Dj6y3yI@76zmD3^!w+B4RB=Y0(aaYoa%b@L_Hzmg)a~HaP}Q z)W}40$^vVnudA5Ph}oW5lUjc~SKHa0_NxRderQT}mHHI&T!RWs6H|LY#c%l{!7FQO)PO(TEm|LpnyPJGEMRG-RM zt*Aqk$@rL~&VfQg&0q=R>LF)k<-g%TnnxR^;Y+4PxeONY+yEe-=PMI9QNs zs?efq;8Ov^!l#(X{r&s5GiYS1*TEdznW|JoQ3nJ99UV8m<=@`bh|~qOO~pirz9?qr zM=GY|=Ra4b|D1#<;xf)*(5nL=ruTZ$xLq~9+{ZWgXIWbQ5;Q(L1A+Lo@;{j4J*D2Zh+KdYskk5N(sT*qk_=nW54HP z|L%9-U`YUv7f$l-$PFLzRs5iv$sFh(A4n{#IkNfSZqL+~hwK2L++*bw{{7{C5YEQm z9tAZg<7Xf8GzH-&!%FpsU-=N+QB~tSOthxnhb;H46Rf#6`<&e*>;?s^F#nt<@r;~G z8u7?b^nW(r@fG&s92YhH-vRCh15ENJy=s@-MLzcK{0}Xz-(!WJEigLC^uW#i5?WHG z2J-&6%loRtSfv;08X6jTN*748cS?~=9#G-DCOxL;L?_O!(mr9ar@fAJp+1$rTtAvh z-x`Ns@pO$!jvg!pc|x%0FK@rnk$bTubzB0g7W56TR6lTUSAqmTpxX~ z?VV!Kb+d!n)mO_INENy6x6i3Iu)Q=-AjwcZ-mxdmm3ExKA$n94`ylB3=41x6?ueyc zMzQDZutK;^;&s0o{J9Jzxfao9`pd%62DT=KLQ{q@!n`Q{58WWOyXEz0C)dNn!#7B- z?C*^JI)&+ISfH96j7;_$6gx=(8p+q&q^pxMk*IZ*{REW&19b$L@6|bOmFJ7o=9>$N z+J)fz=ydN_dOx|+^W&K(W&td$BA~}`0FixSYAQ|FgyWdkfY2IhbJ>!(7p1^{xE%ko z7oeZtQqF^%=}3{jh#Tq4Ye13tB;>L>aRzERh#*RX^=~e$;-^TAWPa;7eed77iBoGp z?Z)m0ct?{IXkXhfif@N9yY~z^0)6zks$sR2Zwry-`%VlXZaI$lk#1w~u<$N>Qg;15eKt%?8j*q zG!hT;xXOyg`-Nt)%%0`1agfTv?{q!MKbxECM>cx8-!v^id_^*G@qWE#NMF_=*? z5pmNydpHW_2Xkn?dY$fjZhax=p6Rn3E4xMc-Y?{?rXySt36Lg_P{uezh6{UL3jm!M z4+c^A?gfBa_SzITS|sW_!m&nxrd77lV$a!Q(mc^4FdJBO^?>H$qF?5Vs5W6xAlY)p zc>=7KxJEm*&{qA;DdDZz(c&A%>%fM5^|J%!))iKRBVdDyIRn!4xs6GpAK1VT0CWs% zWxCW<7EXb5uQmSa32-iOH-g{E2)`IN%Z~|XKNhvEh7m?MkjPcYxLT)^TqZ~~gYI8u zmd^qT3kSJzH%o4DH>2+cl>`KYBw^KJs#SFEUmI=ZI>^Z1FjOGN1rI;)k{f9x1?)W= z?)aeTIEXUVx|%-*(*aAuq`Iw%b{-)m5ZW8q8t{^`U!hk$_ zN}_17YwOj#&3F1I>7`sC0`yk>CYj6y$7&PXZzrt^!W_{aL+8l^Z>1ZC`vng&VSf&U zY$t!Z=!3vpnwvv$jelqr!+ zy9@{l>H`fu%h3|oM5#Y+YuAbbWOa(Uo(#^{3Fy7~$^}DF2z@_InxLgDoW-f=Q*`pP zz@E?iuU(skS}9D2mZRIEVP{=wCN~7?Qh;oHsoaS@7Mn6AOm47OO-LUOVJxvtmhfxh ztU}I3@XJup8$PE%g};(d9{OLHe|~DW<<)txf>?X{e{ZJg8^9CZUI#8a(dtHja`pgfPOm|&#*!QW#RAWU3^Q~maw zbq(ktf_KMsOxW$e4q5oWI+!qx?g4Z+Q%ZW*3F9h0({h3lz&3X9nd~ep02%kW*VUDr zn7N=cWs-thC)oUrWrk0c1r@6xTH|%7+lobx^wLfOeWJ2rYI#{Z#pVs~Su+b@8_TCE zYFXrAVa0)p(d3gX4W(tQ=3(WC*9~Vhl!HXTKZKyqPxE>F+Om$SegSRoG z?_hkvTQ*-!^2Y)e?VlSz;+*JTO2Yro4WJ1p6|@9beMX<*LOCzP`6MuK1D}B~;!#4Y z)zV8xIML|}Dr!hibZ;1vj&Tezg5n!o7uD|wPXf^4EIEt~#nryz-loGp1K^9vMU{Y~ zmMF*l4oUNpf3Aqozyy2+m^ZO+&fj5tJw zMw+DdUqg|A;+fd}WL%GQFUC=?VBnph`vR7iU7joV*%Eamomkz+m6$4-j}lErdFc1N z|FmqyJSfFQiiG-aUNjRrB+$bi#+XNBHf{Q#obNS;-^+lFf67xnEih_+4+V6P@_FxMds!kedo-&q0xLRX{+=w)r{H^thO+56l~HdB2h+^^M++vw zwI)#sg1}&?-;lJQ()W@Pkd65o0J8L0jUs{8V>$L%McSgVn7@jz^R6T{2oWA?t9ves$R+&ue2R68L)0SdfOiIC48UMD~&dB@I)|Vd+fxqA9ZB~|;m-k*` zON4=fm-YZz9~Fcn5;=(V#qZ|&7@{If?s7&}L`d`JHohanCD@mz`b$jX&O30&qL20! zZ_P`28zh}4d7nnGym}aC9$^xMG)Ze)X3Is$)a1y)nSJ#tTqA9p^FAkN!ytxZ){jV! z#fMCLK;4dGhoOd{vx^LvoJp31e2S=T0Q}BK(u{-~zLqO$-t<8A4msxb2VR@Se8b*aobSw2kzb%#D3ww*e}uYG(7MMdtSmDgq7Jd z$0|lP-)h9=fr8A(ruVjRP{R=ZdMa z%2)~gA&7DwM&jg16YDwN(=If6Lx@i2zE5AUQ%9=gsOtB4eUn1;)hbtu<(&d`A|yth z&3I9I9?_dQ-wQht!qQt=Xy^vQ##H5?P}b$ll!oCd1N9>%0H%9Qjml3B996skn%zcI z+ezjx;5gIhybvXlY@1nK3FvelKPw|~t~M6;#YNVK_}9#@vzyP&=Pp`Y4hXjN6{y2K zhFV!}Wn&iidTh%~$L>Iv`8~d_8qm#imY_(UCK0|G{;Kp`CGP-O916;#Em^IKP^JSB zA8iN5nnF1zKcoMXeqzZy!SCPnVbVE?$a;Sxx6trLt;V*L45H86u{o|VJmvRi&o#Bo zkn|trmYr{44&B%@wP+y&HR_9F!{6)ON`0t14)*~tcxb?sx}|E!Ix$ZRW7d92ujCk@ zeE^s;j-OG7!ykTWs2H3|2>$le_FI+?p5j z&bzvo`_v(caxu{uv!SJBl2Lk*xaH(7 zn$yj&R?kecVj_%XF8NXblX>nfC|0NpcItB{x5m4~WDO4hcW}d%q57N6j2D4DfaqebK(KtW_?= zi8vM9rH>U{f<~|$249mIFg`0c`S8l|+r4Jq#x`QTA*v?TpJ<%E@;@s97n#UgsJ|nQ zUSAQI%^K?RO{eMK80CMV6>*)&)qd*INo6UhgE|!s0I_DO6%P3Hwz}V1=rrpJ3vOpFyzKr;CMg6(_h02(g<7w#54E4W21TR?oBq?{75~~sBf3B z1{qL40%^eyar%>GD?imX+g!@yStOW7%fVY9`G!Qt_OlTo8 z@gKvs6bq9RmE6?+`1g8ElHotc^+)MXlWOdRjQp5N&y`Wdmgf-`?bF9jh2j{@*|J=y z&XC7TE<;FgQej$>y^e6iqP%k#KNd75PjpRs?KawlRJqN0uoGw ziVg3@&rjay^xRn2iNZRO+m zdWPJ?f9(HcuQX`UJ)4L4MlN1>>{9Oa$Gz{0G`}ocKaGuA*v%anEuLsHU=(}Wg^x0p zb9`Z3`3SHj(>~Y(6D{~y{|-{ok;e`FnHc6hQBiEXiC9@N>ugS%$4-#KaT&YUDo|EPxSMcM&{+$ec3a zKmyROB|%r$FZ)H;ln8SzZQme&N|IEODrIv}71MC^K*sB?Y)U+2y~YLf^h=w2i&V?L zf2zzR&PtSe*b*+>K21=B6RDRJfP)qQKWi9X2yOi8?fA2zMhheVjZq;k$i8tPE@|WU zpIt&T0yP^7z-&mrkV#+3X0h3u71mH%68;dPK!E7Nm$v<9gWNs9fh4s8PKK=_Uc+88 zJP`?fD&}?k2Zz7pIZ&{iYw=t#HNO4z*z5iVkSx@1K=C0l;y&j!pC`|B9U3*SFArY| zErv2-!q`FLvnuE=4&6>nS{kRA=bw`5(XILB=9ceRU4lSFYKPV{D?TIY-3R(TCuU3f zWZhJpqe-pdSW5w1t`^S(fi3cOVbLu5rvZ#{jLTmVcU|A3V+6M|W}4tHex7U4^VJn& zEmdh5w`Hq2%~E4Q;H?cLY&RCi2zdmJ*tisN3jd&|#OWfM0(qim2w-Mo-DS^Cc~ZuB zn%g=r=I3`oLYwo?Zjt`dgD$g@>p#22cUiEPdRlnSE2z zw>u%Zhqe53@luyeXarRQk;XeZ%R3)RDLHk_KIgWnVWTNJmXPIVp)uZdm4DXaj`C61 z?j9Di&jA%p2T1X=CXmWKem!NcmR$^-PoG0Sxa5etv%T^+8ti+wR z!8pIFB88;di?l~5De89}nc?r`WrdrQ2X0casrBO1a~?Q~LGRvxeYDaMbT$xT-qWrH zS7fRg2cs4AeY%rdmCk5CzCWs4N6nv2H^v!ktL?7;1Z!_mK6vSAa{{fkhGr7)+}dfE zHoRLS`M7pjDsRux+Y3~2v4T)!1#_)f7X%AiI~cJG8Ga2H1s9}xj@}$=0ee|!ghTnM z&fzVDN(Kh$c9REfgc1|=x4#h3B>`G8#r0PGQT&5Kb{8@PDGnpt zU%>Hs`zg{3$mZlw4(mQiax_4Y<-EF7$inL9wx~2WuLPzKlln^UFQ=WNMH1_)lh?X} z@F;5{HHH$Dz@#OU=9%bo%F9_`+kPFjBn{fre3adv{Vja0FuYQQ=kg{JpNZ&0xDI3= z9;}e*G4@q3Lhmn!1$%}yL9S*{V2FY3DCvGpus}-+GEBF72Q@sVgJyNe~w3Z zc)L*p`f;0ee%fl0iMSL_5)>g%NDE^qzsswP2a&p^S-8<}M;MS{CS-Q@P?w=|-UmoI zd(a~&D(xphQmYrp_$0G^L1Pn?FwpEugHwm`{8nMJ#>QFDVMOjR2rU1(7`{h!7Y@GK zz5iu~>s?Rrab$kYb@vH#rCo;>OZ%u$#}dd-KR^Ah0g_hllzzlY0yVvpm?s=fXxfT>PB>5L`=xGBTr&eI3zCKRm|)}yG( zOvNZL#ye{8p2oUlEy6LfJ_e~Rt3i;1kVhZR%`yf_5K!fao@i?cKLc6LqVS|9 zIPs`7YpFqDhVrQ^svf5RK9xr9k2gMppm(Pvn;J$2e+v}a9Q3@LdJGLoQ2ao2JP6~L zf}XDGJAMKTX1|@s>BKy{`36OqE_Ui2lDQsm>h&^&O@p6u^0F4>A^FOWzCx_$`lt38 z-fG_+>j5I&jmGoz#)^E$Ns~#ZwiV+DNY%u_)J2@9Hog}wX%zkU^*C2sk&Dv@%CN{* zl%CtxYzvi-{sopKekw}_@A95=n#qr=X@za-_o6;pcGrqy_PR?w^`yzapRAPlM8&K| zMklOZ(6J~}?{NJPC`>TFfy9|_7Dkh6SykuYaIig|tI`ao;M`LY6OtKG5$yQvme1iE zW*C5N}RvdG%Q=3CG^(^jWO2lZM#O9m% zg6L8}7YXA?lmwd*y#|HDEaRCvtHQ#(pZtFF=2l4Jve*f1*@s$D=Z7hCRR#5XPiovQ2~{|7BGRtFi7DMSZf9h?MBIYIv{=Wm{SiLe*+S}D~- zYwUR2(iazeQ8ZwB#hUiSf}$!(0%$QzRQ2gZ5MNXtymH@J#rvZ)t*za9^syjgXeSJ~UR@GpE!=|^PA@OG!jGyOuI;bIa z^R0w}4IB3b!x&U?Q2ktCo)25WIqpzqma=Lw&cx$r({iPd-e6yowuU1Zst6yH=pOKL z_!O5WfVvkRW^Y|J@_6y6s$?EW4y~hq4H$56CJuu#il?Dko=BEMLcn~p_n%DM1vTufzK4Mbp8r7Ve*wCt!x+%bZ$@T_d z%Wni=Pa|CL61mvR>1sP`Ddo~+(~pjE;|^GAwCVJ7=kOimro!^iw`jj3)haALnO{%8 zDZ%WaEn$8-R zl6DxsR#sQ1x;pH`Idv*Z66>+vM$_VI0f!B)Node(4~(kyPPJkXO3fTwlJyG0F%yC9 zLl5Yvz!D+f0Sy*a>c5SaU~Y+wC0$2Q2NrMay?H($Z;;%=4P>ebG}X+qRHGYai8F~9 zXv?UK9OHw~qoTN_P6IHVG(#l|FcZmag!*$teB;F4dKsp!-iWE+_Hq7fJ8+<*xusrQ zdS~N2p+f9yW5_|X$XL&f7-@@Jcz$kdXe=`By;k!Gi{K5dut$bZ?f_{Ut)hv7vy0iu zUOw|$TXiF8MSI-s43+qVhZkN5^c-(I$ZIc--ETL;mf}8bfy|&myC-VXOAhWZVCXs` zk_xH3J!6L}i=8;o>l~LN;ghme)^I~vc-6%-I)$+t{}EAKieQ)`E4&<4jaCY)%)N}7 zPF4K2p;M2`yj!c4T*Zb>`&fQV@wFgaPYn~yQ`QZBN(#u1e)v!8qUqKkC}Pil0#1Oo zDCO!}l@{Dgqkd2FGl&&ti`pa>v}?RU4)Ngfa1a3;D7Vw1-o-prPU+_9qG7U3bqf9i z^a#5V*WIy9E7uo_{jCe#l%|}(jpHA?EK!fL+z1$6wtJYwZo{E1D?BgTFq917bc<2U zW`-e#OwOwE7hYSvm>ExY_CN-q8^m-Ll+rXwVqR5SRhYdZJ2lcM%O#OW1rE(NZLX%% zEE?c5nQnY=aIg%jyOoFsaSW0~!W&<+mviD(;=r$%IexPI8_5*Vyn-?p{75S@wu%i$ zM_b}|n9~C!8B;C{5pW0d`2*nubKD=J>V2n&q~q`{v>dHsgJU5&cVvK$-ov}Hj%a=* z@b~=DK~mA82Xa*0M*e#5e`y{+VRK=i01NPWkfb0Ku@lSHy`yD_<3+a+3K=HSZ}htZlYB7%uJ5V`5cfN~Y6_ex3hQl5&w60bE+`LIsTmCo*Gr?>h@I!~%F_~7^U zXzmN0;QXDNbTQ5A*`~30!W1xx%8q78bKRF-48D6if0b#b=lO}%;bGNDgB;$?-nsv` z!=ZS!Y!|Kau=xrJI2P^5OHrAPCT<15mkxdfT6MS{zCnCZNDQ``uYk!aHjZ;dFw$Qe zINPxrw3A}Q64}Bv%TGXbdUNoOn?Z3!31R{ zSCugQ)MBQkZ0;Nsfpb7v{NQNZP!Y65u&}cuY!~I`y$}1V7?6)Dcu}^moK~4Mix?al zb#A*5lpkRIx3rKwbkzmmBKisVq9}yirA3)LA52mNflOQ?NJ)=8uuYCMehSh@+iji=oxv_mWC$w#*gY#z zxV=AikasfM(Weyy&L2E>i)^?y#V%2ij*j21uM+O%cX40J&QW=x z-`^YezFG10j>=1MD@M?MdlYf7dOTLQ)cS1j-G=yCR!+vkMF&RI`-sBmU^7G=iw68b z3=+EkcHXzxOwXzCu3Z;+?IN5%;xB*CyPva+J1`v0XFTfhN}Qe3y1$}K$MuGA=Gz;Q zqQh=JwWS$+T62qFXoP(B!6>-f5Do}484?cZgq+rG7L}Km7$raX@#o7q0IQQXe6?vI zDKu^iwtmVC>|lPrOnWP2bIpa6p=ZP}DB3TRaNE&41BY~l4vM;5F9!2VhJ)N@UyA}d z*8!loG~0ba-(>yB=P)N4U8x8*Z!8)W(f#LMxWq87_gfRg1|t{`u(qr1kFL|GdCfw* z!e2z&0lI)=z$uUWp3(HIO<=3Sip$??e*OrG0H~xKV6y`&wl6NX=U8bK zTB0_&zJKRNt;9V=!q4|PETwi0A&ML09}jX!6&kzun|3ItA?wu;&XZhKolXBPmbb_KctORr?w%@B624uSt8nJ@}xe zy-dy_`iWe*{h4FwYR&AyyxQr7L;7SM-TR84v`z`1>v?t4akY1Ktg(ps^UL<|vqwd^i$L%=AJo zLwqbs=Y=~cxvc=1K~=@bNV6D_-o<5Pa0$%0XE$5tZve9Yu_BD4RMuaz+z5_t z%AX$;@!IG&{s0zZ^lgq$&|BFQlAd~@97MqkudQ1SSUDojPfd$o5vXDzmilfv;Vb45 z4c&loivjY9WaX_x?>#v7N@*8eIf5r2NSQ$UBp!Jl5}gS(1cH9#PB@{jY6Err{ofEp_jcl0hOS% zZRH0M02zws5HfZVTzr95pv+E<9tLUZEc$95A!GrlNBtb5#0+5bMkf-&1V3y-8u|%| zuHY~$sG737Nsjrd$^tQe&`+iefnAc;5d zQQ0^fG;sj}v+0Er{Io?;3Za}tSVSc>IKIkCtVMZ2_){&s7!>sO_%uI#fCM0FMF6bH-_RB1om+5> zF`g1$sg|VG5!%Zuagg3H>rYWb2&GCC1bJgsh#gOu+HKPPYzBDo=nF3tF>IH! zvnQ}U8>GZqMMbG+YbPZ3la3dRqmdAN*6H(M;>~T+=E}aepKqtB4SZ%Y8;^MDHO2C) zJ0@7dgErUm@wFmY`0y_&5FHy`vYNEjk&uYP@PE>eHigC5R)u_~>JwkTB2A+1bBOs~ zx=#<{O&Q}76>#(!4dA!pxL)$mo~PI;&+|S4;mqJwIQiEQhBBWES7tjywi3@_a0sGD zVuiF#2;oya!Eu{?pLmB>=X|~(%CfVB`|Qu?%WcL`S)$n9`wYPiz+u?cO%U4`)H`XV zlcD%9!G(qrQMOn9nnVSmL@MHEX49>mw)Aq2a4~E|*E=Dy0vGNVnL~i09&H{`?1J+% z@jV!(1yYbDJ^pzSeBrB_P8=m}SHSfA!VP2YK;CjRH0_ZAMZOEZ};;6mlmZ=s}ASM;Wa!je5)JM z$A$7$G~r`)#{NHRzIv79MR^)R6&qDEz2t^F`G6T{*;VwMxl-amhjH%-Wr2f{ zn*!F;vK!WXix@-KfXVxK(vrk#jX}Mn=6Bv_(J_YW&bt~>vr!Cc43dvLz_Ci(-|zB= zC0&sECh-iYlSD=M7iLQNyY-IE2K%eJ(xd~D8NrM+@jH>hm{ApTfGJLM*SenjyDb(EoxRooxh+O9B=4_WVm#;iniLc~? z=AxjA>je{W0OSx(5?YBw{}{6E6_`4IZX)!<+_LNGa1+tm@-D1iqDIx?>L|PT?TtAP zc&M<&$orTBW`}u7F|ExChB=onRdUAqF<1_#?qfW0`gumGH}uHzCwtjuuBGVq15e}^ zDZB%7RQ_OP;+bc3aYK~s;ls#J1#ma7jlxQj5vySHT$3|<9EyW{m4vjDPv?GQ(c1r%do5Rd{l}c$Z1L_7gP^V)L($zxAHA!t&Wt4qiLQuaYre&W zQt_d<8;>wNLftywgeCmBQxE8eb>AWE=80oAC{RTw)j&CKkGiP7fE3Z zYu1mO@#zyCP&_l%-IR|nXeM|KBt3zTcUrn4?J1+27Pcrwq^)t7Ym(-fY;_}76ydF? zM52iD3lWaZk?o!jN2X$6(>X((Bwm|7ZR1yrCW_(EP)^}Qxd@1!T8-oIXEhk;?)*>m%^BEqf*4z4Ixc_b~r}_XuL8S;q(L}8CbB29i7j2Ztl4Job zeO@?eAb6$-#_NpvMM-#EqFzKOb zl80D&DV78$S-VP3>v{8jjd@J&I(*JGTP2Q+>Av7u(-#*y`ihFc*VcM}ZFgz&w$^43 z&k%5^n8>UH1(#+7cpAB108xj}ldM+HHcN7og$!EKK}~k}=9c7rxa$H5)mtg*ty}5H z=%2Z0?!(f3E3N!T4}50$NTMw$k%iwq8PKWI$~w8Pe-dn^`%-$as%(;Ti|6w=iUFi? z7cl^c?omS@gg`QPQMlIgz#DWoF?#&VfQ$a=C9K()?&mZL*TQ{|-fCw3Lo6e6^s|di z64M1Yf5-4jErtG<1%1JVPPA7o5%Z}Iy&iiC{_Bw+jpVX!5URd|h#j7<^RVNyIZtLj zo0FU1Qb19di^&^B3}i@uv9rU@a^J-{Ss*)$yyTy7_CWJbn}2&nU%`W;{!#MJp3p7- z-IGXwJ{%~rDhYz@rNOKs4Ir@eXSQru{$&9~ta?l?bGlXcfEzf9nY4F)kVE986>Nc8 z&k4%<(P9sHTaMEW_kDiK{*VizTolH^pq>A^7wB^ft)58l!?#RrFve3*H_822vzi&v z;jv1*J0#tIOAyZ%kyEEfxiiqzibg{iA?*7n031dJfURM(F>;O5nvjq?BYHSU3o<hIJub@|ojw9*DS?mBS^P>o;X2(m!Jneu`%8n0YaBEFn#X0B5w?4W zYSPEOZz?xS3`uS&AR)mz-z7OuS$4Zj>i^b-&Z3^PCAIry+K$3?N?U<-v-U9KJDF!> zc~5kg$Fg20*-cSe>2=Po?60Ej|2E$ZZ%W|Aj1D4kPiL&NxV4#qH$pTMr-UGRy zLN}?_`#iaRDfTl?V-wnM;>YBMGlagrC1km}I62ue{eI=%YReU(+rar&a~y*%Aw?5| zrh@-yMD>{EmFYBqZJ&X>OW+EreiML=Jf;)tNH1u3(m`Z&l9SH&&Fn&HQK(?|}YqF5NvHTYOcoud{WgA@_kKBT#C}+!{ z!KUb}oFmJciQ#^YnZcigVcivWOIztirdZuic_iB&A%o!GVo0bHb*;^5m41{- zW~yxqVWJqPc+7cWg4vV;b|a4{=mv?S)A$2EsGa2)tDy=JRmI_^RME=Q%CKSssr75J6yk+xAaCRD${0?~S>6#5 z6~S=dgz2y+hlX1U;e>#XT2B39kjvIqG@tp9^Sw-{m5>T3^ylgZ!#j80e3EI*RiQwe ztk_xV*Ph}|E|~Btg0k2K1zUY{hmhK|M-ySR5OJL1=_u82{zjuQ2^kLIn$YS}KF9{b zkL z1daTI@TYqWx=nX~&jTnD7q;rt(7dlseFQo!gfA&SPzu*n9Zyv&16ZE?Ly^w1Z-2(X|3qPqL7{R=Ks6vq>DV z(@11XIP;sQ&(#bo!qF6eU%ht)SKE<1fM*SJ zdpqYLj^^7_PZ-4?^7I}(6g)MH;uktn)>pgkHUxue=UtOMm^8(9js(JAZ@S6bHJL_# zG-AvWn#7ZzALsJL37dy4*bBKT7AJogU@r!>zSM!Roa#@diDmDE8C4JB>QqYR$aWT= zyJE5!e|~N5{bz#|+UCFpS&%aP8OLr9rX^1`Cjp2!jM?)FvZdt+2pCw-=^`ofRLAyI zOpKxp3X-7E8IX8<)E{qCw}E2>!(e%I2L%%~5e()&B~i(ckEL2m20(u6wA*kdgS96d zptwKKM=v_)I zaTl9`K?OSR9ywTRvWHN|!en`35Tr@{7h_gf57M$R9u-({B`M@xa}xy4va<(9l>Mnp zjK9>n10gEP^Lb0_duy!%$y5SVnrBpsmmt}is#7`K6?g{rRAbWTc>MUWT=dY;5dYGX zA~0amTl!O8HSRnQk+C%z0%XLX4yGC=cy1aVjdfX%Od%fBvpu2+vu6)S;*2mcWn)qm z;<<7|a!%FqaCl_4lmf^kk8MUeRY+q?6P zK9I0b@T6zRaetf^qdkPRU=9f*07I1T5w3h;N$}^F-6!&6>n&@29x&>&613fEYBjG`vAY5RW3| zySMZQi>M!XMECdfl*TB`$6OM0!_ZjWKSZ=-W<&lSgL+}?fyujeG>{muIUTeyI#l|e z+huLf!_zk+sHOh!=CC;F)86BQnJ$CGH_wTD~`WlHugcNP_Rf-LZYJ2;Yrm90)Dvl=)=1KWAT^RE|$S8{WVk*{rq^v z##n88<++^#f(I+01d;AGJsu2v3MTFkAoZO6h*8cq@Ry98?O&O-rD~l&(W*8CR86@8 zs2M8W)`)hG4I<~8;XjrCywV*5b%UksM5!v^T2f2{vfZ9*T-Q;Mq0Olb!~azhOrWX_7=N)xp*>=U0&x{ z#RV1T#RPBx@ze_^=t(0{E54n>(tj4i2=v1(s!iJf@eH3y(_8H>yt|tG z9~qhy{lOV$&vL_NSPM%{a>~BElX1>UbJ(U}Wp{o$xm2=CcKvSA*jmkuoIodg=;v}J z@=6E>Z`0o3T_z8*B22!&YAsQ_@vIJON zqtBH#C7PeVGzmcUMk=^jTQA#^JDV1l3JLD965FZ>c^F2>f7PO4ykUUTK9)1mRu7~x zrjf}J__Cbh{$+W2Np(4nQ8m};+uwIuSVP6e<89jKcJ>i; z;o{Xxk?Cg!-fMy@-Bc5$ot-(I9y0bHrFQ$6^*vQ-Hb?oUcpealW&mM*xFU*;7%6_c zGnxyZi@+(wAy{@aCl>x6J(m9_sbt)?DF}m5Z8j`Esep#lia1F*J3Ol zeGm#}LW=Bwx?6FH#DlHR)Y?qR40WPcA7$*@lsoN(zZgxFri-t#GQ;P_PK#hg>gc^! zG-6?9+d9t<1Ipyh2Bf>$LvW8RKhr#3J4L92+eZ9&S7THKG9&dzhKY&sS4#dI+1dWk zhfFnje`?j`>cCGW4|B*ML<5EaT(?zi8CY20NW3#)ZtUajW=T(gk{C20rIS+1bmMSY zlPOoz<|ky)c=|e1febKePykIN!w&!;8vvj|EcG*$H=P7?>mq!5m9}%vf;iCsV0an?c)jiA={5-2% zv55797Js0||GU5-z~uAA;8f(*a`SV8cI%CL>uP4OasdC+C_1%|n*uY40hRpR_S^h( ze(_(He??=I$k4^LY;SY?qhPKq5kM;*EAY{7bM1%91Abtz4Q^EGSpP-Ae*V8vupd@w z-HJEf)^cp4b$t%4RGk-&Hz?2S&f|vWDFx;J6wk7KAHQ3g8p~7j$&t4|eO2QMdfXY~ zQg{3WMbpWw>OC$o00SsSKq-NZN=e6SWjq?UA zY#%e^*-h@JpbLLhMfZCF3}^qt3E0~5%v-+U)V0>ERuk;)!Vh=~3U!N^ZipW@gc{XA z*PRhmUe;BcCr9rSvUI|=LKP#^FPBt*!a#m>ob=JdF)oMZUrHZd;G&88G|Nq82WItx z^fSaw#GWp6c!3(v#Bt+UEW7|7)%J?&IXN1G5E3C|LZsdgT$l^?v(I#ME-XilsDiFl zpLFb%HJ`KyRF+xDeec|We_kAt3=?G2^hks+n9iOR^T+Z}ZM3f>_bk$O}l8_gefGYEJc#sO5bj0=~m2MI* zyOw|OOa;)WYp=o!|Ng*%-470Lp3ePl6h5y4nCnwQV9JI(l3<3(qG9bzD`8uRg~Z$` z7lBhjtM`^1l zLm8yu;23uH#bSqa2T~%(HMA5ui)hwrz4o3JL7O&aIot# zyM6Hydh+6`>ZbhHG4Bb}+}X}9XN}9vRicAXQTEZUR;ZlMMeSRCc$40m=I@4YgkZ8Y ztr$V?qL`(WD+Y@dC-DS23x#EN(d{{OabKSL=9Z8)Ym-d`N%h|5{cV2U^p*^H*+8l( zmyvOzdJ@w&TU1Jdvf;w626|1_o}9D^hudnVWA_+JP3GkN26cou-`iY6t3E$J9<8X= zi!;BIoP1#r_^L)=<<71c3`>T-_r>iXX6YikouFQui4gA0)sN%TK*2InyKcMjqgpf> zv1|HI(wC9!jQSG6KZJKkqcSh`U+8?c5$#6w=kt4?#Dg zqHLtaj}7Q9!PS}7d2KaUL05Pae8BoBc8D~l8Gg&%#xdgRGVoA9xk_Khdc}H|=w|$| zI^PW1>SiH2?Q!5N%TwuMS)}V^{4KO*>Yywb-yHEB>xF<$slwhXxoWseiD0d&G8gHa zzl-(;N<%~|&u6)IoJPPnrGgYE>tx`AFqZfa^1$oyB~ZAm|pCjpdV9Dw6C3!-sv>kxVPW3a5IS_#heXnUH=7KPUHu5ehI59=rm z;L_j_=0JarGu!V6dEVyvf@uHSc}K=P}0InKU;6?NER7nhruFo}~m- zSDW65f>8=o+MnA4UwSs{FiGq~h=8h%A9TB}8;qsgYVf{;a6NcGRp$<^tw&ao?vuS7 zx%+_hhjh%xXI;Pw0)*G7ygJ~3lsQ(f;q4OMkL6~4kA$-Wumsu-)2Tj3c%jCGn5O1+ zNZPut4?es2U2|Cb#xR+&uqDGbB9*OvH1B6F_CR!|2ojHi$%a&6OBHDVQb zLxfTC&LmIQHjgfW=T({^e$!wtEVZvkrj@G~gM#PU!mdo0yEE9!&bV&Ih-dT1(^TRF?xI)4dm zm%LkQ*VtYV<2sR!6>u(OVn7J90jAN4$TV9F4C~l(0iy`g9YWb5Y`b7jb+~rTOm=o( z;;qN&p21YHaqxoN5ztYIM5?FXBYyt-HL!iku6ZPQL@Db z$qBpXM{#nG;?D&=kE3B0=i$%=8?DHB6w#NHK|u8XJ4ooJ$%(O96D)UkSgaViQy)vg zdu*wx={IwhxpX8KNck1G2v91=H%JC&rYY3kuD2Y2!D(Q8 zm$t$aD^2_5qCJ(u8u-|^f!+?nq@NrxXZmRnI3X&?!-L~}7ZtQKK3~?XPn8#d0g9C( zwV2|RA;3D=p7GLmOWK}w;;S7uBsfMiP0!MoS>sQ^$C7j|BS~eqOypED8<9 z5HwmR%Q0G>+}@2A+rhqUpBYLn>1Qc?+@>}OQ)A#$oY6KsnbsweDL!i^*%a!UavXz{ zw{W|-82ox7=bO-bC#QO%a*b=c9wI0WwDrlXBpQfx9<4-5(`;!>C|941l~2x6LnphU zP1_>o@$R=f8$r4Q6!8^08Zmp&2cg+k>Cx=@FS5HE2yj(=b z$iVm>Z8gp8Yft?R^BDKa0ZdlMtHmt)nhDdjuETYbNnw(w6(J;eB^UMj<>H+-kKw!9 zdM-01CRJb41az9Dv+ki%Rk~SNkkb0g@qvX2^h{Oh zY4s0YO1l7nDHrs3YdMmtaC0~_{OH$DMh3}+;IapQO{h=m*4&*ZZM$>zbAo_(u>73L z?J1Z+r}H?+rB2^JcSi#zr+ykY$NRX^cw^tZ+S%~Dj_wgLRohAo*G>1^bdJHY`l$gf zU9qBzdR5Etn;+l2a1nD|AydIthezz2F1pWPw3fqDzwwuj_xDGHhiw=UkEPm4YTzID z?@Mr5yca9-H)=+W;VWP)<}G=CVlXG4g&HGo^je`2LbE3#2h;%M_{kOP2A9u!Q?!8RH^kwlb)4yNnmXq$~i<9ct{Sr(lKraF8w~QRmX{L`XjSHcx#Y(8Y#2y zY0rS0rcF7L;>lL!Cl^FwSJ3<#fM!|G;uHf|Uy2K(A|I5}x4HvB#VxM`PWeceTSgcr z_az|J>~rXRv8QLA`vN8raU|wFnU~Qr^qtFgPZw6lII73TACv5STNKyjv+%+XfQdSEJ%!fUs{FL;rs(w7&_|n5wV&fynRtlNJhqiKM1Zxo#-da?rFko`i$b<+ zzdy42r_l0&r`+AG4P>so$^sg!KHQ3wmTo6IGtP(WgUdI!^~#F>y4pnFTY^}>Cnl<0 zc9-o{tv*l5JQYMMXK18FQ)-rfPhHV4o35W%=;HjL3k|cHXdI(Fa9h(Poi$cOZJgcB zF+Fem>!b_qM4MH${jaN?9oAF>fu6hJKMI|yYwW5C$KRY2Ois<_q!aN^&=MalYV&+7 z9ql7t4ir~VC4Ry7zFvDNbQk8(CAhvLI(e0}0ph+5e#dAiO5MEZAOzeCRg_(RsaVcG z^eYce)T^Lb+k$lhCt+ppeZA&~Nbr9-tYTQ&-dM4O5RFsdK|0HpPVvy~eB}b^D=3R0 znXG`Rgey+?o##pE{IUwwVJn7qp-fRaheUb888IB~@A{FqO*HVOTyYbYkeIdAr(5~$ z!)apk=K}A7wzJwFv!G$lj;7w^Bb4XlBoYd*|Ar#>xqFPSsD<*2DQXGE3uB_C6HVb|WzbQWSlZNlkBPp@=53ZZ02aSfY4?z|E`u^o&|rKHuBdgYZ0?p3!zKe=G~ zs)UzL&noLq8U_`uhUqpf+Xu0?jV`|?Dnw~YY@6k+xwj%H^-UIhOc)7KBk>Qrt#H+G`V-EdJPITH%b-bqvwoP7-}Lv0s9$CZl>% zyD4V#5n!^Tpd<;gLyriGGD|U%W8XQ@0Crakh(F4-aX>O zeo69JCCg!ojxFvuh9+8RoiQtkTcTL~^Fyg`zhn6l)oi22=R7ecU*RdbmzA1IMND>Q z@GhM`->WIo;1mB%%Ljr?)GJ~yRm3^=L=vIS^CFMY+!pp3rm6R9J_!+|tUn&MynH=p zi;^HTLe-D&(E8Un94t@aEVRs8EQKmZo~ z3ODG7pmrm~y5?M~$=ajPAPVc(CtZRPw8Zu2MoQl*xnWiQyd`9O7F$^+_*^bU7mQHp zluloZ;4MFsp%XoC<{R67KXn*4o|>P~r2+nozvm;CxLnOQ@5Jh(HFGu3%xB_*FMq?% z*cw;%JwqmZA9DnYi#(nq*IvFxNqE*J%O{4U&7PAKxZ0Rv=r!M4vA{Y0@;qCfzP^PKW+1NoL}4<&6_|0ewVb@TImx37|2 zXqNgw0{_9eSOlc*N%+V~cpbY{ppE$yKT3jF27%aTfV$-Wgu!xMOeI-DY0RrfeE(Z3 zphkrQ_Q&w5YmWLq+e3+B0Pa#>6S%Wt~N-aWJ0fX>b`axM~koZ3%|~Rpj|i*v0pRvy+8(@tI#XGb*b;D^dHz- zFCl9iB1&a3eYfgoe08P2SC4wzw2GNc zuI2h>fM?J|M89S9vUbzaVnJ@_5P{w;2j1<&+AKcq9B$4 zy#<-y5Yc5rCznYR?<3%l*UN_xI2rvLX*r9?>#|KpnvfWkr5<=`j@boInGcWV)290j6wJw@g@@?kFYkuUo zZ#0eQ&)xZX6oaSpOPSu`E?8H}x>uAkr8F_nz4yyxEu>WZ2FYSYD9!I#Njc>dZV1UY zv!v1R+?9Bwci}O>Ju*nBLS`k_KqTa5=L^H2Rs(*#JLEE|>E0xJc58XN-B(2Kj2Xe7 zuFf4HfBR*z_EBPMuWwHIj#Z34`Db&faF~I; z4DLt009nQZd9TGge&`tlujp$~TOVSw=blVaD^?4~FwEiQx_$V>yc~P?Aauf4-?HDi z)W>2@ag;GM?A96%VZ@0dCX2jJDrUh|l$ARlsgIfCY068SZMoj#y>A_FA0LhzJabnkhx1eoyWrKp|Q~6oQkY1Z#{~d(rw3ZY(>|uNX1*pF97V59G4;?douF7r(si&DMx&+-MI6 zmArtJnm*&MqCMN4wJUbzKL3yPI%gbWlsrT=k|aGBV|(zi#>?1B{Lufn(GvZ^8R_E~ zt5O9YBPni*=|a2-vC69Q?ppKYg|YJ5@A=-}5$D*8kAj^%D(C3TJ&g*^P%n9ZLyP#o zrrz&{xz^Y3|KkiPQ7WmyKDt;MYody$;NyXpo2$}aUAyAy;8rKHoEoyYS%_aM?5TfG zeykZ@qaS8LW+l~->_7jbu_`0q=gNusKMd@@ER)xJHGrVk4F83sV3Y~T zS_)nVFz%O5YHEV3;RDZ(ndM} literal 0 HcmV?d00001 diff --git a/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/HeaderShot.png b/crowdsourcing/constraint_events/webapp/src/assets/images/Tutorial/HeaderShot.png new file mode 100644 index 0000000000000000000000000000000000000000..4f8cdf6281337d5b490fa3fb4b2dc96572177b8a GIT binary patch literal 98076 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 return ( - <> +

) } diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js index c8030474c..b1f770317 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js @@ -20,9 +20,9 @@ const InfoToolTip = ({tutorialCopy, children})=>{ } position="left" - theme="transparent" + theme="dark" > - +
) diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css index f5c313667..38d5acc21 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css @@ -1,10 +1,15 @@ .info-container { display: flex; flex-direction: row; + align-items: center; + justify-content: space-between; } /* TIP */ - +.tip-container{ + height: 100%; + width: 100%; +} .tip-text { font-size: 16px; color:white; @@ -12,3 +17,13 @@ padding:4px; border-radius: 15px; } + +.info-icon{ + color: black; + font-size: 30px; + margin-left:6px; +} + +.info-icon:hover { + color: blue; +} diff --git a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js index c9f80be16..d7e572869 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js @@ -21,7 +21,7 @@ const TutorialEntry = ({

- + {screenshot ? : null}
) diff --git a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css index 94ce0224d..d1e406543 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/styles.css @@ -27,5 +27,7 @@ } .tutorialentry-img{ - + display: flex; + justify-content: center; + width: 100%; } diff --git a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js index 8047ecfcd..0f194ff4b 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js @@ -3,13 +3,13 @@ import React, { useEffect } from "react"; import "./styles.css" //COPY import Copy from "../../TaskCopy" -const PreviewTutorial = Copy.tutorialIntro; +const PreviewTutorial = Copy.tutorialIntro.explaination; +const PreviewTutorialImg= Copy.tutorialIntro.screenshot; const EventTutorialIntro = Copy.event.tutorialIntro; const ConstraintTutorialIntro = Copy.constraint.tutorialIntro; const EventTutorial = Copy.event.tutorialCopy; const ConstraintTutorial = Copy.constraint.tutorialCopy; - //Custom Components import TutorialEntry from "../../components/TutorialEntry" import Header from "../../components/Header"; @@ -25,6 +25,7 @@ const Preview = ({}) => {

{PreviewTutorial}

+
@@ -35,8 +36,8 @@ const Preview = ({}) => { {EventTutorialIntro} { EventTutorial.map((entry, index)=>{ - const {question, explaination} = entry; - return + const {question, explaination, screenshot} = entry; + return }) }
@@ -49,8 +50,8 @@ const Preview = ({}) => { {ConstraintTutorialIntro} { ConstraintTutorial.map((entry, index)=>{ - const {question, explaination} = entry; - return + const {question, explaination, screenshot} = entry; + return }) }
diff --git a/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css b/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css index 365aa206d..e93b81019 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/views/Preview/styles.css @@ -16,6 +16,8 @@ .intro-container{ width:90%; margin-top:10px; + display: flex; + justify-content: center; } .intro-text{ font-size: 20px; @@ -28,6 +30,7 @@ border-radius: 15px; box-shadow: 4px 4px 4px black; align-items: flex-start; + margin-top: 10px; } .eventpreview-header{ @@ -61,6 +64,7 @@ border-radius: 15px; box-shadow: 4px 4px 4px black; align-items: flex-start; + margin-top: 10px; } .constraintpreview-header{ From 4cf3c5e3728ace55fe447ad99b52575ddb4633f3 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Tue, 22 Jun 2021 16:38:32 -0400 Subject: [PATCH 17/28] finishing final submission and preview changes --- .../Questions/NumberQuestion/index.js | 33 +++++++++++++++++++ .../Questions/NumberQuestion/styles.css | 0 .../views/Task/Constraints/Questions/index.js | 17 +++++++--- .../src/views/Task/Events/Questions/index.js | 12 +++---- 4 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js create mode 100644 crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/styles.css diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js new file mode 100644 index 000000000..b32303c2f --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js @@ -0,0 +1,33 @@ +//REACT +import React, {useEffect, useState, useRef} from "react"; +//STYLING +import "./styles.css" + +const NumberQuestion = ({question, formFunction})=>{ + const [formNumber, setFormNumber] = useState(0) + useEffect(()=>{ + setDescription(formVal) + },[]) + const changeHandler = e=>{ + e.preventDefault() + setFormNumber(e.target.value) + formFunction(description) + } + return( +
+
+ + + +
+
+ ) +} +export default NumberQuestion; diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/styles.css new file mode 100644 index 000000000..e69de29bb diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js index a864e6662..fb63ab73a 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js @@ -1,14 +1,15 @@ +//REACT import React from "react"; - +//STYLING import "./styles.css" - //COPY import QuestionList from "./QuestionCopy"; //CUSTOM COMPONENENTS import FormQuestion from "../../../../components/Questions/FormQuestion"; -import BooleanQuestion from "../../../../components/Questions/BooleanQuestion" -import FieldQuestion from "../../../../components/Questions/FieldQuestion" -import AttributeSetter from "../../../../components/AttributeSetter" +import BooleanQuestion from "../../../../components/Questions/BooleanQuestion"; +import FieldQuestion from "../../../../components/Questions/FieldQuestion"; +import AttributeSetter from "../../../../components/AttributeSetter"; +import NumberQuestion from "../../../../components/Questions/NumberQuestion"; const Questions = ({object1, object2, interaction}) => { let objName1 = object1.name.toUpperCase(); @@ -23,6 +24,12 @@ const Questions = ({object1, object2, interaction}) => { trueAnswer={{name:"YES"} } falseAnswer={{name:"NO"} } /> + Date: Wed, 23 Jun 2021 13:33:19 -0400 Subject: [PATCH 18/28] fixed create entity connection to submission --- .../src/components/DropdownSelect/index.js | 10 ++++---- .../Questions/FieldQuestion/FieldRow.js | 22 ++++++++++------- .../Questions/FieldQuestion/index.js | 24 ++++++++++++++++--- .../src/views/Task/Events/Questions/index.js | 14 +++++++++-- 4 files changed, 52 insertions(+), 18 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js index 13db8ca05..872647e7b 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js @@ -1,19 +1,19 @@ +//REACT import React, {useState} from "react"; -import Dropdown from 'react-bootstrap/Dropdown' - +//STYLING import "./styles.css" const DropdownSelect = ({options, selectFunction})=>{ const [selectedOption, setSelectedOption]= useState("Select Location") const selectHandler = (selection)=>{ - console.log("DROPDOWN SELECTION:", selection) - setSelectedOption(selection) + console.log("DROPDOWN SELECTION:", selection.value) + setSelectedOption(selection.value) selectFunction(selection) } console.log("OPTIONS", options) return(
- { options.map((option, index) =>) diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js index 6c2bdb2d9..a07667620 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js @@ -1,14 +1,16 @@ -import React, {useEffect, useRef} from "react"; +import React, {useEffect, useState} from "react"; //CUSTOM COMPONENTS import DropdownSelect from "../../DropdownSelect"; -const FieldRow = ({field, dropdown, options})=>{ - const answerRef = useRef(); +const FieldRow = ({field, dropdown, options, changeFunction, formState})=>{ + const [fieldVal, setFieldVal] = useState("") const changeHandler = e=>{ e.preventDefault() - + console.log("FIELD UPDATE", field, ": ", e.target.value) + setFieldVal(e.target.value) + changeFunction(e.target.value) } if(dropdown){ @@ -18,12 +20,15 @@ const FieldRow = ({field, dropdown, options})=>{

- {field} + {field.name.toUpperCase()}

- +
) @@ -33,7 +38,7 @@ const FieldRow = ({field, dropdown, options})=>{

- {field} + {field.name.toUpperCase()}

@@ -41,7 +46,8 @@ const FieldRow = ({field, dropdown, options})=>{
diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js index 5a03ca820..5ba37e08c 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js @@ -5,15 +5,33 @@ import "./styles.css" //CUSTOM COMPONENTS import FieldRow from "./FieldRow"; -const FieldQuestion = ({question, fields})=>{ - const answerRef = useRef(); +const FieldQuestion = ({ + question, + fields, + formFunction, + formState +})=>{ + const ChangeHandler = (formName, formVal)=>{ + let updatedState = {...formState, [formName]:formVal} + console.log("UPDATE", updatedState) + formFunction(updatedState) + } return(

{question}

{ fields ? - fields.map((field, index)=>) + fields.map((field, index)=>( + ChangeHandler(field.name, val)} + formState={formState} + /> + )) :null }
diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js index 77b49a7b7..3d1c8068f 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js @@ -20,7 +20,7 @@ const Questions = ({ isCreatingEntity, setIsCreatingEntity, createdEntity, - setcreatedEntity, + setCreatedEntity, isRemovingObjects, setIsRemovingObjects, removedObjects, @@ -95,7 +95,17 @@ const Questions = ({ > From 468123a8e5a501dd280ee3163fb27d05bef61e33 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 23 Jun 2021 17:39:50 -0400 Subject: [PATCH 19/28] connected constraints and fixed submission state --- .../AttributeSetter/AttributeRow.js | 22 ++++++-- .../src/components/AttributeSetter/index.js | 29 +++++++++-- .../views/Task/Constraints/Questions/index.js | 51 +++++++++++++++---- .../src/views/Task/Constraints/index.js | 36 ++++++++++++- .../src/views/Task/Events/Questions/index.js | 26 ++++++++-- 5 files changed, 140 insertions(+), 24 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/AttributeRow.js b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/AttributeRow.js index 4d658ab63..cb728fbda 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/AttributeRow.js +++ b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/AttributeRow.js @@ -3,20 +3,32 @@ import React, {useState, useEffect, useRef} from "react"; import TaskButton from "../TaskButton" import { MdCancel } from "react-icons/md"; -const AttributeRow = ({attribute, objectName, objectColor, isConstraint, deleteHandler})=>{ +const AttributeRow = ({ + attribute, + objectName, + objectColor, + isConstraint, + updateHandler, + deleteHandler +})=>{ const [attributeName, setAttributeName] = useState(""); const [attributeVal, setAttributeVal] = useState(true) const [isExistingAttribute, setIsExistingAttribute] = useState(false) - const nameRef = useRef(); const changeHandler = e=>{ e.preventDefault() - + console.log("CHANGE HANDLER WORKING") + setAttributeName(e.target.value) + updateHandler({...attribute, name:e.target.value}) } const trueHandler = ()=>{ + console.log("TRUE HANDLER WORKING") setAttributeVal(true) + updateHandler({...attribute, val:true}) } const falseHandler = ()=>{ + console.log("FALSE HANDLER WORKING") setAttributeVal(false) + updateHandler({...attribute, val:false}) } useEffect(()=>{ @@ -58,8 +70,8 @@ const AttributeRow = ({attribute, objectName, objectColor, isConstraint, deleteH
diff --git a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js index 36c52a5ae..59fc0e2f8 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js @@ -5,21 +5,36 @@ import "./styles.css" import AttributeRow from "./AttributeRow" -const AttributeSetter = ({header, objectName, objectColor, attributes, isConstraint}) => { +const AttributeSetter = ({ + header, + objectName, + objectColor, + attributes, + isConstraint, + setter +}) => { const [attributeList, setAttributeList] = useState([]) useEffect(()=>{ if(attributes){ const existingAttributes = attributes.map(att => ({...att, isExisting:true})) setAttributeList(existingAttributes) } - },[attributes]) + },[]) const addAttributeHandler = ()=>{ const newAtt = [...attributeList, {name:"", val:true}] setAttributeList(newAtt) + setter(newAtt) + } + const updateAttributeHandler = (updateIndex, update) => { + let updatedArr = attributeList.filter((item, index)=> (index !== updateIndex)) + updatedArr = [...updatedArr.filter, update] + setAttributeList(updatedArr) + setter(updatedArr) } const removeAttributeHandler = (deletedIndex)=>{ let updatedArr = attributeList.filter((item, index)=> (index !== deletedIndex)) setAttributeList(updatedArr) + setter(updatedArr) } return (
@@ -40,7 +55,15 @@ const AttributeSetter = ({header, objectName, objectColor, attributes, isConstra { attributeList.length ? attributeList.map((att, index)=>( - removeAttributeHandler(index)}/> + updateAttributeHandler(index, update)} + deleteHandler={()=>removeAttributeHandler(index)} + /> )) : null diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js index fb63ab73a..347c1afab 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js @@ -11,41 +11,72 @@ import FieldQuestion from "../../../../components/Questions/FieldQuestion"; import AttributeSetter from "../../../../components/AttributeSetter"; import NumberQuestion from "../../../../components/Questions/NumberQuestion"; -const Questions = ({object1, object2, interaction}) => { +const Questions = ({ + object1, + object2, + interaction, + isSecondaryHeld, + setIsSecondaryHeld, + isReversible, + setIsReversible, + isLocationConstrained, + setIsLocationConstrained, + constraintLocation, + setConstraintLocation, + primaryConstrainingAttributes, + setPrimaryConstrainingAttributes, + secondaryConstrainingAttributes, + setSecondaryConstrainingAttributes, + +}) => { + let obj1Attr = object1.attributes + let obj2Attr = object2.attributes let objName1 = object1.name.toUpperCase(); - let objName2 = object2.name.toUpperCase() + let objName2 = object2.name.toUpperCase(); return ( <> - - - + diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/index.js index a6778dbf3..9a6512dc2 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/index.js @@ -4,14 +4,46 @@ import "./styles.css" import Questions from "./Questions" -const Constraints = ({object1, object2, interaction}) => { +const Constraints = ({ + object1, + object2, + interaction, + isSecondaryHeld, + setIsSecondaryHeld, + isReversible, + setIsReversible, + isLocationConstrained, + setIsLocationConstrained, + constraintLocation, + setConstraintLocation, + primaryConstrainingAttributes, + setPrimaryConstrainingAttributes, + secondaryConstrainingAttributes, + setSecondaryConstrainingAttributes, +}) => { return (

CONSTRAINTS

- +
); diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js index 3d1c8068f..390682545 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js @@ -36,9 +36,13 @@ const Questions = ({ secondaryModifiedAttributes, setSecondaryModifiedAttributes }) => { + let obj1Attr = object1.attributes + let obj2Attr = object2.attributes useEffect(()=>{ - setPrimaryDescription(object1.desc) - setSecondaryDescription(object2.desc) + let obj1Desc = object1.desc; + let obj2Desc = object2.desc; + setPrimaryDescription(obj1Desc) + setSecondaryDescription(obj2Desc) },[object1, object2]) const QuestionList = QuestionCopy.event.questions const TipList = QuestionCopy.event.tutorialCopy @@ -109,8 +113,22 @@ const Questions = ({ />
- - + + ); } From 4c3b430e37bd8a17a1c305ad557104e0802aeaa1 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 30 Jun 2021 11:50:16 -0400 Subject: [PATCH 20/28] building error handling and checklist component logic --- .../constraint_events/webapp/src/TaskCopy.js | 28 ++++----- .../constraint_events/webapp/src/app.jsx | 57 ++++++++++++++----- .../src/components/AttributeSetter/index.js | 31 ++++++++-- .../src/components/ErrorToasts/index.js | 31 ++++++++++ .../src/components/ErrorToasts/styles.css | 0 .../src/components/InfoToolTip/index.js | 3 +- .../Questions/BooleanQuestion/index.js | 34 +++++++++-- .../Questions/FormQuestion/index.js | 23 +++++++- .../Questions/NumberQuestion/index.js | 7 ++- .../Questions/NumberQuestion/styles.css | 23 ++++++++ .../webapp/src/components/Submission/index.js | 31 +++++++--- .../src/components/TutorialEntry/index.js | 4 +- .../webapp/src/views/Preview/index.js | 10 ++-- .../views/Task/Constraints/Questions/index.js | 45 ++++++++++++--- .../src/views/Task/Constraints/index.js | 8 +++ .../src/views/Task/Events/Questions/index.js | 15 ++++- .../webapp/src/views/Task/index.js | 8 +++ 17 files changed, 292 insertions(+), 66 deletions(-) create mode 100644 crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/index.js create mode 100644 crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/styles.css diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index 445d399e4..217a995ff 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -18,7 +18,7 @@ const ConstraintShot5 = require("./assets/images/Tutorial/Constraint/ConstraintS const Copy ={ tutorialIntro:{ - explaination:"We're trying to crowdsource interactions between two objects. These interactions will be set in a medieval fantasy scenario, and as such should not refer to real people, places, or modern day technologies. The objective of this task is to focus on two aspects of the interaction: The events that occur during the interaction and the constraints required for the interaction to take place. At the top of the screen you will be presented with 3 cards, the first two will be the names and a brief description of the objects involved in the interaction, the third contains the narration for the interaction itself. Reference this information while completing the task.", + explanation:"We're trying to crowdsource interactions between two objects. These interactions will be set in a medieval fantasy scenario, and as such should not refer to real people, places, or modern day technologies. The objective of this task is to focus on two aspects of the interaction: The events that occur during the interaction and the constraints required for the interaction to take place. At the top of the screen you will be presented with 3 cards, the first two will be the names and a brief description of the objects involved in the interaction, the third contains the narration for the interaction itself. Reference this information while completing the task.", screenshot: HeaderShot }, constraint:{ @@ -27,13 +27,15 @@ const Copy ={ "# Constraints for Interaction: ", "1. Does # need to be held?", "2. Could one use # with # and expect the same outcome?", - "3. Would this have to happen in a specific place?", - "Where would that location be?", + "3. Can this operation be done an infinite number of times?", + "3a. How many more times can it be done?", + "4. Would this have to happen in a specific place?", + "4a. Where would that location be?", ], tutorialCopy:[ { question:"1) Attributes", - explaination:`If the interaction requires that the object have + explanation:`If the interaction requires that the object have certain attributes or conditions, they should be listed. For instance, if the interaction is "You use the torch @@ -47,12 +49,12 @@ const Copy ={ }, { question:"2) Does object2 need to be held?", - explaination:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.`, + explanation:`We generally assume that the actor is already holding the first item in the interaction. If the interaction requires the actor to be holding both objects (like if the actor is combining objects), you should mark it here. For example, for the interaction "You put the gem into the key, then turn it over in your hands. It it's a perfect fit." you would say both objects need to be held. In contrast for the interaction "You swing the axe at the tree and it rebounds back. Not a mark, this tree must be magic." You would answer that the tree does not need to be held.`, screenshot: ConstraintShot2 }, { question:"3) Can this operation be done an infinite number of times?", - explaination:`Some interactions are limited in the number of uses. Here + explanation:`Some interactions are limited in the number of uses. Here you should estimate the number of times the interaction could be repeated. For instance, for the interaction: "You give a piece of the pie to the fox. It eats it quickly and scurries @@ -67,7 +69,7 @@ const Copy ={ }, { question:"4) Could one use Y with X and expect the same outcome?", - explaination:`Some interactions could be considered to have a direction, for + explanation:`Some interactions could be considered to have a direction, for instance "using an axe with a tree" is different from "using a tree with an axe", though the second here doesn't even make sense. However, an interaction like "you mix the milk and the @@ -80,7 +82,7 @@ const Copy ={ }, { question:"5) Does this interaction need to have in a specific place?", - explaination:`If the interaction description implies that the interaction + explanation:`If the interaction description implies that the interaction occurs somewhere specifically, provide a name for the place you believe it is happening. @@ -111,13 +113,13 @@ const Copy ={ tutorialCopy:[ { question:"1) Narrate this interaction", - explaination:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."', + explanation:'The new narration should be directed to someone observing the interaction take place, say in the same location. If you want to refer to the actor, location, or either the key or the lock, use `ACTOR`, `LOCATION`, `KEY`, `LOCK`.For example, "You place the key in the lock and turn. After a satisfying click the lock becomes unlocked " could be seen as "ACTOR fumbles with a KEY in the LOCK for a moment, before you hear a click echo through LOCATION."', screenshot: EventShot1 }, { question:"2) Are objects removed?", - explaination:`If the interaction would cause one of the + explanation:`If the interaction would cause one of the used objects not exist anymore, mark those objects. @@ -131,7 +133,7 @@ const Copy ={ }, { question:"3) Do object descriptions change?", - explaination:`If an object remains in the scene, but it ends + explanation:`If an object remains in the scene, but it ends up changed by the interaction, it's description should change. For instance given "You scratch the side of the shiny bucket with @@ -144,7 +146,7 @@ const Copy ={ }, { question:"4) Are objects created?", - explaination:`If the interaction creates new objects in the + explanation:`If the interaction creates new objects in the scene, you should list them here. You should describe the object and note where the object exists. The object can only be created either the @@ -161,7 +163,7 @@ const Copy ={ }, { question:"5) Attribute changes", - explaination:`If the interaction changes something physical + explanation:`If the interaction changes something physical about an object, you should mark the attribute changes here. For instance, if an interaction is "You dip the towel in the bucket of oil. It seeps diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index f37a7edd9..3e1c47d9a 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -33,28 +33,28 @@ function MainApp() { initialTaskData, handleSubmit, } = useMephistoTask(); + //Error Handling const [showError, setShowError] = useState(false); - const [errorMessage, setErrorMessage] = useState(""); + const [errorMessages, setErrorMessages] = useState(""); //Events State - const [timesRemaining, setTimesRemaining] = useState(""); const [broadcastMessage, setBroadcastMessage] = useState(""); - const [isCreatingEntity, setIsCreatingEntity] = useState(false); + const [isCreatingEntity, setIsCreatingEntity] = useState(null); const [createdEntity, setCreatedEntity] = useState(null); - const [isRemovingObjects, setIsRemovingObjects] = useState(""); + const [isRemovingObjects, setIsRemovingObjects] = useState(null); const [removedObjects, setRemovedObjects] = useState([]); const [isChangingDescription, setIsChangingDescription] = useState(false); //Primary - const [primaryRemainingUses, setPrimaryRemainingUses]= useState(""); const [primaryModifiedAttributes, setPrimaryModifiedAttributes]= useState([]); const [primaryDescription, setPrimaryDescription] = useState(""); //Secondary - const [secondaryRemainingUses, setSecondaryRemainingUses]= useState(""); const [secondaryModifiedAttributes, setSecondaryModifiedAttributes]= useState([]); const [secondaryDescription, setSecondaryDescription] = useState(""); //Constraint State const [isSecondaryHeld, setIsSecondaryHeld] = useState(false); const [isReversible, setIsReversible] = useState(false); + const [isInfinite, setIsInifinite] = useState(true) + const [timesRemaining, setTimesRemaining] = useState(0); const [isLocationConstrained, setIsLocationConstrained] = useState(false); const [constraintLocation, setConstraintLocation] = useState(""); //Primary @@ -94,7 +94,7 @@ function MainApp() { const state = { 'constraints': [], 'events': [], - 'times_remaining': timesRemaining + 'times_remaining':"" } for (let i = 0; i < state['constraints'].length; i++) { @@ -146,9 +146,12 @@ function MainApp() { const submissionHandler = ()=>{ let updatedEvents = [] let updatedConstraints = [] - //ERROR HANDLING - if(!updatedBroadcastMessage){ + let updatedTimesRemaining + //ERROR HANDLING + if(!broadcastMessage){ + setErrorMessages() + setShowError(true) } if(!showError){ // EVENT UPDATES @@ -246,7 +249,7 @@ function MainApp() { })) updatedConstraints = [...updatedConstraints, ...updatedPrimaryConstrainingAttributes] } - if(updatedSecondaryConstrainingAttributes.length){ + if(secondaryConstrainingAttributes.length){ let updatedSecondaryConstrainingAttributes = secondaryConstrainingAttributes.map(attribute=>({ type:"attribute_compare_value", params:{ @@ -269,6 +272,14 @@ function MainApp() { updatedConstraints = [...updatedConstraints, updatedSecondaryHeldConstraint] } let updatedIsReversible = isReversible; + + //TIMES REMAINING CONSTRAINT + if(isInfinite){ + updatedTimesRemaining = "inf" + }else{ + updatedTimesRemaining = timesRemaining + } + // LOCATION CONSTRAINT if(isLocationConstrained){ let updatedLocationConstraint = { @@ -280,12 +291,13 @@ function MainApp() { updatedConstraints = [...updatedConstraints, updatedLocationConstraint] } const payload = { - remaining_uses: remainingUses, + times_remaining: updatedTimesRemaining, reversible: updatedIsReversible, events: updatedEvents, constraints: updatedConstraints } - handleSubmit(payload) + console.log(payload) + //handleSubmit(payload) } } @@ -325,9 +337,28 @@ function MainApp() { setPrimaryConstrainingAttributes={setPrimaryConstrainingAttributes} secondaryConstrainingAttributes={secondaryConstrainingAttributes} setSecondaryConstrainingAttributes={setSecondaryConstrainingAttributes} + isInfinite={isInfinite} + setIsInifinite={setIsInifinite} + timesRemaining={timesRemaining} + setTimesRemaining={setTimesRemaining} />
- +
); diff --git a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js index 59fc0e2f8..cc2f399c7 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js @@ -1,9 +1,10 @@ +//REACT import React, {useState, useEffect} from "react"; - +//STYLING import "./styles.css" - +//CUSTOM COMPONENTS import AttributeRow from "./AttributeRow" - +import InfoToolTip from "../InfoToolTip"; const AttributeSetter = ({ header, @@ -11,7 +12,9 @@ const AttributeSetter = ({ objectColor, attributes, isConstraint, - setter + setter, + toolTipCopy, + hasToolTip }) => { const [attributeList, setAttributeList] = useState([]) useEffect(()=>{ @@ -38,6 +41,25 @@ const AttributeSetter = ({ } return (
+ { + hasToolTip + ? + +
+
+
+

+ {objectName.toUpperCase()} {header} +

+
+
+

+ + +

+
+
+
+ :
@@ -51,6 +73,7 @@ const AttributeSetter = ({

+ }
{ attributeList.length ? diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/index.js b/crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/index.js new file mode 100644 index 000000000..b3fb1e44d --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/index.js @@ -0,0 +1,31 @@ +//REACT +import React, {useState} from "react"; +//STYLING +import "./styles.css" +//BOOTSTRAP COMPONENTS +import Toast from 'react-bootstrap/Toast' + +const ErrorToast = ({ + errors, + showError, + hideErrors, +})=>{ + + + return( + + +
    + { + errors.map((err, index)=>( +
  • + {err} +
  • + )) + } +
+
+
+ )} + +export default ErrorToast diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/styles.css b/crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/styles.css new file mode 100644 index 000000000..e69de29bb diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js index b1f770317..394d96433 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js @@ -9,7 +9,7 @@ import { BsInfoCircle } from "react-icons/bs"; import Tip from "./Tip" const InfoToolTip = ({tutorialCopy, children})=>{ - const [isHovering, setIsHovering] =useState(false) + return (
@@ -21,6 +21,7 @@ const InfoToolTip = ({tutorialCopy, children})=>{ } position="left" theme="dark" + size="big" > diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js index 323b0ffb9..57f391c0e 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js @@ -1,11 +1,23 @@ +//REACT import React, {useEffect, useState} from "react"; +//STYLING import "./styles.css"; - //CUSTOM COMPONENTS import TaskButton from "../../TaskButton" -import FormQuestion from "../../Utils/FormatQuestion"; +import FormatQuestion from "../../Utils/FormatQuestion"; +import InfoToolTip from "../../InfoToolTip"; -const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, inverted, children, formFunction})=>{ +const BooleanQuestion = ({ + question, + trueAnswer, + falseAnswer, + keywords, + inverted, + children, + formFunction, + toolTipCopy, + hasToolTip +})=>{ const [answer, setAnswer] = useState(null); const trueHandler = ()=>{ @@ -19,11 +31,23 @@ const BooleanQuestion = ({question, trueAnswer, falseAnswer, keywords, inverted, return(
- + + + : + + }
{ - ((!!inverted ? !answer : answer) && children) ? + ((!!inverted ? (!answer && answer!==null) : answer) && children) ? children : null diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js index d2a0d1a6c..e48f3f8ee 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js @@ -6,7 +6,16 @@ import "./styles.css" import InfoToolTip from "../../InfoToolTip"; -const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, formVal, formFunction, toolTipCopy})=>{ +const FormQuestion = ({ + question, + placeholder, + questionColor, + upperCaseQuestion, + formVal, + formFunction, + toolTipCopy, + hasToolTip +})=>{ const [description, setDescription] = useState("") useEffect(()=>{ setDescription(formVal) @@ -18,11 +27,21 @@ const FormQuestion = ({question, placeholder, questionColor, upperCaseQuestion, } return(
- + { + hasToolTip + ? +

{upperCaseQuestion ? question.toUpperCase() : question}

+ : +

+ {upperCaseQuestion ? question.toUpperCase() : question} +

+ }

diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js index b32303c2f..7fc113fbf 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js @@ -6,17 +6,17 @@ import "./styles.css" const NumberQuestion = ({question, formFunction})=>{ const [formNumber, setFormNumber] = useState(0) useEffect(()=>{ - setDescription(formVal) + formFunction(formNumber) },[]) const changeHandler = e=>{ e.preventDefault() setFormNumber(e.target.value) - formFunction(description) + formFunction(e.target.value) } return(
- + { min="1" onChange={changeHandler} value={formNumber} + className="numberanswer-input" />
diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/styles.css index e69de29bb..ce6ed379d 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/styles.css @@ -0,0 +1,23 @@ +.numberform-container { + display: flex; + flex-direction: column; +} + +.numberanswer-container { + +} + +.numberanswer-header{ + text-align: left; + font-weight: bold; + font-size: 20px; +} + +.numberanswer-input { + font-size: 20px; + border-radius: 5px; + border-color: silver; + border-style: ridge; + padding: 3px; + border-width: 4px; +} diff --git a/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js b/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js index f75ee3d9b..2f80997ad 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js @@ -1,13 +1,27 @@ -import React, {useState} from "react"; - +//REACT +import React, {useState, useEffect} from "react"; +//STYLING import "./styles.css" //CUSTOM COMPONENTS import TaskButton from "../TaskButton" import Checklist from "./Checklist" const Submission = ({ - + submitFunction, + broadcastMessage, + isCreatingEntity, + createdEntity, + isRemovingObjects, + removedObjects, + isChangingDescription, + isSecondaryHeld, + isReversible, + isInfinite, + timesRemaining, + isLocationConstrained, + constraintLocation })=>{ + const dummydata = { eventsData:[ {status:true, question: "1. Narrate this interaction to another observer who sees it happen. "}, @@ -21,7 +35,6 @@ const Submission = ({ {status:true, question: "3. Would this have to happen in a specific place?"}, ] } - const clickHandler = ()=>{} return(
@@ -38,11 +51,11 @@ const Submission = ({ />
) diff --git a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js index d7e572869..fae80a202 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/TutorialEntry/index.js @@ -5,7 +5,7 @@ import "./styles.css" const TutorialEntry = ({ question, - explaination, + explanation, screenshot, })=>{ return( @@ -17,7 +17,7 @@ const TutorialEntry = ({

- {explaination} + {explanation}

diff --git a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js index 0f194ff4b..781566bb4 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Preview/index.js @@ -3,7 +3,7 @@ import React, { useEffect } from "react"; import "./styles.css" //COPY import Copy from "../../TaskCopy" -const PreviewTutorial = Copy.tutorialIntro.explaination; +const PreviewTutorial = Copy.tutorialIntro.explanation; const PreviewTutorialImg= Copy.tutorialIntro.screenshot; const EventTutorialIntro = Copy.event.tutorialIntro; const ConstraintTutorialIntro = Copy.constraint.tutorialIntro; @@ -36,8 +36,8 @@ const Preview = ({}) => { {EventTutorialIntro} { EventTutorial.map((entry, index)=>{ - const {question, explaination, screenshot} = entry; - return + const {question, explanation, screenshot} = entry; + return }) }
@@ -50,8 +50,8 @@ const Preview = ({}) => { {ConstraintTutorialIntro} { ConstraintTutorial.map((entry, index)=>{ - const {question, explaination, screenshot} = entry; - return + const {question, explanation, screenshot} = entry; + return }) }
diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js index 347c1afab..d180eeb85 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/Questions/index.js @@ -3,7 +3,7 @@ import React from "react"; //STYLING import "./styles.css" //COPY -import QuestionList from "./QuestionCopy"; +import QuestionCopy from "../../../../TaskCopy.js"; //CUSTOM COMPONENENTS import FormQuestion from "../../../../components/Questions/FormQuestion"; import BooleanQuestion from "../../../../components/Questions/BooleanQuestion"; @@ -27,53 +27,82 @@ const Questions = ({ setPrimaryConstrainingAttributes, secondaryConstrainingAttributes, setSecondaryConstrainingAttributes, - + isInfinite, + setIsInifinite, + timesRemaining, + setTimesRemaining, }) => { let obj1Attr = object1.attributes let obj2Attr = object2.attributes let objName1 = object1.name.toUpperCase(); let objName2 = object2.name.toUpperCase(); + const QuestionList = QuestionCopy.constraint.questions + const TipList = QuestionCopy.constraint.tutorialCopy return ( <> + + + { return (
@@ -43,6 +47,10 @@ const Constraints = ({ setPrimaryConstrainingAttributes={setPrimaryConstrainingAttributes} secondaryConstrainingAttributes={secondaryConstrainingAttributes} setSecondaryConstrainingAttributes={setSecondaryConstrainingAttributes} + isInfinite={isInfinite} + setIsInifinite={setIsInifinite} + timesRemaining={timesRemaining} + setTimesRemaining={setTimesRemaining} />
diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js index 390682545..d3a16d151 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/Questions/index.js @@ -52,13 +52,16 @@ const Questions = ({ question={QuestionList[1]} formVal={interaction} formFunction={setBroadcastMessage} - toolTipCopy={TipList[1].explaination} + toolTipCopy={TipList[0].explanation} + hasToolTip={true} />
@@ -96,6 +103,8 @@ const Questions = ({ trueAnswer={{name:"YES"} } falseAnswer={{name:"NO"} } formFunction={setIsCreatingEntity} + toolTipCopy={TipList[3].explanation} + hasToolTip={true} > ); diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/index.js b/crowdsourcing/constraint_events/webapp/src/views/Task/index.js index 40bc1fe63..d3a7f33d6 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/index.js +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/index.js @@ -41,6 +41,10 @@ const Task = ({ setPrimaryConstrainingAttributes, secondaryConstrainingAttributes, setSecondaryConstrainingAttributes, + isInfinite, + setIsInifinite, + timesRemaining, + setTimesRemaining, }) => { const {object1, object2, interaction}= data; return ( @@ -93,6 +97,10 @@ const Task = ({ setPrimaryConstrainingAttributes={setPrimaryConstrainingAttributes} secondaryConstrainingAttributes={secondaryConstrainingAttributes} setSecondaryConstrainingAttributes={setSecondaryConstrainingAttributes} + isInfinite={isInfinite} + setIsInifinite={setIsInifinite} + timesRemaining={timesRemaining} + setTimesRemaining={setTimesRemaining} />
From 512668e132947854a371ac24618f7f0a71d6c994 Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Wed, 30 Jun 2021 13:15:23 -0400 Subject: [PATCH 21/28] building error handling and checklist component logic --- crowdsourcing/constraint_events/webapp/src/TaskCopy.js | 4 ++-- .../webapp/src/components/AttributeSetter/index.js | 4 +++- .../src/components/Questions/NumberQuestion/index.js | 2 +- .../src/components/Questions/NumberQuestion/styles.css | 7 +++++-- .../webapp/src/views/Task/Events/Questions/index.js | 4 ++-- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index 217a995ff..ce65526a4 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -24,7 +24,7 @@ const Copy ={ constraint:{ tutorialIntro:"The Constraints section focuses on what conditions must be met in order for this interaction to occur. So for this portion you will be thinking in terms of what must be true for the interaction to have happened in the first place based on the narration.", questions:[ - "# Constraints for Interaction: ", + " Constraints for Interaction: ", "1. Does # need to be held?", "2. Could one use # with # and expect the same outcome?", "3. Can this operation be done an infinite number of times?", @@ -108,7 +108,7 @@ const Copy ={ a2: "2a. Which object(s)?", 3: "3. Does an object's description change?", 4: "4. Are objects created?", - setter: "# After this action: " + setter: " After this action: " }, tutorialCopy:[ { diff --git a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js index cc2f399c7..026a49794 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js @@ -49,7 +49,9 @@ const AttributeSetter = ({

- {objectName.toUpperCase()} {header} + + {objectName.toUpperCase()} + {header}

diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js index 7fc113fbf..cdf5201ad 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/NumberQuestion/index.js @@ -16,7 +16,7 @@ const NumberQuestion = ({question, formFunction})=>{ return(
- +

{question}

Date: Thu, 1 Jul 2021 11:57:52 -0400 Subject: [PATCH 22/28] added error key to task copy file --- .../constraint_events/webapp/src/TaskCopy.js | 21 ++- .../constraint_events/webapp/src/app.jsx | 166 ++++++++---------- .../{ErrorToasts => ErrorToast}/index.js | 0 .../{ErrorToasts => ErrorToast}/styles.css | 0 .../Submission/Checklist/ChecklistItem.js | 32 +++- .../webapp/src/components/Submission/index.js | 14 ++ .../src/views/Task/Constraints/styles.css | 6 + .../webapp/src/views/Task/Events/styles.css | 6 + .../webapp/src/views/Task/styles.css | 11 ++ 9 files changed, 156 insertions(+), 100 deletions(-) rename crowdsourcing/constraint_events/webapp/src/components/{ErrorToasts => ErrorToast}/index.js (100%) rename crowdsourcing/constraint_events/webapp/src/components/{ErrorToasts => ErrorToast}/styles.css (100%) diff --git a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js index ce65526a4..d2ed4b426 100644 --- a/crowdsourcing/constraint_events/webapp/src/TaskCopy.js +++ b/crowdsourcing/constraint_events/webapp/src/TaskCopy.js @@ -179,6 +179,25 @@ const Copy ={ screenshot: EventShot5 } ] - } + }, + errorKey:{ + events:{ + q1Blank: "Narration cannot be blank", + q2Null: "Please click yes or no for object removal event", + q2Empty:"Please select the item that was removed or click no for this event.", + q3Null: "Please click yes or no for object description change event", + q3Blank:"Description cannot be blank", + q4Null: "Please click yes or no for object creation event", + q4MissingField: "Please click yes or no for object creation event" + }, + constraint:{ + q1Null: "Please click yes or no for held constraint", + q2Null: "Please click yes or no for reversible constraint", + q3Null: "Please click yes or no for times remaining constraint", + q3Blank: "Description cannot be blank", + q4Null: "Please click yes or no for location constraint", + q4blank: "Location cannot be blank please write a location or click no" + } + } } export default Copy diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 3e1c47d9a..9548aeb1b 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -5,24 +5,28 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - +//REACT import React, {useState} from "react"; import ReactDOM from "react-dom"; -import Task from "./views/Task"; -import Preview from "./views/Preview" -import Submission from "./components/Submission" import { TaskDescription } from "./components/task_description.jsx"; // import { ActionDescription } from "./components/action_description.jsx"; // import { ConstraintBlock } from "./components/constraint_element.jsx"; // import { EventsBlock } from "./components/event_elements.jsx"; -import LoadingScreen from "./components/LoadingScreen" +//MEPHISTO import { useMephistoTask } from "mephisto-task"; // import { TimesComponent } from "./components/times_component.jsx"; // import { SubmitButton } from "./components/submit_button.jsx"; - +//STYLING import "./styles.css" +//TOOLTIPS import 'react-tippy/dist/tippy.css' -/* ================= Application Components ================= */ +//CUSTOM COMPONENTS +import Task from "./views/Task"; +import Preview from "./views/Preview" +import Submission from "./components/Submission" +import LoadingScreen from "./components/LoadingScreen" +//UTILS +import TaskCopy from "./TaskCopy" function MainApp() { const { @@ -147,14 +151,52 @@ function MainApp() { let updatedEvents = [] let updatedConstraints = [] let updatedTimesRemaining + let updatedErrors =[] - //ERROR HANDLING - if(!broadcastMessage){ - setErrorMessages() - setShowError(true) - } - if(!showError){ +//ERROR HANDLING + //EVENT ERRORS + //BROADCAST MESSAGE + if(!broadcastMessage){ + updatedErrors.push(TaskCopy.errorKey.events.q1Blank) + } + //REMOVE OBJECT + if(isRemovingObjects===null){ + updatedErrors.push(TaskCopy.errorKey.events.q2Null) + } + if(isRemovingObjects && removedObjects.length){ + updatedErrors.push(TaskCopy.errorKey.events.q2Empty) + } + // DESCRIPTION + if(isChangingDescription===null){ + updatedErrors.push(TaskCopy.errorKey.events.q3Null) + } + if(isChangingDescription && (primaryDescription || secondaryDescription)){ + updatedErrors.push(TaskCopy.errorKey.events.q3Blank) + } + //CREATE ENTITY + if(isCreatingEntity===null){ + updatedErrors.push(TaskCopy.errorKey.events.q4Null) + } + //CONSTRAINT ERRORS + //HELD + if(isSecondaryHeld===null){ + updatedErrors.push(TaskCopy.errorKey.constraint.q1Blank) + } + //REVERSIBLE + if(isReversible===null){ + updatedErrors.push(TaskCopy.errorKey.constraint.q1Blank) + } + //TIMES REMAINING + if(isInfinite===null){ + updatedErrors.push(TaskCopy.errorKey.constraint.q1Blank) + } + //LOCATIONS + if(isLocationConstrained===null){ + + } + if(!showError && updatedErrors.length<=0){ // EVENT UPDATES + //BROADCASTMESSAGE let updatedBroadcastMessage = broadcastMessage; updatedBroadcastMessage = { type: "broadcast_message", @@ -214,14 +256,19 @@ function MainApp() { } //ATTRIBUTE MODIFICATION EVENTS if(primaryModifiedAttributes.length){ - let updatedPrimaryModifiedAttributes = primaryModifiedAttributes.map(attribute=>({ + let updatedPrimaryModifiedAttributes = primaryModifiedAttributes.map(attribute=>{ + if(!attribute.name){ + + } + return({ type:"modify_attribute", params:{ type:"in_used_item", key: attribute.name, value: attribute.value } - })) + }) + }) updatedEvents = [...updatedEvents, ...updatedPrimaryModifiedAttributes] } if(secondaryModifiedAttributes.length){ @@ -296,11 +343,15 @@ function MainApp() { events: updatedEvents, constraints: updatedConstraints } - console.log(payload) - //handleSubmit(payload) + if(!updatedErrors.length){ + console.log(payload) + //handleSubmit(payload) + }else{ + setErrorMessages(updatedErrors) + setShowError(true) } } - + } return (
, document.getElementById("app")); - - -/* - const [showError, setShowError] = useState(false); - const [errorMessage, setErrorMessage] = useState(""); - //Events State - const [timesRemaining, setTimesRemaining] = useState(""); - const [broadcastMessage, setBroadcastMessage] = useState(""); - const [isCreatingEntity, setIsCreatingEntity] = useState(false); - const [createdEntity, setCreatedEntity] = useState(null); - const [isRemovingObjects, setIsRemovingObjects] = useState(""); - const [removedObjects, setRemovedObjects] = useState([]); - const [isChangingDescription, setIsChangingDescription] = useState(false); - //Primary - const [primaryRemainingUses, setPrimaryRemainingUses]= useState(""); - const [primaryModifiedAttributes, setPrimaryModifiedAttributes]= useState([]); - const [primaryDescription, setPrimaryDescription] = useState(""); - //Secondary - const [secondaryRemainingUses, setSecondaryRemainingUses]= useState(""); - const [secondaryModifiedAttributes, setSecondaryModifiedAttributes]= useState([]); - const [secondaryDescription, setSecondaryDescription] = useState(""); - - //Constraint State - const [isSecondaryHeld, setIsSecondaryHeld] = useState(false); - const [isReversible, setIsReversible] = useState(false); - const [isLocationConstrained, setIsLocationConstrained] = useState(false); - const [constraintLocation, setConstraintLocation] = useState(""); - //Primary - const [primaryConstrainingAttributes, setPrimaryConstrainingAttributes]= useState([]); - //Secondary - const [secondaryConstrainingAttributes, setSecondaryConstrainingAttributes]= useState([]); - -
-
- -
-
- -
- -
- -
- -
- -
-
*/ - -// const updatePrimary = { - // object_id: { - // "name": "object_name", - // "contain_size": 0, - // remaining_uses: remainingUses, - // reversible: true, - // events: [ - // { - // type: ..., - // params: {...}, - // }, - // { - // type: "broadcast_message", - // params: { - // self_view: dummyData.interaction, - // room_view: - // } - // } - - - // ], - // constraints: [ - // { - // type: ..., - // params: {...}, - // }, - // ... - // ], - // } - // } diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/index.js b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js similarity index 100% rename from crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/index.js rename to crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/styles.css b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css similarity index 100% rename from crowdsourcing/constraint_events/webapp/src/components/ErrorToasts/styles.css rename to crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css diff --git a/crowdsourcing/constraint_events/webapp/src/components/Submission/Checklist/ChecklistItem.js b/crowdsourcing/constraint_events/webapp/src/components/Submission/Checklist/ChecklistItem.js index feb2d59b2..3d65e7285 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Submission/Checklist/ChecklistItem.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Submission/Checklist/ChecklistItem.js @@ -1,16 +1,44 @@ import React, {useState} from "react"; const ChecklistItem = ({ + question, data })=>{ + const checklistFormatFunction =(question, relatedState, checksArr)=>{ + let updatedStatus + let updatedInstructionsArr =[] + let formattedCheckListData + checksArr.map((check)=>{ + switch(check) { + case "length": + updatedStatus = relatedState.length + if(!updatedStatus){ + updatedInstructionsArr.push('Form cannot Be Blank') + } + break; + case "not null": + updatedStatus = relatedState!==null + if(!updatedStatus){ + updatedInstructionsArr.push('Must make selection') + } + break; + } + formattedCheckListData ={ + question:question, + status:(!!updatedInstructionsArr.length), + instructions:updatedInstructionsArr.length? updatedInstructionsArr: ["Done"] + } + }) + return formattedCheckListData ; + } return( - {data.status ? COMPLETE : INCOMPLETE} + {data.question} - {data.question} + {data.status ? COMPLETE : INCOMPLETE} ) diff --git a/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js b/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js index 2f80997ad..bfef77b17 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js @@ -22,6 +22,20 @@ const Submission = ({ constraintLocation })=>{ + //Event State + const [eventQuestion1, setEventQuestion1] = useState(null); + const [eventQuestion2, setEventQuestion2] = useState(null); + const [eventQuestion3, setEventQuestion3] = useState(null); + const [eventQuestion4, setEventQuestion4] = useState(null); + //Constraint State + const [constraintQuestion1, setConstraintQuestion1] = useState(null); + const [constraintQuestion2, setConstraintQuestion2] = useState(null); + const [constraintQuestion3, setConstraintQuestion3] = useState(null); + + + useEffect(()=>{ + + },) const dummydata = { eventsData:[ {status:true, question: "1. Narrate this interaction to another observer who sees it happen. "}, diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/styles.css b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/styles.css index 057619531..a8dd7211d 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Constraints/styles.css @@ -29,3 +29,9 @@ border-bottom-right-radius: 10px; border-bottom-left-radius: 10px; } + +@media only screen and (max-width: 1000px) { + .constraints-container { + width: 80%; + } +} diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/styles.css b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/styles.css index a1c50a5a6..49868d947 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/Events/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/Events/styles.css @@ -29,3 +29,9 @@ border-bottom-right-radius: 10px; border-bottom-left-radius: 10px; } + +@media only screen and (max-width: 1000px) { + .events-container { + width: 80%; + } +} diff --git a/crowdsourcing/constraint_events/webapp/src/views/Task/styles.css b/crowdsourcing/constraint_events/webapp/src/views/Task/styles.css index d1c73ef35..fb15ca76a 100644 --- a/crowdsourcing/constraint_events/webapp/src/views/Task/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/views/Task/styles.css @@ -14,3 +14,14 @@ flex-direction: row; justify-content: space-evenly; } + +@media only screen and (max-width: 1000px) { + .task-container { + margin-top: 5px; + width:95%; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + } +} From b1eb16a10cbe43888dfa8dc4deceea62dda8d8ee Mon Sep 17 00:00:00 2001 From: Justin Pinero Date: Mon, 5 Jul 2021 11:40:13 -0400 Subject: [PATCH 23/28] added error toasts, error key, and completion checkboxes component --- .../constraint_events/webapp/src/app.jsx | 35 +++++++------ .../src/components/AttributeSetter/styles.css | 2 +- .../webapp/src/components/Checkbox/index.js | 22 ++++++++ .../webapp/src/components/Checkbox/styles.css | 4 ++ .../webapp/src/components/ErrorToast/index.js | 18 ++++--- .../src/components/ErrorToast/styles.css | 35 +++++++++++++ .../Questions/BooleanQuestion/index.js | 19 ++++--- .../Questions/BooleanQuestion/styles.css | 1 + .../Questions/FieldQuestion/index.js | 4 +- .../Questions/FieldQuestion/styles.css | 2 + .../Questions/FormQuestion/index.js | 17 +++--- .../webapp/src/components/Submission/index.js | 52 +------------------ .../src/components/TaskButton/styles.css | 7 +++ .../constraint_events/webapp/src/styles.css | 3 ++ .../src/views/Task/Events/Questions/index.js | 2 + .../src/views/Task/TaskDataCards/styles.css | 1 + 16 files changed, 132 insertions(+), 92 deletions(-) create mode 100644 crowdsourcing/constraint_events/webapp/src/components/Checkbox/index.js create mode 100644 crowdsourcing/constraint_events/webapp/src/components/Checkbox/styles.css diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 9548aeb1b..2beefe8d9 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -17,16 +17,18 @@ import { useMephistoTask } from "mephisto-task"; // import { TimesComponent } from "./components/times_component.jsx"; // import { SubmitButton } from "./components/submit_button.jsx"; //STYLING -import "./styles.css" +import "./styles.css"; +import 'bootstrap/dist/css/bootstrap.min.css'; //TOOLTIPS import 'react-tippy/dist/tippy.css' //CUSTOM COMPONENTS import Task from "./views/Task"; -import Preview from "./views/Preview" -import Submission from "./components/Submission" -import LoadingScreen from "./components/LoadingScreen" +import Preview from "./views/Preview"; +import Submission from "./components/Submission"; +import LoadingScreen from "./components/LoadingScreen"; +import ErrorToast from "./components/ErrorToast"; //UTILS -import TaskCopy from "./TaskCopy" +import TaskCopy from "./TaskCopy"; function MainApp() { const { @@ -39,14 +41,14 @@ function MainApp() { } = useMephistoTask(); //Error Handling const [showError, setShowError] = useState(false); - const [errorMessages, setErrorMessages] = useState(""); + const [errorMessages, setErrorMessages] = useState([]); //Events State const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(null); const [createdEntity, setCreatedEntity] = useState(null); const [isRemovingObjects, setIsRemovingObjects] = useState(null); const [removedObjects, setRemovedObjects] = useState([]); - const [isChangingDescription, setIsChangingDescription] = useState(false); + const [isChangingDescription, setIsChangingDescription] = useState(null); //Primary const [primaryModifiedAttributes, setPrimaryModifiedAttributes]= useState([]); const [primaryDescription, setPrimaryDescription] = useState(""); @@ -55,11 +57,11 @@ function MainApp() { const [secondaryDescription, setSecondaryDescription] = useState(""); //Constraint State - const [isSecondaryHeld, setIsSecondaryHeld] = useState(false); - const [isReversible, setIsReversible] = useState(false); - const [isInfinite, setIsInifinite] = useState(true) + const [isSecondaryHeld, setIsSecondaryHeld] = useState(null); + const [isReversible, setIsReversible] = useState(null); + const [isInfinite, setIsInifinite] = useState(null) const [timesRemaining, setTimesRemaining] = useState(0); - const [isLocationConstrained, setIsLocationConstrained] = useState(false); + const [isLocationConstrained, setIsLocationConstrained] = useState(null); const [constraintLocation, setConstraintLocation] = useState(""); //Primary const [primaryConstrainingAttributes, setPrimaryConstrainingAttributes]= useState([]); @@ -180,21 +182,20 @@ function MainApp() { //CONSTRAINT ERRORS //HELD if(isSecondaryHeld===null){ - updatedErrors.push(TaskCopy.errorKey.constraint.q1Blank) + updatedErrors.push(TaskCopy.errorKey.constraint.q1Null) } //REVERSIBLE if(isReversible===null){ - updatedErrors.push(TaskCopy.errorKey.constraint.q1Blank) + updatedErrors.push(TaskCopy.errorKey.constraint.q2Null) } //TIMES REMAINING if(isInfinite===null){ - updatedErrors.push(TaskCopy.errorKey.constraint.q1Blank) + updatedErrors.push(TaskCopy.errorKey.constraint.q3Null) } //LOCATIONS if(isLocationConstrained===null){ - + updatedErrors.push(TaskCopy.errorKey.constraint.q4Null) } - if(!showError && updatedErrors.length<=0){ // EVENT UPDATES //BROADCASTMESSAGE let updatedBroadcastMessage = broadcastMessage; @@ -351,9 +352,9 @@ function MainApp() { setShowError(true) } } - } return (
+ setShowError(false)}/> { + return ( +
+ { + isComplete ? + + : + + } +
+ ); +} + +export default Checkbox ; diff --git a/crowdsourcing/constraint_events/webapp/src/components/Checkbox/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Checkbox/styles.css new file mode 100644 index 000000000..3cf60b1bd --- /dev/null +++ b/crowdsourcing/constraint_events/webapp/src/components/Checkbox/styles.css @@ -0,0 +1,4 @@ +.checkbox-container { + margin-left: 6px; + margin-right: 4px; +} diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js index b3fb1e44d..9ef9e97d8 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js @@ -3,29 +3,31 @@ import React, {useState} from "react"; //STYLING import "./styles.css" //BOOTSTRAP COMPONENTS -import Toast from 'react-bootstrap/Toast' +import Alert from 'react-bootstrap/Alert' -const ErrorToast = ({ +const ErrorToast= ({ errors, showError, - hideErrors, + hideError, })=>{ return( - - + +

+ ERROR +

    { errors.map((err, index)=>( -
  • +
  • {err}
  • )) }
-
-
+ + )} export default ErrorToast diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css index e69de29bb..422f8780a 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css @@ -0,0 +1,35 @@ +ul{ + list-style: none; +} + +ul li::before { + content: "\2022"; + color: white; + font-weight: bold; + display: inline-block; + width: 3em; + margin-left: 1em; + } + +.toast-container{ + position: fixed; + background-color: red; + display: flex; + flex-direction: column; +} +.toast-header{ + color:white; + background-color: red; + font-weight: bold; + width: 90vw; +} +.toast-text{ + text-align: center; + font-weight: bold; +} + +.toast-error{ + color: white; + text-align: left; + width: 90vw; +} diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js index 57f391c0e..ed6fd3c21 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js @@ -3,9 +3,10 @@ import React, {useEffect, useState} from "react"; //STYLING import "./styles.css"; //CUSTOM COMPONENTS -import TaskButton from "../../TaskButton" +import TaskButton from "../../TaskButton"; import FormatQuestion from "../../Utils/FormatQuestion"; import InfoToolTip from "../../InfoToolTip"; +import Checkbox from "../../Checkbox"; const BooleanQuestion = ({ question, @@ -16,7 +17,8 @@ const BooleanQuestion = ({ children, formFunction, toolTipCopy, - hasToolTip + hasToolTip, + isComplete })=>{ const [answer, setAnswer] = useState(null); @@ -35,11 +37,14 @@ const BooleanQuestion = ({ hasToolTip ? - +
+ + +
: { const [description, setDescription] = useState("") useEffect(()=>{ @@ -33,9 +35,12 @@ const FormQuestion = ({ -

- {upperCaseQuestion ? question.toUpperCase() : question} -

+
+ +

+ {upperCaseQuestion ? question.toUpperCase() : question} +

+
:

diff --git a/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js b/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js index bfef77b17..a41b7c25b 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Submission/index.js @@ -7,63 +7,13 @@ import TaskButton from "../TaskButton" import Checklist from "./Checklist" const Submission = ({ - submitFunction, - broadcastMessage, - isCreatingEntity, - createdEntity, - isRemovingObjects, - removedObjects, - isChangingDescription, - isSecondaryHeld, - isReversible, - isInfinite, - timesRemaining, - isLocationConstrained, - constraintLocation + submitFunction })=>{ - //Event State - const [eventQuestion1, setEventQuestion1] = useState(null); - const [eventQuestion2, setEventQuestion2] = useState(null); - const [eventQuestion3, setEventQuestion3] = useState(null); - const [eventQuestion4, setEventQuestion4] = useState(null); - //Constraint State - const [constraintQuestion1, setConstraintQuestion1] = useState(null); - const [constraintQuestion2, setConstraintQuestion2] = useState(null); - const [constraintQuestion3, setConstraintQuestion3] = useState(null); - useEffect(()=>{ - - },) - const dummydata = { - eventsData:[ - {status:true, question: "1. Narrate this interaction to another observer who sees it happen. "}, - {status:true, question: "2. Are objects removed?"}, - {status:true, question: "3. Are objects transformed?"}, - {status:true, question: "4. Are objects created?"}, - ], - constraintData:[ - {status:true, question: "1. Does Lock need to be held? "}, - {status:true, question: "2. Could one use Lock with Key and expect the same outcome?"}, - {status:true, question: "3. Would this have to happen in a specific place?"}, - ] - } return(
-
- - -
Date: Mon, 5 Jul 2021 13:47:06 -0400 Subject: [PATCH 24/28] fixed checkbox, restyled headers, added plus icon to add attribute button --- crowdsourcing/constraint_events/webapp/src/app.jsx | 2 +- .../webapp/src/components/AttributeSetter/index.js | 10 ++++------ .../webapp/src/components/AttributeSetter/styles.css | 6 ++++-- .../webapp/src/components/DropdownSelect/index.js | 10 ++++++---- .../webapp/src/components/InfoToolTip/styles.css | 1 + .../webapp/src/components/TaskButton/styles.css | 1 + .../src/views/Task/Constraints/Questions/index.js | 4 ++++ .../webapp/src/views/Task/Events/Questions/index.js | 2 ++ 8 files changed, 23 insertions(+), 13 deletions(-) diff --git a/crowdsourcing/constraint_events/webapp/src/app.jsx b/crowdsourcing/constraint_events/webapp/src/app.jsx index 2beefe8d9..919731785 100644 --- a/crowdsourcing/constraint_events/webapp/src/app.jsx +++ b/crowdsourcing/constraint_events/webapp/src/app.jsx @@ -45,7 +45,7 @@ function MainApp() { //Events State const [broadcastMessage, setBroadcastMessage] = useState(""); const [isCreatingEntity, setIsCreatingEntity] = useState(null); - const [createdEntity, setCreatedEntity] = useState(null); + const [createdEntity, setCreatedEntity] = useState({}); const [isRemovingObjects, setIsRemovingObjects] = useState(null); const [removedObjects, setRemovedObjects] = useState([]); const [isChangingDescription, setIsChangingDescription] = useState(null); diff --git a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js index 026a49794..6fd63b509 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/index.js @@ -5,6 +5,8 @@ import "./styles.css" //CUSTOM COMPONENTS import AttributeRow from "./AttributeRow" import InfoToolTip from "../InfoToolTip"; +//ICONS +import { AiOutlinePlus } from "react-icons/ai"; const AttributeSetter = ({ header, @@ -55,9 +57,7 @@ const AttributeSetter = ({

-

- + -

+

@@ -70,9 +70,7 @@ const AttributeSetter = ({

-

- + -

+
} diff --git a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css index fdb6cc2f6..b5d3077d2 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/AttributeSetter/styles.css @@ -58,12 +58,13 @@ } .attribute-label__container { - + width:30%; } .attribute-label__text { - text-align: left; + text-align: center; font-size: 20px; + margin-bottom: 0px; } .name-text { @@ -73,6 +74,7 @@ border-style: ridge; padding: 3px; border-width: 4px; + width:80%; } .value-container{ display:flex; diff --git a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js index 872647e7b..b6d84a8cf 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/index.js @@ -5,16 +5,18 @@ import "./styles.css" const DropdownSelect = ({options, selectFunction})=>{ const [selectedOption, setSelectedOption]= useState("Select Location") + const [firstSelect, setFirstSelect] =useState(false) const selectHandler = (selection)=>{ - console.log("DROPDOWN SELECTION:", selection.value) - setSelectedOption(selection.value) - selectFunction(selection) + console.log("DROPDOWN SELECTION:", selection.value, selection.value !== "Select Location") + setFirstSelect(true) + setSelectedOption(selection.value) + selectFunction(selection) } console.log("OPTIONS", options) return(
diff --git a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/styles.css b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/styles.css index 32e2ce282..f703b5200 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/DropdownSelect/styles.css @@ -1,3 +1,4 @@ +/* DROPDOWN STYLES */ .dropdown-container { } diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js index 9ef9e97d8..99bbeebe7 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/index.js @@ -4,14 +4,12 @@ import React, {useState} from "react"; import "./styles.css" //BOOTSTRAP COMPONENTS import Alert from 'react-bootstrap/Alert' - +// ErrorToast - renders toast for user with relevant errors rendered as a bulleted list in the toast. const ErrorToast= ({ - errors, - showError, - hideError, + errors, // Array of Errors from App state generated when user attempts an erroneous submission + showError, //Boolean signaling toast to render. + hideError, // Function that will hide toast upon clicking the x in the top right corner })=>{ - - return(

diff --git a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css index 422f8780a..d16bdd4f6 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/ErrorToast/styles.css @@ -1,3 +1,4 @@ +/* ERROR TOAST STYLES */ ul{ list-style: none; } diff --git a/crowdsourcing/constraint_events/webapp/src/components/Header/index.js b/crowdsourcing/constraint_events/webapp/src/components/Header/index.js index 0964603a1..c92294331 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Header/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Header/index.js @@ -1,7 +1,8 @@ +//REACT import React from "react"; - +//STYLES import "./styles.css" - +// header - renders task header const Header = () => { return (

diff --git a/crowdsourcing/constraint_events/webapp/src/components/Header/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Header/styles.css index 79f8fad64..0222484af 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Header/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/Header/styles.css @@ -1,3 +1,4 @@ +/* HEADER STYLES */ .header { width: 100%; display: flex; diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js index 17e02d8f2..3a540acbd 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/Tip.js @@ -1,11 +1,10 @@ -import React, {useEffect, useState} from "react"; - -import {Tooltip} from 'react-tippy'; -// ICONS -import { BsInfoCircle } from "react-icons/bs"; - -const Tip = ({tutorialCopy})=>{ +//REACT +import React from "react"; +// Tip - html rendered by tool tip +const Tip = ({ + tutorialCopy//Text that will be displayed in the tool tip +})=>{ return (

@@ -15,5 +14,4 @@ const Tip = ({tutorialCopy})=>{ ) } - export default Tip ; diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js index 394d96433..e545439a4 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/index.js @@ -1,32 +1,42 @@ +//REACT import React, {useEffect, useState} from "react"; - +//STYLING import "./styles.css"; +//REACT TIPPY import {Tooltip} from 'react-tippy'; // ICONS import { BsInfoCircle } from "react-icons/bs"; - //CUSTOM COMPONENTS import Tip from "./Tip" -const InfoToolTip = ({tutorialCopy, children})=>{ +// InfoToolTip - renders an info icon that will display tooltip copy provided by props if has tooltip boolean value is true. Other wise it will plainly render the child component +const InfoToolTip = ({ + hasToolTip,//Boolean value stating whether child component has tool tip or not. + tutorialCopy, // Tool Tip Copy passed as string + children // JSX next to tooltip +})=>{ + + if(hasToolTip){ return ( -

-
- {children} +
+
+ {children} +
+ + } + position="left" + theme="dark" + size="big" + > + +
- - } - position="left" - theme="dark" - size="big" - > - - -
- ) + )}else{ + return <>{children} + } } diff --git a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css index 345910099..35b7fe611 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/InfoToolTip/styles.css @@ -1,3 +1,4 @@ +/* INFO TOOL TIP STYLES */ .info-container { display: flex; flex-direction: row; @@ -9,13 +10,15 @@ .tip-container{ height: 100%; width: 100%; + z-index: 100; + background-color: black; + border-radius: 15px; } .tip-text { font-size: 16px; color:white; - background-color:rgba(0, 0, 0, 0.5); - padding:4px; - border-radius: 15px; + padding:10px; + margin:0; } .info-icon{ diff --git a/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/index.js b/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/index.js index 641741770..684573796 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/index.js @@ -1,8 +1,9 @@ +//REACT import React from "react"; - +//STYLING import "./styles.css" - +// loadingScreen - what will be rendered when mephisto isLoading prop is true const LoadingScreen = ()=> { return (
diff --git a/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/styles.css b/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/styles.css index e69de29bb..85b7e5258 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/LoadingScreen/styles.css @@ -0,0 +1 @@ +/* LOADING SCREEN STYLES*/ diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js index ed6fd3c21..97912aa43 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/index.js @@ -7,25 +7,28 @@ import TaskButton from "../../TaskButton"; import FormatQuestion from "../../Utils/FormatQuestion"; import InfoToolTip from "../../InfoToolTip"; import Checkbox from "../../Checkbox"; - +//BooleanQuestion - a component that renders a question that expects a boolean answer. If a component is wrapped by this component under the "true" answer it will conditionally render that child. const BooleanQuestion = ({ - question, - trueAnswer, - falseAnswer, - keywords, - inverted, - children, - formFunction, - toolTipCopy, - hasToolTip, - isComplete + question, // The Question posed by the question + trueAnswer, //Object that will have a name attribute which will be the text rendered on the "true" button + falseAnswer,//Object that will have a name attribute which will be the text rendered on the "false" button + keywords, //key words will replace any # in the header text being formatted by the formatQuestion function + inverted,// Will render children based on a false answer rather that true if this value is true + formFunction,// setState function that connects the answer to the payload state + toolTipCopy,// Copy for desired tooltip + hasToolTip,// Boolean stating whether or not this component has a tooltip + isComplete,// Completion condition for question to be satisfactorily answered + children })=>{ + //local state for question answer const [answer, setAnswer] = useState(null); + //sets both local and payload state to true const trueHandler = ()=>{ setAnswer(true) formFunction(true) } + //sets both local and payload state to false const falseHandler = ()=>{ setAnswer(false) formFunction(false) @@ -33,9 +36,6 @@ const BooleanQuestion = ({ return(
- { - hasToolTip - ?
@@ -43,16 +43,10 @@ const BooleanQuestion = ({ question={question} keywords={keywords} containerStyle="booleanquestion-text" + hasToolTip={hasToolTip} />
- : - - }
- { + { //if inverted it will only render child if answer is false not if answer == null ((!!inverted ? (!answer && answer!==null) : answer) && children) ? children : diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/styles.css index 9dcc6b362..2cd5b58c4 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/BooleanQuestion/styles.css @@ -1,3 +1,4 @@ +/* BOOLEAN QUESTION STYLES */ .booleanquestion-container { display: flex; justify-content: flex-start; diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js index a07667620..bd25a8f95 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/FieldRow.js @@ -1,20 +1,25 @@ -import React, {useEffect, useState} from "react"; - +//REACT +import React, {useState} from "react"; //CUSTOM COMPONENTS import DropdownSelect from "../../DropdownSelect"; - -const FieldRow = ({field, dropdown, options, changeFunction, formState})=>{ +// fieldrow - row with styled form label and input to the right of it. Input is "fed" into field question. This is for question with multiple short inputs. +const FieldRow = ({ + field, //Object with name and value attributes + dropdown, // boolean value signalling whether field is a dropdown or not + options, // Options in the dropdown an array of objects which have name and val attributes + changeFunction, //function that updates the field question state +})=>{ + //field local state const [fieldVal, setFieldVal] = useState("") + //updates state in field question component const changeHandler = e=>{ e.preventDefault() - console.log("FIELD UPDATE", field, ": ", e.target.value) setFieldVal(e.target.value) changeFunction(e.target.value) } - + // if dropdown is true renders field with dropdown input if(dropdown){ - return(
@@ -33,6 +38,7 @@ const FieldRow = ({field, dropdown, options, changeFunction, formState})=>{
) }else{ + //if dropdown if false renders field with text input return(
diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js index daaef8a08..3b4f2cab1 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/index.js @@ -1,19 +1,20 @@ //REACT -import React, {useEffect, useRef} from "react"; +import Reacts from "react"; //STYLING import "./styles.css" //CUSTOM COMPONENTS import FieldRow from "./FieldRow"; +// FieldQuestion - a question who's answer is a form with multiple fields. these fields can be text input or dropdown. const FieldQuestion = ({ - question, - fields, - formFunction, - formState + question,//question text + fields,//an array of objects with a string name attribute, a dropdown boolean attribute, and if boolean is true an array of options for the dropdown + formFunction,// function that connects question answer to payload state. + formState, // payload state })=>{ + //updates payload state with for inputs const ChangeHandler = (formName, formVal)=>{ let updatedState = {...formState, [formName]:formVal} - console.log("UPDATE", updatedState) formFunction(updatedState) } return( @@ -29,7 +30,6 @@ const FieldQuestion = ({ dropdown={field.dropdown} options={field.options} changeFunction={val=>ChangeHandler(field.name, val)} - formState={formState} /> )) :null diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css index 194d5f23d..00c08012e 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FieldQuestion/styles.css @@ -1,3 +1,4 @@ +/* FIELD QUESTION STYLES */ .fieldquestion-container { display: flex; justify-content: center; diff --git a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js index db2a230a0..11336f588 100644 --- a/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js +++ b/crowdsourcing/constraint_events/webapp/src/components/Questions/FormQuestion/index.js @@ -2,26 +2,29 @@ import React, {useEffect, useState, useRef} from "react"; //STYLES import "./styles.css" - //CUSTOM COMPONENT import InfoToolTip from "../../InfoToolTip"; import Checkbox from "../../Checkbox"; +//FormQuestion - a question who's answer is gathered from simple text input const FormQuestion = ({ - question, - placeholder, - questionColor, - upperCaseQuestion, - formVal, - formFunction, - toolTipCopy, - hasToolTip, - isComplete + question,//Actual text of question + placeholder,// Placeholder if needed + questionColor, //Text color + upperCaseQuestion, // boolean that makes question entirely uppercase + formVal,// Initial form value + formFunction,// setState function that connects answer to payload state + toolTipCopy,// Text that will appear in tooltip + hasToolTip,// boolean that adds tooltip icon and text if true + isComplete// completion condition })=>{ + //local state of form const [description, setDescription] = useState("") + //Sets initial value on render useEffect(()=>{ setDescription(formVal) },[]) + //Updates both local and payload state with answer const changeHandler = e=>{ e.preventDefault() setDescription(e.target.value) @@ -29,11 +32,9 @@ const FormQuestion = ({ } return(
- { - hasToolTip - ?
@@ -42,13 +43,7 @@ const FormQuestion = ({
- : -

- {upperCaseQuestion ? question.toUpperCase() : question} -

- }

-