From 95edf172fe55f6788e2ecdb1776c3b2e2173e53b Mon Sep 17 00:00:00 2001 From: Cagatay Sonmez Date: Sun, 25 Nov 2018 23:26:41 +0300 Subject: [PATCH 1/3] The mobile processing unit support as well as a sample application are added. The mobile processing units are simulated via CloudSim. It is assumed that the mobile devices operate Hosts and VMs like a server. Therefore, the classes located in the mobile_processing_unit package have a similar naming convention to the other Cloud and Edge components. --- .../matlab/plotTaskFailureReason.m | 20 +- .../matlab/plotTaskFailureReason.m | 30 +- scripts/sample_app3/config/applications.xml | 59 ++ .../config/default_config.properties | 43 + scripts/sample_app3/config/edge_devices.xml | 983 ++++++++++++++++++ scripts/sample_app3/matlab/getConfiguration.m | 53 + .../sample_app3/matlab/plotAvgFailedTask.m | 21 + .../sample_app3/matlab/plotAvgNetworkDelay.m | 14 + .../matlab/plotAvgProcessingTime.m | 21 + .../sample_app3/matlab/plotAvgServiceTime.m | 21 + .../sample_app3/matlab/plotAvgVmUtilization.m | 14 + .../sample_app3/matlab/plotGenericResult.m | 149 +++ .../matlab/plotTaskFailureReason.m | 20 + .../sample_app1/SampleScenarioFactory.java | 10 +- .../sample_app2/SampleScenarioFactory.java | 7 + .../applications/sample_app3/MainApp.java | 131 +++ .../sample_app3/SampleEdgeOrchestrator.java | 125 +++ .../SampleMobileDeviceManager.java | 299 ++++++ .../SampleMobileServerManager.java | 184 ++++ .../sample_app3/SampleNetworkModel.java | 243 +++++ .../sample_app3/SampleScenarioFactory.java | 82 ++ .../cloud_server/CloudServerManager.java | 16 + .../CloudVmAllocationPolicy_Custom.java | 4 +- .../edgecloudsim/core/ScenarioFactory.java | 6 + .../boun/edgecloudsim/core/SimManager.java | 25 +- .../boun/edgecloudsim/core/SimSettings.java | 61 +- .../CpuUtilizationModel_Custom.java | 4 + .../DefaultMobileDeviceManager.java | 2 +- .../DefaultMobileServerManager.java | 58 ++ .../mobile_processing_unit/MobileHost.java | 43 + .../MobileServerManager.java | 78 ++ .../mobile_processing_unit/MobileVM.java | 36 + .../MobileVmAllocationPolicy_Custom.java | 132 +++ .../edge_server/EdgeServerManager.java | 16 + .../EdgeVmAllocationPolicy_Custom.java | 4 +- .../boun/edgecloudsim/utils/SimLogger.java | 171 ++- 36 files changed, 3095 insertions(+), 90 deletions(-) create mode 100644 scripts/sample_app3/config/applications.xml create mode 100644 scripts/sample_app3/config/default_config.properties create mode 100644 scripts/sample_app3/config/edge_devices.xml create mode 100644 scripts/sample_app3/matlab/getConfiguration.m create mode 100644 scripts/sample_app3/matlab/plotAvgFailedTask.m create mode 100644 scripts/sample_app3/matlab/plotAvgNetworkDelay.m create mode 100644 scripts/sample_app3/matlab/plotAvgProcessingTime.m create mode 100644 scripts/sample_app3/matlab/plotAvgServiceTime.m create mode 100644 scripts/sample_app3/matlab/plotAvgVmUtilization.m create mode 100644 scripts/sample_app3/matlab/plotGenericResult.m create mode 100644 scripts/sample_app3/matlab/plotTaskFailureReason.m create mode 100644 src/edu/boun/edgecloudsim/applications/sample_app3/MainApp.java create mode 100644 src/edu/boun/edgecloudsim/applications/sample_app3/SampleEdgeOrchestrator.java create mode 100644 src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileDeviceManager.java create mode 100644 src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileServerManager.java create mode 100644 src/edu/boun/edgecloudsim/applications/sample_app3/SampleNetworkModel.java create mode 100644 src/edu/boun/edgecloudsim/applications/sample_app3/SampleScenarioFactory.java create mode 100644 src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/DefaultMobileServerManager.java create mode 100644 src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileHost.java create mode 100644 src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileServerManager.java create mode 100644 src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVM.java create mode 100644 src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVmAllocationPolicy_Custom.java diff --git a/scripts/sample_app1/matlab/plotTaskFailureReason.m b/scripts/sample_app1/matlab/plotTaskFailureReason.m index 8e9e31f..d8f2c8e 100644 --- a/scripts/sample_app1/matlab/plotTaskFailureReason.m +++ b/scripts/sample_app1/matlab/plotTaskFailureReason.m @@ -12,16 +12,16 @@ function [] = plotTaskFailureReason() plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Heavy Computation App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); - plotGenericResult(5, 4, 'Failed Tasks due to WLAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); + plotGenericResult(5, 5, 'Failed Tasks due to WLAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); - plotGenericResult(5, 6, 'Failed Tasks due to WAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); + plotGenericResult(5, 7, 'Failed Tasks due to WAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); end \ No newline at end of file diff --git a/scripts/sample_app2/matlab/plotTaskFailureReason.m b/scripts/sample_app2/matlab/plotTaskFailureReason.m index 8dfd6a9..4e71b7f 100644 --- a/scripts/sample_app2/matlab/plotTaskFailureReason.m +++ b/scripts/sample_app2/matlab/plotTaskFailureReason.m @@ -12,22 +12,22 @@ function [] = plotTaskFailureReason() plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Heavy Computation App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); - plotGenericResult(5, 4, 'Failed Tasks due to WLAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); - plotGenericResult(5, 4, {'Failed Tasks due to WLAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); + plotGenericResult(5, 5, 'Failed Tasks due to WLAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(5, 5, {'Failed Tasks due to WLAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); - plotGenericResult(5, 5, 'Failed Tasks due to MAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); - plotGenericResult(5, 5, {'Failed Tasks due to MAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); - plotGenericResult(5, 5, {'Failed Tasks due to MAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); - plotGenericResult(5, 5, {'Failed Tasks due to MAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); - plotGenericResult(5, 5, {'Failed Tasks due to MAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); + plotGenericResult(5, 6, 'Failed Tasks due to MAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(5, 6, {'Failed Tasks due to MAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(5, 6, {'Failed Tasks due to MAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(5, 6, {'Failed Tasks due to MAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(5, 6, {'Failed Tasks due to MAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); - plotGenericResult(5, 6, 'Failed Tasks due to WAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); - plotGenericResult(5, 6, {'Failed Tasks due to WAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); + plotGenericResult(5, 7, 'Failed Tasks due to WAN failure (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(5, 7, {'Failed Tasks due to WAN failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); end \ No newline at end of file diff --git a/scripts/sample_app3/config/applications.xml b/scripts/sample_app3/config/applications.xml new file mode 100644 index 0000000..daf7cfd --- /dev/null +++ b/scripts/sample_app3/config/applications.xml @@ -0,0 +1,59 @@ + + + + 30 + 20 + 2 + 40 + 20 + 1500 + 250 + 12000 + 1 + 8 + 0.8 + 20 + + + 20 + 20 + 3 + 45 + 90 + 200 + 1250 + 6000 + 1 + 4 + 0.4 + 10 + + + 20 + 40 + 20 + 60 + 120 + 2500 + 200 + 30000 + 1 + 20 + 2 + 50 + + + 30 + 10 + 7 + 30 + 45 + 250 + 1000 + 15000 + 1 + 10 + 1 + 25 + + \ No newline at end of file diff --git a/scripts/sample_app3/config/default_config.properties b/scripts/sample_app3/config/default_config.properties new file mode 100644 index 0000000..a19a3ac --- /dev/null +++ b/scripts/sample_app3/config/default_config.properties @@ -0,0 +1,43 @@ +#default config file +simulation_time=33 +warm_up_period=3 +vm_load_check_interval=0.1 +vm_location_check_interval=0.1 +file_log_enabled=true +deep_file_log_enabled=false + +min_number_of_mobile_devices=200 +max_number_of_mobile_devices=2000 +mobile_device_counter_size=200 + +wan_propogation_delay=0.1 +lan_internal_delay=0.005 +wlan_bandwidth=0 +wan_bandwidth=0 +gsm_bandwidth=0 + +#all the host on cloud runs on a single datacenter +number_of_host_on_cloud_datacenter=1 +number_of_vm_on_cloud_host=4 +core_for_cloud_vm=4 +mips_for_cloud_vm=100000 +ram_for_cloud_vm=32000 +storage_for_cloud_vm=1000000 + +#each mobile device has one host which serves one VM +#all the host runs on a single datacenter due to the out of memory (oom) issue +core_for_mobile_vm=1 +mips_for_mobile_vm=4000 +ram_for_mobile_vm=2000 +storage_for_mobile_vm=32000 + +#use ',' for multiple values +orchestrator_policies=ONLY_EDGE,ONLY_MOBILE,HYBRID + +#use ',' for multiple values +simulation_scenarios=MOBILE_PROCESSING_SCENARIO + +#mean waiting time in seconds +attractiveness_L1_mean_waiting_time=480 +attractiveness_L2_mean_waiting_time=300 +attractiveness_L3_mean_waiting_time=120 diff --git a/scripts/sample_app3/config/edge_devices.xml b/scripts/sample_app3/config/edge_devices.xml new file mode 100644 index 0000000..1f9279f --- /dev/null +++ b/scripts/sample_app3/config/edge_devices.xml @@ -0,0 +1,983 @@ + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 1 + 1 + 0 + 0 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 2 + 2 + 1 + 0 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 3 + 3 + 2 + 1 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 4 + 4 + 3 + 1 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 5 + 5 + 4 + 1 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 6 + 6 + 5 + 1 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 7 + 7 + 6 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 8 + 8 + 7 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 9 + 9 + 8 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 10 + 10 + 9 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 11 + 11 + 10 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 12 + 12 + 11 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 13 + 13 + 12 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + + 0.1 + 3.0 + 0.05 + 0.1 + + 14 + 14 + 13 + 2 + + + + 16 + 80000 + 16000 + 400000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + 2 + 10000 + 2000 + 50000 + + + + + + \ No newline at end of file diff --git a/scripts/sample_app3/matlab/getConfiguration.m b/scripts/sample_app3/matlab/getConfiguration.m new file mode 100644 index 0000000..3f23926 --- /dev/null +++ b/scripts/sample_app3/matlab/getConfiguration.m @@ -0,0 +1,53 @@ +%-------------------------------------------------------------- +%description +% returns a value according to the given argumentssss +%-------------------------------------------------------------- +function [ret_val] = getConfiguration(argType) + if(argType == 1) + ret_val = 'D:\sim_results'; + elseif(argType == 2) + ret_val = 10; %Number of iterations + elseif(argType == 3) + ret_val = 200; %min number of mobile device + elseif(argType == 4) + ret_val = 200; %step size of mobile device count + elseif(argType == 5) + ret_val =2000; %max number of mobile device + elseif(argType == 6) + ret_val = 1; %xTickLabelCoefficient + elseif(argType == 7) + ret_val = {'ONLY_EDGE','ONLY_MOBILE','HYBRID'}; + elseif(argType == 8) + ret_val = {'only edge','only mobile','hybrid'}; + elseif(argType == 9) + ret_val=[10 3 12 12]; %position of figure + elseif(argType == 10) + ret_val = 'Number of Mobile Devices'; %Common text for x axis + elseif(argType == 11) + ret_val = 1; %return 1 if you want to save figure as pdf + elseif(argType == 12) + ret_val = 0; %return 1 if you want to plot errors + elseif(argType == 20) + ret_val=1; %return 1 if graph is plotted colerful + elseif(argType == 21) + ret_val=[0.55 0 0]; %color of first line + elseif(argType == 22) + ret_val=[0 0.15 0.6]; %color of second line + elseif(argType == 23) + ret_val=[0 0.23 0]; %color of third line + elseif(argType == 24) + ret_val=[0.6 0 0.6]; %color of fourth line + elseif(argType == 25) + ret_val=[0.08 0.08 0.08]; %color of fifth line + elseif(argType == 26) + ret_val=[0 0.8 0.8]; %color of sixth line + elseif(argType == 27) + ret_val=[0.8 0.4 0]; %color of seventh line + elseif(argType == 28) + ret_val=[0.8 0.8 0]; %color of eighth line + elseif(argType == 40) + ret_val={'-k*','-ko','-ks','-kv','-kp','-kd','-kx','-kh'}; %line style (marker) of the colerless line + elseif(argType == 50) + ret_val={':k*',':ko',':ks',':kv',':kp',':kd',':kx',':kh'}; %line style (marker) of the colerfull line + end +end \ No newline at end of file diff --git a/scripts/sample_app3/matlab/plotAvgFailedTask.m b/scripts/sample_app3/matlab/plotAvgFailedTask.m new file mode 100644 index 0000000..dc9a792 --- /dev/null +++ b/scripts/sample_app3/matlab/plotAvgFailedTask.m @@ -0,0 +1,21 @@ +function [] = plotAvgFailedTask() + + plotGenericResult(1, 2, 'Failed Tasks (%)', 'ALL_APPS', 'percentage_for_all'); + plotGenericResult(1, 2, {'Failed Tasks for';'Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'percentage_for_all'); + plotGenericResult(1, 2, 'Failed Tasks for Health App (%)', 'HEALTH_APP', 'percentage_for_all'); + plotGenericResult(1, 2, {'Failed Tasks for';'Infotainment App (%)'}, 'INFOTAINMENT_APP', 'percentage_for_all'); + plotGenericResult(1, 2, 'Failed Tasks for Heavy Comp. App (%)', 'HEAVY_COMP_APP', 'percentage_for_all'); + + plotGenericResult(2, 2, 'Failed Tasks on Edge (%)', 'ALL_APPS', 'percentage_for_all'); + plotGenericResult(2, 2, {'Failed Tasks on Edge';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'percentage_for_all'); + plotGenericResult(2, 2, 'Failed Tasks on Edge for Health App (%)', 'HEALTH_APP', 'percentage_for_all'); + plotGenericResult(2, 2, 'Failed Tasks on Edge for Infotainment App (%)', 'INFOTAINMENT_APP', 'percentage_for_all'); + plotGenericResult(2, 2, 'Failed Tasks on Edge for Heavy Comp. App (%)', 'HEAVY_COMP_APP', 'percentage_for_all'); + + plotGenericResult(4, 2, 'Failed Tasks on Mobile (%)', 'ALL_APPS', 'percentage_for_all'); + plotGenericResult(4, 2, {'Failed Tasks on Mobile for';'Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'percentage_for_all'); + plotGenericResult(4, 2, 'Failed Tasks on Mobile for Health App (%)', 'HEALTH_APP', 'percentage_for_all'); + plotGenericResult(4, 2, 'Failed Tasks on Mobile for Infotainment App (%)', 'INFOTAINMENT_APP', 'percentage_for_all'); + plotGenericResult(4, 2, 'Failed Tasks on Mobile for Heavy Comp. App (%)', 'HEAVY_COMP_APP', 'percentage_for_all'); + +end \ No newline at end of file diff --git a/scripts/sample_app3/matlab/plotAvgNetworkDelay.m b/scripts/sample_app3/matlab/plotAvgNetworkDelay.m new file mode 100644 index 0000000..69f2342 --- /dev/null +++ b/scripts/sample_app3/matlab/plotAvgNetworkDelay.m @@ -0,0 +1,14 @@ +function [] = plotAvgNetworkDelay() + + plotGenericResult(1, 7, 'Average Network Delay (sec)', 'ALL_APPS', ''); + plotGenericResult(1, 7, {'Average Network Delay';'for Augmented Reality App (sec)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(1, 7, 'Average Network Delay for Health App (sec)', 'HEALTH_APP', ''); + plotGenericResult(1, 7, {'Average Network Delay';'for Infotainment App (sec)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(1, 7, {'Average Network Delay';'for Heavy Comp. App (sec)'}, 'HEAVY_COMP_APP', ''); + + plotGenericResult(5, 1, 'Average WLAN Delay (sec)', 'ALL_APPS', ''); + plotGenericResult(5, 1, {'Average WLAN Delay';'for Augmented Reality App (sec)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(5, 1, 'Average WLAN Delay for Health App (sec)', 'HEALTH_APP', ''); + plotGenericResult(5, 1, {'Average WLAN Delay';'for Infotainment App (sec)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(5, 1, {'Average WLAN Delay';'for Heavy Comp. App %(sec)'}, 'HEAVY_COMP_APP', ''); +end \ No newline at end of file diff --git a/scripts/sample_app3/matlab/plotAvgProcessingTime.m b/scripts/sample_app3/matlab/plotAvgProcessingTime.m new file mode 100644 index 0000000..3f915e7 --- /dev/null +++ b/scripts/sample_app3/matlab/plotAvgProcessingTime.m @@ -0,0 +1,21 @@ +function [] = plotAvgProcessingTime() + + plotGenericResult(1, 6, 'Processing Time (sec)', 'ALL_APPS', ''); + plotGenericResult(1, 6, 'Processing Time for Augmented Reality App (sec)', 'AUGMENTED_REALITY', ''); + plotGenericResult(1, 6, 'Processing Time for Health App (sec)', 'HEALTH_APP', ''); + plotGenericResult(1, 6, 'Processing Time for Infotainment App (sec)', 'INFOTAINMENT_APP', ''); + plotGenericResult(1, 6, 'Processing Time for Heavy Comp. App (sec)', 'HEAVY_COMP_APP', ''); + + plotGenericResult(2, 6, 'Processing Time on Edge (sec)', 'ALL_APPS', ''); + plotGenericResult(2, 6, {'Processing Time on Edge';'for Augmented Reality App (sec)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(2, 6, {'Processing Time on Edge';'for Health App (sec)'}, 'HEALTH_APP', ''); + plotGenericResult(2, 6, {'Processing Time on Edge';'for Infotainment App (sec)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(2, 6, {'Processing Time on Edge';'for Heavy Computation App (sec)'}, 'HEAVY_COMP_APP', ''); + + plotGenericResult(4, 6, 'Processing Time on Mobile (sec)', 'ALL_APPS', ''); + plotGenericResult(4, 6, {'Processing Time on Mobile';'for Augmented Reality App (sec)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(4, 6, {'Processing Time on Mobile';'for Health App (sec)'}, 'HEALTH_APP', ''); + plotGenericResult(4, 6, {'Processing Time on Mobile';'for Infotainment App (sec)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(4, 6, {'Processing Time on Mobile';'for Heavy Computation App (sec)'}, 'HEAVY_COMP_APP', ''); + +end \ No newline at end of file diff --git a/scripts/sample_app3/matlab/plotAvgServiceTime.m b/scripts/sample_app3/matlab/plotAvgServiceTime.m new file mode 100644 index 0000000..791d59b --- /dev/null +++ b/scripts/sample_app3/matlab/plotAvgServiceTime.m @@ -0,0 +1,21 @@ +function [] = plotAvgServiceTime() + + plotGenericResult(1, 5, 'Service Time (sec)', 'ALL_APPS', ''); + plotGenericResult(1, 5, {'Service Time for';'Augmented Reality App (sec)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(1, 5, 'Service Time for Health App (sec)', 'HEALTH_APP', ''); + plotGenericResult(1, 5, 'Service Time for Infotainment App (sec)', 'INFOTAINMENT_APP', ''); + plotGenericResult(1, 5, {'Service Time for';'Compute Intensive App (sec)'}, 'HEAVY_COMP_APP', ''); + + plotGenericResult(2, 5, 'Service Time on Edge (sec)', 'ALL_APPS', ''); + plotGenericResult(2, 5, {'Service Time on Edge';'for Augmented Reality App (sec)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(2, 5, 'Service Time on Edge for Health App (sec)', 'HEALTH_APP', ''); + plotGenericResult(2, 5, {'Service Time on Edge';'for Infotainment App (sec)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(2, 5, {'Service Time on Edge';'for Heavy Comp. App (sec)'}, 'HEAVY_COMP_APP', ''); + + plotGenericResult(4, 5, 'Service Time on Mobile (sec)', 'ALL_APPS', ''); + plotGenericResult(4, 5, {'Service Time on Mobile';'for Augmented Reality App (sec)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(4, 5, 'Service Time on Mobile for Health App (sec)', 'HEALTH_APP', ''); + plotGenericResult(4, 5, {'Service Time on Mobile';'for Infotainment App (sec)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(4, 5, {'Service Time on Mobile';'for Heavy Comp. App (sec)'}, 'HEAVY_COMP_APP', ''); + +end \ No newline at end of file diff --git a/scripts/sample_app3/matlab/plotAvgVmUtilization.m b/scripts/sample_app3/matlab/plotAvgVmUtilization.m new file mode 100644 index 0000000..4ef9307 --- /dev/null +++ b/scripts/sample_app3/matlab/plotAvgVmUtilization.m @@ -0,0 +1,14 @@ +function [] = plotAvgVmUtilization() + + plotGenericResult(2, 8, 'Average VM Utilization of Edge (%)', 'ALL_APPS', ''); + plotGenericResult(2, 8, {'Average VM Utilization of Edge';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(2, 8, {'Average VM Utilization of Edge';'for Health App (%)'}, 'HEALTH_APP', ''); + plotGenericResult(2, 8, {'Average VM Utilization of Edge';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(2, 8, {'Average VM Utilization of Edge';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', ''); + + plotGenericResult(4, 8, 'Average VM Utilization of Mobile(%)', 'ALL_APPS', ''); + plotGenericResult(4, 8, {'Average VM Utilization of Mobile';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', ''); + plotGenericResult(4, 8, {'Average VM Utilization of Mobile';'for Health App (%)'}, 'HEALTH_APP', ''); + plotGenericResult(4, 8, {'Average VM Utilization of Mobile';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', ''); + plotGenericResult(4, 8, {'Average VM Utilization of Mobile';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', ''); +end \ No newline at end of file diff --git a/scripts/sample_app3/matlab/plotGenericResult.m b/scripts/sample_app3/matlab/plotGenericResult.m new file mode 100644 index 0000000..9d60fc0 --- /dev/null +++ b/scripts/sample_app3/matlab/plotGenericResult.m @@ -0,0 +1,149 @@ +function [] = plotGenericResult(rowOfset, columnOfset, yLabel, appType, calculatePercentage) + folderPath = getConfiguration(1); + numOfSimulations = getConfiguration(2); + startOfMobileDeviceLoop = getConfiguration(3); + stepOfMobileDeviceLoop = getConfiguration(4); + endOfMobileDeviceLoop = getConfiguration(5); + xTickLabelCoefficient = getConfiguration(6); + + scenarioType = getConfiguration(7); + legends = getConfiguration(8); + numOfMobileDevices = (endOfMobileDeviceLoop - startOfMobileDeviceLoop)/stepOfMobileDeviceLoop + 1; + + pos=getConfiguration(9); + + all_results = zeros(numOfSimulations, size(scenarioType,2), numOfMobileDevices); + min_results = zeros(size(scenarioType,2), numOfMobileDevices); + max_results = zeros(size(scenarioType,2), numOfMobileDevices); + + for s=1:numOfSimulations + for i=1:size(scenarioType,2) + for j=1:numOfMobileDevices + try + mobileDeviceNumber = startOfMobileDeviceLoop + stepOfMobileDeviceLoop * (j-1); + filePath = strcat(folderPath,'\ite',int2str(s),'\SIMRESULT_MOBILE_PROCESSING_SCENARIO_',char(scenarioType(i)),'_',int2str(mobileDeviceNumber),'DEVICES_',appType,'_GENERIC.log'); + + readData = dlmread(filePath,';',rowOfset,0); + value = readData(1,columnOfset); + if(strcmp(calculatePercentage,'percentage_for_all')) + readData = dlmread(filePath,';',1,0); + totalTask = readData(1,1)+readData(1,2); + value = (100 * value) / totalTask; + elseif(strcmp(calculatePercentage,'percentage_for_completed')) + readData = dlmread(filePath,';',1,0); + totalTask = readData(1,1); + value = (100 * value) / totalTask; + elseif(strcmp(calculatePercentage,'percentage_for_failed')) + readData = dlmread(filePath,';',1,0); + totalTask = readData(1,2); + value = (100 * value) / totalTask; + end + + all_results(s,i,j) = value; + catch err + error(err) + end + end + end + end + + if(numOfSimulations == 1) + results = all_results; + else + results = mean(all_results); %still 3d matrix but 1xMxN format + end + + results = squeeze(results); %remove singleton dimensions + + for i=1:size(scenarioType,2) + for j=1:numOfMobileDevices + x=all_results(:,i,j); % Create Data + SEM = std(x)/sqrt(length(x)); % Standard Error + ts = tinv([0.05 0.95],length(x)-1); % T-Score + CI = mean(x) + ts*SEM; % Confidence Intervals + + if(CI(1) < 0) + CI(1) = 0; + end + + if(CI(2) < 0) + CI(2) = 0; + end + + min_results(i,j) = results(i,j) - CI(1); + max_results(i,j) = CI(2) - results(i,j); + end + end + + types = zeros(1,numOfMobileDevices); + for i=1:numOfMobileDevices + types(i)=startOfMobileDeviceLoop+((i-1)*stepOfMobileDeviceLoop); + end + + hFig = figure; + set(hFig, 'Units','centimeters'); + set(hFig, 'Position',pos); + set(0,'DefaultAxesFontName','Times New Roman'); + set(0,'DefaultTextFontName','Times New Roman'); + set(0,'DefaultAxesFontSize',10); + set(0,'DefaultTextFontSize',12); + if(getConfiguration(20) == 1) + for i=1:1:numOfMobileDevices + xIndex=startOfMobileDeviceLoop+((i-1)*stepOfMobileDeviceLoop); + + markers = getConfiguration(50); + for j=1:size(scenarioType,2) + plot(xIndex, results(j,i),char(markers(j)),'MarkerFaceColor',getConfiguration(20+j),'color',getConfiguration(20+j)); + hold on; + end + end + + for j=1:size(scenarioType,2) + if(getConfiguration(12) == 1) + errorbar(types, results(j,:), min_results(j,:),max_results(j,:),':k','color',getConfiguration(20+j),'LineWidth',1.5); + else + plot(types, results(j,:),':k','color',getConfiguration(20+j),'LineWidth',1.5); + end + hold on; + end + + set(gca,'color','none'); + else + markers = getConfiguration(40); + for j=1:size(scenarioType,2) + if(getConfiguration(12) == 1) + errorbar(types, results(j,:),min_results(j,:),max_results(j,:),char(markers(j)),'MarkerFaceColor','w','LineWidth',1.2); + else + plot(types, results(j,:),char(markers(j)),'MarkerFaceColor','w','LineWidth',1.2); + end + hold on; + end + + end + + lgnd = legend(legends,'Location','NorthWest'); + if(getConfiguration(20) == 1) + set(lgnd,'color','none'); + end + + hold off; + axis square + xlabel(getConfiguration(10)); + set(gca,'XTick', (startOfMobileDeviceLoop*xTickLabelCoefficient):(stepOfMobileDeviceLoop*xTickLabelCoefficient):endOfMobileDeviceLoop); + set(gca,'XTickLabel', (startOfMobileDeviceLoop*xTickLabelCoefficient):(stepOfMobileDeviceLoop*xTickLabelCoefficient):endOfMobileDeviceLoop); + ylabel(yLabel); + set(gca,'XLim',[startOfMobileDeviceLoop-5 endOfMobileDeviceLoop+5]); + + set(get(gca,'Xlabel'),'FontSize',12) + set(get(gca,'Ylabel'),'FontSize',12) + set(lgnd,'FontSize',11) + + if(getConfiguration(11) == 1) + set(hFig, 'PaperUnits', 'centimeters'); + set(hFig, 'PaperPositionMode', 'manual'); + set(hFig, 'PaperPosition',[0 0 pos(3) pos(4)]); + set(gcf, 'PaperSize', [pos(3) pos(4)]); %Keep the same paper size + filename = strcat(folderPath,'\',int2str(rowOfset),'_',int2str(columnOfset),'_',appType); + saveas(gcf, filename, 'pdf'); + end +end \ No newline at end of file diff --git a/scripts/sample_app3/matlab/plotTaskFailureReason.m b/scripts/sample_app3/matlab/plotTaskFailureReason.m new file mode 100644 index 0000000..e6216a0 --- /dev/null +++ b/scripts/sample_app3/matlab/plotTaskFailureReason.m @@ -0,0 +1,20 @@ +function [] = plotTaskFailureReason() + + plotGenericResult(1, 10, 'Failed Task due to VM Capacity (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(1, 10, {'Failed Task due to VM Capacity';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(1, 10, {'Failed Task due to VM Capacity';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(1, 10, {'Failed Task due to VM Capacity';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(1, 10, {'Failed Task due to VM Capacity';'for Heavy Computation App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); + + plotGenericResult(1, 11, 'Failed Task due to Mobility (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(1, 11, {'Failed Task due to Mobility';'for Heavy Computation App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); + + plotGenericResult(1, 4, 'Failed Tasks due to Network failure (%)', 'ALL_APPS', 'percentage_for_failed'); + plotGenericResult(1, 4, {'Failed Tasks due to Network failure';'for Augmented Reality App (%)'}, 'AUGMENTED_REALITY', 'for_failed'); + plotGenericResult(1, 4, {'Failed Tasks due to Network failure';'for Health App (%)'}, 'HEALTH_APP', 'for_failed'); + plotGenericResult(1, 4, {'Failed Tasks due to Network failure';'for Infotainment App (%)'}, 'INFOTAINMENT_APP', 'for_failed'); + plotGenericResult(1, 4, {'Failed Tasks due to Network failure';'for Heavy Comp. App (%)'}, 'HEAVY_COMP_APP', 'for_failed'); +end \ No newline at end of file diff --git a/src/edu/boun/edgecloudsim/applications/sample_app1/SampleScenarioFactory.java b/src/edu/boun/edgecloudsim/applications/sample_app1/SampleScenarioFactory.java index 48e4ed9..cec4d26 100644 --- a/src/edu/boun/edgecloudsim/applications/sample_app1/SampleScenarioFactory.java +++ b/src/edu/boun/edgecloudsim/applications/sample_app1/SampleScenarioFactory.java @@ -19,6 +19,8 @@ import edu.boun.edgecloudsim.edge_server.DefaultEdgeServerManager; import edu.boun.edgecloudsim.edge_server.EdgeServerManager; import edu.boun.edgecloudsim.edge_client.DefaultMobileDeviceManager; import edu.boun.edgecloudsim.edge_client.MobileDeviceManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.DefaultMobileServerManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileServerManager; import edu.boun.edgecloudsim.mobility.MobilityModel; import edu.boun.edgecloudsim.mobility.NomadicMobility; import edu.boun.edgecloudsim.task_generator.IdleActiveLoadGenerator; @@ -71,8 +73,14 @@ public class SampleScenarioFactory implements ScenarioFactory { public CloudServerManager getCloudServerManager() { return new DefaultCloudServerManager(); } - + + @Override public MobileDeviceManager getMobileDeviceManager() throws Exception { return new DefaultMobileDeviceManager(); } + + @Override + public MobileServerManager getMobileServerManager() { + return new DefaultMobileServerManager(); + } } diff --git a/src/edu/boun/edgecloudsim/applications/sample_app2/SampleScenarioFactory.java b/src/edu/boun/edgecloudsim/applications/sample_app2/SampleScenarioFactory.java index 8fc3d8d..4348180 100644 --- a/src/edu/boun/edgecloudsim/applications/sample_app2/SampleScenarioFactory.java +++ b/src/edu/boun/edgecloudsim/applications/sample_app2/SampleScenarioFactory.java @@ -17,6 +17,8 @@ import edu.boun.edgecloudsim.edge_orchestrator.EdgeOrchestrator; import edu.boun.edgecloudsim.edge_server.DefaultEdgeServerManager; import edu.boun.edgecloudsim.edge_server.EdgeServerManager; import edu.boun.edgecloudsim.edge_client.MobileDeviceManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.DefaultMobileServerManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileServerManager; import edu.boun.edgecloudsim.mobility.MobilityModel; import edu.boun.edgecloudsim.mobility.NomadicMobility; import edu.boun.edgecloudsim.task_generator.IdleActiveLoadGenerator; @@ -73,4 +75,9 @@ public class SampleScenarioFactory implements ScenarioFactory { public MobileDeviceManager getMobileDeviceManager() throws Exception { return new SampleMobileDeviceManager(); } + + @Override + public MobileServerManager getMobileServerManager() { + return new DefaultMobileServerManager(); + } } diff --git a/src/edu/boun/edgecloudsim/applications/sample_app3/MainApp.java b/src/edu/boun/edgecloudsim/applications/sample_app3/MainApp.java new file mode 100644 index 0000000..e319b99 --- /dev/null +++ b/src/edu/boun/edgecloudsim/applications/sample_app3/MainApp.java @@ -0,0 +1,131 @@ +/* + * Title: EdgeCloudSim - Main Application + * + * Description: Main application for Sample App3 + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.applications.sample_app3; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import org.cloudbus.cloudsim.Log; +import org.cloudbus.cloudsim.core.CloudSim; + +import edu.boun.edgecloudsim.core.ScenarioFactory; +import edu.boun.edgecloudsim.core.SimManager; +import edu.boun.edgecloudsim.core.SimSettings; +import edu.boun.edgecloudsim.utils.SimLogger; +import edu.boun.edgecloudsim.utils.SimUtils; + +public class MainApp { + + /** + * Creates main() to run this example + */ + public static void main(String[] args) { + //disable console output of cloudsim library + Log.disable(); + + //enable console ourput and file output of this application + SimLogger.enablePrintLog(); + + int iterationNumber = 1; + String configFile = ""; + String outputFolder = ""; + String edgeDevicesFile = ""; + String applicationsFile = ""; + if (args.length == 5){ + configFile = args[0]; + edgeDevicesFile = args[1]; + applicationsFile = args[2]; + outputFolder = args[3]; + iterationNumber = Integer.parseInt(args[4]); + } + else{ + SimLogger.printLine("Simulation setting file, output folder and iteration number are not provided! Using default ones..."); + configFile = "scripts/sample_app3/config/default_config.properties"; + applicationsFile = "scripts/sample_app3/config/applications.xml"; + edgeDevicesFile = "scripts/sample_app3/config/edge_devices.xml"; + outputFolder = "sim_results/ite" + iterationNumber; + } + + //load settings from configuration file + SimSettings SS = SimSettings.getInstance(); + if(SS.initialize(configFile, edgeDevicesFile, applicationsFile) == false){ + SimLogger.printLine("cannot initialize simulation settings!"); + System.exit(0); + } + + if(SS.getFileLoggingEnabled()){ + SimLogger.enableFileLog(); + SimUtils.cleanOutputFolder(outputFolder); + } + + DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + Date SimulationStartDate = Calendar.getInstance().getTime(); + String now = df.format(SimulationStartDate); + SimLogger.printLine("Simulation started at " + now); + SimLogger.printLine("----------------------------------------------------------------------"); + + for(int j=SS.getMinNumOfMobileDev(); j<=SS.getMaxNumOfMobileDev(); j+=SS.getMobileDevCounterSize()) + { + for(int k=0; k vmArray = SimManager.getInstance().getMobileServerManager().getVmList(task.getMobileDeviceId()); + double requiredCapacity = ((CpuUtilizationModel_Custom)task.getUtilizationModelCpu()).predictUtilization(vmArray.get(0).getVmType()); + double targetVmCapacity = (double) 100 - vmArray.get(0).getCloudletScheduler().getTotalUtilizationOfCpu(CloudSim.clock()); + + if (requiredCapacity <= targetVmCapacity) + result = SimSettings.MOBILE_DATACENTER_ID; + else + result = SimSettings.GENERIC_EDGE_DEVICE_ID; + } + else { + SimLogger.printLine("Unknow edge orchestrator policy! Terminating simulation..."); + System.exit(0); + } + + return result; + } + + @Override + public Vm getVmToOffload(Task task, int deviceId) { + Vm selectedVM = null; + + if (deviceId == SimSettings.MOBILE_DATACENTER_ID) { + List vmArray = SimManager.getInstance().getMobileServerManager().getVmList(task.getMobileDeviceId()); + double requiredCapacity = ((CpuUtilizationModel_Custom)task.getUtilizationModelCpu()).predictUtilization(vmArray.get(0).getVmType()); + double targetVmCapacity = (double) 100 - vmArray.get(0).getCloudletScheduler().getTotalUtilizationOfCpu(CloudSim.clock()); + + if (requiredCapacity <= targetVmCapacity) + selectedVM = vmArray.get(0); + } + else if(deviceId == SimSettings.GENERIC_EDGE_DEVICE_ID){ + //Select VM on edge devices via Least Loaded algorithm! + double selectedVmCapacity = 0; //start with min value + for(int hostIndex=0; hostIndex vmArray = SimManager.getInstance().getEdgeServerManager().getVmList(hostIndex); + for(int vmIndex=0; vmIndex selectedVmCapacity){ + selectedVM = vmArray.get(vmIndex); + selectedVmCapacity = targetVmCapacity; + } + } + } + } + else{ + SimLogger.printLine("Unknown device id! The simulation has been terminated."); + System.exit(0); + } + + return selectedVM; + } + + @Override + public void processEvent(SimEvent arg0) { + // Nothing to do! + } + + @Override + public void shutdownEntity() { + // Nothing to do! + } + + @Override + public void startEntity() { + // Nothing to do! + } + +} \ No newline at end of file diff --git a/src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileDeviceManager.java b/src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileDeviceManager.java new file mode 100644 index 0000000..98036e1 --- /dev/null +++ b/src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileDeviceManager.java @@ -0,0 +1,299 @@ +/* + * Title: EdgeCloudSim - Mobile Device Manager + * + * Description: + * Mobile Device Manager is one of the most important component + * in EdgeCloudSim. It is responsible for creating the tasks, + * submitting them to the related VM with respect to the + * Edge Orchestrator decision, and takes proper actions when + * the execution of the tasks are finished. It also feeds the + * SimLogger with the relevant results. + + * SampleMobileDeviceManager sends tasks to the edge servers or + * mobile device processing unit. + * + * If you want to use different topology, you should modify + * the flow implemented in this class. + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.applications.sample_app3; + +import org.cloudbus.cloudsim.UtilizationModel; +import org.cloudbus.cloudsim.UtilizationModelFull; +import org.cloudbus.cloudsim.Vm; +import org.cloudbus.cloudsim.core.CloudSim; +import org.cloudbus.cloudsim.core.CloudSimTags; +import org.cloudbus.cloudsim.core.SimEvent; + +import edu.boun.edgecloudsim.core.SimManager; +import edu.boun.edgecloudsim.core.SimSettings; +import edu.boun.edgecloudsim.core.SimSettings.NETWORK_DELAY_TYPES; +import edu.boun.edgecloudsim.core.SimSettings.VM_TYPES; +import edu.boun.edgecloudsim.edge_client.CpuUtilizationModel_Custom; +import edu.boun.edgecloudsim.edge_client.MobileDeviceManager; +import edu.boun.edgecloudsim.edge_client.Task; +import edu.boun.edgecloudsim.network.NetworkModel; +import edu.boun.edgecloudsim.utils.EdgeTask; +import edu.boun.edgecloudsim.utils.Location; +import edu.boun.edgecloudsim.utils.SimLogger; + +public class SampleMobileDeviceManager extends MobileDeviceManager { + private static final int BASE = 100000; //start from base in order not to conflict cloudsim tag! + + private static final int REQUEST_RECEIVED_BY_EDGE_DEVICE = BASE + 1; + private static final int REQUEST_RECEIVED_BY_MOBILE_DEVICE = BASE + 2; + private static final int RESPONSE_RECEIVED_BY_MOBILE_DEVICE = BASE + 3; + + private int taskIdCounter=0; + + public SampleMobileDeviceManager() throws Exception{ + } + + @Override + public void initialize() { + } + + @Override + public UtilizationModel getCpuUtilizationModel() { + return new CpuUtilizationModel_Custom(); + } + + @Override + public void startEntity() { + super.startEntity(); + } + + /** + * Submit cloudlets to the created VMs. + * + * @pre $none + * @post $none + */ + protected void submitCloudlets() { + //do nothing! + } + + /** + * Process a cloudlet return event. + * + * @param ev a SimEvent object + * @pre ev != $null + * @post $none + */ + protected void processCloudletReturn(SimEvent ev) { + NetworkModel networkModel = SimManager.getInstance().getNetworkModel(); + Task task = (Task) ev.getData(); + + SimLogger.getInstance().taskExecuted(task.getCloudletId()); + + if(task.getAssociatedDatacenterId() == SimSettings.GENERIC_EDGE_DEVICE_ID){ + double delay = networkModel.getDownloadDelay(task.getAssociatedDatacenterId(), task.getMobileDeviceId(), task); + + if(delay > 0) + { + Location currentLocation = SimManager.getInstance().getMobilityModel().getLocation(task.getMobileDeviceId(),CloudSim.clock()+delay); + if(task.getSubmittedLocation().getServingWlanId() == currentLocation.getServingWlanId()) + { + networkModel.downloadStarted(task.getSubmittedLocation(), SimSettings.GENERIC_EDGE_DEVICE_ID); + SimLogger.getInstance().setDownloadDelay(task.getCloudletId(), delay, NETWORK_DELAY_TYPES.WLAN_DELAY); + + schedule(getId(), delay, RESPONSE_RECEIVED_BY_MOBILE_DEVICE, task); + } + else + { + SimLogger.getInstance().failedDueToMobility(task.getCloudletId(), CloudSim.clock()); + } + } + else + { + SimLogger.getInstance().failedDueToBandwidth(task.getCloudletId(), CloudSim.clock(), NETWORK_DELAY_TYPES.WLAN_DELAY); + } + } + else if(task.getAssociatedDatacenterId() == SimSettings.MOBILE_DATACENTER_ID) { + SimLogger.getInstance().taskEnded(task.getCloudletId(), CloudSim.clock()); + + /* + * TODO: In this scenario device to device (D2D) communication is ignored. + * If you want to consider D2D communication, you should transmit the result + * of the task to the sender mobile device. Hence, you should calculate + * D2D_DELAY here and send the following event: + * + * schedule(getId(), delay, RESPONSE_RECEIVED_BY_MOBILE_DEVICE, task); + * + * Please not that you should deal with the mobility and D2D delay calculation. + * The task can be failed due to the network bandwidth or the nobility. + */ + } + else { + SimLogger.printLine("Unknown datacenter id! Terminating simulation..."); + System.exit(0); + } + } + + protected void processOtherEvent(SimEvent ev) { + if (ev == null) { + SimLogger.printLine(getName() + ".processOtherEvent(): " + "Error - an event is null! Terminating simulation..."); + System.exit(0); + return; + } + + NetworkModel networkModel = SimManager.getInstance().getNetworkModel(); + + switch (ev.getTag()) { + case REQUEST_RECEIVED_BY_MOBILE_DEVICE: + { + Task task = (Task) ev.getData(); + submitTaskToVm(task, SimSettings.VM_TYPES.MOBILE_VM); + break; + } + case REQUEST_RECEIVED_BY_EDGE_DEVICE: + { + Task task = (Task) ev.getData(); + networkModel.uploadFinished(task.getSubmittedLocation(), SimSettings.GENERIC_EDGE_DEVICE_ID); + submitTaskToVm(task, SimSettings.VM_TYPES.EDGE_VM); + break; + } + case RESPONSE_RECEIVED_BY_MOBILE_DEVICE: + { + Task task = (Task) ev.getData(); + + networkModel.downloadFinished(task.getSubmittedLocation(), SimSettings.GENERIC_EDGE_DEVICE_ID); + + SimLogger.getInstance().taskEnded(task.getCloudletId(), CloudSim.clock()); + break; + } + default: + SimLogger.printLine(getName() + ".processOtherEvent(): " + "Error - event unknown by this DatacenterBroker. Terminating simulation..."); + System.exit(0); + break; + } + } + + public void submitTask(EdgeTask edgeTask) { + double delay = 0; + int nextEvent = 0; + int nextDeviceForNetworkModel = 0; + VM_TYPES vmType = null; + NETWORK_DELAY_TYPES delayType = null; + + NetworkModel networkModel = SimManager.getInstance().getNetworkModel(); + + //create a task + Task task = createTask(edgeTask); + + Location currentLocation = SimManager.getInstance().getMobilityModel(). + getLocation(task.getMobileDeviceId(), CloudSim.clock()); + + //set location of the mobile device which generates this task + task.setSubmittedLocation(currentLocation); + + //add related task to log list + SimLogger.getInstance().addLog(task.getCloudletId(), + task.getTaskType(), + (int)task.getCloudletLength(), + (int)task.getCloudletFileSize(), + (int)task.getCloudletOutputSize()); + + int nextHopId = SimManager.getInstance().getEdgeOrchestrator().getDeviceToOffload(task); + + if(nextHopId == SimSettings.GENERIC_EDGE_DEVICE_ID){ + delay = networkModel.getUploadDelay(task.getMobileDeviceId(), nextHopId, task); + vmType = SimSettings.VM_TYPES.EDGE_VM; + nextEvent = REQUEST_RECEIVED_BY_EDGE_DEVICE; + delayType = NETWORK_DELAY_TYPES.WLAN_DELAY; + nextDeviceForNetworkModel = SimSettings.GENERIC_EDGE_DEVICE_ID; + } + else if(nextHopId == SimSettings.MOBILE_DATACENTER_ID){ + vmType = VM_TYPES.MOBILE_VM; + nextEvent = REQUEST_RECEIVED_BY_MOBILE_DEVICE; + + /* + * TODO: In this scenario device to device (D2D) communication is ignored. + * If you want to consider D2D communication, you should calculate D2D + * network delay here. + * + * You should also add D2D_DELAY to the following enum in SimSettings + * public static enum NETWORK_DELAY_TYPES { WLAN_DELAY, MAN_DELAY, WAN_DELAY } + * + * If you want to get statistics of the D2D networking, you should modify + * SimLogger in a way to consider D2D_DELAY statistics. + */ + } + else { + SimLogger.printLine("Unknown nextHopId! Terminating simulation..."); + System.exit(0); + } + + if(delay>0 || nextHopId == SimSettings.MOBILE_DATACENTER_ID){ + + Vm selectedVM = SimManager.getInstance().getEdgeOrchestrator().getVmToOffload(task, nextHopId); + + if(selectedVM != null){ + //set related host id + task.setAssociatedDatacenterId(nextHopId); + + //set related host id + task.setAssociatedHostId(selectedVM.getHost().getId()); + + //set related vm id + task.setAssociatedVmId(selectedVM.getId()); + + //bind task to related VM + getCloudletList().add(task); + bindCloudletToVm(task.getCloudletId(), selectedVM.getId()); + + SimLogger.getInstance().taskStarted(task.getCloudletId(), CloudSim.clock()); + + if(nextHopId != SimSettings.MOBILE_DATACENTER_ID) { + networkModel.uploadStarted(task.getSubmittedLocation(), nextDeviceForNetworkModel); + SimLogger.getInstance().setUploadDelay(task.getCloudletId(), delay, delayType); + } + + schedule(getId(), delay, nextEvent, task); + } + else{ + //SimLogger.printLine("Task #" + task.getCloudletId() + " cannot assign to any VM"); + SimLogger.getInstance().rejectedDueToVMCapacity(task.getCloudletId(), CloudSim.clock(), vmType.ordinal()); + } + } + else + { + //SimLogger.printLine("Task #" + task.getCloudletId() + " cannot assign to any VM"); + SimLogger.getInstance().rejectedDueToBandwidth(task.getCloudletId(), CloudSim.clock(), vmType.ordinal(), delayType); + } + } + + private void submitTaskToVm(Task task, SimSettings.VM_TYPES vmType) { + //SimLogger.printLine(CloudSim.clock() + ": Cloudlet#" + task.getCloudletId() + " is submitted to VM#" + task.getVmId()); + schedule(getVmsToDatacentersMap().get(task.getVmId()), 0, CloudSimTags.CLOUDLET_SUBMIT, task); + + SimLogger.getInstance().taskAssigned(task.getCloudletId(), + task.getAssociatedDatacenterId(), + task.getAssociatedHostId(), + task.getAssociatedVmId(), + vmType.ordinal()); + } + + private Task createTask(EdgeTask edgeTask){ + UtilizationModel utilizationModel = new UtilizationModelFull(); /*UtilizationModelStochastic*/ + UtilizationModel utilizationModelCPU = getCpuUtilizationModel(); + + Task task = new Task(edgeTask.mobileDeviceId, ++taskIdCounter, + edgeTask.length, edgeTask.pesNumber, + edgeTask.inputFileSize, edgeTask.outputFileSize, + utilizationModelCPU, utilizationModel, utilizationModel); + + //set the owner of this task + task.setUserId(this.getId()); + task.setTaskType(edgeTask.taskType); + + if (utilizationModelCPU instanceof CpuUtilizationModel_Custom) { + ((CpuUtilizationModel_Custom)utilizationModelCPU).setTask(task); + } + + return task; + } +} diff --git a/src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileServerManager.java b/src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileServerManager.java new file mode 100644 index 0000000..8757969 --- /dev/null +++ b/src/edu/boun/edgecloudsim/applications/sample_app3/SampleMobileServerManager.java @@ -0,0 +1,184 @@ +/* + * Title: EdgeCloudSim - Mobile Server Manager + * + * Description: + * VehicularDefaultMobileServerManager is responsible for creating + * mobile datacenters, hosts and VMs. + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.applications.sample_app3; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import org.cloudbus.cloudsim.CloudletSchedulerTimeShared; +import org.cloudbus.cloudsim.Datacenter; +import org.cloudbus.cloudsim.DatacenterCharacteristics; +import org.cloudbus.cloudsim.Host; +import org.cloudbus.cloudsim.Pe; +import org.cloudbus.cloudsim.Storage; +import org.cloudbus.cloudsim.VmAllocationPolicy; +import org.cloudbus.cloudsim.VmSchedulerSpaceShared; +import org.cloudbus.cloudsim.core.CloudSim; +import org.cloudbus.cloudsim.provisioners.BwProvisionerSimple; +import org.cloudbus.cloudsim.provisioners.PeProvisionerSimple; +import org.cloudbus.cloudsim.provisioners.RamProvisionerSimple; + +import edu.boun.edgecloudsim.core.SimManager; +import edu.boun.edgecloudsim.core.SimSettings; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileHost; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileServerManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileVM; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileVmAllocationPolicy_Custom; + +public class SampleMobileServerManager extends MobileServerManager{ + private int numOfMobileDevices=0; + + public SampleMobileServerManager(int _numOfMobileDevices) { + numOfMobileDevices=_numOfMobileDevices; + } + + @Override + public void initialize() { + } + + @Override + public VmAllocationPolicy getVmAllocationPolicy(List list, int dataCenterIndex) { + return new MobileVmAllocationPolicy_Custom(list, dataCenterIndex); + } + + @Override + public void startDatacenters() throws Exception { + //in the initial version, each mobile device has a separate datacenter + //however, this approach encounters with out of memory (oom) problem. + //therefore, we use single datacenter for all mobile devices! + localDatacenter = createDatacenter(SimSettings.MOBILE_DATACENTER_ID); + } + + @Override + public void terminateDatacenters() { + localDatacenter.shutdownEntity(); + } + + @Override + public void createVmList(int brockerId) { + //VMs should have unique IDs, so create Mobile VMs after Edge+Cloud VMs + int vmCounter=SimSettings.getInstance().getNumOfEdgeVMs() + SimSettings.getInstance().getNumOfCloudVMs(); + + //Create VMs for each hosts + //Note that each mobile device has one host with one VM! + for (int i = 0; i < numOfMobileDevices; i++) { + vmList.add(i, new ArrayList()); + + String vmm = "Xen"; + int numOfCores = SimSettings.getInstance().getCoreForMobileVM(); + double mips = SimSettings.getInstance().getMipsForMobileVM(); + int ram = SimSettings.getInstance().getRamForMobileVM(); + long storage = SimSettings.getInstance().getStorageForMobileVM(); + long bandwidth = 0; + + //VM Parameters + MobileVM vm = new MobileVM(vmCounter, brockerId, mips, numOfCores, ram, bandwidth, storage, vmm, new CloudletSchedulerTimeShared()); + vmList.get(i).add(vm); + vmCounter++; + } + } + + @Override + public double getAvgUtilization() { + double totalUtilization = 0; + double vmCounter = 0; + + List list = localDatacenter.getHostList(); + // for each host... + for (int hostIndex=0; hostIndex < list.size(); hostIndex++) { + List vmArray = SimManager.getInstance().getMobileServerManager().getVmList(hostIndex); + //for each vm... + for(int vmIndex=0; vmIndex hostList=createHosts(); + + String name = "MobileDatacenter_" + Integer.toString(index); + double time_zone = 3.0; // time zone this resource located + LinkedList storageList = new LinkedList(); //we are not adding SAN devices by now + + // 5. Create a DatacenterCharacteristics object that stores the + // properties of a data center: architecture, OS, list of + // Machines, allocation policy: time- or space-shared, time zone + // and its price (G$/Pe time unit). + DatacenterCharacteristics characteristics = new DatacenterCharacteristics( + arch, os, vmm, hostList, time_zone, costPerSec, costPerMem, costPerStorage, costPerBw); + + // 6. Finally, we need to create a PowerDatacenter object. + Datacenter datacenter = null; + + VmAllocationPolicy vm_policy = getVmAllocationPolicy(hostList,index); + datacenter = new Datacenter(name, characteristics, vm_policy, storageList, 0); + + return datacenter; + } + + private List createHosts(){ + // Here are the steps needed to create a PowerDatacenter: + // 1. We need to create a list to store one or more Machines + List hostList = new ArrayList(); + + for (int i = 0; i < numOfMobileDevices; i++) { + + int numOfCores = SimSettings.getInstance().getCoreForMobileVM(); + double mips = SimSettings.getInstance().getMipsForMobileVM(); + int ram = SimSettings.getInstance().getRamForMobileVM(); + long storage = SimSettings.getInstance().getStorageForMobileVM(); + long bandwidth = 0; + + // 2. A Machine contains one or more PEs or CPUs/Cores. Therefore, should + // create a list to store these PEs before creating + // a Machine. + List peList = new ArrayList(); + + // 3. Create PEs and add these into the list. + //for a quad-core machine, a list of 4 PEs is required: + for(int j=0; j "); + + if(numOfWlanUser < experimentalWlanDelay.length) + result = taskSizeInKb /*Kb*/ / (experimentalWlanDelay[numOfWlanUser] * (double) 3 ) /*Kbps*/; //802.11ac is around 3 times faster than 802.11n + + //System.out.println("--> " + numOfWlanUser + " user, " + taskSizeInKb + " KB, " +result + " sec"); + return result; + } + + //wlan upload and download delay is symmetric in this model + private double getWlanUploadDelay(Location accessPointLocation, double dataSize) { + return getWlanDownloadDelay(accessPointLocation, dataSize); + } +} diff --git a/src/edu/boun/edgecloudsim/applications/sample_app3/SampleScenarioFactory.java b/src/edu/boun/edgecloudsim/applications/sample_app3/SampleScenarioFactory.java new file mode 100644 index 0000000..0ffa7ce --- /dev/null +++ b/src/edu/boun/edgecloudsim/applications/sample_app3/SampleScenarioFactory.java @@ -0,0 +1,82 @@ +/* + * Title: EdgeCloudSim - Scenario Factory + * + * Description: Sample scenario factory providing the default + * instances of required abstract classes + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.applications.sample_app3; + +import edu.boun.edgecloudsim.cloud_server.CloudServerManager; +import edu.boun.edgecloudsim.cloud_server.DefaultCloudServerManager; +import edu.boun.edgecloudsim.core.ScenarioFactory; +import edu.boun.edgecloudsim.edge_orchestrator.EdgeOrchestrator; +import edu.boun.edgecloudsim.edge_server.DefaultEdgeServerManager; +import edu.boun.edgecloudsim.edge_server.EdgeServerManager; +import edu.boun.edgecloudsim.edge_client.MobileDeviceManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileServerManager; +import edu.boun.edgecloudsim.mobility.MobilityModel; +import edu.boun.edgecloudsim.mobility.NomadicMobility; +import edu.boun.edgecloudsim.task_generator.IdleActiveLoadGenerator; +import edu.boun.edgecloudsim.task_generator.LoadGeneratorModel; +import edu.boun.edgecloudsim.network.NetworkModel; + +public class SampleScenarioFactory implements ScenarioFactory { + private int numOfMobileDevice; + private double simulationTime; + private String orchestratorPolicy; + private String simScenario; + + SampleScenarioFactory(int _numOfMobileDevice, + double _simulationTime, + String _orchestratorPolicy, + String _simScenario){ + orchestratorPolicy = _orchestratorPolicy; + numOfMobileDevice = _numOfMobileDevice; + simulationTime = _simulationTime; + simScenario = _simScenario; + } + + @Override + public LoadGeneratorModel getLoadGeneratorModel() { + return new IdleActiveLoadGenerator(numOfMobileDevice, simulationTime, simScenario); + } + + @Override + public EdgeOrchestrator getEdgeOrchestrator() { + return new SampleEdgeOrchestrator(orchestratorPolicy, simScenario); + } + + @Override + public MobilityModel getMobilityModel() { + return new NomadicMobility(numOfMobileDevice,simulationTime); + } + + @Override + public NetworkModel getNetworkModel() { + return new SampleNetworkModel(numOfMobileDevice, simScenario); + } + + @Override + public EdgeServerManager getEdgeServerManager() { + return new DefaultEdgeServerManager(); + } + + @Override + public CloudServerManager getCloudServerManager() { + return new DefaultCloudServerManager(); + } + + @Override + public MobileDeviceManager getMobileDeviceManager() throws Exception { + return new SampleMobileDeviceManager(); + } + + @Override + public MobileServerManager getMobileServerManager() { + return new SampleMobileServerManager(numOfMobileDevice); + } +} diff --git a/src/edu/boun/edgecloudsim/cloud_server/CloudServerManager.java b/src/edu/boun/edgecloudsim/cloud_server/CloudServerManager.java index 73be0df..4696e30 100644 --- a/src/edu/boun/edgecloudsim/cloud_server/CloudServerManager.java +++ b/src/edu/boun/edgecloudsim/cloud_server/CloudServerManager.java @@ -1,3 +1,19 @@ +/* + * Title: EdgeCloudSim - CloudServerManager + * + * Description: + * CloudServerManager is responsible for creating and terminating + * the cloud datacenters which operates the hosts and VMs. + * It also provides the list of VMs running on the hosts and + * the average utilization of all VMs. + * + * Please note that, EdgeCloudSim is built on top of CloudSim + * Therefore, all the computational units are handled by CloudSim + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + package edu.boun.edgecloudsim.cloud_server; import java.util.ArrayList; diff --git a/src/edu/boun/edgecloudsim/cloud_server/CloudVmAllocationPolicy_Custom.java b/src/edu/boun/edgecloudsim/cloud_server/CloudVmAllocationPolicy_Custom.java index 34d88c2..ff28b60 100644 --- a/src/edu/boun/edgecloudsim/cloud_server/CloudVmAllocationPolicy_Custom.java +++ b/src/edu/boun/edgecloudsim/cloud_server/CloudVmAllocationPolicy_Custom.java @@ -3,9 +3,9 @@ * * Description: * VmAllocationPolicy_Custom implements VmAllocationPolicy to decide which. - * VM is created on which host locatied on the datacenters. For those + * VM is created on which host located on the datacenters. For those * who wants to add another Vm Allocation Policy to EdgeCloudSim should - * provide another concreate instance of VmAllocationPolicy via ScenarioFactory + * provide another concrete instance of VmAllocationPolicy via ScenarioFactory * * Licence: GPL - http://www.gnu.org/copyleft/gpl.html * Copyright (c) 2017, Bogazici University, Istanbul, Turkey diff --git a/src/edu/boun/edgecloudsim/core/ScenarioFactory.java b/src/edu/boun/edgecloudsim/core/ScenarioFactory.java index aa23f54..b83217e 100644 --- a/src/edu/boun/edgecloudsim/core/ScenarioFactory.java +++ b/src/edu/boun/edgecloudsim/core/ScenarioFactory.java @@ -15,6 +15,7 @@ package edu.boun.edgecloudsim.core; import edu.boun.edgecloudsim.cloud_server.CloudServerManager; import edu.boun.edgecloudsim.edge_client.MobileDeviceManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileServerManager; import edu.boun.edgecloudsim.edge_orchestrator.EdgeOrchestrator; import edu.boun.edgecloudsim.edge_server.EdgeServerManager; import edu.boun.edgecloudsim.mobility.MobilityModel; @@ -52,6 +53,11 @@ public interface ScenarioFactory { */ public CloudServerManager getCloudServerManager(); + /** + * provides abstract Mobile Server Model + */ + public MobileServerManager getMobileServerManager(); + /** * provides abstract Mobile Device Manager Model */ diff --git a/src/edu/boun/edgecloudsim/core/SimManager.java b/src/edu/boun/edgecloudsim/core/SimManager.java index 6ded386..0cca0b2 100644 --- a/src/edu/boun/edgecloudsim/core/SimManager.java +++ b/src/edu/boun/edgecloudsim/core/SimManager.java @@ -26,6 +26,7 @@ import edu.boun.edgecloudsim.edge_server.EdgeServerManager; import edu.boun.edgecloudsim.edge_server.EdgeVmAllocationPolicy_Custom; import edu.boun.edgecloudsim.cloud_server.CloudServerManager; import edu.boun.edgecloudsim.edge_client.MobileDeviceManager; +import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileServerManager; import edu.boun.edgecloudsim.mobility.MobilityModel; import edu.boun.edgecloudsim.task_generator.LoadGeneratorModel; import edu.boun.edgecloudsim.network.NetworkModel; @@ -48,6 +49,7 @@ public class SimManager extends SimEntity { private EdgeOrchestrator edgeOrchestrator; private EdgeServerManager edgeServerManager; private CloudServerManager cloudServerManager; + private MobileServerManager mobileServerManager; private LoadGeneratorModel loadGeneratorModel; private MobileDeviceManager mobileDeviceManager; @@ -85,6 +87,10 @@ public class SimManager extends SimEntity { //Create Physical Servers on cloud cloudServerManager = scenarioFactory.getCloudServerManager(); cloudServerManager.initialize(); + + //Create Physical Servers on mobile devices + mobileServerManager = scenarioFactory.getMobileServerManager(); + mobileServerManager.initialize(); //Create Client Manager mobileDeviceManager = scenarioFactory.getMobileDeviceManager(); @@ -111,7 +117,11 @@ public class SimManager extends SimEntity { //Start Edge Datacenters & Generate VMs cloudServerManager.startDatacenters(); cloudServerManager.createVmList(mobileDeviceManager.getId()); - + + //Start Mobile Datacenters & Generate VMs + mobileServerManager.startDatacenters(); + mobileServerManager.createVmList(mobileDeviceManager.getId()); + CloudSim.startSimulation(); } @@ -151,6 +161,10 @@ public class SimManager extends SimEntity { return cloudServerManager; } + public MobileServerManager getMobileServerManager(){ + return mobileServerManager; + } + public LoadGeneratorModel getLoadGeneratorModel(){ return loadGeneratorModel; } @@ -175,6 +189,11 @@ public class SimManager extends SimEntity { mobileDeviceManager.submitVmList(cloudServerManager.getVmList(i)); } + for(int i=0; i list, int dataCenterIndex) { + return new MobileVmAllocationPolicy_Custom(list, dataCenterIndex); + } + + @Override + public void startDatacenters() throws Exception { + //local computation is not supported in default Mobile Device Manager + } + + @Override + public void terminateDatacenters() { + //local computation is not supported in default Mobile Device Manager + } + + @Override + public void createVmList(int brockerId) { + //local computation is not supported in default Mobile Device Manager + } + + @Override + public double getAvgUtilization() { + //local computation is not supported in default Mobile Device Manager + return 0; + } +} diff --git a/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileHost.java b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileHost.java new file mode 100644 index 0000000..22f8df1 --- /dev/null +++ b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileHost.java @@ -0,0 +1,43 @@ +/* + * Title: EdgeCloudSim - MobileHost + * + * Description: + * MobileHost adds associated mobile device id information over CloudSim's Host class + * + * Please note that the mobile processing units are simulated via + * CloudSim. It is assumed that the mobile devices operate Hosts + * and VMs like a server. That is why the class names are similar + * to other Cloud and Edge components (to provide consistency). + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.edge_client.mobile_processing_unit; + +import java.util.List; + +import org.cloudbus.cloudsim.Host; +import org.cloudbus.cloudsim.Pe; +import org.cloudbus.cloudsim.VmScheduler; +import org.cloudbus.cloudsim.provisioners.BwProvisioner; +import org.cloudbus.cloudsim.provisioners.RamProvisioner; + +public class MobileHost extends Host { + private int mobileDeviceId; + + public MobileHost(int id, RamProvisioner ramProvisioner, + BwProvisioner bwProvisioner, long storage, + List peList, VmScheduler vmScheduler) { + super(id, ramProvisioner, bwProvisioner, storage, peList, vmScheduler); + + } + + public void setMobileDeviceId(int _mobileDeviceId){ + mobileDeviceId=_mobileDeviceId; + } + + public int getMobileDeviceId(){ + return mobileDeviceId; + } +} diff --git a/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileServerManager.java b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileServerManager.java new file mode 100644 index 0000000..b64ba18 --- /dev/null +++ b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileServerManager.java @@ -0,0 +1,78 @@ +/* + * Title: EdgeCloudSim - MobileServerManager + * + * Description: + * MobileServerManager is responsible for creating and terminating + * the mobile datacenters which operates the hosts and VMs. + * It also provides the list of VMs running on the hosts and + * the average utilization of all VMs. + * + * Please note that, EdgeCloudSim is built on top of CloudSim + * Therefore, all the computational units are handled by CloudSim + * + * The mobile processing units are simulated via CloudSim as well. + * It is assumed that the mobile devices operate Hosts and VMs + * like a server. That is why the class names are similar to other + * Cloud and Edge components. + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.edge_client.mobile_processing_unit; + +import java.util.ArrayList; +import java.util.List; + +import org.cloudbus.cloudsim.Datacenter; +import org.cloudbus.cloudsim.Host; +import org.cloudbus.cloudsim.VmAllocationPolicy; + +public abstract class MobileServerManager { + protected Datacenter localDatacenter; + protected List> vmList; + + public MobileServerManager() { + vmList = new ArrayList>(); + } + + public List getVmList(int hostId){ + if(vmList.size() > hostId) + return vmList.get(hostId); + else + return null; + } + + public Datacenter getDatacenter(){ + return localDatacenter; + } + + /* + * initialize edge server manager if needed + */ + public abstract void initialize(); + + /* + * provides abstract Vm Allocation Policy for Mobile Datacenters + */ + public abstract VmAllocationPolicy getVmAllocationPolicy(List list, int dataCenterIndex); + + /* + * Starts Datacenters + */ + public abstract void startDatacenters() throws Exception; + + /* + * Terminates Datacenters + */ + public abstract void terminateDatacenters(); + /* + * Creates VM List + */ + public abstract void createVmList(int brockerId); + + /* + * returns average utilization of all VMs + */ + public abstract double getAvgUtilization(); +} \ No newline at end of file diff --git a/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVM.java b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVM.java new file mode 100644 index 0000000..72adebe --- /dev/null +++ b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVM.java @@ -0,0 +1,36 @@ +/* + * Title: EdgeCloudSim - MobileVM + * + * Description: + * MobileVM adds vm type information over CloudSim's VM class + * + * Please note that the mobile processing units are simulated via + * CloudSim. It is assumed that the mobile devices operate Hosts + * and VMs like a server. That is why the class names are similar + * to other Cloud and Edge components (to provide consistency). + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.edge_client.mobile_processing_unit; + +import org.cloudbus.cloudsim.CloudletScheduler; +import org.cloudbus.cloudsim.Vm; + +import edu.boun.edgecloudsim.core.SimSettings; + +public class MobileVM extends Vm { + private SimSettings.VM_TYPES type; + + public MobileVM(int id, int userId, double mips, int numberOfPes, int ram, + long bw, long size, String vmm, CloudletScheduler cloudletScheduler) { + super(id, userId, mips, numberOfPes, ram, bw, size, vmm, cloudletScheduler); + + type = SimSettings.VM_TYPES.MOBILE_VM; + } + + public SimSettings.VM_TYPES getVmType(){ + return type; + } +} diff --git a/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVmAllocationPolicy_Custom.java b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVmAllocationPolicy_Custom.java new file mode 100644 index 0000000..2aae6bb --- /dev/null +++ b/src/edu/boun/edgecloudsim/edge_client/mobile_processing_unit/MobileVmAllocationPolicy_Custom.java @@ -0,0 +1,132 @@ +/* + * Title: EdgeCloudSim - Custom VM Allocation Policy for Mobile Devices' VMs + * + * Description: + * VmAllocationPolicy_Custom implements VmAllocationPolicy to decide which. + * VM is created on which host located on the datacenters. For those + * who wants to add another Vm Allocation Policy to EdgeCloudSim should + * provide another concrete instance of VmAllocationPolicy via ScenarioFactory + * + * Please note that the mobile processing units are simulated via + * CloudSim. It is assumed that the mobile devices operate Hosts + * and VMs like a server. That is why the class names are similar + * to other Cloud and Edge components (to provide consistency). + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + +package edu.boun.edgecloudsim.edge_client.mobile_processing_unit; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.cloudbus.cloudsim.Host; +import org.cloudbus.cloudsim.Log; +import org.cloudbus.cloudsim.Vm; +import org.cloudbus.cloudsim.VmAllocationPolicy; +import org.cloudbus.cloudsim.core.CloudSim; + +import edu.boun.edgecloudsim.core.SimSettings; + +/* + * Same as VmAllocationPolicySimple. + */ +public class MobileVmAllocationPolicy_Custom extends VmAllocationPolicy { + /** The vm table. */ + private Map vmTable; + private static int createdVmNum; + private int DataCenterIndex; + + public MobileVmAllocationPolicy_Custom(List list, int _DataCenterIndex) { + super(list); + + setVmTable(new HashMap()); + DataCenterIndex = _DataCenterIndex; + createdVmNum = 0; + } + + @Override + public boolean allocateHostForVm(Vm vm) { + boolean result = false; + + if (!getVmTable().containsKey(vm.getUid()) && vm instanceof MobileVM) { // if this vm was not created + int hostIndex = vm.getId() - SimSettings.getInstance().getNumOfEdgeVMs() - SimSettings.getInstance().getNumOfCloudVMs(); + + if(DataCenterIndex == SimSettings.MOBILE_DATACENTER_ID){ + Host host = getHostList().get(hostIndex); + result = host.vmCreate(vm); + + if (result) { // if vm were succesfully created in the host + getVmTable().put(vm.getUid(), host); + createdVmNum++; + Log.formatLine("%.2f: Mobile VM #" + vm.getId() + " has been allocated to the host #" + host.getId(),CloudSim.clock()); + result = true; + } + } + } + + return result; + } + + @Override + public boolean allocateHostForVm(Vm vm, Host host) { + if (host.vmCreate(vm)) { // if vm has been succesfully created in the host + getVmTable().put(vm.getUid(), host); + createdVmNum++; + + Log.formatLine("%.2f: Mobile VM #" + vm.getId() + " has been allocated to the host #" + host.getId(),CloudSim.clock()); + return true; + } + + return false; + } + + @Override + public List> optimizeAllocation( + List vmList) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void deallocateHostForVm(Vm vm) { + Host host = getVmTable().remove(vm.getUid()); + if (host != null) { + host.vmDestroy(vm); + } + } + + @Override + public Host getHost(Vm vm) { + return getVmTable().get(vm.getUid()); + } + + @Override + public Host getHost(int vmId, int userId) { + return getVmTable().get(Vm.getUid(userId, vmId)); + } + + public static int getCreatedVmNum(){ + return createdVmNum; + } + + /** + * Gets the vm table. + * + * @return the vm table + */ + public Map getVmTable() { + return vmTable; + } + + /** + * Sets the vm table. + * + * @param vmTable the vm table + */ + protected void setVmTable(Map vmTable) { + this.vmTable = vmTable; + } +} diff --git a/src/edu/boun/edgecloudsim/edge_server/EdgeServerManager.java b/src/edu/boun/edgecloudsim/edge_server/EdgeServerManager.java index 2f87bb4..6e2938e 100644 --- a/src/edu/boun/edgecloudsim/edge_server/EdgeServerManager.java +++ b/src/edu/boun/edgecloudsim/edge_server/EdgeServerManager.java @@ -1,3 +1,19 @@ +/* + * Title: EdgeCloudSim - EdgeServerManager + * + * Description: + * EdgeServerManager is responsible for creating and terminating + * the edge datacenters which operates the hosts and VMs. + * It also provides the list of VMs running on the hosts and + * the average utilization of all VMs. + * + * Please note that, EdgeCloudSim is built on top of CloudSim + * Therefore, all the computational units are handled by CloudSim + * + * Licence: GPL - http://www.gnu.org/copyleft/gpl.html + * Copyright (c) 2017, Bogazici University, Istanbul, Turkey + */ + package edu.boun.edgecloudsim.edge_server; import java.util.ArrayList; diff --git a/src/edu/boun/edgecloudsim/edge_server/EdgeVmAllocationPolicy_Custom.java b/src/edu/boun/edgecloudsim/edge_server/EdgeVmAllocationPolicy_Custom.java index b95ade6..558a3af 100644 --- a/src/edu/boun/edgecloudsim/edge_server/EdgeVmAllocationPolicy_Custom.java +++ b/src/edu/boun/edgecloudsim/edge_server/EdgeVmAllocationPolicy_Custom.java @@ -3,9 +3,9 @@ * * Description: * VmAllocationPolicy_Custom implements VmAllocationPolicy to decide which. - * VM is created on which host locatied on the datacenters. For those + * VM is created on which host located on the datacenters. For those * who wants to add another Vm Allocation Policy to EdgeCloudSim should - * provide another concreate instance of VmAllocationPolicy via ScenarioFactory + * provide another concrete instance of VmAllocationPolicy via ScenarioFactory * * Licence: GPL - http://www.gnu.org/copyleft/gpl.html * Copyright (c) 2017, Bogazici University, Istanbul, Turkey diff --git a/src/edu/boun/edgecloudsim/utils/SimLogger.java b/src/edu/boun/edgecloudsim/utils/SimLogger.java index c2460c8..0478e2d 100644 --- a/src/edu/boun/edgecloudsim/utils/SimLogger.java +++ b/src/edu/boun/edgecloudsim/utils/SimLogger.java @@ -144,8 +144,8 @@ public class SimLogger { taskMap.get(taskId).taskFailedDueToMobility(time); } - public void addVmUtilizationLog(double time, double loadOnEdge, double loadOnCloud) { - vmLoadList.add(new VmLoadLogItem(time, loadOnEdge, loadOnCloud)); + public void addVmUtilizationLog(double time, double loadOnEdge, double loadOnCloud, double loadOnMobile) { + vmLoadList.add(new VmLoadLogItem(time, loadOnEdge, loadOnCloud, loadOnMobile)); } public void simStopped() throws IOException { @@ -166,32 +166,41 @@ public class SimLogger { int[] uncompletedTask = new int[numOfAppTypes + 1]; int[] uncompletedTaskOnCloud = new int[numOfAppTypes + 1]; int[] uncompletedTaskOnEdge = new int[numOfAppTypes + 1]; + int[] uncompletedTaskOnMobile = new int[numOfAppTypes + 1]; int[] completedTask = new int[numOfAppTypes + 1]; int[] completedTaskOnCloud = new int[numOfAppTypes + 1]; int[] completedTaskOnEdge = new int[numOfAppTypes + 1]; - int[] completedTaskOnRemoteEdge = new int[numOfAppTypes + 1]; + int[] completedTaskOnMobile = new int[numOfAppTypes + 1]; int[] failedTask = new int[numOfAppTypes + 1]; int[] failedTaskOnCloud = new int[numOfAppTypes + 1]; int[] failedTaskOnEdge = new int[numOfAppTypes + 1]; + int[] failedTaskOnMobile = new int[numOfAppTypes + 1]; double[] networkDelay = new double[numOfAppTypes + 1]; double[] wanDelay = new double[numOfAppTypes + 1]; double[] manDelay = new double[numOfAppTypes + 1]; double[] lanDelay = new double[numOfAppTypes + 1]; + + double[] wanUsage = new double[numOfAppTypes + 1]; + double[] manUsage = new double[numOfAppTypes + 1]; + double[] lanUsage = new double[numOfAppTypes + 1]; double[] serviceTime = new double[numOfAppTypes + 1]; double[] serviceTimeOnCloud = new double[numOfAppTypes + 1]; double[] serviceTimeOnEdge = new double[numOfAppTypes + 1]; + double[] serviceTimeOnMobile = new double[numOfAppTypes + 1]; double[] processingTime = new double[numOfAppTypes + 1]; double[] processingTimeOnCloud = new double[numOfAppTypes + 1]; double[] processingTimeOnEdge = new double[numOfAppTypes + 1]; + double[] processingTimeOnMobile = new double[numOfAppTypes + 1]; int[] failedTaskDueToVmCapacity = new int[numOfAppTypes + 1]; int[] failedTaskDueToVmCapacityOnCloud = new int[numOfAppTypes + 1]; int[] failedTaskDueToVmCapacityOnEdge = new int[numOfAppTypes + 1]; + int[] failedTaskDueToVmCapacityOnMobile = new int[numOfAppTypes + 1]; double[] cost = new double[numOfAppTypes + 1]; int[] failedTaskDuetoBw = new int[numOfAppTypes + 1]; @@ -260,7 +269,9 @@ public class SimLogger { if (value.getVmType() == SimSettings.VM_TYPES.CLOUD_VM.ordinal()) completedTaskOnCloud[value.getTaskType()]++; - else if (value.getVmType() == SimSettings.VM_TYPES.EDGE_VM.ordinal()) + else if (value.getVmType() == SimSettings.VM_TYPES.MOBILE_VM.ordinal()) + completedTaskOnMobile[value.getTaskType()]++; + else completedTaskOnEdge[value.getTaskType()]++; } else if(value.getStatus() == SimLogger.TASK_STATUS.CREATED || @@ -271,7 +282,9 @@ public class SimLogger { uncompletedTask[value.getTaskType()]++; if (value.getVmType() == SimSettings.VM_TYPES.CLOUD_VM.ordinal()) uncompletedTaskOnCloud[value.getTaskType()]++; - else if (value.getVmType() == SimSettings.VM_TYPES.EDGE_VM.ordinal()) + else if (value.getVmType() == SimSettings.VM_TYPES.MOBILE_VM.ordinal()) + uncompletedTaskOnMobile[value.getTaskType()]++; + else uncompletedTaskOnEdge[value.getTaskType()]++; } else { @@ -279,7 +292,9 @@ public class SimLogger { if (value.getVmType() == SimSettings.VM_TYPES.CLOUD_VM.ordinal()) failedTaskOnCloud[value.getTaskType()]++; - else if (value.getVmType() == SimSettings.VM_TYPES.EDGE_VM.ordinal()) + else if (value.getVmType() == SimSettings.VM_TYPES.MOBILE_VM.ordinal()) + failedTaskOnMobile[value.getTaskType()]++; + else failedTaskOnEdge[value.getTaskType()]++; } @@ -288,18 +303,30 @@ public class SimLogger { serviceTime[value.getTaskType()] += value.getServiceTime(); networkDelay[value.getTaskType()] += value.getNetworkDelay(); processingTime[value.getTaskType()] += (value.getServiceTime() - value.getNetworkDelay()); - - if (value.getVmType() == SimSettings.VM_TYPES.CLOUD_VM.ordinal()) { - wanDelay[value.getTaskType()] += value.getNetworkDelay(NETWORK_DELAY_TYPES.WAN_DELAY); - serviceTimeOnCloud[value.getTaskType()] += value.getServiceTime(); - processingTimeOnCloud[value.getTaskType()] += (value.getServiceTime() - value.getNetworkDelay(NETWORK_DELAY_TYPES.WAN_DELAY)); - } - else if (value.getVmType() == SimSettings.VM_TYPES.EDGE_VM.ordinal()) { - if(value.getNetworkDelay(NETWORK_DELAY_TYPES.MAN_DELAY) != 0){ - completedTaskOnRemoteEdge[value.getTaskType()]++; - manDelay[value.getTaskType()] += value.getNetworkDelay(NETWORK_DELAY_TYPES.MAN_DELAY); - } + + if(value.getNetworkDelay(NETWORK_DELAY_TYPES.WLAN_DELAY) != 0) { + lanUsage[value.getTaskType()]++; lanDelay[value.getTaskType()] += value.getNetworkDelay(NETWORK_DELAY_TYPES.WLAN_DELAY); + } + if(value.getNetworkDelay(NETWORK_DELAY_TYPES.MAN_DELAY) != 0) { + manUsage[value.getTaskType()]++; + manDelay[value.getTaskType()] += value.getNetworkDelay(NETWORK_DELAY_TYPES.MAN_DELAY); + } + if(value.getNetworkDelay(NETWORK_DELAY_TYPES.WAN_DELAY) != 0) { + wanUsage[value.getTaskType()]++; + wanDelay[value.getTaskType()] += value.getNetworkDelay(NETWORK_DELAY_TYPES.WAN_DELAY); + } + + + if (value.getVmType() == SimSettings.VM_TYPES.CLOUD_VM.ordinal()) { + serviceTimeOnCloud[value.getTaskType()] += value.getServiceTime(); + processingTimeOnCloud[value.getTaskType()] += (value.getServiceTime() - value.getNetworkDelay()); + } + else if (value.getVmType() == SimSettings.VM_TYPES.MOBILE_VM.ordinal()) { + serviceTimeOnMobile[value.getTaskType()] += value.getServiceTime(); + processingTimeOnMobile[value.getTaskType()] += value.getServiceTime(); + } + else { serviceTimeOnEdge[value.getTaskType()] += value.getServiceTime(); processingTimeOnEdge[value.getTaskType()] += (value.getServiceTime() - value.getNetworkDelay()); } @@ -311,7 +338,9 @@ public class SimLogger { if (value.getVmType() == SimSettings.VM_TYPES.CLOUD_VM.ordinal()) failedTaskDueToVmCapacityOnCloud[value.getTaskType()]++; - else if (value.getVmType() == SimSettings.VM_TYPES.EDGE_VM.ordinal()) + else if (value.getVmType() == SimSettings.VM_TYPES.MOBILE_VM.ordinal()) + failedTaskDueToVmCapacityOnMobile[value.getTaskType()]++; + else failedTaskDueToVmCapacityOnEdge[value.getTaskType()]++; if (fileLogEnabled && SimSettings.getInstance().getDeepFileLoggingEnabled()) @@ -339,32 +368,41 @@ public class SimLogger { uncompletedTask[numOfAppTypes] = IntStream.of(uncompletedTask).sum(); uncompletedTaskOnCloud[numOfAppTypes] = IntStream.of(uncompletedTaskOnCloud).sum(); uncompletedTaskOnEdge[numOfAppTypes] = IntStream.of(uncompletedTaskOnEdge).sum(); + uncompletedTaskOnMobile[numOfAppTypes] = IntStream.of(uncompletedTaskOnMobile).sum(); completedTask[numOfAppTypes] = IntStream.of(completedTask).sum(); completedTaskOnCloud[numOfAppTypes] = IntStream.of(completedTaskOnCloud).sum(); completedTaskOnEdge[numOfAppTypes] = IntStream.of(completedTaskOnEdge).sum(); - completedTaskOnRemoteEdge[numOfAppTypes] = IntStream.of(completedTaskOnRemoteEdge).sum(); + completedTaskOnMobile[numOfAppTypes] = IntStream.of(completedTaskOnMobile).sum(); failedTask[numOfAppTypes] = IntStream.of(failedTask).sum(); failedTaskOnCloud[numOfAppTypes] = IntStream.of(failedTaskOnCloud).sum(); failedTaskOnEdge[numOfAppTypes] = IntStream.of(failedTaskOnEdge).sum(); + failedTaskOnMobile[numOfAppTypes] = IntStream.of(failedTaskOnMobile).sum(); networkDelay[numOfAppTypes] = DoubleStream.of(networkDelay).sum(); lanDelay[numOfAppTypes] = DoubleStream.of(lanDelay).sum(); manDelay[numOfAppTypes] = DoubleStream.of(manDelay).sum(); wanDelay[numOfAppTypes] = DoubleStream.of(wanDelay).sum(); + + lanUsage[numOfAppTypes] = DoubleStream.of(lanUsage).sum(); + manUsage[numOfAppTypes] = DoubleStream.of(manUsage).sum(); + wanUsage[numOfAppTypes] = DoubleStream.of(wanUsage).sum(); serviceTime[numOfAppTypes] = DoubleStream.of(serviceTime).sum(); serviceTimeOnCloud[numOfAppTypes] = DoubleStream.of(serviceTimeOnCloud).sum(); serviceTimeOnEdge[numOfAppTypes] = DoubleStream.of(serviceTimeOnEdge).sum(); + serviceTimeOnMobile[numOfAppTypes] = DoubleStream.of(serviceTimeOnMobile).sum(); processingTime[numOfAppTypes] = DoubleStream.of(processingTime).sum(); processingTimeOnCloud[numOfAppTypes] = DoubleStream.of(processingTimeOnCloud).sum(); processingTimeOnEdge[numOfAppTypes] = DoubleStream.of(processingTimeOnEdge).sum(); + processingTimeOnMobile[numOfAppTypes] = DoubleStream.of(processingTimeOnMobile).sum(); failedTaskDueToVmCapacity[numOfAppTypes] = IntStream.of(failedTaskDueToVmCapacity).sum(); failedTaskDueToVmCapacityOnCloud[numOfAppTypes] = IntStream.of(failedTaskDueToVmCapacityOnCloud).sum(); failedTaskDueToVmCapacityOnEdge[numOfAppTypes] = IntStream.of(failedTaskDueToVmCapacityOnEdge).sum(); + failedTaskDueToVmCapacityOnMobile[numOfAppTypes] = IntStream.of(failedTaskDueToVmCapacityOnMobile).sum(); cost[numOfAppTypes] = DoubleStream.of(cost).sum(); failedTaskDuetoBw[numOfAppTypes] = IntStream.of(failedTaskDuetoBw).sum(); @@ -376,9 +414,11 @@ public class SimLogger { // calculate server load double totalVmLoadOnEdge = 0; double totalVmLoadOnCloud = 0; + double totalVmLoadOnMobile = 0; for (VmLoadLogItem entry : vmLoadList) { totalVmLoadOnEdge += entry.getEdgeLoad(); totalVmLoadOnCloud += entry.getCloudLoad(); + totalVmLoadOnMobile += entry.getMobileLoad(); if (fileLogEnabled) appendToFile(vmLoadBW, entry.toString()); } @@ -419,19 +459,20 @@ public class SimLogger { // check if the divisor is zero in order to avoid division by // zero problem double _serviceTime = (completedTask[i] == 0) ? 0.0 : (serviceTime[i] / (double) completedTask[i]); - double _networkDelay = (completedTask[i] == 0) ? 0.0 : (networkDelay[i] / (double) completedTask[i]); + double _networkDelay = (completedTask[i] == 0) ? 0.0 : (networkDelay[i] / ((double) completedTask[i] - (double)completedTaskOnMobile[i])); double _processingTime = (completedTask[i] == 0) ? 0.0 : (processingTime[i] / (double) completedTask[i]); double _vmLoadOnEdge = (vmLoadList.size() == 0) ? 0.0 : (totalVmLoadOnEdge / (double) vmLoadList.size()); double _vmLoadOnClould = (vmLoadList.size() == 0) ? 0.0 : (totalVmLoadOnCloud / (double) vmLoadList.size()); + double _vmLoadOnMobile = (vmLoadList.size() == 0) ? 0.0 : (totalVmLoadOnMobile / (double) vmLoadList.size()); double _cost = (completedTask[i] == 0) ? 0.0 : (cost[i] / (double) completedTask[i]); - double _lanDelay = (completedTaskOnEdge[i] == 0) ? 0.0 - : (lanDelay[i] / (double) completedTaskOnEdge[i]); - double _manDelay = (completedTaskOnRemoteEdge[i] == 0) ? 0.0 - : (manDelay[i] / (double) completedTaskOnRemoteEdge[i]); - double _wanDelay = (completedTaskOnCloud[i] == 0) ? 0.0 - : (wanDelay[i] / (double) completedTaskOnCloud[i]); - + double _lanDelay = (lanUsage[i] == 0) ? 0.0 + : (lanDelay[i] / (double) lanUsage[i]); + double _manDelay = (manUsage[i] == 0) ? 0.0 + : (manDelay[i] / (double) manUsage[i]); + double _wanDelay = (wanUsage[i] == 0) ? 0.0 + : (wanDelay[i] / (double) wanUsage[i]); + // write generic results String genericResult1 = Integer.toString(completedTask[i]) + SimSettings.DELIMITER + Integer.toString(failedTask[i]) + SimSettings.DELIMITER @@ -474,13 +515,26 @@ public class SimLogger { + Double.toString(0.0) + SimSettings.DELIMITER + Double.toString(_vmLoadOnClould) + SimSettings.DELIMITER + Integer.toString(failedTaskDueToVmCapacityOnCloud[i]); - - //for future use - String genericResult4 = "0;0;0;0;0;0;0;0;0"; - + + // check if the divisor is zero in order to avoid division by zero problem + double _serviceTimeOnMobile = (completedTaskOnMobile[i] == 0) ? 0.0 + : (serviceTimeOnMobile[i] / (double) completedTaskOnMobile[i]); + double _processingTimeOnMobile = (completedTaskOnMobile[i] == 0) ? 0.0 + : (processingTimeOnMobile[i] / (double) completedTaskOnMobile[i]); + String genericResult4 = Integer.toString(completedTaskOnMobile[i]) + SimSettings.DELIMITER + + Integer.toString(failedTaskOnMobile[i]) + SimSettings.DELIMITER + + Integer.toString(uncompletedTaskOnMobile[i]) + SimSettings.DELIMITER + + Integer.toString(0) + SimSettings.DELIMITER + + Double.toString(_serviceTimeOnMobile) + SimSettings.DELIMITER + + Double.toString(_processingTimeOnMobile) + SimSettings.DELIMITER + + Double.toString(0.0) + SimSettings.DELIMITER + + Double.toString(_vmLoadOnMobile) + SimSettings.DELIMITER + + Integer.toString(failedTaskDueToVmCapacityOnMobile[i]); + String genericResult5 = Double.toString(_lanDelay) + SimSettings.DELIMITER + Double.toString(_manDelay) + SimSettings.DELIMITER + Double.toString(_wanDelay) + SimSettings.DELIMITER + + 0 + SimSettings.DELIMITER //for future use + Integer.toString(failedTaskDuetoLanBw[i]) + SimSettings.DELIMITER + Integer.toString(failedTaskDuetoManBw[i]) + SimSettings.DELIMITER + Integer.toString(failedTaskDuetoWanBw[i]); @@ -511,30 +565,35 @@ public class SimLogger { } // printout important results - printLine("# of tasks (Edge/Cloud): " + printLine("# of tasks (Edge/Cloud/Mobile): " + (failedTask[numOfAppTypes] + completedTask[numOfAppTypes]) + "(" + (failedTaskOnEdge[numOfAppTypes] + completedTaskOnEdge[numOfAppTypes]) + "/" - + (failedTaskOnCloud[numOfAppTypes]+ completedTaskOnCloud[numOfAppTypes]) + ")"); + + (failedTaskOnCloud[numOfAppTypes]+ completedTaskOnCloud[numOfAppTypes]) + "/" + + (failedTaskOnMobile[numOfAppTypes]+ completedTaskOnMobile[numOfAppTypes]) + ")"); - printLine("# of failed tasks (Edge/Cloud): " + printLine("# of failed tasks (Edge/Cloud/Mobile): " + failedTask[numOfAppTypes] + "(" + failedTaskOnEdge[numOfAppTypes] + "/" - + failedTaskOnCloud[numOfAppTypes] + ")"); + + failedTaskOnCloud[numOfAppTypes] + "/" + + failedTaskOnMobile[numOfAppTypes] + ")"); - printLine("# of completed tasks (Edge/Cloud): " + printLine("# of completed tasks (Edge/Cloud/Mobile): " + completedTask[numOfAppTypes] + "(" + completedTaskOnEdge[numOfAppTypes] + "/" - + completedTaskOnCloud[numOfAppTypes] + ")"); + + completedTaskOnCloud[numOfAppTypes] + "/" + + completedTaskOnMobile[numOfAppTypes] + ")"); - printLine("# of uncompleted tasks (Edge/Cloud): " + printLine("# of uncompleted tasks (Edge/Cloud/Mobile): " + uncompletedTask[numOfAppTypes] + "(" + uncompletedTaskOnEdge[numOfAppTypes] + "/" - + uncompletedTaskOnCloud[numOfAppTypes] + ")"); + + uncompletedTaskOnCloud[numOfAppTypes] + "/" + + uncompletedTaskOnMobile[numOfAppTypes] + ")"); - printLine("# of failed tasks due to vm capacity (Edge/Cloud): " + printLine("# of failed tasks due to vm capacity (Edge/Cloud/Mobile): " + failedTaskDueToVmCapacity[numOfAppTypes] + "(" + failedTaskDueToVmCapacityOnEdge[numOfAppTypes] + "/" - + failedTaskDueToVmCapacityOnCloud[numOfAppTypes] + ")"); + + failedTaskDueToVmCapacityOnCloud[numOfAppTypes] + "/" + + failedTaskDueToVmCapacityOnMobile[numOfAppTypes] + ")"); printLine("# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): " + failedTaskDuetoMobility[numOfAppTypes] @@ -554,6 +613,8 @@ public class SimLogger { + String.format("%.6f", serviceTimeOnEdge[numOfAppTypes] / (double) completedTaskOnEdge[numOfAppTypes]) + ", " + "on Cloud: " + String.format("%.6f", serviceTimeOnCloud[numOfAppTypes] / (double) completedTaskOnCloud[numOfAppTypes]) + + ", " + "on Mobile: " + + String.format("%.6f", serviceTimeOnMobile[numOfAppTypes] / (double) completedTaskOnMobile[numOfAppTypes]) + ")"); printLine("average processing time: " @@ -562,20 +623,23 @@ public class SimLogger { + String.format("%.6f", processingTimeOnEdge[numOfAppTypes] / (double) completedTaskOnEdge[numOfAppTypes]) + ", " + "on Cloud: " + String.format("%.6f", processingTimeOnCloud[numOfAppTypes] / (double) completedTaskOnCloud[numOfAppTypes]) + + ", " + "on Mobile: " + + String.format("%.6f", processingTimeOnMobile[numOfAppTypes] / (double) completedTaskOnMobile[numOfAppTypes]) + ")"); printLine("average network delay: " - + String.format("%.6f", networkDelay[numOfAppTypes] / (double) completedTask[numOfAppTypes]) + + String.format("%.6f", networkDelay[numOfAppTypes] / ((double) completedTask[numOfAppTypes] - (double) completedTaskOnMobile[numOfAppTypes])) + " seconds. (" + "LAN delay: " - + String.format("%.6f", lanDelay[numOfAppTypes] / (double) completedTaskOnEdge[numOfAppTypes]) + + String.format("%.6f", lanDelay[numOfAppTypes] / (double) lanUsage[numOfAppTypes]) + ", " + "MAN delay: " - + String.format("%.6f", manDelay[numOfAppTypes] / (double) completedTaskOnRemoteEdge[numOfAppTypes]) + + String.format("%.6f", manDelay[numOfAppTypes] / (double) manUsage[numOfAppTypes]) + ", " + "WAN delay: " - + String.format("%.6f", wanDelay[numOfAppTypes] / (double) completedTaskOnCloud[numOfAppTypes]) + ")"); + + String.format("%.6f", wanDelay[numOfAppTypes] / (double) wanUsage[numOfAppTypes]) + ")"); - printLine("average server utilization Edge/Cloud: " + printLine("average server utilization Edge/Cloud/Mobile: " + String.format("%.6f", totalVmLoadOnEdge / (double) vmLoadList.size()) + "/" - + String.format("%.6f", totalVmLoadOnCloud / (double) vmLoadList.size())); + + String.format("%.6f", totalVmLoadOnCloud / (double) vmLoadList.size()) + "/" + + String.format("%.6f", totalVmLoadOnMobile / (double) vmLoadList.size())); printLine("average cost: " + cost[numOfAppTypes] / completedTask[numOfAppTypes] + "$"); @@ -589,11 +653,13 @@ class VmLoadLogItem { private double time; private double vmLoadOnEdge; private double vmLoadOnCloud; + private double vmLoadOnMobile; - VmLoadLogItem(double _time, double _vmLoadOnEdge, double _vmLoadOnCloud) { + VmLoadLogItem(double _time, double _vmLoadOnEdge, double _vmLoadOnCloud, double _vmLoadOnMobile) { time = _time; vmLoadOnEdge = _vmLoadOnEdge; vmLoadOnCloud = _vmLoadOnCloud; + vmLoadOnMobile = _vmLoadOnMobile; } public double getEdgeLoad() { @@ -604,10 +670,15 @@ class VmLoadLogItem { return vmLoadOnCloud; } + public double getMobileLoad() { + return vmLoadOnMobile; + } + public String toString() { return time + SimSettings.DELIMITER + vmLoadOnEdge + - SimSettings.DELIMITER + vmLoadOnCloud; + SimSettings.DELIMITER + vmLoadOnCloud + + SimSettings.DELIMITER + vmLoadOnMobile; } } @@ -828,4 +899,4 @@ class LogItem { result += "0"; // default failure reason return result; } -} \ No newline at end of file +} From ea6f3d10881b97fb92860944c8d1c3c1b730299e Mon Sep 17 00:00:00 2001 From: Cagatay Sonmez Date: Mon, 26 Nov 2018 01:50:47 -0700 Subject: [PATCH 2/3] scripts to compile sample_app3 are added --- scripts/sample_app3/compile.sh | 4 ++ scripts/sample_app3/run_scenarios.sh | 59 ++++++++++++++++++++++++++++ scripts/sample_app3/runner.sh | 18 +++++++++ scripts/sample_app3/simulation.list | 1 + 4 files changed, 82 insertions(+) create mode 100755 scripts/sample_app3/compile.sh create mode 100755 scripts/sample_app3/run_scenarios.sh create mode 100755 scripts/sample_app3/runner.sh create mode 100644 scripts/sample_app3/simulation.list diff --git a/scripts/sample_app3/compile.sh b/scripts/sample_app3/compile.sh new file mode 100755 index 0000000..cfb470c --- /dev/null +++ b/scripts/sample_app3/compile.sh @@ -0,0 +1,4 @@ +#!/bin/sh +rm -rf ../../bin +mkdir ../../bin +javac -classpath "../../lib/cloudsim-4.0.jar:../../lib/commons-math3-3.6.1.jar:../../lib/colt.jar" -sourcepath ../../src ../../src/edu/boun/edgecloudsim/applications/sample_app3/MainApp.java -d ../../bin diff --git a/scripts/sample_app3/run_scenarios.sh b/scripts/sample_app3/run_scenarios.sh new file mode 100755 index 0000000..c770335 --- /dev/null +++ b/scripts/sample_app3/run_scenarios.sh @@ -0,0 +1,59 @@ +#!/bin/bash +if [ "$#" -ne 2 ]; then + echo "Missing arguments! Please provide number of parallel processes and number of iterations." + echo "Usage: '$0 4 10'" + exit 1 +fi + +re='^[0-9]+$' +if ! [[ $1 =~ $re ]] ; then + echo "$1 is not an integer! Please provide number of parallel processes." + echo "Usage: '$0 4 10'" + exit 1 +fi + +if ! [[ $2 =~ $re ]] ; then + echo "$1 is not an integer! Please provide number of iterations." + echo "Usage: '$0 4 10'" + exit 1 +fi + +script_root_path="$(dirname "$(readlink -f "$0")")" +root_out_folder=${script_root_path}/output +num_of_processes=$1 +iterationNumber=$2 +process_counter=0 + +date=$(date '+%d-%m-%Y_%H-%M') +simulation_out_folder=${root_out_folder}/${date} +mkdir -p $simulation_out_folder + +simulations=$(cat ${script_root_path}/simulation.list) + +rm -rf ${script_root_path}/tmp_runner* + +for sim_args in $simulations +do + scenario_name=$(echo $sim_args | cut -d ';' -f1) + edge_devices_file=$(echo $sim_args | cut -d ';' -f2) + applications_file=$(echo $sim_args | cut -d ';' -f3) + for (( i=1; i<=$iterationNumber; i++ )) + do + process_id=$(($process_counter % $num_of_processes)) + process_counter=$(($process_counter + 1)) + + echo "${script_root_path}/runner.sh $simulation_out_folder $scenario_name $edge_devices_file $applications_file ${i}" >> "${simulation_out_folder}/tmp_runner${process_id}.sh" + done +done + +#num_of_cores=$(grep -c ^processor /proc/cpuinfo) + +for (( i=0; i<$num_of_processes; i++ )) +do + chmod +x ${simulation_out_folder}/tmp_runner${i}.sh + ${simulation_out_folder}/tmp_runner${i}.sh & + +# pid=$! +# cpu=$(($i % $num_of_cores)) +# taskset -cp $cpu,$cpu $pid +done diff --git a/scripts/sample_app3/runner.sh b/scripts/sample_app3/runner.sh new file mode 100755 index 0000000..e0b5368 --- /dev/null +++ b/scripts/sample_app3/runner.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +script_root_path="$(dirname "$(readlink -f "$0")")" +simulation_out_folder=$1 +scenario_name=$2 +edge_devices_file=$3 +applications_file=$4 +iteration_number=$5 + +scenario_out_folder=${simulation_out_folder}/${scenario_name}/ite${iteration_number} +scenario_conf_file=${script_root_path}/config/${scenario_name}.properties +scenario_edge_devices_file=${script_root_path}/config/${edge_devices_file} +scenario_applications_file=${script_root_path}/config/${applications_file} + +mkdir -p $scenario_out_folder +java -classpath '../../bin:../../lib/cloudsim-4.0.jar:../../lib/commons-math3-3.6.1.jar:../../lib/colt.jar' edu.boun.edgecloudsim.applications.sample_app3.MainApp $scenario_conf_file $scenario_edge_devices_file $scenario_applications_file $scenario_out_folder $iteration_number > ${scenario_out_folder}.log +tar -czf ${scenario_out_folder}.tar.gz -C $simulation_out_folder/${scenario_name} ite${iteration_number} +rm -rf $scenario_out_folder diff --git a/scripts/sample_app3/simulation.list b/scripts/sample_app3/simulation.list new file mode 100644 index 0000000..3a4122a --- /dev/null +++ b/scripts/sample_app3/simulation.list @@ -0,0 +1 @@ +default_config;edge_devices.xml;applications.xml \ No newline at end of file From e8549e0112bdb8d8fa536c05b4bb1621068c983c Mon Sep 17 00:00:00 2001 From: Cagatay Sonmez Date: Mon, 26 Nov 2018 02:03:02 -0700 Subject: [PATCH 3/3] unused simulation output folders are removed --- .../30-08-2018_15-27/default_config/ite1.log | 633 ------------------ .../default_config/ite1.tar.gz | Bin 122227 -> 0 bytes .../30-08-2018_15-27/default_config/ite2.log | 633 ------------------ .../default_config/ite2.tar.gz | Bin 122346 -> 0 bytes .../output/30-08-2018_15-27/tmp_runner0.sh | 1 - .../output/30-08-2018_15-27/tmp_runner1.sh | 1 - .../30-08-2018_15-29/default_config/ite1.log | 633 ------------------ .../default_config/ite1.tar.gz | Bin 138486 -> 0 bytes .../30-08-2018_15-29/default_config/ite2.log | 633 ------------------ .../default_config/ite2.tar.gz | Bin 138599 -> 0 bytes .../output/30-08-2018_15-29/tmp_runner0.sh | 1 - .../output/30-08-2018_15-29/tmp_runner1.sh | 1 - 12 files changed, 2536 deletions(-) delete mode 100644 scripts/sample_app1/output/30-08-2018_15-27/default_config/ite1.log delete mode 100644 scripts/sample_app1/output/30-08-2018_15-27/default_config/ite1.tar.gz delete mode 100644 scripts/sample_app1/output/30-08-2018_15-27/default_config/ite2.log delete mode 100644 scripts/sample_app1/output/30-08-2018_15-27/default_config/ite2.tar.gz delete mode 100755 scripts/sample_app1/output/30-08-2018_15-27/tmp_runner0.sh delete mode 100755 scripts/sample_app1/output/30-08-2018_15-27/tmp_runner1.sh delete mode 100644 scripts/sample_app2/output/30-08-2018_15-29/default_config/ite1.log delete mode 100644 scripts/sample_app2/output/30-08-2018_15-29/default_config/ite1.tar.gz delete mode 100644 scripts/sample_app2/output/30-08-2018_15-29/default_config/ite2.log delete mode 100644 scripts/sample_app2/output/30-08-2018_15-29/default_config/ite2.tar.gz delete mode 100755 scripts/sample_app2/output/30-08-2018_15-29/tmp_runner0.sh delete mode 100755 scripts/sample_app2/output/30-08-2018_15-29/tmp_runner1.sh diff --git a/scripts/sample_app1/output/30-08-2018_15-27/default_config/ite1.log b/scripts/sample_app1/output/30-08-2018_15-27/default_config/ite1.log deleted file mode 100644 index 7cc4ac2..0000000 --- a/scripts/sample_app1/output/30-08-2018_15-27/default_config/ite1.log +++ /dev/null @@ -1,633 +0,0 @@ -Simulation started at 30/08/2018 15:27:26 ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:26 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 100 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 9744(9744/0) -# of failed tasks (Edge/Cloud): 111(111/0) -# of completed tasks (Edge/Cloud): 9633(9633/0) -# of uncompleted tasks (Edge/Cloud): 17(17/0) -# of failed tasks due to vm capacity (Edge/Cloud): 14(14/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 97/0(0/0/0) -percentage of failed tasks: 1.139163% -average service time: 1.894226 seconds. (on Edge: 1.894226, on Cloud: NaN) -average processing time: 1.875163 seconds. (on Edge: 1.875163, on Cloud: NaN) -average network delay: 0.019063 seconds. (LAN delay: 0.019063, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 7.883421/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:27:28. It took 2 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:28 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 100 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 9160(7334/1826) -# of failed tasks (Edge/Cloud): 77(69/8) -# of completed tasks (Edge/Cloud): 9083(7265/1818) -# of uncompleted tasks (Edge/Cloud): 13(13/0) -# of failed tasks due to vm capacity (Edge/Cloud): 5(5/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 72/0(0/0/0) -percentage of failed tasks: 0.840611% -average service time: 1.549063 seconds. (on Edge: 1.760382, on Cloud: 0.704599) -average processing time: 1.438888 seconds. (on Edge: 1.741308, on Cloud: 0.230373) -average network delay: 0.110175 seconds. (LAN delay: 0.019074, MAN delay: NaN, WAN delay: 0.474227) -average server utilization Edge/Cloud: 5.247253/0.107023 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:27:30. It took 1 Second ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:30 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 100 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 8412(6670/1742) -# of failed tasks (Edge/Cloud): 67(59/8) -# of completed tasks (Edge/Cloud): 8345(6611/1734) -# of uncompleted tasks (Edge/Cloud): 12(12/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 67/0(0/0/0) -percentage of failed tasks: 0.796481% -average service time: 1.519185 seconds. (on Edge: 1.729428, on Cloud: 0.717617) -average processing time: 1.398358 seconds. (on Edge: 1.701111, on Cloud: 0.244093) -average network delay: 0.120826 seconds. (LAN delay: 0.028317, MAN delay: NaN, WAN delay: 0.473524) -average server utilization Edge/Cloud: 4.838748/0.116639 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:27:32. It took 1 Second ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:32 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 20582(20582/0) -# of failed tasks (Edge/Cloud): 1415(1415/0) -# of completed tasks (Edge/Cloud): 19167(19167/0) -# of uncompleted tasks (Edge/Cloud): 32(32/0) -# of failed tasks due to vm capacity (Edge/Cloud): 1214(1214/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 201/0(0/0/0) -percentage of failed tasks: 6.874939% -average service time: 2.329965 seconds. (on Edge: 2.329965, on Cloud: NaN) -average processing time: 2.310554 seconds. (on Edge: 2.310554, on Cloud: NaN) -average network delay: 0.019411 seconds. (LAN delay: 0.019411, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 19.481605/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:27:35. It took 3 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:35 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 19047(15053/3994) -# of failed tasks (Edge/Cloud): 306(298/8) -# of completed tasks (Edge/Cloud): 18741(14755/3986) -# of uncompleted tasks (Edge/Cloud): 22(21/1) -# of failed tasks due to vm capacity (Edge/Cloud): 146(146/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 160/0(0/0/0) -percentage of failed tasks: 1.606552% -average service time: 1.778477 seconds. (on Edge: 2.073153, on Cloud: 0.687676) -average processing time: 1.660990 seconds. (on Edge: 2.053713, on Cloud: 0.207246) -average network delay: 0.117487 seconds. (LAN delay: 0.019440, MAN delay: NaN, WAN delay: 0.480430) -average server utilization Edge/Cloud: 12.975991/0.217809 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:27:38. It took 3 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:38 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 20282(16122/4160) -# of failed tasks (Edge/Cloud): 165(155/10) -# of completed tasks (Edge/Cloud): 20117(15967/4150) -# of uncompleted tasks (Edge/Cloud): 15(14/1) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 165/0(0/0/0) -percentage of failed tasks: 0.813529% -average service time: 1.550418 seconds. (on Edge: 1.777338, on Cloud: 0.677349) -average processing time: 1.428568 seconds. (on Edge: 1.748622, on Cloud: 0.197167) -average network delay: 0.121850 seconds. (LAN delay: 0.028716, MAN delay: NaN, WAN delay: 0.480181) -average server utilization Edge/Cloud: 11.869326/0.241221 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:27:43. It took 5 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:43 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 300 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 31588(31588/0) -# of failed tasks (Edge/Cloud): 4223(4223/0) -# of completed tasks (Edge/Cloud): 27365(27365/0) -# of uncompleted tasks (Edge/Cloud): 53(53/0) -# of failed tasks due to vm capacity (Edge/Cloud): 3942(3942/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 281/0(0/0/0) -percentage of failed tasks: 13.369001% -average service time: 2.819168 seconds. (on Edge: 2.819168, on Cloud: NaN) -average processing time: 2.799437 seconds. (on Edge: 2.799437, on Cloud: NaN) -average network delay: 0.019731 seconds. (LAN delay: 0.019731, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 32.894768/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:27:52. It took 8 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:27:52 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 300 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 27767(22007/5760) -# of failed tasks (Edge/Cloud): 1246(1225/21) -# of completed tasks (Edge/Cloud): 26521(20782/5739) -# of uncompleted tasks (Edge/Cloud): 42(42/0) -# of failed tasks due to vm capacity (Edge/Cloud): 1027(1027/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 219/0(0/0/0) -percentage of failed tasks: 4.487341% -average service time: 1.942640 seconds. (on Edge: 2.290136, on Cloud: 0.684291) -average processing time: 1.821822 seconds. (on Edge: 2.270339, on Cloud: 0.197656) -average network delay: 0.120818 seconds. (LAN delay: 0.019797, MAN delay: NaN, WAN delay: 0.486635) -average server utilization Edge/Cloud: 19.931916/0.309365 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:28:01. It took 9 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:28:01 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 300 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 27391(21870/5521) -# of failed tasks (Edge/Cloud): 199(177/22) -# of completed tasks (Edge/Cloud): 27192(21693/5499) -# of uncompleted tasks (Edge/Cloud): 30(30/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 199/0(0/0/0) -percentage of failed tasks: 0.726516% -average service time: 1.518735 seconds. (on Edge: 1.732473, on Cloud: 0.675556) -average processing time: 1.397512 seconds. (on Edge: 1.703488, on Cloud: 0.190465) -average network delay: 0.121223 seconds. (LAN delay: 0.028985, MAN delay: NaN, WAN delay: 0.485091) -average server utilization Edge/Cloud: 15.657549/0.309365 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:28:10. It took 9 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:28:10 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 38980(38980/0) -# of failed tasks (Edge/Cloud): 7667(7667/0) -# of completed tasks (Edge/Cloud): 31313(31313/0) -# of uncompleted tasks (Edge/Cloud): 62(62/0) -# of failed tasks due to vm capacity (Edge/Cloud): 7275(7275/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 392/0(0/0/0) -percentage of failed tasks: 19.669061% -average service time: 2.859370 seconds. (on Edge: 2.859370, on Cloud: NaN) -average processing time: 2.839280 seconds. (on Edge: 2.839280, on Cloud: NaN) -average network delay: 0.020089 seconds. (LAN delay: 0.020089, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 38.879001/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:28:24. It took 13 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:28:24 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 39128(31017/8111) -# of failed tasks (Edge/Cloud): 3075(3050/25) -# of completed tasks (Edge/Cloud): 36053(27967/8086) -# of uncompleted tasks (Edge/Cloud): 56(54/2) -# of failed tasks due to vm capacity (Edge/Cloud): 2711(2711/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 364/0(0/0/0) -percentage of failed tasks: 7.858822% -average service time: 2.165025 seconds. (on Edge: 2.593167, on Cloud: 0.684211) -average processing time: 2.039043 seconds. (on Edge: 2.573087, on Cloud: 0.191949) -average network delay: 0.125981 seconds. (LAN delay: 0.020080, MAN delay: NaN, WAN delay: 0.492262) -average server utilization Edge/Cloud: 31.109651/0.478261 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:28:38. It took 14 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:28:38 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 37643(30008/7635) -# of failed tasks (Edge/Cloud): 322(298/24) -# of completed tasks (Edge/Cloud): 37321(29710/7611) -# of uncompleted tasks (Edge/Cloud): 51(48/3) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 322/0(0/0/0) -percentage of failed tasks: 0.855405% -average service time: 1.735730 seconds. (on Edge: 2.004333, on Cloud: 0.687222) -average processing time: 1.612197 seconds. (on Edge: 1.974968, on Cloud: 0.196100) -average network delay: 0.123533 seconds. (LAN delay: 0.029365, MAN delay: NaN, WAN delay: 0.491123) -average server utilization Edge/Cloud: 25.848662/0.508361 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:28:56. It took 17 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:28:56 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 500 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 48943(48943/0) -# of failed tasks (Edge/Cloud): 12151(12151/0) -# of completed tasks (Edge/Cloud): 36792(36792/0) -# of uncompleted tasks (Edge/Cloud): 72(72/0) -# of failed tasks due to vm capacity (Edge/Cloud): 11654(11654/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 497/0(0/0/0) -percentage of failed tasks: 24.826839% -average service time: 3.021387 seconds. (on Edge: 3.021387, on Cloud: NaN) -average processing time: 3.001062 seconds. (on Edge: 3.001062, on Cloud: NaN) -average network delay: 0.020324 seconds. (LAN delay: 0.020324, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 48.122910/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:29:14. It took 18 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:29:14 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 500 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 46907(37484/9423) -# of failed tasks (Edge/Cloud): 5486(5457/29) -# of completed tasks (Edge/Cloud): 41421(32027/9394) -# of uncompleted tasks (Edge/Cloud): 62(59/3) -# of failed tasks due to vm capacity (Edge/Cloud): 5109(5109/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 377/0(0/0/0) -percentage of failed tasks: 11.695483% -average service time: 2.239804 seconds. (on Edge: 2.695709, on Cloud: 0.685485) -average processing time: 2.110792 seconds. (on Edge: 2.675268, on Cloud: 0.186322) -average network delay: 0.129012 seconds. (LAN delay: 0.020441, MAN delay: NaN, WAN delay: 0.499163) -average server utilization Edge/Cloud: 36.375418/0.487876 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:29:43. It took 28 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:29:43 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 500 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 48005(38053/9952) -# of failed tasks (Edge/Cloud): 436(400/36) -# of completed tasks (Edge/Cloud): 47569(37653/9916) -# of uncompleted tasks (Edge/Cloud): 83(82/1) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 436/0(0/0/0) -percentage of failed tasks: 0.908239% -average service time: 1.977924 seconds. (on Edge: 2.317429, on Cloud: 0.688756) -average processing time: 1.850193 seconds. (on Edge: 2.287576, on Cloud: 0.189367) -average network delay: 0.127731 seconds. (LAN delay: 0.029854, MAN delay: NaN, WAN delay: 0.499389) -average server utilization Edge/Cloud: 37.673196/0.577759 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:30:39. It took 56 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:30:39 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 52450(52450/0) -# of failed tasks (Edge/Cloud): 12981(12981/0) -# of completed tasks (Edge/Cloud): 39469(39469/0) -# of uncompleted tasks (Edge/Cloud): 75(75/0) -# of failed tasks due to vm capacity (Edge/Cloud): 12485(12485/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 496/0(0/0/0) -percentage of failed tasks: 24.749285% -average service time: 2.970507 seconds. (on Edge: 2.970507, on Cloud: NaN) -average processing time: 2.949778 seconds. (on Edge: 2.949778, on Cloud: NaN) -average network delay: 0.020728 seconds. (LAN delay: 0.020728, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 49.608815/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:31:35. It took 56 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:31:35 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 57013(45217/11796) -# of failed tasks (Edge/Cloud): 9316(9278/38) -# of completed tasks (Edge/Cloud): 47697(35939/11758) -# of uncompleted tasks (Edge/Cloud): 62(61/1) -# of failed tasks due to vm capacity (Edge/Cloud): 8807(8807/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 509/0(0/0/0) -percentage of failed tasks: 16.340133% -average service time: 2.315465 seconds. (on Edge: 2.846571, on Cloud: 0.692106) -average processing time: 2.174666 seconds. (on Edge: 2.825747, on Cloud: 0.184599) -average network delay: 0.140799 seconds. (LAN delay: 0.020824, MAN delay: NaN, WAN delay: 0.507507) -average server utilization Edge/Cloud: 43.084687/0.677676 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:32:50. It took 1 Minute 15 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:32:50 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 55033(43936/11097) -# of failed tasks (Edge/Cloud): 581(545/36) -# of completed tasks (Edge/Cloud): 54452(43391/11061) -# of uncompleted tasks (Edge/Cloud): 95(93/2) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 581/0(0/0/0) -percentage of failed tasks: 1.055730% -average service time: 2.327678 seconds. (on Edge: 2.744177, on Cloud: 0.693798) -average processing time: 2.200332 seconds. (on Edge: 2.713820, on Cloud: 0.185981) -average network delay: 0.127346 seconds. (LAN delay: 0.030358, MAN delay: NaN, WAN delay: 0.507818) -average server utilization Edge/Cloud: 50.904802/0.625418 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:34:09. It took 1 Minute 18 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:34:09 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 700 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 69629(69629/0) -# of failed tasks (Edge/Cloud): 26542(26542/0) -# of completed tasks (Edge/Cloud): 43087(43087/0) -# of uncompleted tasks (Edge/Cloud): 97(97/0) -# of failed tasks due to vm capacity (Edge/Cloud): 25826(25826/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 716/0(0/0/0) -percentage of failed tasks: 38.119174% -average service time: 3.203409 seconds. (on Edge: 3.203409, on Cloud: NaN) -average processing time: 3.182394 seconds. (on Edge: 3.182394, on Cloud: NaN) -average network delay: 0.021015 seconds. (LAN delay: 0.021015, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 59.743789/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:35:26. It took 1 Minute 17 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:35:26 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 700 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 67093(53456/13637) -# of failed tasks (Edge/Cloud): 15841(15786/55) -# of completed tasks (Edge/Cloud): 51252(37670/13582) -# of uncompleted tasks (Edge/Cloud): 74(72/2) -# of failed tasks due to vm capacity (Edge/Cloud): 15267(15267/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 574/0(0/0/0) -percentage of failed tasks: 23.610511% -average service time: 2.404199 seconds. (on Edge: 3.016760, on Cloud: 0.705248) -average processing time: 2.251764 seconds. (on Edge: 2.995567, on Cloud: 0.188811) -average network delay: 0.152435 seconds. (LAN delay: 0.021193, MAN delay: NaN, WAN delay: 0.516437) -average server utilization Edge/Cloud: 48.764931/0.783027 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:36:59. It took 1 Minute 33 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:36:59 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 700 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 67204(53549/13655) -# of failed tasks (Edge/Cloud): 2804(2760/44) -# of completed tasks (Edge/Cloud): 64400(50789/13611) -# of uncompleted tasks (Edge/Cloud): 120(119/1) -# of failed tasks due to vm capacity (Edge/Cloud): 1903(1903/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 901/0(0/0/0) -percentage of failed tasks: 4.172371% -average service time: 3.056693 seconds. (on Edge: 3.687844, on Cloud: 0.701572) -average processing time: 2.923022 seconds. (on Edge: 3.656914, on Cloud: 0.184526) -average network delay: 0.133671 seconds. (LAN delay: 0.030930, MAN delay: NaN, WAN delay: 0.517045) -average server utilization Edge/Cloud: 80.104515/0.770903 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:38:59. It took 1 Minute 59 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:38:59 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 78099(78099/0) -# of failed tasks (Edge/Cloud): 32838(32838/0) -# of completed tasks (Edge/Cloud): 45261(45261/0) -# of uncompleted tasks (Edge/Cloud): 89(89/0) -# of failed tasks due to vm capacity (Edge/Cloud): 32062(32062/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 776/0(0/0/0) -percentage of failed tasks: 42.046633% -average service time: 3.294763 seconds. (on Edge: 3.294763, on Cloud: NaN) -average processing time: 3.273343 seconds. (on Edge: 3.273343, on Cloud: NaN) -average network delay: 0.021420 seconds. (LAN delay: 0.021420, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 64.457119/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:40:10. It took 1 Minute 11 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:40:10 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 74992(59396/15596) -# of failed tasks (Edge/Cloud): 18844(18796/48) -# of completed tasks (Edge/Cloud): 56148(40600/15548) -# of uncompleted tasks (Edge/Cloud): 78(74/4) -# of failed tasks due to vm capacity (Edge/Cloud): 18198(18198/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 646/0(0/0/0) -percentage of failed tasks: 25.128014% -average service time: 2.420172 seconds. (on Edge: 3.074358, on Cloud: 0.711915) -average processing time: 2.259818 seconds. (on Edge: 3.052875, on Cloud: 0.188935) -average network delay: 0.160353 seconds. (LAN delay: 0.021483, MAN delay: NaN, WAN delay: 0.522980) -average server utilization Edge/Cloud: 53.857501/0.956940 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:41:49. It took 1 Minute 38 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:41:49 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 71458(56822/14636) -# of failed tasks (Edge/Cloud): 4311(4252/59) -# of completed tasks (Edge/Cloud): 67147(52570/14577) -# of uncompleted tasks (Edge/Cloud): 135(133/2) -# of failed tasks due to vm capacity (Edge/Cloud): 3354(3354/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 957/0(0/0/0) -percentage of failed tasks: 6.032914% -average service time: 3.103915 seconds. (on Edge: 3.768588, on Cloud: 0.706861) -average processing time: 2.966123 seconds. (on Edge: 3.737375, on Cloud: 0.184707) -average network delay: 0.137792 seconds. (LAN delay: 0.031213, MAN delay: NaN, WAN delay: 0.522154) -average server utilization Edge/Cloud: 83.877210/0.759615 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:43:28. It took 1 Minute 39 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:43:28 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 900 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 86591(86591/0) -# of failed tasks (Edge/Cloud): 38309(38309/0) -# of completed tasks (Edge/Cloud): 48282(48282/0) -# of uncompleted tasks (Edge/Cloud): 97(97/0) -# of failed tasks due to vm capacity (Edge/Cloud): 37464(37464/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 845/0(0/0/0) -percentage of failed tasks: 44.241318% -average service time: 3.404546 seconds. (on Edge: 3.404546, on Cloud: NaN) -average processing time: 3.382845 seconds. (on Edge: 3.382845, on Cloud: NaN) -average network delay: 0.021701 seconds. (LAN delay: 0.021701, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 70.060320/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:44:45. It took 1 Minute 17 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:44:45 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 900 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 92770(73759/19011) -# of failed tasks (Edge/Cloud): 29921(29866/55) -# of completed tasks (Edge/Cloud): 62849(43893/18956) -# of uncompleted tasks (Edge/Cloud): 109(102/7) -# of failed tasks due to vm capacity (Edge/Cloud): 29170(29170/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 751/0(0/0/0) -percentage of failed tasks: 32.252883% -average service time: 2.506834 seconds. (on Edge: 3.276532, on Cloud: 0.724583) -average processing time: 2.329891 seconds. (on Edge: 3.254706, on Cloud: 0.188463) -average network delay: 0.176943 seconds. (LAN delay: 0.021826, MAN delay: NaN, WAN delay: 0.536119) -average server utilization Edge/Cloud: 61.998328/1.083194 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:46:25. It took 1 Minute 39 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:46:25 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 900 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 83054(66063/16991) -# of failed tasks (Edge/Cloud): 12302(12257/45) -# of completed tasks (Edge/Cloud): 70752(53806/16946) -# of uncompleted tasks (Edge/Cloud): 143(141/2) -# of failed tasks due to vm capacity (Edge/Cloud): 11291(11291/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1011/0(0/0/0) -percentage of failed tasks: 14.812050% -average service time: 3.278302 seconds. (on Edge: 4.084576, on Cloud: 0.718264) -average processing time: 3.126418 seconds. (on Edge: 4.052783, on Cloud: 0.185075) -average network delay: 0.151883 seconds. (LAN delay: 0.031793, MAN delay: NaN, WAN delay: 0.533189) -average server utilization Edge/Cloud: 92.689322/0.984532 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:48:37. It took 2 Minutes 12 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:48:37 -Scenario: SINGLE_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 95672(95672/0) -# of failed tasks (Edge/Cloud): 46459(46459/0) -# of completed tasks (Edge/Cloud): 49213(49213/0) -# of uncompleted tasks (Edge/Cloud): 92(92/0) -# of failed tasks due to vm capacity (Edge/Cloud): 45560(45560/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 899/0(0/0/0) -percentage of failed tasks: 48.560707% -average service time: 3.445419 seconds. (on Edge: 3.445419, on Cloud: NaN) -average processing time: 3.423328 seconds. (on Edge: 3.423328, on Cloud: NaN) -average network delay: 0.022091 seconds. (LAN delay: 0.022091, MAN delay: NaN, WAN delay: NaN) -average server utilization Edge/Cloud: 72.883421/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:50:01. It took 1 Minute 24 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:50:01 -Scenario: TWO_TIER - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 99828(79479/20349) -# of failed tasks (Edge/Cloud): 32912(32858/54) -# of completed tasks (Edge/Cloud): 66916(46621/20295) -# of uncompleted tasks (Edge/Cloud): 107(101/6) -# of failed tasks due to vm capacity (Edge/Cloud): 32095(32095/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 817/0(0/0/0) -percentage of failed tasks: 32.968706% -average service time: 2.570496 seconds. (on Edge: 3.372683, on Cloud: 0.727740) -average processing time: 2.391113 seconds. (on Edge: 3.350530, on Cloud: 0.187172) -average network delay: 0.179384 seconds. (LAN delay: 0.022153, MAN delay: NaN, WAN delay: 0.540569) -average server utilization Edge/Cloud: 67.738294/1.236204 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:52:27. It took 2 Minutes 25 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:52:27 -Scenario: TWO_TIER_WITH_EO - Policy: NEXT_FIT - #iteration: 1 -Duration: 0.5 hour(s) - Poisson: 5.0 - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 98868(78602/20266) -# of failed tasks (Edge/Cloud): 24284(24220/64) -# of completed tasks (Edge/Cloud): 74584(54382/20202) -# of uncompleted tasks (Edge/Cloud): 155(146/9) -# of failed tasks due to vm capacity (Edge/Cloud): 23210(23210/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1074/0(0/0/0) -percentage of failed tasks: 24.562042% -average service time: 3.264589 seconds. (on Edge: 4.205547, on Cloud: 0.731614) -average processing time: 3.094171 seconds. (on Edge: 4.173248, on Cloud: 0.189391) -average network delay: 0.170418 seconds. (LAN delay: 0.032299, MAN delay: NaN, WAN delay: 0.542223) -average server utilization Edge/Cloud: 95.796106/1.204013 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:54:43. It took 2 Minutes 16 Seconds ----------------------------------------------------------------------- -Simulation finished at 30/08/2018 15:54:43. It took 27 Minutes 17 Seconds diff --git a/scripts/sample_app1/output/30-08-2018_15-27/default_config/ite1.tar.gz b/scripts/sample_app1/output/30-08-2018_15-27/default_config/ite1.tar.gz deleted file mode 100644 index cdd22197ef062ab06ef72a603ea95e4a943c0610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122227 zcmX7PWmp_d(=HMS!FhrQ*I>a3PO#wa?(Xg^5+uPrI0Ojpu8SnN1y~#w_r+ay4&QtJ zbYD|lRb6#gP4`^W)s!)42=5Q03=oh{UJRzJI+MuJj|4ywA70?RXGDQ25_&BtWpqWX zPo5(0zP7IL_li?)G)+kYPw~;5VIDQj!)ciYC7NgMpJ3y2J9GkmF{X)}G+Uq-N`MUx z4Zdo9L3y|_zJV?}v;oIp=${;glj_t|(0lW$cK9B24(!%>atDHg;6tDnG57@dVFK6& z!|#AcG59fX_w&r*3{(OJwDtk97dRzw=mQ*z0h?2xhb!Q+6#V>f2Y!0(*ulUR=zi=B zew`r(KLz0X;O9;#@W8HSeF%l0f}i1(!FT!a%N4QbO?L200&pSrvI_-H6JCX(z`zi2 z3kL2!L#N+4SCj37f8X*0<=@tWuUz^Qh(mypeE@hg0j7WpFpv$vp>QYw1MX{It$Yy! zCV*qm3lzQr>?*K(rA}!kKa)GWVCFy2^2(7F4JP^9H_EF2ILdkVsE|nT}w;e8r*+@AIo1aGTbfofvo{vyA@pzso`<~0I5pe&OqcdzEpu+-XERxstCLI=_Rn%L(~m>Uk)CRw?Olr@6p`Af1tfqou$D$O_zi$L*D$vm}>g3YQ5Q!%&OCot}26K$A{3Z>)$KMM6f zPMe0KPs}gAkBy~JkL_S5{3rIOC&I^Cu<(p#Vm+b;N6Rj-W#z)K<4@OI^RG? zFy(~<{bA|07N2Js&FH5`t(-=f*i)8rV$( zrC;EAwdN|_ZY}9omfdz{_SL5Wvz*~6&mibC(FL#%0$vkgJ0EoC0$i$qpJ0^1uQYf@ zG9amUov+XJ0REGI4bTP$JZ3001kW=`J(f#cCOYZ!yW?)^ePmaVSD}rrOSjx7#1kpw zA-9TRyA&+uRKWTCE4gBnsPLH%_%(WsCtZ*(nTK{j8_8Vyy_n#S=I%MJd|t%vaTFPn zx)M1EW30@?JnNw`c_ZLQHyV2)gckVWh}R^QUQ}FFsK0~8!D#TyNVZ|z{FHOVuO#;PhWPyI8IXMSC}E)GghOh+hS^0yzER0A8iZOrZpoyU_hT<5wf@r9KE=cD zBK4ovH9!;Pf`(jGDvNG^nruTuUy>$sJdzxib<;i1+k-~#@ME3I7DMKRCVNmmDUeoP z-k_wIQSzvK1k9V=BBzcDPLq(z)BY)=4=_1yC>)gua7p(-Ry;=QvNZlK?1m&qLUNj{ zA6gZ_)@JCJbL;{Idy~R?>dVaZBCv}X4(a(=7rRkirps=M9<&tw8(Emrx2o7IMvWbV zc9By2N&yGklQKW9gx|Uo z^uPAFdUnisGeWX>ts>K8G>VC4?Fmt1Qy)vdHK{k{F))?s$rKrgyz)in*~?2zMELzK zZc3x^v%jZd#8Hq_luK?{t}5XvN!6;*2g_qsrrsLyb#yE{mK5)$cSX!wkIY84POD!M zE$M4#Gy0>GHU%qP!Yr%mI?@>yTa$Esos zDlZUM`i^*0TsgsqYGVIsim9NFi$jzvoPfucY3XaveC5P5# z@%MBnPRbjV%RbWuC6?DnJY`J!@+-nR6Z-N;hXs8GVE?wSv<4I8ug2o}eF^8Q_&Zov z>cE43xs#D~rNyl+!M?yB-s(ABaMQF@=Kb2ytlYmom1yoDVjYpVhq!o7n~t$+^}N!8 z*W~3yESi_pi}7viw1bV76-gb(xxtt-8)-I)sLgr(skhhF;-qA(5IU>sIL^ekJiZ2E zMTXmCPJyVl)0g-k1`tWBP%3q<<{TiQt+9KRlipu9-xWorsi$@-{8(_zp-W)5xVH^K z9&R1{o0Ph>V^G|O+O_=J!(?ZIm8X)8)mGFG(;Zd_9qVV%IY$s^K!4G>v7b0g{KI<&ea+qZ2;z2cAiMaw3wu zG` z6~>unDQZduGs*w_leFo}tBY;TYtjCGPo<&cYS&4QWPg9$5-TNdwL8;MT+S4gHm6vX zRxGWCJmaePH-gC`l;%i&#+OOA_NeIlGL3qzml%=(bXk6sb+L9{C-{O!FB{wG#nk&E7|Z2Zd|;`a^d z4a2!P{-dv{Z}l?aJ>2?>Sj~R8^%IX)E&0liZiGnT*5V!iZw7*lizI~);`Mx?$hx0K zn@2PGB~dghhYG&@#|Eni<|>cM2rJMZ(^@LrlwqbjBoc4-GtIA~Q*}D6Qb=Yle#%#1J^!MA*jVJ0T(Bo!_fN6)B$y}B{^UN6UNIq@a=gK#3hS;R z9Q5ea56oOnuPLV&X_?F0uitgBN7j`Yb2v$}XDc@pF13i%Hwp`@UoMt|(SIMB5+AgY zBLb^zC{~+T{`GFd#{T`WzKq(rgc386lr!Rq+s7% zS*Ni%?6?@}l-k>4MZvBW1**ZtQc9naXUG#Ya1DUN6M$0{5FB;}l*t#k$bbT4;5M6J zOAU?ZsPzV*3wXf;zr46$b!;>AW^T#ImSe2sO5|VWn|D}~`cn}1AMGw877Vf~y&0L7 zN}pbRQGYoik*{4H?N--%k|kNnYdF&Q5p2^$6-8O@@#8uv`d=0$_n5avX^yr3vE=dW z)z!?y{J)B-{AKxc3lqV>gO7MKe@1bJ}2sIWgUz5vlsp_eIJT%+qU%cmY^ zvyRUWVX(*aA~VKj5fHxP_l5+CI}7RGP9CZ+8{RYVDAUhB%Mza6d<;Gna4gLi#visL zv!~1%fNfw^C*&Tu)#H>TeAo65KMWxzg`c$)U0yOUGUF>Zc-EX4t&7 zr<%qfFJ@bDQP$9>c~T8k4{4lBS6-Emj&7d3IG>=7>ScTFrNxzdj*^nRQz9t+Ek>y7 z|B&=ndMFZ+)K)$rbN67&t>6o`VU}bKrLq!xRrnQ{K6aJ+Aq^RQ4Y#Mzg6gWoRQe%h zsK?jr{Zmg*Hk^3hj>>9Pg_WOVPW5C4*iui)ME_GO0&OzEAl4nzT*t_~Ks%aZLWo&-O} z+vjPzy;)G-uJEJ5v7LS-$eawYqurSG=r>O8deced4Rlejk&7EssdGaR2>9*vl zPrPTGG*559f98u^g9y9T&Ap-=hw6!0zSkZn3=#f5Bw1Z*#I2k3mdCcFi4g)3PUmuh zs7<8&cOc@Wb7jl!*{nNyuHKi8;omFQmG5mprtooH@ zOQccv&V#I(ma0$c{Gn+FWK`WewS#um)vMrFrvsbM~e8XsW|@V71sUN z#ER?*P!EtpGFxZ(_ljtxnP&N3een-xjfoVdPo=N%&NK+44;A#VR@ZxlCpbc`KxIse z^H%dpSAC!8Nh`>vb5K83UUuGp=D>2s&^}Kpy#%5$VbP8r`IuVPoTDbtU# zT*C?zDI*SEL9a1u57aQRr*M$sq1ds{`$LfXiWFV41nDb7`_HNxZ>=c;CElq4qNiqe zhIt~0@MrheBw-UULfBQmN+j3qYyZT?wxBd28Cig0G$9#`&(5pDF#F>*<2?koN?tLQ zH-9xH%Fs`%mK%Rh{R;n*sj{c$$@b}$OrcQWXs<98H2%3F_rwB3LRR6&CD0S()|95X zSQBHfg)TkwOP^p;!oWUnTqBPDZ>9f)SGgY-4p*UxecqeRHFqPT!P~#D;mLeko%lMV z#%YV8Ra|#;mIo`_l;r4)MHxS7zxt(Rp1?rK&PZJQmincxy5;*p^%UK{=YpO3Vpk?V zXStf4!zvaw`YB0uPZ3l>qx9sVWWld7@_B{=zpvCUh3R-p9hGKEG;6W6qx4FlX~LoH zqa{1v}Z+_{0cyMF#Lt3`-y7~Jb^W7U}zyAze;qRr#_!-Ij)H?df_PZ_e^ix6huc|HI%}3AV*<{P-MRgoG+*AuEFu$_)ckCW5 z^zZzS%b+A#<}*WOY!5Lb3j0m9yLQKl0b zMX}iGh)jC1UHG7(^d5ZO34BLX?-e1Q2m7c zb%MQ9e2dymY0|{}fvr$_Lm7N#!PX#Sj+aubwus0HC;P#US*_H`x_|o=nUi#VsYcsM zl_DdGS7;f|(3vP3m@p<8@iQz*$ATlmM#~$#)eLi`1qr8)``Q@fK0_#;@=wT{aP5!1 zTq@bB76lMgH0;B<`4QMDt2BehACf4>mOM4^E~Tj6BbyrR1ZHAY;~yoplatxXTZ2vu zZ;w!eBoC3sIovn~kGTrh8A(iJoi}L%cR~q29P!RCwWOd~spd{$ z&a8*}?d{9am0}z8*Wt8?EY$hr@?8D#zHkodbkgPWlY_q$E?U{y?YDQ*>nyd6?t=zT)(cpgr_H6!MtXIzMS%!$ zP-hmLxtEdQZZz^x{oaK*WqN@F|HW1|~aN_b)DO*>rk#s?_nY z8f2@jyyhF-mMz<7VrH|_mzESo9%u}#<7=UJU>bQ9uW8c?%jg|QK8lK-F*&3Sjvn672OY>^$iYbD?Cmp4+@eElYV zsNjN*av@f(-P9y3T!75-PCo7=e#OorHtO_Esyr`j)7J3L#@>ieb!{>Z?MQxAM{Q=^ zt7dj$5dH6|vF^7YcO14J7w-%*Rc~%#q6#Hv%Bj^gaB_y_P)hX|p-#%Yfe(i%`Wv~p zyw2+mARz+^uN&%(1-w3avLb4F&~x7QlVk@l{iVKTCBgzP&R? zYaV;braH>J8?v|0F>gT=)#8;DzPUKmLPTjaM8On6OjF8kWaX3>G?mEQk%>mAF^k z3x;#yLkQ-!cjd}2yl%G34S-peY{W%nBTMuw_At*;Ydt#wI=s&))X~Qohgkl71CQii};@tSHIFHW@ z*iQKLo4CF_un7Gb>mUM7)Y+POS%+7ZS&BRCyD4k_dpaEd&v0#hfl$%vNtpqraMlCm zDhqY#v?wxeQ74C*984>(&5b9(=s$T~Ym6WcAY;843;(X^agr_Qm=6YFeSLWeofS_3 zr=V56q?NX1I0yu++%B*mkl!EY7R`4-dIdiB#u5aT?CfJeAjmzi*jd>deqvChn52b zp|Th)M33_hjc{!Qu>(J!U0JGr<4Za^v)177@b}*Il>_+0icUEp>Wfgi_qFGvomB)7 zE6AEVV&o>3;@syMW;d+b*2;qSU&ubSybT;!)L==(wvbZ}5jb%UuRx~Q+oRGYe?0e> zmy*j+Y87HW$GypW4QRbG^rREPC-(1S=*c3~8h4v> zDc)+ZGX*isLd3VC0{i-4rICZ0(!$8<{kdD>1LDh~Qz6EiOMitQ$>ERR$c0ciid{~L ziKL3bJZM8*;O}st@)mqpd-YNSu6+cZW&k!x6cD(ME==Wl=yj`o0SA9=vm^TY-akdF ztPuYZO|pGuyc&gf2&>!^<2g~vHhXRLw>F+%3d!bj{-r>Vr6iSpke=<=ww^?t4?$?# z)A(5XRGro5v!piPcI!^=8yCvm2*xP`N%HM07`a*lg30~7Z>}mR^q%I_1yZRY#p^t% z()OoqyzkaTe!}yxK+^n^>LtEL4?Uq?c!&AJoZa>nz_i1NFVYGw1 z68|HTEWwPkoNVnU>}mTKO=Pn|(?X?M5A;I03#y%!7y$y}hJ~1}PsMyv_ND)VV<Zw&Ak~1ZbI5d5x>Y z+%HoWo5@jc zCUYR5roBAA+CXqCU>{~JA}1dBc6FL9=9|M zhx(?>OF^sA460J7n8IA~wPb9JUF}~lyIB)c6t)+?2R7mRov!2^+u6%u(%i`1h@eBC zL0ReIG?Q}HbCCWzW z{@JCoy{r}J52w=l(f00qSL^dTOW7|9KC1bsg$K=(JJ!?>dW@%uxF2##R}3Za z&4`mtE?Uj>B6s!=H~w}Q_3wA<4}RLYD!B;Yrm90_3P8zP>piQfUQ@I*uq(-x4c7MP z=;_V6@~jqqwr(?(_B7cwq-I~kK*aMQT6+u7!h+}uE*NIVS{lr8EZLcb8=9qc41AhMZO5Qh$p2y#83)6aQtlTvp zOP8~7DYQ{jOK5QW-^q>FLYUIX7Yv^j@{_MzW_)XL(%wZok+e%@sC5J**tU^g!|Ca3 znsj0;3m-lo*X^%z(D^+d?Dz++-#Cr$wY8$5QfHfSR-$eHs#W-lK6tCDB3}wAv}QbP z3uq%B4%VoeV1+rkDW6@v1IiP_)kPH=XEi>DR=c?@`xNMoZa$% zY3Y>NY2P!D`;RJ7JWCE`g1?4&44OWx8NP|?mRTo#-@m?H_b{-reeIt5LTJTK9ocia zJ+^1j_&k9`n<#x!5%F(muVl%F*o8HoIV5wa<(Irr!azl6q0A@twZSpBy>*V8#pIxp z>Y>d7gs}uHi&jp~miE2(-c;Emtv_;{-0^!q`WVi|iD7p##EOlEcb^ZCSf|&q2KL)J?MEy2UmxN*MFNO3vOhV{f^TS{I7?hJ+@eu z^?H?8!+zpcN&1d8hJWfOwd@3;wxTZmpbc6IcOikIRCt3N<(D zAIH<9EPdYVS$5>^_OfCW1~7$f*8)pQ#sn^*cqEIY+2!!&;rL2+jilL|kBZWl>)MFF zX*wZlYmSzkST(A~E3IR$J5-jl?v|b2VcGFHKOJt7fyz|kRZlvR{GqN+n|XsZUrW%B z!i!-zL(Cv;XYyFGWdJIMvwTC^?SwmR;{p?7qLP7)FPJk6!4%coMW!%qC(b5k^hy35BTAa5 z$p3g;h3?)YAQUW+HiDQ5Ih2Ws;&_e^pU(!XRVNAv{7pvt!2s2DRNh2r6J|!=O$k+9o;EpN3e!jov zlUEoJd_@k=2hhnjbS^*_{lNV41mF?(ze0u{Jm4|6KC2GjjD1VISQivclcWu9JaxJ$j) z{bHOYa>qFr=dGgoy&)&UobeiEPsnnmXj|`L8gl;>L5UCy)y;p(qCdX%@;6=0Ln|>6 z!VR{r2ExrKVkN(C2HcP4|>+@7p zY^&?WOVS(b6l>}6*N0R+N)8tjil;B`I1r*(m$xrU7=x`~BWuICmmoi{7E+T_bY!!@ zY}n$4@1%CCD<;*0`g+LQ8&t$l#n-p`nr`mWpR}g%u#`_dI#5lWws7gi^R7 z|AZncV*G^O>i#2|bUDN9Aa}_jzt%ZmY!aHT7D$e&fgQJBpWVuAGV|=?MZxZ-& zOHQ@_+EmatOi6o~J}9>dZvVE*oj`!Dq##ZQWbcM%$aEMUbm!J>9&}fCIELO~OI*9s z?>k2!2D*%WT`jp1U%=*phKeCg>fjt>hV*n0451yY)QE39U_0Q3^kDt#zhs5|^VH_b zFCN(N?Fq6Z>3zT+z~+Y<*CIJW5i_M-p_L~Q87{Xb1y9(ws$cF(y1Nj3DQT$tBd$Vy z^gld*1Q*FhUBj9r4zUkc$QQq#b#@ga&FFld_LkfX4X4ob>x;Yg{_|B9IuiD&jeJBq z>P;Y2?k{!-RLNoHm2r! zC?Fx;T}x7Jyo*E7-H=;APuw6Z?)(zwbjC(Z+!qd2`SRwtqmlaKIfp9(N{{ikH@@r% z*kXP#su0j76|-?&??Q@QR}qql*TiSd4Z`R5WCXhG;B^Ef8cn7=D4OFRxRWyQ`NU+^ zNF~c*+Y|Rj%}bO*uhIg*UcknFvzlG`A6i={n%}c6=z`vZX676i+8(CR?PY*zNvwg3WX3?|01C<%uZl-JOtA z{*t4LS>Iio}RDDMoEl-7IHqHGc*F&vNVq*7>Vy3cc z^U~Wd{Rl_wE?vTJhn~q#QQkc$yxlB}7$7{YDWzj%ZuSpcYPF0*O`o+T=QCu~^CoWu zBw=5JbA%nnGGmeTb;FOn;kQvAdnX{L6KXf<-6bfJ(ASL* zd~i2$pP&7H8VX!MUk;~U&%Y@NFz?xFzJO1GPD41*umw~&YKdKliEa5@0!HWsAnToJ zhckLeQWy%$nceS-c!XVk)u=pm^F)tD%#!qUhj+*|0k8zks}hC?U}9H^KaO}#%{0I0 z19q_G0~AfaF~|F$x;40IS(;G26kKg(#_j(=zzzl%p)DlmY7yI!_WhhEI}+u=LU|`& z$+D6}Sr`0pa;GEu8++JFOdGS%XW$uc?34;qg)UkY)NBi0fVSQP-Qpp@c`4`~mJb3- z#ey?%dhf2;J@j4Rz$T#Lz4gB;ySLBmbYfURw@beViuU%WajD-(rI{s+aH_6RG!Ep= zTLhM&PcsCKAB__Y|0adi@7d%RuF|{uX|o75w?GrJQtbbe+MwZtQ>;$-buI(%09Z ztHM5kBQ`7DkN=ak?w&YZEUN^}l=i=`l$G5u!(Yp>%55=Z)YmZ2ZwigA;RWd|jkVse zq_Y0u2X~Wj;X#B zkmwy+Sidc)vX1O1*W)I8<0`Ujzc5r4cda|Y=b4!m6r?DKF}>@M@Qb&hHENtzL=^kF zmE`gMuOO5}0`P-x}+0R`d zyuf`Q(0DnKHU;4~G&tIOy4ujTcSvI1ZD!N>UNwbx11WvXy82LrToLIq)h)b7xnsPz zUw+=*Efd{joPo;_4O?D%;$HdeXs3=Ga6>7tv#U8WnD4K> zZ#dU@6o~fEbD`?ULoMqUvlpl6k@Ahec92WL6jh|@ZnlGz%hXl9XxW$AOVv=m_YEfk z{y{T6NA{DIq6fU$a-ij4Tdr(5er=F*!r7R`Q$fMpuD&XWEn!NT&Qp`2B0$*OR7J8|eGu9xk20 zMF_=5_;ouiDCmTpC+M+fD}YU8949rPb^mlb!?CNdx3imaUDN_+Zie?g?aF11n}{Ty z&n|n9_`#K{)e20YWaxQhpLQisGW_>LQ8SJpcaXAgf>ZxNDd9p4Z;=U1jK^%^VBzw! z%^C8I7u4%_b^caB#2!1#{oxJ8wb^rj9^;*)lZk;n^ZSjJ8AUc{1*17w(DluK=b|FR zG@6`jY7z1!D^JN3(9TpT|B{$!yN3+_1MQynao#vFaTL#sfR91Wu)DSJYxKX9FG~v; z^BNdEd5v*IO}q<_-&*!=ga64i-Ta%O1%;x2ebR91D)eZ-r)**!by0FGFqVF(e)oB< z*zlRWBgM=1SBqt?vXPkiYZXy|!M=IQK^Za=AKYKrI$CKP5&#CS^t0Ul+fGS8Oi36dIO&tzCwm zGDhL41(T;{f^t)r;CiQ1ptG^~d~gQTXApQ?uLL~>iNJM0KL9QD2NGaE>iPB#B&{r% z-%k5m>3LX*?ty8)f=4oL3-8M zRHo`{cQS}V%`lTGEjasQ5XQ>_nD+(x48orU-o4!Y{}ulQsyVG~+1qokc2(BBtG%VD z#~_okr5dM;QKIYxE&O9?EcO-mKNYr#t}Z9r=mH*5h5Hf$mP9G+1a8HovbnLS=nehd zyM|B?WWdG>+2jV`4t9Ko;<9W3@L1qQGPv{}?9Pxf(1MJxV+ct>9sMBArxLSJuGXNz zR$?t+`4L|U=gGb2yM%>631Q75h<<+xE`8_x0LDN`oFNvs7B1oVI=@Q$hu`11`&e2s zA(K>QCaR2Zlj2^zcK<0iZSla!LVV* zot^ZnD)-<8)2LZ;l930)_;dQf)vz3q?b>{&z%;mpuPFksn-5&#fF6f{dn3h-<7@CU zfNyp$4=CyOt2_dT;BdIf!M=xnpt9FY+P5zCWRlT(JHIUGTw*Q?aN*Y7dcTB*LbSpqg&)h6tmx1HUg(P8`Gte;If$J$W^c0JZr~W(X zx~I0|wSJZDr`DqBTw>|=g38n5Q{H_(IPn=A1t$SC(q~iv6R{ni0)WcEI4AVlB!VIm zckyGja>@KP^#|McKhleq6P1KW^Y{;8N@X6yc18)03imn~f*6uFBxw?Hh_v~Om(#nC>`v^2T-#DyQV~v}t1*57sB-To1 z9WfbdIC?%|GWdDzOG*&-(5*^w$5l4v34P;k&NQ#uG>P~nvYduKopH(U(vj(dK$3DSaRfI*{x*v=g` zkbP82)~LV$zwc~(K{skr5vQW>7FJHlbJPVczzeiw=3WnFfid^cW4Hd0c`l+Y z(1O7RNTYFRt3IgP`tgn9?SU~uZG(XDoMJ2Jw&g#d@&$tV2dJUoygv0`>F<8(1&k*S z)+?+tpL~7Eb~oK3hlad?Pv_v)p{R-w00P$z;Cbm0N!Y2Z zB?0()ewqLw#b>@{Q24z`wcf$U|9}9I`Rn@w@;M=Rj*Y z@J#l;BI ziJym?Y(*?9+paq1a@o`_B!oOmQR$s^H*MNNltYqBCt6-kbmw5ch0%9w?|v%T(!lRV z4TlCSSa31}d;_m5JWHwIcee*xhx#;dACXC13d*3x%Jf`^=Fd)7hLz+lDeP(nDZN0= zKi7P{7Wb@xkxO1VuB``qt1%+Lxx&Rh`3iw>L)GA+_E3;{<^twY* zes!Td2ggi{tZv<`j&5JkM8rQ5v7P%BM_rib{5f745g%$5fZxH#ALU;ZAJBcvP&s{X zA9sTEg5!R7gM~>lzsEu{a;3F}Gp?_NDXtbS?^koS2@P<1flu(0e{UBa&3pTrgJ)>H z+PDi>JOVzd+=(BHNTL`|UDS)dhV5n&H)P@IS<@sq2S*UDcO04*`~&7_;rDov8-EXt zF+N<~_dng`1ke)B@(*aAPJ3^%_O~BdVnjRsDd=7I-CdYjc;5*^;GJYgKTUr_Ei}81 zGu?jH>}@So(m>RAMp{{YN93>TTn?dKVR z5ge7bqC#*ToD96FOm|W2?AKs#(_es(7iFH$1l3-{8E{r=Sq*00r&+iYN?3g~)F!T9 z;hs9v2YEcZaKY(hvcPv%LsQVPv&u*CE$z9O-x@HYhI*f$e+PP9^VILoUevBb@Qrd)*ydZ>QL=4`liJdE}J-3_aDFx^EK+QHF7se+F;%v! zGk?37&hT70rc*iWCzqDa_$H+43m(?&&xXF?yiK$as-Y%Tb;1^5`-dCUmyVa7Szw4g z3?VQM?s2997n3g&y8w&rw3dPdY!1?E=+eckv8Iw!$6f`bO#Bub z0vv8ifqcr#fKnjl$hFOf`j0q40nNE(dZM`vdGWBb@CSlWwIG~ZCZ>pvFJs*Js;Onz znhprkSbs^%@nQw2rieAs2diAEUsB45V%-NG@%&Nxivn{c#7fkhcqy;iinnvigZ$*!4$+e&!9+=1sC zn?d%9mdD?Pm8?F2q?vlYojG!(*Lv?qO;aCDupBb4%Yb!zgTfj$8yTZ1JM_7@ z=KDA-JU9pCZ7 zrqY}`SC5qsCJqyun{pCYS%MUX7yX+GI?82aQdYd8W#Q{|0r!^n;W;H5lp^#SOV%_8 zRyE1;Heamn%9pU@|Ck^>C?fRoT2F+UX?uMOM{X|Cwh1lM1nIh!BlBO`rjAMM6&woH zM=uS(xtJ*zc1g*L2Yd;)XR-7%jCh!?UC-0_5MEKa=0kCO5u z??gcNL_<_@e-7%0e8PMkBZY+u7FlX6?3(j0hzc6P#fdE(qc7~W^vVKVQA!Zh>wNJtL|ROj?9HK>&X1*lt5Ck z9i$F$KSFK2*ihbJ!@Jpui9t<8!dm`;#29LQJsD6)#!KP6%B~@X9z1-Th{~eSo>3g- z;#KOr^L;Ljlpr=%xTrccQh4?ua#orV%etmsv71RfvN{egw)oie15ZV$Mh?35xd@5_uR7$1FbUJe)-Sx0EnO(7tX$>9pc5&i<}O(L%08$y zRebljyL1}7-cG4mN6a}*)Kn*nm@9$zlsLow3H>olkdO)Mg>-@cbGG%Zq`aSZ5em} zEACD7Ofr`~j#JIL+>*Uo6uaudXohZ(XKu|nz6V=#&0Jqcy0y;W_qF(%)gVPAr;3#8 zkCfZOZ%0B$%mV}ivdrTs{xC-=yBZ2YhWOvwEEl|W8?EjcXV)otq@#Z_q z;VJt8bDfJ}Y))e_)hy&_A$x>${2CYDLxL<5y-)elEW%mdetFNyWKumvtW}n%rZea$ z852u~&4WMkk)QM1G`+zL8ZlW}N_Apfkat`|^Livlhx$@QYw?M{)g0ufL)AQsQ^v-! z)eh1eIZER=z2M zF)MtCGbEGvSp09UTq61SwfkYnYgp|(xv5IwB&xZ=6cATnO`HEenI>UnH!8DDGS?1&0-uhU72iFudzBdqFcQ@{Dw~zI& zSLUWBa0O4I3{@?}I9O~O)I{#6KQ<;|*rOjc_T7_WgxSZ55H?}xJMEw^QWh=-S5as> z$kF*kVzoEw+qOB))^}8}wC5+!8?U%A7gc-+a5AsK)Bdjn`(u|H5w_8s-^!q%YkcXl zK{`pBZcQr1VEGff_8n1K8e0M^SQZ)o(DDIpbwtG}V8#RZg z>uMY(+tl}9b_aqM0WZ>%P|#J-9e5f*|L{-_yw-ZP-hut8qG?uG-cklfO37b7nT*kv zchoA1N&cqW*I!cd100whOCMfpOL&xSo=nULWtoBj2V#i_ZT&ki%@$*~#vFcLz^yN+Uh> z)Fn?ZwI{73r*<7sKwtiE>kpTQVU1_F&Nr>>zQq5>)K^Bu(KO*A!JPzm32s4yySuvw zcL@%QyN3V)f&_O7Zi_>3cMBF=f(DyA?|1Ky`)BuT?@V>gQ&l~Ey6dTaer=&2&nV_b z4G<8lK-qqAx#0clH#YUOm6&_XDtZBtt-DG|SOC92jkW_#LhZk#L9JX?FkZmUO)^VC z(al8O{6RpaQ}a7MVP84@29JiPu)TX|ISBogUOaywvX33sOOWvwS)nRuD*?w3_Y<#4ba zAlv3`5Ap#VDhX(Yo=g>EM&OC(-xa2P1}bl9$2l(`7mP){YfJKB-)Sg76jkq-A73uI zN?(4YnH7#cnSQT*Lq-mY{qNpgm<1oW3rK=urb_<>#Hl)~yASMr&^httwMDkM4Rn|N z`V%ZDh%X_iLs}o|NQSBK%<2{*L9dDRGV~do;Vv?GA{V-f&ygsx3}-1g$48O4Yjh2 zB-)IFPg_wSt4qMyPCTrzP8dY;qF630hSl>Y$=(&o@4I>OO&~Eb>r94_2PDC-jT$Oc60ZrA2U(gCAAGV z-t80Na!oM-!?elKsHIx%TxU8p9RVw~Gl}xoN-u}M{ylURxu0Vkv?2mVz8V-Z2O5d< zyY0aDh%@4oSKUAK*Gi*LTfbOMEGe&Ey*0AxkHxdT82XvMzN9EZmzO|Qm?^+dNw(zD z$>h)eHQ=>Wr(^4X>T&X?hP) zrrX_R3_%0^7}irCRNyyIDers zI-`Fe0N-H-#$M*&5QBtbUBv)bhK5W4nxFRjYBSg*yHMd0hhV5-bPv7XAA2$-iRr~m zXyW){ybnIwQ`uh-b!}DRDM>Iop3tvemr_wH{=C$_H-~`3o0EORJ}9`~ael=Xg4; z$D*8Vzd;^HH9RRYS?Ncb^!&P%C6EHTaB~377Yo00wXU+oiagK(Qc(p!5UZJ2Ki{?k z3%-p-_2&@Qa4RX4NXh%j3G(p5`1n9{Be+V9OVcFz7J&R zv7I+hjRjOtQQzsU!FlSdeD#=ODm0G_O$ zFHCXX+;ltxp4*VI|1BlnpTFwT!t(ncXGMG~j5r`keEwQk)Ll&uXj&2;)9gZIFo^g_ zFAZ6WmR%cN>ct`+4{>ms4o3VpE!;M5aBy%~QP*7oQRY4H(h3I-|C1}xj>yWZhdlhZ zswq(N6{&tg-X!3t{yh;exAX8BI=(RMOr?ag@TrT(o^>%0hs7yad7x&;wKA&w$-)CimV9ZLFJRP znaT#a_*P3}alo~={m1ifuUkK;YaMeT4Qrg9F8K~F zK{<0Kt+TpI((dn$1Z^s|w`{7qdUWeKHD$)FyvDHbZZ>{hx7fPTFe^Gz1J*N~INPIP zq&vBu5g!KLmm_{T%|oN=fRotqYt(n89$Y@SyVP4|!Z_3NVQ#0E=1Gc<7Bhx3jOp-;J+;&B7Z!rLV9LF79S>Hxf5h+h&R;2~V2=du{l zEzz~&4VuPM=&osX2Ho_GP<{xwsk4d)R?e#X4RohDhk!=H@Xv!lV{+uWXfUynES*Cy^=gT;HdgcKEhpZ9JvNB(Q0)}W|tMr}!c z)ML4{mcJ*T!22_e>@^4s{O#U>te$ecmLlXYw&H!_eua2)Q}1M`;Nph%|DCN{akjqtDCt{9 zu@o`ETi1S$ntkSShmLzWbHHlO)i#PIXcg3VE zxul@kJU5wNZCWyyb)Tmaef;bOLu8(XL2Eh9>_Q%EepPlgiGtTxb`JBMMsE#2*=;CTH*>@oy&Zu&o~PEN%FM^og$mo4^v zw;)jChorltE72vNwD^bKAVbpbZ^CiP%SDL$c-J zmmk$C;fFVdyn#9@khuRzo4boKd{$kX(0QI>hWJ)YflqfYq|`1_yVe-#^zlI(T%~*e z9!;rh2V!j~VKoS_m=S@vG>Pql(yiq^27yx@k*bG0GDX)xz!BLK^cT!0myq`^Q!6Lg z0YQ8Btu!4E@7YG!f|Azi*PafZiLSo7v6p;Vx#|`@P4C1p{4nlIR`Og?@cbhw(Wg-L z%8dx{7_>Q4p@?@`{Vwv%@AmTH^@DSFy4tuyEpw2)>6P2R?pCQtpURD+{;j2}hi>&_ zEm#|4_l@HV6VsnQ{jHlCzv~SExehviYz_M2quR*_Fwp@T~s4f6NpIRXQ zO1EC_z}elkC}a?8ME3<4xbXyZHNj-eXDX=XGX=)Hl}^S&=gnA(#$5&7lQABZEPJ_V zR%D+-YL*|ixNM+T^mBUYkZXdZ)WnR-B=7hL<+tCN6$WvGcqmP_EZ@2PbK02NuOtsd zrkL2JxWDYm*xd9a&6FT3^8do*4voZqNmbS)+D1Aow0rK+k;<26WFn*wh~{AWTRfEd z%X~4ti@)4f(l33YdNOPG<0CAw`zMMnd`2~Y?=31TLTmm3{(aK~kH5@b@BdER zTc&96<>OPOZwI?H{jQ@)tpi77g_f>txm$*qi=X6k98herN7%^M=QAhPsyqY5lE% zPep$s%H2u`sh7&MxDG~ur_a4`uL>&f$XjXGxwLOIYDun&!F0Xdvu8iwSFKR+jttgj zSDAB;Ow%vhkhniYyp3(u#d?Xg5D9g_J7s>0(&|z1T-9;Ynn37@X3t;+zlSM2uQiOz zbc@zP6&~4(%M?o}jlnDY$({%?n;iERJ-v|2T!>C=i39Elx6J7<3?=3f(W!k$fSc-{ zKojZtprxx4Pn3F^*JSLQW3sB*f$+ODwYfQ6G4=2Kq|m^rnZPSU%=^um1g-$K)4P|I z7%ewZgZ&$X;lrUzvhDRgE@;<6^XOwo4^7M35;#2o%%m_4~|krk%^C|=lt{08UjUAG7|PS zj29gabf+txrE1DX{|d6zzMOxG)nlMPZ9BTp|6X_TO^4tZ#eWf=`1Y;tQ$fC(gK(f1 zMnw10olXVAX<+jO$;PtJz!X9sdGf=%QH%MI?9xqhDQA>Au^rD?Szn0@KaXa}CH69U#zUZ``XZ)6x;M+ z)jYJX_>0g`8<)IA-LhuFOz6=$4+~__!#}`<_Q!7JtyKk^^VCnFd93|GZSvK)H4meg zGar-N&t&Wj9P``SOKbUv{fo5~24#J%i}0R=?c_HrVT8;63o&YOAH;V0Vdw9R&iwPS z)LP?3-x2AU{=5%N*qZ(q#$*{xe&hT2IQN_~8ea*Ww>Bax5!lW8aLiT1=p8XMKzLs~ zGc7(cgl=5w_Q8C~Ua8?uvG&8r=*g@j`hk8uh7zf5b5yGrjfZz!%~q>Z%Dk&yd9R<0 zkGyZWFIz!A*OceMh;UvzCbJb>w1Z%kmU(V#QG(+WI}dq!s$*QqWWNT}$*+BWgd$HA z!ubH(*aUlzjVLD=6iei@sQvP0Sv6p$KHSMGAGTh|_#Ur9%=roVD`oTTCslns`Zb<% z+f=x()O7Po=v?#EeBUBsaY*`p z`Nd-WT+lS)w-~dj%f-(O-U%sMjWs_d{-Y2*_TY~-tBBnT9$}omrL~5(W z5`hLQ@b!b*&mc5|uS9B0EM2ktRHC8QR!ZrkHHJiFQCNz-k$1^EEG9==b+Z!=>A6h( z;jvc1w?quYYpZoL>LqCJ$6)%i(3Tvxh!{9^i<_@Crrayv#iski@wUVWG*lYU?VYuG zvK~ju(mhFVsw&MIt)}}+xS=SvJ6xJOy3MtIcPC&lszUBFme{q(!%(VIa3lTBd=N@E zfqL}_o5HQ031vk+fmgfIx`%EH0Owt(*TlzLO zIMn0FE?Gluf(0w=_P#sg@!!)2sOb*y&p%8IBK#`p_ZKjV;D7mlb%-vIE8+{RcP&eF zK3Oh(uh=tBA(P2rlGo**!(WNhYNC#p{M4=AA;)R_YR7k`YHwrhlhut|F}iy9>QfTJ%Wsc8aH_KURGUGiP&qh~=(Oi%l0 zWdM>KxKkSodwu(GVKoT35Vn8Lzztf3JST7EzG^2`_Vt-1dljSLxcwn?x2<6M1_`J1 zWc-vWQ7!Qc<@Z)4wpU#lrb0#wA%}P|^sgdw`rKvICq_nOcH%jy`OA%Z%E^hRC9z-7 z)BCO)pvxcn+N}b-#Jt7{y@16euLKVvn%v>bEJbrG`)TW%?3y(7hm1Ft=>;&ci)(UL ziHL~FhU3)8pH}+96<1DZ4zTDadl`i=t7DvLvj^e31+pw2zaA??Xs=mPIRc+eNhd z#wc#UlV1L@J|%2AK$H6$ZIcilIbCUtfCkL3(nl(Z00+z^jTGZg5z>F%4U&0BsH9X# z-BG7GB{mxTJ<*slWlb9(gc1*oX_RQncfik6Q$M15%(KXmr-cuu)R&6?^gM8mq=eU= znST>(DFN4!z;i!E+5<4xk_*%A_X@oo}pWSrMesFQBu6-J@dtm^>j$-{qSj{f@q3p<`o~Md9NQ#i5j}WN1|b zj&$^NWCC%Kx`tI=L5yo}r1C%K#4bfc`_xnVNlIU-OIvEhE6c3`ywO{lbf=@jZm-30jr^zwE83Ye;6p$^jj?OtY)-(!j@jDKN!g2#qX# zmE-iF{=SsTD!^PQc1IfCSAiIcH|h3kso|`GtLAm={o zey29h9k2@8>IClNP@ez4k|xeQ&`{vKsrp6qS3L7;$7>_-@Bw5hx5UMF_k38EJ&dI( zJ8|jc;<0%22`FBxmNC^r5gD7*zmTrZv0J_NC?>ktraZ6|ddI9oKTgKXyUEVsrG?SU z>ay4z1Ut_XH16f{&7hk0_QAp6thCnfYjA!!%#|8jVA)e77DDHRLa%~*zzEKPZ+L#2 z3&oj<(u7TW`&*8lD0`Lji$=o6f495lr0ACC zmgM?ihSLsYh-{NlqERr4B$Vi&o+|s3+mmG=dx}8}D12n|d#=@xD&I}#Ts=#lh&p}D z^EbaBJ~bC5PcLK@h_fj`sARR_N*ChJpM4c47CD}4Y-1b<(5JZz)RRt2x?4BDPu#jw zgdM`o+7;QI6UjtYcz`+UvA5tOS-@ZzwFKx#d%bSjjHJb3LQMqFB{22+*$3XOuTr}z z**VmcWlL2}CkC5^e8?k08T}m8?eh4hO7gJ>y`Ra_aft+-JA8HYS^%SQA(K7lO%;=4 zMvNB$K56Y6t9|OIotW_5C?r?ByPMhfw~uKb@%e=lzQ}&wxQf_2|1sp1Z;OB{I_jZV zNfO=}FpY0bSN1}a;?eTrx=n`tv9=OAYf*Hhw1SMS`S2kZs&6O2X-b$=Pm-B3l6*gE z(!Xa^ZqO}8lX^FcSlv2pm?W2S?~TF!o!_ewyX5_~Rojkn2SdZ`&?i~SuG!5`e#7QY z4TUBXh6KgeL~_Hr?lq0#N0SqWzwP@Yn{rK@!wxWOO95$sOWJ#MY}dt_?Gb&e`!_FH&2bXC z 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

ST(hQF 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

KH0xHz7tzjf4T2xrOD{ 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

Uc+|7EA(Q{g|1N3!n;T94 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 GI0*o?oMylP diff --git a/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite2.log b/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite2.log deleted file mode 100644 index a29890d..0000000 --- a/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite2.log +++ /dev/null @@ -1,633 +0,0 @@ -Simulation started at 30/08/2018 15:29:29 ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:29:30 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 45511(1198/44313) -# of failed tasks (Edge/Cloud): 259(4/255) -# of completed tasks (Edge/Cloud): 45252(1194/44058) -# of uncompleted tasks (Edge/Cloud): 58(43/15) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 259/0(0/0/0) -percentage of failed tasks: 0.569093% -average service time: 1.337625 seconds. (on Edge: 0.952594, on Cloud: 1.348059) -average processing time: 0.120725 seconds. (on Edge: 0.894831, on Cloud: 0.099747) -average network delay: 1.216899 seconds. (LAN delay: 0.050298, MAN delay: 0.012346, WAN delay: 1.248313) -average server utilization Edge/Cloud: 0.042582/0.595819 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:30:02. It took 32 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:30:02 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 47112(47112/0) -# of failed tasks (Edge/Cloud): 226(226/0) -# of completed tasks (Edge/Cloud): 46886(46886/0) -# of uncompleted tasks (Edge/Cloud): 27(27/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 226/0(0/0/0) -percentage of failed tasks: 0.479708% -average service time: 1.072342 seconds. (on Edge: 1.072342, on Cloud: NaN) -average processing time: 1.009541 seconds. (on Edge: 1.009541, on Cloud: NaN) -average network delay: 0.062802 seconds. (LAN delay: 0.051962, MAN delay: 0.012424, WAN delay: NaN) -average server utilization Edge/Cloud: 2.312052/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:30:39. It took 36 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:30:39 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 43388(43388/0) -# of failed tasks (Edge/Cloud): 239(239/0) -# of completed tasks (Edge/Cloud): 43149(43149/0) -# of uncompleted tasks (Edge/Cloud): 15(15/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 239/0(0/0/0) -percentage of failed tasks: 0.550844% -average service time: 1.086365 seconds. (on Edge: 1.086365, on Cloud: NaN) -average processing time: 1.025517 seconds. (on Edge: 1.025517, on Cloud: NaN) -average network delay: 0.060848 seconds. (LAN delay: 0.049999, MAN delay: 0.012417, WAN delay: NaN) -average server utilization Edge/Cloud: 2.278249/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:31:15. It took 35 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:31:15 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 92964(16984/75980) -# of failed tasks (Edge/Cloud): 625(49/576) -# of completed tasks (Edge/Cloud): 92339(16935/75404) -# of uncompleted tasks (Edge/Cloud): 91(64/27) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 625/0(0/0/0) -percentage of failed tasks: 0.672303% -average service time: 1.469923 seconds. (on Edge: 1.013752, on Cloud: 1.572374) -average processing time: 0.255786 seconds. (on Edge: 0.944721, on Cloud: 0.101058) -average network delay: 1.214137 seconds. (LAN delay: 0.059975, MAN delay: 0.012376, WAN delay: 1.471316) -average server utilization Edge/Cloud: 0.720736/1.006689 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:33:42. It took 2 Minutes 27 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:33:42 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 89047(89047/0) -# of failed tasks (Edge/Cloud): 483(483/0) -# of completed tasks (Edge/Cloud): 88564(88564/0) -# of uncompleted tasks (Edge/Cloud): 61(61/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 483/0(0/0/0) -percentage of failed tasks: 0.542410% -average service time: 1.164589 seconds. (on Edge: 1.164589, on Cloud: NaN) -average processing time: 1.094660 seconds. (on Edge: 1.094660, on Cloud: NaN) -average network delay: 0.069928 seconds. (LAN delay: 0.058826, MAN delay: 0.012505, WAN delay: NaN) -average server utilization Edge/Cloud: 5.058230/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:36:10. It took 2 Minutes 28 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:36:10 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 94625(94625/0) -# of failed tasks (Edge/Cloud): 544(544/0) -# of completed tasks (Edge/Cloud): 94081(94081/0) -# of uncompleted tasks (Edge/Cloud): 67(67/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 544/0(0/0/0) -percentage of failed tasks: 0.574901% -average service time: 1.150333 seconds. (on Edge: 1.150333, on Cloud: NaN) -average processing time: 1.079921 seconds. (on Edge: 1.079921, on Cloud: NaN) -average network delay: 0.070412 seconds. (LAN delay: 0.059262, MAN delay: 0.012516, WAN delay: NaN) -average server utilization Edge/Cloud: 4.791925/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:38:59. It took 2 Minutes 48 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:38:59 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 143289(45289/98000) -# of failed tasks (Edge/Cloud): 1073(150/923) -# of completed tasks (Edge/Cloud): 142216(45139/97077) -# of uncompleted tasks (Edge/Cloud): 149(116/33) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1073/0(0/0/0) -percentage of failed tasks: 0.748836% -average service time: 1.505602 seconds. (on Edge: 1.134109, on Cloud: 1.678339) -average processing time: 0.405596 seconds. (on Edge: 1.056032, on Cloud: 0.103156) -average network delay: 1.100006 seconds. (LAN delay: 0.067838, MAN delay: 0.012429, WAN delay: 1.575183) -average server utilization Edge/Cloud: 2.271441/1.347157 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:44:21. It took 5 Minutes 21 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:44:21 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 141416(141416/0) -# of failed tasks (Edge/Cloud): 762(762/0) -# of completed tasks (Edge/Cloud): 140654(140654/0) -# of uncompleted tasks (Edge/Cloud): 104(104/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 762/0(0/0/0) -percentage of failed tasks: 0.538836% -average service time: 1.269646 seconds. (on Edge: 1.269646, on Cloud: NaN) -average processing time: 1.185923 seconds. (on Edge: 1.185923, on Cloud: NaN) -average network delay: 0.083722 seconds. (LAN delay: 0.072302, MAN delay: 0.012617, WAN delay: NaN) -average server utilization Edge/Cloud: 7.926063/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:49:24. It took 5 Minutes 3 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:49:24 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 141808(141808/0) -# of failed tasks (Edge/Cloud): 817(817/0) -# of completed tasks (Edge/Cloud): 140991(140991/0) -# of uncompleted tasks (Edge/Cloud): 103(103/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 817/0(0/0/0) -percentage of failed tasks: 0.576131% -average service time: 1.279690 seconds. (on Edge: 1.279690, on Cloud: NaN) -average processing time: 1.197356 seconds. (on Edge: 1.197356, on Cloud: NaN) -average network delay: 0.082334 seconds. (LAN delay: 0.070932, MAN delay: 0.012616, WAN delay: NaN) -average server utilization Edge/Cloud: 7.968944/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:54:31. It took 5 Minutes 6 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:54:31 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 188225(78284/109941) -# of failed tasks (Edge/Cloud): 1318(286/1032) -# of completed tasks (Edge/Cloud): 186907(77998/108909) -# of uncompleted tasks (Edge/Cloud): 169(138/31) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1318/0(0/0/0) -percentage of failed tasks: 0.700226% -average service time: 1.495678 seconds. (on Edge: 1.187101, on Cloud: 1.716674) -average processing time: 0.518201 seconds. (on Edge: 1.097685, on Cloud: 0.103189) -average network delay: 0.977477 seconds. (LAN delay: 0.078833, MAN delay: 0.012501, WAN delay: 1.613485) -average server utilization Edge/Cloud: 4.092690/1.605853 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:59:39. It took 5 Minutes 8 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:59:39 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 178909(178909/0) -# of failed tasks (Edge/Cloud): 1080(1080/0) -# of completed tasks (Edge/Cloud): 177829(177829/0) -# of uncompleted tasks (Edge/Cloud): 128(128/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1080/0(0/0/0) -percentage of failed tasks: 0.603659% -average service time: 1.363532 seconds. (on Edge: 1.363532, on Cloud: NaN) -average processing time: 1.270870 seconds. (on Edge: 1.270870, on Cloud: NaN) -average network delay: 0.092663 seconds. (LAN delay: 0.081074, MAN delay: 0.012709, WAN delay: NaN) -average server utilization Edge/Cloud: 11.162028/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:03:55. It took 4 Minutes 16 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:03:55 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 180756(180756/0) -# of failed tasks (Edge/Cloud): 1184(1184/0) -# of completed tasks (Edge/Cloud): 179572(179572/0) -# of uncompleted tasks (Edge/Cloud): 152(152/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1184/0(0/0/0) -percentage of failed tasks: 0.655027% -average service time: 1.362261 seconds. (on Edge: 1.362261, on Cloud: NaN) -average processing time: 1.271373 seconds. (on Edge: 1.271373, on Cloud: NaN) -average network delay: 0.090887 seconds. (LAN delay: 0.079246, MAN delay: 0.012712, WAN delay: NaN) -average server utilization Edge/Cloud: 11.413760/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:08:11. It took 4 Minutes 15 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:08:11 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 220968(103329/117639) -# of failed tasks (Edge/Cloud): 1604(455/1149) -# of completed tasks (Edge/Cloud): 219364(102874/116490) -# of uncompleted tasks (Edge/Cloud): 212(180/32) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1604/0(0/0/0) -percentage of failed tasks: 0.725897% -average service time: 1.523172 seconds. (on Edge: 1.272743, on Cloud: 1.744329) -average processing time: 0.608840 seconds. (on Edge: 1.176503, on Cloud: 0.107528) -average network delay: 0.914332 seconds. (LAN delay: 0.085285, MAN delay: 0.012553, WAN delay: 1.636800) -average server utilization Edge/Cloud: 6.042523/1.771070 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:15:23. It took 7 Minutes 12 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:15:23 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 236315(236315/0) -# of failed tasks (Edge/Cloud): 1684(1684/0) -# of completed tasks (Edge/Cloud): 234631(234631/0) -# of uncompleted tasks (Edge/Cloud): 201(201/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1684/0(0/0/0) -percentage of failed tasks: 0.712608% -average service time: 1.484813 seconds. (on Edge: 1.484813, on Cloud: NaN) -average processing time: 1.375792 seconds. (on Edge: 1.375792, on Cloud: NaN) -average network delay: 0.109020 seconds. (LAN delay: 0.097190, MAN delay: 0.012856, WAN delay: NaN) -average server utilization Edge/Cloud: 14.982441/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:22:59. It took 7 Minutes 36 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:22:59 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 228153(228153/0) -# of failed tasks (Edge/Cloud): 1561(1561/0) -# of completed tasks (Edge/Cloud): 226592(226592/0) -# of uncompleted tasks (Edge/Cloud): 188(188/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1561/0(0/0/0) -percentage of failed tasks: 0.684190% -average service time: 1.499554 seconds. (on Edge: 1.499554, on Cloud: NaN) -average processing time: 1.393105 seconds. (on Edge: 1.393105, on Cloud: NaN) -average network delay: 0.106449 seconds. (LAN delay: 0.094647, MAN delay: 0.012837, WAN delay: NaN) -average server utilization Edge/Cloud: 15.360308/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:30:04. It took 7 Minutes 4 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:30:04 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 260397(138305/122092) -# of failed tasks (Edge/Cloud): 1904(664/1240) -# of completed tasks (Edge/Cloud): 258493(137641/120852) -# of uncompleted tasks (Edge/Cloud): 257(212/45) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1904/0(0/0/0) -percentage of failed tasks: 0.731191% -average service time: 1.551752 seconds. (on Edge: 1.362068, on Cloud: 1.767786) -average processing time: 0.718549 seconds. (on Edge: 1.252711, on Cloud: 0.110181) -average network delay: 0.833202 seconds. (LAN delay: 0.098112, MAN delay: 0.012643, WAN delay: 1.657605) -average server utilization Edge/Cloud: 8.683767/2.008027 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:39:17. It took 9 Minutes 12 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:39:17 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 281770(281770/0) -# of failed tasks (Edge/Cloud): 2634(2634/0) -# of completed tasks (Edge/Cloud): 279136(279136/0) -# of uncompleted tasks (Edge/Cloud): 271(271/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2634/0(0/0/0) -percentage of failed tasks: 0.934805% -average service time: 2.001325 seconds. (on Edge: 2.001325, on Cloud: NaN) -average processing time: 1.880686 seconds. (on Edge: 1.880686, on Cloud: NaN) -average network delay: 0.120639 seconds. (LAN delay: 0.108610, MAN delay: 0.012986, WAN delay: NaN) -average server utilization Edge/Cloud: 24.826027/0.001505 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:50:15. It took 10 Minutes 58 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:50:15 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 275507(275507/0) -# of failed tasks (Edge/Cloud): 2350(2350/0) -# of completed tasks (Edge/Cloud): 273157(273157/0) -# of uncompleted tasks (Edge/Cloud): 275(275/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2350/0(0/0/0) -percentage of failed tasks: 0.852973% -average service time: 1.921091 seconds. (on Edge: 1.921091, on Cloud: NaN) -average processing time: 1.799380 seconds. (on Edge: 1.799380, on Cloud: NaN) -average network delay: 0.121712 seconds. (LAN delay: 0.109726, MAN delay: 0.012972, WAN delay: NaN) -average server utilization Edge/Cloud: 23.292821/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:01:04. It took 10 Minutes 48 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:01:04 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 318350(190971/127379) -# of failed tasks (Edge/Cloud): 2334(995/1339) -# of completed tasks (Edge/Cloud): 316016(189976/126040) -# of uncompleted tasks (Edge/Cloud): 300(257/43) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2334/0(0/0/0) -percentage of failed tasks: 0.733155% -average service time: 1.615096 seconds. (on Edge: 1.509502, on Cloud: 1.774255) -average processing time: 0.869955 seconds. (on Edge: 1.376080, on Cloud: 0.107089) -average network delay: 0.745142 seconds. (LAN delay: 0.121848, MAN delay: 0.012774, WAN delay: 1.667166) -average server utilization Edge/Cloud: 12.247253/1.964548 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:15:03. It took 13 Minutes 58 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:15:03 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 331135(326695/4440) -# of failed tasks (Edge/Cloud): 4235(3925/310) -# of completed tasks (Edge/Cloud): 326900(322770/4130) -# of uncompleted tasks (Edge/Cloud): 411(411/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 3959/276(0/0/276) -percentage of failed tasks: 1.278935% -average service time: 2.728190 seconds. (on Edge: 2.734557, on Cloud: 2.230656) -average processing time: 2.564679 seconds. (on Edge: 2.596054, on Cloud: 0.112616) -average network delay: 0.163512 seconds. (LAN delay: 0.126334, MAN delay: 0.013131, WAN delay: 2.118040) -average server utilization Edge/Cloud: 38.494804/0.090970 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:30:22. It took 15 Minutes 19 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:30:22 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 326390(323710/2680) -# of failed tasks (Edge/Cloud): 3651(3628/23) -# of completed tasks (Edge/Cloud): 322739(320082/2657) -# of uncompleted tasks (Edge/Cloud): 452(452/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 3651/0(0/0/0) -percentage of failed tasks: 1.118600% -average service time: 2.551082 seconds. (on Edge: 2.559829, on Cloud: 1.497460) -average processing time: 2.401708 seconds. (on Edge: 2.420797, on Cloud: 0.102219) -average network delay: 0.149374 seconds. (LAN delay: 0.126868, MAN delay: 0.013131, WAN delay: 1.395241) -average server utilization Edge/Cloud: 35.463450/0.041472 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:45:45. It took 15 Minutes 23 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:45:45 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 359788(227836/131952) -# of failed tasks (Edge/Cloud): 2816(1467/1349) -# of completed tasks (Edge/Cloud): 356972(226369/130603) -# of uncompleted tasks (Edge/Cloud): 352(302/50) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2816/0(0/0/0) -percentage of failed tasks: 0.782683% -average service time: 1.782793 seconds. (on Edge: 1.770438, on Cloud: 1.804206) -average processing time: 1.078572 seconds. (on Edge: 1.636596, on Cloud: 0.111370) -average network delay: 0.704221 seconds. (LAN delay: 0.122043, MAN delay: 0.012875, WAN delay: 1.692837) -average server utilization Edge/Cloud: 17.739548/2.097659 -average cost: 0.0$ -Scenario finished at 30/08/2018 18:04:31. It took 18 Minutes 46 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 18:04:31 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 362741(343915/18826) -# of failed tasks (Edge/Cloud): 10105(5203/4902) -# of completed tasks (Edge/Cloud): 352636(338712/13924) -# of uncompleted tasks (Edge/Cloud): 573(573/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 5348/4757(0/0/4757) -percentage of failed tasks: 2.785734% -average service time: 3.294907 seconds. (on Edge: 3.301577, on Cloud: 3.132656) -average processing time: 3.034665 seconds. (on Edge: 3.154561, on Cloud: 0.118109) -average network delay: 0.260242 seconds. (LAN delay: 0.134798, MAN delay: 0.013177, WAN delay: 3.014548) -average server utilization Edge/Cloud: 50.316591/0.275920 -average cost: 0.0$ -Scenario finished at 30/08/2018 18:24:05. It took 19 Minutes 34 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 18:24:05 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 372610(348915/23695) -# of failed tasks (Edge/Cloud): 5733(5554/179) -# of completed tasks (Edge/Cloud): 366877(343361/23516) -# of uncompleted tasks (Edge/Cloud): 740(740/0) -# of failed tasks due to vm capacity (Edge/Cloud): 44(44/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 5689/0(0/0/0) -percentage of failed tasks: 1.538606% -average service time: 3.413521 seconds. (on Edge: 3.533761, on Cloud: 1.657884) -average processing time: 3.172138 seconds. (on Edge: 3.381305, on Cloud: 0.118050) -average network delay: 0.241384 seconds. (LAN delay: 0.140204, MAN delay: 0.013193, WAN delay: 1.539834) -average server utilization Edge/Cloud: 53.913282/0.455184 -average cost: 0.0$ -Scenario finished at 30/08/2018 18:45:08. It took 21 Minutes 3 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 18:45:08 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 412756(277804/134952) -# of failed tasks (Edge/Cloud): 4831(3396/1435) -# of completed tasks (Edge/Cloud): 407925(274408/133517) -# of uncompleted tasks (Edge/Cloud): 501(463/38) -# of failed tasks due to vm capacity (Edge/Cloud): 77(77/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 4094/660(660/0/0) -percentage of failed tasks: 1.170425% -average service time: 2.103563 seconds. (on Edge: 2.252819, on Cloud: 1.796808) -average processing time: 1.426899 seconds. (on Edge: 2.068516, on Cloud: 0.108230) -average network delay: 0.676664 seconds. (LAN delay: 0.172303, MAN delay: 0.013025, WAN delay: 1.688578) -average server utilization Edge/Cloud: 26.691531/2.045151 -average cost: 0.0$ -Scenario finished at 30/08/2018 19:10:00. It took 24 Minutes 51 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 19:10:00 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 401994(360678/41316) -# of failed tasks (Edge/Cloud): 21303(6122/15181) -# of completed tasks (Edge/Cloud): 380691(354556/26135) -# of uncompleted tasks (Edge/Cloud): 1529(1529/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 6470/14833(6/0/14827) -percentage of failed tasks: 5.299333% -average service time: 3.756641 seconds. (on Edge: 3.779225, on Cloud: 3.450260) -average processing time: 3.372097 seconds. (on Edge: 3.612813, on Cloud: 0.106475) -average network delay: 0.384543 seconds. (LAN delay: 0.154133, MAN delay: 0.013230, WAN delay: 3.343785) -average server utilization Edge/Cloud: 59.380256/0.487124 -average cost: 0.0$ -Scenario finished at 30/08/2018 19:32:46. It took 22 Minutes 46 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 19:32:46 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 419525(371746/47779) -# of failed tasks (Edge/Cloud): 10066(9584/482) -# of completed tasks (Edge/Cloud): 409459(362162/47297) -# of uncompleted tasks (Edge/Cloud): 1594(1594/0) -# of failed tasks due to vm capacity (Edge/Cloud): 1748(1748/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 7387/931(931/0/0) -percentage of failed tasks: 2.399380% -average service time: 3.927485 seconds. (on Edge: 4.215348, on Cloud: 1.723262) -average processing time: 3.541644 seconds. (on Edge: 3.989104, on Cloud: 0.115358) -average network delay: 0.385841 seconds. (LAN delay: 0.213946, MAN delay: 0.013257, WAN delay: 1.607903) -average server utilization Edge/Cloud: 65.670569/0.836120 -average cost: 0.0$ -Scenario finished at 30/08/2018 19:58:59. It took 26 Minutes 13 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 19:58:59 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 2000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 457018(321402/135616) -# of failed tasks (Edge/Cloud): 10516(9103/1413) -# of completed tasks (Edge/Cloud): 446502(312299/134203) -# of uncompleted tasks (Edge/Cloud): 633(580/53) -# of failed tasks due to vm capacity (Edge/Cloud): 2119(2119/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 5340/3057(3057/0/0) -percentage of failed tasks: 2.301003% -average service time: 2.817930 seconds. (on Edge: 3.248023, on Cloud: 1.817076) -average processing time: 2.105360 seconds. (on Edge: 2.962654, on Cloud: 0.110382) -average network delay: 0.712571 seconds. (LAN delay: 0.273213, MAN delay: 0.013147, WAN delay: 1.706695) -average server utilization Edge/Cloud: 42.871715/2.056856 -average cost: 0.0$ -Scenario finished at 30/08/2018 20:29:32. It took 30 Minutes 32 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 20:29:32 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 2000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 469830(369916/99914) -# of failed tasks (Edge/Cloud): 62179(7184/54995) -# of completed tasks (Edge/Cloud): 407651(362732/44919) -# of uncompleted tasks (Edge/Cloud): 1878(1856/22) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 8091/54088(14/0/54074) -percentage of failed tasks: 13.234361% -average service time: 4.361821 seconds. (on Edge: 4.342146, on Cloud: 4.520703) -average processing time: 3.730369 seconds. (on Edge: 4.179636, on Cloud: 0.102426) -average network delay: 0.631453 seconds. (LAN delay: 0.150216, MAN delay: 0.013242, WAN delay: 4.418277) -average server utilization Edge/Cloud: 69.073161/0.800502 -average cost: 0.0$ -Scenario finished at 30/08/2018 20:56:13. It took 26 Minutes 40 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 20:56:13 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 2 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 2000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 474285(393097/81188) -# of failed tasks (Edge/Cloud): 22765(21961/804) -# of completed tasks (Edge/Cloud): 451520(371136/80384) -# of uncompleted tasks (Edge/Cloud): 1801(1771/30) -# of failed tasks due to vm capacity (Edge/Cloud): 7502(7502/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 8699/6564(6564/0/0) -percentage of failed tasks: 4.799857% -average service time: 4.437271 seconds. (on Edge: 5.019076, on Cloud: 1.751054) -average processing time: 3.881488 seconds. (on Edge: 4.698189, on Cloud: 0.110747) -average network delay: 0.555783 seconds. (LAN delay: 0.308558, MAN delay: 0.013292, WAN delay: 1.640308) -average server utilization Edge/Cloud: 77.309066/1.273244 -average cost: 0.0$ -Scenario finished at 30/08/2018 21:27:59. It took 31 Minutes 45 Seconds ----------------------------------------------------------------------- -Simulation finished at 30/08/2018 21:27:59. It took 5 Hours 58 Minutes 29 Seconds diff --git a/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite2.tar.gz b/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite2.tar.gz deleted file mode 100644 index b3e2fa43ab2f9b4bea51eaba4e27310fdd449737..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138599 zcmX7PWmud&(>9cwVg-u3mEy(S-L1I0ySpqDcPZ}f?!Lv{-J!S_TXc6np7;BcNv_P1 zWM+~~GUpYt7(^Im?npftxJ$5Jy~ku63F7(78;;KD)3yuHSh#Y*RfpDMVl1V3FAxKB z+i_5&5T(LX@B!$QY{s&Z#cCG7P1o*T(_89Rg2Qe()sfUsjxY`d?Ly^Wfzb0^5c8PP zjRuq(M3@I%g$CldG0}|yZJ`>GjmPiRz-s6SxCscofWGZQAEEEvz_(@Sy%F>R2zdg4 zp}jRvwI{$iAhhfPItv6x0A8nsq2;^a{RF`CZXk42_#MOzeHevawF92f0q@f{(B}kT zQW4L7xea#2l-#{|Np1puC>AMiH6XYcU_y*pEzM=!cVBtRS4RjO$9^rNm)?;8^ z5f0bRt_55&u4Dw_s4^A4pWh5fEBx7geueHr9-*%vyu094=pFQh8G7$ zf&C&+dUWUJt2R!r%vH*`%1l*qQpwQo$LVn{_W*m|-iMfQqU@j;sH@iY`pRB@p$wAS zMKzM6^C#SuhNxC?S`f)HXxZ7WDZl(&EUS88S?gBJu2S);5xRm`wirEE-n>>8CZd;D zdLcr>)&EFeOGYx6-fH%Z*S9; zfkXR+vQN8z<=WL?7X{gXV?LMRnbbWjnq5`I$-dSl$mV8ZF^MVlgKbH2+Y+Zc;52#s zACYHwjo3<=ZbyxA%-QRQ^k(gE$*sgpsg0Z6;FO8AtL+`syN`}Q&99bojNsB%XYiRK z&fEIpk-;UXknuw8qg`Q(ptj9wmvE-urftKx&wkGf4((dSMm`%KT`kt6e3UL0O@%+w z*^>ViR&7&{3^uQpsmrB56zpMuUD)K<-HT>`4Yuj--Eg&=Y}w}0itVUHi#I$?|0mk+v=e0M_4Xyqgq zSjN2gVV&FsjSqPUp6c#Cq?_(&hy0H0>|OA=d+lu=1ZWm- zi_*s~Zr5^;J8G}Dl>{GNX$UAEylzGAo%!5?s;-e=w)5J<^kWwu-83M@&0i z_Nfu>aO+xomgok26>oi6dNs3iN}IgF9ss>{kvKKN)C+!}*22%Jfyv)A_{&;>%wO0d7 zz8^~URf1Pf;smq-7x#vBKo_ox%U=*wC+7Vph4hy(H~ql$pLIa9jwz?8t5+iFp_W%r z_Ce|iAC$_ihmSPCuo99iRu;NDY(+UIQ2E-|Ax-dQI|Sbw#w&IGPqpC#iLKlJK;Xiu|)(w~~m`_-=AuHe?~ z+RfBojzzbYUw!C-bf*5{OVaNBgz|-ZV3q^0Z4V3wuJ%@!yE*M&`JLmm!l^K!;|`Hmoq2yqr0Bb zi&v0G;J@}ogeNa$A;Zhry!!V(JTm5I7v`B8mpqW~(Nk}iGs|Vqb&L>oo>yJ{wN(J1 zI6=r?*i0C-f52Hu4LUm@d3|TDy?TD%ga#@=xgm@X0I|dEM*!!8{VVXH68e@1tUrVP zwZ7p^c_KD|i^K$vrUtpFzi6n8X5>aDddr`S;NV+{KgP4QZfXZY`+#-BlzhPGCR z1f#P8S7JOdS!~)Ec|$2ZS?0(XdA%=HJ=1!Md4EzBv*O#3UI>-ha*|W!Ok=9XHxKn$ zYXz3!v1Az!lj!x=9I3Jqmas}nk;xHcN%FMhA0G6N;okDE#pl4Uno%t^a=k%mD0)ij zoNu$}N=bjuqIo-zT6G@c6otJ4lw@0{(Qazzps9fk`#a(6&iQgP0x zG@^~n1e_%oDtcOn-V(+D6uyZQCsD=BlI0(@dbur{KX(+q5sBzT@omf$^exC;>Lt<3 zU&h&hgI6#GbF2wCDva7a2|dzjqbe3BcF?Tn`bf3!GEjALvnod=_}Pe-H8R`$YG(?# zu&yMC__4EAlSh%ci13!O=rrPsRGMD|B7Qmw)uTOR4|HqOs10Y9c;WjMrD0LMY8Dn@ zUEs{Q2DIqk;@bRtrR-LFCg#ke^JpWkd}yhcx1mqr-n~YZe_WK!QHY z_Y2qoL_#!a)`ddjaj4eMMW&;dZC21YYVrMAmxG%gb(@}>Rpd%09#xacJ{;ccY)=J$ zvGBbM+PSP6-*UZFh_BGN49#qRC|?ylJnDI7^_BKGp9$6}NtHH#7<+{)Xjt+}FAiDf z;5(>RH223VyF+h5nk15DW|j^IM-66bGnb|ve^=njT0IVx*1YL^rb8(LL+%PZy{*cm zXYhq>En{`-QtO`K@^KX5rd7C9DPzZ%iX>k>GxQ1fTE+#l<35tQ-r-~~+@x=mp3zgR z9v#NbAx1gXJ`Bip`E)YUiIw@EVD!C4Gyvh+(l~ZP-TYW_4OO=a_5f5 zvkkn7C!3_+LFoP9mw9Oi1>ayL) zSc}7{MON(NU}uv!@4tsPX?D$?eS#rZIJHrAvD9$fZTEX#^R8%kyY}Up&w`jLMAGb0 zD4AWfIhOS!?ewpOuWHpL>5Yh9=QC;UYMDycVH8mG!PKsOSmQ-9`XQirWqsWyxe?+WRbuZHYZfP@`pO&6QNN~2JvY@oDM<%7cFt35ZT|oWay$U zK{}!Ys598>Z!bJB2o=TQ2;#@_b%j^VD;*`0l!yCWHqN|`WmywKBUyMlyq&8(=HK~o zk}oRz1BejI(ujcd9!PP4^h<5jqide-xtz3d>?&`zJ1eZ+$Am-NE>p`YAVHNAUEOG9 zbrW%2dRp6k3IQ>J!f$V4n~Xw3(n{`rV?9x!TMK_PqWHT69rH3dmhLbsu7;1R9PC{K zSi3!m;0O&L)-qC!{EIe5bg%lc={saEVovZ;87;W`@EgWAy;}w+}Izz4|sn9LbA;tPzaqLV%|{XoMq~B9fED`j8!}}I#^7b3NJUD*Cnw1Vi<-b z+rm?_)0N(J|Ep@n8!s*-NO${eTH6X=Rok6!>kl{XwOjanw7dEU{3aUVJ`9a!xvzwRGl0zy zttXd1!bX?IkxnL49JZ^Ji;y_0uGF{e9K~vVh(p3BgwqUoO=!)!oO7dVE5%o^4WrYfM=(Kzw2XVX zbd0@le1&OO*{O8uM$3glV>G8!a7k~<*B*mndXD)g13D*vP;8QE~#|7 zeOlW_Bh$m^?pf2?D0AL=B97s%)R#i>QhH6tU3}t3-Nqtmmm9g~i4=slEoW0rWF3`c zMR|B))x=02$Hw++r!8Q#P5zs0z@95pJR7jjasuFdAWi@uIn zD^e4s0VzGkm{M7)H1dSU^qpSEV@0zx5zQFaVu-;8zOHXf3(_@wGuW365BIzbRo9urjqwNnpU)xR|>ArTG6hDlV!~BbXlWL4uiE0rt z-_i#K)~3&&&4h2$h4;)>2!6M7dP3b}dBQ)|>xtKhe4dD5yHal&*aWHLBF3cp+g#)- z64YTfoiO(vh##D=MHPoc%|%mLZChAqZ}N2A^}bmdZzOAMhDTY22pmill)9GoPOd$q zl5Gb5FyFOtYVUo#vi_y=Biz@iVor#9>!huI)1zqHnd?r;djQ{B>^DK&RkjsjtevVC zsbz^Pt8(*lGQ05l=a#ndCjH~Ov1WJh-vR=q)*vE44A(qMOhn)=Rk7jmpEwV`bc=ju zgOu@c1uand=r;xLE=4b1@e0HhflSO)jM(PEEE@4x%_0xPK_M*0fUoAJOwEmXpZ>V< zkQMvUB0hDiBntg7FIWzToy<>M=DMgrAy!@I&Z;Aw3UPZ}ZyI zj570!j*}w!4Q8%3ZpvYUy@N73yIbvd#M_NO3H~z(1 z&3KGIeA&7YZn&4C6%G5_7Pm2eG}?zLr`7;PUM~-DWoPX7t?zPF>-=K~RI&NCV$ilI zR@A6{^m<_*W!Vpogs~7a7?^1P-?H^# z-){3|Jgi^4|A8kC+NviT>i&fEQyo`()CH)u8`$zC+Z%ZHqkxtL-*L?=OR)Js%p0V^ zAdV{jpTtd<<@4N==H4UJYS^#?%s1H)@PB<5rZ8Vw9A*O%^t53EvOpKz8*HC$Fy7AKS)=fO z;iJJ-q0uDTbje=yGBGz~qs>r9lf&^2D@#`$pq_J$U(o$2z3@C9gQM${QMjnw4xh}m z`W!)7VH_y@grx8@zAJyu<|Q-N@M`ixf$GG7Fn$uD_6>i@0cI>r%?-f-n+4U^qT`zS z!t+7A=+afoJ!cU7A4Z`M9vWg$q6vMbl^x+mf!^Yr8!R%bmt;<*EMjz`PG?l=;6BEH zLc6?-kDdsU4ak#RF+u@x{se5iO7i7lsAHSf0S->O@YAbDjO7>0M8uo(-LN`*un-3K zdPqZzAKs$~6^uCd29xw-m;Wsx^RG!FT@D5>ccLKjF>!(wMRPPQHtm1tf|ia}OIIV}#*yb|mmGER zC`lx){5@obp)dUwFkk7qmUUQcV0mY`#OM#3sfi0POoX`EMVy}_8zOrcez+?io_00I zwN{P%E=V3!EBt$5t`(6@d(z37O5*b^q^C0Q<_l6{3com8W$Gz*?lm}87ZQI(ehn{O z^WZP+6k?{O4!dXf-)VHD<0=(wFWeBD7fQ(G!nreUuj%&E%y<%G)k`PIZu=x5E3<1Q zvK9p|!O2*lV#gWjLMklx=rFB8@O$-vsXEWj?DA1`CI1tP-tY}Vw)SAe0X)$}d_M2l z5t_8xEyIAKN^LeCIZ?0LPO1KYgLyWwd&qw~Tb!bzwX{KdGEYuqxo9Ivr2U85Br(Mk zkPG#S)G-s@gR(LCCw{V9zNRd0s`gg%93u$lB~09MA^+WqV%sFz-=sXpW;eEH*zIDi z#_AxG8dM%KpUB_cd{fd+0&itYNU(pUM{0>s4aS+Tf|nbGtAePRYnT3OeJe8}CqFu0 z8#~tQ%6Phx>ysUtz7=)dB6YWsKwiEzhJ!&q@?9?Ay@9us>FTQL29@Uy(fx{8$R@%r zyp6INLHn9y|1X=5lPAae7`%aELp=7)$M>MHl5cFRBL#!%s}$Qqb`U`t`qkCv;E1n% zPU*A)9F93ozPv&$>{kVWh?6&5H8$|yY_LfSCm%H(#PHDUy9`IEGc^ugTZrT9q~fW&gLlGtlx+XK23f1;4(~hu==$6{cd9sP{Hzl95E zdt9)DL|llFF&`K5eV8HdDoJ-B4Ud#uXMbHAdVJdX5ydIY508z3brUt?vW`i2t@-@e zPyhXV+$_ye9%X2D*KeqD8BD5>ii4^4IoPkFdX=YihBN_o2LRymk9f5g5DdsDzu883 zZihbK0H6^@P!Jh(pBwu8acX-NhKveBn1L^&yYGum(7=%J%%D3=D2~{;%L^3u9-8`y zp8s5*@XUVzRK<l{qbeh{lda)x$KJ(-g82Ml$wDKeNf+F{6uTqCX#H6Ur@sp)pd1S%jb7?T7m|3d{rRmbPiwktath>k&$t}UCbq8Wr;_e zF#HjAdO=2xu*wx4E0@qt<=`)80u6n$P;%97cLa7W$yMx`ie$M|WR~h*2-H>YNROfI zbg4p#FsZ@YTP1+OhCjZriekU^8Up>el}6xdFDdkk>aEZQqor3B9$cs*kXI7IZMs;i z$Dtb4$9Y#|ahzv_@82~PbGl%+VxFrn{;^*Y@mEvKVPy!`P1vm>{ncWLYE%guLR_TY zEY-7+ENiSf{pvv=sYn{5z8MulW!>4Bi<89R^-x|@Q1Z&?XE#jMDrDzff|I2#f2lWJ z{M+&x_Y55_1(&2-ig22=c&P|zyH>OpSvash)~_O#YSx~-PxZ=JNIk;vp(vx1ujKyn z7he)|ZTrozcEo6<8Rp3iLW0Qr4F*4JpnpW@%`@|{1%KHr&(-_tCP*;6D!x+ z)9`thYhDjxN3KGpPfIE~JV-c-Ra zRkzFb&GVumg!zkdRS4p(krRAGXhM~QvKoW^Hv9#mC@uUBR=(=$jFntWpQV%lPHYZxQ7zTDaPtk7(@?60z0z!1B4DW=SSDcc z*i%T#{mZIW8-G1`X`=R6lR?Pi;(Mrm)FO&Qu^v(`luqt#KBlRPa|7$1m*@0a`xWVr zwQrsR>I)}g_s{k9KGH2H@O-`Wf|OWQ%=n+*m;hR5ShiVVVUJBRC0VzkFT0f z_)8}tp&k>d$MW${@vKg$ur8A-jqm01Nj+t(VJs~H!zVihYn@F|T0w?+zIeJhQu^J* z+@nJ6+M{4T#0o3HrLXo3LFHJc_jBrb^{&h{2Z8|P(F$qj^^i( zFAi{42DI%5t15p|IULoYDWSt49#Eez9Qjp0Oscq(K3>KaeM(z^W2!Y?iGyh=LTy}0?bKgakG$7%)HptlbCbxh)vTX?-!|gFYr;b!U+zR22zh_%V$0BBP9NLa5u+Z8sR8+>biqwII#DTkxpb=e@-GQ{*r?hI2~k!uW!B>= z#N0FLI~2+*N{I_P`j<8qcJzi|C1#cw%MF%);x~kCyez0s=t7{Ldz^^5EpA1cjc(bV zN_IQZMS9#0_2)tEeaL34cuWp1^3Z{h}1I0{Duk~whpf_!aa4h=5Z+1)xO2tT06AzXV8i-oFlK> zj!LWRI_|c-Ls`SN%?%S2?fk@I(xAX`+&1Fz+F+*hE)^r*z&^@u^mnK=!^c?*t{AcvxU16#N7nk>ZL&iTFw-8g2k6;20HHr_N#L2L_8(-aMLh2&CB zbTG1i5=EXzEQTbbK-LYl+@gDg?zXuS;iWw_UwH%TmfNQg)?M$MRxYE(A!Bq~q7JdH z0Gr?JgvdWWEsq2R+KAvvwR4J*7I1v-SeCr#xb3LD%9J2DUNOueH<#){EkU!p5N*w^ z3AuHwHHyk5UlwXalj;qiHvim*x&ejz^(DYKjn=Bdeb*_*D z%SGv1$)66aVc6LS%T;~V-*H(dy26o|xUk5|pl>c->f}*7BPcMlC-RiT^9=)Ac<=KGzST#uq`6HF}dej;q9&Il^Y!DfHdm&}W%0>@=>H^t7)C66v=RRUod|d|w<`Po-Pq49eVB;Jckza2IwTmv+f(nrxYF7C)FgeBQP$KmdJB8+I>pw3!+HAdVuDfB&gqi7S*0(^bU+JY1pFKJ+_WP!+9ks~ivE+%No zvtCUJecGWJRN_1Iq|o&~svZ?{&vs}k!8#S-jgNALVji%WqvO@(MhCpG`wM`5dCH<{En zPvF>b38MbShqa-TYjVX>o_o}ug1K+6V5hZ|Oy4};W!0uuxFfd(F{1*lOgN>llVOEw zPA=BWh7EdNB{sNlE7efS`6&PpG|I?Vt?z>$G@QB&eo#gh2eHA8W~Q;8~kO5By- z99WGK(NZ7s*#pf(vwIXEg~LReDp#$eTaB)8mlh zu>M)E+%++65G#M=+p6%UtRmW|+yY0~!Z&Y83d%3){OY0D`T@|mPTP!^fXh#>6y>}4 zzu@)CGn87J3d|XE%Cm34qU!R`dy-rVYc7=4l3xl-rhd`zO4$TpXBT{OOuGLBB74(R zl!9-7rr3gP{7^t-3@V|g&NK!@Hq%lrAv}ox_)4Edi9^@#L%Z0ogf*pooZR1(=}5}O z|3^@_c)G|O=x|QLRzCWX)wJWg5^no7(Rh?Bn8DS$|6|UH)y)=umLq1)nf_-Uf#B$l z8`7n)lu_$CtuYiMuo^Qs4jYuO%09Yd4Q=#cLZvF`$JPD|BGbzqXcq~=p^?!6k!Ab5 zs>AuIErSR?WU59m``rS?SJY8)eM7gU zGUL0>s`QO5yHEMBJM#u!^Cn;}%A8&4EkRM?Lh9S(qiaJ&7Z{07A`(VX{# zP*e5&e9s;DV@)fV3?BZ0gfMFs%WVLdj6%T(Sb}q!3JJ#yn{o*|Rx6)ugcvEWglUnr zM`ix{U;kIx{BQUiL`GC>uivw#dBfl-{85?p{*CUzhWeXq%YDowBm@s38zCucAvHG$ zTrP4JZ88YCS5TNdWBI+R(GJC4R>38nYJt*X%D;p%5?%@qv$^10<_x7Yz%SW3urgk9 zw3+utfXlTfe$3E+)IK!iFs}hFhnIRQUSg2Gpwk( z0Bo7Etd-XWDE6WdJ%T}VT+l2EA zj37zObt!C-!HZ}X3YNaLuVRs8{CUM9^CgXoz0kEEJ01tx`9-Ovj`C7CT1&h(Rqbc6 zr7y4QZO})nD@J2(El`>It0FUbls9EoeaTV7un#?BW<`Ld=PhZG9ieoVPE6D-bCBXl zo+aIn0rYybc7e;M{?ws;s3Az=a;zLYI-+gw)BzsNnq3@1+5ptGW~A`m#q?hZuknk<1o^&JunpGUJ6&>^o$h-X~%yU(!bHfhQTCU z`5yjFnV_t0l&i92BV1|f2+eX+%gVGyAgo|x=2*6MaYiat&;}~12RB$(qH8^M6^Q?bw7P2Z1LZM=f}j7DQtdPEX=KF)$jOMBxf)QF=IC|*Vu-HydZmHfbu8P zLcj>}@|Me_>UIwqTM)RaEAn}%s#?qApDu%fjS9@LlEpgg$$W5N|xWXOMf<-xiXZnMVV*4hC4sd0uc`!ET{B?gGhPQH+rR`-3!Q2#bR zPLMuyBv!CM*P;ly=I0ydr7-QnnMWvXB^~VY#P;vCe|5~9r?1ocB7B5E)upouawPH;D!4~$v!@=)& z0A$c95X@f*!dXlJ2Yh(GjbkV!bW!LLNOt=)04>+zWv-Hn;SPz(VH{ZXP0JRubtO=F z>Z6+~@Z@C*GikNi2@#)p;ghbn9F@Nv|DwJ*%k^sI0!^AZB*)9h37kJou7o4 z?fY)!lw%_G9~Po7Y7Hek24}SZ^N~~XIT>I#AKD)USp~l3s=f&W9>;+10YuQG97xza z%`{X`_zY?WnRzg3+WOAe7|S=I3qp{zJ501<(g@Hmp}mdjBRXA0vAW9^kPByI_bEQ^#^inv#jV#|io`AMpBK?{fro?9GA#5v~4DAI$&AIBitV@sB`1 zFgxdMHB@{)V{C9LOw5Heqw#7LZ%x~gxVodG@Kcp+WvjO2bhrpm_7_=1=Thnol&}4P zQ(f+Wbsd;=Aiqe}9ttSD<8gB;9$Pn{_&T<&dw!}RT6e5?{V)L+ZX357VHsg66FkrH zIaq)3q=tH7mhQ5`sxv8eOG@1Aw)P3X%Q7p0^(n(Bcx2$~cnL#K4SgHqmxef9T_m;d zc}zwMxL;jXFx68jwKD#EMF7H3-<3~50eNqL?L$B(6z~cKjP0Vl2xqkR_MvYrae~ya zOu9Z(Jg)s%(pv>HuY$Hh8=6VV2Z*Xt;=kRyjF4{SbrH62|%IKn;qp9ND64H2XubgC8Zbd3jDwS;u6O5 zZcjaP8vbW6#Hykk{22qvpEHP`ZK42rqQe(*?LYerEPMG!>$9=S$WlHk{Mq|8Z4!PK zAGIv60RSIC_XQU*LXPBO8G7=AROKU!6}y_4_)`CtMNya6jwlCg?9G9vtD%cuT4O zufb6#g7LaUFocAe)zyZ)kN-v`35$&Dhpqq>viQby!_gkCzcmG2`*WQC=aKBTy-oiN zo1eUGwl&<2o&GtDl)-MhE1|iZ*9`YZgW+UWLdVhMf$#Vn*fOr*iC_d6^}1Z(kIB8k z{ujPpUT=IsE9=D)MQ+P$iii|lG*sAtJSUg4+b^s?m3mMk-4$tFWHi&fKW~4c-gS$n zN=SIQ5=V3fdB(oZ{*h|$7{K++#DD5qgD1cCkuM$yfNk;HP_uAe%d^`j{FgCJ7&86H zlaBb_!0fTF;&dK#+Kt-a{Sr{*CMCm{$1^n1P6>p!H~d{l{Q2{L0bA@~2_buLZ=WHO z|MUa4UeKs;zPF)`CM~_=kfQGeY`Mj}i0>}E%v`{X;+Z18^UeXW9AMJ&LD(9^1em7n z2bqWsfg3M^)_5J@t%S>86ggzD+8qQgtL2g{y84u z{)7=*nf>$7(bJ;`xHWc~dr7Gdo?IJeH2k;5Agd7%PRq9dy|5fPGt2l%E%Zl>aNb4b@tY~-E>;Im?<`dB z>kNM8iR{Xy;8a>5&cQN2$XmmH$2Q&eHi(W)`w#@7SMrv=x*Pa$MM>j9qLn z?1x-00z|+eMO#A0i|i>k`4{mISs=>vU(A@F{`EwR<{#D_u-9NbL-|B1@#gH{{*Sw% z_kB)`*%Jz4+P?zGJO4@}{j%8mcxA%N+2KiX=}1dmdGtyIdjy^0$7FfqRax{|{xap8 z=KLGsVgE!;;1}8NJQ?X{idObLM4<}{gFnN^v4O%GW`ec(ONi%@+4-NdsoS(ynuXuu z`B!ID@(h98$A_;r zVE4wt`bgxW)g&puQ`K`tbAhs=c3%0XiG(@Rt3(;Wj^9z2=?A&Q5NiIYpEoeGzXjv; zZzHC6YG@oj_o)2UaW6EBW+_s8wR){6F~DiU{sFu7Dnaw0@8hyvh!u1B%U@saVAv(E zRmj;v)@0Ir)+V+NgU3OLucyTOkn1WoFWHUtT|Q$^U8%``2f65FkzHI2ulaezMr8RG-(Ap8`ot zzgldR&>}m+^mCoRRuX=akiT{4gd#q5R%UAPFe-=j@XP_xvE1sN^|MZ(HMP4-xR4uIXsx{zV?4vXr^hPhD9V{@}_Y(DGIGOwj?5 zwPjXy6B~QQ=DD*z1jAj`lC8rO)#PbPWy8|8!?g_2IP3~|Ok9nX#CL9w_S<*_DLk!CxM=j5;uj)hUhXn@=@T^f z6)Be*=?Lt8Iy0sAA8qA+VEMiB-hL~;e3`fQMPQnPlMNt_^D}-m2gvbt|Ne&g?kV>f zN;dK?01cpo=rLRDLyzhTo_A9=XdwTK^bkRt`vEyXf{1kqLBff+)~jE_wXL2=JO9QPPPtFm_gia&}sQAja|UO5OP)*n?+lrd32@_73rVo=l1h*U&<&9e-?w_ekiWF(~dqZO0eE1Z;`^v4N4$V-r-Yb0?nsLD(_;hRi z*Oaa1poNWbrHyzfkzAxG#M+qn)(`d%?@6m^{12@<*to^^=D=hQ(f>v*_b34=mM~N6 zi{sKla3nd#zeLVri#Kp-bKBN!o&`_$XKpBnPF3nYNu2~6lQW&Hp^3AQR^}n*ZrksZ z6JPc*>?c@-Ds4Ck%zn*n8T87d;7hpR9^^_UfD3OPB+ggiNl<|c`^~*R*J%$EV3@v+ z!MEoAu_ll^a;cuh(Xs`DlFZuGdFH6~&j)I5MRIwn`C++@M|c*v3b?vClm3yME*cUu zP3Pr;C>l8UH=OPWEWr|!K?{cmwye&FDmp`7lcifILuB)S5!m!6fqx0TTRPa6*SaX! z=GW%`=#1UhSuwN=e&w`Nj4E6gArmMXKk?6p<7~F7pq_!_il793vZT(ZL(Ry{CW#wM z9w2Qw5cfQhc>Oa~;=v4OO-;f{`Df}-QLq2SRI`~fDC?GSHiY_~e;g5J>fs<*^3T*S zYY|b;5(F4aPf3gVR8cnR4Opq;!T^{bWe!guEA1(`3c2r72L`SkSQiwpM?Ci7 zlLAUqa8{(V;Zla}m2C)QXpz+Azu~kqo)bL;fyjX@=0lBtqgz4A(qJlF%bs*+8-;#6IFe$)>k8 zPZv^i{Uq%Avr6*WzJS|utdThI=ShcZMoYEdISt*Ox_#XPf+pAoO|vQ zhX}JzxinG`(OnC0<-{Ufdyw3GTCEmWnO25+N}6Sq=j1owZ2{a7=}#C4e{yEOp!0VZ$VU~Ox&%jh z^X?2rdXHOyNnx1Jkp7BewB(r3rHGE6{rtXn6prz)oV`bA7s=a)RcO!P+~+LVE7R%{ zcAv?rE_vJ`0Y=D@-~E$i$!7Bk+r3iY*4=;IJ!@Go-93cdH%HPiI0a0PVSGzES2puV z?z~k6k#3b%H&UPH1=%UX7X_QW{_2y`|1{O(njfgFOYC%P3cN2jQp3XA*_k~N4W6A0 zv90qyqC+9y9c8F%>7aEKOSsRuV*C0d>i2L^8!MCEd>mVm4*K*{wL)2_ zFY2MrifbSx>144Xxt}z>EO|Zes6o!M+r@PBLErH`w5J3wcMlBh@xym`{z7TTG?^D~ z{>x~lTJGOue89LB2}?ioNi}{WGkOPRA~W;SxI|wMUkXwEyR_2IhL#fHo}uBGO;B%+ zM{nNxUC&@t5HFSx3=4D504!i#kaznSyCOq~6Xm;t@T}*_Hq^WGtmoZGCkPl-v&76N zvE#cX7n|oV6vO{=ndHpBeyM|YV|3J+JF!6X2j%6mF~Pi9TAP5987OiDBijLDPGo)I zDFC*FL3Tkm{I_JYvd};tm_zOZVCvL6z;zI1_^)u=YZUZ3637mrM6p}$IWuT3#Y2rQ zxpS?P{m=WqvujC48bZxZuOy`KaDOaUSyel8-hS7MLcy@$<&q$WDdx_@8riwS|BM({ zbB-PhgUu}9mP*o#DV`z;If>N~2?{f-H(Xp7SnSM4JjRS5JKU%o@aq28K|T5~ zc9)Px^6hf6+BE@HWAMwx?~U?u8b*!pBynI`)%5UR0hv54q1YTfSBd9>?nJ3mLkg-X zx|y>L~sG9h-yRJVGD3bF6o&gZ2$0ME!tD{khbptUyK5 zHGWY{eo_dl@8|CaQAd;Yc&~NsJIzYMU60Ty{CX!!fpXND7phx3>(yTvQBm+{Y+6x{|MZ}l*Lk` zMZiR=0O8Y}BXmB*>Lx$1R$_`$09~S=6EAYA)M`2c-tRg_lyjg!@F)QKCj9>Tff&v2 z0_BmPJ>O5-@}W(k|36IhS2!k-`3w1LsqUC%ifU}f(VTjrfszTvY?!aS^{^NaC27bW z2{+l&z1MXJ+}ye|W0woH+uoZ&lPV-gdO zzHJ@K#Fh$8LXWKUG@6^=TkL*~As#op4vrgT_2f!VS6N`+{#pQxf8$JH^}Vzh0Sknh-DCat59VbveWlgM%hb059myVs;k)Gr9`Q*H z;G^74I)}#4&s5Rz(thi&ZuAR6O|Ii?-n&N*g3T*8ld!$Rpv{STwJWt|>lMkhOa zEa@!BUdTX^N>5{9q=0CPl8n)bvvor;crE|k;6hNYuu?IoIpABhrVvozr_sK2d&~~jHz)V z`-y=GuI3+qA3gY`P)^C5c<#=HiAB51u1?Xs**~5Oo#C#^o2@Ql1cdsnWJr~}8$9Li zQRgnav5xX3EEV&K8y@z*;?@99Ecyd=Z|{@fR4e0;o}IV&q@nnr&F-4Hw779g@Uqc&vvNs^-nd|%*f^*oai4G_;`QrW3II# zH|o2o;H%Kzm=}?S?4=;=f+Fl#gm$kS8&D$M$j+zCQ{q@y4<;QNFnt=lfiU&1eGWYU z%d!!>4`>N(bNwZB9}_0I+^9g=*@XQe@RzUZ?-`vVU91q9&-G5;S&R~gVo(}b~7ptu$&?(XjH?gWS8 z?(XjHF2&v5DaC`kyB05+FYos!$=&Vl&F;+XW%izVHh`_33$yF;SzxYA@<&B} z1JtcN!<*=x#Ck$>W3xra)eaYw>fBFQtDdd2O^5y~9oB!SByz7T&#-zWPfXsr(Jq=F&Qb3fyCDHu4T<*N>#zuP6j!bfDYMxtp;?+%qX?57vOag`@x)0}{Up}jWDUu96i-9TbWIl6&g4c^BAu)`48Gh3mUSSoG zek*FlZ$J&Q_HQcPZbDsEhorWN_ukS$FUPqVPB7|JE@?t~xKdH>E}N=BQ*5T24;VV_ zSZt=3SzhYDR(XcVEXEjUW@_lB2JH6t{iP`qgbPbL-DR@Ak)hV~?hLz+upkVcMVq_q z1wUUwncZ{GvSJahW4hU)Qt^l_a^$T5_nBZg>o7EW$1A{&jc~Yu2aJ04(|It3ai+q5X{_%`C9M9;6A!msCU z(neYY-1Xg3!AAF#Z*D8S;qLbm70s`8oSizfuUDbs4bTL@zRP=eLQRXmTpaFxW*}~} z^1gza$Dh{SJy!sfILBgkd^&Z8a`Gn6shS_pi`?GGT3Q7}B?Khe!N<8gUUynr9sHy? z!jtI8GA&c#5z?zZi>Luztc+LImCkv6`z#oW@R_Oo>=|cDxS81}hW@2njy@+ev$SH= zhs|Hc#HdSMj!D9m;g}HfBa0lfYq7+QFO?ck074j{jd904JM0jDps6-#UdPFCrS}Tg z&gc@xMKV&f2$N>`NxOQx3ZS{d9e0km!d`QFy}jAPQkvLyGWDOK4}4}q^Jlqip8~AR zpN8KTQ;CS%zfDK?&7qjY`hER6ZXBlhH>~`=^R37Ur&i$K(1&%z2xDDaCnU{7;*G!T zCO62qRjr}yfscmhf%i)9Z`dE81BcSn0&qg%2cl5Q z*VBuK0#zC(U_iYj$ocDADJbFJ+x5E;yAx!Ep&nf`_vMs{r73EM3cK1J`XFj<* z7-64Xc7=QAm&w2od)DyR3_92_ot3BEkzex-Zy0QPRoB0-rJYcYR}{H|!vpJln%ySD zaH1f4B@}CEAs$_d3D2-Z3fq~DZtX6Ulk~Hme0vsL())Ev52u}h?j>^*R4u<#1T(eZ z340%TMf&a3@a!#jptZ@oQ)d+l5{ZmdW4`7ia|Ta&zOVEq88Ls&cm3T5sp6p~$+GX< zCH2&PLEGlp*S?6;v&upgpJ0>HCe z@QPuzqJ)}tYjMdi`7RG3@8FQ${fRKX;InBEN8M#7p%kXh0d=QH7nnchD3_Z0jIT(B z&JhlX?W=heo{e`sX~2sQs+yOeG~*uppzjx2$ZV*V{umC!wkt2(7zeAIH-(&t<=foG*`h zomuu)+_6CKs$Z9~-m^j>z72~(EXdz$K@qB@s9M_h;+$o z&-{h3Ks@!xJjUml0aSYKs1zS*!wHrknP^4r|FyafKY#gVjd!=aAhh(xh!AfRhtE5k z>RVgqs{D)yoiea&oAcIp1#c%1s+vbfv^b-vflzbgTSXwgs7nZAv@wDqx&^hqfebzM zm})YkQuo-V#4K_6`6j5+z-d%F;9O}1ExkP0szS4}>Rm&BhODYlpY?`H(Bv(~@#`(= z3-d)s*|r>CHyyH_z?=(d>SMn53G*IA+jfG;&u`*w*E(HS5EKn=?O!PPHXv-5)LuD} z?OGF6uC|)%*wz;FXOAGdp;{hOHP|uMy(eszwXQ3j6SjPWzwlM}7wmDR(I(b+2Y=5q z%&Lm#Mp6Q}MIPvBZdU<}4EdCK*`Bt_Hsmqs75bhVA;0=4(c|8T>R3po`-xmVJgaMd zwF*mI6@&1(APNEGKy_U$oUPTM+o9zTf&;oV`TBOP;E?Ta#?d^b44E)PV}Lu7pLC&p z6YSgdL+vr#g$=iDjRQ?VVQI6Q^qWepv+O)GkR35vo;%(Ew|ct^<-L}YV$mFZNw)=1% zWJLR(%16bS;n0%_^M04wzQ3JLvjT!atWd(w`M>HfNn?iHJbHo*3hhVE9k)UTd{cPg zx3~OsccITM^-aUqIH5_pxG1uC_D~DDb6!(u^rTb8uc+a zq*t!2d5e!Nw@g_zw)Mw7$gpc~a-{s4J!TQhs1Muj zy#S*y)(>Uul-k9Ly_D8=aWbDXlgs$$qea5lumiaY7&jl2WH0Bka8>coSelJQp`O_y$R5C=MX9?+ zzN0P1dGUYgA+VJi5&sD92(SVEvy$!>U!PdnPI5!VBi`dT>_{Oq<@D!2Bn5ul`OHRn z?Q4g=t0GK(y9XeDb=Ud3bMWQbJr_qv>l(3$mz8^G{&xuNw^q3b^3?mJhRf0JMW(B2 z2TH8nP$hCN4`wj7cJl@+6gDGA&#}R;&elA_bV+%v$8%F7?5RjI-orYjpTB*rPPn-Q zNqcV#hq}O4NE~^`V*(9{f5yX5`%4s7-%tIaI!NsfqGXsYs;%bYt8cET@loXYiAq%= z5elA4N}hWu-|^3(5D#`c4}!9Aukr=n{1GAeeCH(cO8d^+Zn`Nwe=5f8Ib!tRuoOmk z6tH$DsQ>;(q-getXxO=UtRJiNjj88idlUQo&mw1#X`moHjv)M9M5j-ljh%V~IuT;3 zyS#T>>)W3loaBG`PA@IA!sr$g-~EarCP^H&^Hw-k^shn&jF&x|A#;|_9z$)Zf%gz_ z`x%-x=4gG*J=YNX$I*uyQOIzOwzH0y^N^(Rk4RiD`{4(ljpFTWg^?%|^rni_SnAzh zYVgRj;8)$ZH?M;|%Dc`P!1v%Y2zGOMk8;y|tapo7$ zN31|2KBLqLu(Lm2@6m6n9#=WN_FJVuBh-z&6eIlH5ZE zk}7;f;{PGW*c%DQ3YZOWIRz1of`l4_c0N9D6lnjY+=5g}!uURHeC>uo|#o$^TwB9~141dX{o4mxc>eTmCOYiYV5AG!HN$%ojvAZ3nX7Z1!>L{xg zr9WcB6It~;Ny*}09frY*4?4YhRZfttPS_?|C0>?)YF+j; zIL@$TNztmEzctiLbv9u%Tf32N2j7(&`zxC;w2$y^p;a(6m!i4h0U8Bkm?cUprG0Iw zFs!SZvS*ZjETENL9zrX|2DAtp1y&b|pTxJYVDDtK$4sY2&wp6>B3n$g`sJf23 zCKAcZc$Lui1@E%-7fU4P$P`yeha?`m!FaL+%~+BE=PwmCSO%_nqZZs|-qOK=4(!bK!x2v4Hzq3u)lek+;wR)}~MiqR+7U2hdPsfi0wVo8+u@>M|? z)*DqQyqZjnt-Ziq2@L`)Wj!h+!N)}Q?|%SzK=%p^;7Oln-rY+>pc`idf!mnkR_N54 zuGwOijl=2`j>!Qdg;QZ9E zN`(C4&1e;KZ^O4f+{T?eZB1PGt>@=@Hq_V`MwK|Ksm6cJwOV9>lZs=}Zr}{S7KgO3 zrTJ;yL2%Cd&(`8A8mXT;Dn<U6ZW-%5F*e254DWQ$|Pmx0+f{SzI%+C(WBjX#7Z124$w zb*&SQ2fq`1zjrmqzy-4-!AFPy!lpwkeT-F{OJi;c`8KK#0Jc1rF(~SjE>w~FjmK;; zs;hh=iP0Q}+Nn6ttvXl8QiC{bT?mVReo{hkh}4d>S$Dg&)|P1`+0?8$WxfUXB0Rux z3J=D^n!~i>wK)(bbP~}Qvje!tb^}pkS%PmNpM!M45cY=OM-s&Rj45jK==@ism)gkq zrunw{U#&+~YI_<|9jhf8-9?!jio1>t%32zQzh~AD6}OE~tVhSUcho3*sf~%IdXH1k-yTvjqv=mW58P7!0Gl_}Ao{&GpsjnIlAw&)dFhHAu5% zoK_^T)D1Mxr29}?QEXV73Q*BUMth-Zg5l(Nx@2^DwKnN~nH; zA2{Zf^A@X9Cb1pux!c}(EV%D2=fW3Vm{1r;kav2jm0+{8!8m2F)X%;n(>g2R#S*rt zqn>_fAu$}cUliKQM3;TR+yd!m zlvqvF4oW9NhP+4maJZoZd8FVfrGuFKk3pY_{WtL-=g}l`6ad^VaL_6k7vd&~IhYEf z$Hx<97UUtS=k?l;|2|3xDLt$l6Ytc`=Mlyf3eF65frh(TB=>W2FDwxt4c_oaBo@3e zP#-jH*)+C>B+-3Eg0XXvMSKuoj41!xeNb|R`$2t^e_;GYpXXK5#WOXR9z|FR92O;?uK7b|B%^P4R^?&-A*mNH|4OaCQ?S z`4)l#xy5BON!`<3axFY9vHpkSXMSS6^H&NFXP(O;ag>Y!!_|}DH$UkEx{f#yTjCb+ zO^{|A-U;=W$Z~Qy*qxxzv$P)jK?FnDDe-KVjnZRI10&DB1h6p(_w~3t4q)*7?enK*D<9&6OrWMk%1;^T zlD3`jS&|5&DmwaKNVM&XO!sMQYNgP46atFm#tFq?W*bzL77R}zni|>oP2rMEb7G12 z2g8g_)>)c=d`woT8A~AX)d}ROGDja# z9J<;jEZnKzEn;v5rrFMRUCcIU#4m{K^e#N}dyXS}k2Sl%A^U{;mPx66#cq>~pICI4 zGAYbs*lgJJTs7!FML!a`Gq&zNU;%y~Ia{^kJ<4KsFC#&5HPBMPZAS6A){)x5nAWR|ueggK|&JVl-R78_%< zsq(+Z`7Mk$T9~tzzoCyD(TwN2$YMgS8VKGOp=u+`$8Cb1M%?*DEp>Xr7Dk3;xb~n! zLOO4+{}j#|dFK8`yqZ$>_$!RSF1by1zQz_^8aLGQb&p$SE9BFWQ4jgGCvPNYutK&S zj`b<=+MY_4;5yl{iy5(t_(#7qO6b8DE@Hih?r#x7Z(awZ8~&HaP%Mpu!xTE|@@q8^%wP-0FAWy_|?qp$+VbtqxUf9_U zaMFg~ov{jMJ(wcUp~o1=D@WISZcd-T=IfEkSil@o?6;_RLMGYR zh;c~HdbRDEe;_9Yh6Z@JjSl}2{K4bd+dvZIbYzgd{gR88}a2!^XkL-9O2@N=^FJ-2L?w`kM(rw)eef@H6KIUtL5`!M; z;K13q1b%av3Jr=m>S?tsF7}x_DQ^EF4U(s*wgav_%T^sXx0aWXWRF^nv&vu=y26kr zQP-zdmE>~221o&MP=o(h&&ER5e7p6&ag5)_!rS)Vgo{GfG}ntTr6%u4$y@_~9~!k7 zU-gRhyvrT(ArWiNZH(UUQ2WI8ZVS=@~Ht<>WJ-@$gBUxXHuOkH>!xuWF~1A zisImQITu^rX2(_`YgCB=>xq!+kpaRK?^oa=b#O7^|z4#-~U$e1NIOR zw(X8vSEhBeR<~>Jw0`N$7QNy3j*_5jXN!?B=;-C5c{8bUhE3r2JY5ml$RFKnp8H(< z9brw=%vKd>r z9{xzE1QYQQ+| z`AAC|hBLU*k&ghm1>U3H6OjkmB$ha03M=$x(j0Z!!;4DPN>$#A5gA`uTpig`H-(IF z3?EAZTp35u4(qSf@mNbJ{B9B~+y%J#kU4lh8rI;Vq?$#!m1|LnS3Z;E{P_xDdW_&v#)NJvA>>_??=o{qz+Xr$XXpll-SE=RYJM%;p{)t z)69a!4%;kBP+w9b6KVUERpFo;lfRddqra&Pix<3+@0Ltt9FZsTMlmPgxpI~Ykzs5a zQ$XHB2TCDn$NUl;av!Y#J~b^mF-QF1X}i|^eT`0SwQK>!rP`EN=m)DOR)?rsTmtS! zwky>*^{b<$q%3EIX0UQ@rOEMztF$CuO$yvdMQ2IG^hbb=d0skPS0Xg*y&le@=%EDQ zIT@~@LSm)3zkL&~TA1Lh`O?COMjQ+sM!e?j-|~#UYQfwT2=acm%qY<5JjjEQqnK^Qej2?c<11kI^v!j zQHzw*svnIHpcqBQiun;4ptshW?s#%6gi)=bi59$I|3X~J`x3BMxP>0HEEAZ`K>_ST zv9%|A_rX!9jnvKr44V4U&a38?IC3HRdMu=Xa@t#Kc)Cc4rmC$46esb$gGJC2s!>o? zPp4aIAZ#tU&Ljlv_{$7$iY3I7aABSd9E7f9f$?+w#KA>_;P83^daat}e#Vki-m&`! zZ8g;_IL(~eW_z;bB?zg1!uv_r?u&6}y_$KebpYwrI{aF!NH24}IzPJWBDBlOXvJ$eFH4|V zBCT&Vp4MKwz5b$(&R(HDue;7{ea?;wF*bFLrbbZ&%-riO`)uBg!|5Dby|HSA+pflo zn_!X+U!7vBY5b+W#K=LKkJ)bn%%{4r7C5+Z?&`>(-FXq(Q{)$Jg-_col^`dquL} zE#vYO9)WDW*?vsWl@GR7Y<2Oj7^o;(n8K*6H_-LL@!4t6C|NNxfebHt6dOB*?Drl|9N$bF+L;6^me+M9dH+UD>D~`wqFWCVdlcDa?lEq{jBz>Mg+mS=El1BFIbDp0$Tk^E)~J=1`@vIlK%ehzjOCVc)m|3G47I~^$a$BV z^y4sDt#=(uP)oWhzvbEUTlxK60ArPZqGpy9R8RdN?S@f*_SSbmcD>MK7Kcih=4qz> zvb1iBYLkeuHyT1nnzz(!azo5KB}{)e`-r9+YwI09GBUe5Ip&*PA7U}*BHE)S$~?^{ zN**!;{A4+tkq8Nb%Z+MAs7_qM+m7ne&L+qLr<>#KK}r%a(-A2LM5++rHzzFl9A(OC zB1+jwOnghpaaLZmee=)!yaDsQ3F7Tb$yt}e(S`_&ML;C=5at?IC`N+C`yHU`Gj9S&3?#dvUgRG zg#S*af(zMW1qiDV&aLSppf;X4p^60;l3|5+h}Gu7^;(nEcH?~DnUZtCV)69VFjbmh zX=7+PC)vuw+WBTQmsWOPwl}{Ee3ZEeif;IMg*lCia$tA%tCNOJ6%>>FX%K!9An~tB z1#>BybUH0w)mvMg&YH@l?z@%_JWxWgxjtj>GrZHhttS_;-~vKgo5ekexdJrZx?d|; z0g{MXK3fEt?}0Q{9jvC=(gArZJ;z*a@3*HSJi*L)d_Uwq~Xp1|*? z!ylTn)p-(l%2!q@am=>NvNvVLFr43y(0S|5Z;4dOOMcE3Izced2P!wihQIi*T)mQ8csFG3#fn<6b@$YNb%_dw_Ov~ zqDT4IUs2-FX@e`vdmadTGGI@W_qtQOsr^=BO7wHuT9ROH_polEe)x=2elBbZc5BRJ z^gQyrghgX!1DDxx5vUbi|L0N)WzFuuN-Hw!u4PnfZY5~+GwaFiGyr%Ki9T0&JzVUw zbRe|eg){dhg;~j8ZU>5SQc~A84O}^|(xu|y+-Bu0+dKiJ{b1XaEc)R9KQT;pK7fqZ z!Mg^oMtxZ;`%&LpX7ef?`Gf3)N(BUXXrTpaMy$m@+R_$6od(F|y65YH<#ZvKE1c$k zV#D}uBSY8*$Q)cX7u>KnF5drssn-VXv^xR{KF&iwh4XRq?*Po}=ytI6$K>aK;S2gy z)}=B{5CPd-nK`0^8~kBTq1Ffa!6Z8+DECp{`eQH-EGuslPMU=%$cArWyJ`_sOrT7` z26@rp-1GqrR)<9Vm=(B;yX%-bkv`G=k60;iYi_n<{GCk4<+xJ8pDWw*TR8%8OzXIu zrgI?OfKaEXRBUi-8vW z8ODN3_f~u(&~n!4sgT%u?AKJc zR{u1luLEgRz(s>6jN0ces+yO}LW~U_YU{TeQBaKAgJPiWH;VR-eIb);w^*x}cC!gg zr_q2G9Sv2ug~xu*XKzKzQ`Xaf7z3-8^j^5^B?b$-TFeT7$~{i)v&&2MY1ss)m-|Qk z)#-!)SeI=#Bj1Zaqw<(-X__~7QcOyiIq(8Ru52P8pEc(xUhCE#jK@Zn&Oc|yCcQ+L z;&N{YVDz(trMw&&n-|F?H>l4K-&R(?m6Qhdk9&Zh82!`|t#~3z2)^0%7P^I$#mDH=ld-B|g ze=V9`+>WQyELzJ@OSFd5sKlF2!!uLXC;VW?OzS-b^3R~32ROmNV1mUV9cNwy1*dRL ziTmZ&js3~^e10XZ;Ji&Q9uEKXpwqQz&rAFB*iT(mGs^ZvqM!`2X=Q~GJr5}OiE|#H zkg57v=8ke2prE+$#|o_DrFohfuvwATw)PMbKZ#?6R)G8jS1Lhamg&HHY{ENLHm|_f z9XYKcP}mQk0`g-^LQ=Ce)3MZjn&FgOVOwz-_`HFFs0&w^4bapXwhdk%UA<-raw&pL zlsrne_7iorB#M6#WFp+rtpW}WraF4St_$^BJL3~aqQeOMsPLy~`SMZ!D5uq3_b-8( zR-5El&G%Zo98-^a5Nidb%Ybp8{<$)i8T}_XA5+Drpi6(c64dI}qC5TAzbYTq>PbXU z!=VTAvFodUi=Aj?s1*+j3O2i{1GR1h#j!9^_bVvhKC(}^$IkH~oTP6&RoqvR)T^e-6y z46|R8@8lGNX=FrK_&U*_-p7HyLrU1fr5ttFGej- z9!ZQ8T1xF_Jnr1wTvN>x1M^|p0b+jG#9IsXCh8xzD7;r;m^ z;Erzrl=;gj93@7QU_x!&9!>%t-UEr1#sjlxv%+6g`j*Dzm$JCM3nkCMtM-V42ZVxW zaVoWU@_UPmB08`U*88&O2SO?)irUgbO7hwUN1Z;mq%tr#Oqv_j>Pe?EPTGhymE z>n#OiCy%@gSKfo-;ms(Bnjv|xz>jt6+uu#`I7q|vgUfoC!Fm_HMx$`hd;(z8v< z`i}51(PrbOenc%VNn5bQKYaHmw>Xxj&jd>3ct91poN-_D`r&OMwBMP#l{|Tl-C~qB zmkC~qnlvd=UNt~Re)sDUr~nzwQh1FmBCOQ zuLAFX+SbGvaobb)fw|p#I(vM`1P~2?0!pL-uK~+aC(INWy`XG)c#}N-9m2HXv0n zjNGSwOix+?uODZdN(EA?(1O>#hNVfT!k%0BccvL;*HcN$5l7t=wpbvP1fd7V!LeqR zZRD$c2`LA`NVEW6nIS!C9_|-Y#e1gEhj0Fr(LI1&VLcha8fZIpG=9eju z;bMIsb zei+1;xKG>R*H-{`CG)r+KU{#yN;1(gr1v8Z+OGnt2ywi&`ZD%+#IN$Gq`YeS(ZAgrR+^y$qExM0e+^+ z^;MmOoNqA}1%y+25FrpRTb7`41rn1p*=3Uo{8o9)Pb%4LSU?R5Nd2b@U4g4m>K|SA zmf%%!t04ZsLd(1GV9wh7z{Ig-EK~u7i6$1FU1o9TtZYf59>{9O5kl?o&8Y%c{F?V} zE7v+rPC~w)edhMy4)hE9U*6)I+70OE7AR-)KCxAXkQjlw^z1!$IStQkOX@k}(uVDw#9?3gY~QxgSpB_&p!UYywLs zW7X2Iopz-yTSPLFYC}s=g@@`(43`)47xm{&%QnaADh?X%UH3ZVqfmAX15OMz@KZ&_d0Hc{&LvKr)ZQ4MG-S7+!#rooHSoyvvB(7C~b-4@oe-5 zg?c6u6ypfz=syuPU$Q#--4*{HJb(_82ilK7yUzh@y565$Syy1SNA_oY8mgQMQMH3k zh%u==+=`evAha*<*Q(D~vgvgr8vCQ(e-Y;_%guNh6oY8SFHdw^4+R+5J5?U&70L?| z-ya#1G2QbW^lb3R@VB>gQVW` z&H^S#YV8*v{f0iZ7V8SK#}^nLjIf>1<`+q+Fqx8j)_XA#N`m;iW$#r3rl?*cwBFRI zkA1&GxU7g7jQEY>S-WBVNxA&O)A*AM5ohBDcEA9su-r-97?NEhAfIirw{JY1)lM9- zb&@Kz08>Hx!xVdfH;m6J;o(&UP-73JZdF`G=rmH9vT$ThTqDki#9H_g(*^x5^HKnI zk9WZ5jx$yFQNZ=l|B*d5pF5;IHnvx*TOZw%_DoeB-yS~Opr-W*&)x+NtyB^V-u$Zx zfC!}e{Zd{yjW7CUX5Rh@QFzk?{jCGm;;(+Q1HoyBPn848eM4o%!MD~W3++qF0tbb& z?O2$L%)a%0WyOWHk`aB95f0TXIz|EnHG6x4t&$5Xq`kehLh&G2;NXZDZ5y;TkI#RP#iSi{;OkbSZGsF>YQ3Ips9!@2r{Cnq1@OS13 z&AnZ#RgfGcl%nu>ckcKrSne*o=1cg(|9pB*s4XVlRDN}XuNK#xB?PjKjVFsH*wX>S zWK#&YSSV}M?;`Uxi!YewA^5vY>3yq#B>)cJHgBuB5`YRc=lmhKkonUbnfE>e!=H!K zF~Gd{(~r^&baE?Ig8X<=H*Z%%*+k95vx_PAD!;bIZYeHV);@!IyzUv7aw#q_f``S^ zwd5$)J#m+DJ-@|iu!K*tPSF5Ylx&5)zNIjUpB!uU3tp#BijS+QKdc;~A0a2Br>oFP z5V)><>PXYF-}=fPFpfi^E%@*0n0?m&uihYex|*&ibmI(_0P21kVXqUBCp0J9cbBEW zwu--{oB{n9a6cdOT{TaEap)gi7Q5mBuBE_xdusxl-(=ns`kDz0zIp8bsBue082&sx z-u{RFDU*6GgJJ)US0Q|CkqDa>qLriJ>56}}ZY%HYYFY~K2Hxo`LbH6K1ph#mUMJNA zQw!Yo<2mR2t$0Wpg^dGyd@6gU4i&Hj|B5|zs%iQhF~;FEcJz#fzBRs9@wq2$y(z6j zs{Kk#KW6n5XqRf@#$Q}sLvbPQ?TU}}5Xk#eC3;iCEFXMnu{3*H`3xAxYn}Q%-)z3G zEbve*DLGFO9x=u<0# zhT==Yt;{6j1F#Z!)BcfCtJs{yYs_jMd-S*#^S{=W{Gm%ZDAV+NFgT&;lxjzX`kJ>{ zf-ezf7eve?L1x>06op%>X%6&dC$dXF1KKgIHRg}@eB-mFkL3be}*!OVHfk&|9B~&6ripyF8J4g_Nr=*UIzw35% zK(}yCU3f*4{dzh?5`#j_<;&M3%4ByvGyxSezJMdn9?T%c)@pCYoJkHij@!&eQspZD zM#a9&l|${?J+M8h2)8N*YS&gYU{`Q_#pZZEm1H1;e?Dz{nP*e$&C4qPtGY-uEp?!f zpU-?ttdNi!8ik&^lx=hUxGJdvXl3P18a8#VV&V06-S})`^Yn7vsL{QrD?WJ~b#=&B zpKR8pqB?10l44BQ_E@g6v9jao@^LLO{Nu?d&{h8d2I*kLysl^dTs4+Tum_OjoPq~B zqjR=YmtlxU0<4%s4+TbZ2@3vfCHH->IY=yte*^o-a%1UI4_0kt{&ElYnSAOyarFQW zk-80&IautaHWp3rmoDvKiDi-o?xi1H`+wIAr>=o>H(yg;h@xS{}exO!x-kTI{ zl!iB;z=3ai6ez_Njqs}>*_y^o7jwoHu%1oiBGd?JZQrhYwC(G~jsl+zHUcKN6R_Xb zNHXd2OSQruw{EW(TS~b6Y?sTD@GEQSUIgP#)VIQxvgMN76l)^$Gjti~;YF6vuzA=7 zvmH*YeR5kV%PqiTT#GCwMYeQzUC!5)WZl`~RaPjLbo~a_2kI%CVT~MY(V|jEtprt zP91`-TFLoD0nZg$PxQRBP-h=jV_*U%Wm7(7>tuB?I+^U6Pkh+Z9yA@KQDgieNw2jyRzumb?=uOiH)cCcf zSKGu$?XITS#MG9qu2wR%)#LcYteemcW~%~hcdVC@TSt}rezmPi^4eZ5Vx!cJYJ)G* zEL&K|NF4yCTSrZI85qD|QTQpRMQo+`VxP})?rN3xOSlzmCFS-yaBb6K@i%BZUwaEd z-D~sTC2gM0rSssfWF$BC{mkZF!3OXlfu9l0e``jvu)7_xDsx4!W7(#CVz7)U*a&Ll4x37rwYx2g2NL&viHEUk z%$r|!E^hmNW#nJTAPN6O+cN5`__tQtt}z$kyVdi*f{GO8y6vZSSY7*?gLRXKuPun+ z<|Z`1g2fgT1H`&FV9#Oa)D&g^-CH-QF2Qrl(y)xF%?o7v0#M`amNDSHSMkB>cdMG_ZyBvf zF|v*4yKk>m35HMWdW;tqA~uA8tM zDt}uynPT%~Y8_pD2x;A4XKKLeX!|}1d?BT|Z;W2VHjJ4l@q(f=S(AxeH>lh;iGD zmM%c4`qlQ`PGk8Tg;%zQgRu9vv63B&rOEeJ6@c%WbCkL_jkmnw;QX(DyAT9?RHKbb z#Q24I-nr zYkU&S0TV{VFtwg1GdE@Vr?;&}vvOjzjxMKXYlD?$(_f?cpX*rHeA&|+rRrtXrXt>| znkwglq06>$uF=$8-?ssxCp=V@Fo7MfwaK_%5Agmj0XF)I1_rp!Wq1wg_A-VxU08En za4W10L-W`Gs;QpVmQmW%^g*UJ3NZjs?>}KswGG!zdYM-3ejWu3#bA-k+BI$&dBP|I zYD|1dNYnuDuJ=xMjZ35g;M+))B3s93q%v(nEMh0jY}dalQHBD56Cg9y`e|_k@U(JK z*{VS}Ep@439n<1@3GfGMr2`t!pxG$#nYYA4^hf?mUifvsxN$QQpPI*{2M zgHi?W2fTMcil$h~Sj-1N078ueBKiSi5T+_uu&h-lw0R}`yIH5E+p}6S(h(XQJ;QVV zdYH?h)@|TA>PxZZY9JoRTox~+G|J&8mDUyB;!R;T&Oj;(+#m`X^>kHr^V7;T+~2$h zkW0MK`x_)kC~2d46ckzTDFj|;8Ujg)nQ7bpg}uQ;!)^BNMSd(=U^{1c;7JMp^FtC} z@>svuOk%|Drx{Y=i~MUg%h8GM(qHKLOxrlkh;YOhp=%J;W>wS_Wled)|46#(xGJ8n zjUpf*Aky8^9nwfjBi$k0-E~z!y1To(n~Q>UcXy|B-+lM{d;gldpF4TZGqW>i&paoO z^o!$etXc0hjPMK4)dNfS=Y6yB>CiAF^O{u?E*xNYcj7FA%BDV}u++7kq`82;P8`Cqy>g;qH9qae_PTFez*+#R zrO8wc+s^_%;eOQ~)j;!BwGmP@jej2na&=Araafye!1UH-vBEM5oh?gD|It{ztxh0N z$QfY~6L}pb>oS_6B1_2e)t>f`j=3JY44DdKxY2T~RdZ7$t&aycRP>C3lGgRtt0~I? zLN@Y(Flsn$s)An(ct7cxDjE#mi9E0aK=DF0aESqVUOk7roOjV8U(X*J-pZCU!Ypd; zv-$SN?+yR66~X{s9cYR%z6kar@4eh@2W7?AsxVgyTA=wC>XhK$4hsjR-5~aAh+z!g zjRL%j(ClnCe_F?#!gdh-ycZYc$RV>IJI@ii(ewXsHcxl58#HTs??Nq~Fsb7(B__LJN7SkxfoX8VIxc=f*7cVTH zRo;9&pRc%db8MX^uC(ul8$N0r`0?3pnLPlb_U@<=9+yjlndA1WYPTNguTOHGzx=!j zG*p@oKXJRJEV&zM=wCXf3m#0}NlvVlqm#%9un4#vh);i6?&+#N{Xqx^#pZk9msz5C z&0bi!(Ck#^_Ua+$&TT>{uK^Y7KE3ZICQ{V3$ad2ASY^Ha&5HTjfY_%6>Yu8&zoqm< zQ{lQZ4u$O%;3SMJ7PAOf4FzIC?`?xg17-hN_|)J3bU=TpaJZ7fSRN1*{@hxNNO0U} zO{>+=HEVZfrd}Pm!;Ziu5GpInk73SQvTVw@i1$Z^`;GT{TMRN2bFc-`K7&NYTC>7h zX^khtV{@j?)^bY|ztESLWw#eww`zHw4;^WWZ#E{;elkyf3oy%Kaxq-5aVb6Y)Ld-U zbhr6-fb2KA{6m!E4T?t7yjwp`J~N#0avx;T`uCFIQ?Y$j&+Z}tJe399%487gTC3L@Fn-NyOeOx zYx7V`NQ}Qz`WQXU5(7ufx`%qrH;tG(fAbwb62Y3l0s7e}!Dt4j7)R4)IL;OH;;JaK z@9VZmd5g9o)Jave&a`l$7H8qc z&+GHnsly{a(!CnX#DORA!>0MgzAP*V>%{qOgptLs(RWxWZZg?*NChS{Z*#W+O57VH3~?4|1VE*0Q_B-jtIy6gokQcCN(E~mf*5~5}ENr z{d`0``cKwTgHEuU?dey8fYK^%S^Vt!r>2wIvGl(zeFvn+9ooIi;eP~Q5jixwZHb>; zo<=b8D*X5;5>ADx?f+p{Ky>fhelW>9lJ8dyWYeR(@HP8L42{gl#BF8WJx$J$A=h0> zJWblP^-$FaB<{mt#yWqee{*f@Qx!;f-NzoAcjUD2vupNKg;T=+PCcAdn)zbRcAG{M znUKAqsL9UpG|!!+O_Gk(zS9AhjuGfkMq9mM9<*1NcL)q^R&YuEllYBzJG;w@_`Yw? zJhHo%2YEdy7Tyy6q>Z_Gm{Y9Def_6>-G{;u%>d&pQZRQD@M4Mf*X$noQ>1d@F0{;moi%gWeQg)Tw`YSs{=zbBLNKPg^nlO&S^LM1?3b$&dL(9gBzae294uX z&rF+J6hl5ybdM=z=fmlktp#lcio}w-!dIPFmWoV!?(_xKzkQc!GJ0A+(*`=dmkem9 zYM3VQv$K?Jqz^{dxpUz^XUs*oGvLi~2_}tySyxl&ADUsY`?B*U(yJn4S~)A3s`pUX zQxo;KWZp_kp;fIIq!p{|Nnz#YQ(B`}>(`E(_CUkcbV_I}mG?$wC()PO?o1~8Yu^gg z^YHcwYesx84Pq{tVcPA6*-tcU&T|K!VlNArgYf!2IhFqveaZdOFY~Ay`@K)Wtc+-z z=Qb?eu!G*g^~VM+M8eF1 z(cG}L9AtfbaSU7y(tgZISRS-z(CA}XVl^{Qtze9rtg^?a{waYrBNg`ktx(5g7xY6f zKZaWaE4Sqz679>rr{HG&8jq_;QQSNGQlyu3ZoS$CsdOIcHD39EiKOV^QI7WsmiR=6 zr%M(g`Ja-;OJvdytOX78UD$q3>3am(cg&G1+$Hd>*@g>@Hmt_H(GGxdx@`M+3o6|e zq&9{pFT z7b|M&j8#2NUB{i(sM>RS7>A_>5BvKK%bxr@Jp4o<{Ecgd`&3pq%B`cr>O4)g4K7o$ z_VtHi6=F!*Jj*fC)kx}6z zZLz$ddGPX2p8TM~wa&B8Miim*hqT)N=w&wW3|KTXRiwXB4n`Go>@V!e!4TupPrF=Q zNWkH~eAZlDq(Aq-$S?A$euvnaT_+{y7*h7>%rQf@MYeI-bVr}X5wFZUzoN%1p-bH( zvwl_T&^*y0xWZ11S8sNi8(~iP-e5Lek^d<7HETsX?35>E?@Ze+*(290r+AKcrD#|| zqPj!VE|^Z@m+W?b6CP^9U)Pf%T9nG+ew%rB)&4V>K|1!g;`p;GS>}Z~_f2~3QUpeU zJJf^4Hmu0M0No&VnGZSxP zKAzzaWD`e!i>t)!H{lPdx$1Y_!=%%U?3go-*nGJZbV3}{Z zY$DR^Zr`NwNN%lFbWCZd;(4q7*05F9UBvN2Xt1zrF|+b&CJV{QtsCFms+oOMHg0qc z86h#{c!Fp1Uc%9s$Af8p=vi>GL%F9Q0l&J1`#6Bm{n+&cQs6*OgX8^0Ug#Hnae!=G zm=ZPF6>yyWAR@eX9t1?cm-MTy^nsDJ(lHQf#;-K$8~sfT{IQf-tkWy7 zNjw@qgcg)$+s>R&m<;u$B*nWtOPo18gz(=V;HYa^H&lpuD`z>gl}d>!LV_6pF{5@! z6ZHHq5Dk$7)`I}0G+_1_(o+nK|L^X&MkKj~j4+akMrc7y-TT{^zsl!&a>z?N_C{U} zvKhz&A-LY<^}l8$;l0U^e$FSOkXcboZX64Bjl+V@CVBVf&3mu=TkzfY~dGgoBrpNdp*ByFi z^L1T5UjlRB#vZ(@{QwOD+!cN#F!wiw?5k^(TH@->eoB2T=qIe#bKcRybr$dH)RPRv zl@0&H#1(QAaF4Tms~U-7g_k%O<~YNNFQ(yHVcDz(UBHWCKhh#a=rgjLHQ#XldC)Os5_ni z*hW5*9$06A6SCxuNzf(f47~Qew^3}#wz&~1P0K@2*iPj}u!4or)^OojhbUCxQWghZ zbJREMp_qdqGHg;lV2W~R|4B#>c}vcYH2U-)A}Dvy4nXg>2ceJ~l1q_upzb|o4Z#c8 zk%t_R8x%TWZlPQzNfWe zIyZ9a=Uh_Tajh=orV-x6?WsstJ}{KH`-tcExclX1F}?Af84^{x-4ZrLno4$3f{sY4bTN zkXJ~S$2ubB%GvTei(BqFg8&jjz)jIR(5lr63!7oFDfv+&=3@?*=C0Yfb$S9B=A_=F zRSp6OPODhHw69^bJ!?jtW+mU&P|xy}5WE8BcGf8nj!6eZj>^5g64Jj&_Ez&?`*H{T zr6e2+JE|b;GD6YbuP_n7g2Y}yhiwQ2CGKVZb*xMFU?A^@I6J&G4@lu0k`81=E`Ixf zmw2BJ5y=If#wu8&q1Dr1$f03zfR^!v0057AT}c2hly&c9I3VMaq<%a3#vj7AdfSZ+Jmxgw=wqcITYTr8_er{flt;$zFn)$;l>x9^D)tK|-b zvb2+VP*;Cv$MLVLolEd9xLs|O>R+8+FlQkf47ZYZ5Rl45aj6f{}D-=nv7Gs1`E^dCx9 zz9)9mV7cWrzN?mhxNFy0vhmOy*>~T7gu0`wz0Uf)j>3VmSngOHcs ze80=`MMS2RQd&lASSnyjSdLJL(nbX|K={D$4snhwK@E=6p7fMGSZ;7RtfzU}81XcW zn_Cv#<>^TkNGxH>{us||%->eQ>wN!w%r84NESXzSVJXrpamP+#6#dxKOJLMSKg zQC&s9f?=b=pUH#5OQJ)N-uDnP0u(XA)4ZB@|<8@COPm-W{{&KT7Q@P0W-0LXcx^S(y z!%j_35B<#Rh58Rfk_E}6vNZ;dqwzNQbLH-B+lO}OZm<3R%}ATkEOA(};ce^ii~MVv zo@FOYQ2!OKKiY-?5~G;tk76~ftfVX6^3BP8K_TRVRk+|E($mJ}JI2{x!2`SrYPzhR ze`ir(6)!&+^|-5|U=yzt#|C*^MQFV{)wiz@z#x5P78zq@`;gM1Ss&41&w!iP0=if;ti49#5#YN?ccm?N|A^FqKsbY?<)q1> z!W*T&d*M8FVE)G8f~FFMIWTVp!v7<}5kB#3@>Wm(P&Uy@dCP$ZYsJc1cF z84n6y7j9_YtRV2Kstchl*9cDpl%b;+aoxpFy&u6>aC4v|szdP6e=xMJW@0$IEok|S z(>|d-kzc7_*C~gQ!gGnW=h8x zb3jEPx5u6l3{3u~8!!Eda1pQ4a8f_4rfTt)ODNcycJg?oM^{==^aM1U_m=*#fTy3r zc?)liPxTC`@H$Pd;#u`|J*%{QxXpP8w0n)0RmP#XEz#rDZ+(bY$vjcwE=K!Bm7$xl z-`gHKPAhxD0o}6V(q>sG7~RTo1AS98PDWqS`NN|5ruzS95%jgVvn?%{b%bsK-Y#4XDN~Ui(Rw z8N5eKDHaG>2uIUJH=y8s^N|)wZP^oX5nr^?Ju>y+&5EF-hU4d;VEX98x)r{!Hb(H> zxjkAfIFcUAB^`+yl3yzg7F|CVwhAC>r9rjkC^+D6txLoAEp^j8T4Jm@2@GALQJB8$ zeE-}S8EgsanC%3mjzLfhsjK8lvL7kEy07VTBM-R>QU;-Iqn*aEvq4QN`R|#OTQs=- zHzU@P=Z8^7pM*GsAIbHscWH1IBs@IW*e?Er75RYNMcS9VKd!#}5*rtcz0pG?ACx>{ zZ9y)1YtA~C2uSX7#oIC?qk*?uwsyLa;8;JNh;6_q_}!Zj%9vwW&A(jRY&aiFRH8Nm zE37#;$_Y;2U*$)$@=TcIPY5i`o*nqk5NhdszBHR7XFB%f9_kFR<3?IuuAz#K*B~3k z@Q=+q@6KZL6fEJfcn|XASF+YFc|+@hhF_~rWueE+2pd1aE19#tfP+7K zxul#pd*6+E|K{TC;}7vIngJ5L?|pcpjo$G!M9V|CRa-)HPW&MxcA|MS&LoWthHqxg z*Mg2g^z6}xz!kxK($~!UxC^1mqVAdTA~}m4a)i>q5vqsG=NDLzQI*MkcX25^=69Kih3q zm1=7LS;S%F%Z|;Sni}V_I^!P_pPrx_b9PD{sE9gc!marWW|Iyz$ z2DWD(r^oA`PN7bV5Eq8of7uUMzy$?_^`D_Lf|F_EuVs3tgh_6Q+~{5# z-mGo1s$bXoFxa6ji6;<6c_L67<-BO4^&;u)~djFr>9HjkV5{C)gl z&G1#%ZXV$tlQY3kXQ@8kNZx=Ddm^z#l0buGmnPFgg09g4p@#qSPwjrCZ4rNR)ZXS7 zk;^FH{o=|0yte*6up*gxE2-OIpNEu81-%LUZjE0`u)LGfwV6Dj46c^qc)sWqzmOcF0QW+gC_c5jG=PTtgwu0HP1`gS+ z9u+=hBI~pyh4pk*3IEoHyY~f)Q;>H^Dv1casUy)H(OpL5`c)J(jOS^4udB|?N=wP& zL#|$u$&iR9(rjOmX0{hOExz zvaE7$xY<-z^~d-gf$oe4!U!Z-XrS>r=2kDvVM(%<#t z#jMQrV^Q;@vaoW+f+Eq~9hKlqPyI{NAd}by-4$rF3gr=GlH>#<%84^*6`_vtWd>?= z#J(1k15Dyf(Qjt^)U~snC%gQbK+UOch@K{gySw}U;_=8SpY+1LZ8t=_ViY+gh zq-Tm=ogI}N?Tnje|5CK~*5RK~HV4k9a!WgMQ3|b{-8x@!#hNa~R1XzW=bg0QyrSG3 zubK+VBUIaS^!t3yup!-^N_srylA1(!mr#}*WBBH9d3}5u$i9ND^E}Qo&i#L2ibqz$ zr_YvZQI>pZzu~yD+lbx8_?_PnnW6Go?;ys$Z6ghq0-AEX{cQ;Eof=~IP`b4~Oaxx>S;g{h{NgV25qin# zzYe>zdjj$x>U75s>qi!_d5i}iC)n`j%9>Zip_^}n+KtBQkp%ugk-I-1LV)$uCIvlG zj`XUxdpPd|>*hL_&h9u@DZ}U1&EYD`BcD=q1`+vt$$Tld*fI6u5<=;GpU6s*u($Zm z#^Wl$-oYB+|NP7E~Hdt=MM&4 zgGkODWO4l3Iv_>SN_!^LKH=U~RvWF?uRC#$dR<#r#GLilyNo?ViF|A4e8)`vf^i-D zep>H#Gc9=+gM-|$R3*xiv<0ik3b2L9G5uJn2545t{0vxS1l9zr5936 zf+h6ZXTe$M2V&1|H5;3_r^&ChURS!{l(WOwnHS;RRhKrho~m`{6OM?UWj=a0V`6V= zmiA|_u)AlW(7*3*DOT%QwSV3WnFcKrlhTH69yvV3F_rimH$3WY1-F31<|su8_;wu< z*bR8mI78Vxvh)1w865d`~X2!Wg}0BDUG{F6dt?&iJea3~CYXzhlaZ z>s)o7UmE=Vo+$Xr>SQ0w*kPqL^Hd;kb0FAs4Lqu3*WsA;?eVG@8mC0Hu(lMT%0w(U zN!Ns-bGupsMIXRTHNhOboQu!Eb42iU(CT!fZq#4#w3I(rn@NI$_lldyvFE8yXZjiP z0fQMeiC=mtn9X$$m!rRw7dv2_k3TF4J$=dxBEIbOqoIFtpCNb2u=obuRcZb!>KSXY zmenUswd0W{l9}PZjU1#jxa@Fvn#VJ1c>U)x$LHr-yWWgY`=e0$@@7Wa&XdQV7IxA; zb|=iA%JPb#8C2V;3F1+?2dN9u^fuhBUcOFAx;m~O4cCiQGrhLv^aI8C3dxw?g~i1V zwVp1z6SBe;ziHOwka?FGhe0sl5L!m)@YYAA4gP{V3+aoL%{D!36xQCmdZ(4DCo9b+M#W^`lm!)E?y-!Lt$*_(?YD5Tcio%ch zXaCOAEY+!T2W^nZUg=2$o6EqX|AJx`1?(ey`SnaH6630i-a66Np^LPj_2SNQc;nYU zXa3I_ytF0@D<2k*^y{uV7RMjNFJ%K;>4OC>n2|WQ)`?j|R;LH|^;xW>c_UkRgKZVl z%CIP$(GPLCedaerU3IyKMM4Mo4wH(e>*mo6)Nj?6`qD9#zIfhewyx}XvsrC3FD8)w z3Mihr(<8x*+OI)KycS&bU2zXU_cv@(Hq?VDVvD2bG*GMOuvF6pF5W&lSDPv@cQR?a!eVYlekm+}d=UdUnk0)=(i}f=}b_d8}gm zIbU4Z9!sFOyxTqXZRvg~{Bo#D^-5L)EQWbDpNwR%2cCjN;;*WP+%IYVg2Kknl0W{; z@e~et5qR>f);q7MrX!Ln20!&&Z^-tiAB5Gr#+;Ov=Nq5I=)$VHE-P+|#b08k$FAla zI2MQG$4%((G|yG_-92Bld^$FIM&X4>KIs?^9#88_`HdNnd8l9UlKg##=GMW#9C+pL zI(+@W-~2*BdoS}XWJ1MBbF?5{EJL(-iUQ+OXx(xL*+Y7&oGL6U4PR3(S}qYo6J%NL z>N=ID>r{_cPxNT5+3>VjDZ?5KO#B0LoTN*t#oDYGy7eTTXKTx|J4d1uxYdle=p-IV zBk)M2_aU!P{bQRxq#f0ak99^sdfeR|`-3MaS?q>>{6#a-g;De6@Z-1f7wSjS$?vhv zV~2K{myZFK?!3JO*^H}q16Ic$4HoP#^A4LZdl~J*css`wF!tS4M3pd3+_3vKBC4rW z8zpW#JXRa_*uHyZJ*9iUUtYmlCA-Gy5&!vDe>HARDEVbLqR^zUjWwOrhhyGH5GzJ| zQqVu;&|(Iq@8DZ7QKGe)hkHV4Li^yLv{!m*(lRoOcG}WNx=Kqio;|78Ne#ZcAmv-_ zl^}aL1wA41MRwZj>jl%)snP2JQ;)|WkZ~XH9sebJ%TUKYbu?-F$v~jpqg63|JNl+; zg(u}xk3xQ>#I2JElW0`5#I4u5@&3t${otYp@pO-Bq{sWdqJCL{^@j3(h481TC_Ewh z>Z;#tuT@e#>S@Ih={itXc@`gZBX!0j{fwDWqmzj=w~9T1!MpUM)2{9syWrXGA_o7p zm9edp-z!53{z5W%A(u%;tTny|KV)z93uJ>$mqK7k=qTTDkXTl^9letrlF_6>7#qUZ z%*+DA+v`u`3EKDSGrMt1FQr_O5LcoJex-3P@0BOqAYH7QW-S>E5PIJjGqv6CS?ze$ zRb*Ey2#(7f8frJ~+q`<=V|;OEQSx1xo*)~GJG?kn?BD-AqwuwRlp#>O923_ufQW6^ z$Cy>XqHq^4Z*;S((|MWt)`^hU^daLmJ%Q+4wy6#5lYLx~Lcx7{7GtHficS`ZoVPrf_-E@c(v#_(I;h?uW(cC3s`oa=-H>>oI`P zJ?I5hAl(N0XFC~z2jkGS<@ZgNkheAqkjwbG$Nlqepbrhm_JQ>R{sZfb&*vo%LW4!MMm!FLmibMj#ebeKa~PA=xT>8w zpUuVFnl;pZP+ItsIY(NL({HH24mAK`1Gp(#G)2?9*;3KZYd>I(*AwEZU;8m(w<{1> z;62&;I8v7+z@5wt3w~Rj4TF$ff`4Q;Ei z*s??nmWIwO?F7vOrt#>KhrF=G4&t3E0%_wOyM#2?sCEC1>{orlkzGWirO35&6LVsgesaI;8bv~kU9m1(X= zM4Gslc1XkGFoUlzv~&vdXJ^_$Is}TRy8SX?*;i1>Nb2H!sI*k}HGl~*90%r@MIzpJ z4*|bMIGvULJv$_cmP0)fV>1r(MV~Zhu#Q?Ijc~Ja$!_YD(*k{4nRVIBna4 zb1xd2-5RlqAm%8P@dKXJyC<`Y6(Jz~WoqCm>iwMH%&HDq7Qjr-;TO+{cm+i;rKpc^ zWRuVeHG6&e?7*%K=Qh0a>)D|;$CUSHvlfhn1mgVOLE^+Cm3tg0N=;yj*S~mn7-*G&~w^JJja53`?T0k>pz554_KZSK&1~FgIAJ!`*_SrpQ%>xgUNyA6=H~q@>L0*Fu z=#DD5dwQz6AT483jO0+=I0Z<7p+4{Hx_AY(>JuC_&fgY;HAnQmnM1#XY75g1mu)|+ zf3Rp&0^44ED55C_+a|2mw-E383(5q8LHCw#4^rQK3GW7{*cfw0;uZra^bFDNG@8Jg zD;D2yix_}oN^51aifWOLu$uG@UW(dFi&pvZ}aG;>0XS3s*wpO7cS= zf*<{!@_Oko>-TsU%M{1^+@x@&E8jv1Y`QM>nEElxubk((nXIi5| zAs;tn_}?;*1HWQrvsEdwRO`{*`N(u#B`oMUSoAgRkTza8w6}~Dh=TlvU!@&Hk7&J< zFk5=Ilzp9Rw!smux6-~RrAAI|`Sm#AKca=PZ}jJGJb5gYifAfvAq@@u8Xt(iT0PL$ zn`y$^e^{S#FQTI54lhV#>M%XNb+aQNAI$Tjk=%&UK#pJ%+N#{N9GKeCm4q6+^=@$I zfFck!R3zaGY(&mQ&6d7lPr~IBnXCKo&#g$MIoY7+e7;?yoP8oR`I!v=3hmK)zNAESRkm-@auw4-CG!9@*yOW-gIHYLW* zFwsFZ0+`dRUT(4h=~7llH1kYS_Ey*+HjY_UAri`uPXKp*dJ!9D5UW?oz9jg%OHyQkUf|n`i}I zVH}mG>yYP-1hL&*XMO=rLya$T8nEX5=9p}$^|)1f!I3NIVso4MD)`ru_$G4+-$C5G=qP&4b(z{!|&&|KG(XRATfFHCy1qP!m) zpiIy5AISMQQC(0mR}#8EGSOp#bD}QRIMfnsGNJZ@>jy5lPQ)*!@Um25M~7-VrU0YX zID6W|HWaE7zrgTvaz6+@k%7}Cka!pq9BOJS{b~4!Onk~yVa2mUvQBgcS6ZlKeEolN zo66O{gyIy%HtcwU4Ee#W<)8?ndF{#tFQMw@T+GqW4ng!B+z2?}@WNlE#-;$3Tp-~B z?2`~HmCFh{p!?g&t~Dj3sy1(+>2pS+Y6@Od(NQP~JZ|K}Itu5DmS%eKqL}9J5TKEI z*=Jz-OX?%IheUd9ZV#|hZLyM{f?A*+SrN^@nk4lNg*;902>{U2-^;H^9lDb3RQ4=x+1Kpi1U-_J@1zLfRW7G7^CuW@ds<$?_5A1W;hM zd8ygq_h{vbHN+!ekEu2HvmVy1_r?wx0o`2*-O4TPj(=NJKss`z5g#K!0lB}5B0UKjDl*w zg}&$n1(bt(^=X=}_bw#;q|7f?o2YfE7E~^Sx#f9}-orYg)w02x*|L=U44H6HXPj3W zBVZBvGva=*`?v~ol(SoPCRe*)#!p^8I}nq!Z-rdrK;Jh;Bv2^Jd{}S9^L-gBa6r8E zy_tWA1uEHf8yY3c{x+_)5MMzXML$G>gWKk*ZTeMw3*UMN!h3ltwFaMNnznzca2M>Y zo1VN~JSVW+JvwvC0KykGB#Pes>;T`oZ08KZwN4MchGGvgeO;c0^{5ed01EbG?QW#3%+?m7BN$SQG*Iz4lqfxu>S(K=zFZe2#R?8&^i@3 zy`(I4|M#~G6t28$7ooCM@}v6*ypX;Xb2v;Gxo_T zEDRpjnUtt|4=}(GZ;r6!Y-zX~yC&L7}#p zk&89ob!IZQpK7-vfZ|_`-))KXL9L$qiHQLU0h9|eky8<}t2;_STvkle$+JNUEt^iP zY1fsm>?k%*tw8Pm`ke~8EY1&6PLYAZ6)x6g&S$Eq$NEZZTp;F{#Z@QD;?yc>VU03E3*Vd*OdTRwAg z2yxJXzbfcQ49(#j+~V=AFQLSGf&THAcBVQftv4m}ElhXFnD4XjzjNJAkHYxijOrTW ze5uFj@pPkMOw3mQEFyQarq@m1FPs+u*>cZAP=_gq-UXQ)au~pneIJeS2%7ekxZwlv zkJ2j)=p;k<2Wo`_6^EAJ%lH>8?C9v{4K9^!+c@_QDKGuncSI0v{KtvL5a-v#ZYC$+ zY8b)pPx;_t9hQqb*-;Wk{^O`HSQVxCq>&UrH0crsUL;`s=Scn+=T8@gS%7lSB}k0% z<=GDnFgr+LTicaVc-9=8ct%&B`+b&Kyoecm)N6D%w(3Ze|7HvNwOEb>gHszNVTj73 zA7UjV3vL4dj+4+t(=F&btGK*`HyFg)-+tCN4~gkohUSfb7qXgYjMgFs3Kw3T<_7%= ztQ6Lg(Uicip@r|85N_LsN?BxX+*ezr@XY+kWBvTw&aJPG!X|VLVtM!Lw2ras@Y|in zQ#EBxPMYRPTtwcy%(Ld`MA0zLuY1;dNK*uyycpe}Xx$4*{h?Gj&QYF9`0$;7GJrhoaQIyt>B9sQ9ACX@YVJFAy%3;IIQ@_Z z6EHhXFw*LHuE|NX_7vKHjvT1J6PE_-!3YrDIaMug4{sqF0nR zW{+Pv#Tk1c+QXf71rKy>hh3pS-K_Gi69!m+FE*?fvN(c~bM+k%!)P=Es}Z!x+U|YfQX~0iXdXQ2Zffxw2>OsZyQTbKyVqz|2_Mw1QZlB@h%jMMQto8|e&-G>90=4yB#2xcim3q!4EKdrqiiXJ&P2{YPG|I_Gac&6ZLrcq_%;VL^pvUQv3Ibekh; z*Xp&wSE2YB^2ovMK~A&W6JzI+5(@l@Fw>m||0c4cfer6DBBs}p&Iy*s7GQ5dUD1On z?SjVdBm=1E-0MC7g`6VT=cz(p({(0iZ;Ey$KWsyO$tlJBiv0j^+hQl1*QaRcvvJAK`)0&4LiMV2)B3%nhn8ybrEe=lL<|a>^(DI`gfo%);in7wsm5wIgG|jsXH_KI#r=LNL+M74&}8fkzm6H5s2p>VRFzC-!7e$ z?1NFp{4bdFiNyR&&&dk8+=j#ef_K)lvFOzb)*LJK&xxjpJk5g~+`+f53*C@LY5saG zNph_q)}yH-c{pHJZO#rRNwt_n=N^OuUvl`81Ai|6tf?C7xu8V?%+4Hl8@&6kTlSyE zg#H;a#}ggZ`~a-IUyf{1L5*HEI!mK9zIxW24i~-Ji?p8gsAfzWUmEJMDIKt8C7k6+ z?2-IXn+gXjFI}jlbkVx6)(Dx7Mg?YNO_V|1Ww?8^Lvm*-n@rhT3_)u+t4$%sZ41+yckl zJS1C&07I2TenP!x?MTsnQ`VUG2XqX0G)B##*noaTMMnWwvaGKwG0uD&P}^#rmY?r| zpr*KoH~%FA>_31y5`ENkq}e4JSI31MohxgC6rT-f#lwdhT5xLQ$v2@r&)-OXwF@Hq zX@>>QMEzP?@S^2j?sP3NIH4rJCq+HHh7DV*d;S0`e8oK?K{ab$W#agZ7v{;(aGR3R zr{l*Sv^N@WO_WX+1&CF4Q>xf)C80(EfBJ|Q;JP6{eyhp5($4bOkDP!5Sg73vTcy-p zI{Z)kDH&PwUGsAB?s@UnNX;vb&+}&M9xA7Wmdur%_#{A3UiaGF->HfcKG<+cQ>+nx zDX!vcCc@!C{Nh|qnt4-A^(KZE_+4t4pJ3bf4q$=Zf z=aO4_iu!k#Mqd4nZ%C{Xw?c{(RlugPtfHJ0&DyCphew-Pv@VH8pN*XP8Ck*R{f}k} zA{nssknS+xee3Bo>?v=g`{l6)x9tfL&WtsbomwAdu zxbd}0O8ATqousANNzbTP?SW$T`?tboY0<9^vV3&Im|$YFW|5T+Kv zPf5`OBMKJIo+_4ks!l8@=qz}_qmh(FIfW`yB@PvejLL(%hp#SSB>^q9RQ0=?d@!zy zpN$!oKxBSBNi&cqaV)U}*^W^zc+481v}IPZ;&Y?Fm;s}1Tstm8wlnx4DqFYfrY?d7 z)Dy6DG09;K<5zIvUq}?5g5~8Yi*}fRm|{) z;1VAbEs_O@>eS0@CHe_eW@!M^F!<%u-@#@<7}6RckI0B9UhB~4DfIRxMBA*1uhL}w zD9hyR;h6irxng{>eo#9zG_FafDfZ(MWb(4NIp&q<7wZ?~1|V;DAdZ_zeKUVxb4$(6X8p`~+MTMwi<6 zwB=^jbe0}9B$4BsKAr^K86knDn!&$QPEQU)Xe&x!<>r?oCyT8+ z<@iBMx}pJTn>5DEM!;;hP099!h-u(LD&GW*afOt|nddjm=AVfTE%^9^Pc`fQXuWvU z0s^h=Ea2AgSPA8T!m{R|LgRm-t7;#9yl83!(PZAP?^kn%C(hLhx4+!|x8piy{Pn(7of{zPzV7{QfGGGVkAS`8Z3?1J%<1WSlqcx3{9xTO_K4xQvi9fyM3 z6tO2(S;Dona24s|2H`g3HW_<8kZ}`uh&@xt3C+; zbz1poxyDny3_1NfaU!4hf+yL7POS9al=WwTmkv4OpKC7$a(%{SJVscsUGc;s@|3A0 z?U3w=NdXpHX#+s`S6kWbiM0tkia_bF$rH^+_(+S1u9N3v9vRVB$0t^6GXXIWwEjWH zv?QlcDbn1!k|Mu|S{6zaqdgGT0$p_vVj%fDsgi@<; zB-MRbG2;7}ru6NUcsc0rDRf@v0;J*e`vx>lcN-Af1C8**Q8kHPh>a}`BdjLM*5 z%xDr(1LReX=qRZXvG+am3RPMzLhL@;4x=>#OY#RvHdedllTEgGir~6KSEF&WR=!_> z($oMPC4uaOfA<8wRB=2T6O|97pDSuOvvd4Tyfwt8nIp8rIdpDF6qj5kjJdS}W=|P4 z8Lq<@l`G!X37$f|SMupvUNrHC+xefgujJi~8wo+*I~`>nz6`K5j_d2&^@7^+FT3Gp z+#>Mzc;I?+rFyWFUaFMC%h8*9Cpz`rcqx1R!x_PN7ak^x&&*Ku_f3`;K&r3^zx~6 z4C2m8SdLrpVF|*{w}T}Q{nkiMHVtE(C*vVog|*{E&d&C&VXX6!?;PA3hFJeF%m}BK zh>9)ciV$-Cm?F}%GZpo%2lmAD*4sKljHdu=)pPFBah#C?aiOV6eFf%Ym*sr!LVJ{d zhZ*0Kf$Lu6)U}kSyzfJW9mK5}ILgbVYkR@- zp)_8|RD05UQ)ZVsQ+onk_=ux#_BvG7yb%6qFd5e;uSxwLZDCttTP5>yWj(jnlS-i{o=kl*qtbKL=i#TbQ2gZGc5)RY;nlOrR zBFfoO{(GK>>Zb?Sr^VI5;!fQK#k+rp=i)uwtv=&5+20;+@2B}$M3x)rTdqsi<0AgN zc(uK}BOTG!(Xhab-Vt2K(O(dZxT?usHQ~kZYgWM6I7vM0RBa$C+bTGY0t&{z-^xNb zUT3|G44d>b!WU(nShyHw8m*s_mMlJv(2cJ8w}nTc8)kY63fE&~|4tol|I2wbFmkCX z6d}lT8fHLOrR#=YQa(UD3-EeuS5=uBDd}~V5hi@0|{Wmo-p7&M1pMlegR~@5frPBHO zU})68%~~C@gu+pE`Iy?Fd8AQC$)HOc9IQHaJMC6_srs}c6yx0F5&T8jAhC8i-Ywtj zc}Km~M|H4kx%KB#`O&xda&>z~^Ex17*Xttzb1PK$gbgF{q@kO4unSp8n&T4%6}3Pi zo8To|Tm&hR*U~K*_yVSu%zqaayGnXOyKz5BXVxMTAr^J2&)XwmQ`Sx!frY+m6xX@D ziu7?=3FCW(h+Wmei?NSNQhF6@6Y}Z4=SMC6PE((>)$PAc%_nGW?Yw-`^EAu0*dDH> zJb_0BEMo)*TX~jNr_?XHVe0O?MP8(b{|*=9B6q#Dw)<5d6BozN(3w$~=2Htk$u(xL z>T6?bmYz>VOFG50nYtQ#J=@yyEi3iuHe?TbNX913VN*37QsgNSm`wUhVQ5#B2$t)0 zY7*M5XR3FMU#n@0w7V!%xj&YurQe>QGYF4gD{3=O3q_nyvHsQkAsYIkFGX$N^mDQY z(?kEP%@}j}g4#DAimqqPjoGv@pqjgke3r9(QPs#~UMX+!6uc7`Z!4mIYH6T<8?U96 z-X>0zuKZC>KWHhDjC&{D)aZaK985ys9Svg?Oju^9@i?a zu2Q9FPHQ?x)F-ZyQJMJEUTxR<&D&Fmuj>$>o&(hS_&vh&+)#D+G#+4CqdhOKG+Yx; zjiI@JzPF_=w4n65iqsW8{buk&o4=(cROh;c-&Z1V{}81Yr9O8K(U*01x@XAKZy#?& z{pS6PXrB%t@8$!&yg`&J;`iYEX?rUUu+~?qbtRxaSN~ww06ywN{bzA~?fdloP{{|+ zqwg2vQ||TgsGqm?@^!q)$-*LgE>91QlZg7YT;Fe7drlhuyI<#zt{uhN8_Tcb(LS9z ztp6*0vyRW$u)A|K`@M8|78V%4K_8F$P9JQaE*$Io^xrT++jMZ*+e`RO&kcKCA8s4A zzn0GKv7d9h(pz5i0eW#)4cp&KPuEO#H|-wiW7zM$JTz2R$8*q!`r^EsiY;(Ggy-4s z$o^?O%oUZ_TtMF+D!HfUM0VTzOBvVf$gE2f*Gz7$OAYt*yK?_&{k$A7OzgGippVCI z(1)GhRv+~7_&w6K{o(z~=#SIKDE8ZZExiBL>4W`uFAIO)T`cVVwEQbp|L9y{CrpjY zv%&-_Roc+4!Y&)8Kr{N#OIv?8T^8u0tMFD;BB_ju-|h07juTJ6$zNu$_UJMZRMxauvMFr88~CsO4$D*G={NbQ{(ksKMEl-c z4ib<0ett;*>%%p|q-cc79oOIeI$rmPc>MPLC%>02OxLUP_qfbAy&#(X9?J!y+4{}p z|6t;!j-SpCkLPJz-_PaR{-O`QUwpqL{I1>}_IF?O!Qai>i?%=M!0-h5r1d;mwUwQY5`Y- zYDIokIqSPn~$ppAV=sbvvYqlW2H zTbDJgq}Zq2#dFg{aq&(5k4TcjA}l@Z*OI_$IBt0(YpyBtGHj1C&h$StP>T`IyQcbjn@z5Q@)t)cS;IWZi9L+=n*5ES zh@<$Hgu?U+qVaXBLLi;^dpDc89OKenNAUmtX7T)oNP1N`h$=MXystuMQLoukJ>-E8 z5W12oF-;8(9xeLWm!!U*j3=7ks>mI=^&s7tM#pbu22Cm5)ay&x)r$PD8K;+DXnH~M zxzvzka8n3d-p+Ixn?t*tgt+D6uGon;5hSFwA)gf%)`m{jUq8uT{(dU{?|0^X_rD*A z|IPTnA_RWQ{~z-ABK~j8a{L!L)GU|zn+EHxQTDlzV9OSsH+MOFHQRS0%|HJxtf9>zb@Bcp> z{`Z^ypTeTI`@h`PKF|LT`TH9FXGBc_q>h+G01Xwjr}}CV12hr~CQ(2m;FW~~dTIkm zAbmv+-q=0!ySjy2K_ME*YBcpVB_7BMhPtB?5v2XlbRk+`8c%CO`q4U3LH3H)h{Ofi zD~$!#s7NfOpun`AR#4HXsXgU}fg0}bIVRd@l?Wj#kdC!XjL?kihdX;}x+5!y#0fps z08(gX6sSL@SqHR0?lK~95iK;O4|*-CnRuZopOj0P)FNUi2CZ)`6EuVpn>XTyE_KXI zV9n^D9XweWejpWCi-!LRgWUFDUT1zSCAx_b;JE_KIyr zf{Uz%76ihJtU&(Bg8(BPzDUY)y(GkF>e9*pvq$u`X}5PAXB0y;KkBGi-^W@k5r9R) zB--dw2VT|Ijjm20atIPymeQ1o zLb5ttCMzWZkx-|g1YXt8Z^5fNG|WbFMAD@MUe(V%gjcooXV`22nuL~hemtV@~(7KI@;&x8Qt;qfp0am9NFhY91~jB{zO8V@K#63K+A#cBm$aH(l9?0v%$S8 zBL%Dp-x}5qkWH78So|$pi$Hu6N|KEW5GS-e?dw1}**x1@p3&XMsIx!pCP9@w) z{vYSZBl^bJ(6W{^^ttn`NZgb31A8M3LZ76sd@B5N`#(741Dju0UeJjsv2uo@a!>D-3S1R({OMwAm*73KQ2@tE}B;MZrN>*IJ~; z$7~Xcg%_g@nrJM%SlO>$Zbf4?uX0dc5q+)qT2xj zTUfMeJBa|U7zatDIfl!)Tm_FMjLX=Z6-7sK$^XSRvEaib(m|#X9M5HKHE?i3x-KsQ z)up#_+l3nb62LC`IQEyd1xnRg6p{Sq} zK!IJp2p|~xg(HPnFw{!uYEElu^{BQ0xcSlhhM52;4E-9I3E;xeiOO2_)_b7CE@K2h z?Am;L^uDwCzLwV7ijEY++!rruw<1t&;+YtlL&j_aSka2;i>1|~;=nO{aoAB#>==r) ztHI%8DC)`+9YJ>aB0yxaD(HP!5q(jlFJ_05$wIMcp~+-b_~HVTp;l5B@0c>QmDp8K zZ6c43%cIjaxov>x;IeBiP;Dk5TM?)>lapJl-tcI?pc6GbnopRV8dvkyR&u!6h0=gH z!xtNiK(+Qo?g`+|Y$o&^)XfCw8D7lTzCfR$s9=9pQtiZTG)~8$p(ubUR8sA8QD00! zkASoy`l9*Bwm`L+XGdI+w5U0P3)v7*X{eP=S|Tvb24qDmqOT?`GCG-nuH56qG8-O)*wX#-yG#}Y}P;H*jt=Nm8 z+Dlh^xpj3sdSAe{0b#p#6;x|qY?x>O*)AIZST-yN84TcTs6}1~L>o3!VXgGw_dJI> zsrG4`0NRG4f_?$rh8L?BHD?{RS64=N)XHqDuH!^^j?QX-P_1pb;9$4Q{^}2^U0ofI zeV;I^eLN;7VFPqhZDm{KuT`V`o%-MSrzC*=HvS_x{zC{Ms{L2P0DtO#Kj80G{%1|g ztg#64dsd{ydwQ#5j;V5Z4syPz&+}W!wNK$sBGe@{xGL5{7IPNO3ZF+RnjP&40V2(P zNg{@Ji&<43O{>wj_bSa!3$gGfEy#%}R5nF8(7^KALe{XMBI?X4jSpd9ddleuh!pVg zO>Iu{U?w5FUh&qHLr?9)Z3+w4jCSnL3Mm>|uJXD13jL9#tG$;|YN*lhBth6&D03vs zDm|wjuWw}pIaI3f)lxL10Pon~B-glwl)Y$_lZ3Fb!`1sta^|NdXR#dL%2}ksP>oJerKd(?G7s7*?JGi1 zqystI6^;2NHA>ne5)q~Vt~#e|s4DCxY8PT?DoIR@E?=8w)Bz^DLgA`Si10{7wMqAMg!SEW9LQzA|MgM-PsV>)^#9v`{P(~A z!>@n)k9r??jR^a;{2xjGa^Cc+@&9F;eA53%{Jl8;o80c-rw0EXmhG)72y`mmImyjD zi%6ZML?~4RU?cV{3#Y^+a<&|dQqRDW7upvZjcU+WyNHHAGU30yNl8|`sEFX|5+WsO zN*y^urwZOgYq$9pde-wnT2bAD5T)Emx}NvKMU3c0z|UD;QH;5!l2@WH3S|}Hy{9b2 z(?tQ1Z z?Lk^!%#5^tjP)bcFJ?Q!ulyxH=&^mtj}{E0hhK7bca`M*-%8?NiZ>ah!k6kzCjHgI zdNwrb{raWh$QK21I{!tjx>bml>W$Fdv;(^uprr$KMCI;BAQo!3A|_^Kat$ncWjQ&L(J**T4$nzAD?-mO6gNB&s#G)9UeA9AwYQ5ZP#|&qg~Ja z^7wV3#XK%7<3fIUKFtE5z-vy*69Eo~0iTxkzz#}!d}a_IjD~w9I`}m1tQ{`T6kCZD zUc)IhTz_6@wmi}7BtUreqCXmvwJ77##g{~>8+RYwe4g(zpE*o@BGFEiu#<0%&wQ#r z5op==oFj$L+e`*p^Yg0Kmjrxly0oW}*P5PZu-41$*LII7_jqxMHbjvVI5_bIDR zoN=Swh59h$w>^<^Bkp)L`$Wl&c;mGg?MljRTu7lk(Q@>-iLdrkCvjglQ?fLC8vKyNejlCg zkscq%MGD(kJ83;_Y`fysbm4&g>2R(DCi^b#q;xe5%DK~@DE%;=`n)*(iSG3)B>e3h z(NsQqGf9Z))c<@G?h6}j7)}YU4jx)kz+GOvI3o{t;nRrHe#S^V=dY-32 z+E&s~r?9Z#I#K1t(=G2C{@=+CFs7_WEYq2cSP zKIYd>-$_1kdKw6ae#vC!g>TGw`R+^?(wq4)+)xRJUaywNIqHEWU(MUBuTRxpiH~-E zJDU4Ot25m5ZQU^zSzX*)x zE~}1;_FYFrG&je#U%R8DUris8(!RBbl74);U8s}rXbe0$G+KHwZo|Hv`2yelIMDh972Ve$eud#!-^p@La(iCz z?8n!i*v^Wmc^=txh_%$LPHgsKDFkLe2qTeiD-waS=G^9>ew??T|sxJ(@6pZiG>BOu6F;k z67MY?IpEozM75^moFopzoTH{BJs4gB@|Gn90qaRBr{Xr+&d=esX})B zb5^m$d%Hybg;&J1$9bYgDLb|6vRPj`=3Ew?_;<8{jqb2mS4ORD3( zA8#v9TayL&ek~~_UO%mT$3$rk17Gu{UBQVtG=mMeN(S{9fHgs z%CgSOzJl=bH6z+~df1+h4_kFm`SagTd&v7?U%uKAEnnwbD;LRX*E0&@$)EmiueOrV zNUeQmd9DsKmsf3;1!l$lq%yp$?XFCl>zunC0$tsxWy)6HS(X}g(CN%BUGE+aa9>lR zKW&(*1KZbR?oT#NtBz=YDb<|{DR-Kwy!-4HtyhJyzXssahTqMW1^MN((uIthyhE1SrNp;et~)BL(D=QQ4uUPSP5c!S0`k3F;T{ zzaQp+{gM1T|C4NQHH5E;kivWEz*%TBS&E-^Gk zzU3lgJJVDWM??RMC>#0e5D`{TMDAEZ)k=U|XEZ7+}{Gi+WY^$m15JDpOS2x+Up@I|wkjK)nzQPMU<6!$6x-p$_`hEO0DfQoQw}XV{$Iqu82+z+#s7ZF??d>% z0{maHGry>3e#mjBvB8&}zn&L@MWWdeM>4#T)|%#9zqka3$`2ueweCl-TGRCmVE`~V z##^}@Q|s~QepE(=r?egT=n)N|g$C<;KJ}PDq=D=(zg!!$1*dLIOTHb-DPo{qPgFWki)rlM3HPRI`*M1_p3P`v<)}n8 zN-wFJd~QQlhol`+N-HmiI@v%jKs?U+HlH7C79U0c9Bl0d;^!`Hr4b*aXV{GL|w+cgA`>G_Gt+aX3AR| zwDpsi%%aVCo>ICLIU+O9-Sw+GW6!-TbMZP1I)?$z%>8Y~U1}o1nt4Bt*FL$yU;*Wf zbL(6KK@iy~l00vn5FO|#dSP_vgslsK{FEuNIV^0w-lj5ep)w1uQ&|I#uoe->JeZn7u$87Y1rR3&6sgI-&)wMMNG;2 z)-N?RnZu*5eAJp3=Q>^P%|-U!`_PFly*9}~siK3fBGiDaMe5VMt1^{$;8o?b_is7L z7tpLCG+%b3A zyx}gGb31P@Dau$ujI0Rybw~}Uysa7l(8>h4=%9(uw8clh=JJZ3Pd*A@Z9C8XfwdiP zw!j1j+w$+*!~ys=-n=2U&As#lckRe$LM)OUF* zBtDGW5j2Xg{Y;ZZktlyV?kD|Og#m+1vN3AkaI zIBE+u2M(+F8{3JeFW&(==H?=fSf1FuRtYF$>%+M(5avn*%y`C4I~@Cr?8JEk0GNLY zh-6t&^reBAq33N_(ozB=5s-SW+O_jNrw2)>HXSFh&H~Gz0&f#!p`7pK5 zg5#Z2+(zW63IK+d&)Cfmjj;hXI`z%i95(j=mCo(H*yP<#sLT%xm2$sqOUT%r?zX%D zH7z#v1rgMMUjt}*-b}`(fNCrl>AD_IwNbCH?}S&^T|m_?Z3J7Z6m6z(UfAn$x1`$M z)1Ie(>|&A@EW76ooM>YJ6t-xOZS^wHcy-;@ES%Ug+Dnhzx~uM!5}@rCZy)x+aEm0g zZ7&0KI`X@2OF%w}N#kO&Pp^ZN01CbvFVW0da!;2Xo@csjQyoBw%an#`c?*RBOgxu; z;;KWw+iD@*Y6^A`7vB1|sv4-KGYj)oI+|GyfQXm9i`uD+03eqawQbjSz}}Ga`UX>k zQ=Rt?T@L(ty=^d(PLR%o(7Qxe1fU&b2|*yG*uy3!y3$Ab3#><+c&KDM>)$^KNh;^aPN2(fD~Y{tiGOQhskX zju~ZlsJ*W&`!3AXFVOU9KkulptbwLaC;c*rrq^BXZAFX(*GtFkZ?(_>TT61h8SDpu z3xM{rezom*$N=QQ_ouhcuY}o;?OHpHFd+ABM~o3vAD3;dLNk3YvTrETeN`f1dEcZW zABm;mam>d%yq7{i@Fn=iy3(} znRGvW?Wsa=f2oHKzjvxF8)>)G^h>rm+87rgqkOfWba$;CvktoIKHcXE8xWB=Z1Fv4 zK&E4MTg!>mW7<#oY*?IBU7oug+2CBQp_{k$IiWF`$AULgx_gX){L7J(+hk{y!G2g# zPTk9pgSKh7dD`$X9%0^OLE5?xh10pW!;ZPE*ahi>y|;lGL@a}hxx`My0;;poVnP zLiV&RA8JQzO4JbQh-r{My{sRT_;W-wjQJK$RuBUkM0WahDi-@FTO>q%ZVPzXLo2Gs zK1`Sf1+TW1LHB+8GJQLTW-!Fe`}R29&&C)iAsfhf{a`x=M$|-~`|__VEkh_`AdOb;{*k($STSNlrs!>NcXQA%n4^ZPRy5EFWxWhLGgbuAr|7 zk~$BkIej-^JvBhskAf|)=`J_fQ+?c*>EyvBb6+`5n*;`$NRMqNB-vs;Y>5)f-j1*C zt*`~E#M_Ll+firq5EW^d>6F_(fH5no9dG9rcNLR;YXd8c5iR+o?(a();$39Q-{olB z6cmDCTBfUW#lN)sIZXT>Z0MYYY%;d$FJcs7K3nD%4E#>l)c z+rp0M6h8~QE0^MdGBT^~3;Bwh(Utnv%Cxd5w43X}{dEnS*nMPSe-%Id+N}WVZ6;c{ zpA(?B5mS?Pe_F=D8bfTu!L2kowDGa3+&Q+I!c9Xah=Oh)G@ zmEC@T96T7ORXWUr$KQzZ&ik1~Ug0?TcGkpL9C+&I?W3~A?%0B)d#|$FXLn7Bu${6S zWJb=rO;m*R$TxIaT!`rrWm?8=Cf_s?(?`U-pY)w<6(*L5H~nSa*81@7U)3Z+77+Y1 z;{7nFu23ME`Dgc*=b?z3bAI}`*ecYv4RJf|${9!0H(QqGil?o(9e>;8U9Vi2t=HZMYu4Ebe znp3C)nK&aIE;o;PO1B6<^+~M|C{Y*pWBvOs3h_{7KM8HvzB3$3VG~yi6k^E)93kvy zjrs1a_0$~UcJ$3R*@`o7Ko~O%5$Ys+hHZ`lp@GmQY0K>(;O3KO+>>ayv7J{Xg#Xy$ zBdUJy+OpT>K~g!s(RM|URPHxdd$vs`f~4}z)IWhQ5I-gQZb!@<_)t7+NWVGMPBPkk zol4t~;S-ozzC;RpO4V?$+{r2L#g1RF1jH!AUmoAAXdlx}m z`R-y2dpqYJ0oC~R``O=bi~snY_@8sy;y;?gz`yXHpYVIZ|16_nd9C|58aJV>C*1F#?pkIVkbE z9?eWU?jE7_s@U-vYAi2fK2qxAy=(lJC6Lj0uGE9lxTmS+S2znsb znlufSRGp{o_Je3LndNbeQu7Q2nn^nDA6pUpdi=-F$-e%6EdOzf|EOXUe98Z3{Lb<( z`$OGkCQWKB|DkEzG{f1@sIJ`FY-$PE&b#YAA&9tX6uhP+x6%wiiuIOrGFEHL-vDH z43q(8dD|h1v`$(1OQQlvVvShdI5i*;l%_b7Hbj>UxiQRFW|5JW1_#b4I zO_sxXE|P{ChbC<+BKaDaZAbu_{ms@w*$Rjjut00s!*$KVD29CM@p%srk+b(#t2QS_ z7S*HKSY*Et`gPTQ+x~f#(Pd;Y*kz3tbt1KZ|6!zDdm5U;qS&_L?Ti26u>QyND{A1! z`+v{>($!4U{eS%8fB2l=EB+Tvw4`y&V*G1(vp9A{zE$INFz-*$Q^F{VzH%Mt z3a#7fFg1ibm*>S_>-r{ZsI1pTleOuxZqCjahAif?BNs7Gh80hB4$b_eS>g&S8E;K= zMCPObD_@>q*0q?TQ&L zXX{^{7CUAJS=Tj09ZBC(%f&V!VrSGj4W^MTlvSzjsJ@_;xP2?!|G>L zRJRr)tWH-w`_kmOK&&2_L)vCU&|OQcW|iD7UmR?G`bePp+@A4opyemn`VB{C>F?uXU zd!ai4**gmLnD#0nv5IP~8tthL88oe>PZdUB z70vKjg7qrmuEd-)y=wJ92754VtY3`#w_AaC*U%g>% z_VgPlsW#^affR$^UKx^vl7M>BYO|FLMjoN0+I&WQ5qcH#2SG*nifBEL&>`HD@Dyaw zN&;Hg9{mhiMj()$-D|H}&EzQ!$C}|YrFJ8#DG}!+O8Bl?xU#nmx`^QjP)=@kpk~}NM_7tD=?_T zMkwlC-6J_{?nQqigtJ>dbX(>bvr*J`)4F2z&%!sIj# zOcO*$n7~{0!$TtQ#=#+pT8OIPdB9i_h&EuEvQ;TR6T zw;8Rxdowx$-&P5GusY5jb!8TD9qq71`gAzGsXcvAx0r;`U)~6*RsCfj6dXB^BAbnl zkH->R(XJ978ndHw3Z=Gj=^l=Lzolx{Y=#g4F6>SHtd6R?@n zLbZ)HA-Sd$B5jjC9%40k*I0Iru2v~K`qr!=Gal0C9UOlg|5ZNh0{Wr?|4|3@nO?ClD>P7QbEqI!U+6(db$8o;FxdB4tlLJ2Iu-1(<(FMX6MhaYm8q#UF!@Ax<~ni zZ;VkNH)f{*(%*S(<)oXt?J>Lo6u&zW2`U7^?}=e2klt4V2oL=Xdf%wr793`d$&Dv0 zkkPl^LXGSijMuk&nl&f%&3g*=oW3~!2;>kaXjEE?Z-(9r)k^R`#P_oE&jc5p5DXh zagFqzYA5wr9Fe!#_MYp%IY*&Z~}w*4SzRC-K9Cu0&oVW_06Up((Ik1Jo!thzwqcWuT`urTu4~~kN9_<^~C9a_@r_O+vdyj8soj7B-FbB!XLfk9uYUI_SQxiw0%}T;a+yenF@-PvK>2}- zSgDQ=M(C({n8nRW!SBRdfnIkt(hkxI2mA{w4Ze8g<2~p;xaCy>PIh4#-?>;{@)QL6 z?RPd!zeW{$SeqMF=r%w3AQkHQBKY@~nt^}+W+(Gz9DN?e6;A(poG@_zkEMw_Qb!yu z3BUjz_6k4%XFCgUfb0sNSb(F7Br4#j20N2OY{n$7VG-Fm@$4Ga=kdA5IdD?^01~K- zoH}68l-Vf(aPb8_u3enY09%YR+-JUH~%D)>tWpo&f?WIO6ti91NdU+mE~uVoaZ7x-f`TLpVn4FGerDP zQbLqQ+^MVlS(u`G7LK*q$8vvK35nv^*|@lyC7$E>p+t7 zO3sRr@REK$KLOC>tbhnPS@J==$%_pGC3$q2sI};N_@%34Pf)ym%Tw z6wHhBQvzbzW=v(HDy6T*ZCoP`W&j0wV=Q%sA zmqh1`^TA_&LHEpym=Z2Zfa{Fo!3BXkst*opCNVt9ad#TcOct}_l1gOH*?uI(r|<3r zzsPO)X;u`T2^>3(2%w`KK`c<-X@C6~8qp?Om--r25|$xOnZm<> z7^Jy2rbHmk^Fe)$uXulhqmtsDG0R^>XVd9uflwutg44vQehRQUsQT9bbl~Eolow>Gx|M?yBqSME8lsBNWPKknos_D!GwkcFX%Sc~~I zDhR-oTu+Ha+DJi6dem~F0FVhel!z=T6da5K$`Pmm|FTNRo2JT`Y``^Pd+AwPDsKWQ z*-x_o$j)E3=_B+hOHWA|dEn*aQk$|1Z@TpfNDR|kC`u?Ky^#J8Bmln&|M_$DpFhTb zrnuuji>QGw`TvC9i}?T0M4ENk14W;5=!K@o3ORzFe54^eGR;Xgj6Lfu)Re@8DoVZ~ zH`n$g`IZvs<2C*+u+Jiur7r4BO8**K+hz>(%;Vz>ycNfT^K-uscbANe8n z+-Pd1RDeM1p2ff&U~k65pZBCnfhf>6_xIu2xuYy)lI_vEpTZQPKsCG8o}b~Kf&)AD z8#}+IWCSQwx^~Zp$pgYSOQ>@H$XE#rjk{0Mk9xv)_SMzTa*o?-o5tf@Ewb6&lcjLy zsoTf8xecCCqHW)n@>)aZc2A2p&$IcI5^Rp=fvMH;q2rq83t2;f5AA+>0!V1vu*8I5 z!lSf5NV!<rOP@{dv0v=Z&f=CZDIXYQU z-x8)`w1Ft?dp1K}Gxbs4ZfbOK8Og=NDnv->ysIdsPU@UOx14}7zlbTFca5d5bUn(< z%#JGEv+wcl$)z{ml^*H@ujf0&5Na+Z7 z)m>9+XWY;IsCN74R}DE1ORH@v6%cSSP({cfHsmkxZa95|a>U-oGQX>OuDq?q^ zpG2DWezHXYG;O=tjcbWJ8rseTm-f35I=Hmo(kiM509@L45DlIyeE-2}0Ju~%-DSWC z?*v%?pk@}hbl=7XO_ZWaK4s-wSmtf=DQ>h>q> z3jk7k+*3>2b~JFOUiMLUJZjuFD_ns9NL7REu<8Mkn!<6P21u&S1pL{sWbavc?IMm2 z!d<01CiQfzAp6?6Y~8DvYhuai%C-` zsclEV@rYn@=XXR@1`7B#m`Ir#+`7HxcTU%dyI93^e(h;1=Pi98AglLH8gdwhb%>Cd zauz_EVc*E#AHBk%A%VK=Vg#9*Av zOh>2g;4lB4;kNe)yE?gdKS&(msqL{iy{8mOL@7ME3WE-ExZpg{ph7 zgQOCXdSAjYgIBWpxE~ncDjRh>78om8ec#V0>|=pP6$Np-80!M0mRk~18=U0oH~8(* zBf*c+-8fX(&pat7OisV2e|6Zb>EN{Em;G7LK8+oE=U2yz9YedNz)tH(_c}3Z7NpnNgI(LZjXWB zMN^;kg$+ya=^B#-I30T)@?+}L?573SQ(%~}grA-?Q+D|2$;iE#XGEj+{m2;Y1sb&< z`Yk&eRX(quo{Y4c;^B-blB8}AxA2R$?DU6@CtKYkzRy9Z$MZL0Q1vw8G#87X8`RTc z3Jhx6&!s5o0HNkR0^ISdB+EM5B|xFJa5|MFB2_HV(;`;f&b?{Z=HS%6=Pkwv0h_8v zNV~>g(A0i7KkqB=`pG7qj#E{Cz`;oaoN60K4-R0eeTU`iI^r zFTd*e)%y+*jdvZJcDcHnfYnv*ZA9au=xYxp$eil)ZT-z?#iMCf{XBQgbD&l=KIIhK z!c6Jy=r$v4RVV#rDZOA=%f21DfLKo}%L26agV(Lsg=js@dF>$pT-zfef}qy@OvSGv z2dDXdNYx9jRh~T^UV85HSI>ey<(}*uSN-te?vq-%&hJaMSls(Qlc3krE+MZ> z=l9+4F+Kb8obA@ySTuyE#UU<6!jm1?91*J;f8UZ@qHkEp{p7_VB=*I&to!N3X&VAa zY|rOv3l-<-0MD5X>%rOb0L3O3NHQGOTb6fR#X0c#{F|`Yddnt{i>AP3zjIp90E-n} z>Zs#ME8X`Qe{Xoi|MS0J$p82AiGTR}KK|#C|L2kaPxcL8_`gs2eJ}q{%KcrlcxUBn zHU+KNSIrlbm9E*8GVV$8kAoIc9(-yLw2-nqF)~VGSS4Na(-5s7BQ7OPN)j;&NihPm zzROmE$b?iXOB|1oH1+Q6nlFbSgv&j!cCAF-S3Um^YSxlLzyaz>cvnNsoi#V&3~*0D z&AqLXhI$5S9;`VNNr1QOJ(KtW)NJ{Ch#E*`qQ_b%R6r9iTd!(%9kVx64d_F?2dIEr z(TDPOzyf5CEG7Ew(QyHFupS2kXj(L@r#8X?Qp%haM$T zS1NSNr@`5x8F?ZWcK_&s5#*&$Y3vMkLDwS4B9ZV~DbTRO z)r~Jr_7wfwIu2TM9CT_YojX?Z@?={{u|A~xT1rX?cnUHo->w;va-8m{mbYvEqZ~c| zkCjAe!OH(*Pl?T*HIGm$t3>)pvj%l|4D;=7~RK={^|DZa4h57wItG;j2|C{uQ8BhWlv=aRaclF}iGwOj1+Pe}o&({OemZJ|Dy8ojqD z!5nKm(2CIf$-TBHfqcPLoAf;cv!zo8A725NY|_?gY4rR*_=;jZ5BF=D)W$K<>57tS zvjwhJtH6>>kU@R3J(cJ|O_OpF23@E* zMBEcH{iZoklY~xZDN2$(1rKQs#pYPj3_Qq#7qAkc1T}Mxse=%a$yTEGOnO1J9{tj! zu0G_!d%gz;Kq2y;Nk1proUMOIoug0bC`)g^r2t!WM-8c)snH$VQF8Xk`UcZ zXHi5LqNJg8j(&( z=|xbG?uG^FMp{~=ySuw{sfA_d+xPeVGqZDN=gz&)iK%m*Q(k9v8#Z40N5rKPpKsWz z2{Tz_EGcQ&EJWPrn}Blt&F-8HXPGDIFh~Z=Dz;n3r=>*l(f4p+lKf|4$k)aJ423Mr zFE5NF9!ZS^LcCCl*hSHBm0QO||2#|=;*`t9^M72V>gn($_~%mookyGmH_6BE*l8J` zE5LIw1I+Jh1_gmrDAvAAoG?nbX@+#qhI{mgS2d_(e0I>3`rTH7JEt+D?^z@Bz#xTj zE%FDsc<)2#B$?!g2&=YAKdz`pzPqI*3G0Q{-)|(@KZp*34FX#GG)dIxrv<{`4o&yN7p4B)x8UMd^p=jBbJGdtEC3jV^@_a2`nIZpl&*$)d?h-^-UjH@|0 zfJzs8(QB2}mv@(^E6hU z^x36WFGsG^xpy@0i`G@se_sQ6cGo;S*~Gc_R`RFWs%6}|*E15*qAw<^k9p{x z=>!V?T_f9T*tI3@5h+VH{NelqQ4H6wH!oI%(~_Xw1ny%QiOBXyNKA|{K8yX%L1w}= z%dzeG3C@lJ2Xmq;|N5kGaP=Eoz~&Q8TY@~Iw2Y{o?4!k~NtEW}O}qGt=S_2I;jgl# z4z9zeZxdmTXmZ9=Q(sE+3hJv`Zc0BY4wQc7O^d89ojNv&B{}goos9C=aH9S^?b~F+ z;+Hl@nwHDtnf31a(>e9jY^(mlhjXF?{B98=LNfia+#+J>=G`x#pGFOEHNZ{7@j;L*BQcS++*}lN6U1gP*@UHM3THwX_sg<~GpM z(|2C#@c9jGk@DPwWNK&lGcXzd^%727*uE4Q(>T_66fL9V0Q2< znjL<-HnzS?As$I7NQ}2W<+s=-?%d3f6zkQG=S$6{Y)`7zUMp2NPh$cF(b=QTkSiXL z`<@o99p}&5bheoiaZ)o zt&Q%bK&D4`qy03fl;FP$b|k@bzSME?aYytC=JfQt?`S@O1wPOTSmK;+ zd(Uq&r|5Ehm^_Ldczu_tg3I=hvpK>WvVNdia+C8?kl=(`CrKpcIboDw{fLpf>frtl z9$8>&)9TqGZ8MEO@6F=HyT$UmUC^C`1OiT(^ba|09u`qt zC5-WHd%cig3@^x7Un7+aV-uMd!$cTk)2|DjZa$^PJw9aBc(GgZ#|aEEQS)%bmCQ0G zA^RqVwcDNG*YhSd!3$rD=L|&j6PaZSaF>?ciR_cnpBzL~V@YNUc-fj+d6g(*_xS3s z+IcOBj57T3AzPw=i5)ZuUEb`z&KW!B!}Z-K9cO}y+q|WRTt|#!^ZX*$TJLMzYn-3} zV>q`kdinD4lUy+AdD8wk%juNm`+M}BbA*I$PsD%IJkqw)^-tzDP4K^78YCDAE&W6G zc8nhp`O4StFTreqW9*7b_rlrN`CK$lGfC=}UyUxX^bTt)B;=>rS6)&`#~F$S+e#66 z=({iFFcAh-d!*JWv$PSfQ3aUuaeWIpIZ;(I9WwoD8D3pjEmlS#(*GFQ=@f8aFS1ED z(@u=8QY2bdSM$azK+#qJ7yw5_Ym8q%GC)At5s6#+IUuo2Ieb(&nnEhId-4lWBiErmq?B^qbx|#G$`7(NJG` zAwoqua@3tK;(%$q9Oo9TYPlRol_tg8v=I8zppfTH_*R&KwoVN7{{0tu-|gGi>dGKh zZEcHFYV!!qyaEo2*~}8|tOK}6Ob23N`1*@y=b;{IC+z{mBBX`bjTeP)B7$#F;i3XN zlzZYG*D8jDbL%E!6<97b%RMgFv;LlhF~ih2SNpT{yZIfHPyKNc?4-oDx^Wkt+65PE zb|ShvoyZVNTPhQh;)?-|tdBm1=1lCtJ-0t{P&Q6Dz3ulOeNsO5ygiIU&45abXM8!# z3Z&2ToaukfbcT+$T5PUpRRsJM6gmHn^7SlBc$q(d8bUGM>~Cg#xF=z|{HyC;-kqm4 zXyQe$CvsOFqSVxbJRZMa*ugs)q<~)Avo7rb>au$Zbzhq1!xgBLguXMOEB2=KSP`2Q$LFRB#upZEFX?@<_*v^y4!B+j@lWz! z3{!8P74@%Du6MFe7%V7rLK#}lq%vl1+;ZpmI@X@HgN7d5#>3v@`vey5T2B}49I|MH zw|ip4Hr)=6A;W9v`8+?kHC>n8h3AG zcF9uEf{b83*MvzhPM!Ek*0%j=HD7AaQ{9&WkX~XMl8Q#Ag6d!2Ct1(G<3jtSLScVj zBT6#3-kI;h9>9f29|*n(r-Mob!=SG$22botMRk%S)1 zek}nEKs_^&evqTDfRPHp0z|q}s3PMoEGSF$LD0EJ2`F0i7MgX=fCjikq3EAPwGS9) z_mHzpoLrz~Qr zg7L*A^O7qPFFolFS~<-FZbXH6ItPB)y2l%=SE}nA!MI3{MRZE|-wj6HCTT{mp-nz> z#NBo#Q8S$z9*alfv!e6rvRF|0{q@RBl>Tyfempyda z{87IpE}qA+J#t`LEr_!nY2+|&GsxO{VQP+=Te5DlVO*F7(ek(_9KB<;@voPX7_G*k z+Ia7}Hpwg z0K*%~6W2~rD<7Sv@Bg{pKM>o}4#Ayn#`JXf`M+(&%-FntW_Z}RnXoc&ZaVP~HLY4N zw=*#QBfe6t=M|e*j(ne875k%J72ujjgsA@=8p;FVwe~iQ39l$=9p`QofGnnBf0R_% zv>6?)_`xDbzMj}*PiA5zDt(Zhaxf?;`F$a3)i|T3cSh_`U|Wt>WmuEQpxf1q*P35` zYn9_EDN!Bb<{}YAGT37_duUcZ|IXd(yE|0CPw&z70HXR>GOLO;QCeUD!ZRWD;vNe& zFI{4o)+c(f04Y2M34R{ct!1D(C@+6RSE#^xw>qDje%8}zH|?e4e3Rwxcr#(g`_Jh@ znC(1i%H{1D?%QaSIU66%Oz{ekji?!o0i!YVNK!*aXX-7hg~Slt^M3dkS47uns^a?F zmtTjuYt_q6Aeeo9hmt_#TJ%^x%zgvA>x1KCNdR3tLzTmM&VEolOO#iA#Uexkexons zEYLya7=Ji1>B=uJ>)QXQ@W^`u4?7t;sdx~3vR!5>F_r~*d}v%&2A=0mPX3s^GiYB@K8Wk`FH~aPZ@oVpGM)m!KW8lq;%8Mu-q#%i=lMNo^HBWX8 zNG{w=Hu!F{7k=btzi{GJQKK#1C=s_@O*a0S?c=e#HTZmWOX9? z%ONd%SJaGfL5<>nW3pC1_9dxo$3=!|~YU+Y0JD8qAw{2HNeM1}3Syx4y8PCHl z#H;1_%O!Fby1g2oqH^`5);0p+XboSJPo4!#E^;etGQRce*!p&6SPy#a4?K$)2F=FR zTRC@CJ%~#LJ+AD@J$*%UJ$e#_vl!Ew)lSPu{Wm6uf$LR+6URU6?VaE5WF<2jyB_V& zXYOOXpJ@gan-3~z7msPj&JQS@n*rA#t_nyWjyQN&ay>kBao~RYR1Y{8?n-xoUIn-@ zQ$BocyWt%-rrjA}oSzHIE|=`+3O{*X>srt^1*b>?fm+4l_@>86ta&OGkWmlzK(M>y zjlJph)K$RsqiA)FeCR^`3HhOMwua=KLBOYmzHHlg$Et&}9mq!KgJMH-$(ic{I?4sD z@l$F5PW!}OC}?L;6L8U|RmWVA?e~y*ZZixN!3?-z#RKN+4i5tRxT2e4AL^bvEDL9m zBOco70E+~l$c;HEL>6Ij$V|=>jrJ{i?D36j{kgA*LDqB5vxvHy=pirl-=huE`O=jz`_K>)VoA_|~CQ27-Cgzns_gHY4D0Bb`?@GwbZa>$pgP<&hTMR0H(+ znXR>?l5?82Q;3J~3}R^WeI~+JyLG8NG2218G48-@j3IBexKQkFYU= z#{@Y9!awK^%|NAMj#R+PQGkvTU8@$I2wmd4L(uYt2B&O{~)!4 zB({`24rB}l31&e+#g-a-M|l5|%RAP<$SZQ0?E^bHIt&*}H+j0gjEiXsU*Qv~-gR2p zfIyPT`;Is|zdOZhN?|#eS~^%QO4!Q%Akz3 zDAX-sr(rMQwTG5Nr&LQc3$tKj25gzNCPIPwmjp+;am4ZwvnH(&&^#(-PGSyF?|FHb zybsGwS&g>70_nRyCGWy=Nh?MBF|hc_0@Ji-eolRWPh@tZlu@VWStfA%P9?-524ifY z1o^0*(;|Au=Z{pfHe+ZhbYe2Eg>xRLE3BLBV~YP(}i50przNWYSYPq5UB3C+sE zCxZR0?nHqD4@`&DmV_AoeyCI<(>KXss1$K776Qo)(in#Us8oeS(JAvdU^qpkT@L{X zpWt?c!*W>?HnZpf+Y1F9OXm1)Gan7}3@%n>OLw>iC&hflF5r}M|7S(p3d<>%T@0|D z`RcXWGfI@geBRYyHkXkno*yqWC#XM-n6XzX&H><*=fXd(J(w3LFOy}v)R_az)#x~e z<-VBZ@escPg~SPR!!^eBs?hoEvWqO97yw&zlo+>|eMKpQRTK(A(?zHG1Yky4`dALG z;Vz4?;p{W~Gvkq173{*(y;DI{il9RPwhyubS-A)t_u;|w6_ zj2?3uft-4PfgxhJ7e-E@nGUs9L;u(qo6nGG$AZy)2H z9LS=V-+n~(TKP!bUdlQX^C(W-zx_(EI=>Hy@T-gAhn4w=HK3Z5Z}y?FQn#0T$K83{ zAiaw=Xogb+&Qa&R?f1EPX>;)^ju7>Bfo^T8;9$!(aDP8*i!X$0 z>5Wf3pEEO^tUL#rrB9&?50JJwo39j*ZlIf%fp*hn&O?|+-4@u5U zg+0b`$1~f2p!;mV7BD;iwI-^tov=8U@Y73L9Zqd5*=vxI7M%*4uP-9jEeh~RoL@g? z5OCc#<;143vqpJ!$dG}G&NcnVq}`Cz9{rZPqh0wnEk$0O=tkraO^ldvDOTJGO7XKlKNm&Kw5pCK=Wug(ntd?y zynoXhIr}prx+4^yhn26~7Q{U4g#Il*QZIi}IB3Vyl`rzcTlDbSF-*n~Gs(}^D(`Pc zoTI(b$clbPG7P@j5?5ekiMlTETMYH2FJMbjX%IKcRiZXp==HQzd`RRCefgC?%-ceQ zU*Ho<;(LX!90wSgekZaIDJiMbG}I%F(T0nvLsM;B=ELaqV(IlRkis&3@_^BIS2CYF zP&2%T1HSYD>7I5cq>Wg%9_o1!Xk{#g!r#6S$;U6F3R$T!BV0h+rjJ4!%aRCvBc{Ks zAgOl6KU?|0E083p2?EmBmjXkj=;ff@0Oqm{75xD)%0-C}pXfy&2?Zb-OG(;KOaZ$9 zP7H)o>OpFWr>ax($`PMzZ>850VLvL+ZD7>oFZe-<(_rNA+(BGqQCFE8N)c1;IpxGF zW8=qXD(Bp1Qtf#8=jFQ4yyYwQL9c50)t|2`o_<%EIw;+5xj3!%VQ#{5t^jNEHwwY+PDC9^Wy_p-F@l9$n?VB0_;JF)&O78{RPF(y=MfXNV%#R0N3 z2zz^{c%V6laCZ>X9_}CVICJn7C=Pe zlH5Le!JpW>Akdmh>pfF0Vo12%D`Q7X>5&jd|6m5$OJSXInbdSG_oN(*>(=32=Q{M^ zsu3E&KHK}a{d(vR(e5`)Wb)W`chMB@-+>mN87taVxodS>D-ZM84v}2yN3MA}OE4-= zKLhX9q@U6cmJse$5E2K~%G=tJY5dQJg;@m?EykMnGha^-B?4Ta=80 z$Yuktv?R)oGji0()>)qBMLh5o&}XcWP6(pfix^n$1dy173R+UJtg&jRC5!P|hP|un zjYKsFZ|U~`3?7l_g;4fqF$li*+aX!wPhK3vNqFFSDSR^QwX3^lp8x$=Q!qSTQ>KVBZqH1M&0)Obk|L^wIY#~3w{f_6#&*@}Q{p>H>x|=8>q!h4$B5rF zO0ZUAABci5 z8-9NIKDmHT$-a+yNX{d&5?$g>TbL~2>k@!lW;%~i@yi~(U0H#s#JyV7nwQKjc4}1Y za+9Q|pLEE%bdyF=h!rRpsl`4L>C}D_?c1nyx=d+x!B|D!5f9-c&X1H}V za{&21UAurl5bq_ej??Y;KB1Aq)Gq5EWWK5PYeFaOqka-iuPkeCrvw)Q$hxuWtZWIl zg>$VX*+nhe6)V)<7k*%7=#xa)tjg_2^N|a?Ben#^$OS)0Nf97!A`6uetlm`uJaO9OX zgAjR}s4ksqEj2MDv&seplO*2^@QY_@Jq;UKD?((mDi>vHzXg_`&L^%H2#uBczt>ef z^T4wonN2a94=7Se*tbr3Y@DT<^oZR0gvHim;77N|P9`6zfp@v)-=iV_SI<+XmUBF^Eg;68jqX#Pxtb0hA+d#JMwCtAL{arAL~r0Ln{(>$N?p z9j!3)B$;F{z1^N@7+7Hv35(Et3bhq!B;=JJ2ZOiHyywyjaoQKDR~2(F_iU&wJEB~M z3~?Sao=$ZB(#81H9nGl7#9>L|E6w{PI7+mB&kHvS<2k(sF)RQz=wShfDyadU7d2h9 z7Xae|2>KO|3`jXa1lIRo6v3kU05dCEPRHNVxJOflICZbdjZKP-tu%$3UF%B7KJnJc zPv~^av;0*HL=qTrHyI7fbMl5Pu=}*W5>|b-=_9+oVX2ecj%JU9sd=Rpy{$d3c$7K7 z;67TXL7Hq9E^xw_=9=!c`!$H=Udm8bYt^^B`9*6KIRT#Om!^>Jj#Z~eARrTn*IMu@ zi0O9_5^%J^2O&2$O z=O6${$^?+#ueqXC6At}fwro8t>SwG~hEIXg49QBX4PoA|l4~8-M*@!yJia397A{=H z+q(1-2A)>wU7utaHBvD~wt3~;^ej&18G_I00h`{UYRt%16C&e;+gm(DrqHX;0=B~! zx;+4P9G{QwS9Spn#IsJ>p~?}Eobxvqc$SLA+8ns<8UQuk?Ez2O8&Qz1RCme?ErX%b zijqg90-8UKODA^hcD>%Irp+H$S`Lk*oO){B z=G8{gKVhjhiLLUSy}HKGKggPC7O(g!x)U;(l!S@%t7hZaU;0=7f)TR^$DIK);R`{} z&ptrzDq!xw+X^4}?@Dm({|%TD;46yb8oLAh_!*6@Yg0%!bR4NI8%BhdBqk>3Oo&9d^d`yw$4C`8#gs(h-1ngwli z;sx%3MkS9Td8Os2Y4$gMI-n4zBNa04zGslC5+>*S6xAh@(!FW_ak;s4m~r{*!&Z=q z+BNnG5RPdPjKlA33AaZ>Xo^l*`-#V9JjWgq|X|AH9>B_68zh`q0Ab$k*yI|yC z7@+$*Tuh{+b)}7~l}ip#1~o2kSZ|SwF%0(jNxt#nQ-3R?ohct zRC2xdyo=j~eoNScopknW#OfHmo>P|vi}`jP`KdwCt%fPivF)uTCh&Cc9@lOFe#(O| z$PI6pD~9>ge^|!@<%?d1!o*fwsnkX(vOiV@tg|g`T65BH6E-tQ?Kx%5p5k9OD_}<3 zKE&CuX~&xsj)DE-N$VA2dJ2Bp#Be3Xcn|YGzN`%Vfub%%fhJ*`rV=mF6OS9TVB|bP zM^rt{YgAsL!4Ja0=F)Nh8G@zN{j;tB)05;-MYoxqpPlL1YDwlNJAIQ{hK`{U+)jDZ z_8#a8gAH5^T+>nmRJUBxaW4=NcmR7>J?w4c4DnKCo70R3mRzrHe`)zbWmg1+$t>F2 z>sjJAeG9|L)q_&Cv-J$$!8t$+N7a%~xwbx3r1vJR$gDwrUObCCDu%wvlYmOB2a6*@0lv0%YpKz8&99i1WM#0efgVRX0_0PNcoGs&Q<&o$De&ta|Y;vWpAM$ zmJU^&aoh_c&o<_!*;_p(|9nD|W5<;t++%K=x3@cxO5feN?|ueBQ^eyp(f|adD-T)9 zHi$I->c2ZfL`B&OBCzf)(yT1pKz{#MZ@o0f=V*>7BYvoP%5v{HdkU;(Sd($2Hmo}V z(1W^KeSS9cpa&|Z(T4ojE9&|aOId&I@A}fG7%O_kq{J87Zki4u>J8l8j%g_4XiKbB)JNb0KFzct9vBqeQ~oj}Gy=m=Ah=JOpc5n1rXS`4=c2Y0-VY> z{|$&4q^-ox(6R~YNS1zSjo>cPIc7ricfJYUEaNyECDwZ^Axu#*hRSqP6(idG>8MiPB~q_CP&#at`|!2hx{ zS-`RkDjlr2RJ@m6%Wai~i2&&>$qCV5X|_2r~=E_`TLPPwR;_{d^TFk)G z_wta#J}KCbOl(5L6(Stta94CmHlSxZtgOdK#)Lp!-{p)@fDBf1=Y3X7Jp>qes!dTa zb5cH-UlkqdU3TTud`@BkDz24RJ`U<^g5)E_Q&^w~!23GGU^V)2DZ1BP!#EaW;{b;M zW?~`=)I6$Me;HyVV5ONmO_agC2}%KEv-VWb1z6D6lZF5X=6R}bu$n&o{_kY6FTLiX zD#MqOSXB@v7gg<6Yb=rUE*Zto?Dz#x(T~0&p6o>dtC2VG-_vbQtW}P7%Y@a~#Rb_j z0Vj>9Lbe~25!S)&AcV;MhSkjPhaAdZcBLwF|EjEwmoaUN=~^RpBQq_lACf>=CBCK0 z`vVYZM~^?^R9*(wbp@{BIQqjsQUpQD0}R3kAo+v@PceWKtP^&fl82xoL;g#h1I(RA z_W9+)YSp{4?rnJ@{tT1A_ljgF6$2p9-~|T0_EXydhgUyR1nb1k44!P zE{+36v#nEYmfrA%Dh$kY&ZrPXS3+htG2Y|?>5$N9X0m@}3UP_N{V99(rKZJI3vSV) z7qHdpyHZID^P9ZLm4ctzfZ-V;J?Q6&mKpmZg+vWJ> zp5Ifbbe*&+k@N$NiFMFe^bbIdZQGamwKS?u99Hv)CF=JkT>T9MYQ+)NZxlKx=O@d5 z7uZ!6m(xUy1Cec%M)+`p==gpuG{li`e&m^RSdH=2rT5<8F@0lI?c){#h-T~v0Z|-+(Sqf$|C_>_p>6;xB~>jj37EUF&YmRR z1aYSnRH4pnf*OTb(0+ZXUK9ZsBz{ZN4lZis_mL84 zQJ(J|P*HW}@VQ*L%*3qT*eRhpT22~-%$wfJZme-$dlL+rZ|T44|cPU@j@a05^EzqX;koXxNK z6f%Hwxz7v@;2h1`lJAMCtVWpre1*PlHZbSJx>nV@i`c|a*_%deQ+_hE%!G91S7ZIa zfg3#0WvO;U&3SXz*c&J0kEY%w;TI1~+LRhyc3C2SJw4GLAZx8VfH>E2U8%+9!!$EW`-Hx1Bfmi^&q#NY1dx{B z7Jp&82T*#4m5BC1Kwhc4DL}?I)e&)MrPU_*W{`_z zBPHtqnD$TfB}42?u^KV{2Qz=<$xO|Ur=5#@ecyB&#L;d1_2#STT;yA9{}Z}+03rCa9#<%SRXM6;xbQ@ z*dYM{H3kPrTT%)DY2a4HfVKl*8)JAy0)di*A3g*mBuQ!juj$Y183t}mLNdipBGO>y z?cva_bclNAECl4{V&~sKTu=5uItui)`;=9~%zxY$rU2MWa)Mph5YUpu+;R`h+#BCL zh7T~X?PTKq1m_*^Awh_2;J>q2DH%h%D8Z3ldw}IU>lmdzZAM>+^|&RxW<01VF@;K9 z(J(gz$9sQ##{ZF#%BZ)kpD~n*fAbBHcDp4FAUH~BPHN8)J!IT^T*Ay_BzUKLVdnZo z+->Hd-A$b}Z3G&AJfH9+k7G^`x`grdQtNX8BZYTa;WH4Bp?}>N?mpn48Xa!{=cTH# z``isP&oL~W9tP$zIF$vFAfVgm095-u;CMD;nF^vW;Bl!HH7qd-Sl_BvWFR!>I>|08 z1E^p`i;_qYZ_BMB_e;g1XmCoMq#6b0T7*+JpJB} zJDsd*MRkRk;X7AxfINxDa0)TOqS-Qp^?Jam_W`VLN^;A?0BQQhd*anMh(;H#eZX%V zgEZGY5mnerJn=m}d(Ht+*De_&4@pSn$@_`0#sRIj^$2Or3GBRrfPVC<@@gO&A=SwU z^V2^5egHH7z$6gQ$-I~1!t%ycp9B2cdhd%;vs0ir&_ICIzQb6E%?I2{s(G;Q;Xm!l3?EEP;=lGy&kb9@Bd7E*`!jiIP_a}Aq zHshG}K=F1f6NsYtwJ!?vQH^-OYaAJu84oPBLeCPSO6u&aiDVfg za{*a=hBT%Lke1-mBWoFVe1rG^hwQW_7+_eV<>CbcW{ITRuzPI-C4B2qu5jkHiV5&B zIzFBh(6Nib(dU6z&2HeZ+*PZaoBoj@F&D_UtE;BbCwI@>gpntS=V80Sqkg>(*zp;C ziY4UGC=*JcOFrmIYjv<=UT~J z^_D@212HyTU-F{6vI5ScJ9`la|55*H{YEJp^_@_J#CAf{8{SXaj$e#+6X$)VomE(a*HM^oJ!g5Un~POWk}$sT2*K zWKAWFWcHN^9~3@TdkvD1dKd)ul2#!giRu4*%?G`(O>Kj>Ntfl4r1sg>3+24g)DQKLD9s4_yfIFl3+x zX|0g&4`nN)7#%W3w8r+>(Yf#z_m_rNPhcW4q;Ed?tHg`QO)L2x0M+rDFPqkZu3_ z(r00n`FK-i=*(mww{ohWVx-j-7?X4`(@0xQ>3rcdL?$D64ub@j`12?0cO$Yih4M?5 zZsGDT@a-eDhkhO<+upHlt_$7pvggR0^L639aJqKWGK{o+CB%22QJ&c-T@WRhLV)~D zNLWkK&>K(2BlGze$&l*~07wCkAmDmI>N#zr7br;8U48(H7<>Nry0`BU_-N3z)c>Zv zOfaTAL+EsaVqr8nFo_g!`%&n(;Z(uK5=72!o+gd)ICd9ZXFC0W{Y1sH*_@DT9^#0h zUB<8-?)V5#)t6`jo!-WPme*_Vo9mjzLG=<=S^4!%Dq3zwu93Yy*gJ5A@3qOz2d>wS zO&th+X}lS+4aCR(HD->}Bbgh9*of=Ki~yeNzlUejQ2}qZ4@;xA-(xd0Y53?cWb=L@09Y6 z*$)aLA+I&ZJ#dIH|2S6f>=+=pa93HklwHEpyjF1|7c-H>_(^|7Qs2sQ_Q~;u%cO7M zk=bzQnKPsOhzwq)Dd(zWtWP*J74M(iVUPH@Og`Pd8$TbNI(hRGj2awf|B+oyqBgu;?6aFS)uq<(TQOOWiWz_Hr z13Lp}uVsGFvBnyyG^%A8Z&ZG@?dx@ZW1frif$GUG=fCE+AuBgtU(cxcb_qsM!^gE$2B=-;UXS0f$0Y@T9FD^9s!~-Z2XjC!;#%pM7 zU((U?tBhFVv;;5m|4x39M|*u+eGm+b53f-%*^#%P*ys-wCB~a>>Pu+MR8HR86f}H6 zl#uZ5=+(CTb>>GL^5_A>!NG3N?0Xyr97QiQaisuNi@!>q{kfg!4q7DhpME3pXBgve zdmz1y_;k`e7&S)IUQIQb{x`2T&;=r+lW^_ndQXGOFVACEB3GP1@bPS~8^OK-xh?$n z!ZgCoIG&Oh4@1P0iH=M3Uw9`|raXrzj?_2qEoU12uwyL9G$WiTj%*@VqO74N=O~rv z?0ZF{z7Jtg<<1~6rH+}2Rp|7mc#QNbv;@11CN;Ds-g?Xu%$GQ7WK>7KCj2!S50d*L zq3i=wrAXB_87fF~gYo^LUdRDzE3HWqHXL;{2bgc(-u_ue3Y>|<#`q$_MfGm*6vxQj zRt^qx;Au`U6VcYYDgji|loQEtNXSF}O@E|?XTS4DAJ^iRKuQhi*zL~8I?TyZTVh&i zCN27dC=)kz2U-s3J3BtE_9=;Fv+myYg-pT?h0<#3&t>}!X^b=zi3pr26OQL_($v2^dV%3{@vnHHQ4Zn+#Rn(j zlvb!&S1L;UpEjxS@m=HR0xPDClYt#Qr@Nh&Butx=0~D$4<^C((6oTf5^0Ce>Df6?# z(g4wYG*p)jN2t6`-%e!!QdHEIJgtUHsKyf=`bZTq5`Ie1l!x@#9QpK1B-5O@;XKgD z{Oj4$=)(0eYy?lsnEet%ySl=q=do;IPPCTfsTH*+`Gjc7Lz^4eYe@q$Ru)y)Y@Ml_ z_g{SAtxWW@sEYSp{p{^qJ;;y^y`P5ArTuHpAl*${mENl{2=om>Ajek8kq*(@-J`|$ z)4Lrd0TL-j5uRpg;Am>e9*zAZdGn({^s*-n=r2mqSV>?tBU+F5DEOJ<8AGuHAC^b6 z1;(3+syHY}(SaRqTG0|&uq7Q>mAsq(vT;#2Hm89fn@NPxdt>>!CMf7jcEexhVpDEt zJ&u+Xh<7rQAyRP;Y18s#rIv*EA6iP&_-3ENYfsU)tkqY2k@(*WR9gzBw99hi>PdeO z1d02wAk{hRr-DXzKP@hK?bzZ~YkiAQwcWtjO0WmB62>RCYDuVl-&e#{ltB-=4&ahz z+FQgC_QrjaGIcMEs@o}2#nQyj1Bv}R>?0mx@@k|&Y_jLAzCHSpZn_p$c zq=Hn}(CvjALEFg&WUfD_$1M>VQZ_-evGPtrU6O@C#ymTLfaGx-7W**iv+e;10|4)( z6hM8rb965UQ*@+4L?d-|UeY4ogWJOfkkQgH&ohT)XiDV1I3+AEK?YDt+5_B;5MO97 zMpqWq!$jtn1K$N2v^kjt#c0O2aHC|h<7pE3cK3bzr7iXi)jkU}JrT5V`s%ch?Pc8T z%9^xv@+7qOX#8rYTi36{x!KDgHEO50JJnRnWFk0zy{5pD-GgI`zAiqSeZn+W3pP(*)IiIRd7^2w2nLocxlfTzRR(6on=w{i37Y)a4YaLfS}cXwa}BAuztkXf=Z_nx z|DL<6wq#lOLMp-c8b`!lEa)GvJC%n6m|fEzAnfN~3YjrMxqCkW!RPrLqCum*8=N%b z;`2gXeS{FIG3^GC<4E?Qu4`Q_VBL+ru#P=UAGSV!3Qh|0scY$)@1n9*+_Q^)mp1Gc z`eIP2+5orz!ps5k#z8v!Ms4ut$Qx3Q$jv;%;J5Yz1^qaySOG1Q8$xdqpdti%#8v`8r%@RitIcsOe@64n9=%K zA_m3pt=~8Hgba_PR5WTgT(?@*2iz2lzNC(Ia`lTZAF*|nB+reJILd5MNb`s&_D<+g zYL+6kYshHDx=HNrJ$!;cklg;EdW@x?V$2K85r(0%z3coQE?H7E&F-*{4D9mNeb#aJ zr9m$#_WcGf5%TA+i6EvJ;gfb640^9Zpt!R%t)vv+$3k0_xEL>RnYk)_^#?hApM_S4 zp2Bt8%@<907Y&PSGyYZF6IPyF{}d*k=TGE0{G_DI_&a3We|yJ&6mN5$%0i1#uGF9L zHb2DJYQ79++!Hh|33sDTC8SecM!rMQ)c$JwrY7V4-NlZQx})F~6XdXm4!qm9p5~KS zPfNI%==XAuz<3(}Df@gfQS##HVSke7C^E=^zBgmm)7yo>mVZK>X;ZbIf{O4@8h*G? zvPhBu(y$u~FCL(TL$XfICYM>gqxnuo^Ifh^Jm=vL)~E&<|Kz`|$A>jDm@XzO4>N*4 zX(-&6%S85fe+;}zCzjw6gQ6;lH+*ed$Ud?WiNQo-WAIhHBtl|4=%9VU=9P=tSA)m3 zUZRALq`Y=d-)=W-82B(y^P>A)M8gzG^LT2N3I0B{o%nCYLsDj1&ktS2XN=$U+g1b0 zBJGUR&y#pmL9*)GG_QB;NH-v~9eSuarLfyYh1UzY zb$8DLw#4|&UEz%H3N~LWPLC&5iU>Z6tVA&Se(U6NL84u-oL0?Y45L=8qh5L+ds=HB z%SquWfeNhPJK|Sku+WJZr-GyMUZ*kIFpGfKL^TUtc}?FCiKc02eHk}O5$5iW%E*M@ z2n9!oJ9A;;+Cv(iS@;Vtytn=RjCb|juUM{^66gaJpKFa?wfKL;=k<1xjgz!TlJnjz zL{Z0B-T8xzRmUi}M!qBVtYb2Zg5}3?2KbTay$$4DR91hODbQuXY`6tsaIYnnyXb{^dqSN)CdeXpMA+sE?()`Af;T z*OTkcs(M&aQ2WS(t#t6coc<2M?!>&~YrSO}b8Vy;ddM3*sA8FYwwNkScHP}D;gk` ziw@zD;-lI!a4JWaS)O`2s)AjWj%&&;K&t&VG?hl1q!N@>L)sylp_iV5 zF07@!OZ_zKUcvH&gG07gbjyOe0q!)6pYA*GbqBKLKznIz(wIol<6C+xp+XEDMlp;ep>&lWilFB_Ob8LL|07wIlHX) zB3b&FNp6)Xkh=)_9I;e#_N6y@M-rLjzsI{_>Vjw{B>^rl07OEoR5*&fd}6K7vJIS~ z8j4r~CCmnk#84Vyyp$=%fe3LgugF8ypdX@HWQmfUSf>FnvaC`w$U@h@*re2Ewxm5H;c0 zFIFoiyXX!P!XR>1o9$vh$O9}J8rkC;XXzC2ofD#5l2j{Nt7O?>q|CPdL1g#$`27O^ z_s=JODwlQ#4;!8IEEfR;y;4b?Cb09ng|o7awA?G~AjG*+~$)<=55(%!z#e z!P1dy&Pt~{RF|>k)pHEGrqQu%YR!@7nhRwllrXQ3ynP^9d16`}Y0IdV8kanVRx^_L zrj=BuOv_$IM7bs#D8sT05>uWdp9+OQa?1svy%zd{lIuN|2a))3O%7o7giO?U)`aW! zR3TP8YsT_{B;NpwXH9E9Y}-YIxSnF@J(>;EVd2fbJ3+_nXgG-)$%*1Gr=&E?h`!PRz;J+%OKUv9&#|I(47cV2sPF7uma&HTV=-3v_Ds|y=C|6m?$Y$()=EKY7p3qr>cEBp}lePE2`7V zr9|D*oJ-E0D!2zSXy0WS1PSEDw-3B4uimiye2rk<%RP0?4I7<7*e*uUG8z)AYrSFh zWC!S4k7;hg=v;5ss{{9p$K2?6`&hG%8H9nm#dldE9zt*J+q*_sUMnj1X-qurx@9{zuaZHL+y)T3|I-qG9o_Xe%`!u=bSd zpj3%_wR`l*)CqPq{iB*9Cqi89Df`E9t=1m;v|cmOuu}WJz-nYAtw|=7@w0T2A3d~>+eB1<<+G8CFxdRz;A2ks}nk|K~-W44=nl<~c%1~PQAG0P6PDs;DlqlLz zSv^G2?rL_VOFXF6rDLMVCZIr3JxnZOKXF&JnMA}VxAFfB z-bJE5NSfL^MDAH5lI1jXxZYMYR=WzTht&26y=s{q`|2FKYXS0bSL1__+RjA*DIv$| z30Mry)MVd?jiA#rVF!%rfwaq(nACDDI=)WxHCo=&`N;ohxk@vJgGjmwakt4t{M^KF zu&DW6+R-C9Y)-QjTIclYU^#m*2h2i1Kto*TKONJn+njFW{9-AYF$)A0cNQf zHw!GLrzlnJo$6>Y&Gl>gt1gTf9@M&4{zuKRXhUn&gQ+0EViRrV7%)vhY2R3y1HY_Y z_Qps4$H_)mU65KGA=QOe)WbeP%>Q_KaIB$~mH$y^v@Bw1#9WW#ca*!7WAbjS^uxtulB8|qzn^$G3m3S#7fU0 z&e>(huE|z)Q5C6|8f8;nUn4(rkQKF|CNV%lD^U;Mf?N)&FG`PMF(lC)QIf-y8oO`Bc z`48n=YKoRhtZ~#{i%6_2>d{X3-(*=&Lu_~r@sJu}>z`7;OXW(cM)B9ZN7Frm7!KK_ zU(AlI8xYY;T{n^x|DR0zuGVi47$%1hS!_y?8# zpWgqE4}-p+em};4Kjh!-|L|r1f6DI#{xene80u7yX_$GftDTs+8m>`?$i5V5n68LG zlw~kikzf2w1^U*7+JKn?tO|DU$~zi8X9^Z!rzy^wzm$cpc>?8*+iA-qa< z=^~VBp~cuVEbOf+7$X+htB)uPz6L_6=~gtfayD5&)AIpvjxKJEy*9Zj?8SHi}pla1?sq(CE$`Z4LAC+a$qk~I>|ok@0p%s8{Vd77?cwcxr>=agNZ zvFpJ8A3b50GhZW!N(v5i=m@8(XRcmER+TerK7y=7qE3Q_c&ql{1w^=2-}@eejmRtQ zjO*8k(ZCoidGN+l>(N+!=LTAj&QE-RMUVD65||qVvm<_qb^6k^#qolgvZ zhzyeXb@MrkQ1vH zBFvQb{lJf%JxBP7Au&6rv(JBqo%JKTHzLq9JKsTBBN%OjefkxdLI_J6wMysulHNkkO*G3SRVTg^{+m@tTTlO@Or z-w^E9x4WU45%xCrY^Zu%U$-R*@o;_YOVTOZ7b4|4%$UqDIVHQ>6^+cV;`;WK^8-Zr z`}BHFEuslkE~!OC0#C`B5Kt!rexhxyo*eN+UB}!ad+xI5+#+dDf#VmwL6@1q)E%I_ zJ5!S~x5zkW3jw+4II?XbP_OI>pFIhQO`L<7=4nRSnRyn0d?V~OkJ%%L=^J^U8D^U? z(a79WCTMzIM*0oUHZ&OM*T=r>=u(D|Kbf$H#0&`j6EVBA-SdaMYykrTRdn|{<+~6Y zsIA+DqcKYGPVN|WN+V!UmBn>wQe}bA!P9~~8AR9?2`@qj)0v+h(S-5LuG~m1dP;@a zJZqD`WirRcX?}NSX+BY-cTd!GAV%%3cei{YV(ebE#b9Kj<`Fz96ND-DJ?p8C5d#+c zN|u3e#d@}?5VyUy&siWVvtgX*uo-XJj@tu=n;bGWHHjZ{@nZ zE{qiIJKZea@23d|BO1}8FY-VmkhC6CY9XXl_0oM3Be=94^Q$n-wD0+|{UTT8+iDp- z^mN8+TU7z)>QSh3x2#U;+0&UE*ogHo0+Fh1Cog9Uan|r6uRX$7Uu6*uo*2sS_9KRJ zItgPAlW`>mU)fvNA;UpOGtN~{8BPS*2zgaab7H(k^lNG7(VN`7l~bAyhQzibmw6<0 z%h8x+oNU_9wN|zhZlA8gc*$pycgAwh@d4$$XVGR~Af{FX=a2=A(Y5`yK$xk=K-<$M zV0y@H-;*l%MK?av*+O6}?)|hvDd#Wub`R2(cHB(9=Ha@1KmUR$%g9|bRFa*tA#V51 z;*Go$2;uE30UHB&bp<^zcO#UyyvPQ_tS0BgSf15n*Gv8^GVNv zlgXsKI9Nk0a62Y|VpQ<5Mbb^vBtN9MNjS12n|XXN1cL_-%PM@i_DFg{WBDje$qy=y zq2s+zK=?mL_oG6cHkQ))B@Lu*#V!;*xsXicJgB8X>%^f{Ae zES^4k<$W(Wqj;6d1Yy(X40nv6*5%^(uEO2TF=tJ2YW~Z$^%Xd%=;vj(_({bv=Zptl zzxX0gHg!xDRy>*XQQQ%k-46$v!DF=h+=T;k0pZ%33B>XTC6CrVou9?(f!n$R-LD1@ z;eH|Q2&-~o*A5o3-6xt)}qHd4JBKyg+wqtfUM36s=lLwH$ zNbF&nxIL#mp-Q=#dD`V|WtcjpE`fm@4x2T5mb5PSLlnCT6S*Da%Pzx4Zg0!+hX8cd z9=DawE_)WIgH=6) zh8bu~(V(|tNF`lfD8g8oP~wyiB5FkN`&6z!L$ zGVv!eD0kR`1O%^iwo>6AACRb9zxP1D_du2~XNn1~4WojfeNwmqkhWF>3h)0qo+L)uWGD7E7v+|VYMidh22`oX)jWtIi zj!<*4HYe^ME5Bk8U1aalr?dnq+?40l+8l@}iX-Do;~;b>Dg$Vcf1(41L@}V|IEfe% z^?C6<%ilZgn5`rV@Ba+nSSvXZX@@AAILUP0kU_H@sI03Ux`kFu-P4i>D8XSEiGtF9<6#Ws)dTOF1q2|VW z3h^|_dQ0CIiK0m{SaeHMLZeKyuth>pH1(Q& zMJ>dgq}sYoMl1>HDR>IjzaCg>&3X?~Bq~ru=a04r zX%VfYTAKk7d43A05YZ=?Kk^h{At=$O91J20KTDkdIhDe9Iq)NugnHyF8c(*1$+B2b z#CRmNq^u+m*@5;amyA`?Z7cxOKt0WJ^Z=ZZ zGT+`Do`DkdAu$=364V?yHzMH|m>a|D0m{Nk#4ghI09b*!p(TlM3e1FQ?E#>|-W4%A zL{Zp1#YT|O37ak5dV_e0+}J;pAPIbFMtdNGRuWMUWYGF2;VHFzd=BTtV7u zYl_vwG^p9uL6lg{t=n3uEd(?{^El}WYc)d#8)t8E5W=MdGT18L?$862XbThZ2GW~+ z*CfcmN~}GD$O6=?^+e(c^d8fYc@RV(+MVJo=6wH^@g@tZ7n$FQB+i!yF1=`F`DjnC%g`{eZJiV zIc)5av>fc{T5Wi8ue!Bd=XoCPOMmVHI?%Nbbj40(@js(mY|6XiTzk{>pb|ZX=3Q=! zt@0w$MP6VXsr1n=uA*htE01It4{e=Hi_io9EN=9BZ$)DXoDKhSaThj1nJeknep(Ec zGrO{>i~kvS1+)upYv_f<2O*lKJR&{_9%>ZX;JI5GjhHNgbUv*ubU~|Xvd&Su(YV$~ zu{6zwplewMi$%p9$|&k)A<&C#b&0u}`gA|Ct%_phqAo6!S`X_=Tq)J^fwe)WG49H! zD{-y76bm)4533zaUJuGyN=2<2kU!Bx7Z z!c*gi9$DOl)s%i%l{7q9-1%xUWJTSbth!*J5y?HPc9%BQIGgiWMIBAendHNwj^02k~>882+3xSJvdzF;Dds@K~v>8s#wAKX%Fg* zuF+kd&npZaohTY+GSRzJhX>8TMw7vwFpvcMKEdU9)$d4HUd(6c@RHkJFl&Z>J}8&QH$rOdK~4ZT`s|KjOM!d$AjH)yEc*1Q5Li8=)`|kEr}s{K zv|;l>_Z>tky|>#DxN zpm+D16;(DBQfpEcG4C7UXay79?t;`>5y!DH3s~nHll#pu90Aj$&DA+pl-)yiDS}(< z(qHg}K_Lt@0v@pIgXvLyLc8GYLVslzL29jC6h3&ia98o7wtBUpqv6H6OaS<o&Wth|HIF-!2ZzxQ{u+| zP-_2*|NfNUtMlJBHM_26s*09qJ6dw?K9rDE*;}~ltP5-=K~~=Lp?uD8E1y9fKCae1dvh5%Vz27C3|aP zSdB8HdVZ#C75)%35Wm3x{PV2Ak^UQY-@9)F_wJ+o&ze;wc-4oRnpK$^O)&ReE@)Inkm4+ujWgJ4flW z)of4;*_kOowp3-AE>l$i`Cspx&r^>rik*5n5nQc$v{9Rq2UT;>){vE(t&5prnuG26 zNy6tMHdU6nsRtA4ug-A!YF6^56p&?VlZ+ff%(W^?qFeHF?XW+9;Pdwj^8e?5`>%if z_dosl-xT@rJMllqUHJ97{4o)>|Kmf`TzPR3ttaP`lxKr^<9IhWZsK$ zAR{LBfC_4wNpoo{fvc?G(Gx1XX*h?h>oVrw#CTBDbI)08Rffl;REv7#C3_{gODt$v zqm@)q;S~|EuY&@R8ow#Z)lkI%p3OJtblsoCIg5s&)h)R?ub_<9CEFs-uKE)KM--uAyptjXs z!BgKYvUMnw?D~!Z&Zk3!v{)cJG?-qUL+Dy136ylf4o$U~XlrV@#qelE{`L-FA&P}@ z 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 V-=FW#_vh{Ne*jgIy>$RM2>=&v(#QY+ diff --git a/scripts/sample_app2/output/30-08-2018_15-29/tmp_runner0.sh b/scripts/sample_app2/output/30-08-2018_15-29/tmp_runner0.sh deleted file mode 100755 index 5ce0a6a..0000000 --- a/scripts/sample_app2/output/30-08-2018_15-29/tmp_runner0.sh +++ /dev/null @@ -1 +0,0 @@ -/home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app2/runner.sh /home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app2/output/30-08-2018_15-29 default_config edge_devices.xml applications.xml 1 diff --git a/scripts/sample_app2/output/30-08-2018_15-29/tmp_runner1.sh b/scripts/sample_app2/output/30-08-2018_15-29/tmp_runner1.sh deleted file mode 100755 index 21646df..0000000 --- a/scripts/sample_app2/output/30-08-2018_15-29/tmp_runner1.sh +++ /dev/null @@ -1 +0,0 @@ -/home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app2/runner.sh /home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app2/output/30-08-2018_15-29 default_config edge_devices.xml applications.xml 2

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 diff --git a/scripts/sample_app1/output/30-08-2018_15-27/tmp_runner0.sh b/scripts/sample_app1/output/30-08-2018_15-27/tmp_runner0.sh deleted file mode 100755 index b11fb41..0000000 --- a/scripts/sample_app1/output/30-08-2018_15-27/tmp_runner0.sh +++ /dev/null @@ -1 +0,0 @@ -/home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app1/runner.sh /home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app1/output/30-08-2018_15-27 default_config edge_devices.xml applications.xml 1 diff --git a/scripts/sample_app1/output/30-08-2018_15-27/tmp_runner1.sh b/scripts/sample_app1/output/30-08-2018_15-27/tmp_runner1.sh deleted file mode 100755 index cbe8a31..0000000 --- a/scripts/sample_app1/output/30-08-2018_15-27/tmp_runner1.sh +++ /dev/null @@ -1 +0,0 @@ -/home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app1/runner.sh /home/cagatay/Desktop/ecs/EdgeCloudSim/scripts/sample_app1/output/30-08-2018_15-27 default_config edge_devices.xml applications.xml 2 diff --git a/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite1.log b/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite1.log deleted file mode 100644 index 37e5e49..0000000 --- a/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite1.log +++ /dev/null @@ -1,633 +0,0 @@ -Simulation started at 30/08/2018 15:29:30 ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:29:30 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 50668(2255/48413) -# of failed tasks (Edge/Cloud): 283(4/279) -# of completed tasks (Edge/Cloud): 50385(2251/48134) -# of uncompleted tasks (Edge/Cloud): 47(31/16) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 283/0(0/0/0) -percentage of failed tasks: 0.558538% -average service time: 1.419752 seconds. (on Edge: 0.965294, on Cloud: 1.441005) -average processing time: 0.136200 seconds. (on Edge: 0.906446, on Cloud: 0.100179) -average network delay: 1.283552 seconds. (LAN delay: 0.052858, MAN delay: 0.012347, WAN delay: 1.340825) -average server utilization Edge/Cloud: 0.083970/0.656522 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:30:11. It took 41 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:30:11 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 46435(46435/0) -# of failed tasks (Edge/Cloud): 225(225/0) -# of completed tasks (Edge/Cloud): 46210(46210/0) -# of uncompleted tasks (Edge/Cloud): 26(26/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 225/0(0/0/0) -percentage of failed tasks: 0.484548% -average service time: 1.031613 seconds. (on Edge: 1.031613, on Cloud: NaN) -average processing time: 0.969767 seconds. (on Edge: 0.969767, on Cloud: NaN) -average network delay: 0.061846 seconds. (LAN delay: 0.051165, MAN delay: 0.012421, WAN delay: NaN) -average server utilization Edge/Cloud: 2.155578/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:30:49. It took 37 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:30:49 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 52003(52003/0) -# of failed tasks (Edge/Cloud): 286(286/0) -# of completed tasks (Edge/Cloud): 51717(51717/0) -# of uncompleted tasks (Edge/Cloud): 36(36/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 286/0(0/0/0) -percentage of failed tasks: 0.549968% -average service time: 1.127338 seconds. (on Edge: 1.127338, on Cloud: NaN) -average processing time: 1.064582 seconds. (on Edge: 1.064582, on Cloud: NaN) -average network delay: 0.062755 seconds. (LAN delay: 0.051817, MAN delay: 0.012431, WAN delay: NaN) -average server utilization Edge/Cloud: 2.553153/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:31:38. It took 49 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:31:38 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 87471(15334/72137) -# of failed tasks (Edge/Cloud): 595(45/550) -# of completed tasks (Edge/Cloud): 86876(15289/71587) -# of uncompleted tasks (Edge/Cloud): 75(54/21) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 595/0(0/0/0) -percentage of failed tasks: 0.680225% -average service time: 1.460612 seconds. (on Edge: 1.020456, on Cloud: 1.554617) -average processing time: 0.250274 seconds. (on Edge: 0.951547, on Cloud: 0.100501) -average network delay: 1.210338 seconds. (LAN delay: 0.060075, MAN delay: 0.012370, WAN delay: 1.454116) -average server utilization Edge/Cloud: 0.723364/1.060870 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:33:47. It took 2 Minutes 8 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:33:47 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 96053(96053/0) -# of failed tasks (Edge/Cloud): 553(553/0) -# of completed tasks (Edge/Cloud): 95500(95500/0) -# of uncompleted tasks (Edge/Cloud): 69(69/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 553/0(0/0/0) -percentage of failed tasks: 0.575724% -average service time: 1.181897 seconds. (on Edge: 1.181897, on Cloud: NaN) -average processing time: 1.112073 seconds. (on Edge: 1.112073, on Cloud: NaN) -average network delay: 0.069824 seconds. (LAN delay: 0.058646, MAN delay: 0.012518, WAN delay: NaN) -average server utilization Edge/Cloud: 4.970796/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:36:42. It took 2 Minutes 54 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:36:42 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 96835(96835/0) -# of failed tasks (Edge/Cloud): 512(512/0) -# of completed tasks (Edge/Cloud): 96323(96323/0) -# of uncompleted tasks (Edge/Cloud): 61(61/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 512/0(0/0/0) -percentage of failed tasks: 0.528734% -average service time: 1.201837 seconds. (on Edge: 1.201837, on Cloud: NaN) -average processing time: 1.130058 seconds. (on Edge: 1.130058, on Cloud: NaN) -average network delay: 0.071779 seconds. (LAN delay: 0.060611, MAN delay: 0.012519, WAN delay: NaN) -average server utilization Edge/Cloud: 5.166149/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:39:37. It took 2 Minutes 55 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:39:37 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 145592(45712/99880) -# of failed tasks (Edge/Cloud): 1073(156/917) -# of completed tasks (Edge/Cloud): 144519(45556/98963) -# of uncompleted tasks (Edge/Cloud): 150(128/22) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1073/0(0/0/0) -percentage of failed tasks: 0.736991% -average service time: 1.513352 seconds. (on Edge: 1.125531, on Cloud: 1.691880) -average processing time: 0.401126 seconds. (on Edge: 1.048029, on Cloud: 0.103334) -average network delay: 1.112227 seconds. (LAN delay: 0.067588, MAN delay: 0.012428, WAN delay: 1.588546) -average server utilization Edge/Cloud: 2.212195/1.424415 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:45:01. It took 5 Minutes 24 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:45:01 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 137566(137566/0) -# of failed tasks (Edge/Cloud): 757(757/0) -# of completed tasks (Edge/Cloud): 136809(136809/0) -# of uncompleted tasks (Edge/Cloud): 102(102/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 757/0(0/0/0) -percentage of failed tasks: 0.550281% -average service time: 1.276863 seconds. (on Edge: 1.276863, on Cloud: NaN) -average processing time: 1.197057 seconds. (on Edge: 1.197057, on Cloud: NaN) -average network delay: 0.079806 seconds. (LAN delay: 0.068406, MAN delay: 0.012608, WAN delay: NaN) -average server utilization Edge/Cloud: 8.145007/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:49:45. It took 4 Minutes 44 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:49:45 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 139422(139422/0) -# of failed tasks (Edge/Cloud): 760(760/0) -# of completed tasks (Edge/Cloud): 138662(138662/0) -# of uncompleted tasks (Edge/Cloud): 105(105/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 760/0(0/0/0) -percentage of failed tasks: 0.545108% -average service time: 1.283804 seconds. (on Edge: 1.283804, on Cloud: NaN) -average processing time: 1.200145 seconds. (on Edge: 1.200145, on Cloud: NaN) -average network delay: 0.083659 seconds. (LAN delay: 0.072271, MAN delay: 0.012611, WAN delay: NaN) -average server utilization Edge/Cloud: 8.217989/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 15:54:36. It took 4 Minutes 51 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 15:54:36 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 187073(78264/108809) -# of failed tasks (Edge/Cloud): 1338(315/1023) -# of completed tasks (Edge/Cloud): 185735(77949/107786) -# of uncompleted tasks (Edge/Cloud): 179(149/30) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1338/0(0/0/0) -percentage of failed tasks: 0.715229% -average service time: 1.512123 seconds. (on Edge: 1.199524, on Cloud: 1.738189) -average processing time: 0.527353 seconds. (on Edge: 1.111204, on Cloud: 0.105122) -average network delay: 0.984770 seconds. (LAN delay: 0.077756, MAN delay: 0.012496, WAN delay: 1.633067) -average server utilization Edge/Cloud: 4.144888/1.537124 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:00:24. It took 5 Minutes 47 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:00:24 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 194291(194291/0) -# of failed tasks (Edge/Cloud): 1259(1259/0) -# of completed tasks (Edge/Cloud): 193032(193032/0) -# of uncompleted tasks (Edge/Cloud): 135(135/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1259/0(0/0/0) -percentage of failed tasks: 0.647997% -average service time: 1.456162 seconds. (on Edge: 1.456162, on Cloud: NaN) -average processing time: 1.358439 seconds. (on Edge: 1.358439, on Cloud: NaN) -average network delay: 0.097722 seconds. (LAN delay: 0.086057, MAN delay: 0.012742, WAN delay: NaN) -average server utilization Edge/Cloud: 12.653966/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:05:26. It took 5 Minutes 2 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:05:26 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 180736(180736/0) -# of failed tasks (Edge/Cloud): 1123(1123/0) -# of completed tasks (Edge/Cloud): 179613(179613/0) -# of uncompleted tasks (Edge/Cloud): 131(131/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1123/0(0/0/0) -percentage of failed tasks: 0.621348% -average service time: 1.372713 seconds. (on Edge: 1.372713, on Cloud: NaN) -average processing time: 1.281489 seconds. (on Edge: 1.281489, on Cloud: NaN) -average network delay: 0.091223 seconds. (LAN delay: 0.079605, MAN delay: 0.012711, WAN delay: NaN) -average server utilization Edge/Cloud: 11.376075/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:09:47. It took 4 Minutes 20 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:09:47 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 232163(112631/119532) -# of failed tasks (Edge/Cloud): 1639(451/1188) -# of completed tasks (Edge/Cloud): 230524(112180/118344) -# of uncompleted tasks (Edge/Cloud): 208(170/38) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1639/0(0/0/0) -percentage of failed tasks: 0.705970% -average service time: 1.498911 seconds. (on Edge: 1.248581, on Cloud: 1.736202) -average processing time: 0.612178 seconds. (on Edge: 1.148560, on Cloud: 0.103734) -average network delay: 0.886733 seconds. (LAN delay: 0.089059, MAN delay: 0.012579, WAN delay: 1.632468) -average server utilization Edge/Cloud: 5.924451/1.679097 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:17:55. It took 8 Minutes 7 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:17:55 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 232192(232192/0) -# of failed tasks (Edge/Cloud): 1585(1585/0) -# of completed tasks (Edge/Cloud): 230607(230607/0) -# of uncompleted tasks (Edge/Cloud): 195(195/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1585/0(0/0/0) -percentage of failed tasks: 0.682625% -average service time: 1.513141 seconds. (on Edge: 1.513141, on Cloud: NaN) -average processing time: 1.405719 seconds. (on Edge: 1.405719, on Cloud: NaN) -average network delay: 0.107423 seconds. (LAN delay: 0.095590, MAN delay: 0.012847, WAN delay: NaN) -average server utilization Edge/Cloud: 15.228858/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:25:18. It took 7 Minutes 23 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:25:18 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 238287(238287/0) -# of failed tasks (Edge/Cloud): 1767(1767/0) -# of completed tasks (Edge/Cloud): 236520(236520/0) -# of uncompleted tasks (Edge/Cloud): 201(201/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1767/0(0/0/0) -percentage of failed tasks: 0.741543% -average service time: 1.592304 seconds. (on Edge: 1.592304, on Cloud: NaN) -average processing time: 1.486028 seconds. (on Edge: 1.486028, on Cloud: NaN) -average network delay: 0.106276 seconds. (LAN delay: 0.094417, MAN delay: 0.012858, WAN delay: NaN) -average server utilization Edge/Cloud: 16.702580/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:33:22. It took 8 Minutes 3 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:33:22 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 270710(147183/123527) -# of failed tasks (Edge/Cloud): 1920(705/1215) -# of completed tasks (Edge/Cloud): 268790(146478/122312) -# of uncompleted tasks (Edge/Cloud): 275(243/32) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 1920/0(0/0/0) -percentage of failed tasks: 0.709246% -average service time: 1.563511 seconds. (on Edge: 1.393491, on Cloud: 1.767122) -average processing time: 0.749587 seconds. (on Edge: 1.283889, on Cloud: 0.109718) -average network delay: 0.813924 seconds. (LAN delay: 0.098282, MAN delay: 0.012664, WAN delay: 1.657404) -average server utilization Edge/Cloud: 9.225036/1.967893 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:43:32. It took 10 Minutes 10 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:43:32 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 272405(272405/0) -# of failed tasks (Edge/Cloud): 2195(2195/0) -# of completed tasks (Edge/Cloud): 270210(270210/0) -# of uncompleted tasks (Edge/Cloud): 209(209/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2195/0(0/0/0) -percentage of failed tasks: 0.805786% -average service time: 1.797444 seconds. (on Edge: 1.797444, on Cloud: NaN) -average processing time: 1.677236 seconds. (on Edge: 1.677236, on Cloud: NaN) -average network delay: 0.120208 seconds. (LAN delay: 0.108228, MAN delay: 0.012968, WAN delay: NaN) -average server utilization Edge/Cloud: 21.228798/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 16:54:12. It took 10 Minutes 39 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 16:54:12 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1200 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 273473(273473/0) -# of failed tasks (Edge/Cloud): 2296(2296/0) -# of completed tasks (Edge/Cloud): 271177(271177/0) -# of uncompleted tasks (Edge/Cloud): 219(219/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2296/0(0/0/0) -percentage of failed tasks: 0.839571% -average service time: 1.880113 seconds. (on Edge: 1.880113, on Cloud: NaN) -average processing time: 1.761356 seconds. (on Edge: 1.761356, on Cloud: NaN) -average network delay: 0.118756 seconds. (LAN delay: 0.106766, MAN delay: 0.012964, WAN delay: NaN) -average server utilization Edge/Cloud: 22.834030/0.000000 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:05:11. It took 10 Minutes 58 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:05:11 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 314201(185128/129073) -# of failed tasks (Edge/Cloud): 2392(1073/1319) -# of completed tasks (Edge/Cloud): 311809(184055/127754) -# of uncompleted tasks (Edge/Cloud): 344(293/51) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2392/0(0/0/0) -percentage of failed tasks: 0.761296% -average service time: 1.599207 seconds. (on Edge: 1.466031, on Cloud: 1.791074) -average processing time: 0.838821 seconds. (on Edge: 1.344627, on Cloud: 0.110105) -average network delay: 0.760386 seconds. (LAN delay: 0.109824, MAN delay: 0.012760, WAN delay: 1.680968) -average server utilization Edge/Cloud: 11.915850/2.052341 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:19:02. It took 13 Minutes 51 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:19:02 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 337757(331600/6157) -# of failed tasks (Edge/Cloud): 4984(4171/813) -# of completed tasks (Edge/Cloud): 332773(327429/5344) -# of uncompleted tasks (Edge/Cloud): 511(511/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 4217/767(0/0/767) -percentage of failed tasks: 1.475617% -average service time: 2.797770 seconds. (on Edge: 2.800765, on Cloud: 2.614221) -average processing time: 2.615700 seconds. (on Edge: 2.656488, on Cloud: 0.116634) -average network delay: 0.182069 seconds. (LAN delay: 0.132092, MAN delay: 0.013144, WAN delay: 2.497586) -average server utilization Edge/Cloud: 39.703655/0.081605 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:35:33. It took 16 Minutes 31 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:35:33 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1400 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 321226(317933/3293) -# of failed tasks (Edge/Cloud): 3556(3532/24) -# of completed tasks (Edge/Cloud): 317670(314401/3269) -# of uncompleted tasks (Edge/Cloud): 374(374/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 3556/0(0/0/0) -percentage of failed tasks: 1.107009% -average service time: 2.483255 seconds. (on Edge: 2.494113, on Cloud: 1.438886) -average processing time: 2.333389 seconds. (on Edge: 2.356538, on Cloud: 0.106921) -average network delay: 0.149866 seconds. (LAN delay: 0.125431, MAN delay: 0.013102, WAN delay: 1.331964) -average server utilization Edge/Cloud: 34.688665/0.068060 -average cost: 0.0$ -Scenario finished at 30/08/2018 17:50:45. It took 15 Minutes 12 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 17:50:45 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 354652(222258/132394) -# of failed tasks (Edge/Cloud): 2878(1499/1379) -# of completed tasks (Edge/Cloud): 351774(220759/131015) -# of uncompleted tasks (Edge/Cloud): 363(314/49) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 2751/127(127/0/0) -percentage of failed tasks: 0.811500% -average service time: 1.711415 seconds. (on Edge: 1.669410, on Cloud: 1.782193) -average processing time: 0.995133 seconds. (on Edge: 1.522218, on Cloud: 0.107001) -average network delay: 0.716282 seconds. (LAN delay: 0.135431, MAN delay: 0.012868, WAN delay: 1.675192) -average server utilization Edge/Cloud: 16.164178/1.941639 -average cost: 0.0$ -Scenario finished at 30/08/2018 18:10:16. It took 19 Minutes 30 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 18:10:16 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 358119(341491/16628) -# of failed tasks (Edge/Cloud): 8812(5099/3713) -# of completed tasks (Edge/Cloud): 349307(336392/12915) -# of uncompleted tasks (Edge/Cloud): 583(583/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 5237/3575(0/0/3575) -percentage of failed tasks: 2.460635% -average service time: 3.161474 seconds. (on Edge: 3.171439, on Cloud: 2.901900) -average processing time: 2.919204 seconds. (on Edge: 3.026607, on Cloud: 0.121704) -average network delay: 0.242270 seconds. (LAN delay: 0.132599, MAN delay: 0.013177, WAN delay: 2.780196) -average server utilization Edge/Cloud: 47.883063/0.271405 -average cost: 0.0$ -Scenario finished at 30/08/2018 18:29:34. It took 19 Minutes 17 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 18:29:34 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1600 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 375908(352880/23028) -# of failed tasks (Edge/Cloud): 5532(5322/210) -# of completed tasks (Edge/Cloud): 370376(347558/22818) -# of uncompleted tasks (Edge/Cloud): 749(749/0) -# of failed tasks due to vm capacity (Edge/Cloud): 108(108/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 5424/0(0/0/0) -percentage of failed tasks: 1.471637% -average service time: 3.384142 seconds. (on Edge: 3.496209, on Cloud: 1.677167) -average processing time: 3.143068 seconds. (on Edge: 3.341966, on Cloud: 0.113504) -average network delay: 0.241075 seconds. (LAN delay: 0.141995, MAN delay: 0.013201, WAN delay: 1.563664) -average server utilization Edge/Cloud: 53.217033/0.440970 -average cost: 0.0$ -Scenario finished at 30/08/2018 18:51:05. It took 21 Minutes 31 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 18:51:05 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 403912(269624/134288) -# of failed tasks (Edge/Cloud): 4187(2813/1374) -# of completed tasks (Edge/Cloud): 399725(266811/132914) -# of uncompleted tasks (Edge/Cloud): 464(418/46) -# of failed tasks due to vm capacity (Edge/Cloud): 112(112/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 3780/295(295/0/0) -percentage of failed tasks: 1.036612% -average service time: 2.080150 seconds. (on Edge: 2.217547, on Cloud: 1.804338) -average processing time: 1.397972 seconds. (on Edge: 2.039905, on Cloud: 0.109359) -average network delay: 0.682178 seconds. (LAN delay: 0.165670, MAN delay: 0.013001, WAN delay: 1.694979) -average server utilization Edge/Cloud: 26.201804/2.069565 -average cost: 0.0$ -Scenario finished at 30/08/2018 19:15:30. It took 24 Minutes 25 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 19:15:30 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 410351(360195/50156) -# of failed tasks (Edge/Cloud): 27236(6217/21019) -# of completed tasks (Edge/Cloud): 383115(353978/29137) -# of uncompleted tasks (Edge/Cloud): 1577(1577/0) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 6606/20630(65/0/20565) -percentage of failed tasks: 6.637245% -average service time: 3.835048 seconds. (on Edge: 3.836660, on Cloud: 3.815467) -average processing time: 3.392348 seconds. (on Edge: 3.662883, on Cloud: 0.105685) -average network delay: 0.442700 seconds. (LAN delay: 0.161498, MAN delay: 0.013222, WAN delay: 3.709782) -average server utilization Edge/Cloud: 60.454013/0.541137 -average cost: 0.0$ -Scenario finished at 30/08/2018 19:38:47. It took 23 Minutes 16 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 19:38:47 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 1800 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 406719(370099/36620) -# of failed tasks (Edge/Cloud): 12109(11768/341) -# of completed tasks (Edge/Cloud): 394610(358331/36279) -# of uncompleted tasks (Edge/Cloud): 1419(1419/0) -# of failed tasks due to vm capacity (Edge/Cloud): 416(416/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 6430/5263(5263/0/0) -percentage of failed tasks: 2.977240% -average service time: 3.682708 seconds. (on Edge: 3.887171, on Cloud: 1.663204) -average processing time: 3.304319 seconds. (on Edge: 3.627733, on Cloud: 0.109928) -average network delay: 0.378389 seconds. (LAN delay: 0.247145, MAN delay: 0.013255, WAN delay: 1.553275) -average server utilization Edge/Cloud: 59.883182/0.615552 -average cost: 0.0$ -Scenario finished at 30/08/2018 20:03:40. It took 24 Minutes 53 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 20:03:40 -Scenario: TWO_TIER_WITH_EO - Policy: NETWORK_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 2000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 472132(335995/136137) -# of failed tasks (Edge/Cloud): 13842(12395/1447) -# of completed tasks (Edge/Cloud): 458290(323600/134690) -# of uncompleted tasks (Edge/Cloud): 778(732/46) -# of failed tasks due to vm capacity (Edge/Cloud): 3925(3925/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 6065/3852(3852/0/0) -percentage of failed tasks: 2.931807% -average service time: 3.106907 seconds. (on Edge: 3.645084, on Cloud: 1.813905) -average processing time: 2.394212 seconds. (on Edge: 3.345234, on Cloud: 0.109330) -average network delay: 0.712694 seconds. (LAN delay: 0.287646, MAN delay: 0.013185, WAN delay: 1.704575) -average server utilization Edge/Cloud: 48.776278/1.999331 -average cost: 0.0$ -Scenario finished at 30/08/2018 20:36:45. It took 33 Minutes 4 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 20:36:45 -Scenario: TWO_TIER_WITH_EO - Policy: UTILIZATION_BASED - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 2000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 469273(368119/101154) -# of failed tasks (Edge/Cloud): 62954(7149/55805) -# of completed tasks (Edge/Cloud): 406319(360970/45349) -# of uncompleted tasks (Edge/Cloud): 1761(1727/34) -# of failed tasks due to vm capacity (Edge/Cloud): 0(0/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 8064/54890(0/0/54890) -percentage of failed tasks: 13.415219% -average service time: 4.401645 seconds. (on Edge: 4.394803, on Cloud: 4.456103) -average processing time: 3.774144 seconds. (on Edge: 4.235375, on Cloud: 0.102831) -average network delay: 0.627501 seconds. (LAN delay: 0.147140, MAN delay: 0.013231, WAN delay: 4.353273) -average server utilization Edge/Cloud: 69.488772/0.854515 -average cost: 0.0$ -Scenario finished at 30/08/2018 21:03:17. It took 26 Minutes 31 Seconds ----------------------------------------------------------------------- -Scenario started at 30/08/2018 21:03:17 -Scenario: TWO_TIER_WITH_EO - Policy: HYBRID - #iteration: 1 -Duration: 30.0 min (warm up period: 3.0 min) - #devices: 2000 -Creating tasks...Done, -Creating device locations...Done. -SimManager is starting...Done. -.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100 -# of tasks (Edge/Cloud): 466709(390271/76438) -# of failed tasks (Edge/Cloud): 18041(17271/770) -# of completed tasks (Edge/Cloud): 448668(373000/75668) -# of uncompleted tasks (Edge/Cloud): 1702(1667/35) -# of failed tasks due to vm capacity (Edge/Cloud): 7541(7541/0) -# of failed tasks due to Mobility/Network(WLAN/MAN/WAN): 8779/1721(1721/0/0) -percentage of failed tasks: 3.865578% -average service time: 4.367623 seconds. (on Edge: 4.894161, on Cloud: 1.772096) -average processing time: 3.892593 seconds. (on Edge: 4.659362, on Cloud: 0.112859) -average network delay: 0.475030 seconds. (LAN delay: 0.222459, MAN delay: 0.013298, WAN delay: 1.659237) -average server utilization Edge/Cloud: 76.583791/1.254348 -average cost: 0.0$ -Scenario finished at 30/08/2018 21:32:19. It took 29 Minutes 2 Seconds ----------------------------------------------------------------------- -Simulation finished at 30/08/2018 21:32:19. It took 6 Hours 2 Minutes 49 Seconds diff --git a/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite1.tar.gz b/scripts/sample_app2/output/30-08-2018_15-29/default_config/ite1.tar.gz deleted file mode 100644 index 8eeb105b94579ddfcc2da334ce890abbec8500a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138486 zcmV)=K!m>^iwFQSIEY&S1MK}tuXf3CCJ1u<{faE~{`6tC(|1A(znduR@G9m0$gb`d6Np{r#W+-~aKi|Hps$55M|<{_B7H*Z=Xa z|G$_0zV`di^zXmx`Tx^z|KT5h^H2ZvcYplTAOF`s{OOOs{mnoA>3{w0AOG{8e)ESv z{r)%7^pF3`pZ@1x|I=^&{!b}{zyHlY|Mu^G^G|>J-5>t$*MI!&AAbM#zy0t3?JM8V z18%LnIR6-8t#|1AgJ>|9|_}|MP$R@BiVy{oDWN-~Nw({U87K z|N0OA@BjY4{oDWaC64eG-b;P&^?d|+Z2H*Vd$Grvu8%_>%X`o7BY#Pu@G-rQ@+HM^ zeQX>#+GFye4<#L%Jo-@5p?*othU)Jl z%D29x9`No6@-2DPp=z+s@;G#;nrx^bkK^*|Ec~_WV-7l0jXG4D^4RdJe5my=IoeR! z9-BOl%VR2+#~k=>es5JC+vTyO>!S@-?7Q-AEtkh;Lp9me_m*IAH{yniH}tmSn{|$ zmU8)Sz09iA#ufGV7QU3`3oQ0)8<)rK3rseYLHp^^_p0dD6@&I#?TqACgZA1L804`U zw9BJzd;U@l+Uu}i^|A4>=>n@kd!6=J<#F)WZjT1-E!d;HYtY^d>f{uvLHqF`gZ66R zt?wGN>tolAtp@GK$UR)90ccmeut$UT7u$EJtU4BA_^U**xD zUBBCGWP|or^-(8j(B8T|$|Mcin~^W=Y|yTqi%r9zy&37#UuQc%c7yiQ$*Yv@vA}m+MI6CzIL*YaNfyo(0+8D zK9pffpMHWx4`l=g(WbyZqJyYm=rCwM9s%tRgd>g1y9VvmD6lMH7_^@r38I3MvKymv zC_zctjZuj>im>6!XpV!~9s%uDDU!b19dYdR#~=>sQ2NLP>Z43@5=6Cg{xTP|+piPQ zz8(SX%BlqQpUeDL8ILB_1(F$J1)>r|5{(`0HNGRy(%*G zeQwwf9be{GoJDZH#U&ztc9BS*Wk1T|5);2We#m%ApGv)+Z*fMU-_!S9E}Gf)qx37h zlz!d6vY5p%cqx^FT`Fh)=upUzSo=yfu7Xn^eW@IJ4cK7o-+@~faNU@k~IL=XU))r`xj&;~meXT%RlP7h2DZqLLw zeP5q(K^}IE6?pCIhOC!leQwuh+>uYuc1gDL>vCQlx8!LzT^+CccoV;Oj;FV1frmbL zW5dl@p8d)eF~7<2lwXW5|K7@u&%ejt_v!z}Uqk;VSl(U#SEIHk{okMZzmNF)DgB@P z`#lM#%&Aia7zK~hobNdfY5}EPS{hr1wRCA2(o(4ll%CSkr6p1wcx|zfMMANWL#I+O z+EbK&0`-C-ed-fhjPi;6X>X-jsU1u~z8qwhV^Tqw!n7G$AESRV2b*Do zqoxooI!>puFvZAk1?me$+GU?gm7%uiy3&l)8m6c_R`IP_ZsS0Ah_{;cf%-7T%C`bF zi05&jL`+e4EZVxDN5osr)(%x7T4X+BP@AYNm~)~+5iK&#DAXzHx6r3htte+CEeUV6 zuv+9>eNefWqMnz0uQ%!!Mf#T$mbZGKicwBhA?01%4iXB2Z~0tbo4QKLT(Lc zkv>p2TAw6y7NG_jM~tj*MJgRr3j9{0-Z3Rvsm$BPNf^2F>y_F^`<9LD3dodXrSiQb z0wQ#f_Lht#w-Kr#+1s}kKlb|^i(nx zlQxdExNb7#s5r`&vF6k5EodmwC)?Mdq(q-)Ux%JD<;0dmRi$8=v=p`sZ;8`Z3Wa6L z6FaZt00&E8OQzaV-dB2n7T{pvd6h`zC0catf%?moJHJ(^!j$_V-|Ez2+MMkK0~MLJ zE^A5DW!l;m4n-t}IumatgCA%#Q&y-8)(1*WthCrT&}*Vkw{JnUiIF?{q{qm>LF=Os zHK^k}&j)Hwv=oCnXgaadf^XGhWNj(bcjB#J@C=nF)}Apka4=22<%&Um-0K@};!UX3C_OR6wt6jH={C`xr4 z%&<~dYLH-GZ&a7+IGACk#?)ZdS|XLEiUs(3q}~)W%mxWioeDlE$Foz0_SCRI&q5#y z3RJ@;Ybn&BVjP9=Of@PnC7`8*8~i|-YAs6H1P7r{wQ-b6C<^=VYB z8Wzaeqov(jh=cMiJ=Zj-VMWVSIHHo(;740>pq|yBSJtm@LDg!IS@f+$ZL3i~xey7r zp~BVPvX)MrtGy+cBB=Rje8tzR%@F!m`&KEK4{a*j@MX=jtH0Zr2t zwCGjY1UxK*y_&0Ot(O9AT$)K`;dpXBQ23c`J)>MzZFWxlPp>^y%biJue z;GXpYg4&DOz>OMTd@*ufV=-WB>aO<{J}XTM%f(f{=vA>3DJ+P$*;iKp1GziKO3^7T zws5I|jg%Nbch>}?DH{!-G8n@rZ(7vWXwYz#Fo;?6rbWB5(G^z=gPduv>bhYJAK8mc zv$H9=hS(^+?me2uB68Z4T~CZA8^Be?*Llrj_QfO}DvWIsBCx8cL!I%pDK5a&raWA8 zY`~OkVXizr3sTe{+i5F@FU3{JcC-Ov8@0&Rq*93WI#{T^I9!(uS+22HTdd9mwdxvW zo4rk9DV6bJ<`+kJ^dci2U{hsjmuXG z(`t7Dsrm8@-5+jab`>+tHQW#$oIV7F^Gb zrfj!6s=7fz(KHvg3b>h3?TvXgGJC4t1^f9#dwAY+i&Ii33=m-F%OZa z-&zaDTm|*tln0*v$`@lQa&dUOE=rgA#kkAtZ^9mr-`cw@>x*%jK5q+@4rx1lVX!8M&` zqD=g)lzINss{nSf-q$a?Z}PtVDi7zQ5!$RPj>g*Lp7?e?Q#l>HYg|rNJwiUesv8pF z2Nd4s103{C<9vC(g)0yO1dRvksc)bz8aI?5uM+~8Me@bBa5*9l+u+pvCL-GD#fBe^ zR|+8X>mJD|&Fdd6DZ&NXeZ$@~eS|xLDx$;UBg?MWapjFl z8R%j)Xc|35*?L`9H zB(!ibN!L#hdFX#GGryn*pq$?5^Pt&Aw0rfDL8s@P04cP>kffwQAu_%V8j_5>T=!G} z|4!OqVp3g9wol7x!Nw#f{iGh1=BAc!5X@y5Wfo}M{%BNMw&?O(0%Ev5>TTpFfq-c$ zM`wQYgP+@dhK)+WdZh%}`Ls?O8*} z%auIKkF;zlZ@Yg+U>HU&+2k9$w51t|eKJM+t&x*IR^}!!p>+=y-0t82+n93w+r*W# z(@qv+ej-t>w3#UbR45j@K%1F-_=5J?L>!vW6u0j)mfeOWP2m6bqb`+>|NV;QJbswh zgy`Lvfc=L1&AhQFzGxIScVZk2Zi22mro?!GwmS$|;bg~eYqsAiyyNdo8^4)UlXnLX z8=V~dO;8ZRc9lQec-QBK%-tDPb>f=tUFTg?fw@oqbtB+HAg>VQcEBi9^MOSI-mnQO zd|l)VJ#`W6U>}TOJ_&KZ&VJBxIPZkW#8cQ1pP(h8L8UoSc4(H{H{7t;AK%Z;$yJJ%OXrO{G_$B}N( z{OyCc%y=r1!EA5^b0?Wd>I=Jn*AY^mvynB7cP1YKw`mc?u@(cmd3x zJE>hS2B7aM72h{3-QlN`+6!WwL2*KY?xgnJXqm8wa(^8Zf86m*MQj*S_0n;d0GkJ! zjH`e>A?3lkD*w6&yS%Ew&|2z_=)mM!UA%RR>+WKgX?qn!yxahqK~-NAK3_IpDg1Q{ z+&;VA!RL0tgDJ$jY!>e#Nuo`6JWxWuM(gg9zV+@GdBeM{MxhsWUg07)Vq=>Pldp2q zE0XH=4Hvg>1Xr&TFayhP4+8(Vk-$Do@l{U0JbrJKeeb}m^Q*iM%;(h=CgeUju=a+C z9d(x#6<|Qt72J_L(3HHpQ+dqJlXS{JG%r6X=WgYbn-sQpBp9Ll279`P{s@phuJh3Y zfn;m)Qyiy}dQy}Pv{C2#T^9rj=4v_24Z~%~P+Ic%bVW(N&Pg~5E!e6fxXDae4+7R~ zz0KEnV^ksp&E`}n-#M!rx##1`rMv;=?xD&6eZJ!+Y~ONJk5`u&T*Zm|?gtvg6(sNU zDbO@7?>(e|e1~k>%mtWk+6yH>w4N)Uk9R<6S2I2;FzvG%TdtcU6ONJ{s6f4RbwL zlksV62jzOJZfWluMw#8_UT&g{YeQ&$Pgf#A=%OWFE)zTE=tgy!2?e}`}q@Fb2_lK?n+8|i+pVFk@wA=J|*OBbjeGz9Lq&KYCt#+54 z@FVDQzNbuRCc7(f)btkM~AyF=$!952~&15cK-$u#11$$=-q6mm85?| zy6P(^qq?g@qQtN~9rFEZM>RW~9t0gXH&41h45($EY>mDUDmFgIURZt+iWu!88?UOfv}i4qq7Tb>eI21uugd?#T176b0;Z6eKorI7ZN{oJWSH7QR$ z!JSjl-9kI7Fe5v6?NQzPLbvT9)(>~Y5Hfbd)bVC!DcFuk!FNN|@0%lp7l$&&hYIQePT3{(n5=Zr3-uEb+Wr)tO!W?(nDt--4jKb=N$}`P?WRY z8;rV)y#yK*2jHGEHe@Hcql%f}?yCEn+~^)G$|U36Adpv(<$S1y<5OisHy1U>Tvu3Z zIW@i#P!H#q=f%iyy1M4&aeYy^hewQ1!v4Iv(Kkj#^&2;icLh&$ubHj3v$+G!M*jk= zsLfSbkBjs}Sf`tf-pKEl<0DeED;UtyW?VpK_cY;!<$5!&u;A@wiSkGrvY6+e47l!Qe#H9~2x^th+_C z-7g5ex@(aV;wvid5TrXrzs+I?7`^OgtlBraCH05d7bn$SKmVXC!F`p4T+^YJMi^vlR`-!`yEv?CLNzda(}A5>u0p^NBn)w|Led0 z@wdPG?f=6feV;MFzy1Ax{KFrA{oCLF!*727$3Ol0zxl+rPWHhAHcM z?f)fL+tgP4uaMYZg(Sd`KmETx;&1Q&C70$d1arvU;azo7Lm1f@rSu|yW18tp?q{X< zIQkGeV?;$bcFV2T+G;O?+V9Y`+7KiD;GpkOrLR0&m8(b-O4Nl`e+lpWzqi{z$1nbW zU!=WG`I3+#`G82V(*y&#w~Fj6ELv_{Nod~SRP~jA?^F4>zwgKYvn%MgB?0(p{6FIV zQ^=u~D)?XI67z}wAMy9o`9G7$(VG0EcnVNW^-(lkN%t(E)}m?K+(oU_D3?!7and{& zs6JW7#Ng>bErpBbtDBw?)RMwXX^AT-sQ#|4edPt!L|vM=uB_Cc+DE?Enr8>KZqgZN<2+y*Ay$7^scN-p#yz#^<<&?`;>oDp$k|MLLzGt@yp}? zYe;AbV`UAEY?+=oH0U_;W=Nhp)cR;xhcI`7g<7m;8lns55RVYukxEGaNw56q@4>NCR>N3svmOcBZCa=+zmgosc6}qG5 zH_D!awDMc}7Odl%l1p3i^h~6h3`MED+PuTp3Dv$}%7KRnk+AHXqMZnhXo{>r7Ru z(4@JNa`$Yd3Wu7ZGcR`}gUw= zm#t-ZUeloTr`mj&+En{k4qbQCu|AfAc6x$Sdu!UdnB&ym(v=QRb86ojHfLr!4FS8V z^8pU(+MA4A0$pjWMW9NtpfS^3HoDq`j?rsI_t4%-^qaAr*R=~g!&yf51S`#r9x^!7 zV2}y7n5xvKHG_>F);_msec%9NZ?$Sz(1C+L>90bqRIm3+uFs8fFJf*6gd$d(BtLkZ=;l6Qst1s*}h)Q(Tus$}Q<{4IP zUCqv&NmdQxicu}*Sq_hrC9!Pu2&XFbix6SNxAHT#_BXtkzkEAcd~21MBojV=j* znPhXIS3*^>M31(te65&!wiVL>0aG1Dh&*d+AhptfIwo$lrfS5=bGHUku)N~`&zt2L zTu*r8NnB4T;CWn6l*LoI+OiYY7*AMP4CXzds~)`Ws*Xj!02@AF_Dt)lAXHZqh94#k z+fFdKs{(ZmY$^-R)fiY;{6AhSCiKvfFAy%$=QQe0gS|DCz+SERBy=o=2^i-M*h}NQ z`WoK$ewpE|sX;)YwcRL9ZCo}pAqUQWWq%buhBfL~iD;@ht|OZme-Jo{;-+$8(b5Fc zPy4vw8ir3R8LS)@o0e5vU=(9n#sTI9AK09{vclSnCE&DS^R`~Ps|qHtbIWq=cGAqi zkMx&Wkh+4T(9&%$R?r>Vw=vajA`Fe%LXm-KaixlFDmojXiEhdU4J*d&X}=Z$0)VMs zgwfje%bK#Asxf?FFJP@2qZ_0qTA;1T=C#buwqF(elg4J*b7=y(qlH<(1IyOz7_=*w zfL@_3Yx1QRu(l8YLUGG6UesR04a9=em_%6d|L7Gt7W0l5?tO8CFHR_7qhaN}G{Llc zIY$_DZH>A)VJtJQ4IlU-uvRBgqKS~S*fuRkk-3FTIV&jDb2g?+>#XfWhP>>FXRTK? z;gg0~>s9QC-4fff!YZK<_E)?(I0;~_O=6gsNK>m2b&O@bfVDc74WHb=DzcTl*o<${ ztSVT6vC^`h0u=@p1dFL{PDyM6)@oBGU4=E&Hae40zyxZ;7j8}^))F5Tkzws@st3?{ zDMZ7@*{pU)1a>f2tucgJ5~I%~7rpm$}iXiE?`F#Wc35fr~19F_UegloeJoTa4BDVmgK&>_x1lh!TQZ z4UNF4>=n{79O@+0^U6$Uz*?gK4f_QPAto`f##R@_RF-LDu{uEHf{I)Ju%L+jg82{2 zCIx8Yu{p5$T_-UQl2(DpjcL;hdg+Tj93(B{i=D~S14X>#raO$4fC@b=cA~}|NJk1`nx~;!+-e+ z^UpWfe+A8=^`@rEF!zy zV})3~n@fLDV@ehBJ&PvrIaz;d{gENVdx~!<4Y^Ne!Qrfk_PwT`6x8A)GFBcV1l5n2 z=|{di5z=Bf8qPv90{iSv8vhw<*|v@&M0mEB|x0T4P$}#q&RBt1*&IV1fN7 zo8~u|R0I3ZrKN<`QZY_>j9f8tXG^91N3I!mudT!L0%X&kYt@B7`wv>Q&cdYq2Q6AD z#d81%IWa-2uBvfGHT7Amhj`(*Vs-+pH_~bUDY}2ftO#!ZF*||QXvl8=(VeijJfy$G zX;;@;-2NjB6kk_ciizb#?I_kK)BaNugmn?fY5yr|ebHF-?DikID4FzL&w|&HcqDf$NJbfmG+;KA>G@zOc*bE$Fh+V?LQ?a zzU5)|)|3z^6w|l_TLtVtrEtfz z4?OltHEF#j&;MLZJE40RY5!5%skP|08Z4#FG?VrgB5Udd)Frq76cfFt?FQ^W)}rv7 z-2PKcGUiIBTT1O)(aY0WAB9X2s$u^@%TS9T?LWn&b?grV)En_4y8Wk^_+IT>l{VPQ z`MCY3=shE1$0}{GrrKajTW@JisX_aX+Iv-~w{hy)jg;^$*kDZq(+uih|FJzxI4{_L zFwVeA2S&C#`g@hj3G6?%cDeP{;PxN1G_}{#{$qP6r&wmB{m0g>EyL|UXz9|@Y5%bn zf$%ai?LW2~0v~c#wEq;Vb)xp;Liw;FGNwohI)1G&H9XM$9*9N{095hQt!dq>P zoH;|_ptTHq9XP0!Ns7+U?LTVkR+ukB>tO%6v;YS$EzRLjuu0br`ww;l^MU;beRL1K z6rP=hV6LtU_8&X18qg;#c(y)n|51xQ_OR3bbNM>GW_6rl>w^8K=q;~KTf2uPYgNr+ ztAPEdsQR%DwhYJIu6^A8qaF>icj^H^`;Wb)efp&R2Q5u^m-e5cx)tj)X#c^trk(qs zAB4^)*(wIhqN+_j*!~PwMy>3VY5y_2u$5-oe{5GP)&=_y`siC8--|vKUq5iL6nv|$ zk*%fE{(}~IYc|?{ir#mv#qB>uFU0~;HB{Pv3@fwJpGfw zi`#!}WE;orKeii6je`f-7TnSeyJ7#aZ^;a6Xte*>K5L(4|FLf=PYE7IYxAiAExat^ z%*%xKAEPaK8phH7W29Em8%@U<4x1zGKXyRY)ZG4KJ5saFlJ*}v>I#6R{RhyP4a;c% zv2CiD=!!)>aFO;OfS)!+xBu7*4Qi9yf6i#_(WXibbY2?x61qG2fXFtt|DadlRL3IM zB*nD)g zRI;r*5m}$9nTF2R7+IpJgK+m%<*%qDYh$ha&(>tUiratCOP1ZE+kb5M64;9sn+Qub z{8+PB_lEU(PS?IQI*M6C7Q|YKSlMO zdfGaPM0Qy)ybxR3e=vMxuY+MKdF#vmgQ<3$P^!o5D?lzCJX0a3uQ*36dt$%RiEHvW zQeO<&di535co}{k%)WB=bIo2iTEPVNpUaD||6JAx`w!MwFfZ7DY!Zs1t-JllrfOTb z>IbUtnr)8t%4_x-G1XQTL2GJ;IBx&3<4}gFVHB|cU=our0&6>&x*jd;KbK|aeh5Mh zV3LWoBtv7B7BnJfSi9^$pp6q)o996;Ax6;tbCw!t{{i76c`R{prc#W`)Bba2Xte); z@)x7?wEuu%WD^-_|1l1)yeO{1gJ)($`ww_eHa~#`_6MG%^ zQTyUpr4bt${#^E-0uMM&Vz|RG=CuN%E`l4&B$~4rCh=kVzdtMf=Rg1E*T0i)KVkZ@ zzpvVVa=gX=RN*n7`rnWEdlCO5OjfIhziWu1M)~O>r8tAon4}5L!&?zf8E2|VP$`Yp z&9E|r)~1;S#KX)3afr07m_PoHjrtb}0qP}peK)ijW<*@Fh<5TP z@xOhq`S%;_zrpc8_ZrRq8$R>Df5_h+|Ff1kP~?;U)6}s|&?dJjI9Wt;Dw@5ciFLL^^3&iu8NYUT%%WK?Sw8XqBmQ3af5<&d?yIUQevfif zwY-#7-2>T3Eur|SsY8DaX<%ZtM5Hv3H>;)FhRwu%}m0vO+FU|BJ z0(r`#msv$DsG1Tc3a=NI-9%_8abzSCP@l0P;y{%Pzy4d30ez8shLD+|N$inRKwxMJ ze-|p!m=Q>`{>VsjCy`5r>PqZJ@h0p)%r=MIDCAzDS#|c5V^)z8gzm&V; zBC7YM?s=)^o-DOTZi0w{Tp}9QA`ZxpPRF4xZQKEayDk$QvL8QYqwds;@l@1HhWjTXCY?3O87tbd$otKsx!@h0_7z0nD4o&`a`|H3;RVmBqrp^`(cq6 zq%qSy6Z4Gi9@0meVq=J4@Wy0fcc1`~YQ(JLnY$@{u-u*#Qf^2qfg=i~WW;SGK#VCU*=x>7t2a*g~b zMdS6@v=o}JoTZv?H7?Et*@Rl{Ae2di`Zmir{KuaKm%xFXkKC(3JW6T8#r&BsI6t$A z!}q-BT^dh#p(~wxBytVzkiIVl0pE1ZDZc>>xT&Xm(tI2~Jl5sSXK75WxQ5Ir_dNb& z9`IzBF5`aMt61Bv%188CZ3+>oWdwdFxm2i$15XhSX0PvHSNreqXhs(T7WQTe1o|g$aVTSX((ElCJ zg&%#o;{YI_vhKVWm+K^DyHbdBt&cl~$RtaBE1u=3VGq^;CY7CDWVAdD$ z=|>W1I^f?@EA!Cli(j4f4Z0RJ=Z+T2aoT_ z_|&(Y2G0NcJjDnD5aPEvECd9|pw}&8@i90_-LubgRHKY>mpwZ$Vn9G@CyXL^Al}O; zcnz~eL2Wl|Lzvo5G-PtAvMsgRnIB_Udj=5){hk~hzoAghqqqrv8+h+=iCGoP!mex^ zA`@!bVeIfimbAfMWa9*ApDaK1_e z{BhvN>n8J?jo=bDS1<%V$h~HVjEI2{Om(t=5Qvnw90$=5atqiAj0lWK_u5*l_Jt}4 zV|(#LxP<2Y-<0=2`^zUy=z?Bl)H`&HSsaIPgis$*q}CS!BSU_gxG^9~LX8}mYh z_b{2dy-0e-w73=D7(7$&WrHsD!pgno?y3)#0RQ_!X|4dcu82pDK%1AlF}YVeVT|E7 z!l1Urnh=ST^L|zc%Bg!9knuTvK1+zNNS&Q#b$HB<)==8iL_+kAV#Wp=5yw-v;v6G- z^4#hq5!;hqD3B56lTI`iQ9k*unR4!ch#!H&-EEt}KXtEl@jP&w!j@rWgrn`j!+~B7 zg-d_huL?mz+cm6sp%)i}xSws>Ek=XJq z1QqE;WmnS;@kQ}oZP7=@<^KgnBkCxnt^S7rNa?%>gZQ%3r>;<>t%S^|r24=Y`w{U; z0);z+0wa~`QD%zSFt&uddP&CZED*eu$E~(9=^x^lTraBgAjU~QxLry2i}_AgLFCie10!Of?)9a;rWC@V`b{Izd=0KF*eP-u zB=t%NLcCPIna0+y40zlhO=I@wqCW0ydQ8ph={_nh1&`M1^I7h!t~y*= zI_r*IebwX==-S~Pv-v$L&+%1;V{R{tjPc5CD{vv&D{qTyGww^?++I}>0`^KCLNu7t z$DQ=hUD0|yOE(@?N_D$yGsDGHC%d^fGjc4xnsaw+&JMQ`PbR-^F~2Y6!q(tvR5;h2 z;QjCIhVc3K@AUVL{{P?Y^K<_DO8&Q=N^$=`_5A%+NGa9!>HqT)f8Xr?lk!$TH8OZp zA0!YQRKUJb$Uy_Qj$XDJNhA;65>^;swjM=L8{W7jEr2kNJSCn0r=aP=CGra2xEmGi zb``m;lZt(O8JmS%{%<>9DT-EMGla=iW0`Z{@zZYn+jULn&%wi|?R{zxd%o2O!@=iX z&A#~6$^?}gTlCAMaTx!6!4apOo(H1RO%z`;YC8`D$>@Ghcj=ElW>=ZCI1k6U5E!vy zmjmIbbGxT=3@X)#Yl(8?gck4O>|D3x8myR^;wci%pb7a{&`!d{f?#2Ty8QwWt5T|p_ z7I5LI({36-dej6S|Aq#@Pv>sQB*4Q@$Dt99ImsPTNX0I|M<9YDj@!?fUvcm3L&~+Y zJhA51O`^Lv;cV_>?t_!>AnZQ^!RAKM0(YEvC(LJmoSU${s5T5AH}R6A!tQZD8IC%+ zHye7-ie5K^7^!-|Rd#IXDZF&XRz8Q9&b=13{|2z!(P;YN@I>i(vxR&(-t;}2LRyZS zYMj0*$j`ptiT0Wf(C20ghxEAFYO~;Qb8`Xp_eQ%=0ag>c-O=b1HHj5FXoHWdOtqF)Jag#=ZC))INkZIr z2DOs5^plm#wjLI&VYY>RxZLdF6fQS?3z_h^*~30PZnh^3@0&gJ!TaWJIiNpHBxG)& z4}LiJ`>6Zc05W%E9)37utD=D$&fc2cTnyaMOL*k$F^~1s_G31%j^(xk<=ag`M0kQ{ zPP{oJy0i&n#)}_e%eb=-4omvE6SSC(^YFu=gt)Ueb;^sovx19G-AX8(^5X5R+zlta zM)2+e;}yftK00X$zHrMqKT}NI;WaC|ZE**VICt*@zSkko?CeeO!x?@dfa}d&-*tAq z8CyjRTyO3!0GJwGZ|-t2euEBei=J@3aZ#70;kI;>NkX@W%ygmK6)|z>R%U?LP2RFJ zCKKHfIQZP;J!fEs(S=!qlybZL-dp+LFa1Gw0{2%%x}(zmlu%`%0+i{_B`={d8IXY$^=(*@F5X74T3u2KPO z*lodL^76a-^8UNSNjS#TE$Fen-MYC2-hkI5m$oz41^M>HqRd zVGwv@9=pZE{l#xd^moa3BzH#*UXynhCAz+>+kW(`@ovI&b=ezgScY%!bi{&uTX?72 z%iSyY;`VZ2pu4*4RWNXMd10o5tIOCM0pRK~Z-TMENzrhJW?s~9e^7}OZx8+Sd%3$y z_^*D2-kxe=oM7Hb2=swj0FrpCzC|>6XA;4!36iw|_oN_^KJNWY>XjAI;U(|2mvne} zp(0BZ5ck-gc){NBBf7i1(u5^mvA2R2-Cg#21g|@|*VJX+vJVfC2oY%kGJRV18cF)J z?2S&WNVtbM__VwT`-4wQ-CoVSUg7p~M3PJr*yE)n7ik(g}3iL zb1UVihzguvUU51m*WI60anW)Y77EvwS8SfSclWT)DvVoMmrgKu=U(3>cpUCwfIcw$ zQ>72gKK_;dFb9AzYwzA+i1iy^d?y3Rx6_9Qj7CcBm`?RO`Szm)x1p^ABuhSSHGH1@ zch9FQ@8x^r18MMbm;oBaEl;Vum){odrV3KsEnS66Oy1)Z(+2O~ghNc-TPIjba!=mq z4znkW@P;`N3_8QSK%z#Ob}!e#8Ro^cpUyDp4$&89n3vy0PU1blusY?71$L^Gc2G*k zn1hqS7iKx?!TV*Ne&`CpZp5DupgV8qYw(_4Yt87^@`4Y+t>wiLcal^; z;Z7pDm%TcP=;}?fxh6?Ux!g~FO8V-43*XLb@Q$!OarmaZwBzw6K6h~V?`$gk#qD~b7EVcye=qXC_K`AZE+TI)<8I`&TtR&=g>$)(q-RR_{BcA3J|W(h%V1XD-O zMFhq=hj5WLa%BcMwcpCjba8;AG?Q_V=TxOMji>x&wlUnJONagyJdQWjiwWqe+-+ORrSQE8;J%Lkh4`Q4e{23H1-wuE|A@aA`CoeykRDplcmc|ca$-U zr9Bi}ZnbFIPC=!t*j}5+tb(OO1RFWdxCnrHa2K@(YZ-@--{VAH$q__K(`4}?jB1`% zMd2Ff2z`bs@>?bLHw`cxf^A`n#3Pc(yV)1p`w&cgPwgG@gGfg+&Dk}tE7Cn@5fw#9 z8k+4@2!IzR9s+7|x2i#@MN&~?kNvr4=~mjPLU9r#bX9Bgp68TnT@`LM_0!VSgtW;8 zGL?=L_qKC?(-h!a`Tut#{ps)P`QJVNtH{?SS^l^1$^Sp(?^XVHt*0s|mMSVWOqB>~ zP%I7Aa=#X3*Met5D=5hEDq099ow?=^hR6f+lK;84A05;(p$JPDA;?v$wfO_ZA9TDb zm%liR2mpaeTvb32v87hIi>E-T;AgL&X19W*S+=cY8HY!Tl^UKq#R_E8C(v8X1R`B!prV zk<7ck7l-0-shaIsZXeP90?)-vLr3e=E&J6X(GS-id z`j-#@T2)yiX#QuR6}3VD7^*9f+kxCC@{IA9C;{r@kW|2@@J|D|^3fB)qFAM&@y z{~_|QR%wHvo`t~+qKZ^j2I!h-t@^W3huj53cJFFrwDd4q1x8KK zg2E%jInDw=PG4%Q!n}psAH&Lpp{aB&lDb?cbl55AE+`*^mV`nTxm?}^O9h1LY)M2z zEdW(#04Y(oTj&jB7Ez=FqZ?Ud{SnI4_i9?CsHs9ODLBd(wUF`)rJs%yqTFP1Xj+X7 zmw+hZ$W8NBEAilh3I#u74;jchzjqwkesQJK-Vu028rL?@R-qO0;h932x+Yh8Go)AKfcIyo^{mZTXjF);w2*BIm5hXnEJ!nDKl!k?TZB< zh`gldE?Y(-y8yn(hEkb2>*9AXX=XtB07ACP81#NmD5go|?$bj^x~8exY%XHb`zCALsJFQz zL|vzF{iFgPLe%>`D&0<=0qc*frAdtiS7bx{`nY>usSDY&Yuf^5(nPR`ZSQdM(ws*K zZr}F4r|d_p`;)@R!QUpq(04tA`*af{-=7;B?evDv?|LK}JHpuaeveKw!iCuPT^d(8 zO9a1bv4MN;z|7$HevjU;K@t0|IcInEAtLixKU^&Ji=Iv`+!H=|WPFWVDvm(;u_*>J z87P0It9j*8yF>7}A4#rzyx5WU?CF9ZoB6<7#L~-=UO6Cl0nt%$lex@(Wv<+(Z~SIT za6{cCc-EodhPuxwh4}iMx9PMQV84MW53pAG8Lp*59odFJ;LjE6n|B;cyiti z2(J1TnBrVTE#@{Fd0&c5#RXd>*s-JSdS9mH7Oz2WgLykSH^G( zeXBX3K|L1~&y2%=(tTqnb?gr*>Amv`M%BspxTh~}9+$r%WE;WLD`UWyxOr)e@!YY^ z%aQY~cR^7LK14_OyDVDnbPvJ%6gwv4^_61k0egskxRZa4kG%XW!U}`tSo6`U-^dbx!=$nD>jwM&Ro%&Oe0J%$WY}KI4eu zZ}&4G3q(x6){EOD#YBLAasPaT^tX9OL;OaNxltrtWmp_dvxNY`A-GF$Tik*>!QI{6 z9fC`6cb5Rc-Q6v?ySuwCd-whBpV{Z>ovt}`dS-UJyXsV@97plh1JAbE=`PymZZ}NW zY4o%IMzU(8ZZW65Q9-J4Pe%v}98R5CYxHNUc_dsoH%P$!@lj%S;<|JQOf+T0cHblh6yYF#8$^78UOJ--Cu;)?$BM(bho!H9LPVBRwrBKKqpzQ6XR*j7DB&Nf@{;E~!rYN3srC3`!?Z4bHkm*MuPk?*ABYFblIEK`cu2V( z#44y>2*ELhl+|}c3O{tqp31lDzOw`6=QFnR*+RwclfUvxv3N=cJI77#$H9F@N*-X& z<8JKtsV{vwGW9!>Xyynp!_Q|*9G>m`9nuBYZ)L1Ui$O~^;$ zY$obj{}~Qia1pZ)CZgw*%TjrA=tVf<@kFRusXkc%YQc}FkX%&v&8v{`y>5pcv0(Jy zZza`bOMCjmvAGqCc+ybFESpBZiT*n?!{dhlV?>CV*s=qmIateB!Du3MO7kLVdT}&szi?g zejZ^{7(W+VzC`ZtoEULRR0{8ttU?#{O!D^n`1d$jR9^l#U?#kM%X-(6QV)iQsh=kT z$4BfoiG3#@0h)HGB4;9}ir~e=gp-=&D%`gM@2lV4Wz*e(atA?w-3JUXIYm5F4!GNx~z`<*}Naan&+;3PIzIQYp)2F^27J@E#9W zD_=SbsEq1A(x3U5tHmIQXD!^CuYXCTt0{}455=>kKTOh-KsAlFv;)Ut0Um*RR)x50 zZ~COM3~BWi^#MCY>5)+pqu*~kD~MqVSbdXL%+fG#!GQrUE)y6&|`RWJmdCo3$BB3M>y_&&H)@TMn}_3JR~! zqu4};uI`E)H-Qqh4fW4X?H3%=Qcl%-57(EK_Zlzn5}@f@i&lR>$&cTpUQW6JI%4e^y2fbb0*stlmaI zLneX)aSM=dRv!vdey$(a&U}#|O7N!Y?+@PwP^rPiuy^LoZKn>z0)srR9C3*5>h*%qQ2j+_My&Wz{udMYVAJ9=sd{4xcLLO}Lak6Nqm zmL9^c#@e$P-^J5#JKl40{ZKRm6}n(z$g22ntLNS@%|$z$#KX|alFGvp5$!sx|zP62TTPqVHSe@8tPDzo#aB!q`~aVb~S z=!Bg3=GE6OCq6_s(QfQJqW@KPmfhd0elk;TvaK4rd(6HA(e?Qf9=Wchu7G%#2(C7Z+k<+#-{XT!*UUrEiADu7einwnAI+CXw;-0n1|3Yu?M z$iQFJNs%fvf?Ax?cR$S?R@77Iyi(@W7=cCa(_r7&4z2j&E1C!M)g4Oi+fY_JqCm2K z#Oc%qCMIH%*fxE@;2{kU$&0$Fkt1e|*MQt{$^j-%?65`i&Vb7ThLQzO?3VqTGqX7L z#KtVw>Okkl)wU_sDerxqk!HndZZ>BZzpq$^I*$+@#PggU0PEeUvkHGtI_X3V{~CrO zpQ|0x%Lp&gNB<&72*+Nz!^hV2EosYUNjX$Ez1Tkqx}^qP9(9oO2Q+cF7DSAEdwn$=` z?Qf>D2FyTdGFKVjTJ`qKFT%O3e{o{YP+58@)`uAupUah2CB!ZJM5kgs{L{p67A=6y zrX=4*J@3kepBFs2tZ#mvk+@~$|tDEndttFL+HB_XoI^V&BL`_xz8VZfX_legi^u>~X|JE7rI z_ZXVD&mQ7epP=IR?{N9aT?@{V9%(6}S-cu)msU-&xO!1Poo??s#`JFSE_c72lo`5T z(bh97zvB3loZTDYmh?wkhE(r!qm)BH+CY10k>Gc5oDEW(>iyGfTTNa<9;YaG&ywUT zfE-c(;4C)9`Y7Q3{N6pkR@z}1cJG*ap!ELS9QX0xWDV<-MSDlHYBwpH9% z1;UbEY)e@Z2Omtu@2Dq3N@4G2cgJcAZ!f*kC=nPsDdZ&$UwnWX0m~D$l}gUbXM<~o zM1Fn$nS^JjNm1H__mO}@g|_;t;n-%2WxeY^sZ2hdjhrO}O`uEP^jtj0+wDYvEj#VOcE$*%@ zqF)HEgjWx5G`aCt0h$}9ZX?5~P!|oKrCV1g5FKc?T&z??#sghKL@<`#BVj&7gzZf; zyzVM4XI3Z3mC!m?PAHY1Zwnp#S6B}zn`#uJSJdy7%1QrZNIf$$M=Iulrg`_j-vc!u zg5kRuC0An}P$Xrsl|8o>Ne&YI>Q~mi7N9!@Z0elYG|w=IC%w|}i!I!|vYebYI%g{z z*las}#;J8zPf&Qd7Tt*F(7R0Xu##9M?jqMczD!#BrT37Ku|l4$nwnZj=nP5RJ7Kce3GL|t%M#hcu=?@ixZF6x<|hoSx{T3Xest_LzPA)cJcC#O-mdVDr6u=CR~ z%{rxt|Ejl;(uA4j5O>WA%PVbCV>4+s7ZOy=R9}`g z3)~bCx08tb)Z7KqzlPKKn#rllT@mX1blX=#y0q%ly{aMD2PffhY}oPSh^Q1-L2fV- z!_0Cf=D&B?OX)fJFW<)7?kS;Nj&Uy1D1es22+@c5wLLf=OVe7HB|CC!%X*dFES4{c zgudtBM&7iJ+JDW5cizvdoRlNT8SOs3 z<6i}@_X&#H&XcaBAx2AYV%3O&h9VUk+J6wL+9faeSA)-#kDbFg=rp2L-OhgZ?vu1v zt2teE$LpD9;28SQb&(8zZ68JN9lnd)eCO$ygAi26;YyL|6?B{D8FKhYw{G|Q%@h$@d3ITt+(6;^;frZ%F z__^=k2khAXyftWM?31?Ysrt-1Io`U)4WSEukU7JqCek{05M(AaSqH5aKGJqa^N9t?lJ}TUKvty#ByD8Sgawpj zRAj3Ziroy`EsEvzm`LsZEXdHUeUw8iSW-@7YhyAR=Yn^$1+^NlrjZ8z-Y-OYwX?f0 z=l*nJ;=SjRr|+2s^#Jh>NxG>)KD2d~pBf3i{|hU7dZ{t?_o2p=Tnswg2>Rk-tv#w# z!B9@I0`pxuT|N2|02h{=p>iTRbR_c%+tCOdO+T}xs}G;aW*}eA@S^~}M>ilwWNO({ zYTKi1f#evmv<7K1!qonJz<7iFYe1j~q>n39e+%Wlyh~6G{D8)X0`|D|C+L<9bpQLK ztJi-6u3-c7p;-~bH>HZwN_|rT)eH+m868EJPr>eA5+HDDv`(xug<3B*^p?&gSs=l0 zc&X6A%!8U!E~3fR8#!y7&OJIis)gc}8pj*DNZdSQ^H!tDoc0`PV;u*;<6RI}^Yt$k z8nvnX!+8uxz5=1^c8poALg~DHB@b^EKf!4hy>Vdm4!@P2_KHfQ_%SAeuXE9;fOa!$ zc}2--r)@U=N>IY#1R1dwV&&nQqy-+Up4F_RyJ(lO5v*Wb63g*e3tg9qonCQaF(LUm zcSLS&TEaQL*0RH?;sAc>YWvQkbw~L&;-;S7qld4`@y4>i#G751qt#;DNoBq z&O@5dZQrle=gYIGYz0}A-taV9Hp}c7(tFBmLInl`_I1|25Za~yauL{@%`0Z+15rz2 zRDv$~_yBf6wF|vLC z-qEoGPC_I13`6Grn!5|T6<`?=CdW_wo*gYcGdsPMa*OS#sAG$jBJgVkS!>8qgI`Fs z!L3j5y3_sTpg{Z_!AF1WUaR*N#b@P`VaM0Q>h#cE-?ecbF_&(*a!BH8Q=N`)Cg+G} z+SS#2Tq|nI5tCw<`$3+Z2#~q5J=b> z*$H4{&C*?(1#U>9yj!Nh;qra4?d)%Wm#|eG_)=Ma=A4Eminjpq6Sy07`)7gPK7lIs zm>4KRz8qd)yX_Rb10?JtV13}~Q|H+2(PRpy0s8-E0zYMq7KG{*zUUh}wR z@0FvO+@kzeS0!Ut!0#o@3m@0g{;x=)wBB-fd@H$P&nY7FJ5gqn{DBB_s0cDBgorDa z^bFZzyzx}^I5%}3v5Ol`@FNg`5yY~~Ww9`HOEzYY9o0_61SGZjKP&lmGGe7H4hp!? zOL&kpPFziy=w^w>h~fh7*OE6k;gUwV8$J8wuAqscZ1qzHmZ5&LVnf4{#Rr8?2IhS` z!a}m%{4tt|kV+I$kiz_96Pc!2YA-$QI*!9Fmg9Ob-k#rLT*iX0#GLG;jfV$FE6 z%#ETlvIy+o%VG~HF%~8NqNnc=1nWb$$u8mj_@&Fp!U?bF^&D*V?Vp|ggYRq|f&v^0 z(=wIe40vlyz2?xvbvfb_c&LdBw9k8oU8^hN7h!nTh3`hydbV zJXE?*-TWc??WEb)+E?y|axn3t8c@O6|4O{W7Y^bsd$kGZ+e!Lf$M?6O(s15^iMxJ~ z7MjJ6pgDGuhg@?%-hyzmXU86*+0L59PL`!{=TNFqbN15-e;RCsmJI@bcKr@#O+5d` zk|R!UA0;CZD_80oN)9}FDYc6Pxk`>|bB@SBGnXCq3%{0GlfA?GS7dW_Hzwa5;iATn0 z>v|wIf$#Nsjp-*-yfJADg}LYAe%{oJ94Loqg||UqfOxqYmxnl=_$P zdUz_1AOBixpIrmR+QT>S@<1K7tLqU<`@Y){CYS5u;j(VTqjWuNXw@U zG11$}Fs%v|p!0I3&y~`_wgcV_Kt3{Cjg>MuE*)_8%t;;cGv)p_ITG){iaKFG6jA+e zeLisZkL}!C>+2u;>}Dur+8l_TRh3-Gz`!HS8f8rN{^SnH4B)UU?K;z(;49u2LUq67 zOFG<{{+ju`%Tqrhb)ICRH}B7+%>?r>7JCIMHqApc+Gvsyh0d`M>MWYQTIKAEZ(Aza zwE_l^%vUocCD|6v-```PSum6g=V(zietv`zwHDAV_oY9|o&DaS%JbQS_#6#S0@g-r zZTF0YCjn3mN8eC1G|%k!mq{#H)_%0XuEieFxk66NZa`aoU5kHm#ajAf@h2KMj6^B) zVY)Q!q}C1#s>dayHRK}UPY_Cq8;!Io*QS9ggE^2DBdeS)94AO?`=sUPq2Q&H1P zcn!NvE6zU2k>1m({j$4Od6WF$pPvcM_Pm0CXF_||$|y~@p4Q&5W3)wU=yC{tnFc+>A^!sB7l@<|=L$FD8Ti!k_n_ z(*F*mczZ*g+)!1M((Z}U?iO&Tk+1_xmMxAD-($SAS_n>srwKkvjNH?3?*2lx0Eo`a zb~q0&g0t-2v42?g`U>+{O>CNa?bU=t=JbjpUNhS5(|vgkYV;Ov)yR9SJq9M{1bM%< ze$oNtxa+mK!)M7p_Ov@$wJu0A%=h>?=M8_wwULWzN&z@uAA_nKZDwni4#;^v5ummCD-908abZDJFKkyO7eQ+>_|c*NHRvQ(&3YoE@m>+Pb@6) z{Rx@Sl2T7CZfbxhWz)WSNCzI9{%zG&|e24!2nLLT=uFb_8FSTmapvVW4X zY(@mKy9v%u?2c&bCkkiw+<*4V$$0W8j^0aMEO6MP`3FAd${NS{=E@npa}M zqA!y4X*Ktb_FMZ!+;YWeWxEe6*8Hd*1+ z$$h@})Z(vxR_0f9c!ZGu7+`x=<7VZsEk;(DtX-6!5hvqMlG@Rj-fV7S z<}knTVqt|@2LAE9-nL>s(U{f0NKAuYN#!a+>PYd#M})D(lQH?sfq`NWZl+a6Q-`m= z97-g{^8tMKWqYzF^0w+UY{|JhPi1y9Us!csn2P4nF<;UHdIOK>n7=m9G|zdKCK}$V zDm2v|ljXYa*5AR{+`Kyip?n4I5L2O^<8WF~xq}X}JV&%X)Gk2VTA0i*sI;nascBcDP*?6vxz% zpugJF^cC5xX8>qT*m+)Q>C-NoY=wc=;t5cuir9{#Bngf9)&c8gNO)=Dy4X!mNhn5` zhG;^9MXpvb$l`L>*IFB03~OS#NG$<3rTW0~Fgthy{#+J6hp=BLg{g0*T&aW%O|ptp zLmvhdC6x5otsZ&vW(Z}yTdS;kPMR3TJZamcCKi?$7cPro$~5=UCWh`$@@ez-=Nc8_ zbLnLp^Wduv8fYCnwG{pIqx)?6^RYGYi^OV%y5!H(Rwz*n_X#}tPb%N`2Q9Y<=QIJW zx7KBuF%|9M_ZefpS{Ar|c<7%pE}+yx-w;;9!;tc5hM<6NWFBT^L&Ip;(y*z83UU>J zRP9yy;=^aeARX-`YAb-NCfZIS^`*vXy>ffADp5`>op^djXMszhPb6t;<4?gV0cf9I z23#$Z7$cZ(+KX8i2@)*9v(vFojWAqgip=tNF9vNCQc=-Gp|kO;@_%r%j2_B))XL1$ zxHz`3pG*E$Tv+y*(T>l@I|cD3EKvB+xL6mpo`=WRGP+m~?E8mmOUwMi;gKm#$o!%` z{HG#3hMb%W012J;BNRG;J4@nDgd@+?bQjAG`z>@K`bW`_1moDzhQuFOIPC|W9D5Qq zBT@Np0M7dUxL9()&CR!d`g{0h#uvAI@sY8IquyWbRfqzF{q29mC35wxOG;u}poe!l zlw6M5(fK*8hiSQD1j6zps&zG74UjMAT`vbF22XxLqgTS{mm_Hfv} z{)PDVV=dNy=ApGsv(IjOn#Nnqh4O+DVDqb8-+r!)A}9?-{Z$Qp{_YFivx95|Aai90 z{0w4viA>;ez9pkwB1>ykFX`ZQ&55flWas&zIs_jYvv=F$t=9~k73dWn`op-d>R}S^ z)2sxchm(!dIQ2Kj@KKp+snCa}BA`e_jjmuuhwrmx{FAnO9XyeOypV{B;p35D1dsiQ zSl-@{UCNhJ<**VRotWmm(pXQ z9E^QaCLCqzlY$r%?iGE0hRM(soa)&LXuJ`ag!FF98oi~k~-ro7OQnjR=f_vPl_iwzKF$b!P0vf zfOBX&0ekupBt)=+q^ji@k9>jN2C4Kr+_c#)yd5p10W8Yen%fB9=kjnJke1y;<1n`g z|KGr9Osa7sOsXA$-;2$0UT$IDX` zskw%_;r#w4S>^|UgRcWgz1gAnhb%3m&Y8kc-5Jw|PcOa^L=()Z zCMVw>zij*xQ2Vy0xq@y&I|FjiLvh1C^PZ4O-UdIg>j+<8Jf=1}LsM}eirHw*Y2{`j zdR5lF2EoFD#){wZgSVBDOsZAdQ{hNzIbO3!|J>~kTz~Tw&nDnEvH0fiM`CC-em8}VquUd zDs~qzm5WliX4=EesWhl(7e>aSD!ZL)nO$>C=P;F%nCMkFwVWnBNZp3qHh4jmkPww- zoIb^}Mu$uz`1B)WOLvw{I1DD9btX@>zm4=myY@_;8hux-JpOeTgQxJZ&1g0XrX6TD zP~WLL#3vN{G9$C-voDsH{q!??Y@&CpoGR~%GjHA4dd%GjTx=x z*jp@sEAevXa+;q>(?Af(dgdx zKp4~q$XCX!5S~7QbGjY=fxJ0Cen}pI72Y~NxhT-E{jtQj;lK&qsIOp^c?V@Fa@uC| zGyhp-wFzOM1A1F4!qdXlD@jB6O1VabGmhCp(S}9^gom0heKy5_AxRBeUT9v0d|mU2 zQcPXuFbeor>u1yx0N{c;O>{|)?pH-_JUB%4e>j%1In zY@8&}VQE!MrsPw@l-?`R%K}yUAE&iO4&7sqmPQ$XEL8+VZwP2eYJz_Z`CNX}lqve; zLKIf+(q8-*VHCsg&|xh<91dQL?a#2eQ9jes%sSgTn*$Y^<)d!2$gpqf%(7k&r?|{I zP%f&ffU;~FYj75y@D)=1i^Ttaf9TO#reL3Z>rI%^F1H>k0}YKr`9_l*7ao^Mb<;og zw9)(#lY5r~*7)j$=lgr&(n^P?W%3su1Es4{mAUkY{appZjqN^_hQ_xTzHZo)Y<_ zXKW+;nZFCFt<(a@+zg(_f~d{pz?i2~xeLxyod(x>`GnZF6g^f~?0|OxG;VK#8b`KW ziaosi7@MQvOYf-IW;|cxapupF)ZU~z4N5nQyOgbfozx;BDy_udSW0A;*CO|5xbuw8 z-m-NSp!7ns>+(9$@$zQR-qNfr2BWta`gNE8$)zAt5(`Bj8_>O~Z5RyCDnE281oE*G zo)L%OOu2Zhl35T?s?q?H5LeBv46*@ynfET40i`k{Z@ZbE_=h@WJZ)<46r1m>Mk9?F z6vwYA^FdV6gf`+)o%!48MYh!o&VY=uFaVBRh%pr>#G2-SNq3~T?LybZ?%cm1tczam zvBw_qvcFg5OEnTJqR^DWQ8AUSO;iNGLkpVXs`aK2-wgU#iz?bpW(-1;D$yd z9hirnr_`9FuCRu=mqLSSFh0st|1wZY7QvRZeo`BaFJt|0u;n33&&6)y>SBl0SNICZymPd0tBs5~fn!#JN|?cO)Q_dy%1DZSZhljRjM`;(5;5hF~@O&u3QFi~J|`fn_6D4hCGyKq7YZ zVOPQx;m31?j506XJZ3BKK(MsWA#E!NS8@;=Lm zC%}pSG#mJCckjj*Qv})gBFKLOUr3&n5ZpGUI<1$F1Ln-r34~{kyIoHr*Pd;OS<(WTXXjh{8r({<79a2}0D9C0)or2Ad!SQ|$aWq4!T$TXw zg8fwaRLd1uGg*Pp-SLTILODdW3^FcvCRBtc$(rY0;tpGesq!RX;B|?)4e$xP%iVv2EuU`^q){stn z{k{3eYp*s~b05U9RVs(@BSW^)5K+YmSTieLv@!eGBhekLD7g&EEk-!=?~`R6$%O48 zZ$A!BS)(|j!?!kI=+#z7h{0UBn*$*r1TbmWxYm|HgfpH_Wp(yjM4K9#Ek3G_RVQc) zgKP@*g1?CXnZgu4_9DvE6%E2X28B=r)D=gh6pKEe8Ir&cF%u_xH|x?(bLiq@kHwP= zkSR8JR72E<9nwaHR1AD;47)y{mj-CfL#9j5jUx2~3k@;zt9lX6)gZbn9WvlBoZ3HeLL3~02iIiDGW9@+te8U01t6ID3~oCxgGV$9 z6OyKb89GfjJL&+&%%tz-U@XbBw~ctW`49BMw)vmSM=6d2)R!t+ zKbKQ;NIiT8gY4xCZ)Vo|kPwBcAH^}FrE1#acM1g-oob!oel38Eui>BVh}6V6S-bm$)r$5HZ^s z=mguFqSJJVSh8BmzE@xId=g=I@`KW>I62cQrTUGHqpB+Hpq>%8oKiv3Qp?IqLHjLk z7K*pW|9cpjwiw`R819!gC}`wT%;61-roAD#R@t<^M$Ur7rfaA7<&+~O_E@2b&pJa* z2fb=@HtIInQP!rliW%M4kc(hu2Dh&t8J<8A|7~l~54F#?>7Lg|!T-vRU7><*47#g6 zwz+ovi-3}hIvm!Y8b(h4OQ7)iAki}W_f<6~=u?fR;pT=tvxGAj|9jT&Efq0cI_y04 zqvX`@Wd7Fu4ew}gMMFU7=N?x#c(gt|Zh|f6Y>tIB4%?E5kg`1?JS9XsYfMz~K=GLw zgn;i8cH^J?uDwiWxs(G1N2R*42kqsde23zQsH)Kya+YcnZHMCpjdZ><(#0a1AxD2T z-ibjfIrY(WCU7a`A}`SpmZURCWY=(JaOz7(auo>(@2SP`Mp=}g3%K6rTM!8X=soPE zr}0j3BKQ_WDEOax%F_#z?JrJCxh$3yI`rmRkG^(n)on{PztDAr8mvwNa%e0BWeq*q zpFzxBW!t0QAy>@g{k^zi5|Qada`Tll$U0$*5FJz~Ja?;#;lChMcfidi8QsbTd6Rz~ zTAPDD-D+?&ieALji?W`##^EuA;|-1YtuAq?t$+>L`li*^0WWS7^vREy+mi^H`BPXV zPeRst8LvwSZZrra0TY4`zc|}9CXIZEA>z|61rQ|1zsb1+p+-O&41rod1P`n!FQr;V zJ_kW@FYEg~qchsoBDE)7RTHD@eQ#?t|vv{iakLs9tA@7JTjL{9gag&3dZRDc>QTmvPknTTL zR}ZE@HG3-2$Ecv^{?(MB7EbR(snN|p%-seqSXgT1qy0zUjPnZza__n1xQ&&@*;4QV zA4IPZm8x;cV2~d*M;*#}QA98kw<1(I7X2iC`oFz@zM<}Sm<7}P&8Td8ru;P2cgPf58*h&XIvbew4_hTAkc>VAq+jyhU40q_bF zV5IDo1At8S=}tW{^3#KC$T~)XgV0CGtWTgz1XohH#(%u*bLf4?5ydjc6S}Zq$ z_t!etpweED0qDwO{1$XdVE_5@&huIGLBfJr1xgfr1;GNrc~A*iUjro{*%cte>GnKO z$Z`}oNRa23vHGYIcGM#CU|y*f>$h!G#&no+RuhQ-syEX3a_1G->(C)`l3an7#gOK~2!M510|65Wcd}&OYeb3^A%{a8SQF z|2~t?N1#UGw3uhn#0cF~*d6gppq=jGklb2w{Tx);8nGl@^kiU9lo|gM`fHauyUM4< zB4_!?IHB|UbH=ZtH-*0;3@%G7p>GEn=!^aX)tJsW<&@Kf>hW~TIBMjkZ3I@|PN!q7 zfAxI$&qIF5zX98x{m(!Ljbg(#?x5+sTN0AHXAuw=`&Xfmy4&i4nUal(Oq~kZMYrF4 zNN?iKjLvPSOx0-&5F{#{5B&~b)VsCzvy zIyd*A4KZx+wyvnwapTt~?Zydj08PMQhQew$b}4isT~4>%qF-WEc?J~kCUH)R6Dg-z zuSl&AnOo2$Z9$u~Z&m=Nn3k2nt5}g`IxQ+PkPk?<~*|#$@S4I$R z81v(p6zEzmoMO>mwunY*g)WN*av@ggsyW>BY=+ciXxTVA_EC!au>w+7^eOa4T+n7H zI#E4vD49s(6_c+)4&b*w$!>pAN}v&CchmZ(*FFjyN=7Rfy&i4|qL^(}=|{23cx zOh-W*zLBu`WhHbKHG%A4*r-f$`;Uxjiz>4CPx6oKYDj-|;ITtAG)ViSB^y}u=>lp5 zfhD;VhWw-c5k#f%TfDT8>MndaTnl(J>922+@Qy?JTq4#!(Z&DvZpUBwg-5ifN^;4z zH~M2Ky65cQJU&!URe`0r*RZdGmqBQ7D(;i7-%#hTs^6TRGtah`f9InXtb>2GdyhU} z;HsL8O?GJbsA|bP1~@#jm%nM7bhbRsEb|O>RT<@v+z2mDY4NSBd#~8yo%?#j6l^uz zrHuc)p2vlIh!s&RTr+7JBD^Uo|LL~EhkF8erv3-;$!}@;oAhT?5AH!CO4>O0MCD5J zR|VS)0RVZQz13h`P^8wx9_b<0s9xdmOYM^6$e8{k2i21lxQV4+;qI;aDYcr6b%uZ( zl>jzy%d=vQ?%N4?^~^vr|Jf@H?m<0{?N=Ae4DVO45^(l>W`W;?OvBpfk@{KS)>7%% z=onPjtny;wq|miYUh~n$L5Q+Re#_*HHV;&n$v=eYIc2;PUpxywiQJJ<7>CKGX-*4; zhq7l~ow8pHPHF#$tW^8svkYe%(}L%Kt|x!(_<#G_O}x|gPI6{Nt0@&YwF^h z9hj0~?)j&0fm`X|NFlI4Q(%9lVJgAw=$OYfg#TyShLl38AU$yFWd7j;?<5Ahm6;68 zg+}y$AwHF*gF+6C6#SH5y-l)1z{|PkMfYR+fCcS`^I4gYH6%psfM8Df!O`Bn`DL^d zJ3zaja|w79NPH{6xFnhdVgkW>b!)L$U%m65!60zk*4oHt-aGFZHZsU`3N_AU{{Y^w z9d9;Zxzm51n}X3cr>wP*L3Obl2c_QPdTkg%fpHblKMGynOQW6mZm~dnuX8t>Bn55- zcr^t7H^g|p;lZT>gTl&geL2E}6olj1XeY>Y2}m7aI1h>i^56g?y5go5@Mz2yI>>$X zCSaNoSVc56&NhAt6}q+o2U1~?L%~)RN4N_{x}B^?5*h6AWGD1CoB- zEF_Ktt2&Q18ZKA(UJMmZL)DoVLHK>@`PUBF zVJ{sVN1_lf9nofhcybE@9?|=6(rXpeVbAF?M*5-BuH;MJ=o`+6{NOz1euAj+W=9Fn zyyY=C2SVrLlV0H@jCv<)3D5PLuLxdhzDNi1<;%h$Ep|#3wqJ;~RraIoBG}%MVOAfu?Wfl~VH3mBzy7O+U&iMl2 zPMenzN@Bw8`3-&SU|e-34rV4PtvM(Uu%>*!Vv4!s^?m8vc=@#-eY9r#vncxTD_Q`= zu%acULw&|1fC5yTM3WhP8N!u)YU9T<*H-+U9h9Alk&+f5d z4U}LEnQYu)cdsjzA2xc#Y25}X`Zrv>3FI}K>?M;n;rgTm6R;g(i=w^g!|n&V+x-3f zi|9j%n%)vuq&zuoLxz?*7XI(Zm;kR$zQ#1OC5ptmkNNRKFFUeCbcl;6>h2#u-kZ(0 zNsYn4#F};+CnDT9pYUy-kdZ>_HY}R|Y1(fPkpkFK2~32!%^99ExL8xyy;rNNm3{I- z@qxG#$eMEL8k4Yw>JVPwqxlnAyLq9=ljaqhjs*jkw|Mso@vpMxp|tFkdg5FTGg6YM z9hfaaOlGausZ27TNhoFl!=|Z`8vx;eM!pE5jSJzZ4&M&(GsUp8$;+nCdsyb|fk;XOc;e3;ro?w1>H)i4$#z0+>`^1>M zOiBH7%i*HYt=q6f$fx3GXe>-0)4ZC{U=c80{$H>8)F11+n4gbA=2!n#bgDxJ0Ql>*y)<pJypFQ z@zUlKnhvMj)yNWgG=R`E!*i2;&rgN#Jn8r4AXhJ&RuL$2A0V}wx}jbK&+dITo0>AX ztU#4)N^&zrr+A90I7z}s8MZ)NgQ{``s+w|XYW-2=*{20r-TZ3d?G2`QUv_4Md%ZM*ctAE9xvaOMLRot2(NPdGhhrM!blZ7M26E-EsWvmu5Rf+9Jfb5^e4YT(!5MVr)*&wAp=S z#B*W|FE(#rsSKi{;&%BN-Q}y`tfU0${9^x7;dW#-Hs?zs7x**+dyXtraGSENfGXm7 z^*P<1GGbZ?FhT}U*`p)l-gM)Y{htr28i?zo$i4x=-bckI0&W{i;!U-)Dbe7!`}$&d zLSQh0!P3aR|Jv!oaH?AnVC7R0VCx%p$+p~yvDpk<_9|af5W!OtZ4X^APh-tm4#n|f7CTz0R*v+Xy|6QXLfuQeP zuz=Fo6fCj~{h!G4u@zu)vA+}yJ#V-`TXTBj4Gi=gKF!LdM7#B-Q^dLHrVWPsZ@lsU zh>m)SsK#dGX4?G$Hi@n0V4lb%*wfd(qzc{z^<_%TXNx z+0A4zxYr?fMMbDv7#)v%4JZUVf!G3U`xUT93f^2V(bg;rZ}R+{{_A7gp`-_PoptLA z3V116v-B7=s6%vLHZqF+c4}>Op2UpeI5Qm4>|P#`% z&H@=97@ZDVIo60{lcS8px$6knFYL`a*{0ep_ZjLoeNC&lDt2Y2=ob7p2v`EoByc@T z4j~D-rGb0@LUD8M^7F7qV@pw+NOzjwEX|xmYeqJ6#i7MS_B#qn6O4+ywkk8b?{g?E zQ$*a21I?XdCG|(u7B(i3cm#bV)5SzfW!g1rAb0{k+lXo+dp=s5FCv_^kVt|{)$12o z6~Dp78Ra3U32ND6i%Ey0@O0piZ_PZ*!wG&ihxf^d+cL>Bgwq*Q?oP7P$%t1{Z_;Jm zt-YIjpB9rX?Pi^(rbcR7IG7O88E>i)&@*7&7Q??-F_l{z9fAfg+{!CHF*5O=aRZJ*)ikgTrdSrCm@!J%`iW%c0&8OtB5-xMKjv@^IDgaaOW?Dr14|KKlr4Tq z(4R$5E2g7XHsNRhsdeIw)(Y4JR3Ofxb;#S`Wh^#G7wG^_Id!uUQ#cbW?*TdaQ!kwu z3wQ>Z0ZshQ`bMYG>jyVxr_sDp9)hmJ7RKT^PQU+#d!gA-FQ=zXt#~67!nzITU@m}9 z=d6j8Qnau&L394g*3B8ifgKmjV?sc`Pgus*yo$kG#wKv>`=fU0rLPFMc&V`+A+Af=d%lawhylZa=Z4MoYqwpH(itd29WHLaM&8GkSt&(a={5{nwIYrNq z<8(~%5b~Ezy?4P(M@7qV`->;o+qXjG?bInvqeXL))TtE+L&vAfbYBw{rnvt!rBCTH zGr6$pG0viEF_LQ<^1 zMBxlooFw&eBRzAKALJZ4D=>N_zjTg&O%`vQsVyQb*|;YlgZNXoFc%Ty2!N;ii7#Qx#ryiDM!uT`TrUQ`The7E0=~-Xcx$ySK!+h zlj?TL^+C(cnOS)s?4h5{WCzgs;~*|v_76y4WaHvj2u`2+o7R#LKXr9W;h@=z68tFs z;YSKF^Cg{KPYYS9A^3Z0X=E#aT~ze9$U}CqAmShp5$M|k5N&K%7-xi=SQeBqZ+gp zqhUMj9}aJBAA;{|ApahXxHpbqeNB$#PvGZGG~4 z*Y_ov4@2Jy!-6)#c@#^&eJzl%7?YjkFerl`ZxB=BQrBsE>U=U=(&-{X9k@ zw^-EtD+4d)DqVdE?M#G#{$U#Bt-MmnxS2pOUBfiWuH-4I2}#MDY+3GNGei0$2Cv|J z3@h_rHl(SfvY&T<(Bw!eO%(;pye(Qt)@T$8nkvm?L*cU{+@xC|?!s8Kd=&aSax)0z zxk3<^pB@jqAh+-hh&;jHydfaP*5D4dXIp*;aZ}2B1Q%6Z-)`Ve+z%48peo;=$j?+59Cq%h8pd??-Ji>h8F_5<>LAT6gnom_XX{dbs60v#*msUBMaOwq zvGB;Ee{+~QH1x8Cg+E}uG`LT{#pdr})zR3~T_;y>xXPWTvm*=(Oy24Ve&LFuJZa(Q?X zlw9E<)FIlbZZNnbmOg)#Paloq?5Nlbq4++z`?1A?)fx-KZ0@1O-RRJ8?PJ>2tty|AuUEz@72RFaH2376 z4q$}O+NsW3&E4^K1@Xv-Vzy$xpFTWSi7;|q`W6qCh=u3-3%^XYIH>9@)EcKsx0s{d zNcgR;U$n1Fq12y8W^8U}mm%4vURKmGBWlFEp{q239CPB*VP z&8stAn=pQ$`@~i1+<+}W!&f5hZnD;UgWEL_(WAp5p5b7 zoZjF?Ejc$;XCFzs)Ev3KJS|DZXq%ishd@-$ims4ympb13O;uXHQ?eQL#3L^_k#kWL zann9!V@^1or#d~W*dNsY5p#2@t>7w#-tAZrlX3o}R8$>Ic1i~+lK1Xv!1r%T z#uFNRul!m~;Y%9o7cbi>8-F**a+HKKqw>w93RjSwPoRpHL9Acq2J;V=wtEAeaNsUY z$R~o3_JuZsp{JS?W3so}@(R>s%CAerJhkW?S^CN*L5)V zxkpXH(Z6QaT5>Ud;mroo87bQ!LI3tb&R1wcJHN$S*S~Nba4K(dyuKHHwcOgtx7ubn zpeWSYZXi5?gL|z{qH$oC$74KCz4OgQXj5}U`0?MKbh0$s(oh74M*H4ABlptqvGd|2 z1@guj6OJy{ejsQe$a`@dC?}dW*UbCkRq}=_)oy*p9p8Ms5p|lP)F7dX>Df zu?3hCHb$xF$zs2qrl-7^_E%%~h2W`;!E5!Bk5~6X>>)+ep)_P$Ts6Johc}$n1b~ACO?KzQH#&& zcJRea?Way<|4{NMTJi&03b8tp5$@3(DKu+#Ge6O=te?)uTnc!YgPZY)&2KB+<}At< zc2MeP7oEGV!b8$S4oc4t-6O(N;;@0%Ne;sz`_r-CZ={z`(s*cbK17)dop$!^)Ldx( z`I~NfC)|9|AN9-|#glO;zy78^64`oY9SyLK7+A)5iA!GvrMD;YRz!B& zpLO;Y8rKfgt1%2xJk;*#Nfj&k9Qs@?ej}9_J(kEB_my5UDoCZ^%wkvznj+y4s%3x` zyr0FaWX6k%ucblBKf4TE5t_FYG91Tbi)zorWb@Uw8Xm{8z%F#kg)Il91oOdzadiuD zY5A2MQ#L}-_IGihanvQ3ohTHIZ;VTYT1zu8I5R~9KZO1f70S6n^rjO`{pKn1@U>R< zc`S2f4fVgs5lkA|^U=x?iZ#SW$jV1wPUTTOu2+Y;prW3nK$XP|%iP;5_q-Usi@6Qr z{?5xOPx1Xi+KYnkkaFtv?&FcrM6ipD*U5AYo^}O6ZhAo^!=zdIDWM^9B6DZ#ss(F* zR$s@6e-`$SpF9ri{K~p@t?@?%${NcCWpln+=D9m*;{HJxvaXut6 z@wv(++hjTVZz`olX}4LG)-uN%;m<=3!UTk6D&xW4gtlt z_1UPQJ)Z3*;Z!JL4qWXFdOX?z!ncZ7Om+9)o@xH}zZ;_#(OSR0VUkK(<0i87Fch^= z9(`sw_^e?cxel3J%&-d2#L7!K1}XQqHCp-2n-+Pg!ssIY28 z3$wD^Gy5IB3nDXuIi7WI6L>~5f(BKP9UY~k31^-g&yT{%%fwZh1RqcPG)pmOCN!B= zrP|T)?QiivoapXw?>4D1<4fzdYnA9sp}5wzQY(zj7qsqov}I0@E<(+xmd`(|S7oo3 zpZMw&cvWQ+cq<$82IKd7>%&c|s55Rlm&hgPB-n)w-tdfazBm(Zd-hkeblz^qVj3Z3 zfCN@Nw*+`ipZ(6G-cr5?O8+1r#RI1BPY+g)lVIs_6hNla!Cfb++eYcl*tGnC9$8IUir-hn*kz=&=IFatZmCoXtun2IOTXtx?H?>m zWMu8oZX!$rFYcCS?^X88K3bvn6mn?C__fqt5|ym}N%kYb%c z5lvy7BWK3^3L#Bd--6#6`kOL!yPzT3CzQlWVkDx#=?yzq0D^Pjz&}(TKBy9)f_3?a zll$CBZ%{>{)W%wsNLK##_SK!mqtjRM?$^78eg8i8MRNV6wZ-UVx(MDo^c}0m5bv%I zk4^1fig8=WZgA%FRklnY39mev_}U_Sv*=$$Pb;&=Ps#J68Cz}s;uyCJhVhY9}Hb?z>C0{+j(Kuk)L?H;tf;T*E)^uxo5rvHTo6&eaN)d?|56Q1jO2~V_#nH z6Lh0XP6@4NneR|hv(Yo~@6(1sNXmZ7zxM6_YnIY$+jS_bsv%42mZ9nvWE1^9@s*Ot zfCU{}s({1`WzCO?s6NcZZH3mt>jVTo7Dr4KcO<>yJ1Kk3cbrb2r|m?i(03Dc_;r#A z<_x8$ztgj2aZ9`;O);UbN`)L)K6MWNyxD@>(}MGi|9}+Wjm2L;WC!v;%_paHdHeaK zh6p1Utu}Qlll+R$Ei=oadbU*R=Q6vlTQ!ymq)OGKj$QUQJnTgIfy{c^Q3`_Tbh~t@ z2XDpSsuP#ka5w%uwyC(Txjz!$x!b#@;Vaku%yka4$T9whfr%SWouqlB#U|v4$WqI1 zBnfNa!h3Y8JoX~7RKH|JR%s;aQj4FGAhGG>*qza|prI3QekXA#QlWdq)s+$C+N^7Nl#;9i`(iCQ9H{rE{Yt@FiAuzDlR~E>64XCtNUZj_d%~w z*?7uH_Mq#l&`ik!q|OP)$4=qJ&0#>{c-hmd{z__;i-=gwSFM#_(N;UineI$4dw%Z;ae3gMdC%x1(j09}}}o_SjFhgPk(q_Jjf zJg$4#O{npVZ1u|Kwe~gw^}megAk0ms#Cl(Z9)`t8r+Bi8Olh0=^0a=TPwSPxtyAjT0J`T&lIY24bOGdr3MXt^CUmtN z%^IztU}ZiDvRsUqWBkm_D_+|-Snkn5!z!x3bUk^@Uqq3Fe+eI)5)zyJ@OeSx6`Czu zd!$|qs-d^QYoAIbyj!AaZ9RcMq3@o3+&tUCq;zizk#BYc&|5&v)79v0C<&i#ZAUSM-6Y=vJEbO1pzvV3&EMx^I;Cy6? zyDfBRyrVyik`v)#4T(~A1+t>7_zcLi^lQgfe*9=!e^@=X?9PkN@HNf0BX~-t@og2> zgy}LTpH(X{D>m)~e)YgSr-Qi!pWc{#GewkLm7J_4&#ehpVce=cB?_BfUg9yh?O;@z zjghqfk0^@oCO7#K4g}=I`{6PJ72i0Cu!J^MycA$_T2G|>+((7@;ZuEf^7?EeoA{!k z)<{)!DpS`>-RoqOQFjWV;sehOEu)-q2NAmVysuE17N}P0riB-kwF~y?cdop@=g0mQ z+_|rqHgp)l-mBy{Ht+p{ay++cKjAxyK2s@Y^T0JMVQ$DKcZbv!1*;5s@)TG*g3Tsz zye`@+aDE%a`FCQNZ(JtJ&fF9PlYQE2T(IwVT@UC=&Go!|kc53iRZL9h{$n9at*#!xoo#6NEi{eW-TcPM&zn?h% zo&;~1*Nc76KNk8iK?SOr%z1SU#W;_@s;&5<%-02s+8_D znoYEuh0uBku#24?IbOl8Tq$%}g1$~{Dr-gXWCd0E{uuvbqwHmF{dP-mBpGy*sC}%OS z6=BaWB;@nJU>-3`u9*2~@C^qqjB*Y|jtl7xTEWO@^mF>3CCjZioWk8ra6C?R!ozAl6nzkHVofpc=SB4 zqEj{dq5=phG2RUg7U?4^F3;M>-tnoxfP&ifz@Vj5GCFm8Xh}qubeNLnNZkb=e!9A* zN>!W@N_^I?K&++rueiYJtP1I6yKB_v>#EWhD--JCy_~D-EvyTpf`hl!Oo8GijI-wI7K=^)6kyNhi4; z7mFNuLND31?+*cMGymwZ+4%?J6|rL0WvpP9d3mIlihpv*=(=BNKc$!Sbs<|;QGX2~ zZL*oeMpM96ASPg%ujCD4?^nVWq?;c$P9E7h8T7SRLjCrpb|Ah#ZB6()iZwU?+@Jm< zwx4M^Uz?uWb6Mh%s#b9u62_o?eMP5Vb6P;_@eOTo_aDvNz)?sYKC;@$^ot^z%GC z+;~o(la)-p6`rFTA(cz+A~UH!f2#0NRS>_~62<&%?x4rrFRIwi8z-q4B1?%aSZnCp zW;b1kW&bWwFy-iDNzbNy7i2m5&4(=Y8(*>Iq7KYYepj{(jMF*mQDtyFxKWktO{LOJ zN=w&*k1kkSvrVb*k?tLfsu~x69)U@G!TYqv&OQS*_!@#7G-ppcKN`5_xPW)xK;d~l zq@3VcctclP@gpek*qYokJ^!+OoR#z%d48FcHfM&tt3prqXFciHreHIAFaDo8bJeu& zA9c4=MDgz04 zcYYQC@r8&4E9IpqxB^{F%>(Er`m$H4LXdEld0wvcUwhqLz6FX|Rl1*wGf`;A+ z!z4AE+zJgUjcCkj)*4%Se#4Sw|@pPiu5l7=_Dd@hcAazvYHX#l0P|$*62y z_Mh=%{+{|m8<(C!H%i7#X{f}JirI#P*)mVN#W{}UP*2Z1B5j4$mSB!bfkwSya7?oy zL~j^M8&9@tO3+TOJhSrGC9H~=z!l?@VCdP&S>)5F?n2Cgg`H1*Yk)Y)!v944g%Jzi z!Z{cd=dnz=qUoe51BTfcvE>t?%g^{b-)1EBHJVe%vi6|!SbAW5<;aN&dc2a%X;{Y^ zZL(=U%d$Mx`zIb#tBaXRgB63Alv}1w($|DoL4Zcs< zpn7(%`B<~31*mSGy#&DFrsh*Rf4j`FULie+hX>JmRjj~~EM{nxs@-c_wP?;Tw*>s~ zy+c3>Kk^ZxNJlF%clg?I)5W~&Ju7pq%<&CJQe#L=T1#g3ci5NChhKd^xlit@be)aR zun%7rgbJ~U9+nw}y^#Fq+}Z!eJ_;Yd@XNTQ96^%B`vTgrQt=w~)7K%rUoU!F=0g<7 z*96+9UItGfr%&0FV!&w<)JaRW>|JaZy@*}PaoCJ({BBz0UIwlL4=W=*+W#PP5D&m9 zvFU%s%b+e6YHQ<?!k`|-^zG-ne@$<0@skq66ym(lk;u29 zTRUAC>%3UZ>Xl_dM&Fo6_b(rnl%1Q{&_`6LG$+=^q~d?zZXR}5BR13gS{d3*-qIS0 z>1bHt%5FLl?oUEK`2zqh^XAb7q-_mYVFZAD7%3vJ0F$TNj^J`R>`4#*k($0Y0H)o(jj8$%B; zPZU@n$1dlCM4%irdK7TwZQ!?>Xy;ecfqvENs|2z`HY1z)|P&2j#mn9HKVK4kazM-V40LHlWDjH z(4j1&->v4?kmMTFA3I^)4$KNUF;G{DO~>plFQ(YoV?ij<&4mS_ZxMV+uk?uzSA$6r zkLAfdJMgpl{L+_UA(pmpl*l*j`wMFtpLw{I$9>vKA{7&zug21MLx5c!_{Vtk3GxQ# zw&Llm44Al|M7H|BHLs(H^dH9GwW5NIsp_2%itgHWZ>`EoVA*|09VLGFi5(Pf8tbgc z&YGC`qe6@j*>c2rEhJHGN>lic#Oj%=NBOwh=ix{TH6PEmps=g42Gqbpa22x5Y6}n` z4D`0AkY%6s~q}pvCH^^{8GlmI7Kwz)n>HZ-Q zVbm@7;_>JfcJaw}&uR~FeR%l)Kd{U3w%Xxc6eTvJe>n=Hc4ga2ZSKNBQ3W58h}E!4 z`fa??jDDsW0avW_RVVi%M6l@GhpEs%(P{;TPUN3@9@Kx^p0Q*XNgdK@&>Za*dlDnv zv(FOzjXVP&z4vEq#Vb!nWj&>j04-!g6EH~ht}68;3WBs`)!)7*h8J-TS!W*>zB|m# z^YGJYxjK;)Re(aj{+e5OJ7t-3+vggy;;M|JTbb9k{+gaRBe8qKE=srD@=u`?JIhd) z1J+M_%nuFsrzQCPg^OeUs^bh)scXE?3$R}vHUA(nY{iM)KJ9Qt)4HWU#xqeD7v#iy zDy%+gmcowd+Nk(Mq(#+>n6Nti*J#_ZA%{`BUPkH$>7j@ben$SfhE7u?246@%%Kp#B zH(r3}sS(Q26Qb8K<6GJIP?+=$>R~L8hB>LhpdXdMlB@G9rsO!9abC0MsZOYped2<7 z%h1qC-#TYcy|0>5^n$$WCR!LXdU)fTC$Z=Yb$)wH65aQR0fE?r`^@H;uW)4^{KD|f zuB#uZ?e+@SwUv55bQyJu7yhESi4^e?A!KW?Sd>ZvWta$yBwUW|GWEkLc7tTHFL+az zXb9z14ZL7A+lSd9;Rj{afuTs1XQC5Sq>wYF9;JIgS1?@s(Sn?MSA35hQ3dM zT<`1>N64r(mZS5%nXjeWdKBx3cl#HqcMEUXI4z8qvu*c+2c4Xp%NF%?e(dT-AKwvN ze8pjes6>I=15UO><|>=_tz-ukO}_T^b(yqC8umY_YKkS))w;_1q$$WMtR{L&o^=I2 zyv$OK=t2tQ?Kn5al)0*7rfN76>vrT#-tSJCd{&H?vkp|*mBRI+o8QBsTFbe+?VF52?%+*Xa!@WYWn>b-%+ zEG)wOT`LX_`qN+G^~_W^Oan_g?~ZgGTR9CztACZ`zu+w0rTS(I|0mN%BOFMjP*zV1 zA5Bcur{AC#5RW_BrD&)YVk|>ed6VA$(GF_7hT@1kd_Yi|k_jPv^rv_=h_KDwm3ZX6#4PRxo5R|hZVEC?_?5b6GmSA|s_ zcW-f3i7H>$-RWHZl6{DofXny0v52lTvd&SK#kD(Z1zljYr8UcS9NVNfTbM^$8T+Ef z{2C%U6Kt-*e^s92yIQCz)Ap{-_eH6imIdkgDc-45P@R`GtmZ z2j@kAMS$(YkM&=`mGSseNla|9m#L*kp3`Cww(6cLM@uKv_H<-3zZ0sUn*G!=x-<>{ zBITCxfkpVR=ahwj(dzY$+oyDAtHf(hB8N#7l}RSz(^U*HC-{}x7Ov;NoMi{j_{dRm z4@z|raQBUi*01Rikwi_QV-kDw{)V?ZZC@U87VK}v&xo}vtY5FY53wAodwHdJZj26O zhqS>7$pEtJOR1f%CPx!*Qj4Ar1+MjE|QA{X&&DDC_JRh4M z`7_7+8?8{^I)3=_#S3mOoSj(S>8q8?^Im({p8E09gZWN)-q*7p+O;#XfaRf2F^+hF z*Oel4s*TxV$c|vH&HvU>+3Kkm_cO4WG}|dnuIO{jjqi?`zE7>+v5M3?spuy6QCyKNNOqPaFpcQ8FM~pSjGcYqO{! zzo2-jDKhsBvaZmgvnjdD8;GTqnET7t&7;Zp`m%UI{ENj7ER}<&VlnqcqrtvT+Hvzg zI%5WbuC>!ftID*;5)H3Q6b}kX#Hmncz5kvG&w8fkfJ+O$;SaE)T^P33TorJk;YCr5 znl^2?)Y-ldW2Lwu7*s0iV{PslvP(o~-#|SOj-r!XZ>aB>7I{0iQbsrP`^7IV-#yV6 z7b|jQ>A9nU;#U(7(}=#m+&jGYSG#04xpbJAWmZA!q20#DoV3HI+0V~*1u2ScL~MsY zz566}E1;`FCx2MeiXF3{?sYA(-d!=^#CWl5Wyp>2m8^=pf?hhh?|eV9T2DPiJ^0kE z^my|CK)mkuouYuY2Vg%}WCsA%|B3;pxU90D1|D`8vg-bOEM-%w`?^nFk?7~H3lj}} zNIF=bF+M1_mFb*sZau5ww}&{-!Xzj^r&1U?x-w31<0)!gD3Kc5Xp2g-+rS3+f?iJo z|4!UD?QYNh0j2i|1+)LR^BMw1p7M~38jQM7KU&(*lEF=!mLFeYrT&GufQeU>$)uLN zv2>L+_Cw4gjG=${ApF2uC}LfWcqxdNWF{f#@3fB;h{$BVE|;mXMH45~^vJ zJ*A%`%N^~yfK`w3EW)1=0jQ9*f@_T2o_Ob`twCX4-3##d+xA)MAPVq-@!Ej#fRD?3Jo!fAIRCh=!J;vE^gfu zHfT!`y=M(z$qfipbj@+sGpyuQBJ}4l?aPvf?w$IG8jFjMt(m0%P1PB}X$U~kyQZB2Zhc*%Yy zoha7;CEjMtmoW@tEwyZu+En!aZ#zUCL?Dp?R@+u%r)k@i}qYjasYg5;m>n+OnFT#-mmWTl)~pvooNNs8WrU~dJt}zp zyt&;Rc<9rS2U+H34!zb|=|YwKKv>ye4R32^xz&~I-4*dFZ!k0h*~b54LfHu9tl{5h zsQ($U(^fffq<)BHA*llWQRWS@;p;aVzhUsez1_G@E@$*t_wBr=_+E^g{I!6emcAMv z`Vp-7>!F+83e;OzoI=+#7JPj37{MYWt-4R3k#Ct$Ca_!dr=2}7j$k>qjP;1@IrTk# za3Otv2+1amU3KmuY-yq}<9}zLgJ(~KdMESo?G8P?Lg=bsOff^U zgPi9ftW_io-o0Q9V5sOXpWi!WTBPi*>H^SwWN5D75llBPR`VGe*5UlJe!wcI{X1NS z)_3m|&Q04ic~udrbx_K#{m#!JM7Z@qGrkDPgML@&k$A^84}NL_(0ZEuajeC1P3)#)13@qs5g4b94$ z;gJ#1Z!6UzvbjApq)eY$f=w5-N{5eNlJnIdb}a*h8YgAIP?j`Y1N4JuYBxG8#jd8+ zmcwU@z6KzvrMX;`snk(J{S5~rfvg${**!tqY9*+3Qbe;@2W_eV2zyB`+H}XOD&D z+Br-MGV+=Ge2w{2i_&P(!yuT+!r7rb*EHyNiqINz@M>`q5;cHGc(+qk$8RtI=RVI+@(&Oq>y7&E= zTZ?eAo@=97Jb{+uuw%4LRWuAyDV)Dzt*_S?h&VGOtcF?`9l@45L*~N%!?=a}S&NA@ z@3vz~XVtxv)ar-{h!ATp1$_cYSF-{Y`ULRS!&z0}t()s>D*^~Qn+Yd+*;$l72UUOacpYM;7(-`8hNvoyvbMSI zqCB9ks;dTn4)m=Vu~_A?7U^pG$f%$|8g zQ6ldulM@Yy;wo*I!kaWkyt18C6jRxYe#bkelKxNHC_q_p4lI%;LirqGE((GEC6Z2W zAoVA8<=e=z^ihyy?bUJB{@b&T(!}MLvU(WCXHM}iM$d7haw%!fWw1h#Xiu-|>8*cL z<*Q264Rg~ahfi*nP5b6sSgwM{?Dn6;43kvUd+$^;`Soy&11wF{+w88b;LGzB>=(Tn zjixD^?h+o^dEqD0K=(8_1K@G_srqp;>)FJ`r{>AWGjKZp2SR+5j&y(^qq@#cIGv