From e0246360ddbb8d3dc4005171b362549d008e5fc1 Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Fri, 15 Oct 2021 17:24:48 -0700 Subject: [PATCH 01/26] Use explicit static VC runtime on Windows (#851) * Use explicit static VC runtime on Windows This change updates the QIR runtime to use an explicit path to the Spectre-mitigated, static VC runtime on Windows. Using a full path here overrides the selection logic and ensures the chosen libcmt[d] and vcruntime[d] are loaded. * Add "-sort" flag * Include version number in find pattern * Include libcpmt library as well * Use spectre component name --- src/Qir/Runtime/CMakeLists.txt | 41 +++++++++++++++++++ src/Qir/Runtime/lib/QIR/CMakeLists.txt | 1 + src/Qir/Runtime/lib/QSharpCore/CMakeLists.txt | 1 + .../lib/QSharpFoundation/CMakeLists.txt | 1 + src/Qir/Runtime/lib/Tracer/CMakeLists.txt | 1 + 5 files changed, 45 insertions(+) diff --git a/src/Qir/Runtime/CMakeLists.txt b/src/Qir/Runtime/CMakeLists.txt index 3c3c109b019..0635bcf57b2 100644 --- a/src/Qir/Runtime/CMakeLists.txt +++ b/src/Qir/Runtime/CMakeLists.txt @@ -17,6 +17,47 @@ if (NOT APPLE) endif() if (WIN32) + # Enforce use of static runtime (avoids target machine needing msvcrt installed). + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + + # Locate the vswhere application, which will provide paths to any installed Visual Studio instances. + # By invoking it with "-find **/lib/spectre/x64" we will find any Spectre mitigated libaries that + # have been installed. + find_program(_vswhere_tool + NAMES vswhere + PATHS "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/Installer") + if (NOT ${vswhere}) + message(FATAL_ERROR "Could not locate vswhere.exe - unable to source vc redistributable") + endif() + execute_process( + COMMAND "${_vswhere_tool}" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -find **/14.29.*/**/lib/spectre/x64 -sort + OUTPUT_VARIABLE _vs_install_loc_out + RESULT_VARIABLE _vs_where_exitcode + OUTPUT_STRIP_TRAILING_WHITESPACE) + file(TO_CMAKE_PATH "${_vs_install_loc_out}" SPECTRE_LIB_PATH_OUT) + string(REGEX REPLACE "[\r\n]+" ";" SPECTRE_LIB_PATH ${SPECTRE_LIB_PATH_OUT}) + message(INFO "*** install loc: ${SPECTRE_LIB_PATH}") + + # Locate the spectre mitigated runtime libraries and fail if they can't be found. Targets in this + # cmake project can use the variables to explicitly link these libraries rather than using the + # non-mitigated libraries that are found by default. + find_library(LIBCMT_SPECTRE_REL libcmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBCMT_SPECTRE_DEB libcmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBCMT_SPECTRE debug ${LIBCMT_SPECTRE_DEB} optimized ${LIBCMT_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBCMT_SPECTRE}") + find_library(LIBCPMT_SPECTRE_REL libcpmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBCPMT_SPECTRE_DEB libcpmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBCPMT_SPECTRE debug ${LIBCPMT_SPECTRE_DEB} optimized ${LIBCPMT_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBCPMT_SPECTRE}") + find_library(LIBVCRUNTIME_SPECTRE_REL libvcruntime PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBVCRUNTIME_SPECTRE_DEB libvcruntimed PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBVCRUNTIME_SPECTRE debug ${LIBVCRUNTIME_SPECTRE_DEB} optimized ${LIBVCRUNTIME_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBVCRUNTIME_SPECTRE}") + set(SPECTRE_LIBS + ${LIBCMT_SPECTRE} + ${LIBCPMT_SPECTRE} + ${LIBVCRUNTIME_SPECTRE}) + add_link_options("LINKER:/guard:cf") endif() diff --git a/src/Qir/Runtime/lib/QIR/CMakeLists.txt b/src/Qir/Runtime/lib/QIR/CMakeLists.txt index f7ef19d24ed..8fcb15d7c04 100644 --- a/src/Qir/Runtime/lib/QIR/CMakeLists.txt +++ b/src/Qir/Runtime/lib/QIR/CMakeLists.txt @@ -43,6 +43,7 @@ add_library(Microsoft.Quantum.Qir.Runtime SHARED) target_link_libraries(Microsoft.Quantum.Qir.Runtime ${CMAKE_DL_LIBS} qir-rt-support-obj + ${SPECTRE_LIBS} ) target_include_directories(Microsoft.Quantum.Qir.Runtime PUBLIC ${public_includes}) diff --git a/src/Qir/Runtime/lib/QSharpCore/CMakeLists.txt b/src/Qir/Runtime/lib/QSharpCore/CMakeLists.txt index d3fe9170f9f..7bd86a74662 100644 --- a/src/Qir/Runtime/lib/QSharpCore/CMakeLists.txt +++ b/src/Qir/Runtime/lib/QSharpCore/CMakeLists.txt @@ -27,6 +27,7 @@ target_link_libraries(Microsoft.Quantum.Qir.QSharp.Core simulators-obj "-L${CMAKE_BINARY_DIR}/lib/QIR" -lMicrosoft.Quantum.Qir.Runtime + ${SPECTRE_LIBS} ) add_dependencies(Microsoft.Quantum.Qir.QSharp.Core Microsoft.Quantum.Qir.Runtime) diff --git a/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt b/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt index 744d94c86a1..177ec7f4985 100644 --- a/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt +++ b/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt @@ -30,6 +30,7 @@ target_link_libraries(Microsoft.Quantum.Qir.QSharp.Foundation qsharp-foundation-qis-support-obj "-L${CMAKE_BINARY_DIR}/lib/QIR" -lMicrosoft.Quantum.Qir.Runtime + ${SPECTRE_LIBS} ) add_dependencies(Microsoft.Quantum.Qir.QSharp.Foundation Microsoft.Quantum.Qir.Runtime) diff --git a/src/Qir/Runtime/lib/Tracer/CMakeLists.txt b/src/Qir/Runtime/lib/Tracer/CMakeLists.txt index 8ef274e87ef..a28bd52a0d3 100644 --- a/src/Qir/Runtime/lib/Tracer/CMakeLists.txt +++ b/src/Qir/Runtime/lib/Tracer/CMakeLists.txt @@ -25,6 +25,7 @@ target_link_libraries(Microsoft.Quantum.Qir.Tracer tracer-obj "-L${CMAKE_BINARY_DIR}/lib/QIR" -lMicrosoft.Quantum.Qir.Runtime + ${SPECTRE_LIBS} ) add_dependencies(Microsoft.Quantum.Qir.QSharp.Foundation Microsoft.Quantum.Qir.Runtime) From b2e2f80c263adce173e8a6a853cabeb0db9795a9 Mon Sep 17 00:00:00 2001 From: XField <58103249+vxfield@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:44:17 -0700 Subject: [PATCH 02/26] Append AppId to UserAgent when calling Azure Quantum APIs (#858) --- .../WorkspaceTest.cs | 98 ++++++++++++++++++- .../JobManagement/Workspace.cs | 38 ++++++- .../EntryPointDriver.Tests/Tests.fs | 11 +-- .../EntryPointDriver/Azure/AzureSettings.cs | 23 ++--- 4 files changed, 147 insertions(+), 23 deletions(-) diff --git a/src/Azure/Azure.Quantum.Client.Test/WorkspaceTest.cs b/src/Azure/Azure.Quantum.Client.Test/WorkspaceTest.cs index 9f8a6935233..ecca60b212c 100644 --- a/src/Azure/Azure.Quantum.Client.Test/WorkspaceTest.cs +++ b/src/Azure/Azure.Quantum.Client.Test/WorkspaceTest.cs @@ -7,10 +7,12 @@ using System.IO.Compression; using System.Linq; using System.Net; +using System.Reflection; using System.Threading; using System.Threading.Tasks; - +using Azure.Identity; using Azure.Quantum; +using Azure.Quantum.Jobs; using Azure.Quantum.Jobs.Models; using Microsoft.Azure.Quantum.Exceptions; @@ -176,6 +178,100 @@ public async Task ListProviderStatusTest() Assert.AreEqual(0, max); } + [TestMethod] + [TestCategory("Local")] + public async Task ApplicationIdTest() + { + const string ENV_VAR_APPID = "EnvVarAppId"; + const string OPTIONS_APPID = "OptionAppId"; + const string LONG_ENV_VAR_APPID = "LongEnvVarAppId"; + const string LONG_OPTIONS_APPID = "LongOptionAppId"; + const string VERY_LONG_ENV_VAR_APPID = "VeryVeryVeryVeryVeryVeryLongEnvVarAppId"; + const string VERY_LONG_OPTIONS_APPID = "VeryVeryVeryVeryVeryVeryLongOptionAppId"; + const string APPID_ENV_VAR_NAME = "AZURE_QUANTUM_NET_APPID"; + + Func createWorkspace = (QuantumJobClientOptions options) => + { + var credential = new ClientSecretCredential(tenantId: "72f988bf-86f1-41af-91ab-2d7cd011db47", + clientId: "00000000-0000-0000-0000-000000000000", + clientSecret: "PLACEHOLDER"); + return new Workspace(subscriptionId: "SubscriptionId", + resourceGroupName: "ResourceGroupName", + workspaceName: "WorkspaceName", + location: "WestUs", + options: options, + credential: credential); + }; + + var originalEnvironmentAppId = Environment.GetEnvironmentVariable(APPID_ENV_VAR_NAME); + try + { + + // Test with no Environment AppId and no Options AppId + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, null); + var workspace = createWorkspace(null); + Assert.IsNotNull(workspace.ClientOptions); + Assert.IsNotNull(workspace.ClientOptions.Diagnostics); + Assert.AreEqual("", workspace.ClientOptions.Diagnostics.ApplicationId); + + // Test with Environment AppId and no Options AppId + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, ENV_VAR_APPID); + workspace = createWorkspace(null); + Assert.IsNotNull(workspace.ClientOptions); + Assert.IsNotNull(workspace.ClientOptions.Diagnostics); + Assert.AreEqual(ENV_VAR_APPID, workspace.ClientOptions.Diagnostics.ApplicationId); + + // Test with no Environment AppId and with Options AppId + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, null); + var options = new QuantumJobClientOptions(); + options.Diagnostics.ApplicationId = OPTIONS_APPID; + workspace = createWorkspace(options); + Assert.IsNotNull(workspace.ClientOptions); + Assert.IsNotNull(workspace.ClientOptions.Diagnostics); + Assert.AreEqual(OPTIONS_APPID, workspace.ClientOptions.Diagnostics.ApplicationId); + + // Test with Environment AppId and with Options AppId + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, ENV_VAR_APPID); + options = new QuantumJobClientOptions(); + options.Diagnostics.ApplicationId = OPTIONS_APPID; + workspace = createWorkspace(options); + Assert.IsNotNull(workspace.ClientOptions); + Assert.IsNotNull(workspace.ClientOptions.Diagnostics); + Assert.AreEqual($"{OPTIONS_APPID}-{ENV_VAR_APPID}", workspace.ClientOptions.Diagnostics.ApplicationId); + + // Test with long (>24 chars) combination of Environment AppId and Options AppId + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, LONG_ENV_VAR_APPID); + options = new QuantumJobClientOptions(); + options.Diagnostics.ApplicationId = LONG_OPTIONS_APPID; + workspace = createWorkspace(options); + Assert.IsNotNull(workspace.ClientOptions); + Assert.IsNotNull(workspace.ClientOptions.Diagnostics); + var truncatedAppId = $"{LONG_OPTIONS_APPID}-{LONG_ENV_VAR_APPID}".Substring(0, 24); + Assert.AreEqual(truncatedAppId, workspace.ClientOptions.Diagnostics.ApplicationId); + + // Test with long (>24 chars) Environment AppId and no Options AppId + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, VERY_LONG_ENV_VAR_APPID); + workspace = createWorkspace(null); + Assert.IsNotNull(workspace.ClientOptions); + Assert.IsNotNull(workspace.ClientOptions.Diagnostics); + Assert.AreEqual(VERY_LONG_ENV_VAR_APPID.Substring(0, 24), workspace.ClientOptions.Diagnostics.ApplicationId); + + // Test with long (>24 chars) Options AppId and no Environment AppId + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, null); + options = new QuantumJobClientOptions(); + Assert.ThrowsException(() => + options.Diagnostics.ApplicationId = VERY_LONG_OPTIONS_APPID); + } + finally + { + // restore original env var AZURE_QUANTUM_NET_APPID + if (originalEnvironmentAppId != null) + { + Environment.SetEnvironmentVariable(APPID_ENV_VAR_NAME, originalEnvironmentAppId); + } + } + } + private static void AssertJob(CloudJob job) { Assert.IsNotNull(job); diff --git a/src/Azure/Azure.Quantum.Client/JobManagement/Workspace.cs b/src/Azure/Azure.Quantum.Client/JobManagement/Workspace.cs index e4015ee75e8..e431b2fd8ca 100644 --- a/src/Azure/Azure.Quantum.Client/JobManagement/Workspace.cs +++ b/src/Azure/Azure.Quantum.Client/JobManagement/Workspace.cs @@ -10,7 +10,6 @@ namespace Microsoft.Azure.Quantum using System.Threading; using System.Threading.Tasks; using global::Azure.Core; - using global::Azure.Identity; using global::Azure.Quantum; using global::Azure.Quantum.Jobs; using global::Azure.Quantum.Jobs.Models; @@ -50,9 +49,10 @@ public Workspace( // Optional parameters: credential ??= CredentialFactory.CreateCredential(CredentialType.Default, subscriptionId); - options ??= new QuantumJobClientOptions(); - options.Diagnostics.ApplicationId = options.Diagnostics.ApplicationId - ?? Environment.GetEnvironmentVariable("AZURE_QUANTUM_NET_APPID"); + + // Make sure use the property Setter as we have some logic + // tto apply here + this.ClientOptions = options; this.ResourceGroupName = resourceGroupName; this.WorkspaceName = workspaceName; @@ -65,7 +65,7 @@ public Workspace( workspaceName, location, credential, - options); + this.ClientOptions); } public string ResourceGroupName { get; } @@ -81,6 +81,34 @@ public Workspace( /// public QuantumJobClient Client { get; } + /// + /// The options used to create the client to communicate with the service. + /// + public QuantumJobClientOptions ClientOptions + { + get => this.clientOptions; + set + { + // Set the ApplicationId that will be added as a UserAgent prefix + // in calls to the Azure Quantum API. + var applicationId = string.Join('-', + value?.Diagnostics?.ApplicationId?.Trim(), + Environment.GetEnvironmentVariable("AZURE_QUANTUM_NET_APPID")?.Trim() + )?.Trim('-', ' '); + if (applicationId?.Length > 24) + { + applicationId = applicationId?.Substring(0, 24); + } + + value ??= new QuantumJobClientOptions(); + value.Diagnostics.ApplicationId = applicationId; + + this.clientOptions = value; + } + } + + private QuantumJobClientOptions clientOptions; + /// /// Submits the job. /// diff --git a/src/Simulation/EntryPointDriver.Tests/Tests.fs b/src/Simulation/EntryPointDriver.Tests/Tests.fs index 58037e52f0e..1e00e8bd15b 100644 --- a/src/Simulation/EntryPointDriver.Tests/Tests.fs +++ b/src/Simulation/EntryPointDriver.Tests/Tests.fs @@ -646,7 +646,7 @@ let ``Submit allows overriding default values`` () = https://www.example.com/00000000-0000-0000-0000-0000000000000" - + [] let ``Submit allows a long user-agent`` () = let given = test "Returns Unit" @@ -661,7 +661,7 @@ let ``Submit allows a long user-agent`` () = "--shots" "750" "--user-agent" - "a-very-long-user-agent-(it-will-be-truncated)" + "a-very-long-user-agent-(it-will-be-not-be-truncated-here)" "--credential" "cli" ]) @@ -674,18 +674,17 @@ let ``Submit allows a long user-agent`` () = Location: myLocation Credential: CLI AadToken: myTok - UserAgent: a-very-long-user-agent-( + UserAgent: a-very-long-user-agent-(it-will-be-not-be-truncated-here) Job Name: myJobName Job Parameters: Shots: 750 Output: FriendlyUri Dry Run: False Verbose: True - Submitting Q# entry point using a quantum machine. - https://www.example.com/00000000-0000-0000-0000-0000000000000" - + + [] let ``Submit extracts the location from a quantum endpoint`` () = let given = test "Returns Unit" diff --git a/src/Simulation/EntryPointDriver/Azure/AzureSettings.cs b/src/Simulation/EntryPointDriver/Azure/AzureSettings.cs index 87dedafc164..3577d5258f6 100644 --- a/src/Simulation/EntryPointDriver/Azure/AzureSettings.cs +++ b/src/Simulation/EntryPointDriver/Azure/AzureSettings.cs @@ -136,19 +136,20 @@ internal TokenCredential CreateCredentials() } } - internal string? TrimmedUserAgent() { - var userAgent = (UserAgent ?? System.Environment.GetEnvironmentVariable("USER_AGENT"))?.Trim(); - - return (userAgent == null || userAgent.Length < 25) - ? userAgent - : userAgent.Substring(0, 24); - } - - internal QuantumJobClientOptions CreateClientOptions() { var options = new QuantumJobClientOptions(); - options.Diagnostics.ApplicationId = TrimmedUserAgent(); + + // This value will be added as a prefix in the UserAgent when + // calling the Azure Quantum API + // It cannot be larger than 24 characters. + var applicationId = string.Join('@', "Q#Run", UserAgent?.Trim()).Trim(' ', '@'); + if (applicationId?.Length > 24) + { + applicationId = applicationId.Substring(0, 24); + } + + options.Diagnostics.ApplicationId = applicationId; return options; } @@ -187,7 +188,7 @@ public override string ToString() => string.Join( $"Location: {Location ?? ExtractLocation(BaseUri)}", $"Credential: {Credential}", $"AadToken: {AadToken?.Substring(0, 5)}", - $"UserAgent: {TrimmedUserAgent()}", + $"UserAgent: {UserAgent}", $"Job Name: {JobName}", $"Job Parameters: {string.Join(", ", JobParams.OrderBy(item => item.Key))}", $"Shots: {Shots}", From 1702325887853b83ede761117f7b20c7dd346a19 Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Tue, 26 Oct 2021 23:10:05 -0700 Subject: [PATCH 03/26] Add `CX`, `CY` and `CZ` to Type1, Type3 target packages. (#842) (#861) --- .../Decompositions/CCNOTFromCCZ.qs | 2 +- .../TargetDefinitions/Decompositions/CX.qs | 42 ++++++++++++++++ .../Decompositions/CYFromCNOT.qs | 46 +++++++++++++++++ .../Decompositions/CZFromSinglyControlled.qs | 50 +++++++++++++++++++ .../TargetDefinitions/Decompositions/Utils.qs | 17 +++++++ .../Decompositions/YFromSinglyControlled.qs | 10 ++-- .../Decompositions/ZFromSinglyControlled.qs | 16 +----- .../TargetPackages/Type1.Package.props | 3 ++ .../TargetPackages/Type3.Package.props | 3 ++ 9 files changed, 167 insertions(+), 22 deletions(-) create mode 100644 src/Simulation/TargetDefinitions/Decompositions/CX.qs create mode 100644 src/Simulation/TargetDefinitions/Decompositions/CYFromCNOT.qs create mode 100644 src/Simulation/TargetDefinitions/Decompositions/CZFromSinglyControlled.qs diff --git a/src/Simulation/TargetDefinitions/Decompositions/CCNOTFromCCZ.qs b/src/Simulation/TargetDefinitions/Decompositions/CCNOTFromCCZ.qs index fcc55c6aaa6..f9082d9e2ee 100644 --- a/src/Simulation/TargetDefinitions/Decompositions/CCNOTFromCCZ.qs +++ b/src/Simulation/TargetDefinitions/Decompositions/CCNOTFromCCZ.qs @@ -26,7 +26,7 @@ namespace Microsoft.Quantum.Intrinsic { H(target); } apply { - Controlled Z([control1, control2], target); + CCZ(control1, control2, target); } } controlled (ctls, ...) { diff --git a/src/Simulation/TargetDefinitions/Decompositions/CX.qs b/src/Simulation/TargetDefinitions/Decompositions/CX.qs new file mode 100644 index 00000000000..f212bb3eced --- /dev/null +++ b/src/Simulation/TargetDefinitions/Decompositions/CX.qs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +namespace Microsoft.Quantum.Canon { + open Microsoft.Quantum.Intrinsic; + + /// # Summary + /// Applies the controlled-X (CX) gate to a pair of qubits. + /// + /// # Description + /// This operation can be simulated by the unitary matrix + /// $$ + /// \begin{align} + /// \left(\begin{matrix} + /// 1 & 0 & 0 & 0 \\\\ + /// 0 & 1 & 0 & 0 \\\\ + /// 0 & 0 & 0 & 1 \\\\ + /// 0 & 0 & 1 & 0 + /// \end{matrix}\right) + /// \end{align}, + /// $$ + /// where rows and columns are organized as in the quantum concepts guide. + /// + /// # Input + /// ## control + /// Control qubit for the CX gate. + /// ## target + /// Target qubit for the CX gate. + /// + /// # Remarks + /// Equivalent to: + /// ```qsharp + /// Controlled X([control], target); + /// ``` + /// and to: + /// ```qsharp + /// CNOT(control, target); + /// ``` + operation CX(control : Qubit, target : Qubit) : Unit is Adj + Ctl{ + CNOT(control, target); + } +} \ No newline at end of file diff --git a/src/Simulation/TargetDefinitions/Decompositions/CYFromCNOT.qs b/src/Simulation/TargetDefinitions/Decompositions/CYFromCNOT.qs new file mode 100644 index 00000000000..364b4d2c573 --- /dev/null +++ b/src/Simulation/TargetDefinitions/Decompositions/CYFromCNOT.qs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +namespace Microsoft.Quantum.Canon { + open Microsoft.Quantum.Intrinsic; + + /// # Summary + /// Applies the controlled-Y (CY) gate to a pair of qubits. + /// + /// # Description + /// This operation can be simulated by the unitary matrix + /// $$ + /// \begin{align} + /// 1 & 0 & 0 & 0 \\\\ + /// 0 & 1 & 0 & 0 \\\\ + /// 0 & 0 & 0 & -i \\\\ + /// 0 & 0 & i & 0 + /// \end{align}, + /// $$ + /// where rows and columns are organized as in the quantum concepts guide. + /// + /// # Input + /// ## control + /// Control qubit for the CY gate. + /// ## target + /// Target qubit for the CY gate. + /// + /// # Remarks + /// Equivalent to: + /// ```qsharp + /// Controlled Y([control], target); + /// ``` + operation CY(control : Qubit, target : Qubit) : Unit { + body (...) { + within { + MapPauli(target, PauliX, PauliY); + } + apply { + CNOT(control, target); + } + } + adjoint self; + controlled distribute; + controlled adjoint self; + } +} \ No newline at end of file diff --git a/src/Simulation/TargetDefinitions/Decompositions/CZFromSinglyControlled.qs b/src/Simulation/TargetDefinitions/Decompositions/CZFromSinglyControlled.qs new file mode 100644 index 00000000000..80d6000368e --- /dev/null +++ b/src/Simulation/TargetDefinitions/Decompositions/CZFromSinglyControlled.qs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +namespace Microsoft.Quantum.Canon { + open Microsoft.Quantum.Intrinsic; + + /// # Summary + /// Applies the controlled-Z (CZ) gate to a pair of qubits. + /// + /// # Description + /// This operation can be simulated by the unitary matrix + /// $$ + /// \begin{align} + /// 1 & 0 & 0 & 0 \\\\ + /// 0 & 1 & 0 & 0 \\\\ + /// 0 & 0 & 1 & 0 \\\\ + /// 0 & 0 & 0 & -1 + /// \end{align}, + /// $$ + /// where rows and columns are organized as in the quantum concepts guide. + /// + /// # Input + /// ## control + /// Control qubit for the CZ gate. + /// ## target + /// Target qubit for the CZ gate. + /// + /// # Remarks + /// Equivalent to: + /// ```qsharp + /// Controlled Z([control], target); + /// ``` + operation CZ(control : Qubit, target : Qubit) : Unit { + body (...) { + ApplyControlledZ(control, target); + } + controlled (ctls, ...) { + if Length(ctls) == 0 { + ApplyControlledZ(control, target); + } + elif Length(ctls) == 1 { + CCZ(ctls[0], control, target); + } + else { + ApplyWithLessControlsA(Controlled CZ, (ctls, (control, target))); + } + } + adjoint self; + } +} \ No newline at end of file diff --git a/src/Simulation/TargetDefinitions/Decompositions/Utils.qs b/src/Simulation/TargetDefinitions/Decompositions/Utils.qs index 32c31472a42..3275be341a0 100644 --- a/src/Simulation/TargetDefinitions/Decompositions/Utils.qs +++ b/src/Simulation/TargetDefinitions/Decompositions/Utils.qs @@ -99,6 +99,23 @@ namespace Microsoft.Quantum.Intrinsic { H(target); } + internal operation CCZ (control1 : Qubit, control2 : Qubit, target : Qubit) : Unit is Adj { + // [Page 15 of arXiv:1206.0758v3](https://arxiv.org/pdf/1206.0758v3.pdf#page=15) + Adjoint T(control1); + Adjoint T(control2); + CNOT(target, control1); + T(control1); + CNOT(control2, target); + CNOT(control2, control1); + T(target); + Adjoint T(control1); + CNOT(control2, target); + CNOT(target, control1); + Adjoint T(target); + T(control1); + CNOT(control2, control1); + } + internal function ReducedDyadicFraction (numerator : Int, denominatorPowerOfTwo : Int) : (Int, Int) { if (numerator == 0) { return (0,0); } mutable num = numerator; diff --git a/src/Simulation/TargetDefinitions/Decompositions/YFromSinglyControlled.qs b/src/Simulation/TargetDefinitions/Decompositions/YFromSinglyControlled.qs index 71499ff03ac..95e0cb96740 100644 --- a/src/Simulation/TargetDefinitions/Decompositions/YFromSinglyControlled.qs +++ b/src/Simulation/TargetDefinitions/Decompositions/YFromSinglyControlled.qs @@ -2,6 +2,7 @@ // Licensed under the MIT License. namespace Microsoft.Quantum.Intrinsic { + open Microsoft.Quantum.Canon; /// # Summary /// Applies the Pauli $Y$ gate. @@ -27,19 +28,14 @@ namespace Microsoft.Quantum.Intrinsic { ApplyUncontrolledY(qubit); } elif (Length(ctls) == 1) { - within { - MapPauli(qubit, PauliX, PauliY); - } - apply { - CNOT(ctls[0], qubit); - } + CY(ctls[0], qubit); } elif (Length(ctls) == 2) { within { MapPauli(qubit, PauliZ, PauliY); } apply { - Controlled Z(ctls, qubit); + CCZ(ctls[0], ctls[1], qubit); } } else { diff --git a/src/Simulation/TargetDefinitions/Decompositions/ZFromSinglyControlled.qs b/src/Simulation/TargetDefinitions/Decompositions/ZFromSinglyControlled.qs index 7072a4f17c9..52b8f7d7b00 100644 --- a/src/Simulation/TargetDefinitions/Decompositions/ZFromSinglyControlled.qs +++ b/src/Simulation/TargetDefinitions/Decompositions/ZFromSinglyControlled.qs @@ -2,6 +2,7 @@ // Licensed under the MIT License. namespace Microsoft.Quantum.Intrinsic { + open Microsoft.Quantum.Canon; /// # Summary /// Applies the Pauli $Z$ gate. @@ -30,20 +31,7 @@ namespace Microsoft.Quantum.Intrinsic { ApplyControlledZ(ctls[0], qubit); } elif (Length(ctls) == 2) { - // [Page 15 of arXiv:1206.0758v3](https://arxiv.org/pdf/1206.0758v3.pdf#page=15) - Adjoint T(ctls[0]); - Adjoint T(ctls[1]); - CNOT(qubit, ctls[0]); - T(ctls[0]); - CNOT(ctls[1], qubit); - CNOT(ctls[1], ctls[0]); - T(qubit); - Adjoint T(ctls[0]); - CNOT(ctls[1], qubit); - CNOT(qubit, ctls[0]); - Adjoint T(qubit); - T(ctls[0]); - CNOT(ctls[1], ctls[0]); + CCZ(ctls[0], ctls[1], qubit); } else { ApplyWithLessControlsA(Controlled Z, (ctls, qubit)); diff --git a/src/Simulation/TargetDefinitions/TargetPackages/Type1.Package.props b/src/Simulation/TargetDefinitions/TargetPackages/Type1.Package.props index 866fd1f0391..a66eb655be5 100644 --- a/src/Simulation/TargetDefinitions/TargetPackages/Type1.Package.props +++ b/src/Simulation/TargetDefinitions/TargetPackages/Type1.Package.props @@ -26,6 +26,9 @@ + + + diff --git a/src/Simulation/TargetDefinitions/TargetPackages/Type3.Package.props b/src/Simulation/TargetDefinitions/TargetPackages/Type3.Package.props index b0d5d34c908..3dd8eee8145 100644 --- a/src/Simulation/TargetDefinitions/TargetPackages/Type3.Package.props +++ b/src/Simulation/TargetDefinitions/TargetPackages/Type3.Package.props @@ -27,6 +27,9 @@ + + + From 9239c4200ba2feb31e50c2e666c2feec96403b15 Mon Sep 17 00:00:00 2001 From: Ian Davis Date: Thu, 4 Nov 2021 17:11:19 -0700 Subject: [PATCH 04/26] Moving QIR runtime build config into CMakeLists. (#863) * Moving QIR runtime build config into qir_cmake_include CMakeLists. --- src/Qir/Common/cmake/qir_cmake_include.cmake | 169 ++++++++++++++++++ src/Qir/Runtime/CMakeLists.txt | 7 - src/Qir/qir-utils.ps1 | 174 ++----------------- 3 files changed, 184 insertions(+), 166 deletions(-) diff --git a/src/Qir/Common/cmake/qir_cmake_include.cmake b/src/Qir/Common/cmake/qir_cmake_include.cmake index 25e66fbd104..9ad60d716ea 100644 --- a/src/Qir/Common/cmake/qir_cmake_include.cmake +++ b/src/Qir/Common/cmake/qir_cmake_include.cmake @@ -39,3 +39,172 @@ macro(target_source_from_qir target_name source_file) ${OBJFILE} ) endmacro() + + +#=============================================================================== +# Common flags + +# Always use available Spectre mitigations where available +if (NOT APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mspeculative-load-hardening -mretpoline") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mspeculative-load-hardening -mretpoline") +endif() + +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG") + +#=============================================================================== +# Warnings + +# Treat warnings as errors: +# https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages +set(WARNING_FLAGS "-Werror") + +# Enable all warnings: +# https://clang.llvm.org/docs/UsersManual.html#enabling-all-diagnostics +# https://clang.llvm.org/docs/DiagnosticsReference.html +set(WARNING_FLAGS "${WARNING_FLAGS} -Weverything") + +# Disable these warnings: + +# We don't care about keeping compatibility with C++98/03, C++11, C++14. Any new features unknown to our compiler version will be reported as errors. +# -Wc++98-compat-pedantic +# -Wc++98-compat, +# -Wc++98-compat-local-type-template-args, -Wc++98-compat-unnamed-type-template-args, -Wpre-c++14-compat, +# -Wpre-c++17-compat, -Wpre-c++20-compat, -Wpre-c++2b-compat. +# -Wc++98-compat-bind-to-temporary-copy, -Wc++98-compat-extra-semi, +# -Wpre-c++14-compat-pedantic, +# -Wc++98-c++11-compat-binary-literal, -Wpre-c++14-compat. +# -Wpre-c++17-compat-pedantic, +# -Wpre-c++17-compat. +# -Wpre-c++20-compat-pedantic, +# -Wpre-c++20-compat. +# -Wpre-c++2b-compat-pedantic (= -Wpre-c++2b-compat). + +# https://clang.llvm.org/docs/DiagnosticsReference.html#wc-98-compat-pedantic +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-c++98-compat-pedantic") + +# Old-style casts increase readability as opposed to `reinterpret_cast<..>()`. We want to be able to use the old-style casts. +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-old-style-cast") + +# Even if the `switch` covers all the enumerators, it is still good to have `default` label to cover the potential newly added (but not handled) enumerators. +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-covered-switch-default") + +# We are OK using C99 features. +# -Wc99-extension +# -Wc99-designator +# -Wc++20-designator +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-c99-extensions") + +# We are OK that the structs are padded to align the fields. +# https://clang.llvm.org/docs/DiagnosticsReference.html#wpadded +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-padded") + +# We are OK with abstract classes. +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-weak-vtables") + +# Temporarily disable the following warnings (until QIR RT is refactored to expose C interface). + +# Looks like the `-Wglobal-constructors` warns that the instance of the `__dllexport` class/struct (or a static member var of such class/struct) +# needs to be constructible by calling a global `__dllexport` function (to guarantee that a single instance is created and the same instance is used +# both inside and outside of the binary (dynamic library or executable)). +# Or it warns about the constructor that is invoked for a global (or static member) variable _before_ the `main()` is invoked, thus slowing down the start, +# see https://stackoverflow.com/a/15708829/6362941 + +# https://clang.llvm.org/docs/DiagnosticsReference.html#wglobal-constructors +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-global-constructors") + +# Looks like the `-Wexit-time-destructors` warns that the destructor of a global or static member variable will be invoked +# _after_ the `main()` returns (thus slowing down the termination/restart). +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-exit-time-destructors") + +# Temporarily disable "-Wextra-semi-stmt" that warns about redundant `;` in the end of `INFO(id);` of Catch tests framework (which looks fixed in the latest Catch version). +# Disable until the Catch header "src\Qir\Common\Externals\catch2\catch.hpp" is updated to a version newer than v2.12.1 (from https://github.com/catchorg/Catch2). + +# https://clang.llvm.org/docs/DiagnosticsReference.html#wextra-semi-stmt +set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-extra-semi-stmt") + +# Save the assembled warnings +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}") + + +#=============================================================================== +# Sanitizers (https://clang.llvm.org/docs/UsersManual.html#controlling-code-generation): + +if (NOT WIN32) + set(SANITIZE_FLAGS "") + + # Undefined Behavior Sanitizer (https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) + # Win: + # FAILED: lib/QIR/Microsoft.Quantum.Qir.Runtime.dll lib/QIR/Microsoft.Quantum.Qir.Runtime.lib + # lld-link: error: /failifmismatch: mismatch detected for 'RuntimeLibrary': + # >>> lib/QIR/CMakeFiles/qir-rt-support-obj.dir/QubitManager.cpp.obj has value MD_DynamicRelease + # >>> clang_rt.ubsan_standalone_cxx-x86_64.lib(ubsan_type_hash_win.cc.obj) has value MT_StaticRelease + # clang++: error: linker command failed with exit code 1 (use -v to see invocation) + set(SANITIZE_FLAGS "${SANITIZE_FLAGS} -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability") + + # TODO: + # For Win consider extra build configuration linking all libs statically, enable `-fsanitize=undefined`, run the statically linked tests. + + #if (-not ($IsMacOS)) # Cannot be combined with `-fsanitize=address`. + #{ + # # Safe Stack instrumentation (https://clang.llvm.org/docs/SafeStack.html): + # # No support for Win, Mac. + # # clang: error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin19.6.0' + # # Linking a DSO with SafeStack is not currently supported. But compilation, linking, and test runs all succeed. + # $sanitizeFlags += " -fsanitize=safe-stack" + #} + + ## Memory Sanitizer (https://clang.llvm.org/docs/MemorySanitizer.html) + ## Win: Not supported. + ## clang: error: unsupported option '-fsanitize=memory' for target 'x86_64-pc-windows-msvc' + ## WSL: Complains for use-of-uninitialized-value in `catch2/catch.hpp` during initialization of global vars + ## (if run both as `pwsh Runtime/test-qir-runtime.ps1` (or Tests/test-qir-tests.ps1) and as standalone). + ## An update of `catch2/catch.hpp` to 2.13.6 (search for "go to the v2.x branch" at https://github.com/catchorg/Catch2) didn't help. + ## Suppressing of the errors in the updated `catch2/catch.hpp` and standard library headers eventually bumps into errors reported in `memcmp`, + ## suppressing of which does not work (https://github.com/google/sanitizers/issues/1429#issuecomment-876799463). + ## Looks like MSan will not work until the libstdc++ is recompiled to be instrumented (https://clang.llvm.org/docs/MemorySanitizer.html#handling-external-code). + ## Instrumenting libstdc++ during CI builds seems impractical (https://stackoverflow.com/a/22301584/6362941). + #$sanitizeFlags += " -fsanitize=memory -fsanitize-memory-track-origins=2" + + # Address Sanitizer (https://clang.llvm.org/docs/AddressSanitizer.html) + # Win: (Conflict between the ASan library and MSVC library) + # [19/35] Linking CXX shared library lib\QIR\Microsoft.Quantum.Qir.Runtime.dll + # FAILED: lib/QIR/Microsoft.Quantum.Qir.Runtime.dll lib/QIR/Microsoft.Quantum.Qir.Runtime.lib + # cmd.exe /C "cd . && C:\PROGRA~1\LLVM12\bin\CLANG_~1.EXE -fuse-ld=lld-link -nostartfiles -nostdlib -Werror -Weverything .... \ + # -fsanitize=address -g -Xclang -gcodeview -O0 -DDEBUG -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd \ + # -Xlinker /guard:cf -shared -o lib\QIR\Microsoft.Quantum.Qir.Runtime.dll -Xlinker /implib:lib\QIR\Microsoft.Quantum.Qir.Runtime.lib \ + # -Xlinker /pdb:lib\QIR\Microsoft.Quantum.Qir.Runtime.pdb -Xlinker /version:0.0 lib/QIR/bridge-rt.obj \ + # lib/QIR/CMakeFiles/qir-rt-support-obj.dir/QirRange.cpp.obj lib/QIR/CMakeFiles/qir-rt-support-obj.dir/OutputStream.cpp.obj ....\ + # -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames && cd ." + # lld-link: error: duplicate symbol: malloc + # >>> defined at C:\src\llvm_package_6923b0a7\llvm-project\compiler-rt\lib\asan\asan_win_dll_thunk.cpp:34 + # >>> clang_rt.asan_dll_thunk-x86_64.lib(asan_win_dll_thunk.cpp.obj) + # >>> defined at ucrtbased.dll + # clang++: error: linker command failed with exit code 1 (use -v to see invocation) + + # https://clang.llvm.org/docs/AddressSanitizer.html + set(SANITIZE_FLAGS "${SANITIZE_FLAGS} -fsanitize=address") + + # TODO: + # * Some tests verify the failure behavior, i.e. they cause `Fail()` to be called and return to the caller with the exception. + # Any allocations made between the call and the exception throw (caught by `REQUIRE_THROWS()`) are leaking. + # Extract such tests to a separate .cpp file or executable and compile with leak check off (or suppress leaks in that .cpp or executable only). + + # Common for all sanitizers: + # https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#suppressing-errors-in-recompiled-code-ignorelist + # https://releases.llvm.org/11.0.1/tools/clang/docs/SanitizerSpecialCaseList.html + set(SANITIZE_FLAGS "${SANITIZE_FLAGS} -fsanitize-blacklist=${CMAKE_CURRENT_LIST_DIR}/../../UBSan.ignore") + + # https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html + set(SANITIZE_FLAGS "${SANITIZE_FLAGS} -fno-omit-frame-pointer") + + # https://clang.llvm.org/docs/AddressSanitizer.html + set(SANITIZE_FLAGS "${SANITIZE_FLAGS} -fno-optimize-sibling-calls") + + # Save the flags + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${SANITIZE_FLAGS}") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${SANITIZE_FLAGS}") +endif() + diff --git a/src/Qir/Runtime/CMakeLists.txt b/src/Qir/Runtime/CMakeLists.txt index 0635bcf57b2..0f4bdf52d55 100644 --- a/src/Qir/Runtime/CMakeLists.txt +++ b/src/Qir/Runtime/CMakeLists.txt @@ -9,13 +9,6 @@ project(qirruntime) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") - -# Always use available Spectre mitigations where available -if (NOT APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mspeculative-load-hardening -mretpoline") -endif() - if (WIN32) # Enforce use of static runtime (avoids target machine needing msvcrt installed). set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") diff --git a/src/Qir/qir-utils.ps1 b/src/Qir/qir-utils.ps1 index 11aac34ecfa..612c19b9246 100644 --- a/src/Qir/qir-utils.ps1 +++ b/src/Qir/qir-utils.ps1 @@ -34,163 +34,24 @@ function Build-CMakeProject { ) Write-Host "##[info]Build $Name" - $oldCC = $env:CC - $oldCXX = $env:CXX - $oldRC = $env:RC - $oldCFLAGS = $env:CFLAGS - $oldCXXFLAGS = $env:CXXFLAGS + $CMAKE_C_COMPILER = "" + $CMAKE_CXX_COMPILER = "" $clangTidy = "" - # Treat warnings as errors: - $warningFlags = "-Werror" # https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages - # Enable all warnings: - $warningFlags += " -Weverything" # https://clang.llvm.org/docs/UsersManual.html#enabling-all-diagnostics - # https://clang.llvm.org/docs/DiagnosticsReference.html - - # Disable these warnings: - - # We don't care about keeping compatibility with C++98/03, C++11, C++14. Any new features unknown to our compiler version will be reported as errors. - # -Wc++98-compat-pedantic - # -Wc++98-compat, - # -Wc++98-compat-local-type-template-args, -Wc++98-compat-unnamed-type-template-args, -Wpre-c++14-compat, - # -Wpre-c++17-compat, -Wpre-c++20-compat, -Wpre-c++2b-compat. - # -Wc++98-compat-bind-to-temporary-copy, -Wc++98-compat-extra-semi, - # -Wpre-c++14-compat-pedantic, - # -Wc++98-c++11-compat-binary-literal, -Wpre-c++14-compat. - # -Wpre-c++17-compat-pedantic, - # -Wpre-c++17-compat. - # -Wpre-c++20-compat-pedantic, - # -Wpre-c++20-compat. - # -Wpre-c++2b-compat-pedantic (= -Wpre-c++2b-compat). - $warningFlags += " -Wno-c++98-compat-pedantic" # https://clang.llvm.org/docs/DiagnosticsReference.html#wc-98-compat-pedantic - # Old-style casts increase readability as opposed to `reinterpret_cast<..>()`. We want to be able to use the old-style casts. - $warningFlags += " -Wno-old-style-cast" - # Even if the `switch` covers all the enumerators, it is still good to have `default` label to cover the potential newly added (but not handled) enumerators. - $warningFlags += " -Wno-covered-switch-default" - # We are OK using C99 features. - # -Wc99-extension - # -Wc99-designator - # -Wc++20-designator - $warningFlags += " -Wno-c99-extensions" - # We are OK that the structs are padded to align the fields. - $warningFlags += " -Wno-padded" # https://clang.llvm.org/docs/DiagnosticsReference.html#wpadded - # We are OK with abstract classes. - $warningFlags += " -Wno-weak-vtables" - - - # Temporarily disable the following warnings (until QIR RT is refactored to expose C interface). - - # Looks like the `-Wglobal-constructors` warns that the instance of the `__dllexport` class/struct (or a static member var of such class/struct) - # needs to be constructible by calling a global `__dllexport` function (to guarantee that a single instance is created and the same instance is used - # both inside and outside of the binary (dynamic library or executable)). - # Or it warns about the constructor that is invoked for a global (or static member) variable _before_ the `main()` is invoked, thus slowing down the start, - # see https://stackoverflow.com/a/15708829/6362941 - $warningFlags += " -Wno-global-constructors" # https://clang.llvm.org/docs/DiagnosticsReference.html#wglobal-constructors - # Looks like the `-Wexit-time-destructors` warns that the destructor of a global or static member variable will be invoked - # _after_ the `main()` returns (thus slowing down the termination/restart). - $warningFlags += " -Wno-exit-time-destructors" - - # Temporarily disable "-Wextra-semi-stmt" that warns about redundant `;` in the end of `INFO(id);` of Catch tests framework (which looks fixed in the latest Catch version). - # Disable until the Catch header "src\Qir\Common\Externals\catch2\catch.hpp" is updated to a version newer than v2.12.1 (from https://github.com/catchorg/Catch2). - $warningFlags += " -Wno-extra-semi-stmt" # https://clang.llvm.org/docs/DiagnosticsReference.html#wextra-semi-stmt - - $env:CFLAGS += $warningFlags - $env:CXXFLAGS += $warningFlags - - - if ($Env:BUILD_CONFIGURATION -eq "Debug") - { - # Sanitizers (https://clang.llvm.org/docs/UsersManual.html#controlling-code-generation): - - $sanitizeFlags = "" - if (-not ($IsWindows)) - { - # Undefined Behavior Sanitizer (https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) - # Win: - # FAILED: lib/QIR/Microsoft.Quantum.Qir.Runtime.dll lib/QIR/Microsoft.Quantum.Qir.Runtime.lib - # lld-link: error: /failifmismatch: mismatch detected for 'RuntimeLibrary': - # >>> lib/QIR/CMakeFiles/qir-rt-support-obj.dir/QubitManager.cpp.obj has value MD_DynamicRelease - # >>> clang_rt.ubsan_standalone_cxx-x86_64.lib(ubsan_type_hash_win.cc.obj) has value MT_StaticRelease - # clang++: error: linker command failed with exit code 1 (use -v to see invocation) - $sanitizeFlags += " -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" - # TODO: - # For Win consider extra build configuration linking all libs statically, enable `-fsanitize=undefined`, run the statically linked tests. - - #if (-not ($IsMacOS)) # Cannot be combined with `-fsanitize=address`. - #{ - # # Safe Stack instrumentation (https://clang.llvm.org/docs/SafeStack.html): - # # No support for Win, Mac. - # # clang: error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin19.6.0' - # # Linking a DSO with SafeStack is not currently supported. But compilation, linking, and test runs all succeed. - # $sanitizeFlags += " -fsanitize=safe-stack" - #} - - ## Memory Sanitizer (https://clang.llvm.org/docs/MemorySanitizer.html) - ## Win: Not supported. - ## clang: error: unsupported option '-fsanitize=memory' for target 'x86_64-pc-windows-msvc' - ## WSL: Complains for use-of-uninitialized-value in `catch2/catch.hpp` during initialization of global vars - ## (if run both as `pwsh Runtime/test-qir-runtime.ps1` (or Tests/test-qir-tests.ps1) and as standalone). - ## An update of `catch2/catch.hpp` to 2.13.6 (search for "go to the v2.x branch" at https://github.com/catchorg/Catch2) didn't help. - ## Suppressing of the errors in the updated `catch2/catch.hpp` and standard library headers eventually bumps into errors reported in `memcmp`, - ## suppressing of which does not work (https://github.com/google/sanitizers/issues/1429#issuecomment-876799463). - ## Looks like MSan will not work until the libstdc++ is recompiled to be instrumented (https://clang.llvm.org/docs/MemorySanitizer.html#handling-external-code). - ## Instrumenting libstdc++ during CI builds seems impractical (https://stackoverflow.com/a/22301584/6362941). - #$sanitizeFlags += " -fsanitize=memory -fsanitize-memory-track-origins=2" - - # Address Sanitizer (https://clang.llvm.org/docs/AddressSanitizer.html) - # Win: (Conflict between the ASan library and MSVC library) - # [19/35] Linking CXX shared library lib\QIR\Microsoft.Quantum.Qir.Runtime.dll - # FAILED: lib/QIR/Microsoft.Quantum.Qir.Runtime.dll lib/QIR/Microsoft.Quantum.Qir.Runtime.lib - # cmd.exe /C "cd . && C:\PROGRA~1\LLVM12\bin\CLANG_~1.EXE -fuse-ld=lld-link -nostartfiles -nostdlib -Werror -Weverything .... \ - # -fsanitize=address -g -Xclang -gcodeview -O0 -DDEBUG -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd \ - # -Xlinker /guard:cf -shared -o lib\QIR\Microsoft.Quantum.Qir.Runtime.dll -Xlinker /implib:lib\QIR\Microsoft.Quantum.Qir.Runtime.lib \ - # -Xlinker /pdb:lib\QIR\Microsoft.Quantum.Qir.Runtime.pdb -Xlinker /version:0.0 lib/QIR/bridge-rt.obj \ - # lib/QIR/CMakeFiles/qir-rt-support-obj.dir/QirRange.cpp.obj lib/QIR/CMakeFiles/qir-rt-support-obj.dir/OutputStream.cpp.obj ....\ - # -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames && cd ." - # lld-link: error: duplicate symbol: malloc - # >>> defined at C:\src\llvm_package_6923b0a7\llvm-project\compiler-rt\lib\asan\asan_win_dll_thunk.cpp:34 - # >>> clang_rt.asan_dll_thunk-x86_64.lib(asan_win_dll_thunk.cpp.obj) - # >>> defined at ucrtbased.dll - # clang++: error: linker command failed with exit code 1 (use -v to see invocation) - $sanitizeFlags += " -fsanitize=address" # https://clang.llvm.org/docs/AddressSanitizer.html - # TODO: - # * Some tests verify the failure behavior, i.e. they cause `Fail()` to be called and return to the caller with the exception. - # Any allocations made between the call and the exception throw (caught by `REQUIRE_THROWS()`) are leaking. - # Extract such tests to a separate .cpp file or executable and compile with leak check off (or suppress leaks in that .cpp or executable only). - - # Common for all sanitizers: - $sanitizeFlags += " -fsanitize-blacklist=" # https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#suppressing-errors-in-recompiled-code-ignorelist - # https://releases.llvm.org/11.0.1/tools/clang/docs/SanitizerSpecialCaseList.html - $sanitizeFlags += (Join-Path $Path .. UBSan.ignore) - - $sanitizeFlags += " -fno-omit-frame-pointer" # https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html - $sanitizeFlags += " -fno-optimize-sibling-calls" # https://clang.llvm.org/docs/AddressSanitizer.html - } # if (-not ($IsWindows)) - - $env:CFLAGS += $sanitizeFlags - $env:CXXFLAGS += $sanitizeFlags - } # if ($Env:BUILD_CONFIGURATION -eq "Debug") - - - if (($IsMacOS) -or ((Test-Path Env:/AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) - { + if (($IsMacOS) -or ((Test-Path Env:/AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { Write-Host "On MacOS build $Name using the default C/C++ compiler (should be AppleClang)" } - elseif (($IsLinux) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Lin")))) - { + elseif (($IsLinux) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Lin")))) { Write-Host "On Linux build $Name using Clang" - $env:CC = "clang-11" - $env:CXX = "clang++-11" - $env:RC = "clang++-11" + $CMAKE_C_COMPILER = "-DCMAKE_C_COMPILER=clang-11" + $CMAKE_CXX_COMPILER = "-DCMAKE_CXX_COMPILER=clang++-11" $clangTidy = "-DCMAKE_CXX_CLANG_TIDY=clang-tidy-11" } - elseif (($IsWindows) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) - { + elseif (($IsWindows) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { Write-Host "On Windows build $Name using Clang" - $env:CC = "clang.exe" - $env:CXX = "clang++.exe" - $env:RC = "clang++.exe" + $CMAKE_C_COMPILER = "-DCMAKE_C_COMPILER=clang.exe" + $CMAKE_CXX_COMPILER = "-DCMAKE_CXX_COMPILER=clang++.exe" if ((!(Get-Command clang -ErrorAction SilentlyContinue) -and (choco find --idonly -l llvm) -contains "llvm") -or ` (Test-Path Env:/AGENT_OS)) { @@ -204,7 +65,8 @@ function Build-CMakeProject { # the Linux build catch tidy issues. $clangTidy = "-DCMAKE_CXX_CLANG_TIDY=clang-tidy" } - } else { + } + else { Write-Host "##vso[task.logissue type=warning;]Failed to identify the OS. Will use default CXX compiler" } @@ -218,15 +80,16 @@ function Build-CMakeProject { Push-Location $cmakeBuildFolder $buildType = $Env:BUILD_CONFIGURATION - if ($buildType -eq "Release"){ + if ($buildType -eq "Release") { $buildType = "RelWithDebInfo" } - cmake -G Ninja $clangTidy -D CMAKE_VERBOSE_MAKEFILE:BOOL=ON -D CMAKE_BUILD_TYPE="$buildType" ../.. | Write-Host + cmake -G Ninja $CMAKE_C_COMPILER $CMAKE_CXX_COMPILER $clangTidy -D CMAKE_BUILD_TYPE="$buildType" ../.. | Write-Host if ($LastExitCode -ne 0) { Write-Host "##vso[task.logissue type=error;]Failed to generate $Name." $all_ok = $false - } else { + } + else { cmake --build . --target install | Write-Host if ($LastExitCode -ne 0) { Write-Host "##vso[task.logissue type=error;]Failed to build $Name." @@ -236,13 +99,6 @@ function Build-CMakeProject { Pop-Location - $env:CXXFLAGS = $oldCXXFLAGS - $env:CFLAGS = $oldCFLAGS - - $env:CC = $oldCC - $env:CXX = $oldCXX - $env:RC = $oldRC - return $all_ok } From 59e55c097b0fc6e60f8dc1ef9533904bbe392e60 Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Tue, 9 Nov 2021 05:56:46 -0800 Subject: [PATCH 05/26] Basic Runtime Driver (#859) * Basic Runtime Driver implementation * Remove leftover comment * fix copyright comment * Include memory header * Adding static lib generation * Removing static lib changes Co-authored-by: Ian Davis --- .../Runtime/lib/QIR/BasicRuntimeDriver.cpp | 75 +++++++++++++++++++ src/Qir/Runtime/lib/QIR/CMakeLists.txt | 1 + .../lib/QSharpFoundation/CMakeLists.txt | 1 - .../public/BasicRuntimeDriverFactory.h | 21 ++++++ 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/Qir/Runtime/lib/QIR/BasicRuntimeDriver.cpp create mode 100644 src/Qir/Runtime/public/BasicRuntimeDriverFactory.h diff --git a/src/Qir/Runtime/lib/QIR/BasicRuntimeDriver.cpp b/src/Qir/Runtime/lib/QIR/BasicRuntimeDriver.cpp new file mode 100644 index 00000000000..f84399ae30c --- /dev/null +++ b/src/Qir/Runtime/lib/QIR/BasicRuntimeDriver.cpp @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include +#include + +#include "QirRuntimeApi_I.hpp" +#include "QubitManager.hpp" +#include "BasicRuntimeDriverFactory.h" + +namespace Microsoft +{ +namespace Quantum +{ + class CBasicRuntimeDriver : public IRuntimeDriver + { + std::unique_ptr qubitManager; + + public: + CBasicRuntimeDriver() + { + qubitManager = std::make_unique(); + } + + ~CBasicRuntimeDriver() override + { + } + + std::string QubitToString(QubitIdType q) override + { + return std::to_string(q); + } + + QubitIdType AllocateQubit() override + { + return qubitManager->Allocate(); + } + + void ReleaseQubit(QubitIdType q) override + { + qubitManager->Release(q); + } + + void ReleaseResult(Result /* result */) override + { + } + + bool AreEqualResults(Result r1, Result r2) override + { + return r1 == r2; + } + + ResultValue GetResultValue(Result r) override + { + return (r == UseZero()) ? Result_Zero : Result_One; + } + + Result UseZero() override + { + return reinterpret_cast(0); + } + + Result UseOne() override + { + return reinterpret_cast(1); + } + }; + + extern "C" void* CreateBasicRuntimeDriver() + { + return (IRuntimeDriver*)new CBasicRuntimeDriver(); + } + +} // namespace Quantum +} // namespace Microsoft diff --git a/src/Qir/Runtime/lib/QIR/CMakeLists.txt b/src/Qir/Runtime/lib/QIR/CMakeLists.txt index 8fcb15d7c04..f100670f063 100644 --- a/src/Qir/Runtime/lib/QIR/CMakeLists.txt +++ b/src/Qir/Runtime/lib/QIR/CMakeLists.txt @@ -19,6 +19,7 @@ set(rt_sup_source_files strings.cpp utils.cpp QubitManager.cpp + BasicRuntimeDriver.cpp ) # Produce object lib we'll use to create a shared lib (so/dll) later on diff --git a/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt b/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt index 177ec7f4985..f8ca4ebe1c0 100644 --- a/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt +++ b/src/Qir/Runtime/lib/QSharpFoundation/CMakeLists.txt @@ -47,4 +47,3 @@ install(TARGETS Microsoft.Quantum.Qir.QSharp.Foundation LIBRARY DESTINATION "${CMAKE_BINARY_DIR}/bin" ARCHIVE DESTINATION "${CMAKE_BINARY_DIR}/bin" ) - diff --git a/src/Qir/Runtime/public/BasicRuntimeDriverFactory.h b/src/Qir/Runtime/public/BasicRuntimeDriverFactory.h new file mode 100644 index 00000000000..ca33e2b609b --- /dev/null +++ b/src/Qir/Runtime/public/BasicRuntimeDriverFactory.h @@ -0,0 +1,21 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#ifndef BASICRUNTIMEDRIVERFACTORY_H +#define BASICRUNTIMEDRIVERFACTORY_H + +#include +#include "CoreDefines.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + QIR_SHARED_API void* CreateBasicRuntimeDriver(); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // #ifndef BASICRUNTIMEDRIVERFACTORY_H From 5ea517ccd953bfea1609b6ebe176bde66576830c Mon Sep 17 00:00:00 2001 From: Ricardo Espinoza Date: Wed, 10 Nov 2021 11:57:01 -0800 Subject: [PATCH 06/26] Normalize case of target name when creating Quantum Machine (#868) This complements the change in the pull request below: microsoft/qsharp-compiler#1241 By normalizing to lower case the target name, we allow execution even if the target name was provided without matching case. --- .../Machine/QuantumMachineFactory.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Azure/Azure.Quantum.Client/Machine/QuantumMachineFactory.cs b/src/Azure/Azure.Quantum.Client/Machine/QuantumMachineFactory.cs index 3e4fac8dddb..be9c1b2b0e2 100644 --- a/src/Azure/Azure.Quantum.Client/Machine/QuantumMachineFactory.cs +++ b/src/Azure/Azure.Quantum.Client/Machine/QuantumMachineFactory.cs @@ -23,14 +23,17 @@ public static class QuantumMachineFactory public static IQuantumMachine? CreateMachine( IWorkspace workspace, string targetName, string? storageConnectionString = null) { + // We normalize the case of the provided target name to lower. + var targetNameNormalized = targetName?.ToLowerInvariant(); + var machineName = - targetName is null + targetNameNormalized is null ? null - : targetName.StartsWith("qci.") + : targetNameNormalized.StartsWith("qci.") ? "Microsoft.Quantum.Providers.QCI.Targets.QCIQuantumMachine, Microsoft.Quantum.Providers.QCI" - : targetName.StartsWith("ionq.") + : targetNameNormalized.StartsWith("ionq.") ? "Microsoft.Quantum.Providers.IonQ.Targets.IonQQuantumMachine, Microsoft.Quantum.Providers.IonQ" - : targetName.StartsWith("honeywell.") + : targetNameNormalized.StartsWith("honeywell.") ? "Microsoft.Quantum.Providers.Honeywell.Targets.HoneywellQuantumMachine, Microsoft.Quantum.Providers.Honeywell" : null; @@ -54,7 +57,7 @@ targetName is null ? null : (IQuantumMachine)Activator.CreateInstance( machineType, - targetName, + targetNameNormalized, workspace, storageConnectionString); } From b30286c683d16a8552c8e270b26f99428c2494d0 Mon Sep 17 00:00:00 2001 From: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com> Date: Wed, 10 Nov 2021 20:50:27 -0800 Subject: [PATCH 07/26] Preparing the QuantumSimulator for unifying the Dump(). (#867) * Moved some classes from IQSharp --- src/Simulation/Core/IOperationFactory.cs | 2 +- src/Simulation/Native/src/simulator/capi.hpp | 2 + .../src/simulator/simulatorinterface.hpp | 1 + .../Simulators/QuantumSimulator/Dump.cs | 39 +- .../QuantumSimulator/NativeImports.cs | 1 + .../QuantumSimulator/SimulatorBase.cs | 4 +- .../QuantumSimulator/StateDumper.cs | 355 ++++++++++++++++-- 7 files changed, 350 insertions(+), 54 deletions(-) diff --git a/src/Simulation/Core/IOperationFactory.cs b/src/Simulation/Core/IOperationFactory.cs index eedca83664b..70310776a17 100644 --- a/src/Simulation/Core/IOperationFactory.cs +++ b/src/Simulation/Core/IOperationFactory.cs @@ -24,7 +24,7 @@ public interface IOperationFactory /// /// Returns an instance of the requested operation. /// - I Get(Type T); + I Get(Type t); /// /// Returns an instance of the requested operation. diff --git a/src/Simulation/Native/src/simulator/capi.hpp b/src/Simulation/Native/src/simulator/capi.hpp index 2c33478b56b..260b8a43905 100644 --- a/src/Simulation/Native/src/simulator/capi.hpp +++ b/src/Simulation/Native/src/simulator/capi.hpp @@ -22,6 +22,8 @@ extern "C" MICROSOFT_QUANTUM_DECL void destroy(_In_ unsigned sid); // NOLINT MICROSOFT_QUANTUM_DECL void seed(_In_ unsigned sid, _In_ unsigned s); // NOLINT MICROSOFT_QUANTUM_DECL void Dump(_In_ unsigned sid, _In_ bool (*callback)(size_t, double, double)); + + // TODO(rokuzmin): What does it return? MICROSOFT_QUANTUM_DECL bool DumpQubits( _In_ unsigned sid, _In_ unsigned n, diff --git a/src/Simulation/Native/src/simulator/simulatorinterface.hpp b/src/Simulation/Native/src/simulator/simulatorinterface.hpp index 7a85d65aef6..c23fd2df123 100644 --- a/src/Simulation/Native/src/simulator/simulatorinterface.hpp +++ b/src/Simulation/Native/src/simulator/simulatorinterface.hpp @@ -99,6 +99,7 @@ class SimulatorInterface { assert(false); } + // TODO(rokuzmin): What does it return? virtual bool dumpQubits(std::vector const& qs, bool (*callback)(size_t, double, double)) { assert(false); diff --git a/src/Simulation/Simulators/QuantumSimulator/Dump.cs b/src/Simulation/Simulators/QuantumSimulator/Dump.cs index d57d0b7dd4a..90e91105734 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Dump.cs +++ b/src/Simulation/Simulators/QuantumSimulator/Dump.cs @@ -23,48 +23,29 @@ protected virtual QVoid Dump(T target, IQArray? qubits = null) { var filename = (target is QVoid) ? "" : target.ToString(); - QVoid process(Action channel) - { - var ids = qubits?.Select(q => (uint)q.Id).ToArray() ?? QubitIds; - - var dumper = new SimpleDumper(this, channel); - channel($"# wave function for qubits with ids (least to most significant): {string.Join(";", ids)}"); - - if (!dumper.Dump(qubits)) - { - channel("## Qubits were entangled with an external qubit. Cannot dump corresponding wave function. ##"); - } - - return QVoid.Instance; - } - - var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); - - // If no file provided, use `Message` to generate the message into the console; + // If no file provided, output to the console; if (string.IsNullOrWhiteSpace(filename)) { - var op = this.Get, Microsoft.Quantum.Intrinsic.Message>(); - return process((msg) => op.Apply(msg)); + new DisplayableStateDumper(this).Dump(qubits); } else { try { - using (var file = new StreamWriter(filename)) - { - return process(file.WriteLine); - } + using var file = new StreamWriter(filename); + new DisplayableStateDumper(this, file.WriteLine).Dump(qubits); } catch (Exception e) { + var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); logMessage.Apply($"[warning] Unable to write state to '{filename}' ({e.Message})"); - return QVoid.Instance; } } + return QVoid.Instance; } - public class QsimDumpMachine : Quantum.Diagnostics.DumpMachine - { + public class QsimDumpMachine : Quantum.Diagnostics.DumpMachine // Is inherited (and replaced at runtime) + { // by (iqsharp's) JupyterDumpMachine. private QuantumSimulator Simulator { get; } public QsimDumpMachine(QuantumSimulator m) : base(m) @@ -80,8 +61,8 @@ public QsimDumpMachine(QuantumSimulator m) : base(m) }; } - public class QSimDumpRegister : Quantum.Diagnostics.DumpRegister - { + public class QSimDumpRegister : Quantum.Diagnostics.DumpRegister // Is inherited (and replaced at runtime) + { // by (iqsharp's) JupyterDumpRegister. private QuantumSimulator Simulator { get; } public QSimDumpRegister(QuantumSimulator m) : base(m) diff --git a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs index 30b84a41e8d..6ff07af9522 100644 --- a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs +++ b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs @@ -86,6 +86,7 @@ public partial class QuantumSimulator [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "Dump")] private static extern void sim_Dump(uint id, DumpCallback callback); + // TODO(rokuzmin): What does it return? [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "DumpQubits")] private static extern bool sim_DumpQubits(uint id, uint cout, uint[] ids, DumpCallback callback); diff --git a/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs b/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs index 8bb52e118e4..a5a0e4ef67e 100644 --- a/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs +++ b/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs @@ -93,9 +93,9 @@ public SimulatorBase(IQubitManager? qubitManager = null, int? seed = null) } } - public I Get(Type T) + public I Get(Type t) { - return (I)this.GetInstance(T); + return (I)this.GetInstance(t); } /// diff --git a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs b/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs index a7c351fad69..7795f0082db 100644 --- a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs +++ b/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs @@ -2,7 +2,13 @@ // Licensed under the MIT License. using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; using Microsoft.Quantum.Simulation.Core; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + namespace Microsoft.Quantum.Simulation.Simulators { @@ -14,7 +20,7 @@ public partial class QuantumSimulator /// The callback function is triggered for every state basis /// vector in the wavefunction. /// - public abstract class StateDumper + public abstract class StateDumper // Is inherited by (iqsharp's) JupyterDisplayDumper. { /// /// Basic constructor. Takes the simulator to probe. @@ -44,6 +50,7 @@ public StateDumper(QuantumSimulator qsim) /// /// Entry method to get the dump of the wave function. /// + // TODO(rokuzmin): What does it return? public virtual bool Dump(IQArray? qubits = null) { if (qubits == null) @@ -60,29 +67,190 @@ public virtual bool Dump(IQArray? qubits = null) } /// - /// A simple implementation of a . It outputs the - /// a string representation of the state to the given channel. + /// The convention to be used in labeling computational basis states + /// given their representations as strings of classical bits. /// - public class SimpleDumper : StateDumper + [JsonConverter(typeof(StringEnumConverter))] + public enum BasisStateLabelingConvention { - private int _maxCharsStateId; + /// + /// Label computational states directly by their bit strings. + /// + /// + /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled + /// by |011⟩. + /// + Bitstring, - public SimpleDumper(QuantumSimulator qsim, Action channel) : base(qsim) - { - this.Channel = channel; - } + /// + /// Label computational states directly by interpreting their bit + /// strings as little-endian encoded integers. + /// + /// + /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled + /// by |6⟩. + /// + LittleEndian, + + /// + /// Label computational states directly by interpreting their bit + /// strings as big-endian encoded integers. + /// + /// + /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled + /// by |3⟩. + /// + BigEndian + } + + /// + /// Represents a quantum state vector and all metadata needed to display + /// that state vector. + /// + public class DisplayableState + { + private static readonly IComparer ToIntComparer = + Comparer.Create((label1, label2) => + Comparer.Default.Compare( + Int32.Parse(label1), Int32.Parse(label2) + ) + ); + + /// + /// Metadata to be used when serializing to JSON, allowing code + /// in other languages to determine what representation is used + /// for this state. + /// + [JsonProperty("diagnostic_kind")] + private string DiagnosticKind => "state-vector"; + + // TODO(rokuzmin): Get back to this after the IQ#-side PR: + // /// + // /// ID for an HTML element where the vertical measurement probability histogram + // /// will be displayed. + // /// + // [JsonProperty("div_id")] + // public string DivId { get; set; } = string.Empty; /// - /// A method to call to output a string representation of the amplitude of each - /// state basis vector. + /// The indexes of each qubit on which this state is defined, or + /// null if these indexes are not known. /// - public virtual Action Channel { get; } + [JsonProperty("qubit_ids")] + public IEnumerable? QubitIds { get; set; } + + /// + /// The number of qubits on which this state is defined. + /// + [JsonProperty("n_qubits")] + public int NQubits { get; set; } + + /// + /// These amplitudes represent the computational basis states + /// labeled in little-endian order, as per the behavior of + /// . + /// + [JsonProperty("amplitudes")] + public Complex[]? Amplitudes { get; set; } + + + // TODO(rokuzmin): Make this an extension method for `QuantumSimulator.DisplayableState` in IQSharp repo: + // /// + // /// An enumerable source of the significant amplitudes of this state + // /// vector and their labels, where significance and labels are + // /// defined by the values loaded from . + // /// + // public IEnumerable<(Complex, string)> SignificantAmplitudes( + // IConfigurationSource configurationSource + // ) => SignificantAmplitudes( + // configurationSource.BasisStateLabelingConvention, + // configurationSource.TruncateSmallAmplitudes, + // configurationSource.TruncationThreshold + // ); + + /// + /// An enumerable source of the significant amplitudes of this state + /// vector and their labels. + /// + /// + /// The convention to be used in labeling each computational basis state. + /// + /// + /// Whether to truncate small amplitudes. + /// + /// + /// If is true, + /// then amplitudes whose absolute value squared are below this + /// threshold are suppressed. + /// + public IEnumerable<(Complex, string)> SignificantAmplitudes( + BasisStateLabelingConvention convention, + bool truncateSmallAmplitudes, double truncationThreshold + ) => + ( + truncateSmallAmplitudes + ? Amplitudes + .Select((amplitude, idx) => (amplitude, idx)) + .Where(item => + System.Math.Pow(item.amplitude.Magnitude, 2.0) >= truncationThreshold + ) + : Amplitudes.Select((amplitude, idx) => (amplitude, idx)) + ) + .Select( + item => (item.amplitude, BasisStateLabel(convention, item.idx)) + ) + .OrderBy( + item => item.Item2, + // If a basis state label is numeric, we want to compare + // numerically rather than lexographically. + convention switch { + BasisStateLabelingConvention.BigEndian => ToIntComparer, + BasisStateLabelingConvention.LittleEndian => ToIntComparer, + _ => Comparer.Default + } + ); + + /// + /// Using the given labeling convention, returns the label for a + /// computational basis state described by its bit string as encoded + /// into an integer index in the little-endian encoding. + /// + public string BasisStateLabel( + BasisStateLabelingConvention convention, int index + ) => convention switch + { + BasisStateLabelingConvention.Bitstring => + String.Concat( + System + .Convert + .ToString(index, 2) + .PadLeft(NQubits, '0') + .Reverse() + ), + BasisStateLabelingConvention.BigEndian => + System.Convert.ToInt64( + String.Concat( + System.Convert.ToString(index, 2).PadLeft(NQubits, '0').Reverse() + ), + fromBase: 2 + ) + .ToString(), + BasisStateLabelingConvention.LittleEndian => + index.ToString(), + _ => throw new ArgumentException($"Invalid basis state labeling convention {convention}.") + }; + /// /// Returns a string that represents the label for the given base state. /// - public virtual string FormatBaseState(uint idx) => - $"∣{idx.ToString().PadLeft(_maxCharsStateId, ' ')}❭"; + public virtual string FormatBaseState(uint idx) + { + int qubitCount = Amplitudes?.Length ?? 0; + int maxCharsStateId = ((1 << qubitCount) - 1).ToString().Length; + + return $"∣{idx.ToString().PadLeft(maxCharsStateId, ' ')}❭"; + } /// /// Returns a string that represents the magnitude of the amplitude. @@ -155,25 +323,168 @@ public virtual string Format(uint idx, double real, double img) } + public string ToString(BasisStateLabelingConvention convention, // Non-override. Parameterized. + bool truncateSmallAmplitudes, + double truncationThreshold) + { + return string.Join('\n', + SignificantAmplitudes(convention, truncateSmallAmplitudes, truncationThreshold) + .Select( + item => + { + var (cmplx, basisLabel) = item; + var amplitude = (cmplx.Real * cmplx.Real) + (cmplx.Imaginary * cmplx.Imaginary); + var angle = System.Math.Atan2(cmplx.Imaginary, cmplx.Real); + return $"|{basisLabel}⟩\t{FormatCartesian(cmplx.Real, cmplx.Imaginary)}\t == \t" + + $"{FormatPolar(amplitude, angle)}"; + })); + } + + public override string ToString() => // An override of the `object.ToString()`. + ToString(BasisStateLabelingConvention.LittleEndian, false, 0.0); + + } // public class DisplayableState + + + /// + /// A state dumper that encodes dumped states into displayable + /// objects. + /// + public class DisplayableStateDumper : StateDumper + { + private long _count = -1; + private Complex[]? _data = null; + + // TODO(rokuzmin): Remove the commented-out code below once everything works on IQSharp side. + // /// + // /// Whether small amplitudes should be truncated when dumping + // /// states. + // /// + // public bool TruncateSmallAmplitudes { get; set; } = false; + + // /// + // /// The threshold for truncating measurement probabilities when + // /// dumping states. Computational basis states whose measurement + // /// probabilities (i.e: squared magnitudes) are below this threshold + // /// are subject to truncation when + // /// + // /// is true. + // /// + // public double TruncationThreshold { get; set; } = 1e-10; + + // /// + // /// The labeling convention to be used when labeling computational + // /// basis states. + // /// + // public BasisStateLabelingConvention BasisStateLabelingConvention { get; set; } = BasisStateLabelingConvention.Bitstring; + + // /// + // /// Whether the measurement probabilities will be displayed as an + // /// interactive histogram. + // /// + // private bool ShowMeasurementDisplayHistogram { get; set; } = false; + + // /// + // /// Sets the properties of this display dumper from a given + // /// configuration source. + // /// + // public JupyterDisplayDumper Configure(IConfigurationSource configurationSource) + // { + // configurationSource + // .ApplyConfiguration("dump.measurementDisplayHistogram", value => ShowMeasurementDisplayHistogram = value) + // .ApplyConfiguration("dump.truncateSmallAmplitudes", value => TruncateSmallAmplitudes = value) + // .ApplyConfiguration("dump.truncationThreshold", value => TruncationThreshold = value) + // .ApplyConfiguration( + // "dump.basisStateLabelingConvention", value => BasisStateLabelingConvention = value + // ); + // return this; + // } + /// - /// The callback method. Formats the given state and invokes the + /// A method to call to output a string representation. + /// + public virtual Action? FileWriter { get; } + + /// + /// Constructs a new display dumper for a given simulator. + /// + public DisplayableStateDumper(QuantumSimulator sim, Action? fileWriter = null) : base(sim) + { + this.FileWriter = fileWriter; + } + + /// + /// Used by the simulator to provide states when dumping. + /// Not intended to be called directly. /// - /// True, so the entire wave function is dumped. public override bool Callback(uint idx, double real, double img) { - Channel(Format(idx, real, img)); + if (_data == null) throw new Exception("Expected data buffer to be initialized before callback, but it was null."); + _data[idx] = new Complex(real, img); return true; } + /// + /// Dumps the state of a register of qubits as a displayable object. + /// + // TODO(rokuzmin): What does it return? public override bool Dump(IQArray? qubits = null) { - var count = qubits == null - ? this.Simulator.QubitManager.AllocatedQubitsCount - : qubits.Length; - this._maxCharsStateId = ((1 << (int)count) - 1).ToString().Length; + System.Diagnostics.Debug.Assert(this.Simulator.QubitManager != null, + "Internal logic error, QubitManager must be assigned"); + + _count = qubits == null + ? this.Simulator.QubitManager.AllocatedQubitsCount + : qubits.Length; + _data = new Complex[1 << ((int)_count)]; // If 0 qubits are allocated then the array has + // a single element. The Hilbert space of the system is + // ℂ¹ (that is, complex-valued scalars). + var result = base.Dump(qubits); + + // At this point, _data should be filled with the full state + // vector, so let's display it, counting on the right display + // encoder to be there to pack it into a table. + + // var id = System.Guid.NewGuid(); + var state = new DisplayableState + { + // We cast here as we don't support a large enough number + // of qubits to saturate an int. + QubitIds = qubits?.Select(q => q.Id) ?? Simulator.QubitIds.Select(q => (int)q) ?? Enumerable.Empty(), + NQubits = (int)_count, + Amplitudes = _data, + // DivId = $"dump-machine-div-{id}" + }; + + if (this.FileWriter != null) + { + this.FileWriter(state.ToString()); + } + else + { + Simulator.MaybeDisplayDiagnostic(state); + } - return base.Dump(qubits); + + // TODO(rokuzmin): Work on this thoroughly on the IQSharp side: + // if (ShowMeasurementDisplayHistogram) + // { + // Debug.Assert(Channel.CommsRouter != null, "Display dumper requires comms router."); + // Channel.CommsRouter.OpenSession( + // "iqsharp_state_dump", + // new MeasurementHistogramContent() + // { + // State = state + // } + // ).Wait(); + // } + + // Clean up the state vector buffer. + _data = null; + + return result; } + } } } From 631727eb98deb65351195c39aeb6d1d5a831b6f6 Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Wed, 17 Nov 2021 23:32:53 -0800 Subject: [PATCH 08/26] Use old Mac OS build until gcc update (#875) --- build/ci-codecheck.yml | 2 +- build/ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/ci-codecheck.yml b/build/ci-codecheck.yml index 4b4545f31e8..9e2427cb7e8 100644 --- a/build/ci-codecheck.yml +++ b/build/ci-codecheck.yml @@ -27,7 +27,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-latest' + imageName: 'macOS-10.15' #windows: # No sanitizers supported on Win at the moment. # imageName: 'windows-latest' pool: diff --git a/build/ci.yml b/build/ci.yml index 4e60039fd26..48ca8e7e740 100644 --- a/build/ci.yml +++ b/build/ci.yml @@ -31,7 +31,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-latest' + imageName: 'macOS-10.15' windows: imageName: 'windows-latest' pool: From 0f66dfed7b3cb17bea8e7f1f1bcb596c33ccb539 Mon Sep 17 00:00:00 2001 From: bettinaheim <34236215+bettinaheim@users.noreply.github.com> Date: Thu, 18 Nov 2021 11:13:28 -0800 Subject: [PATCH 09/26] Revert "Preparing the QuantumSimulator for unifying the Dump(). (#867)" (#873) --- src/Simulation/Core/IOperationFactory.cs | 2 +- src/Simulation/Native/src/simulator/capi.hpp | 2 - .../src/simulator/simulatorinterface.hpp | 1 - .../Simulators/QuantumSimulator/Dump.cs | 39 +- .../QuantumSimulator/NativeImports.cs | 1 - .../QuantumSimulator/SimulatorBase.cs | 4 +- .../QuantumSimulator/StateDumper.cs | 355 ++---------------- 7 files changed, 54 insertions(+), 350 deletions(-) diff --git a/src/Simulation/Core/IOperationFactory.cs b/src/Simulation/Core/IOperationFactory.cs index 70310776a17..eedca83664b 100644 --- a/src/Simulation/Core/IOperationFactory.cs +++ b/src/Simulation/Core/IOperationFactory.cs @@ -24,7 +24,7 @@ public interface IOperationFactory /// /// Returns an instance of the requested operation. /// - I Get(Type t); + I Get(Type T); /// /// Returns an instance of the requested operation. diff --git a/src/Simulation/Native/src/simulator/capi.hpp b/src/Simulation/Native/src/simulator/capi.hpp index 260b8a43905..2c33478b56b 100644 --- a/src/Simulation/Native/src/simulator/capi.hpp +++ b/src/Simulation/Native/src/simulator/capi.hpp @@ -22,8 +22,6 @@ extern "C" MICROSOFT_QUANTUM_DECL void destroy(_In_ unsigned sid); // NOLINT MICROSOFT_QUANTUM_DECL void seed(_In_ unsigned sid, _In_ unsigned s); // NOLINT MICROSOFT_QUANTUM_DECL void Dump(_In_ unsigned sid, _In_ bool (*callback)(size_t, double, double)); - - // TODO(rokuzmin): What does it return? MICROSOFT_QUANTUM_DECL bool DumpQubits( _In_ unsigned sid, _In_ unsigned n, diff --git a/src/Simulation/Native/src/simulator/simulatorinterface.hpp b/src/Simulation/Native/src/simulator/simulatorinterface.hpp index c23fd2df123..7a85d65aef6 100644 --- a/src/Simulation/Native/src/simulator/simulatorinterface.hpp +++ b/src/Simulation/Native/src/simulator/simulatorinterface.hpp @@ -99,7 +99,6 @@ class SimulatorInterface { assert(false); } - // TODO(rokuzmin): What does it return? virtual bool dumpQubits(std::vector const& qs, bool (*callback)(size_t, double, double)) { assert(false); diff --git a/src/Simulation/Simulators/QuantumSimulator/Dump.cs b/src/Simulation/Simulators/QuantumSimulator/Dump.cs index 90e91105734..d57d0b7dd4a 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Dump.cs +++ b/src/Simulation/Simulators/QuantumSimulator/Dump.cs @@ -23,29 +23,48 @@ protected virtual QVoid Dump(T target, IQArray? qubits = null) { var filename = (target is QVoid) ? "" : target.ToString(); - // If no file provided, output to the console; + QVoid process(Action channel) + { + var ids = qubits?.Select(q => (uint)q.Id).ToArray() ?? QubitIds; + + var dumper = new SimpleDumper(this, channel); + channel($"# wave function for qubits with ids (least to most significant): {string.Join(";", ids)}"); + + if (!dumper.Dump(qubits)) + { + channel("## Qubits were entangled with an external qubit. Cannot dump corresponding wave function. ##"); + } + + return QVoid.Instance; + } + + var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); + + // If no file provided, use `Message` to generate the message into the console; if (string.IsNullOrWhiteSpace(filename)) { - new DisplayableStateDumper(this).Dump(qubits); + var op = this.Get, Microsoft.Quantum.Intrinsic.Message>(); + return process((msg) => op.Apply(msg)); } else { try { - using var file = new StreamWriter(filename); - new DisplayableStateDumper(this, file.WriteLine).Dump(qubits); + using (var file = new StreamWriter(filename)) + { + return process(file.WriteLine); + } } catch (Exception e) { - var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); logMessage.Apply($"[warning] Unable to write state to '{filename}' ({e.Message})"); + return QVoid.Instance; } } - return QVoid.Instance; } - public class QsimDumpMachine : Quantum.Diagnostics.DumpMachine // Is inherited (and replaced at runtime) - { // by (iqsharp's) JupyterDumpMachine. + public class QsimDumpMachine : Quantum.Diagnostics.DumpMachine + { private QuantumSimulator Simulator { get; } public QsimDumpMachine(QuantumSimulator m) : base(m) @@ -61,8 +80,8 @@ public QsimDumpMachine(QuantumSimulator m) : base(m) }; } - public class QSimDumpRegister : Quantum.Diagnostics.DumpRegister // Is inherited (and replaced at runtime) - { // by (iqsharp's) JupyterDumpRegister. + public class QSimDumpRegister : Quantum.Diagnostics.DumpRegister + { private QuantumSimulator Simulator { get; } public QSimDumpRegister(QuantumSimulator m) : base(m) diff --git a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs index 6ff07af9522..30b84a41e8d 100644 --- a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs +++ b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs @@ -86,7 +86,6 @@ public partial class QuantumSimulator [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "Dump")] private static extern void sim_Dump(uint id, DumpCallback callback); - // TODO(rokuzmin): What does it return? [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "DumpQubits")] private static extern bool sim_DumpQubits(uint id, uint cout, uint[] ids, DumpCallback callback); diff --git a/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs b/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs index a5a0e4ef67e..8bb52e118e4 100644 --- a/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs +++ b/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs @@ -93,9 +93,9 @@ public SimulatorBase(IQubitManager? qubitManager = null, int? seed = null) } } - public I Get(Type t) + public I Get(Type T) { - return (I)this.GetInstance(t); + return (I)this.GetInstance(T); } /// diff --git a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs b/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs index 7795f0082db..a7c351fad69 100644 --- a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs +++ b/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs @@ -2,13 +2,7 @@ // Licensed under the MIT License. using System; -using System.Collections.Generic; -using System.Linq; -using System.Numerics; using Microsoft.Quantum.Simulation.Core; -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; - namespace Microsoft.Quantum.Simulation.Simulators { @@ -20,7 +14,7 @@ public partial class QuantumSimulator /// The callback function is triggered for every state basis /// vector in the wavefunction. /// - public abstract class StateDumper // Is inherited by (iqsharp's) JupyterDisplayDumper. + public abstract class StateDumper { /// /// Basic constructor. Takes the simulator to probe. @@ -50,7 +44,6 @@ public StateDumper(QuantumSimulator qsim) /// /// Entry method to get the dump of the wave function. /// - // TODO(rokuzmin): What does it return? public virtual bool Dump(IQArray? qubits = null) { if (qubits == null) @@ -67,190 +60,29 @@ public virtual bool Dump(IQArray? qubits = null) } /// - /// The convention to be used in labeling computational basis states - /// given their representations as strings of classical bits. + /// A simple implementation of a . It outputs the + /// a string representation of the state to the given channel. /// - [JsonConverter(typeof(StringEnumConverter))] - public enum BasisStateLabelingConvention + public class SimpleDumper : StateDumper { - /// - /// Label computational states directly by their bit strings. - /// - /// - /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled - /// by |011⟩. - /// - Bitstring, - - /// - /// Label computational states directly by interpreting their bit - /// strings as little-endian encoded integers. - /// - /// - /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled - /// by |6⟩. - /// - LittleEndian, - - /// - /// Label computational states directly by interpreting their bit - /// strings as big-endian encoded integers. - /// - /// - /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled - /// by |3⟩. - /// - BigEndian - } - - /// - /// Represents a quantum state vector and all metadata needed to display - /// that state vector. - /// - public class DisplayableState - { - private static readonly IComparer ToIntComparer = - Comparer.Create((label1, label2) => - Comparer.Default.Compare( - Int32.Parse(label1), Int32.Parse(label2) - ) - ); - - /// - /// Metadata to be used when serializing to JSON, allowing code - /// in other languages to determine what representation is used - /// for this state. - /// - [JsonProperty("diagnostic_kind")] - private string DiagnosticKind => "state-vector"; - - // TODO(rokuzmin): Get back to this after the IQ#-side PR: - // /// - // /// ID for an HTML element where the vertical measurement probability histogram - // /// will be displayed. - // /// - // [JsonProperty("div_id")] - // public string DivId { get; set; } = string.Empty; - - /// - /// The indexes of each qubit on which this state is defined, or - /// null if these indexes are not known. - /// - [JsonProperty("qubit_ids")] - public IEnumerable? QubitIds { get; set; } - - /// - /// The number of qubits on which this state is defined. - /// - [JsonProperty("n_qubits")] - public int NQubits { get; set; } + private int _maxCharsStateId; - /// - /// These amplitudes represent the computational basis states - /// labeled in little-endian order, as per the behavior of - /// . - /// - [JsonProperty("amplitudes")] - public Complex[]? Amplitudes { get; set; } - - - // TODO(rokuzmin): Make this an extension method for `QuantumSimulator.DisplayableState` in IQSharp repo: - // /// - // /// An enumerable source of the significant amplitudes of this state - // /// vector and their labels, where significance and labels are - // /// defined by the values loaded from . - // /// - // public IEnumerable<(Complex, string)> SignificantAmplitudes( - // IConfigurationSource configurationSource - // ) => SignificantAmplitudes( - // configurationSource.BasisStateLabelingConvention, - // configurationSource.TruncateSmallAmplitudes, - // configurationSource.TruncationThreshold - // ); - - /// - /// An enumerable source of the significant amplitudes of this state - /// vector and their labels. - /// - /// - /// The convention to be used in labeling each computational basis state. - /// - /// - /// Whether to truncate small amplitudes. - /// - /// - /// If is true, - /// then amplitudes whose absolute value squared are below this - /// threshold are suppressed. - /// - public IEnumerable<(Complex, string)> SignificantAmplitudes( - BasisStateLabelingConvention convention, - bool truncateSmallAmplitudes, double truncationThreshold - ) => - ( - truncateSmallAmplitudes - ? Amplitudes - .Select((amplitude, idx) => (amplitude, idx)) - .Where(item => - System.Math.Pow(item.amplitude.Magnitude, 2.0) >= truncationThreshold - ) - : Amplitudes.Select((amplitude, idx) => (amplitude, idx)) - ) - .Select( - item => (item.amplitude, BasisStateLabel(convention, item.idx)) - ) - .OrderBy( - item => item.Item2, - // If a basis state label is numeric, we want to compare - // numerically rather than lexographically. - convention switch { - BasisStateLabelingConvention.BigEndian => ToIntComparer, - BasisStateLabelingConvention.LittleEndian => ToIntComparer, - _ => Comparer.Default - } - ); + public SimpleDumper(QuantumSimulator qsim, Action channel) : base(qsim) + { + this.Channel = channel; + } /// - /// Using the given labeling convention, returns the label for a - /// computational basis state described by its bit string as encoded - /// into an integer index in the little-endian encoding. + /// A method to call to output a string representation of the amplitude of each + /// state basis vector. /// - public string BasisStateLabel( - BasisStateLabelingConvention convention, int index - ) => convention switch - { - BasisStateLabelingConvention.Bitstring => - String.Concat( - System - .Convert - .ToString(index, 2) - .PadLeft(NQubits, '0') - .Reverse() - ), - BasisStateLabelingConvention.BigEndian => - System.Convert.ToInt64( - String.Concat( - System.Convert.ToString(index, 2).PadLeft(NQubits, '0').Reverse() - ), - fromBase: 2 - ) - .ToString(), - BasisStateLabelingConvention.LittleEndian => - index.ToString(), - _ => throw new ArgumentException($"Invalid basis state labeling convention {convention}.") - }; - + public virtual Action Channel { get; } /// /// Returns a string that represents the label for the given base state. /// - public virtual string FormatBaseState(uint idx) - { - int qubitCount = Amplitudes?.Length ?? 0; - int maxCharsStateId = ((1 << qubitCount) - 1).ToString().Length; - - return $"∣{idx.ToString().PadLeft(maxCharsStateId, ' ')}❭"; - } + public virtual string FormatBaseState(uint idx) => + $"∣{idx.ToString().PadLeft(_maxCharsStateId, ' ')}❭"; /// /// Returns a string that represents the magnitude of the amplitude. @@ -323,168 +155,25 @@ public virtual string Format(uint idx, double real, double img) } - public string ToString(BasisStateLabelingConvention convention, // Non-override. Parameterized. - bool truncateSmallAmplitudes, - double truncationThreshold) - { - return string.Join('\n', - SignificantAmplitudes(convention, truncateSmallAmplitudes, truncationThreshold) - .Select( - item => - { - var (cmplx, basisLabel) = item; - var amplitude = (cmplx.Real * cmplx.Real) + (cmplx.Imaginary * cmplx.Imaginary); - var angle = System.Math.Atan2(cmplx.Imaginary, cmplx.Real); - return $"|{basisLabel}⟩\t{FormatCartesian(cmplx.Real, cmplx.Imaginary)}\t == \t" + - $"{FormatPolar(amplitude, angle)}"; - })); - } - - public override string ToString() => // An override of the `object.ToString()`. - ToString(BasisStateLabelingConvention.LittleEndian, false, 0.0); - - } // public class DisplayableState - - - /// - /// A state dumper that encodes dumped states into displayable - /// objects. - /// - public class DisplayableStateDumper : StateDumper - { - private long _count = -1; - private Complex[]? _data = null; - - // TODO(rokuzmin): Remove the commented-out code below once everything works on IQSharp side. - // /// - // /// Whether small amplitudes should be truncated when dumping - // /// states. - // /// - // public bool TruncateSmallAmplitudes { get; set; } = false; - - // /// - // /// The threshold for truncating measurement probabilities when - // /// dumping states. Computational basis states whose measurement - // /// probabilities (i.e: squared magnitudes) are below this threshold - // /// are subject to truncation when - // /// - // /// is true. - // /// - // public double TruncationThreshold { get; set; } = 1e-10; - - // /// - // /// The labeling convention to be used when labeling computational - // /// basis states. - // /// - // public BasisStateLabelingConvention BasisStateLabelingConvention { get; set; } = BasisStateLabelingConvention.Bitstring; - - // /// - // /// Whether the measurement probabilities will be displayed as an - // /// interactive histogram. - // /// - // private bool ShowMeasurementDisplayHistogram { get; set; } = false; - - // /// - // /// Sets the properties of this display dumper from a given - // /// configuration source. - // /// - // public JupyterDisplayDumper Configure(IConfigurationSource configurationSource) - // { - // configurationSource - // .ApplyConfiguration("dump.measurementDisplayHistogram", value => ShowMeasurementDisplayHistogram = value) - // .ApplyConfiguration("dump.truncateSmallAmplitudes", value => TruncateSmallAmplitudes = value) - // .ApplyConfiguration("dump.truncationThreshold", value => TruncationThreshold = value) - // .ApplyConfiguration( - // "dump.basisStateLabelingConvention", value => BasisStateLabelingConvention = value - // ); - // return this; - // } - /// - /// A method to call to output a string representation. - /// - public virtual Action? FileWriter { get; } - - /// - /// Constructs a new display dumper for a given simulator. - /// - public DisplayableStateDumper(QuantumSimulator sim, Action? fileWriter = null) : base(sim) - { - this.FileWriter = fileWriter; - } - - /// - /// Used by the simulator to provide states when dumping. - /// Not intended to be called directly. + /// The callback method. Formats the given state and invokes the /// + /// True, so the entire wave function is dumped. public override bool Callback(uint idx, double real, double img) { - if (_data == null) throw new Exception("Expected data buffer to be initialized before callback, but it was null."); - _data[idx] = new Complex(real, img); + Channel(Format(idx, real, img)); return true; } - /// - /// Dumps the state of a register of qubits as a displayable object. - /// - // TODO(rokuzmin): What does it return? public override bool Dump(IQArray? qubits = null) { - System.Diagnostics.Debug.Assert(this.Simulator.QubitManager != null, - "Internal logic error, QubitManager must be assigned"); - - _count = qubits == null - ? this.Simulator.QubitManager.AllocatedQubitsCount - : qubits.Length; - _data = new Complex[1 << ((int)_count)]; // If 0 qubits are allocated then the array has - // a single element. The Hilbert space of the system is - // ℂ¹ (that is, complex-valued scalars). - var result = base.Dump(qubits); - - // At this point, _data should be filled with the full state - // vector, so let's display it, counting on the right display - // encoder to be there to pack it into a table. - - // var id = System.Guid.NewGuid(); - var state = new DisplayableState - { - // We cast here as we don't support a large enough number - // of qubits to saturate an int. - QubitIds = qubits?.Select(q => q.Id) ?? Simulator.QubitIds.Select(q => (int)q) ?? Enumerable.Empty(), - NQubits = (int)_count, - Amplitudes = _data, - // DivId = $"dump-machine-div-{id}" - }; - - if (this.FileWriter != null) - { - this.FileWriter(state.ToString()); - } - else - { - Simulator.MaybeDisplayDiagnostic(state); - } + var count = qubits == null + ? this.Simulator.QubitManager.AllocatedQubitsCount + : qubits.Length; + this._maxCharsStateId = ((1 << (int)count) - 1).ToString().Length; - - // TODO(rokuzmin): Work on this thoroughly on the IQSharp side: - // if (ShowMeasurementDisplayHistogram) - // { - // Debug.Assert(Channel.CommsRouter != null, "Display dumper requires comms router."); - // Channel.CommsRouter.OpenSession( - // "iqsharp_state_dump", - // new MeasurementHistogramContent() - // { - // State = state - // } - // ).Wait(); - // } - - // Clean up the state vector buffer. - _data = null; - - return result; + return base.Dump(qubits); } - } } } From f4f28123601d8372a5fe120bdab1f2be25b51522 Mon Sep 17 00:00:00 2001 From: Ian Davis Date: Mon, 22 Nov 2021 13:35:20 -0800 Subject: [PATCH 10/26] Create Rust QIR Runtime Wrapper Library (#878) * Adding Basic Runtime Driver implementation * Moving QIR runtime build config into CMakeLists. * Moving QIR runtime build config into qir_cmake_include CMakeLists. * Adding foundation and runtime rust bundling * Changing package dir due to root Cargo.toml introduction. Co-authored-by: Stefan J. Wernli --- Cargo.toml | 6 + build/pack.ps1 | 8 +- .../Cargo.toml | 31 +++++ .../build.rs | 79 ++++++++++++ .../src/foundation.rs | 59 +++++++++ .../src/lib.rs | 10 ++ .../src/qir_libloading.rs | 55 ++++++++ .../src/runtime.rs | 118 ++++++++++++++++++ 8 files changed, 362 insertions(+), 4 deletions(-) create mode 100644 Cargo.toml create mode 100644 src/Qir/microsoft-quantum-qir-runtime-sys/Cargo.toml create mode 100644 src/Qir/microsoft-quantum-qir-runtime-sys/build.rs create mode 100644 src/Qir/microsoft-quantum-qir-runtime-sys/src/foundation.rs create mode 100644 src/Qir/microsoft-quantum-qir-runtime-sys/src/lib.rs create mode 100644 src/Qir/microsoft-quantum-qir-runtime-sys/src/qir_libloading.rs create mode 100644 src/Qir/microsoft-quantum-qir-runtime-sys/src/runtime.rs diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 00000000000..152f6d6b86e --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +members = [ + "src/Simulation/qdk_sim_rs", + "src/Qir/microsoft-quantum-qir-runtime-sys", +] \ No newline at end of file diff --git a/build/pack.ps1 b/build/pack.ps1 index 6bb5edcdf49..37882ee7581 100644 --- a/build/pack.ps1 +++ b/build/pack.ps1 @@ -129,10 +129,10 @@ function Pack-Crate() { $OutPath = Resolve-Path (Join-Path $PSScriptRoot $OutPath); } Push-Location (Join-Path $PSScriptRoot $PackageDirectory) - cargo package; - # Copy only the .crate file, since we don't need all the intermediate - # artifacts brought in by the full folder under target/package. - Copy-Item -Force (Join-Path . "target" "package" "*.crate") $OutPath; + cargo package; + # Copy only the .crate file, since we don't need all the intermediate + # artifacts brought in by the full folder under target/package. + Copy-Item -Force (Join-Path $PSScriptRoot .. "target" "package" "*.crate") $OutPath; Pop-Location } diff --git a/src/Qir/microsoft-quantum-qir-runtime-sys/Cargo.toml b/src/Qir/microsoft-quantum-qir-runtime-sys/Cargo.toml new file mode 100644 index 00000000000..237bdcaa69a --- /dev/null +++ b/src/Qir/microsoft-quantum-qir-runtime-sys/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "microsoft-quantum-qir-runtime-sys" +version = "0.1.0" +edition = "2018" +build = "build.rs" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +cty = "0.2.1" +libloading = "0.7.0" +log = "0.4.14" +tempfile = "3.2.0" +llvm-sys = { version = "110", optional = true } +inkwell = { git = "https://github.com/TheDan64/inkwell", branch = "master", default-features = false, features = ["llvm11-0", "target-x86"], optional = true } +lazy_static = "1.4.0" + +[build-dependencies] +cmake = "0.1.46" +bindgen = "0.59.1" +cc = "1.0.71" +which = "4.2.2" + +[lib] + + +[features] +runtime = [] +foundation = [] +llvm-libloading = ["llvm-sys", "inkwell"] +default = ["runtime", "foundation"] diff --git a/src/Qir/microsoft-quantum-qir-runtime-sys/build.rs b/src/Qir/microsoft-quantum-qir-runtime-sys/build.rs new file mode 100644 index 00000000000..287da25af7c --- /dev/null +++ b/src/Qir/microsoft-quantum-qir-runtime-sys/build.rs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +use cmake::Config; +use std::boxed::Box; +use std::env; +use std::error::Error; + +fn main() -> Result<(), Box> { + println!("cargo:rerun-if-env-changed=TARGET"); + println!("cargo:rerun-if-changed=build.rs"); + + for (key, value) in env::vars() { + println!("{}: {}", key, value); + } + if cfg!(target_os = "windows") { + let path_to_runtime_src = "..\\Runtime"; + compile_runtime_libraries(path_to_runtime_src)?; + } else { + let path_to_runtime_src = "../Runtime"; + compile_runtime_libraries(path_to_runtime_src)?; + } + + Ok(()) +} + +fn compile_runtime_libraries(path_to_runtime_src: &str) -> Result<(), Box> { + let mut config = Config::new(path_to_runtime_src); + + if cfg!(target_os = "windows") { + config.static_crt(true); + } + + set_compiler(&mut config)?; + set_profile(&mut config)?; + + config.generator("Ninja"); + + let _ = config.build(); + Ok(()) +} + +// https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#how-do-i-use-a-different-compiler +// We set this here as setting it in the cmakefile is discouraged +fn set_compiler(config: &mut Config) -> Result<(), Box>{ + if cfg!(target_os = "linux") { + let mut c_cfg = cc::Build::new(); + let clang_11 = which::which("clang-11")?; + c_cfg.compiler(clang_11); + config.init_c_cfg(c_cfg); + + let mut cxx_cfg = cc::Build::new(); + let clangpp_11 = which::which("clang++-11")?; + cxx_cfg.compiler(clangpp_11); + config.init_cxx_cfg(cxx_cfg); + } else if cfg!(target_os = "windows") { + let mut c_cfg = cc::Build::new(); + let clang = which::which("clang.exe")?; + c_cfg.compiler(clang); + config.init_c_cfg(c_cfg); + + let mut cxx_cfg = cc::Build::new(); + let clangpp = which::which("clang++.exe")?; + cxx_cfg.compiler(clangpp); + config.init_cxx_cfg(cxx_cfg); + } else if cfg!(target_os = "macos") { + // Use macos default + } else { + panic!("Unsupported platform") + } + Ok(()) +} + +fn set_profile(config: &mut Config) -> Result<(), Box> { + config.define("CMAKE_BUILD_TYPE", "RelWithDebInfo"); + config.define("CMAKE_C_COMPILER_WORKS", "1"); + config.define("CMAKE_CXX_COMPILER_WORKS", "1"); + Ok(()) +} diff --git a/src/Qir/microsoft-quantum-qir-runtime-sys/src/foundation.rs b/src/Qir/microsoft-quantum-qir-runtime-sys/src/foundation.rs new file mode 100644 index 00000000000..f061706b3ea --- /dev/null +++ b/src/Qir/microsoft-quantum-qir-runtime-sys/src/foundation.rs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +use lazy_static::lazy_static; + +use libloading::Library; + +#[cfg(target_os = "linux")] +const FOUNDATION_BYTES: &'static [u8] = include_bytes!(concat!( + env!("OUT_DIR"), + "/build/lib/QSharpFoundation/libMicrosoft.Quantum.Qir.QSharp.Foundation.so" +)); + +#[cfg(target_os = "macos")] +const FOUNDATION_BYTES: &'static [u8] = include_bytes!(concat!( + env!("OUT_DIR"), + "/build/lib/QSharpFoundation/libMicrosoft.Quantum.Qir.QSharp.Foundation.dylib" +)); + +#[cfg(target_os = "windows")] +const FOUNDATION_BYTES: &'static [u8] = include_bytes!(concat!( + env!("OUT_DIR"), + "/build/lib/QSharpFoundation/Microsoft.Quantum.Qir.QSharp.Foundation.dll" +)); + +lazy_static! { + pub(crate) static ref FOUNDATION_LIBRARY: Library = unsafe { + crate::qir_libloading::load_library_bytes( + "Microsoft.Quantum.Qir.QSharp.Foundation", + FOUNDATION_BYTES, + ) + .unwrap() + }; +} + +pub struct QSharpFoundation {} + +impl QSharpFoundation { + pub fn new() -> QSharpFoundation { + let _ = FOUNDATION_LIBRARY; + QSharpFoundation {} + } +} + +#[cfg(test)] +mod tests { + use crate::foundation::QSharpFoundation; + + #[test] + fn library_loads_on_new() { + let _ = QSharpFoundation::new(); + } + #[test] + fn library_can_be_initialized_multiple_times() { + let _ = QSharpFoundation::new(); + let _ = QSharpFoundation::new(); + let _ = QSharpFoundation::new(); + } +} diff --git a/src/Qir/microsoft-quantum-qir-runtime-sys/src/lib.rs b/src/Qir/microsoft-quantum-qir-runtime-sys/src/lib.rs new file mode 100644 index 00000000000..5e2313ba80a --- /dev/null +++ b/src/Qir/microsoft-quantum-qir-runtime-sys/src/lib.rs @@ -0,0 +1,10 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#[cfg(feature = "foundation")] +pub mod foundation; + +#[cfg(feature = "runtime")] +pub mod runtime; + +mod qir_libloading; diff --git a/src/Qir/microsoft-quantum-qir-runtime-sys/src/qir_libloading.rs b/src/Qir/microsoft-quantum-qir-runtime-sys/src/qir_libloading.rs new file mode 100644 index 00000000000..0fdfd627505 --- /dev/null +++ b/src/Qir/microsoft-quantum-qir-runtime-sys/src/qir_libloading.rs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +use libloading::{library_filename, Library}; +use log; +use std::error::Error; +use std::path::Path; +use tempfile::tempdir; + +pub(crate) fn write_library>( + path: P, + lib: &'static [u8], +) -> Result<(), Box> { + log::debug!("Writing {}", path.as_ref().display()); + std::fs::write(path, lib)?; + Ok(()) +} + +pub(crate) unsafe fn load_library_bytes( + base_name: &str, + lib: &'static [u8], +) -> Result> { + let name = library_filename(base_name) + .into_string() + .expect("Could not get library name as string"); + let path = tempdir().expect(""); + let filepath = path.as_ref().join(name); + write_library(&filepath, lib)?; + let library = load_library(&filepath)?; + Ok(library) +} + +pub(crate) unsafe fn load_library>(path: P) -> Result> { + log::debug!("Loading {}", path.as_ref().display()); + let library = Library::new(path.as_ref().as_os_str())?; + + #[cfg(feature = "llvm-libloading")] + load_library_with_llvm(path); + + Ok(library) +} + +#[cfg(feature = "llvm-libloading")] +fn load_library_with_llvm>(path: P) { + let library_path = path + .as_ref() + .to_str() + .expect("Could not convert library path to &str"); + let was_loaded_by_llvm = inkwell::support::load_library_permanently(library_path); + if was_loaded_by_llvm { + log::error!("Failed to load {} into LLVM", library_path); + } else { + log::debug!("Loaded {} into LLVM", library_path); + } +} diff --git a/src/Qir/microsoft-quantum-qir-runtime-sys/src/runtime.rs b/src/Qir/microsoft-quantum-qir-runtime-sys/src/runtime.rs new file mode 100644 index 00000000000..948a0200235 --- /dev/null +++ b/src/Qir/microsoft-quantum-qir-runtime-sys/src/runtime.rs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +use lazy_static::lazy_static; + +use std::ffi::CString; + +use cty; +use libloading::Library; + +#[cfg(target_os = "linux")] +const RUNTIME_BYTES: &'static [u8] = include_bytes!(concat!( + env!("OUT_DIR"), + "/build/lib/QIR/libMicrosoft.Quantum.Qir.Runtime.so" +)); + +#[cfg(target_os = "macos")] +const RUNTIME_BYTES: &'static [u8] = include_bytes!(concat!( + env!("OUT_DIR"), + "/build/lib/QIR/libMicrosoft.Quantum.Qir.Runtime.dylib" +)); + +#[cfg(target_os = "windows")] +const RUNTIME_BYTES: &'static [u8] = include_bytes!(concat!( + env!("OUT_DIR"), + "/build/lib/QIR/Microsoft.Quantum.Qir.Runtime.dll" +)); + +lazy_static! { + pub(crate) static ref RUNTIME_LIBRARY: Library = unsafe { + crate::qir_libloading::load_library_bytes("Microsoft.Quantum.Qir.Runtime", RUNTIME_BYTES) + .unwrap() + }; +} + +pub type QUBIT = u64; + +#[repr(C)] +pub struct QirArray { + private: [u8; 0], +} + +pub type IRuntimeDriver = cty::c_void; + +pub struct BasicRuntimeDriver {} + +impl BasicRuntimeDriver { + pub unsafe fn initialize_qir_context(track_allocated_objects: bool) { + // The libloading calls need to be used instead of the extern "C" calls + // to prevent linkage. Python can't init the lib if we take a hard + // dependency on the library + let driver = QirRuntime::create_basic_runtime_driver(); + QirRuntime::initialize_qir_context(driver, track_allocated_objects); + } +} + +pub struct QirRuntime {} + +impl QirRuntime { + pub fn new() -> QirRuntime { + let _ = RUNTIME_LIBRARY; + QirRuntime {} + } + + pub unsafe fn create_basic_runtime_driver() -> *mut cty::c_void { + let library = &RUNTIME_LIBRARY; + let create = library + .get:: *mut IRuntimeDriver>( + CString::new("CreateBasicRuntimeDriver") + .unwrap() + .as_bytes_with_nul(), + ) + .unwrap(); + create() + } + + pub unsafe fn initialize_qir_context(driver: *mut cty::c_void, track_allocated_objects: bool) { + let library = &RUNTIME_LIBRARY; + let init = library + .get::( + CString::new("InitializeQirContext") + .unwrap() + .as_bytes_with_nul(), + ) + .unwrap(); + init(driver, track_allocated_objects) + } + + pub unsafe fn quantum_rt_array_get_element_ptr_1d( + array: *mut QirArray, + index: i64, + ) -> *mut cty::c_char { + let library = &RUNTIME_LIBRARY; + let get_element_ptr = library + .get:: *mut cty::c_char>( + CString::new("__quantum__rt__array_get_element_ptr_1d") + .unwrap() + .as_bytes_with_nul(), + ) + .unwrap(); + get_element_ptr(array, index) + } +} + +#[cfg(test)] +mod tests { + use crate::runtime::QirRuntime; + #[test] + fn library_loads_on_new() { + let _ = QirRuntime::new(); + } + #[test] + fn library_can_be_initialized_multiple_times() { + let _ = QirRuntime::new(); + let _ = QirRuntime::new(); + let _ = QirRuntime::new(); + } +} From 5273e54e5fe6043b0762eef8c83dea931aeeeaad Mon Sep 17 00:00:00 2001 From: Mariia Mykhailova Date: Mon, 22 Nov 2021 17:55:28 -0800 Subject: [PATCH 11/26] Update "use" and "borrow" statements in comments (#860) --- src/Simulation/Common/IQuantumProcessor.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Simulation/Common/IQuantumProcessor.cs b/src/Simulation/Common/IQuantumProcessor.cs index 8bd4dc6ec7f..cd6b3380e1a 100644 --- a/src/Simulation/Common/IQuantumProcessor.cs +++ b/src/Simulation/Common/IQuantumProcessor.cs @@ -563,7 +563,7 @@ public interface IQuantumProcessor void OnFail(System.Runtime.ExceptionServices.ExceptionDispatchInfo exceptionDispatchInfo); /// - /// Called when qubits are allocated by Q# using block. + /// Called when qubits are allocated by Q# use block. /// /// Qubits that are being allocated. /// @@ -573,7 +573,7 @@ public interface IQuantumProcessor void OnAllocateQubits(IQArray qubits); /// - /// Called when qubits are released in Q# in the end of using block. + /// Called when qubits are released in Q# in the end of use block. /// /// Qubits that are being released. /// @@ -583,7 +583,7 @@ public interface IQuantumProcessor void OnReleaseQubits(IQArray qubits); /// - /// Called when qubits are borrowed by Q# borrowing block. + /// Called when qubits are borrowed by Q# borrow block. /// /// Qubits that are being borrowed. /// Number of qubits that have been allocated for borrowing. This might happen if there have not been enough already allocated qubits available for borrowing.. @@ -594,7 +594,7 @@ public interface IQuantumProcessor void OnBorrowQubits(IQArray qubits, long allocatedForBorrowingCount); /// - /// Called when qubits are returned in the end of Q# borrowing block. + /// Called when qubits are returned in the end of Q# borrow block. /// /// Qubits that have been borrowed and are now being returned. /// Number of qubits that have been released once returned. This might happen if they have been allocated only for borrowing.. From 59851709ae15b75a24c8be3ba90b23bbb9767249 Mon Sep 17 00:00:00 2001 From: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com> Date: Fri, 3 Dec 2021 16:01:10 -0800 Subject: [PATCH 12/26] Migrate native simulator from GCC to Clang. (#881) * Switched NativeSimulaotr (NS) to clang on Mac and Linux * Install libomp on Mac. * Customized openmp for clang on Mac. * Added sanitizers to NS. --- build/ci-codecheck.yml | 2 +- build/ci.yml | 2 +- build/steps-codecheck.yml | 2 +- src/Qir/Common/cmake/unit_test_include.cmake | 2 +- .../lib/Simulators/FullstateSimulator.cpp | 12 +-- src/Qir/Runtime/public/QubitManager.hpp | 4 +- src/Qir/Runtime/test-qir-runtime.ps1 | 4 +- .../StandaloneInputReference/CMakeLists.txt | 2 +- src/Qir/Samples/test-qir-samples.ps1 | 4 +- src/Qir/Tests/test-qir-tests.ps1 | 12 +-- src/Simulation/Native/CMakeLists.txt | 77 +++++++++++++++---- .../Native/build-native-simulator.ps1 | 53 +++++++++++-- src/Simulation/Native/prerequisites.ps1 | 32 +++++--- src/Simulation/Native/src/CMakeLists.txt | 22 ++---- .../Native/src/simulator/CMakeLists.txt | 3 + .../Native/src/simulator/kernels.hpp | 2 + 16 files changed, 167 insertions(+), 68 deletions(-) diff --git a/build/ci-codecheck.yml b/build/ci-codecheck.yml index 9e2427cb7e8..4b4545f31e8 100644 --- a/build/ci-codecheck.yml +++ b/build/ci-codecheck.yml @@ -27,7 +27,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-10.15' + imageName: 'macOS-latest' #windows: # No sanitizers supported on Win at the moment. # imageName: 'windows-latest' pool: diff --git a/build/ci.yml b/build/ci.yml index 48ca8e7e740..4e60039fd26 100644 --- a/build/ci.yml +++ b/build/ci.yml @@ -31,7 +31,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-10.15' + imageName: 'macOS-latest' windows: imageName: 'windows-latest' pool: diff --git a/build/steps-codecheck.yml b/build/steps-codecheck.yml index 8a25efe684f..fe474e3ccbf 100644 --- a/build/steps-codecheck.yml +++ b/build/steps-codecheck.yml @@ -10,7 +10,7 @@ steps: # QIR Runtime: - pwsh: src/Qir/Runtime/prerequisites.ps1 - displayName: "Install QIR Runtime Prerequisistes" + displayName: "Install QIR Runtime Prerequisites" workingDirectory: $(System.DefaultWorkingDirectory) - pwsh: src/Qir/Runtime/build-qir-runtime.ps1 diff --git a/src/Qir/Common/cmake/unit_test_include.cmake b/src/Qir/Common/cmake/unit_test_include.cmake index 5c29fc114c7..93701f563b0 100644 --- a/src/Qir/Common/cmake/unit_test_include.cmake +++ b/src/Qir/Common/cmake/unit_test_include.cmake @@ -9,7 +9,7 @@ macro(add_unit_test target) if(DEFINED ENV{NATIVE_SIMULATOR}) set(TEST_DEPS1 $ENV{NATIVE_SIMULATOR}) else() - set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/$ENV{BUILD_CONFIGURATION}") + set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/drop") endif() set(TEST_DEPS2 "${CMAKE_BINARY_DIR}/bin") diff --git a/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp b/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp index c077f826643..93836936317 100644 --- a/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp +++ b/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp @@ -211,7 +211,7 @@ namespace Quantum { if (this->simulatorId != NULL_SIMULATORID) { - typedef unsigned (*TDestroy)(unsigned); + typedef void (*TDestroy)(unsigned); static TDestroy destroySimulatorInstance = reinterpret_cast(LoadProc(this->handle, "destroy")); assert(destroySimulatorInstance); @@ -226,7 +226,7 @@ namespace Quantum // Deprecated, use `DumpMachine()` and `DumpRegister()` instead. void GetState(TGetStateCallback callback) override { - typedef bool (*TDump)(unsigned, TGetStateCallback); + typedef void (*TDump)(unsigned, TGetStateCallback); static TDump dump = reinterpret_cast(this->GetProc("Dump")); dump(this->simulatorId, callback); } @@ -462,7 +462,7 @@ namespace Quantum void R(PauliId axis, QubitIdType target, double theta) override { - typedef unsigned (*TR)(unsigned, unsigned, double, unsigned); + typedef void (*TR)(unsigned, unsigned, double, unsigned); static TR r = reinterpret_cast(this->GetProc("R")); r(this->simulatorId, GetBasis(axis), theta, GetQubitId(target)); @@ -472,7 +472,7 @@ namespace Quantum void ControlledR(long numControls, QubitIdType controls[], PauliId axis, QubitIdType target, double theta) override { - typedef unsigned (*TMCR)(unsigned, unsigned, double, unsigned, unsigned*, unsigned); + typedef void (*TMCR)(unsigned, unsigned, double, unsigned, unsigned*, unsigned); static TMCR cr = reinterpret_cast(this->GetProc("MCR")); std::vector ids = GetQubitIds(numControls, controls); @@ -483,7 +483,7 @@ namespace Quantum void Exp(long numTargets, PauliId paulis[], QubitIdType targets[], double theta) override { - typedef unsigned (*TExp)(unsigned, unsigned, unsigned*, double, unsigned*); + typedef void (*TExp)(unsigned, unsigned, unsigned*, double, unsigned*); static TExp exp = reinterpret_cast(this->GetProc("Exp")); std::vector ids = GetQubitIds(numTargets, targets); std::vector convertedBases = GetBases(numTargets, paulis); @@ -494,7 +494,7 @@ namespace Quantum void ControlledExp(long numControls, QubitIdType controls[], long numTargets, PauliId paulis[], QubitIdType targets[], double theta) override { - typedef unsigned (*TMCExp)(unsigned, unsigned, unsigned*, double, unsigned, unsigned*, unsigned*); + typedef void (*TMCExp)(unsigned, unsigned, unsigned*, double, unsigned, unsigned*, unsigned*); static TMCExp cexp = reinterpret_cast(this->GetProc("MCExp")); std::vector idsTargets = GetQubitIds(numTargets, targets); std::vector idsControls = GetQubitIds(numControls, controls); diff --git a/src/Qir/Runtime/public/QubitManager.hpp b/src/Qir/Runtime/public/QubitManager.hpp index 1d1bda589db..f1ff2afb3b3 100644 --- a/src/Qir/Runtime/public/QubitManager.hpp +++ b/src/Qir/Runtime/public/QubitManager.hpp @@ -40,7 +40,9 @@ namespace Quantum // No complex scenarios for now. Don't need to support copying/moving. CQubitManager(const CQubitManager&) = delete; CQubitManager& operator=(const CQubitManager&) = delete; - virtual ~CQubitManager(); + ~CQubitManager(); // If this dtor is made _virtual_ then the QIR RT tests crash (at least in Debug config) + // if the native simulator is compiled with Clang (as opposed to GCC). Nothing wrong found in + // the code, probably is the compiler bug. // Restricted reuse area control void StartRestrictedReuseArea(); diff --git a/src/Qir/Runtime/test-qir-runtime.ps1 b/src/Qir/Runtime/test-qir-runtime.ps1 index 68a09d7b990..377ee141411 100644 --- a/src/Qir/Runtime/test-qir-runtime.ps1 +++ b/src/Qir/Runtime/test-qir-runtime.ps1 @@ -3,8 +3,10 @@ . (Join-Path $PSScriptRoot .. qir-utils.ps1) -# TODO: `ASAN_OPTIONS=check_initialization_order=1` (https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking). # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). +$env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` + + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true:" ` + + "detect_invalid_pointer_pairs=2" if (-not (Test-CTest (Join-Path $PSScriptRoot bin $Env:BUILD_CONFIGURATION unittests) "QIR Runtime")) { throw "At least one project failed testing. Check the logs." diff --git a/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt b/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt index 5f994b1dc24..8006d3a5694 100644 --- a/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt +++ b/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt @@ -34,7 +34,7 @@ add_test( if(DEFINED ENV{NATIVE_SIMULATOR}) set(TEST_DEPS1 $ENV{NATIVE_SIMULATOR}) else() - set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/$ENV{BUILD_CONFIGURATION}") + set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/drop") endif() set(TEST_DEPS2 "${PROJECT_SOURCE_DIR}/../Runtime/bin/$ENV{BUILD_CONFIGURATION}/bin") diff --git a/src/Qir/Samples/test-qir-samples.ps1 b/src/Qir/Samples/test-qir-samples.ps1 index 1a1246cb732..a5bbef65a84 100644 --- a/src/Qir/Samples/test-qir-samples.ps1 +++ b/src/Qir/Samples/test-qir-samples.ps1 @@ -3,8 +3,10 @@ . (Join-Path $PSScriptRoot .. qir-utils.ps1) -# TODO: `ASAN_OPTIONS=check_initialization_order=1` (https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking). # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). +$env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` + + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true:" ` + + "detect_invalid_pointer_pairs=2" if (-not (Test-CTest (Join-Path $PSScriptRoot bin $Env:BUILD_CONFIGURATION StandaloneInputReference) "QIR Samples (StandaloneInputReference)")) { throw "At least one project failed testing. Check the logs." diff --git a/src/Qir/Tests/test-qir-tests.ps1 b/src/Qir/Tests/test-qir-tests.ps1 index f6ad54463b5..fef566d1b62 100644 --- a/src/Qir/Tests/test-qir-tests.ps1 +++ b/src/Qir/Tests/test-qir-tests.ps1 @@ -16,14 +16,10 @@ if ($Env:BUILD_CONFIGURATION -eq "Debug") if (-not ($IsWindows)) { $env:LSAN_OPTIONS += "suppressions=../../../../LSan.ignore" # https://clang.llvm.org/docs/AddressSanitizer.html#suppressing-memory-leaks - if (-not ($IsMacOS)) - { - $env:ASAN_OPTIONS += "check_initialization_order=1" # https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking - } - #else # AddressSanitizer: detect_leaks is not supported on this platform. Re-enable this once supported. - #{ - # $env:ASAN_OPTIONS += "detect_leaks=1" # https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection - #} + # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). + $env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` + + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true" + # + ":detect_invalid_pointer_pairs=2" TODO(rokuzmin, #883): ==8218==ERROR: AddressSanitizer: invalid-pointer-pair: 0x602000000af4 0x602000000af0 } } diff --git a/src/Simulation/Native/CMakeLists.txt b/src/Simulation/Native/CMakeLists.txt index 06b27fd43de..1029f69e1f7 100644 --- a/src/Simulation/Native/CMakeLists.txt +++ b/src/Simulation/Native/CMakeLists.txt @@ -32,26 +32,75 @@ option(USE_SINGLE_PRECISION "Use single-precision floating point operations" OFF option(HAVE_INTRINSICS "Have AVX intrinsics" OFF) option(USE_GATE_FUSION "Use gate fusion" ON) -# windows specific flags -if (MSVC) - # always create debug info - add_definitions("/Zi") - add_definitions("/Z7") - - # build with no VC runtime depedencies: - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT /Qspectre /guard:cf /Zi /Z7") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd /Qspectre /guard:cf") - set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG") -else (MSVC) - set(CMAKE_CXX_FLAGS "-static-libgcc") -endif (MSVC) - +# Always use Spectre mitigations where available +if (WIN32) + # Enforce use of static runtime (avoids target machine needing msvcrt installed). + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + + # Locate the vswhere application, which will provide paths to any installed Visual Studio instances. + # By invoking it with "-find **/lib/spectre/x64" we will find any Spectre mitigated libaries that + # have been installed. + find_program(_vswhere_tool + NAMES vswhere + PATHS "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/Installer") + if (NOT ${vswhere}) + message(FATAL_ERROR "Could not locate vswhere.exe - unable to source vc redistributable") + endif() + execute_process( + COMMAND "${_vswhere_tool}" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -find **/14.29.*/**/lib/spectre/x64 -sort + OUTPUT_VARIABLE _vs_install_loc_out + RESULT_VARIABLE _vs_where_exitcode + OUTPUT_STRIP_TRAILING_WHITESPACE) + file(TO_CMAKE_PATH "${_vs_install_loc_out}" SPECTRE_LIB_PATH_OUT) + string(REGEX REPLACE "[\r\n]+" ";" SPECTRE_LIB_PATH ${SPECTRE_LIB_PATH_OUT}) + message(INFO "*** install loc: ${SPECTRE_LIB_PATH}") + + # Locate the spectre mitigated runtime libraries and fail if they can't be found. Targets in this + # cmake project can use the variables to explicitly link these libraries rather than using the + # non-mitigated libraries that are found by default. + find_library(LIBCMT_SPECTRE_REL libcmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBCMT_SPECTRE_DEB libcmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBCMT_SPECTRE debug ${LIBCMT_SPECTRE_DEB} optimized ${LIBCMT_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBCMT_SPECTRE}") + find_library(LIBCPMT_SPECTRE_REL libcpmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBCPMT_SPECTRE_DEB libcpmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBCPMT_SPECTRE debug ${LIBCPMT_SPECTRE_DEB} optimized ${LIBCPMT_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBCPMT_SPECTRE}") + find_library(LIBVCRUNTIME_SPECTRE_REL libvcruntime PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBVCRUNTIME_SPECTRE_DEB libvcruntimed PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBVCRUNTIME_SPECTRE debug ${LIBVCRUNTIME_SPECTRE_DEB} optimized ${LIBVCRUNTIME_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBVCRUNTIME_SPECTRE}") + set(SPECTRE_LIBS + ${LIBCMT_SPECTRE} + ${LIBCPMT_SPECTRE} + ${LIBVCRUNTIME_SPECTRE}) + + add_link_options("LINKER:/guard:cf") +endif() + +if (NOT APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mspeculative-load-hardening -mretpoline") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mspeculative-load-hardening -mretpoline") +endif() include_directories(${PROJECT_BINARY_DIR}/src) include_directories(${PROJECT_SOURCE_DIR}/src) # OpenMP if(ENABLE_OPENMP) + +if (APPLE) + set(OPENMP_PATH "/usr/local/opt/libomp") + set(OPENMP_COMPILER_FLAGS "-Xpreprocessor -fopenmp -I${OPENMP_PATH}/include -lomp -L${OPENMP_PATH}/lib") + set(OPENMP_LIB_NAME "omp") + + set(OpenMP_CXX_FLAGS "${OPENMP_COMPILER_FLAGS}") + set(OpenMP_C_FLAGS "${OPENMP_COMPILER_FLAGS}") + set(OpenMP_CXX_LIB_NAMES "${OPENMP_LIB_NAME}") + set(OpenMP_C_LIB_NAMES "${OPENMP_LIB_NAME}") + set(OpenMP_omp_LIBRARY "${OPENMP_PATH}/lib/libomp.dylib") +endif() + find_package(OpenMP) if(OPENMP_FOUND) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") diff --git a/src/Simulation/Native/build-native-simulator.ps1 b/src/Simulation/Native/build-native-simulator.ps1 index 3908c7df01c..625112a0b1a 100644 --- a/src/Simulation/Native/build-native-simulator.ps1 +++ b/src/Simulation/Native/build-native-simulator.ps1 @@ -10,25 +10,62 @@ if (-not (Test-Path $nativeBuild)) { } Push-Location $nativeBuild +# Search for "sanitize" in +# https://clang.llvm.org/docs/ClangCommandLineReference.html +# https://man7.org/linux/man-pages/man1/gcc.1.html +$SANITIZE_FLAGS=` + "-fsanitize=undefined " ` + + "-fsanitize=shift -fsanitize=shift-base " ` + + "-fsanitize=integer-divide-by-zero -fsanitize=float-divide-by-zero " ` + + "-fsanitize=unreachable " ` + + "-fsanitize=vla-bound -fsanitize=null -fsanitize=return " ` + + "-fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=object-size " ` + + "-fsanitize=float-cast-overflow -fsanitize=nonnull-attribute -fsanitize=returns-nonnull-attribute -fsanitize=bool -fsanitize=enum " ` + + "-fsanitize=vptr -fsanitize=pointer-overflow -fsanitize=builtin " ` + + "-fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability " ` + ` + + "-fsanitize=address " ` + + "-fsanitize=pointer-compare -fsanitize=pointer-subtract " ` + + "-fsanitize-address-use-after-scope " ` + + "-fno-omit-frame-pointer -fno-optimize-sibling-calls" + + #+ "-fsanitize=unsigned-integer-overflow " # TODO(rokuzmin, #884): Disable this option for _specific_ lines + # of code, but not for the whole binary. + # There should be no space after -D CMAKE_BUILD_TYPE= but if we provide the environment variable inline, without # the space it doesn't seem to get substituted... With invalid -D CMAKE_BUILD_TYPE argument cmake silently produces # a DEBUG build. if (($IsWindows) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { - Write-Host "On Windows build native simulator using the default C/C++ compiler (should be MSVC)" - cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + $CMAKE_C_COMPILER = "-DCMAKE_C_COMPILER=clang.exe" + $CMAKE_CXX_COMPILER = "-DCMAKE_CXX_COMPILER=clang++.exe" + + if ((!(Get-Command clang -ErrorAction SilentlyContinue) -and (choco find --idonly -l llvm) -contains "llvm") -or ` + (Test-Path Env:/AGENT_OS)) { + # LLVM was installed by Chocolatey, so add the install location to the path. + $env:PATH = "$($env:SystemDrive)\Program Files\LLVM\bin;$env:Path" + } + + cmake -G Ninja -D BUILD_SHARED_LIBS:BOOL="1" $CMAKE_C_COMPILER $CMAKE_CXX_COMPILER ` + -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + # Without `-G Ninja` we fail to switch from MSVC to Clang. + # Sanitizers are not supported on Windows at the moment. Check again after migrating from Clang-11. } elseif (($IsLinux) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Lin")))) { - Write-Host "On Linux build native simulator using gcc (needed for OpenMP)" - cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=clang-11 -D CMAKE_CXX_COMPILER=clang++-11 ` + -D CMAKE_C_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_CXX_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. } elseif (($IsMacOS) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { - Write-Host "On MacOS build native simulator using gcc (needed for OpenMP)" - # `gcc`on Darwin seems to be a shim that redirects to AppleClang, to get real gcc, must point to the specific - # version of gcc we've installed. - cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=gcc-7 -D CMAKE_CXX_COMPILER=g++-7 -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + Write-Host "On MacOS build using the default C/C++ compiler (should be AppleClang)" + + cmake -D BUILD_SHARED_LIBS:BOOL="1" ` + -D CMAKE_C_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_CXX_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. } else { cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. diff --git a/src/Simulation/Native/prerequisites.ps1 b/src/Simulation/Native/prerequisites.ps1 index 3f1272ffa84..4b7c2a72fc4 100644 --- a/src/Simulation/Native/prerequisites.ps1 +++ b/src/Simulation/Native/prerequisites.ps1 @@ -2,15 +2,29 @@ # Licensed under the MIT License. if (($IsMacOS) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { - # building with gcc-9 succeeds but some of the unit tests fail - Write-Host "Install gcc-7 as pre-req for building native simulator on MacOS" - # temporary workaround for Bintray sunset - # remove this after Homebrew is updated to 3.1.1 on MacOS image, see: - # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md - brew update - brew install gcc@7 -} else { - Write-Host "No pre-reqs for building native simulator on platforms other than MacOS" + brew install libomp +} elseif (($IsWindows) -or ((Test-Path Env:/AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { + if (!(Get-Command clang -ErrorAction SilentlyContinue) -or ` + (Test-Path Env:/AGENT_OS)) { + choco install llvm --version=11.1.0 --allow-downgrade + Write-Host "##vso[task.setvariable variable=PATH;]$($env:SystemDrive)\Program Files\LLVM\bin;$Env:PATH" + } + if (!(Get-Command ninja -ErrorAction SilentlyContinue)) { + choco install ninja + } + if (!(Get-Command cmake -ErrorAction SilentlyContinue)) { + choco install cmake + } + refreshenv +} +else { + if (Get-Command sudo -ErrorAction SilentlyContinue) { + sudo apt update + sudo apt-get install -y clang-11 + } else { + apt update + apt-get install -y clang-11 + } } diff --git a/src/Simulation/Native/src/CMakeLists.txt b/src/Simulation/Native/src/CMakeLists.txt index dbbda28611f..81a510f7e9e 100644 --- a/src/Simulation/Native/src/CMakeLists.txt +++ b/src/Simulation/Native/src/CMakeLists.txt @@ -2,17 +2,10 @@ # Licensed under the MIT License. # AVX -if (MSVC) -set(AVXFLAGS "/arch:AVX" ) -set(AVX2FLAGS "/arch:AVX2" ) -set(AVX512FLAGS "/arch:AVX512" ) -set(FMAFLAGS "") -else(MSVC) -SET(AVXFLAGS "-mavx") +set(AVXFLAGS "-mavx") set(AVX2FLAGS "-mfma -mavx2") set(AVX512FLAGS "-mfma -mavx512f -mavx512cd") set(FMAFLAGS ) -endif(MSVC) configure_file(config.hpp.in ${PROJECT_BINARY_DIR}/src/config.hpp) configure_file(version.hpp.in ${PROJECT_BINARY_DIR}/src/version.hpp) @@ -23,20 +16,19 @@ add_subdirectory(simulator) set(SOURCES simulator/factory.cpp simulator/capi.cpp simulator/simulator.cpp util/openmp.cpp simulator/simulatoravx.cpp simulator/simulatoravx2.cpp simulator/simulatoravx512.cpp ) if(BUILD_SHARED_LIBS) add_library(Microsoft.Quantum.Simulator.Runtime SHARED ${SOURCES}) + set_source_files_properties(simulator/capi.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) + set_source_files_properties(simulator/simulator.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) set_source_files_properties(simulator/simulatoravx.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) -if (MSVC) -set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX2FLAGS}) -set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX512FLAGS}) -else(MSVC) -set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX2FLAGS}) -set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX512FLAGS}) -endif(MSVC) + set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX2FLAGS}) + set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX512FLAGS}) message (STATUS "Building shared library") target_compile_definitions(Microsoft.Quantum.Simulator.Runtime PRIVATE BUILD_DLL=1) set_target_properties(Microsoft.Quantum.Simulator.Runtime PROPERTIES POSITION_INDEPENDENT_CODE TRUE) else(BUILD_SHARED_LIBS) message (STATUS "Building static library") add_library(Microsoft.Quantum.Simulator.Runtime STATIC ${SOURCES}) + set_source_files_properties(simulator/capi.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) + set_source_files_properties(simulator/simulator.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) set_source_files_properties(simulator/simulatoravx.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS ${AVX2FLAGS}) set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS ${AVX512FLAGS}) diff --git a/src/Simulation/Native/src/simulator/CMakeLists.txt b/src/Simulation/Native/src/simulator/CMakeLists.txt index d8b7a391013..d838c545bea 100644 --- a/src/Simulation/Native/src/simulator/CMakeLists.txt +++ b/src/Simulation/Native/src/simulator/CMakeLists.txt @@ -1,6 +1,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. +set(AVXFLAGS "-mavx") + add_executable(factory_test factory_test.cpp) target_link_libraries(factory_test Microsoft.Quantum.Simulator.Runtime) add_test(NAME factory_test COMMAND ./factory_test WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) @@ -19,6 +21,7 @@ add_executable(quantum_simulator_unittests "${PROJECT_SOURCE_DIR}/src/catch2/catch_driver.cpp" local_test.cpp ) +set_source_files_properties(local_test.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) target_link_libraries(quantum_simulator_unittests PUBLIC Microsoft.Quantum.Simulator.Runtime diff --git a/src/Simulation/Native/src/simulator/kernels.hpp b/src/Simulation/Native/src/simulator/kernels.hpp index 3311bb27f8c..dbf406dd862 100644 --- a/src/Simulation/Native/src/simulator/kernels.hpp +++ b/src/Simulation/Native/src/simulator/kernels.hpp @@ -75,6 +75,8 @@ unsigned getvalue( std::vector, A> const& wfn, unsigned q, double eps = 100. * std::numeric_limits::epsilon()) + __attribute__((noinline)) // TODO(rokuzmin, #885): Try to remove `__attribute__((noinline))` after migrating + // to clang-13 on Win and Linux. { std::size_t mask = 1ull << q; for (std::size_t i = 0; i < wfn.size(); ++i) From 2080f803ee62500cd5e250670144462b68723e35 Mon Sep 17 00:00:00 2001 From: Andres Paz Date: Sat, 4 Dec 2021 17:34:11 -0800 Subject: [PATCH 13/26] Adding ability to provide content type and encoding for Azure blobs (#887) --- .../Microsoft.Azure.Quantum.Client.csproj | 4 +- .../Storage/IJobStorageHelper.cs | 16 ++++++++ .../Storage/IStorageHelper.cs | 22 ++++++++++- .../Storage/JobStorageHelper.cs | 26 ++++++++----- .../Storage/JobStorageHelperBase.cs | 25 +++++++----- .../Storage/LinkedStorageJobHelper.cs | 38 +++++++++---------- .../Storage/StorageHelper.cs | 26 ++++++++----- .../Utility/Compression.cs | 27 +++++++++++++ 8 files changed, 133 insertions(+), 51 deletions(-) create mode 100644 src/Azure/Azure.Quantum.Client/Utility/Compression.cs diff --git a/src/Azure/Azure.Quantum.Client/Microsoft.Azure.Quantum.Client.csproj b/src/Azure/Azure.Quantum.Client/Microsoft.Azure.Quantum.Client.csproj index 5585bc6f1b4..03d29f4fc36 100644 --- a/src/Azure/Azure.Quantum.Client/Microsoft.Azure.Quantum.Client.csproj +++ b/src/Azure/Azure.Quantum.Client/Microsoft.Azure.Quantum.Client.csproj @@ -20,10 +20,10 @@ - + - + all diff --git a/src/Azure/Azure.Quantum.Client/Storage/IJobStorageHelper.cs b/src/Azure/Azure.Quantum.Client/Storage/IJobStorageHelper.cs index 30e058779ed..015b7809076 100644 --- a/src/Azure/Azure.Quantum.Client/Storage/IJobStorageHelper.cs +++ b/src/Azure/Azure.Quantum.Client/Storage/IJobStorageHelper.cs @@ -29,6 +29,22 @@ public interface IJobStorageHelper Stream input, CancellationToken cancellationToken = default); + /// + /// Uploads the job input. + /// + /// The job id. + /// The input. + /// The MIME type indicating the content of the payload. + /// A flag to indicate if the payload should be uploaded compressed to storage. + /// The cancellation token. + /// Container uri + Input uri. + Task<(string containerUri, string inputUri)> UploadJobInputAsync( + string jobId, + Stream input, + string contentType, + bool compress, + CancellationToken cancellationToken = default); + /// /// Uploads the job program output mapping. /// diff --git a/src/Azure/Azure.Quantum.Client/Storage/IStorageHelper.cs b/src/Azure/Azure.Quantum.Client/Storage/IStorageHelper.cs index 54b7ae589fa..4bae7c272bd 100644 --- a/src/Azure/Azure.Quantum.Client/Storage/IStorageHelper.cs +++ b/src/Azure/Azure.Quantum.Client/Storage/IStorageHelper.cs @@ -1,6 +1,8 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +#nullable enable + namespace Microsoft.Azure.Quantum.Storage { using System; @@ -32,14 +34,32 @@ Task DownloadBlobAsync( /// Container client. /// Name of the BLOB. /// The input. + /// The MIME type indicating the content of the payload. + /// The blob encoding. /// The cancellation token. /// async task. Task UploadBlobAsync( BlobContainerClient containerClient, string blobName, Stream input, + string? contentType, + string? contentEncoding, CancellationToken cancellationToken = default); + /// + /// Uploads the BLOB. + /// + /// Container client. + /// Name of the BLOB. + /// The input. + /// The cancellation token. + /// async task. + Task UploadBlobAsync( + BlobContainerClient containerClient, + string blobName, + Stream input, + CancellationToken cancellationToken = default) => this.UploadBlobAsync(containerClient, blobName, input, null, null, cancellationToken); + /// /// Gets the BLOB sas URI. /// diff --git a/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelper.cs b/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelper.cs index 63234851d42..046cff470ca 100644 --- a/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelper.cs +++ b/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelper.cs @@ -37,28 +37,34 @@ public JobStorageHelper(string connectionString) } } - /// - /// Uploads the job input. - /// - /// The job id. - /// The input. - /// The cancellation token. - /// - /// Container uri + Input uri. - /// + /// public override async Task<(string containerUri, string inputUri)> UploadJobInputAsync( string jobId, Stream input, + string contentType, + bool compress, CancellationToken cancellationToken = default) { string containerName = GetContainerName(jobId); + string encoding = null; + Stream data = input; + + if (compress) + { + var compressedInput = new MemoryStream(); + await Compression.Compress(input, compressedInput); + data = compressedInput; + encoding = "gzip"; + } BlobContainerClient containerClient = await this.GetContainerClient(containerName); await this.StorageHelper.UploadBlobAsync( containerClient, Constants.Storage.InputBlobName, - input, + input: data, + contentType: contentType, + contentEncoding: encoding, cancellationToken); string containerUri = this.StorageHelper.GetBlobContainerSasUri( diff --git a/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelperBase.cs b/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelperBase.cs index 92ea7fdb47f..b0c0fcfd6e3 100644 --- a/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelperBase.cs +++ b/src/Azure/Azure.Quantum.Client/Storage/JobStorageHelperBase.cs @@ -7,7 +7,9 @@ namespace Microsoft.Azure.Quantum.Storage using System.IO; using System.Threading; using System.Threading.Tasks; + using global::Azure.Storage.Blobs; + using Microsoft.Azure.Quantum.Utility; public abstract class JobStorageHelperBase : IJobStorageHelper @@ -54,17 +56,20 @@ await this.StorageHelper.DownloadBlobAsync( return; } - /// - /// Uploads the job input. - /// - /// The job id. - /// The input. - /// The cancellation token. - /// Container uri + Input uri. + /// public abstract Task<(string containerUri, string inputUri)> UploadJobInputAsync( - string jobId, - Stream input, - CancellationToken cancellationToken = default); + string jobId, + Stream input, + string contentType, + bool compress, + CancellationToken cancellationToken = default); + + /// + public Task<(string containerUri, string inputUri)> UploadJobInputAsync( + string jobId, + Stream input, + CancellationToken cancellationToken = default) => + this.UploadJobInputAsync(jobId, input, null, false, cancellationToken); /// /// Uploads the job program output mapping. diff --git a/src/Azure/Azure.Quantum.Client/Storage/LinkedStorageJobHelper.cs b/src/Azure/Azure.Quantum.Client/Storage/LinkedStorageJobHelper.cs index e3e59f5f0b1..b9b103a5ad8 100644 --- a/src/Azure/Azure.Quantum.Client/Storage/LinkedStorageJobHelper.cs +++ b/src/Azure/Azure.Quantum.Client/Storage/LinkedStorageJobHelper.cs @@ -23,28 +23,34 @@ public LinkedStorageJobHelper(IWorkspace workspace) this.workspace = workspace; } - /// - /// Uploads the job input. - /// - /// The job id. - /// The input. - /// The cancellation token. - /// - /// Container uri + Input uri without SAS. - /// + /// public override async Task<(string containerUri, string inputUri)> UploadJobInputAsync( string jobId, Stream input, + string contentType, + bool compress, CancellationToken cancellationToken = default) { string containerName = GetContainerName(jobId); + string encoding = null; + Stream data = input; BlobContainerClient containerClient = await this.GetContainerClient(containerName); + if (compress) + { + var compressedInput = new MemoryStream(); + await Compression.Compress(input, compressedInput); + data = compressedInput; + encoding = "gzip"; + } + await this.StorageHelper.UploadBlobAsync( - containerClient, - Constants.Storage.InputBlobName, - input, + containerClient: containerClient, + blobName: Constants.Storage.InputBlobName, + input: data, + contentType: contentType, + contentEncoding: encoding, cancellationToken); Uri inputUri = containerClient @@ -54,13 +60,7 @@ await this.StorageHelper.UploadBlobAsync( return (GetUriPath(containerClient.Uri), GetUriPath(inputUri)); } - /// - /// Uploads the job program output mapping. - /// - /// The job id. - /// The job program output mapping. - /// The cancellation token. - /// Container uri + Mapping uri without SAS. + /// public override async Task<(string containerUri, string mappingUri)> UploadJobMappingAsync( string jobId, Stream mapping, diff --git a/src/Azure/Azure.Quantum.Client/Storage/StorageHelper.cs b/src/Azure/Azure.Quantum.Client/Storage/StorageHelper.cs index b385af601e7..b896cddb582 100644 --- a/src/Azure/Azure.Quantum.Client/Storage/StorageHelper.cs +++ b/src/Azure/Azure.Quantum.Client/Storage/StorageHelper.cs @@ -5,6 +5,8 @@ namespace Microsoft.Azure.Quantum.Storage { using System; using System.IO; + using System.Net.Mime; + using System.Text; using System.Threading; using System.Threading.Tasks; using global::Azure.Storage.Blobs; @@ -42,18 +44,13 @@ public async Task DownloadBlobAsync( return; } - /// - /// Uploads the BLOB. - /// - /// Container client. - /// Name of the BLOB. - /// The input. - /// The cancellation token. - /// Async task. + /// public async Task UploadBlobAsync( BlobContainerClient containerClient, string blobName, Stream input, + string contentType, + string contentEncoding, CancellationToken cancellationToken = default) { try @@ -61,9 +58,20 @@ public async Task UploadBlobAsync( // Ensure container is created await containerClient.CreateIfNotExistsAsync(PublicAccessType.None, cancellationToken: cancellationToken); + var headers = new BlobHttpHeaders + { + ContentEncoding = contentEncoding, + ContentType = contentType, + }; + + var options = new BlobUploadOptions + { + HttpHeaders = headers, + }; + // Upload blob BlobClient blob = containerClient.GetBlobClient(blobName); - await blob.UploadAsync(input, overwrite: true, cancellationToken); + await blob.UploadAsync(input, options, cancellationToken); } catch (Exception ex) { diff --git a/src/Azure/Azure.Quantum.Client/Utility/Compression.cs b/src/Azure/Azure.Quantum.Client/Utility/Compression.cs new file mode 100644 index 00000000000..647b06d4bf3 --- /dev/null +++ b/src/Azure/Azure.Quantum.Client/Utility/Compression.cs @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Quantum.Utility +{ + using System.IO; + using System.IO.Compression; + using System.Threading.Tasks; + + internal class Compression + { + public static async Task Compress(Stream data, Stream compressedData) + { + using (var auxStream = new MemoryStream()) + using (var zipStream = new GZipStream(auxStream, CompressionMode.Compress)) + { + await data.CopyToAsync(zipStream); + await zipStream.FlushAsync(); + auxStream.Position = 0; + await auxStream.CopyToAsync(compressedData); + await compressedData.FlushAsync(); + } + + compressedData.Position = 0; + } + } +} From 0eb449a86e6d48ba5a4a3a828f45a97a447292e9 Mon Sep 17 00:00:00 2001 From: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com> Date: Mon, 6 Dec 2021 12:06:49 -0800 Subject: [PATCH 14/26] Reverting the PR #881 to investigate the QDK Release failures. (#888) --- build/ci-codecheck.yml | 2 +- build/ci.yml | 2 +- build/steps-codecheck.yml | 2 +- src/Qir/Common/cmake/unit_test_include.cmake | 2 +- .../lib/Simulators/FullstateSimulator.cpp | 12 +-- src/Qir/Runtime/public/QubitManager.hpp | 4 +- src/Qir/Runtime/test-qir-runtime.ps1 | 4 +- .../StandaloneInputReference/CMakeLists.txt | 2 +- src/Qir/Samples/test-qir-samples.ps1 | 4 +- src/Qir/Tests/test-qir-tests.ps1 | 12 ++- src/Simulation/Native/CMakeLists.txt | 77 ++++--------------- .../Native/build-native-simulator.ps1 | 53 ++----------- src/Simulation/Native/prerequisites.ps1 | 32 +++----- src/Simulation/Native/src/CMakeLists.txt | 22 ++++-- .../Native/src/simulator/CMakeLists.txt | 3 - .../Native/src/simulator/kernels.hpp | 2 - 16 files changed, 68 insertions(+), 167 deletions(-) diff --git a/build/ci-codecheck.yml b/build/ci-codecheck.yml index 4b4545f31e8..9e2427cb7e8 100644 --- a/build/ci-codecheck.yml +++ b/build/ci-codecheck.yml @@ -27,7 +27,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-latest' + imageName: 'macOS-10.15' #windows: # No sanitizers supported on Win at the moment. # imageName: 'windows-latest' pool: diff --git a/build/ci.yml b/build/ci.yml index 4e60039fd26..48ca8e7e740 100644 --- a/build/ci.yml +++ b/build/ci.yml @@ -31,7 +31,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-latest' + imageName: 'macOS-10.15' windows: imageName: 'windows-latest' pool: diff --git a/build/steps-codecheck.yml b/build/steps-codecheck.yml index fe474e3ccbf..8a25efe684f 100644 --- a/build/steps-codecheck.yml +++ b/build/steps-codecheck.yml @@ -10,7 +10,7 @@ steps: # QIR Runtime: - pwsh: src/Qir/Runtime/prerequisites.ps1 - displayName: "Install QIR Runtime Prerequisites" + displayName: "Install QIR Runtime Prerequisistes" workingDirectory: $(System.DefaultWorkingDirectory) - pwsh: src/Qir/Runtime/build-qir-runtime.ps1 diff --git a/src/Qir/Common/cmake/unit_test_include.cmake b/src/Qir/Common/cmake/unit_test_include.cmake index 93701f563b0..5c29fc114c7 100644 --- a/src/Qir/Common/cmake/unit_test_include.cmake +++ b/src/Qir/Common/cmake/unit_test_include.cmake @@ -9,7 +9,7 @@ macro(add_unit_test target) if(DEFINED ENV{NATIVE_SIMULATOR}) set(TEST_DEPS1 $ENV{NATIVE_SIMULATOR}) else() - set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/drop") + set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/$ENV{BUILD_CONFIGURATION}") endif() set(TEST_DEPS2 "${CMAKE_BINARY_DIR}/bin") diff --git a/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp b/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp index 93836936317..c077f826643 100644 --- a/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp +++ b/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp @@ -211,7 +211,7 @@ namespace Quantum { if (this->simulatorId != NULL_SIMULATORID) { - typedef void (*TDestroy)(unsigned); + typedef unsigned (*TDestroy)(unsigned); static TDestroy destroySimulatorInstance = reinterpret_cast(LoadProc(this->handle, "destroy")); assert(destroySimulatorInstance); @@ -226,7 +226,7 @@ namespace Quantum // Deprecated, use `DumpMachine()` and `DumpRegister()` instead. void GetState(TGetStateCallback callback) override { - typedef void (*TDump)(unsigned, TGetStateCallback); + typedef bool (*TDump)(unsigned, TGetStateCallback); static TDump dump = reinterpret_cast(this->GetProc("Dump")); dump(this->simulatorId, callback); } @@ -462,7 +462,7 @@ namespace Quantum void R(PauliId axis, QubitIdType target, double theta) override { - typedef void (*TR)(unsigned, unsigned, double, unsigned); + typedef unsigned (*TR)(unsigned, unsigned, double, unsigned); static TR r = reinterpret_cast(this->GetProc("R")); r(this->simulatorId, GetBasis(axis), theta, GetQubitId(target)); @@ -472,7 +472,7 @@ namespace Quantum void ControlledR(long numControls, QubitIdType controls[], PauliId axis, QubitIdType target, double theta) override { - typedef void (*TMCR)(unsigned, unsigned, double, unsigned, unsigned*, unsigned); + typedef unsigned (*TMCR)(unsigned, unsigned, double, unsigned, unsigned*, unsigned); static TMCR cr = reinterpret_cast(this->GetProc("MCR")); std::vector ids = GetQubitIds(numControls, controls); @@ -483,7 +483,7 @@ namespace Quantum void Exp(long numTargets, PauliId paulis[], QubitIdType targets[], double theta) override { - typedef void (*TExp)(unsigned, unsigned, unsigned*, double, unsigned*); + typedef unsigned (*TExp)(unsigned, unsigned, unsigned*, double, unsigned*); static TExp exp = reinterpret_cast(this->GetProc("Exp")); std::vector ids = GetQubitIds(numTargets, targets); std::vector convertedBases = GetBases(numTargets, paulis); @@ -494,7 +494,7 @@ namespace Quantum void ControlledExp(long numControls, QubitIdType controls[], long numTargets, PauliId paulis[], QubitIdType targets[], double theta) override { - typedef void (*TMCExp)(unsigned, unsigned, unsigned*, double, unsigned, unsigned*, unsigned*); + typedef unsigned (*TMCExp)(unsigned, unsigned, unsigned*, double, unsigned, unsigned*, unsigned*); static TMCExp cexp = reinterpret_cast(this->GetProc("MCExp")); std::vector idsTargets = GetQubitIds(numTargets, targets); std::vector idsControls = GetQubitIds(numControls, controls); diff --git a/src/Qir/Runtime/public/QubitManager.hpp b/src/Qir/Runtime/public/QubitManager.hpp index f1ff2afb3b3..1d1bda589db 100644 --- a/src/Qir/Runtime/public/QubitManager.hpp +++ b/src/Qir/Runtime/public/QubitManager.hpp @@ -40,9 +40,7 @@ namespace Quantum // No complex scenarios for now. Don't need to support copying/moving. CQubitManager(const CQubitManager&) = delete; CQubitManager& operator=(const CQubitManager&) = delete; - ~CQubitManager(); // If this dtor is made _virtual_ then the QIR RT tests crash (at least in Debug config) - // if the native simulator is compiled with Clang (as opposed to GCC). Nothing wrong found in - // the code, probably is the compiler bug. + virtual ~CQubitManager(); // Restricted reuse area control void StartRestrictedReuseArea(); diff --git a/src/Qir/Runtime/test-qir-runtime.ps1 b/src/Qir/Runtime/test-qir-runtime.ps1 index 377ee141411..68a09d7b990 100644 --- a/src/Qir/Runtime/test-qir-runtime.ps1 +++ b/src/Qir/Runtime/test-qir-runtime.ps1 @@ -3,10 +3,8 @@ . (Join-Path $PSScriptRoot .. qir-utils.ps1) +# TODO: `ASAN_OPTIONS=check_initialization_order=1` (https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking). # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). -$env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` - + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true:" ` - + "detect_invalid_pointer_pairs=2" if (-not (Test-CTest (Join-Path $PSScriptRoot bin $Env:BUILD_CONFIGURATION unittests) "QIR Runtime")) { throw "At least one project failed testing. Check the logs." diff --git a/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt b/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt index 8006d3a5694..5f994b1dc24 100644 --- a/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt +++ b/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt @@ -34,7 +34,7 @@ add_test( if(DEFINED ENV{NATIVE_SIMULATOR}) set(TEST_DEPS1 $ENV{NATIVE_SIMULATOR}) else() - set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/drop") + set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/$ENV{BUILD_CONFIGURATION}") endif() set(TEST_DEPS2 "${PROJECT_SOURCE_DIR}/../Runtime/bin/$ENV{BUILD_CONFIGURATION}/bin") diff --git a/src/Qir/Samples/test-qir-samples.ps1 b/src/Qir/Samples/test-qir-samples.ps1 index a5bbef65a84..1a1246cb732 100644 --- a/src/Qir/Samples/test-qir-samples.ps1 +++ b/src/Qir/Samples/test-qir-samples.ps1 @@ -3,10 +3,8 @@ . (Join-Path $PSScriptRoot .. qir-utils.ps1) +# TODO: `ASAN_OPTIONS=check_initialization_order=1` (https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking). # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). -$env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` - + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true:" ` - + "detect_invalid_pointer_pairs=2" if (-not (Test-CTest (Join-Path $PSScriptRoot bin $Env:BUILD_CONFIGURATION StandaloneInputReference) "QIR Samples (StandaloneInputReference)")) { throw "At least one project failed testing. Check the logs." diff --git a/src/Qir/Tests/test-qir-tests.ps1 b/src/Qir/Tests/test-qir-tests.ps1 index fef566d1b62..f6ad54463b5 100644 --- a/src/Qir/Tests/test-qir-tests.ps1 +++ b/src/Qir/Tests/test-qir-tests.ps1 @@ -16,10 +16,14 @@ if ($Env:BUILD_CONFIGURATION -eq "Debug") if (-not ($IsWindows)) { $env:LSAN_OPTIONS += "suppressions=../../../../LSan.ignore" # https://clang.llvm.org/docs/AddressSanitizer.html#suppressing-memory-leaks - # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). - $env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` - + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true" - # + ":detect_invalid_pointer_pairs=2" TODO(rokuzmin, #883): ==8218==ERROR: AddressSanitizer: invalid-pointer-pair: 0x602000000af4 0x602000000af0 + if (-not ($IsMacOS)) + { + $env:ASAN_OPTIONS += "check_initialization_order=1" # https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking + } + #else # AddressSanitizer: detect_leaks is not supported on this platform. Re-enable this once supported. + #{ + # $env:ASAN_OPTIONS += "detect_leaks=1" # https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection + #} } } diff --git a/src/Simulation/Native/CMakeLists.txt b/src/Simulation/Native/CMakeLists.txt index 1029f69e1f7..06b27fd43de 100644 --- a/src/Simulation/Native/CMakeLists.txt +++ b/src/Simulation/Native/CMakeLists.txt @@ -32,75 +32,26 @@ option(USE_SINGLE_PRECISION "Use single-precision floating point operations" OFF option(HAVE_INTRINSICS "Have AVX intrinsics" OFF) option(USE_GATE_FUSION "Use gate fusion" ON) -# Always use Spectre mitigations where available -if (WIN32) - # Enforce use of static runtime (avoids target machine needing msvcrt installed). - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - - # Locate the vswhere application, which will provide paths to any installed Visual Studio instances. - # By invoking it with "-find **/lib/spectre/x64" we will find any Spectre mitigated libaries that - # have been installed. - find_program(_vswhere_tool - NAMES vswhere - PATHS "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/Installer") - if (NOT ${vswhere}) - message(FATAL_ERROR "Could not locate vswhere.exe - unable to source vc redistributable") - endif() - execute_process( - COMMAND "${_vswhere_tool}" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -find **/14.29.*/**/lib/spectre/x64 -sort - OUTPUT_VARIABLE _vs_install_loc_out - RESULT_VARIABLE _vs_where_exitcode - OUTPUT_STRIP_TRAILING_WHITESPACE) - file(TO_CMAKE_PATH "${_vs_install_loc_out}" SPECTRE_LIB_PATH_OUT) - string(REGEX REPLACE "[\r\n]+" ";" SPECTRE_LIB_PATH ${SPECTRE_LIB_PATH_OUT}) - message(INFO "*** install loc: ${SPECTRE_LIB_PATH}") - - # Locate the spectre mitigated runtime libraries and fail if they can't be found. Targets in this - # cmake project can use the variables to explicitly link these libraries rather than using the - # non-mitigated libraries that are found by default. - find_library(LIBCMT_SPECTRE_REL libcmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) - find_library(LIBCMT_SPECTRE_DEB libcmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) - set(LIBCMT_SPECTRE debug ${LIBCMT_SPECTRE_DEB} optimized ${LIBCMT_SPECTRE_REL}) - message(INFO "*** using spectre lib: ${LIBCMT_SPECTRE}") - find_library(LIBCPMT_SPECTRE_REL libcpmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) - find_library(LIBCPMT_SPECTRE_DEB libcpmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) - set(LIBCPMT_SPECTRE debug ${LIBCPMT_SPECTRE_DEB} optimized ${LIBCPMT_SPECTRE_REL}) - message(INFO "*** using spectre lib: ${LIBCPMT_SPECTRE}") - find_library(LIBVCRUNTIME_SPECTRE_REL libvcruntime PATHS ${SPECTRE_LIB_PATH} REQUIRED) - find_library(LIBVCRUNTIME_SPECTRE_DEB libvcruntimed PATHS ${SPECTRE_LIB_PATH} REQUIRED) - set(LIBVCRUNTIME_SPECTRE debug ${LIBVCRUNTIME_SPECTRE_DEB} optimized ${LIBVCRUNTIME_SPECTRE_REL}) - message(INFO "*** using spectre lib: ${LIBVCRUNTIME_SPECTRE}") - set(SPECTRE_LIBS - ${LIBCMT_SPECTRE} - ${LIBCPMT_SPECTRE} - ${LIBVCRUNTIME_SPECTRE}) - - add_link_options("LINKER:/guard:cf") -endif() - -if (NOT APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mspeculative-load-hardening -mretpoline") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mspeculative-load-hardening -mretpoline") -endif() +# windows specific flags +if (MSVC) + # always create debug info + add_definitions("/Zi") + add_definitions("/Z7") + + # build with no VC runtime depedencies: + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT /Qspectre /guard:cf /Zi /Z7") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd /Qspectre /guard:cf") + set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG") +else (MSVC) + set(CMAKE_CXX_FLAGS "-static-libgcc") +endif (MSVC) + include_directories(${PROJECT_BINARY_DIR}/src) include_directories(${PROJECT_SOURCE_DIR}/src) # OpenMP if(ENABLE_OPENMP) - -if (APPLE) - set(OPENMP_PATH "/usr/local/opt/libomp") - set(OPENMP_COMPILER_FLAGS "-Xpreprocessor -fopenmp -I${OPENMP_PATH}/include -lomp -L${OPENMP_PATH}/lib") - set(OPENMP_LIB_NAME "omp") - - set(OpenMP_CXX_FLAGS "${OPENMP_COMPILER_FLAGS}") - set(OpenMP_C_FLAGS "${OPENMP_COMPILER_FLAGS}") - set(OpenMP_CXX_LIB_NAMES "${OPENMP_LIB_NAME}") - set(OpenMP_C_LIB_NAMES "${OPENMP_LIB_NAME}") - set(OpenMP_omp_LIBRARY "${OPENMP_PATH}/lib/libomp.dylib") -endif() - find_package(OpenMP) if(OPENMP_FOUND) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") diff --git a/src/Simulation/Native/build-native-simulator.ps1 b/src/Simulation/Native/build-native-simulator.ps1 index 625112a0b1a..3908c7df01c 100644 --- a/src/Simulation/Native/build-native-simulator.ps1 +++ b/src/Simulation/Native/build-native-simulator.ps1 @@ -10,62 +10,25 @@ if (-not (Test-Path $nativeBuild)) { } Push-Location $nativeBuild -# Search for "sanitize" in -# https://clang.llvm.org/docs/ClangCommandLineReference.html -# https://man7.org/linux/man-pages/man1/gcc.1.html -$SANITIZE_FLAGS=` - "-fsanitize=undefined " ` - + "-fsanitize=shift -fsanitize=shift-base " ` - + "-fsanitize=integer-divide-by-zero -fsanitize=float-divide-by-zero " ` - + "-fsanitize=unreachable " ` - + "-fsanitize=vla-bound -fsanitize=null -fsanitize=return " ` - + "-fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=object-size " ` - + "-fsanitize=float-cast-overflow -fsanitize=nonnull-attribute -fsanitize=returns-nonnull-attribute -fsanitize=bool -fsanitize=enum " ` - + "-fsanitize=vptr -fsanitize=pointer-overflow -fsanitize=builtin " ` - + "-fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability " ` - ` - + "-fsanitize=address " ` - + "-fsanitize=pointer-compare -fsanitize=pointer-subtract " ` - + "-fsanitize-address-use-after-scope " ` - + "-fno-omit-frame-pointer -fno-optimize-sibling-calls" - - #+ "-fsanitize=unsigned-integer-overflow " # TODO(rokuzmin, #884): Disable this option for _specific_ lines - # of code, but not for the whole binary. - # There should be no space after -D CMAKE_BUILD_TYPE= but if we provide the environment variable inline, without # the space it doesn't seem to get substituted... With invalid -D CMAKE_BUILD_TYPE argument cmake silently produces # a DEBUG build. if (($IsWindows) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { - $CMAKE_C_COMPILER = "-DCMAKE_C_COMPILER=clang.exe" - $CMAKE_CXX_COMPILER = "-DCMAKE_CXX_COMPILER=clang++.exe" - - if ((!(Get-Command clang -ErrorAction SilentlyContinue) -and (choco find --idonly -l llvm) -contains "llvm") -or ` - (Test-Path Env:/AGENT_OS)) { - # LLVM was installed by Chocolatey, so add the install location to the path. - $env:PATH = "$($env:SystemDrive)\Program Files\LLVM\bin;$env:Path" - } - - cmake -G Ninja -D BUILD_SHARED_LIBS:BOOL="1" $CMAKE_C_COMPILER $CMAKE_CXX_COMPILER ` - -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. - # Without `-G Ninja` we fail to switch from MSVC to Clang. - # Sanitizers are not supported on Windows at the moment. Check again after migrating from Clang-11. + Write-Host "On Windows build native simulator using the default C/C++ compiler (should be MSVC)" + cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. } elseif (($IsLinux) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Lin")))) { - cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=clang-11 -D CMAKE_CXX_COMPILER=clang++-11 ` - -D CMAKE_C_FLAGS_DEBUG="$SANITIZE_FLAGS" ` - -D CMAKE_CXX_FLAGS_DEBUG="$SANITIZE_FLAGS" ` - -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + Write-Host "On Linux build native simulator using gcc (needed for OpenMP)" + cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. } elseif (($IsMacOS) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { - Write-Host "On MacOS build using the default C/C++ compiler (should be AppleClang)" - - cmake -D BUILD_SHARED_LIBS:BOOL="1" ` - -D CMAKE_C_FLAGS_DEBUG="$SANITIZE_FLAGS" ` - -D CMAKE_CXX_FLAGS_DEBUG="$SANITIZE_FLAGS" ` - -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + Write-Host "On MacOS build native simulator using gcc (needed for OpenMP)" + # `gcc`on Darwin seems to be a shim that redirects to AppleClang, to get real gcc, must point to the specific + # version of gcc we've installed. + cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=gcc-7 -D CMAKE_CXX_COMPILER=g++-7 -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. } else { cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. diff --git a/src/Simulation/Native/prerequisites.ps1 b/src/Simulation/Native/prerequisites.ps1 index 4b7c2a72fc4..3f1272ffa84 100644 --- a/src/Simulation/Native/prerequisites.ps1 +++ b/src/Simulation/Native/prerequisites.ps1 @@ -2,29 +2,15 @@ # Licensed under the MIT License. if (($IsMacOS) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { - brew install libomp -} elseif (($IsWindows) -or ((Test-Path Env:/AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { - if (!(Get-Command clang -ErrorAction SilentlyContinue) -or ` - (Test-Path Env:/AGENT_OS)) { - choco install llvm --version=11.1.0 --allow-downgrade - Write-Host "##vso[task.setvariable variable=PATH;]$($env:SystemDrive)\Program Files\LLVM\bin;$Env:PATH" - } - if (!(Get-Command ninja -ErrorAction SilentlyContinue)) { - choco install ninja - } - if (!(Get-Command cmake -ErrorAction SilentlyContinue)) { - choco install cmake - } - refreshenv -} -else { - if (Get-Command sudo -ErrorAction SilentlyContinue) { - sudo apt update - sudo apt-get install -y clang-11 - } else { - apt update - apt-get install -y clang-11 - } + # building with gcc-9 succeeds but some of the unit tests fail + Write-Host "Install gcc-7 as pre-req for building native simulator on MacOS" + # temporary workaround for Bintray sunset + # remove this after Homebrew is updated to 3.1.1 on MacOS image, see: + # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md + brew update + brew install gcc@7 +} else { + Write-Host "No pre-reqs for building native simulator on platforms other than MacOS" } diff --git a/src/Simulation/Native/src/CMakeLists.txt b/src/Simulation/Native/src/CMakeLists.txt index 81a510f7e9e..dbbda28611f 100644 --- a/src/Simulation/Native/src/CMakeLists.txt +++ b/src/Simulation/Native/src/CMakeLists.txt @@ -2,10 +2,17 @@ # Licensed under the MIT License. # AVX -set(AVXFLAGS "-mavx") +if (MSVC) +set(AVXFLAGS "/arch:AVX" ) +set(AVX2FLAGS "/arch:AVX2" ) +set(AVX512FLAGS "/arch:AVX512" ) +set(FMAFLAGS "") +else(MSVC) +SET(AVXFLAGS "-mavx") set(AVX2FLAGS "-mfma -mavx2") set(AVX512FLAGS "-mfma -mavx512f -mavx512cd") set(FMAFLAGS ) +endif(MSVC) configure_file(config.hpp.in ${PROJECT_BINARY_DIR}/src/config.hpp) configure_file(version.hpp.in ${PROJECT_BINARY_DIR}/src/version.hpp) @@ -16,19 +23,20 @@ add_subdirectory(simulator) set(SOURCES simulator/factory.cpp simulator/capi.cpp simulator/simulator.cpp util/openmp.cpp simulator/simulatoravx.cpp simulator/simulatoravx2.cpp simulator/simulatoravx512.cpp ) if(BUILD_SHARED_LIBS) add_library(Microsoft.Quantum.Simulator.Runtime SHARED ${SOURCES}) - set_source_files_properties(simulator/capi.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) - set_source_files_properties(simulator/simulator.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) set_source_files_properties(simulator/simulatoravx.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) - set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX2FLAGS}) - set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX512FLAGS}) +if (MSVC) +set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX2FLAGS}) +set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX512FLAGS}) +else(MSVC) +set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX2FLAGS}) +set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS -mfma COMPILE_FLAGS ${AVX512FLAGS}) +endif(MSVC) message (STATUS "Building shared library") target_compile_definitions(Microsoft.Quantum.Simulator.Runtime PRIVATE BUILD_DLL=1) set_target_properties(Microsoft.Quantum.Simulator.Runtime PROPERTIES POSITION_INDEPENDENT_CODE TRUE) else(BUILD_SHARED_LIBS) message (STATUS "Building static library") add_library(Microsoft.Quantum.Simulator.Runtime STATIC ${SOURCES}) - set_source_files_properties(simulator/capi.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) - set_source_files_properties(simulator/simulator.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) set_source_files_properties(simulator/simulatoravx.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) set_source_files_properties(simulator/simulatoravx2.cpp PROPERTIES COMPILE_FLAGS ${AVX2FLAGS}) set_source_files_properties(simulator/simulatoravx512.cpp PROPERTIES COMPILE_FLAGS ${AVX512FLAGS}) diff --git a/src/Simulation/Native/src/simulator/CMakeLists.txt b/src/Simulation/Native/src/simulator/CMakeLists.txt index d838c545bea..d8b7a391013 100644 --- a/src/Simulation/Native/src/simulator/CMakeLists.txt +++ b/src/Simulation/Native/src/simulator/CMakeLists.txt @@ -1,8 +1,6 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. -set(AVXFLAGS "-mavx") - add_executable(factory_test factory_test.cpp) target_link_libraries(factory_test Microsoft.Quantum.Simulator.Runtime) add_test(NAME factory_test COMMAND ./factory_test WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) @@ -21,7 +19,6 @@ add_executable(quantum_simulator_unittests "${PROJECT_SOURCE_DIR}/src/catch2/catch_driver.cpp" local_test.cpp ) -set_source_files_properties(local_test.cpp PROPERTIES COMPILE_FLAGS ${AVXFLAGS}) target_link_libraries(quantum_simulator_unittests PUBLIC Microsoft.Quantum.Simulator.Runtime diff --git a/src/Simulation/Native/src/simulator/kernels.hpp b/src/Simulation/Native/src/simulator/kernels.hpp index dbf406dd862..3311bb27f8c 100644 --- a/src/Simulation/Native/src/simulator/kernels.hpp +++ b/src/Simulation/Native/src/simulator/kernels.hpp @@ -75,8 +75,6 @@ unsigned getvalue( std::vector, A> const& wfn, unsigned q, double eps = 100. * std::numeric_limits::epsilon()) - __attribute__((noinline)) // TODO(rokuzmin, #885): Try to remove `__attribute__((noinline))` after migrating - // to clang-13 on Win and Linux. { std::size_t mask = 1ull << q; for (std::size_t i = 0; i < wfn.size(); ++i) From 8c2a77cfd1c83e2aa2e488d9be0aef45e4505170 Mon Sep 17 00:00:00 2001 From: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com> Date: Tue, 4 Jan 2022 18:30:05 -0800 Subject: [PATCH 15/26] Re-trying the PR #881: Migrating native sim from GCC to Clang. (#889) * Re-trying the PR #881. * Added copying libomp on Mac and Linux. * Fixed the omp lib for Win. --- build/ci-codecheck.yml | 2 +- build/ci.yml | 2 +- build/steps-codecheck.yml | 2 +- src/Qir/Common/cmake/unit_test_include.cmake | 2 +- .../lib/Simulators/FullstateSimulator.cpp | 12 +-- src/Qir/Runtime/public/QubitManager.hpp | 4 +- src/Qir/Runtime/test-qir-runtime.ps1 | 4 +- .../StandaloneInputReference/CMakeLists.txt | 2 +- src/Qir/Samples/test-qir-samples.ps1 | 4 +- src/Qir/Tests/test-qir-tests.ps1 | 12 +-- src/Simulation/Native/.gitignore | 11 --- src/Simulation/Native/CMakeLists.txt | 77 ++++++++++++++---- .../Native/build-native-simulator.ps1 | 53 ++++++++++-- src/Simulation/Native/linux/libomp.so.5 | Bin 0 -> 961112 bytes src/Simulation/Native/osx/libomp.dylib | Bin 0 -> 654696 bytes src/Simulation/Native/prerequisites.ps1 | 32 ++++++-- src/Simulation/Native/src/CMakeLists.txt | 22 ++--- .../Native/src/simulator/CMakeLists.txt | 3 + .../Native/src/simulator/kernels.hpp | 2 + .../Native/win10/libomp140.x86_64.dll | Bin 0 -> 1664912 bytes src/Simulation/Native/win10/vcomp140.dll | Bin 155296 -> 0 bytes .../Microsoft.Quantum.Simulators.csproj | 1 + 22 files changed, 168 insertions(+), 79 deletions(-) create mode 100644 src/Simulation/Native/linux/libomp.so.5 create mode 100644 src/Simulation/Native/osx/libomp.dylib create mode 100644 src/Simulation/Native/win10/libomp140.x86_64.dll delete mode 100644 src/Simulation/Native/win10/vcomp140.dll diff --git a/build/ci-codecheck.yml b/build/ci-codecheck.yml index 9e2427cb7e8..4b4545f31e8 100644 --- a/build/ci-codecheck.yml +++ b/build/ci-codecheck.yml @@ -27,7 +27,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-10.15' + imageName: 'macOS-latest' #windows: # No sanitizers supported on Win at the moment. # imageName: 'windows-latest' pool: diff --git a/build/ci.yml b/build/ci.yml index 48ca8e7e740..4e60039fd26 100644 --- a/build/ci.yml +++ b/build/ci.yml @@ -31,7 +31,7 @@ jobs: linux: imageName: 'ubuntu-latest' mac: - imageName: 'macOS-10.15' + imageName: 'macOS-latest' windows: imageName: 'windows-latest' pool: diff --git a/build/steps-codecheck.yml b/build/steps-codecheck.yml index 8a25efe684f..fe474e3ccbf 100644 --- a/build/steps-codecheck.yml +++ b/build/steps-codecheck.yml @@ -10,7 +10,7 @@ steps: # QIR Runtime: - pwsh: src/Qir/Runtime/prerequisites.ps1 - displayName: "Install QIR Runtime Prerequisistes" + displayName: "Install QIR Runtime Prerequisites" workingDirectory: $(System.DefaultWorkingDirectory) - pwsh: src/Qir/Runtime/build-qir-runtime.ps1 diff --git a/src/Qir/Common/cmake/unit_test_include.cmake b/src/Qir/Common/cmake/unit_test_include.cmake index 5c29fc114c7..93701f563b0 100644 --- a/src/Qir/Common/cmake/unit_test_include.cmake +++ b/src/Qir/Common/cmake/unit_test_include.cmake @@ -9,7 +9,7 @@ macro(add_unit_test target) if(DEFINED ENV{NATIVE_SIMULATOR}) set(TEST_DEPS1 $ENV{NATIVE_SIMULATOR}) else() - set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/$ENV{BUILD_CONFIGURATION}") + set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/drop") endif() set(TEST_DEPS2 "${CMAKE_BINARY_DIR}/bin") diff --git a/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp b/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp index c077f826643..93836936317 100644 --- a/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp +++ b/src/Qir/Runtime/lib/Simulators/FullstateSimulator.cpp @@ -211,7 +211,7 @@ namespace Quantum { if (this->simulatorId != NULL_SIMULATORID) { - typedef unsigned (*TDestroy)(unsigned); + typedef void (*TDestroy)(unsigned); static TDestroy destroySimulatorInstance = reinterpret_cast(LoadProc(this->handle, "destroy")); assert(destroySimulatorInstance); @@ -226,7 +226,7 @@ namespace Quantum // Deprecated, use `DumpMachine()` and `DumpRegister()` instead. void GetState(TGetStateCallback callback) override { - typedef bool (*TDump)(unsigned, TGetStateCallback); + typedef void (*TDump)(unsigned, TGetStateCallback); static TDump dump = reinterpret_cast(this->GetProc("Dump")); dump(this->simulatorId, callback); } @@ -462,7 +462,7 @@ namespace Quantum void R(PauliId axis, QubitIdType target, double theta) override { - typedef unsigned (*TR)(unsigned, unsigned, double, unsigned); + typedef void (*TR)(unsigned, unsigned, double, unsigned); static TR r = reinterpret_cast(this->GetProc("R")); r(this->simulatorId, GetBasis(axis), theta, GetQubitId(target)); @@ -472,7 +472,7 @@ namespace Quantum void ControlledR(long numControls, QubitIdType controls[], PauliId axis, QubitIdType target, double theta) override { - typedef unsigned (*TMCR)(unsigned, unsigned, double, unsigned, unsigned*, unsigned); + typedef void (*TMCR)(unsigned, unsigned, double, unsigned, unsigned*, unsigned); static TMCR cr = reinterpret_cast(this->GetProc("MCR")); std::vector ids = GetQubitIds(numControls, controls); @@ -483,7 +483,7 @@ namespace Quantum void Exp(long numTargets, PauliId paulis[], QubitIdType targets[], double theta) override { - typedef unsigned (*TExp)(unsigned, unsigned, unsigned*, double, unsigned*); + typedef void (*TExp)(unsigned, unsigned, unsigned*, double, unsigned*); static TExp exp = reinterpret_cast(this->GetProc("Exp")); std::vector ids = GetQubitIds(numTargets, targets); std::vector convertedBases = GetBases(numTargets, paulis); @@ -494,7 +494,7 @@ namespace Quantum void ControlledExp(long numControls, QubitIdType controls[], long numTargets, PauliId paulis[], QubitIdType targets[], double theta) override { - typedef unsigned (*TMCExp)(unsigned, unsigned, unsigned*, double, unsigned, unsigned*, unsigned*); + typedef void (*TMCExp)(unsigned, unsigned, unsigned*, double, unsigned, unsigned*, unsigned*); static TMCExp cexp = reinterpret_cast(this->GetProc("MCExp")); std::vector idsTargets = GetQubitIds(numTargets, targets); std::vector idsControls = GetQubitIds(numControls, controls); diff --git a/src/Qir/Runtime/public/QubitManager.hpp b/src/Qir/Runtime/public/QubitManager.hpp index 1d1bda589db..5f81de5a7bb 100644 --- a/src/Qir/Runtime/public/QubitManager.hpp +++ b/src/Qir/Runtime/public/QubitManager.hpp @@ -40,7 +40,9 @@ namespace Quantum // No complex scenarios for now. Don't need to support copying/moving. CQubitManager(const CQubitManager&) = delete; CQubitManager& operator=(const CQubitManager&) = delete; - virtual ~CQubitManager(); + ~CQubitManager(); // If this dtor is made _virtual_ then the QIR RT tests crash (at least in Debug config) + // if the native simulator is compiled with Clang (as opposed to GCC). Nothing wrong found in + // the code, probably is the compiler bug. // Restricted reuse area control void StartRestrictedReuseArea(); diff --git a/src/Qir/Runtime/test-qir-runtime.ps1 b/src/Qir/Runtime/test-qir-runtime.ps1 index 68a09d7b990..377ee141411 100644 --- a/src/Qir/Runtime/test-qir-runtime.ps1 +++ b/src/Qir/Runtime/test-qir-runtime.ps1 @@ -3,8 +3,10 @@ . (Join-Path $PSScriptRoot .. qir-utils.ps1) -# TODO: `ASAN_OPTIONS=check_initialization_order=1` (https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking). # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). +$env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` + + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true:" ` + + "detect_invalid_pointer_pairs=2" if (-not (Test-CTest (Join-Path $PSScriptRoot bin $Env:BUILD_CONFIGURATION unittests) "QIR Runtime")) { throw "At least one project failed testing. Check the logs." diff --git a/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt b/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt index 5f994b1dc24..8006d3a5694 100644 --- a/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt +++ b/src/Qir/Samples/StandaloneInputReference/CMakeLists.txt @@ -34,7 +34,7 @@ add_test( if(DEFINED ENV{NATIVE_SIMULATOR}) set(TEST_DEPS1 $ENV{NATIVE_SIMULATOR}) else() - set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/$ENV{BUILD_CONFIGURATION}") + set(TEST_DEPS1 "${PROJECT_SOURCE_DIR}/../../Simulation/native/build/drop") endif() set(TEST_DEPS2 "${PROJECT_SOURCE_DIR}/../Runtime/bin/$ENV{BUILD_CONFIGURATION}/bin") diff --git a/src/Qir/Samples/test-qir-samples.ps1 b/src/Qir/Samples/test-qir-samples.ps1 index 1a1246cb732..a5bbef65a84 100644 --- a/src/Qir/Samples/test-qir-samples.ps1 +++ b/src/Qir/Samples/test-qir-samples.ps1 @@ -3,8 +3,10 @@ . (Join-Path $PSScriptRoot .. qir-utils.ps1) -# TODO: `ASAN_OPTIONS=check_initialization_order=1` (https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking). # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). +$env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` + + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true:" ` + + "detect_invalid_pointer_pairs=2" if (-not (Test-CTest (Join-Path $PSScriptRoot bin $Env:BUILD_CONFIGURATION StandaloneInputReference) "QIR Samples (StandaloneInputReference)")) { throw "At least one project failed testing. Check the logs." diff --git a/src/Qir/Tests/test-qir-tests.ps1 b/src/Qir/Tests/test-qir-tests.ps1 index f6ad54463b5..fef566d1b62 100644 --- a/src/Qir/Tests/test-qir-tests.ps1 +++ b/src/Qir/Tests/test-qir-tests.ps1 @@ -16,14 +16,10 @@ if ($Env:BUILD_CONFIGURATION -eq "Debug") if (-not ($IsWindows)) { $env:LSAN_OPTIONS += "suppressions=../../../../LSan.ignore" # https://clang.llvm.org/docs/AddressSanitizer.html#suppressing-memory-leaks - if (-not ($IsMacOS)) - { - $env:ASAN_OPTIONS += "check_initialization_order=1" # https://clang.llvm.org/docs/AddressSanitizer.html#initialization-order-checking - } - #else # AddressSanitizer: detect_leaks is not supported on this platform. Re-enable this once supported. - #{ - # $env:ASAN_OPTIONS += "detect_leaks=1" # https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection - #} + # TODO: macOS: `ASAN_OPTIONS=detect_leaks=1` (https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection). + $env:ASAN_OPTIONS = "check_initialization_order=true:detect_stack_use_after_return=true:" ` + + "alloc_dealloc_mismatch=true:new_delete_type_mismatch=true:strict_init_order=true:strict_string_checks=true" + # + ":detect_invalid_pointer_pairs=2" TODO(rokuzmin, #883): ==8218==ERROR: AddressSanitizer: invalid-pointer-pair: 0x602000000af4 0x602000000af0 } } diff --git a/src/Simulation/Native/.gitignore b/src/Simulation/Native/.gitignore index aa51796222b..8f1fc6e9a01 100644 --- a/src/Simulation/Native/.gitignore +++ b/src/Simulation/Native/.gitignore @@ -10,14 +10,3 @@ foo* CMakeFiles/ CMakeCache.txt *.so - -# Ignore build artifacts... -win10 -# ...except for vcomp140, which isn't actually a build -# artifact, but provides the Visual C/C++ OpenMP runtime -# needed by the full-state simulator. -# -# Making sure that this file is in the repo will make -# sure it ends up in our final NuGet packages, as needed -# for the full-state simulator to work correctly. -!win10/vcomp140.dll diff --git a/src/Simulation/Native/CMakeLists.txt b/src/Simulation/Native/CMakeLists.txt index 06b27fd43de..1029f69e1f7 100644 --- a/src/Simulation/Native/CMakeLists.txt +++ b/src/Simulation/Native/CMakeLists.txt @@ -32,26 +32,75 @@ option(USE_SINGLE_PRECISION "Use single-precision floating point operations" OFF option(HAVE_INTRINSICS "Have AVX intrinsics" OFF) option(USE_GATE_FUSION "Use gate fusion" ON) -# windows specific flags -if (MSVC) - # always create debug info - add_definitions("/Zi") - add_definitions("/Z7") - - # build with no VC runtime depedencies: - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT /Qspectre /guard:cf /Zi /Z7") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd /Qspectre /guard:cf") - set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG") -else (MSVC) - set(CMAKE_CXX_FLAGS "-static-libgcc") -endif (MSVC) - +# Always use Spectre mitigations where available +if (WIN32) + # Enforce use of static runtime (avoids target machine needing msvcrt installed). + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + + # Locate the vswhere application, which will provide paths to any installed Visual Studio instances. + # By invoking it with "-find **/lib/spectre/x64" we will find any Spectre mitigated libaries that + # have been installed. + find_program(_vswhere_tool + NAMES vswhere + PATHS "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/Installer") + if (NOT ${vswhere}) + message(FATAL_ERROR "Could not locate vswhere.exe - unable to source vc redistributable") + endif() + execute_process( + COMMAND "${_vswhere_tool}" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -find **/14.29.*/**/lib/spectre/x64 -sort + OUTPUT_VARIABLE _vs_install_loc_out + RESULT_VARIABLE _vs_where_exitcode + OUTPUT_STRIP_TRAILING_WHITESPACE) + file(TO_CMAKE_PATH "${_vs_install_loc_out}" SPECTRE_LIB_PATH_OUT) + string(REGEX REPLACE "[\r\n]+" ";" SPECTRE_LIB_PATH ${SPECTRE_LIB_PATH_OUT}) + message(INFO "*** install loc: ${SPECTRE_LIB_PATH}") + + # Locate the spectre mitigated runtime libraries and fail if they can't be found. Targets in this + # cmake project can use the variables to explicitly link these libraries rather than using the + # non-mitigated libraries that are found by default. + find_library(LIBCMT_SPECTRE_REL libcmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBCMT_SPECTRE_DEB libcmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBCMT_SPECTRE debug ${LIBCMT_SPECTRE_DEB} optimized ${LIBCMT_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBCMT_SPECTRE}") + find_library(LIBCPMT_SPECTRE_REL libcpmt PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBCPMT_SPECTRE_DEB libcpmtd PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBCPMT_SPECTRE debug ${LIBCPMT_SPECTRE_DEB} optimized ${LIBCPMT_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBCPMT_SPECTRE}") + find_library(LIBVCRUNTIME_SPECTRE_REL libvcruntime PATHS ${SPECTRE_LIB_PATH} REQUIRED) + find_library(LIBVCRUNTIME_SPECTRE_DEB libvcruntimed PATHS ${SPECTRE_LIB_PATH} REQUIRED) + set(LIBVCRUNTIME_SPECTRE debug ${LIBVCRUNTIME_SPECTRE_DEB} optimized ${LIBVCRUNTIME_SPECTRE_REL}) + message(INFO "*** using spectre lib: ${LIBVCRUNTIME_SPECTRE}") + set(SPECTRE_LIBS + ${LIBCMT_SPECTRE} + ${LIBCPMT_SPECTRE} + ${LIBVCRUNTIME_SPECTRE}) + + add_link_options("LINKER:/guard:cf") +endif() + +if (NOT APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mspeculative-load-hardening -mretpoline") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mspeculative-load-hardening -mretpoline") +endif() include_directories(${PROJECT_BINARY_DIR}/src) include_directories(${PROJECT_SOURCE_DIR}/src) # OpenMP if(ENABLE_OPENMP) + +if (APPLE) + set(OPENMP_PATH "/usr/local/opt/libomp") + set(OPENMP_COMPILER_FLAGS "-Xpreprocessor -fopenmp -I${OPENMP_PATH}/include -lomp -L${OPENMP_PATH}/lib") + set(OPENMP_LIB_NAME "omp") + + set(OpenMP_CXX_FLAGS "${OPENMP_COMPILER_FLAGS}") + set(OpenMP_C_FLAGS "${OPENMP_COMPILER_FLAGS}") + set(OpenMP_CXX_LIB_NAMES "${OPENMP_LIB_NAME}") + set(OpenMP_C_LIB_NAMES "${OPENMP_LIB_NAME}") + set(OpenMP_omp_LIBRARY "${OPENMP_PATH}/lib/libomp.dylib") +endif() + find_package(OpenMP) if(OPENMP_FOUND) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") diff --git a/src/Simulation/Native/build-native-simulator.ps1 b/src/Simulation/Native/build-native-simulator.ps1 index 3908c7df01c..625112a0b1a 100644 --- a/src/Simulation/Native/build-native-simulator.ps1 +++ b/src/Simulation/Native/build-native-simulator.ps1 @@ -10,25 +10,62 @@ if (-not (Test-Path $nativeBuild)) { } Push-Location $nativeBuild +# Search for "sanitize" in +# https://clang.llvm.org/docs/ClangCommandLineReference.html +# https://man7.org/linux/man-pages/man1/gcc.1.html +$SANITIZE_FLAGS=` + "-fsanitize=undefined " ` + + "-fsanitize=shift -fsanitize=shift-base " ` + + "-fsanitize=integer-divide-by-zero -fsanitize=float-divide-by-zero " ` + + "-fsanitize=unreachable " ` + + "-fsanitize=vla-bound -fsanitize=null -fsanitize=return " ` + + "-fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=object-size " ` + + "-fsanitize=float-cast-overflow -fsanitize=nonnull-attribute -fsanitize=returns-nonnull-attribute -fsanitize=bool -fsanitize=enum " ` + + "-fsanitize=vptr -fsanitize=pointer-overflow -fsanitize=builtin " ` + + "-fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability " ` + ` + + "-fsanitize=address " ` + + "-fsanitize=pointer-compare -fsanitize=pointer-subtract " ` + + "-fsanitize-address-use-after-scope " ` + + "-fno-omit-frame-pointer -fno-optimize-sibling-calls" + + #+ "-fsanitize=unsigned-integer-overflow " # TODO(rokuzmin, #884): Disable this option for _specific_ lines + # of code, but not for the whole binary. + # There should be no space after -D CMAKE_BUILD_TYPE= but if we provide the environment variable inline, without # the space it doesn't seem to get substituted... With invalid -D CMAKE_BUILD_TYPE argument cmake silently produces # a DEBUG build. if (($IsWindows) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { - Write-Host "On Windows build native simulator using the default C/C++ compiler (should be MSVC)" - cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + $CMAKE_C_COMPILER = "-DCMAKE_C_COMPILER=clang.exe" + $CMAKE_CXX_COMPILER = "-DCMAKE_CXX_COMPILER=clang++.exe" + + if ((!(Get-Command clang -ErrorAction SilentlyContinue) -and (choco find --idonly -l llvm) -contains "llvm") -or ` + (Test-Path Env:/AGENT_OS)) { + # LLVM was installed by Chocolatey, so add the install location to the path. + $env:PATH = "$($env:SystemDrive)\Program Files\LLVM\bin;$env:Path" + } + + cmake -G Ninja -D BUILD_SHARED_LIBS:BOOL="1" $CMAKE_C_COMPILER $CMAKE_CXX_COMPILER ` + -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + # Without `-G Ninja` we fail to switch from MSVC to Clang. + # Sanitizers are not supported on Windows at the moment. Check again after migrating from Clang-11. } elseif (($IsLinux) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Lin")))) { - Write-Host "On Linux build native simulator using gcc (needed for OpenMP)" - cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=clang-11 -D CMAKE_CXX_COMPILER=clang++-11 ` + -D CMAKE_C_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_CXX_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. } elseif (($IsMacOS) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { - Write-Host "On MacOS build native simulator using gcc (needed for OpenMP)" - # `gcc`on Darwin seems to be a shim that redirects to AppleClang, to get real gcc, must point to the specific - # version of gcc we've installed. - cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_C_COMPILER=gcc-7 -D CMAKE_CXX_COMPILER=g++-7 -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. + Write-Host "On MacOS build using the default C/C++ compiler (should be AppleClang)" + + cmake -D BUILD_SHARED_LIBS:BOOL="1" ` + -D CMAKE_C_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_CXX_FLAGS_DEBUG="$SANITIZE_FLAGS" ` + -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. } else { cmake -D BUILD_SHARED_LIBS:BOOL="1" -D CMAKE_BUILD_TYPE="$Env:BUILD_CONFIGURATION" .. diff --git a/src/Simulation/Native/linux/libomp.so.5 b/src/Simulation/Native/linux/libomp.so.5 new file mode 100644 index 0000000000000000000000000000000000000000..de31ecb353a3615ccb04832a1b8b00752c0f8558 GIT binary patch literal 961112 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

NZeJ~#taCYl+#rzC49Lg<@O-avd@!5NrnR!G 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%0AyKd56&jshA|O#S@O4BaYGMQ=sx9pV zh9OZ+`8(@_CrQ=G2u^k4MD{;IqBbI(k%*tF;lDaTy^#FZvFyJN!f|H0SL!S79qs;; z_ewA_8xC+|N6=@lb&Eo+)59mWV<5xACuZi8xvK>Hi^w4LY?<1pFY+w4i4Q1zb-7yL#qZo?q6hk5I;+>@hQP5To+V~Dk za1lg7e)6z_0r>7HEidq1vpABXT8pH(E`a#4o<$AWb@kvyxUSn!aYVn>n}B77VkpR- zKC9nK=fl;;xCmVkdM0JHlcnoG={;)i21V zn1+I8_Z6Xp5ur-jyQeSp79K^Qojf3nnn6NMv49>Qn*XYeOmeY=*C z6RkjtUDu|9sAJU295#VTBeoyP=p;0OGjEjWZqb#O@?tgg<`6j} zyaW!P7|r1m!|9P2uv`zHxRo-Ac&%R@4Nl(k@n7d4$&Cn~@P9+&kGKh`_%nK^&Wao{ z(M6A#_|HgoS%KgsKErP#xU7y*vv^#j`Is?~1%j``2B;2#VTIp1vpEmY7lT3=xa8LG z0m2p}4NxP$iGfdHR0CG7!=Vh%G{;bU1G3QlS2l(2Zwk)&3h6=Uf;>kB2U5_fLjuXa z`-`S()JTd~!4=;)MEp@O+E_Y&UKmJo;H-V{vnvT%>Kw{1xoO`$(g`SWz)oj=X1_{~ z5;B>kRX&n{oCx&8HJqmSIHxI2qBO-wX8mp80te2a1SB>z;g!%Ql+RWAC!td~oh||_ z97><2x!3^&?oNs)#&xB>1y*p0DZpZk)W-VZ3oyNHQd*x89A?q6KF`F5-vUQ;KiA=& zmWeP6Jsbm$N#0Q61Nphbq&dHkW902QP6+pZ_6R?B23&LCyRE4tj7{>lo(G%h5sb_f zl%m)ZR^jdwbp)k5*~KCu@HV_2=?pCJY*w=MhlIqEw;hp0a6P{LQ??wT7z?<#OB~8% z8E!_R`!$n`n@7I(DdB#;K7?D#F0QMY(S}36QyVZw+USUxgwzOiXmO!MMw*j@7C9)) z!UIysoh{A1lipwtmOea%!w7r*-*Qi_J+xY=r;Az`wRpJ};l#<76;5S`T(6RHK+7r= zvE*rn8tBXC<)d)x%l&i*6FB@wzGyR1I}vR24NOf0rpO$bB2jz1ah(vC0+B73>m4MC zkvtS2LPXC%YW#Zz(dSJ>=Urknaqn(ogqi3fl#fL8Tb-z%uC&JR<`6|~c%KY5^Esv% zKD-yPI~8?!`x8k-OOTfdTZUeAmo>yg{bi*SArzIO6uoR-v8iXD*W3>8aW0mw6@{a&Iuawg^;cOD6 zOy@-DlqFsAOav!6Q@Z~ql+tfOr|5+{k7D~8M-%2=1v)f)KDHpqxU$_=riUMlM%8+Ct=d6xcPg7rB8F|!%!)i4yC{BP^MuMs!zTMWTK5dtwCfO zk%pk5km2yl2tkqEr|V3;9Laj8Hsgut7ZZ_e7i!39Kl#PHheVF?>y5dm;}HPD8crzL zTwTcqvas}^0wg)=lZh8C<1MTB4ep! zrePpkmZQg+f#vuODS^wOWLM!{Ne+}*E-OEQZzpBTYKPKGwk($|P%D!Yu`z z7r$UKkCZZ-xbK0w$|fR=GWoe!oY32jF?@*iMd%?+#dnf0nWmr* zzEeA)jl7+o!5809&lf#N-){W!I5IN#>4?2rU*EgIj<)#8-yC5PAbZe%@R&K2!%sJi ziIIZiKwbHsy0SM@dU-juRJN?7vA3*|5uhSx9AHJh3;`;rA(J$rFhGuo02MN*84PeG z!a|qR@DyTGl)9AqG7(}|A5SGYEdD?b`dPDgQD=n{%vILn-D;<0g^WNIIb$1uPFZpu zLMxVn-N*(-0=(Rzl!KQEVZkarfd+tK$j&l;tiK~e100~z6b%aQC<{CQ>G}`kB0fb% zfQpj>RC1LA4$A>YNQBBAP%U8XeRvUyt8|A+?fGDdK=1ug@F7TQ5h}P50AHCRRK}Es z#;3>}pc3%Y(KJ4^ycmshga)VVg{Y(2BX|+jUJ_C*PTz2~?Sj=(o%;E%@c0yYEd{7R zH&a+nNPx;rQO{hXo{zViySKRyxg>X4vuBP-&{SG<#}j&ayWc=T#seh%Lzt8 zV_7!xch)X}pcC>B5rn5&pXBq&LHt0(3v_^;F8iq(1hce2-X1+(VC_Xbp!efN1hYJ` zl@`!e?g6yE>c^EA<7aVPdEGChh}v!P!Nj3}fiw{?P>6tmZ%Czf%Z`xKIMbm^1+g9mv3tXbg`XK-xkb>r3AD81!tF8L`DFhX(|ugQc#Xr(7(9s8(;gAs|(oc#T##rWne35wGzG*4kv9 zXeiJ92Y*Htk>WKni@5z1mP7FxIK+F_c#T5zOaz&{0*Z*A%1ROe8}85w5wMYIir2`) z!JEZ6#)Dgh=>VBi%06m}D>^k$57Lpy%Lqf>kmaRZ9@o8h~lLP2~{ zzm68*P;sfwjAN4?V5|t;zy?#|>svsvUdH#2G{jLvoJ6!D2BLb6DV_+6RATP$R0x_N z{};T`nO6-|#F!UnS z8p;+vC~S(OSsHTwHaNev_!hzkCz$a;#JSW4A6)99HXtO-`Z2%L!&^S9&(q2XZ@JYj z(1jUbEOviJ_k#eQ6DCB=4_V@X2`89f!qQD7!(XKmDc?nX7$*GSHytKKPWl!;r#cBI zYjv2AqQ}v|8IXz~Oz32oaLtWqhkyw;(M46_z?FarhaN-L6L06+@FHNs&rz`k6Z-gI zRs-n4LZn5YeQbsaOHtD~V8Z&oJRZyg`IZbeM1| z;%Wp6bt-{P_v?Cx$Vm@}kP}mwi$I~&jRs7}a?k+sWx#|pMYS0776$$8g8n*N2>oB= zDDfC=Y34vvJtgf25onAV5*poPO=vkctpnO%>^X7V}#6Rr?2VRbf2YB#%Uoko$DHn`{YMz90o5semHXqno9Vg z8*xL7AI^H3-h|+Xe~DU7*+ngc_&o#-ps^sAYtg_t3$A1VepsdBhxwAHFKWP-guCE` zak-z)PXRxiXQH+!*yifB)MgXZHxmcXBSL*C_@0Rpeh9dXhz>Ck9d9+7_+Aa7gf~XQ z4=E`Q6ZQYW&Ac?8C~D(AFxbp|rWk@BV%)Pd{4mP6Pa~3N!w)Gx>W|WMW$<>&Ani~$ z`6_ukML|Rn*Lnb^;v$4B;x_^p{g4bGh~jWpBz$oK~n#{6^PjRFe{#~ZgnePU|6K#fG4(LW7uY!nxcH5@ITzk|qiBrphY-9GA!tr51WlH547@Q%;EndEcq4WAsDU?%*fbD` zf;Up>!{?7TI?Z_FM8X><*1#K?bSU0 zrjCs<^w=K|J8<^|UW6XI^gELtGa$$Jg4mx9IR^1R^LaQk-pGmle_&01TXkr)Q$)3H zquRGunX5&F0Wh>b3etkr5~jxbaqG`VmYR;k$!i0_^Kh(MCl3#;tAVJiiBVU#kh(Tw zlh7A*&})r9uE62}&dogzL1p~$R|Mtp`oZ`kKw(+5L!6N-j$uYWju*k`PxazH23QL^ z5n{U8hsK0Lkmtr9Kj72M1VR2bi&jCKs2KXA`6WEhO{ue}CI+UMm$|<;apRK2g zVJ)wAs+}rx)$y6QzyKMzcGPvm7Qc$e92v-8k0UMl1#~f?e2hoG^e9FjOvn9ym1Mb* z(W|^9%oi=?P;0EvkdrY~vV=;0iIUm|HW2-Sy2bk+ye!ZPG;MCA7m;qkVoGpRaqQg2-u*NK9uCpiZg7lPLG&=a3q8)(rf0mu+_+L)wRzE?`6L zR@m$EsJJ4mAJsdMuxWJ$*(j8-i6W=7VK)f;?Q){75mbAreNx;@t1YLc`M&J*6*dZA ziOJYXAs}O=lHrM{tAB!eb3=;{d*>*SvB?HJUCII$s|A%Ivwxg&k=iR(#0Dt6u+=9O zOYt!=-ekbR$kL=VQI`1W3%bBYwRSslu^e{Br&RH9 zWVUZt&*%kG6ZTvMzKUK9K{4(HZ+X)Fgz?h+rRw-3_p<5?AV$>wS!IY!p}brpDyUny zWsoCP&<%2pIV6tmXT+(_7*PPt@ZZxARYU3&Z3jTL&gv?>4rU`7D;ltAS&)q~9XF=D zNoZ1gT(&`*TrJng^+>H%$2`RCwW?+AkHU7Dd*Zvcfbt7h!6?vU}h{+Hot5Y zU9kG)E@pvw-RS8b-|9V`hKycdY^hC^lw)a?bbrZzu;C*;r zCvDeQRw|Vkn~$5gz600&R7R$2TU2X0DkF!HnEInpmD{LlIAuPeDPfsTbNwWWV9LFT zq`Hd`!x-Z`u9swn(H%O4vNx_B9*B`GKJ7#RG-4%oS2M~d5{+^}V+7H7lxTdW(}248 z3J>BC0Ka_20fIK=mw+VVFKrorNHh0irgN$z61EQA$EQl}E$|=cwD~DK4EGqFmKu3d ztMCa~Bj^PQB&?TDi;J0j0Y%@OeuP8#E2mt8)*Qp4g&xJ7Kx-&@1YD;%c*2*0Ms4|k z-?Myg_F*+D!}`7=q7~AmF)L7`cum1|D~rOlqPU-DiH-`=vtn_G=s5QRek-70-@UGG4DKmy#A+L;G14X^Bf3lI z?VtTX)Dd9QZYE06Vp5+n#P(cpI#z4zk7Zh0-MvtZl&;5tW~hA{#`cLrIttWFO0_Z6 z3{Odv^Bsx>`N?u zOF48kRFz~`4!P#~2ho%Bp;c_S&OY{f$+Ht*fRVP0ZBoewyeB1F*xTE-BNiOu?pAQO zT*?aAaiQxVa4hdyG6uvV>E93e!MT+{dx#eg+NY?Sa8VdK)D}+3a6{ zFQP97rbQ6#eKoyqj8yy=oHiP;(Wu#;f%_#y2PTpJ{2HSUjgd>3c!E9YICPcsomye+ODG0(?MC zbjqUkiL)tn?P~uN@uW$XCC_|30LfD<{*-VPsSg8I2-r-HYgoX+>%**A{fD_6I z_mXOA>G+1B>_j4CTv1Cm)M{h3*Rsr}v=3>l?G zjCZu8;SRGeXkFHCJqe^!o>zp-J%3cQ8EIJsF6JFF>s3b+Bs@` zTLg_BhEf)rQN>5LZN(q2$x17cXI(#QHKJ0C{Z>dG;;)Dk!f(ZxicBe{ZKN z9T`Uon)FufS0+Q*7L3XeZFeOG^2d~t`t{ra^DeC6He~}kM>0rlK+Z;pb+8Tp#he)= z+OQ93@1joB2Akf7z@u6fQgJ*e+m-QcgJz_;b#|mqReRw=K)F1S;=Q*T8D!=Q+q640 z&}3{0^*jtu1T%9M)sjiIZ21yBH5sLFACyhVN-WJPg1v_QX=!dD-YDhe{yJ%^+{a?2 z0ReAzwN4mfUzo9pNxvXSUqht(5$PEjg+xXNjc`LH)g61aRoNThIIV`ebSxCFI(d=#O4nsij*i?VT#%n*j_VH zUgWQ)tHsbmyILn(y@0ltXsuB%q+}NgvK0SrS5Bag^$SgP+=4nt5{kYh58sqUi&~L{ zuk_fbKTe6Kj-lUr9-p82J8Spl)W8U*rxNhIk;jJ~H1hbQXuohCAF4*nYnF-@}4*0bT?GF^U)hV6St+os5%$6(DHM^e0s+BCJj6_SM8HTo^SwPB3WlByx|djoi@}F;1R`W2Oe$=mj}O4e+ZAL`V4pk zQeF`rfzl6hXQ=MK*X&i*YC>aSzmzDB-^y zZ#6(-HcFxmhp!5<{!?^Sus%m`1F>Fs#ikV?A}mpGQ4J&_@GI81Ao@V5Z^#RmX70jv zwq5xkbq3lHjzd(o({YG}_|;u)kv!iaM~tkxb&G%$v9JhU!n>eF& zG067@TU7E;YOpFyEu#1blKH zJW?2&eX!rad=GwvYaAV)phh!3F^#NuSlL-EdF#$aTd z0yFNwO9(R_K_#Kg2uZOQ4o_qve%VI(15NmZjUu!)fMTZxP#CP5O01e{u!?w$eFA== zv(1(Cd0gsLu!`OitIF^SR?$lYR;6uagkrfsD17j$(W@al&?`nL=6$U3%>QN$gyPXF z#k^qf6%UHJ_{&Gy6Cnr%&q~SNw$9mMiiY_8JYfn0pV)=*)bR<@_&@u9#WzriyRKj* z&T6^oe!ZQY^mZ~jq3aCEgKZ;n6hk12Pce(l5Jf3d96hx;X8TT1gwzv6v2(sjB_QYB zh1+9efQNR#oEG@RI!wz@e1e{KDn|r9VbhyL_{7XBQTTlE3D@I(#Ok8c;*>V>DEhKB zi~=zjKxrtu%z}Z$qlf&w-M*@)Xi{5a?C0c>M5a`)kA<&FVY@Mf# zk$`4`{f&xBK$aMluqnCWy?qu<)L;oeLSevP_FXxFH|g}F2a)yGrmTjF{|a0bo+~Yb zlBW`q4$qao#+s~ot~SYzpjP3)MeEab7cI*{_1t? zuige{l9V(2)tfYb_1>VrsvU*h5Ut+%kn#6~=I>4QvZwm&hZ+|Hr5bUmxQXVe*6>ez zq=q}Fv(cLFp41t5VW;axL4Ox8bK#?Q(dlcR=^I$N*)x3sZz6f7;S{TddM+i3?3(WW zK%bit9MXoVk|zcO0%EmZFM3yLdwLq4cHOzq4dzt1Y@6|b4Rv74k9X{C%d~aX}Lb*b>0y}8K zI#oFU7>GsrJy=GCoVz|7P4D>4Z>hL@W#=pBb@3~ifPCKoRO>c zO>(HfTP&NALZKQ#uNiA;UqzO(R#IYvJQ}Ow{a~x&!a1RCGJ+dK&$=O_0CrjwIKvKa zr%N147bMW}tN4hUYQPg|&U}VTdalNhrNa;VgF%G%-vWs6G=6cYLo=y6Y^a_Fhec0R z{LVdLpd9#VIqo+CsOV7dNs-AP&+v=p&+1Jzi_LrPm7^jqm3oOjzyc8sUm+DghGPE5 zsjS*NlRSivP=+hM95ON;jT04Ls8?(Zj2&C)gV4;5I*fjB6Ca#OTMtR09TwlT;4^g` z-FqiU?yaz$k(iYAI6MSji?;ZT1tZ_7w&CbEQZTZD>r(i;2{=}?oyyr!j=P(Dq>#XH~BIGJAN z%s2^)*CAzXC)FcZ^CPp7(%M{&v*<`V0>MDE3gDf7-sJWUrHKrmq7gpo10_Rhgxo!D zFm3A_hTJ`r0uS5TVmPFgPW94%Gq?(~g#=<4PS_-Al_d6ad%(Z}<78>hDxf6NEh{KT z2VHzJq;DP~?$`b)4O>Iu6HDauDtcW@9w}sV4FyRepaSrEa;odS^fLbfJRfW+b}M;? z%rshhU9hDPB(RdCSjJ}IbP9HQTQG0HkE8>@eBYZWu9xC*VPPO`M9YBe6<`Jgvz$U| z2?x1PkZ4FG7{9nfuaR!J*ny|umeLFGi|6oy$m&4-Qb)#iY37Oen3ylooEQ@K7O9Tz zLuJXmpJaf-oG!sHwk`MMkuyzMCMMUVBokAp*^4)^hFggj;g(~BeE!$rlY;@=YzpDq z6dZxlaD0LyBv;V+Xn66|DvH}{dwaCFy~%WRcyjRQ@GLx`XT7Jmy*2b1(H00)(~b_) zH#F%s;Z@?J!}JaZ1{(~E5Vwa&0@<>Rx2$sDltX!cy#`%lJmW%iOUw|QRZlx$;2G7# z8_FaQfj=*cb>%(01o^Y#wNU;PZ$VNGgj8G`DWqcSW{U4L!4(|g89AQ9dg!)jj4L3< z6$BaQAx3FH1~IOTJ|p-d$T<3j7)J|(U>v;z<9-|(fpLhz_|t(*3rfJ5c8FwZ)*Axi zu)-+^8z-*@2N>d5^{U23KSlIo#>h^k3hE^fY9^mhY{EAJ+jOmX>J_cHfO8?AbX2rT zs9-Popt5C)?9D@Bg83V8f=y1N6b6;@TE9bm2nw4rCLEVac0gMiON}>=lJX!oLI5v6 zgQ29!XyxIs49xCOEyW8~=LQ$j#*?gEE0&$Em@*D;ay`~l+x*?|kro|p{S|QBgii0J zx8C9I2K8zzeI5x7hn{chi0z%=Pv6&5j+rU5-kl!3^GSwHng0!W{ahP7gdbP z4BTUo{6lO^;F?k>B@QX4pf%)vDE?7KNChpf*ymR^k-j4DYb{sbB9+Y6LPy#*x=e8H zL&QuY8;0a5VhKPZ32#Nz&Ns$KaO&XNW zDm5<2r?X1KR+0uScc%O36^EJHF9EMBDYZ#Gj+!RetK_&txhWru7O7q2zwiDOS0j0Fn|%y&(bCts>d1VU zeop0AFne=9)xH~xXC_wM2`ON#ixlNga8NJ}?*9(cU?raPefys<{Z2B7{^ojnw9n1> zso*MyYH#1hnenUSd7hdIzn_{e6({4bpY)!<+quMT;7oWIE<%xD7uNf+kRpNya*4xN zlp=V2jdps_&JLoT6|2zBHPp@);qCMfMP)&S9&FeqT1wS;SPU>l?ClezlDFv_Z;STm zT0*W`(7q#agQ9lJ0mpzFcTg=`sg?yVLBMes>RoR1Q3CjUBd;Wjr+Y` z>9MOxMzIk>1-aB5l+wGdFRJx;6bmlXyU$wN-wCbJdhc%&d@p`%f-j&9#Omr$w&%un zlRQlzH)QfTkaMM^K7D{$O#=?=r>m|r0>W6`>feeVWE}05=AU%ZNst@x?x1~knbY!v zL+O;t_^j>7Ob?2|Y@G)z!QUG+Vf?}Xz6l2KDubkE0CQxKFqW|LKzWeNci ztsaC^33Yg?A)N~++Z|2E5k1jN_`kA(8{9WKr1?i>%MWC-jg?`UBhmmClS4@k<%6pa zD{_AZH@^{ILGN4g~jeyiZZ9}^vc?wXiL+Oi#+%(pI7q=lG3@Y;K3+1%UNDDO$X|a;8p%(b5 z1^k0FU}XS-R$$dRhtM>3+HiE9*Z>hj$7ndq$b-Uw2!|@z6Z62K5*j1;N-U|eRGFB)4nNA4KWm6i0mOrNJrqZhbr+pN++y`PRxl7g^dkuC6oDHX;a&?LIxRNn zL)(ga0X&I;tOf1A~)96F;OK; z;3~C2t{R_9{)X=Js29qZ0fM@+7xXVP(|;}QG$M*>UVVo74JK{Cl-lnk!Rs))(iwpv zl4mb?o2%TzO!04JMwcV2R~<@xhQK1ZVi{C7)Z74nfA6@?SRJkjQKh!aFp;qQIB+p! zZpP8cq^bK+7rmW7Uk06Uh%|LWYB7S6fHI8Am(_(38*Lb>OK?dWs>Tr|BuLbspk5g*d-YB^VMK8WR*eOxRKJ zwSk1*dP)qyZ1B<72BOQ$Ae3%O5E43q-@+iFmy<9C-oz^hMumjNuGMYd-l#&OT6;+7 z$$tY9+DKqa5E9yij}YZ2U?791`<8&GjK2c?GpyWwPCCQ zAbqr)4KH6gc)$QsPrb1YRRfStk=t(qkhb80!P)>wvB>Ph-DUu30Z}2ZT;0zlf*?<@e)n9?x(h?CwCel#=i5Amao z5%HtmMneyk8VwD_j~IvbRD9_zc+?R5ixGY=@TGg_YHU0kzNF$Qp)_CeYQ-brOYZ+4 z@ul~xt!8|wdnmrt(~K`Ifrlnqzip1L6#fRj^vp_~%(Dg=-2kYGFMayudEiUyBjHPr z)B<11M4JqJ=~ca1j4#cMjxSx+=l>92nj9AuUwR)FajyFJ@g;)R4o1P327q?$@uevh zLjNNbw!oK0t6}<|eE9zZd`as0=-y{_MYxFJY$< zdey*}erA9MN{Dy{1SsNOC%li{C!obl_|j55r{hZrLPqcX9HYYcQrT=xdqu#PUIL+i z4`1rR&96PaM1heyzC@8qq4?4t>~Ge@mpTGp64=r+Wk7i@K^l`2|02Fb`Cklt=^k!F z1bnHPz?P^54dLHos~*i*i_Fgd0AiAkTmKIsrjL(V|2f1oj))Yy31TY#{}*CvhUiq` zlTU)XE`0LkRi}V*iNK|EKupbxp#TAeuqXcVpLot|t!Sx{w0_3#2y7Z@5Wm|@ytYWw zryf%^T~N(GLYjUxBTXBlBTYGxk*1$;Vm%yb+PRchu-s3e9T;hPomw0LY3hrILy@N0 z_=b=sH3HJquu}Bfj5Hmiv>RUQkjIJ35l%RrKhm_|JBm%B^8lO;c1+L-3Z8dDzTs2l zzb6zekHyqg;{nLI8ZCr^j-jK@ov^~*oZSIasJ>zQZ8-brecf(1oBgC)lmZxoMTq>P=EY1Wv$s7R| z8%JEhR%P)u1X+5mgK*db6)t2XPF%ttGAgH8eRutYlw26ym|K@}V@l$U`qInrA+o$EhafS zFc!4{j@#%x)kUoX7GGV|4m1fDwcy}_-!fr@_dtqR^fw^~v?2Nx{DDP(+(yc8lOBLfKI{VAvB+Z`croA!+u{uYLb|t*M+y0;Kn4ow-e$pme)a|_BvJ87@KxY zeN&FWeUz8bZM4;cfD7Mik5E$AgXKFD+$*dLVfe>XNgp?G<$w{tUm3;-jgU0wQw$3e zJ44Wmq7y?0n+DI>`ul)1t~Lp@D7CqN!1?;{O7L63a|k6b-=E;#ZP8mvml|KHw{Z|U zqwKWd{7RYc=v2yl_O8@g4d4qg=fobw7-!wZO)2R^kElna?sJ$UQr~3{lo7 z^K6IXFn5-rF<5{!{n%@rXfqcysw27>h zC)(E}ekIpv!}Q4Hqsw?7tC;p$b@347ZUJCuklXgqiE3Vx9{fw2o%+P=RH9AH8y+!D z%=Y|&C+4~}A*yV+?e^Q2g5wYCt^HHvKSKptTRa6AP`xe5DEhcj6dfCcg5hF9+VTsM zRzpz6LmUiIYzKP&Uif3?XGJ`5A~-%`dnEWdOutGmutw|r6=^ioorY1ji z4Lhb(@H6;1Z!wKhl~g{ZshZOwqpIK{88>CQE1-)S?`Vk%Zyl+TCv}_|qvkYK2eim2 zcO@Z;E`0?w<}FQeA(2wKG`)=Ub)Gta2vxarT38O1rjgDkkZtwDVib<0i<(##&Nxp114>T{}^Kjk>`0{#!lG0!T`Wh5Mz_L<= zc-60RXQkpw!y|z%Iv*!BweeduOK{WsFtPG!v<)FCzC@%hslX#>DQs@#-V~&$xz#rO zHndgPpW)*#svk_%_owRTOfgk2i7iH{yk9Deh(H@PtEoD$1eb`KWmMH8vE%TQbT{wnvqsTSAJiY#WZ+OH}4hK?Hp{7a!}fLHMc zHWIW^-g=hanm(ME&EI2AYa*p>!QOqOiAfCu(mV zY%1Tqs05eU%_b4!E6ZLYayT7JB@ntB<8z1-nRqWs+;T0Ks9Jy$w^E6#P{QGzMKmZJ zAc-#F#Csy?#6`dfHgApv-^T&G#O zwQErDyjPV|`gl|l-L*FZG=sByOextDi)aFq@Fq(h(rmV((?nVF+>XNj;*clo>cdI) z?o(6aIIwUrEsn^JOg-UqJhy>;xPGLd84fbBS1EnmkLuM(79<5SI4zp?*@bj~*0k@L z*X|t_TAwe;R_BpN?J;ZU@XwYZq(P|nS zbrKW+c&`-G0K(#Ew%f2cD6db#R61RC*L$LQO04%x^G?vrRs>@zW)WlPzc3?C z;+-m}5ki>&IZp;beNYJDcypC`5H5^Rm)Dxv)R+{-m=vM4SMLz(sqGeHii27EaY$Y7 z6J>|J0en@qq5h{HfQh~3L0rex?#stn1?&V8g~-1}SCJNI%slM;9{q&xcsg77JL{vc zsc34BT17|AXouYMH2UoRnx>4HU|ZU=SUyJB)-^5N<`x@Vip-E)jW*eElSCqRGE-hm*p=vJceC`y}| zJFOje=vpc;nhM;_1%iTIC<-*90(VjY83pVb(iVs4@esv|cJKKZn~>gC>FAe(v+&Xo z`6=*vOzA>;&vs8gXs2R)=Nxr!GBTkR-~zAH)de_tH7O|@XQ+xF!*4)Gq{ptu8-Gju zA^QmfRLX+&$D%@N%UAcKE%XRNqbCA?k&!*|N&4Xp{D2Gia3CYaS)+(zx`Om?M4Dz8M&-ht`lw(^#YuB+g7~4fwp`mbe-C`bEz%gA{h+V`X4v%BfrejG zckp=`KBI8iTpqEdco8ywDOy26-J`xYk4XyA^mhK{BXIOpYV48m5YVD!#BI{PF-U>+1O=i5G6ir8>T#I_|~;A+7L;5=m5|j7sF7L5MjcsM;u&Ks@86Yj%p1T?9kX~Hf5Gwcu8F9}REhvWseDO;;&vs7io6sy)j z!Fn6fb+O)_tx+}5yp!WjR4)y#kYvoJ0Wqm9^$2*7*}PpnhX?%dJh0|6iW_Q+J{smN zyr)$1o>~Y`BMIsMLX62EGsu9QK^+dWU+)+6pCS}1VQH>M4sjX$4y&(P<^Hsy`i4?{!%!djOR3eai!}pQ)O00W!3gbV z{P%B;Vd+*wb{b&-?}WTTb|5%i?uEQ%r4oN`6$4_l|9r-io(~_-=y)0S8>)pX0_9OY zB~w=KM|k_~SoN$&lY&amsZ{g!LU%0BxKRw}hMX;{WHoLnPFYQQ2&rE$!w;JJvV);7 zmeJPe{Y@Q2Dx`4kA!J|4)&X1`%1WF+nG7Jz_eJCIM!%i!zx)BW^L+xV$@K|N^q+Bk z=*t3KG;JXkXfz}665fxf(M;s&{l(xh&Chw5BuMDuVE*y2w;x-9&dHL8tlhy@^Puz>ir#2;~6s2(2T@-)JENO zJ9aO90BX_&D!z_1ldfq2rLy;N2M0~|MRgFn=i8M6oUovjBMx;y zCcc-C;@D^YmZ2tg^XwjnDTn=o__F4B@7kjwYPg8E2MU(|#MD}u1Bc1lHp zf%|1||7xYmy(1QfM`I_&rLPEdbN_xSeT6s=B&*4*93{!$!LC}B;3ygN9m25(txBSI zN%XEMy=#ht0&#N253aRj;a-Y!Y~NwG7#AqR|5AG#luLU2$v4+$RJo8K#k%lkgXeUq z_as^#ndiU&A>Bj9LP0CHx5+KJD=AyKzoVmsq$4NOq2#25YfARFoGM9U4%#!Isk7xl z2wP?P3W%F)FkDfG_huZ$s-j%&w`97qFepPV2udsFE~HhpwhA_h#GuWG+$2QGqdhC` zqLuTL8DO#5+qIFy7DMKsZO}kWjx)0Q3YBrH(~-sOF3b(<>di(+iE09j*dQ(6veF!FzbM#tT6v2h z=B#|g2n_dsGKShu>(+4S5JUfvz7sl#M+D*kVh=+}bl&+c1n?Vb(%37GQ(OZYg`ap@ z0V?iXPQNdu-(~zRS7f!JmZg^=eO^hwrWIKo=_9^Q;n$L^b9ICE;Ben)=>AEES**_o zQ(Zf#t~uz2%1jUlOanLbfmSK#uI;{4SU?18h`ofdyiXhp4vp9$G5S9^4DVT7%oYCj z4l1ms3Y&*j*hp20@w92fZvxZlPE6d(3g+|+73VumvOF-;bu&cAi{mu9=;*RMTnzXP<|AbRqSqIW|{(jyrit6!PO55fmw>%9F;4 z@pr1DXhJOB7}B((5LL{4G0jGzX%6>tnh@XMd{0QPa$Ej2prljH2{DG}|Jmom-EW7? z2esGVn-8(Urqg2VLes@!{N5-m#@u=0mp&zQydwI1So;|nOe{3*Tw=72nUzQWvy)eyxl7H;1u|D)(di`jubXiT^XX?5}0 z3hsjm^~%4b_fqyY@4csdxBX9`ZOfItJ`21FRmR>?Vch}^p z$!Q+@@Fs@(5V{B0w<(jMHb=r8%dXvZNR@7ti&(1@B z3=rBpAODH}kz{V8x99FR^r8NIcvS!6+~c+R)sXQz+4b*@*Q7Nj2AUh!j2ahJ9|!R# zXek8ST)JhGHO92pf}_UD>CnBFG=!-V!ueVb9r*qeN~&TSDXF$dhp@k(v#jRA!?*)> zaXndSNXF!*)vOq#IXAOm-_ym6gql^_*=MAJvaCk#q$>O}6I6htH7JnME?^l@;cN?)PX^N&UQ5U%F?vL%E6QfN=&R`W zYHa(+<-f-{ylt-s=eE*@agS12IRuMu^~+e{PEtKbt|wn7?lLg%#UF%LrA2lMrZ(CF zHJ?3VcdtkIH*!+Jq8m@$F%Wv7r zov4n2OWFiuFT(t5`2NeQ-Det3X$#f%25yFxMktmt&dQdOSg+} zHsPB=_y!zG#6G<&*^l9ynf%SA-NiSXoL*}ge`BS+e1~K&!#8L6o5at>HX3wG+R? zRWF_A4dVl(h^8IF)8Wz#{8W*ZfMp+j>bdeIO&!oNjRmx=d;@VqA=rW>tV*;?ou4lZsFBLI`n88UD$N^-=o5YyFizc@w{TklGI; zv+*we`9?Ih^B#Wt0K$Q81O{R2iq}k8c|gWvzlg_n8;?=WLHtgS?TG#uBE_h-Gsa`< zgO6>F{up+s>9HovJZj|k!N-1#@))iF17DGqpFBj&tSL!me+-`!&h}ZE(uO45un%f{ z{=5{#gYrvWT?jojCzO8JXEi63evQv1q4b0LISz33^`dD%!4VgB&B|M_@T=Ve%b;?nO@S<{*$pYf9eHg~ zqW$m{8WoF1!8q}!;oBfL3ID(u_A`qbQ7RH7Ks>CK zY93b1hHGJlE8A|Z-l_XbSe20)v9KX4QgX?w3M60rx*)bHBdVxz4(O5h&~b6R@E%+* zV354ljiZQm1n&XUna}gvQ#)#h`3Jso0uq6~1naA(*Z0#;VfFoll`^D0tEg{G?d$s$ zIhRo1!gz4u&k}@d#}`atkIGMR07m>6a5#3iRLOljzCgBnGpm*5O1b;@_<~01KaRou zg6<`jjE%0NN_pB^8>mP#S3tIn=MSNT`G0r$F;^h)-!DY9MAY?W$ozHhD+J>Xj^O18 zXdnz6x=HW}GzzKrE7$rU3nc}0W4iZ2Hoyfm`s(#a0)b0J8vcO%Bd%KoU*g0#?0=5O zq5sHpkAwd;BIdPT4dTcmZTJ(+JjDQnWw3Tca2p8sDPKQX`T&;`D93QP1R zuAE5xh&I2-IUk|M_pAotQdP0oeeul*; z9#R=`I-3S4a03X~H3A(M*B1ot6acWy2MHliGYhC#DY3_nOS_?)PGM2|(DAEXY)w}SzAP^gkKo}qb zBY6gt(n2^ZF^80RRxL}hzZ~{i$jgsUxbM*nVx#pFu(7Y&a0ew* zR_Y@`@>)OMDt#0BDlK-{urooASJ_N)jE8SDc`U#22Y4(UF(fA|Lp&B_<4pYYR?TBc z5`YA62>6G;61;e8_FPXito(ok?Rsy7@H&S(=-EY7=ujLd; zA+@Q|$CQ}VKm>p4HT?2iSPeU#;2LbTuVL}CIQJAX{x#!uk$2}g$oQl2?^+7R5R{cM z9p3WW_=+wfjFjLCa}zB4R&8h{}|H$T+Dm$45`4t`k|q^aj9N&)W|eM=SL z3WD2Y$wN^vh>mIsGxk5@cspU~T$r02 zAbG+mAlq%eDkxd(klB>sDPlm}-xk8nq2cKBjF2_M7$_)Z4sI9{rS~RdK<8i`jfSjq zu%n>ycr+T}t4{gTy1;8z=mBKPz%b@TBT#eI`5rlgLgZcWZ!Gbz4aboJRuE?CQ0Oc~ zjY33lSt&CG6K|}>kL$IjP$ldc9uHB&U~`~O>$`c{IaN$MKIq_f zU?U}X(4oFKNQQ0DWDF7_X_l_6uIBwgo{BhNM(q`&ln~z9J#)CVa_w8Y47!KyYu-O9 z+BXBjK^k82JkDaGY57Wg(6qegG~Sa~u@<=n*8yW`f8#+J> zbmA8)!GiR#$Rvc-Baz+=RLMI+7@~`w5K>|2@INU-hSxd}hHk_e7eR-weq7KnX6-yd zLyAUYM3@ers}bmm{V!hB?-K-m7!;)uHD_%~gn+d- z+ZL6Ng>m5>g}IOrtrOu~DA5QQTo@w=RNPc+F4&>dI9`Gc=D`%wBF>;8@aD=Kd%>md zEV~80v17YFBwEqmcQy3)!^ttyyei4#1)sDJ1&B{*mkz;%C4D51K(bb`IrP%*SRZ5< zCDa4@$@k(5!6#Bh`1>(SfzN%cj?0GwfHvg2gbNvG15}n#IekrFo!ZZdU| z*zt)g-p^Wh=SZFi@x|yk+itzG&{bM4Li_7){XO(*C=0asPFVAR12kR#65a`OemmZ& zIl`Q82Gbo@5MizZ@s^!(`Z((<#jpl%!~sW(O(3DbU@CJ{p-3x*>a)AXAC1L}-v5x5MeKzzD+_)@aB&esQIs z;fY2g+)66P(kuK+4T9N4`8IG4B^rTDqY*kJTSi(-cz0y~cA?eBHO)Oe1xIxjqUXWk z4&akE+`jjqfAmoze~m_|6E`N*Tf0fL=abxsOgW3Uwg*cc^=z!p-ULDE?#PrPdTVcJ zGz@s?TWBh9r&Tl>;VOQlM!^25QFAJPsQpiCa2~jIHvP(y(dTERD{XdRij}{POG3XCK`?K$$8Wx8evS%Z>Mo1 zT16vJb8@~8g@^mv7++8a#KFEPxP!(*fc4TWIwYqYHe6WDHA359snB3_8Onok+f)n& zpL>6*8wR6a9AM@0YB;kl?eO~}i}l5XuqL+7duUA`q5D|%MAPrVK-6}1J?0kOH~6;< z2|Y0RT1TT1&cDw!0tWv)g1~N=(h(a`lYb+j4w-*ui|cE!2uu`47kSjWcik0&4F8#o zt_Q?h0o@hT<&m1xy(^!Yn(#1~IuTZ@?}m)p9Pd8e&18=4;}7QJ-Df_oVUvAMHk&x! zJ#H>bchR?Gkck0$5jry5B)b!dK)~PSFqb2+=PV{!e6qsv-C! z=3mf4n@IC-Kq{u9_XEp zRhx#XVP~pV^h{4P!CegQOaeJ~7pAB{jw7{>#pME-jOdxe9FFi?*X z7RzH*4!vBL;7M8iOz#qvq4FhJn{B3lMnQ9oKM!UgAMjX+nu8)F55 z6}_VHp{C&UfzlKE6Wo3jI4P?)$hdc}_&*p}(&m|0X4wl`5DJLRfFm%I5DapYX}2_x z6Arbp{Tu;rYZVc1oAM^Gw!kZVD3|sXbWG|cfw7fBZ2)6?33di!Y`%3JDH9ihYfLOrfY=k9SnrjM<)$&I_pM)PrcTC2tE!`YY1^(_*#fY{IURD17yaB4Tp6= z%a!+Mpe7q;j$QeL42l5J@Pn7|e zUdl#ZJcci|PKJ*a|GdxR7SzfDZ-)MZkw=KYlQ_0-a9o=fv^o zXMgfa{@WHKsc!{JJe822?C+$w(mcXmlf|$ZaM#iMxpVm$Q92jFqdwsZo4%h28p+XU zgiqfuGy;a~OcVsxb&b-9nzEAzEg4*|?$y>S$@7Ytou~UUJFmPC?8Jf+;~RR7iJdhw zE^I+Y6D$qUGcIV$-f_};=4J1Hj@{y$y8y{?wg7~9dMPDURtM15UvRLne;C2OXkoH1ape)-%l;XOsLU zp&7|)(arMj`8~ln#gqV8_U0t$8SSuv(iFeqrG=qrWDcBD$r;ck#B{9#^&oHwx(vR({&nw zu8Xx$$S#7wbI}OY)EteWY*{{dKLwjr4iV|*29tPOrI?c1o=-9sShBQ5%HGivSfhzc z#sc%q-OQz<*GB1KgaxL*M#Bhux=GOZBpQwI>7A$%=%{n4ksvTJ8iAVA`v5dbn0^Jn zIJ%@eamh9LZ*YjittUYBg{&S0W0^x6_(H=72SCDCj}96ELk6xB1fGgUpr#BoLhnim z4x^dD{zCZ9&<^~d<1EF=n19^eSau&wnK3HvgyP{$0R6Wgi;x-P9r~R!0kp^O|11*# zixlxp{RS1;{r6~Xf(nH<8_UI zF&J+P0`buZ)Eo>CG!pr5{(BMCZt_P+-q;qtM30KT(Uc;byl~>ebfX6v3fM|CU{;4H zTnO($ukarHb|CUmw2Rp1vn)f8F)`CJ)LBq^CNian%TPa!MxO4x9UR52xhWcraG9yE5imyJBSD~1 zGy*k8U@nwasQnbW9(n%$dW3ik9BhHX`FAqIE4a8nVu=B_o+# zS4N`|z8-BED;i;}M@53bu4|$+BGb@RdVtC8&~0Js(b@F3X9svt3;i8GLf7AOH%HRn zdv4eD_jvsN&-6DBi%EYkyGwAzFsSaO%q3pycUMQ@N(B8~q|q=W`6@wUb~GB{lANg# zFeLf+5!{HJXas6X^0&}Fq`%MCAQ13%&?P|EH#2&I(~GjQ(tMsUE(x0cP5$x1qMc`8 z=&MsJapEWW1P;YkR__w_oY(sN*`6PF?&pV`?fFjUcs~5R%h~d&mwt=HzYVO~9+}9e zPWd;?`KNnzXD@a1Z4f~Y(R;DEe!SxGxAfgLEsYoPANl`2G7-dm8KL>h|LDf_l8Ig# zp)37B&p=md9caB_sR*>rjSCA9K1crY`$hFn4@32r5gPGbGgI|p(Z?UX8Ae>}B~ovr z<(HHM{mw+6Lwm;&eUnoko*(R&c@cwq%{7t6G5p&I`Rw;MH|>Z2!XLEo#6wTi*b4uk zm9Z6m$NgFu7WQz0^nEY9YaTz-`8T;ne!3272%a!@ICP1gpKe`KOktpbm{1+R2|^K! z_njp_U1L z7;=A32hpOz)FR%1o`Y@zDz2H&bKpDX*_Hq^^M0&i*3*N}(H zMSa;+AETR7&GpqpH&4HD4s?@iG4VHCf6nX79bA74DrD5K0aa*HF#ilSd;|f_A(Dcz zag>CNjT3@u2-*H*V{B@d4^T&sYJ301KV8qG=g)imX0VXG=B8^RSzQm%@9Z@nTm4V1 zF7ld1{=9$MpW5-yNaa;}KJ}4p7;X38PeLj3;EtyVq%ASFzt z^Cj>cX%EM#I8!_3D$5mVEjAr$0$>se#E!qfCcLv z@WJ$I-})-NFW%2jN*m>AbXcuk=1aCLdi$4C=eC4H25 z9e_jESn^I^MajiqiL+Qc2eT2}`|^mExF?k&rZg8t1f)@}3B7@Oe#3_O$U$6O?UDkm z=qEbof{z7FabE|n)^TI+Fs7h^?EWgX3cti~hWlG!n*q)~LN-hxzVyA@2n|90unABG z>t|AWt@=|bvp*F?PAxlP!*?f9eytBukD)wX==eCeJmo{uCJ9JuhAR|$I*G3G1FUL? zQt43WqOSH+>0VL_u2mDexj{K&^wdr^RmxWDQc|#vb`_azp5nHt7or8Yf($oGD9MP8 zsGyp8%lmHBP0d3d66EOc?R|vqENypt3uGjDgf2W#r>5E$Q^$$q1Yb8Br(-YZMLF4X z=}w4_Dn`QAz3$Wj?voB_&Shx4d+Bng`X)<@10^!;>g*ZRCu=GG`sosI2~`(PPv0E#ACa1AF*cG2ZA-;p09z=23x?BW)BB>(wevpp5PQs z7n^!96Ibim)ok=-YU%{1Isg(}frsvtNLHx(0b(igQWxE#`G zIl2NboFC4qoX%B_+LRxBlTZcj7|T`8IFLiy+io@NFjTaUUQ}c{h}&UTEvl1Mle!Uku|yFdU5g;K3lb7tRpeZeEky%;cC0bSBTDF;cA+)0xT4-7HYm zxVtG4qHx5XS|_Oh*%+)3+-2geb5u6mMl*k%P+2q3sp?YNF#%#lTFsO{j;?Va%|*W! zw8tlltDER;N1NKqhI8?0Cj+<9(Y?6vE2Zrgt7JpDcFRGlhr5y@%_N*vqtbe8U zQmWF9rT=Ir8pj4=H{-1_Y=2H#t>N4C2)TH|h>@pKK}a zu5h1hr+&rSL-J6fH229Xq++_A3T&KP470tXJ!6UFruz}xzn^iRX;W}5gz)ifR#PSJN#TEE$i@m^}=Cf2Hoh^%-V!;Sd+QmZ2Lum`_%BJ)m zj~*dTR;8Cw)lZe#l=#48%6AC;b}_Oc#`3S0V~CJGy1iwEj4O=_m19(=vIKwE+F~!Z zDHl^UYm~Ye!2b4(H8=*@=uVO=F#)Fc4-5h)t{cLf=uXz*WWkAS<$K?r26Q`)-+}b_ z-gZBa4nF4JfN&1_FwJAfg~5pduuQ8bUA$GS9Mz z3W|upqp0ACClC-4u7H3b$SoN0nq`qw?j!HFs%Lg~H@itdfB*OQ{`qKjj-IaW>Tgw7 zS66piv4xc{(Z+Ztz6*;*)8V@apYOQ97f}S91(~={FxyQL#W@$v)|~w%M4rEPb|m=p z0k4U1^Sd(RDv`~17YG1CDasZ)T&lm0X(+W6Wsmw+HQ3wuC`Gvl^`;})fk*vQlwZJN znu*}&-{+BkiZl_sMnp$6&Atcjha zc?HS^Tb$dP_?e2Z_E4iCt%(=2#5<*<(ieN)iM}fZ%R3%{ z>^y~-cp2M8rlYQw_1uMrWyp5u@d>63=v|>*a+b}7@-=7N2C)N~yEE!=!(#Wai)Omd z*;nGR$U_}KC#r=02R6{MLO%*6zadWT%-s-OHJM|OzXdFR9N@xc%yMSOXo6hkZq-z)od@9-!`~B zHyD>cdc=>*(zMsn0lH`75BvL!^|$5Oqo?XnMj`Cc6j1rc_GsGghCOQg;~MSJAwKr# z!q{N;XzzQuslTX8^(Zw(T0wg>GxeJ7(V{*qo5S%V?9r$yD2Qf{+Hh)-ZjVwz4IzCi z2eU_yze6a68`pA>uV9(NlyoJ1K@@1`Ud=3h;~4|9?-GIQF-vz?L@711^uBS()755U z?GR?^yLW^#OUDYclzO(Z&C&;vBG4>tgfK*?9qyZ8mgdle8eu<#S-KUWrGi5%_zK&U zCYf~ZY=^y+ImTek)Mo{2%C%05!gaY$9m{e(eLS}stW(Ee%{mP;8gDj|3+wbX)CjG0 z8xoaaoj#0Inss`>&pMqP!`5joegdr1T_E9WoyJFkg3HpAey-IzC1XKnDK3R|n*I>w zRAKA1FOIDeeDBIv#P|BW8I@pqm8T7+*CEyckD-jzfnhqYf1##wTAF7tuh~eQm*$m_ z+mX)4NZrDlY-tMg{}Us%8X2jL|JN9)r*HW;j8r!|tl&oK(YsiSEl7nH3p7%@SNi|0 zkvbY)a$OFd6-MfGIA-Brc-`S|q;@g;7^w+9pZOT6O?)1Y`@dtPzQvn!3BkS=BXy|H zchDA6?zJ1K7dtZJ9=f+&BlT>_g@0LWf-ZOu+YnEq(*bU{x2D+{V@K4c0VykSF(rrij-_TP{>_Bb#C*YF!bz4 zW6IXEr?1ei#^iB%4k1I(v-wXOdiD-9k!Fc(Mmo(_T`z3aM|j^aKU?)>!&V)SaU_oj z(34QPLJcMFUE)2mADB%D)g7icQAYj_(<{RTLi@vETJl$AZiK-re5W=(IQLc%cHm7%8tcMag<-6^XatD3 z+BB{rOjW8eWf0&=mDLli$(H{u-Htz5C=p-_R=_ zIqNsb@b55y5U1_$RPBXC{?@Ck4sL;#M7|x7FPpH)RC4X4+T?$IPbA3{bfNn;&CaI~w51hJ!Wy zq7e7~>VF<*ao;?O8xkh0a-U|xCWD&Rp1Uqw&`j7Vs20jJ8i}X|6G}N)$B=`S4o6Li z#~Hj}m+J?w5lb6fu57?Y>}vdoBRCqMDBvbCoo`|J6s9p2l95N%%V1acWZ4;o@FU%! z`WiV@?HJ38SZ)F?MghF}e@ZS6T}>#!c3)n2W1A+hWe|YjZ1eL-iz&S(?IJI?#xZ|z zu)-}LM#l$+rJ!NM>44<7X6Z~H+)ZaXIPMr`aJ)aU45n)%DsY-Jp0>Kh?og>tWWWyA z`R8>ew*=0ua5ajFhCkup(-@nHB-XRtG}mf}+ROHrwG9bYc-Ti;yeQMx;NaDHMevOP`&P!`jOV{)=~ijwh*k1?*{cNIeT2N&x|w^_BEl zkwf_b={M@7wktI-=d+2r3b;kdgW6FJt1ri$m(AN{@+M-+NLDHlvL`s;X0BR*QwgG> z%KqRDu^Qhvf-nlXmU15fVI(28pKuSNa%ru1uPYoIFc)Hr`snl#^!k)%IHYi&a1j1t z)r?k~ve}{RQe9_>0Y|KKT#aBjs7(;m7C)|0b2o+vI+XKN7%8^{Q-<3eS>wbVcU#<3 zo1Y>xnJNyU8|E+hf(k~Ag4O+I27 zs#MN7SVB44ogJ`^MQnNxK;^zRr2oFsrkWEzy+1(2vFXmw%%+8Qf^&2rp9*}R_1>@=t3;-mXx(%{lfTtD#!nNQ9p|FHnF zf^#uO2$M!I>;8C*`<(a^hCqo2*ol6VIUDn|Oz;#utZa^`6wE+;?r6S!$i9dyUAjEBfS z%{D{M1h}hv2D+=0NR4I0a%Q^ZvOYa!R|z&-n$>u1#&Ajgws-M2)8PX_bu2#iyJow zq_oD3LUQ4Mrf3fo?K9qHE2QyG=0i&S0p^)&i`RIk4RA_ovhiN2mS()$V5<#4_EyD% ze1F!?MFEqBV05k7@4B)pNOm|oT60!w27HS14a0z^9eA`M5Uxz<3}C;TP)tL$`q=MH zA1>d1{}rL6g8e`66|sLN`7D*);C)_ygZHl>w=&K6y+?I+4@Q$2W_&cV(^&j9k{D)u zFW!Yre4yL!z zM8W4Hvf#;j(QHx=hSr*OdhX}aS!qVST=k-E)XV2^3fLM?WyAoSLpH9FWYUvv8Is=L(x_b6{*$Rp&{hl3G z4*;ee2^;``?6ZRGqJak4K_KfMgmC~Bk;efJW`?Sb1J=4zxJVcWl(PM`aRFI_zN4QI zV*o;OE13Ey$MG&~(MJ1}<43+mHJ@$exmBdvBvM^`&?xPvdMeGy?lU-;4GUjZwrgXn z^uD-eMtb^)!2!rl5E(A^$?ze{kUeHnZi+TWSm&k~ISw(<2MEmtzoWH~lECpnBl?nt zN`d2pFuYK}O1#2>JZNdO=IEG?G$MF`M+E!8Jf9JPt}vu-C&b7Ao{YW(*1d8Z#tJ)S z#8AjeQ&D2n=zZQptMQ%z28*1ios|0=8Vvy-K}HBPDJez>2hiip)Q7bD*~5A#jTI>F zdI1d^T2B+jPuwhNPJXiSPlGWo-fye% zs{RIJ#)3)D4)Qz-0-7%y1n6J<0sp*T3(Q+{YwLN(i@YE8$-6%CHXv#Ab%??B9Y#zd zgI*s-?56JO+J+HBbonoL7%_x~5$8{_G5BA^)rcPSWxk>wbO##LJH3$HTkAyO(W%Hd zV#e=!KU)7jV;r%+y|)*A8VR@;m2&^UnRn3X7T)wLsHH-KjUnzONEc#0Am=EYz>b&* z1n*guA9?E^nihz{DShdU$=HY@d5AEjN7C;YQ+fpbVnjw>%Dbteu7pCkit?8N`sz3; zywkGq0k*XGbo5?G!>92s{SAi*qa)1*Dky4Ln^BM_69b8DJ(+EOp~7Klf_aeano>Vu zf!sJ*mQ)N`BRl%`ah5l~3vz^G2?*l=c&sg2vz>jhMkhZUcjVCI;WYO#G4pI&98QvPs=I^T=Seby`A(BAUyUWD{TALSG%G zuYUUV0zv^VThIMu%_%Ww)D<;lb12%`PT34^W^cTK9R*fowF!8=QN)Cv^R%WH_&|HF zoQ8L_LBO*UaT`e^|E;WzJLww5{(}h$weC7}2F^QeiD$+Si{B*F_E}{u2M>OT+9-P| z^wFBQ3$cUvzw0)R9o)mYhehJu&vBd0JC#U!Fh+@D3;?52?gmuQisO|j^zRJ3M{pc{ ziAP$bD6!-5o0y3=wFNuK*`#hge1W2w>w<+iepg*<-__nsgHsbR=?TE{{*li z(_3uHEw;EzHZvY@Rh*T;bZPoxWSzKnqNtz<4O}5SJLx2iXVV)e-a^rVZd=?1sAMfT zP(hFna&bl_da|mD3}Y2fVngZ)qeP}$N+pWx>K=qbF^rvP8U)5Gm26>&lp>nzh>sl3 zq~H4hqj`Txxmb2&vc?~bFR)b|9aEQ>n__ZD<6+|3EWMy8cJ>PTL!Mc0K@ni56;$^R z83mnKx}ekgp{k5cOcM~pozZ+qcuMQXL?fX(w|Y_uqx_t1)1z=(DKnZsz(}@r3Y!V% zJWW!ZkD-#3P3ve+9h_6kRUXsY%*eDV>zEfd<=2w6868MEBU6>5DMI(TlG;OTpwy1G zMjK+4o=Kfo%x##W97|Pxx4{h=30J!?J=wA*_&D!`{SljZNt*Hs5C(u#0Pr~t-)r$m z*$ej6l|I{$xLfM7+W@!~CWwx1D;XdtcLd=ZO@TH*YxL_)HV4TFUd6)bNQAbK^04)s z$vu;vilJj(!E%r>Nxe2I8D zWc7SX*hEu`f^&_jH6R)80=)1Se8MP6K53W-M4rpBwmJVk%5#*KCyX*HX3MOQ8^}Bi zGSRvONfvtAG)))!2tT2>QS%o_xtob_M*v_AF3=`uy~MRZg|(N(lvOPy@iCJ${ZqW6 zoTG%v#YCJ@ZkkUQ6$tAnD&xge7`~QrAAr}wmN*Pen|m)gFtBh&%C+K3bJe&LaIK3v ziidx?sEgvIcc<>Oi%+pW>}fGgtW3q4*uHd;JWWvYmypDk_^YO&c3i=JvGwqHjPGOD z3Op8NSEAjY;s)l6v0mB7Kl+dCmrQ^FI5x+k-PnHl@+ZQv<+oJBet8*b*nT;8AgKK^ z12HSY0Lg#eTU(FNv0}y$4cLVM+>Pc{~kQtK$nuZx;v9lTT{GX-Gm4a~&*TY?>I##G+_ zKV`;D5v1I32MIIgt$o*K#*EXg0~%bC83U>Eu?`SFrdbF2$kMP5#+SAZro69fGTn?B z03}D>kzA<+ed@; zwU{yscY!3EGPiW~F=f&~LYOi+lpv%jGrbm9p$pte!j$xE(9n;eCmQ?n=LjLhb6)QtfQ8KwGs7y^L3?`aLf z>F0jQ?JTgJ4EM_n$_;i)JE31|WaX%3Vl>f5k9D44QVRuemgg>_0XWj67&^>x74m9nZ!ejhB zFh^91XH3y{R(bIh+b((d5w^?ER1WxCqEXwSAP=*}KJqvdsEU7Pc3;f47~cwuq^y)di9_Y3KJHeVjV z_o>QdM26YP3v-h|AJhv_7)`TQ%4RsC-BZvoNKlgA7CgzamQLl3A`=r%_mcbk9L{dh zvtdvpTjjJ22MsS9=Ip)CwfQYQ46Qb0@HY;%_tc^R@;Q%1^WeyFCuR2GXp@uV$4R(s zhXGW}0bk1$hLAq9!3%cDuVX)V7J0!7FXc6dvXzy+c6fH;H#riI*ro2f>{7RFvUv@j z3FnR+7K!VhQB-!p!*Ixr$tG+HCr<=K0mHuz>9zc=BX$E2A0=vOlfCsrCO5WW(j(Yt zRQ7aLZon4sh6#gd*LF6TV%eoomja5SGFmzk{~8~isylrgVQ_~62%-$QOjYiV@!Z6) z)Zz*elam^DH|7MPzQCc} zLr_clgaNZbG*T>070^`j<%lrM(cw&hgh6mE31h4ls)4;&9PCq~LWIRSlvqdHC5IWY zfS8r@GSE&k3J{HiTYh3anGG=*DU*DXuoHk>^bPHaPntMl$nA)`Ap5wO;Pv-pAwXTv zHdaQ=Vd6uktf!cTcBN4aIaKPp$wmOBtOh=mXfr79mvC#qL=w+L@FKqcI78~$-0afD|_;8h1km2>)(~|YXdNzji_1Q(cjsl%dHfru5hmME`cj!Kyx3)k>!w^bVo89GO2z3V~(Q7?V z3370DIF2WL$ckO7aMp*2RV7K!v#_KmMxiF`)A3Mph*GRQaozYEAt~om;n7KjM~AD% zLS0i_LX_z_*PE*hZlcz|B#~Kxjpj<^PJ?1%Gcw)h0XpFnLvv!Q123a!!f`Y)8&6`< zf*a^)k5dRj-0h?5sQnB*M{P)Q<3n%^6MT*I0Sewx`1xX`+{t*to|(Kzz{fq75^xOS zffAuGG_iC>>N;a%ICG;lIi-|c!iw9!nL5EE%o7xGtsPz|J5&<12IdK=D4MR2rhiT7 zgubX{NHG@`It|l6ttg8Ka{Dx*31J`-0$U*onL7_sKlK*e%`nnoSdEy+s949 zLLfvZ195O-8KBnFxF_M7eWoY%S-85o;B+EKX72N3U!kXBSrU&P$D^VYWC^wm#5I-V z2BXll4_!G0pU4HD7^2{ZI-%e$Gjg^obz|J;QAF+hVL$)VKe68~3CCe}Jph;OxAxyr zI|=)3FzD;{TU9_?NWz#+e)d~44#uTmG>Nas{bWI6U-#3u9SrH*M44WT8D|1L-367b zzIX?lap!&vV#e*p@`nI3Zfq$tZZd^QlG275=kI|!qCSRqx*4}ZWixISeuNnpMdi@U zxVa!-Q8TWwnWdp|U9gyaPun(LlNoo;#NQu;GfJ3oFXQ|F_szJ3ypZaVK&8KWN4+zMTk8BZ7Wr-1B%M%(&V> zk$V&+DBFxP3vLXnNo}N=adn7)6*J?$fxwc!knBa_F)(AjpQgtR|7g^foAVMzp9H zVXdS*{6|<9ZV{ph|42;>Dn_E&!dV9^DO2DwOL5l19{zCoz!!H6JC5~J?Z}wTHi|o< zMFZGB3bW}XossIwTd`GgKq1rg$ivTarz=aBiP?O#u#w>6(zY$x5pfG4`j08m71l+=-V`7z5R5U#XzS^_t^@zY3!h;@E8h7AP4-QDBA&owdzb$%ax`omlh6OTZhU{j@l_zG{naHIy(c z-Xo0p&o*f1dm8JJFy9_rUer|#9F~E$yIEcq!+Djzh2&)*(Fraut{N;a6Dcjr%Wag_ zX&KU%@)Pnh6={ULj9qES3&n+snfGwMBL2Kcx%tezuesUa&-avLIbw4I@((FCd2u1d z=8qz-y|37eEiE>=h~9(Pj0+T-(Rhw#UXM)56r0|Ev)J^mqKi!!id(MOB#5tWqOVwN zwyyYpPi#sc99;{?l5mV~#=_BkgQp$@?FXq_;j{F3oRFC=n#`O>45~oKAACjVSW7N> zMh8UagO&y~zPwdH;~GRqU9KU8MQ0@8EI@QZ#jEIx`9yyM$2(LqTK|I;3?UYvzjm+y zjeuV(e=iA8!+cQl5umfw;goP%hj4S>O=($xj#0^+mZq&KKOsQfk;bO{fm+AYOPA$v zU*Zn&B#l1THHz4v*A*i;6OF#+P09sA6RR)Vr|l-ZeGPKNgikhK2G@E&^x&-Yu9o8DB2jV%PZ+UwSeNPSuN~|7cyITl6*Uv`_WDH{e?zI#~l>! z>qy)-v5{|YLkT+gB;d{rWU@hqg$O~n_MuxS!q(_}qEX=*Cs~MUz)L3jo>eHhPR8bZ zjXR+{?u0NYg#K2Gubsj1wXKlDZznj1@4_^JqBSzlArq{T(et5&eq-dEOC{KNHRqB! zqlp9iG2Rcm8|!=H&U=R8_F>%0%6SKN3+Ric&5Fjed%a1>4OVp@FGz1gLy*%R%n$98 z&+QYRkYBj!cle?KYqD?GgWz?f4X2)sIxI{sQCxW5Chp(hY<7!<(wk{RX6dsX z)bi42h=P^PS81WJ`J|l|NOy>_)7GZck^mi?*PwQU$y6aSXP5viC9%RA&uGOwPaDxH z4Y=nbsrw6)sl%gxlX!y?7;@wpd)c(7Uo~z{O(nVKw@k$!LO(f#M6n@ z_?4s3u2i-&RKuacyif&}e{W{s^kl5S>CLnyN_Y%Gj=MXAS)nxC;q|qa+^NQYqrsFB z`eln!VoT>8`1$wH-)+PEtes>8_94qF1jll2DdU-CFp1X2x)PSb*OdPo$?HfWL-I;X zE~}B1=#|&G!dX3y(z3jErnFAW(>GIoLSElM8X>Qfzs5_K<*q)2YEl!id_|J`I%VY3 z*X@or*m0OL6Jl$}^aLDkA;h*BRSg5k%Huo3y|Ch^?Ba}fE$sg+N~)lM|yky#j@8EUO6GXCR9L|x>C{$_?MF2Rw9QQ zlmm5#B)u!X3L(7>S$bn3Xv+}RDx}u|gD=uE4$l@+s4I)Gc=j;KaZ9{#dJ`LR%t_MQ z3t>(uEzBfdoCe?Di|>O`cbg=pj05y`(r)yz1nmDo9~H7=mCTO=_Q^ z=Sx;^!ISv2`SgI|5M*Em+O25VdGshn4rj}6TZqNoO){g@A09nlLV6(SlS-r_t|H;! z&&h3GB2B%De571#8Dv^bVZ-rfZOX-Xic!i$R;UQAJ#CWNP<2rrq(N4SJa|L>DCB|_ zl?ry~Li{pP-~(*Ue!i8I_ZIoRT$ajTu^PZyKEB6JSgTrrjC%Dfsi>7as#w*-6pl(9 z0nr=Ju;!Y8ae=Fm6`0X{6v6#r}Wu*MvJ)rTCOBbzRxkJQ#6WkLABczwcKv0&`qEqSJLg~e1 zymvoDvV%R0#Yc$taasOCAEtfqHvB{04{}~6Z;{KA@db*h$9Q95tNPUt)G#dPe65U| z?L&)XSIzqZ^^Zm{?&}q8t+YkA3_pA@;8cA9!(kgmL;KS`546=s5lTVGXBsp{p_eV_1#BxA4y^ zDb-LTUD2CyH^FY*Ir}(QSFwZNDcBi;Y0B){S?duys9+s6ne`MslppERosk$V_&=5T$NK z(Giqc1yN+@!!mlFo`F&{)>vgukIgw>30pn5EW434h2+-!HZ+|c?+V1@{d$UzuJoU;j+|0g=~o( zIn6lH7K!EZg4Axs9wl|@vLl`&~ZtENH7=w$f4 zxX~YCXHUEKxIH=<`_P}UB~3{*nNi``ckMH5Yd1OtWwV@aDB7KHwFmEo1t@_Mte<4+ zrBX4mTA(_8C_0p5>Lox_S&te$h7X?-c1Xqm3}6wrq8zkOUT-o*qcoNr%9DCX+&L|I z8Z`=}Ypl~)PA|QLngK0Zt6*%;GxTzi7R$?Y}oAK41RT$frSg^#aJ13}xb)h?*mXQraLr_CcyG*)@8oKTWD8}Sj9S$gb$4)|e)Nc7$pm^_AAC_i#8xrH#Ub=WGFeF3Y~WOuo6-Eb zfcDq=JDH3}n!P2%44lj54>eO0(W}}UurD`;h6S!19 znaXE?_-3t$?dUOe)9UXUN2BOTq$r|U6!B5mpg~y}OPT8+rVqVEOxE6T5s8Smi2b!U z%t9)a=NTye_s>&*q7BQw5Nyoh`8i>?0aaRi?jloEYfnEI>$Vw_T;R)XiJm# zET+U*?(-&z({;b1B;4oKLJ|xfup_1AEwa6^n}S=`dc4M{coskO_ITAqNB1F-2Rn$t zs`CNSiBZYb?{P!gU9i50@2Q8YLu}Q)AX6(%cHIx_bG7#EXnO6mMAs!vdUqx|R=lMV z5Yi=$fUacoukgPDxJ>qb?bG-9Q}Bd3Y3#;8-=J@z$eMC!h|x+k0Z1b>PyJf>3+(yXJQX5(0y9aHHD(P2%mcC&c=Pd8((g3oN=E+#+F7C~ zg}7yMJ{+U`tj=qO!8tItp|-^|d^q;Y?gQf}3NLnHUQhWM#@L{*aeAC9V>^3J)F$^6 z*fS>K$&c7~y(!;HdApF|0U8k<{;$QfFBTUEaRFgU`Azz??{DyA(zC=HS;7dY4aky% zmmbqU#V2It7dfs_R<_7W>R#n%vH&V0_Jb^d={VSee((5%c6fYD1zIUy+p54rQEw@0 zrEke0qOEYO;&8w5*?chcmcCF&kDgEu~y z^#P)=7b+@p`uVluOWr!%;~d)S-gsPiaHR!nx#DOs5IJ;h;vAXr+PBTuIx1 zvzXMiz2W|ZP9c5q5`I?0G@BK`^_oM3waeXgcR}t6u z&^4I|NOL<~Hx<`6)3qe7Z=&m(d_B-z3%}&9H5^`jsrOn$y6z0uY+5a$YU6Nz&;q$UPg;$euc@Y)5C-G7I4)s(1Ov=3xxu}H>4Bi2tdh^bZX3UHkq67Yo zpGAAaC9MwRwznKz6cp^#5ec-z`K-Ym!we1Yw1E^I?}r5rPi*JXh1J_!(}D^>(=^x0 z;-oqz=w-PT7E!Mn3ZhG=!|A{C1pTGu*0j-97GgfYWnPL z%MK}~Z0X&-<65G4-@naxO}D5YqoJ+J;ACr2Hyg6W6vDa)Xf=ZI0OWzW4)MUf^G%Wn z-}%GIN6Co8cKUJ+B2JszlcVp6>v}t8&Pp99Gl#K}H_}Wj3;bOXXW~j3sVNpNngA8$81G46chb?HLpo z^_ipR{KIVB-8Fd~)!b(ssn+YEVf7TWgV0Ty$>RA**G-4i&v<_qOY-|6usXzxRejzd zm~L7O#6vmL{*We<;g3p>ai~pFS?ppl9qlml{w=Q`qw*wNQQ?PBp=#8RPzzm^u4Nlw z5GNsZsuj7TPmwQUHWPpm=OJFVIz0=i2=JdNS49^-3X%m)QPsap8+j(vr%VeE7;GFN z%5-7jKVsvfRHhlwhcHC2aqi2J5Q$DE^j5AU-d+ahM}WUjKW_Y}bw4zlP|TV|q`FB; zCO`tI8>-h|E2>vJUBKoQ1OY6jQ@>?aT6%^mYB}0T(*jGOW3>L4Eb#N_jaC7;CF;D! z4AGlWc7D*`Jq=HM^*yEE=uN*$q(7%W=* zUm7<~%coUP2Jb7=yS{gGkWhc;v^bEGdUEtDmRMv?i<4bR7lqC`K9gFmu{dufjB3;! z>*Y38CViDq4WTi#C!CQPcFjwUk`W7ngxHxL=M8i=rF*b#Q~S)luoB_dnMWBq!#tZd zSh^i#mLzpThpWEch}-RH_=?s4i0gOhI!j!?fyg9vEUwwUbjM=y)>q!ien+9*KOxmh zJBv>P+#mG0&w@BnvVlUx*B%jL3sRoCl=s<7l@$vY(YMrL)LIr2w}K6rb*r8`u59Gv z?YQ(&2ahd?g69#|D~~Zz9~myjP94HbJESh$N7t5w;N&W5rp<$R1=u%Yd`@+DzLX4> zJKJnJfF@sWPE^we!(^pBl^x3=JS8Wj&z+PaBT06xD1dH+o_rH&)u}S`^lm(cXM-MR z(c{VdSjwX+Dj(68o|-dG&v53@Wult#x6X62P^~zF%2jWIyENbT?>6|3r3305ZU;;2 z1^)u$hYGTFn5+-yhcit~1`xqGK`?)QP=Xa@eG4dLvIp3n^m4nCW#E47-qjV1mM0ex zQ`HB%pD$T_9Q@AcuQ62Zr$3VNsG&~eFgMMDlbtM4$O02$lh+Zlpk{&XN$9`O4tE?z zH#UpfM1Sc%@CrtTq=(}8%`%7~~FF+YI zvn-c)mH@hm+@3$FL_S7oC5;xT{SC}-OTXZ>$~8(gwO;@kNdp@RgzD|x&g0Y$IB#Ya zDjNsD_zUR&wPcNutaNueODn9mi|_lRA&Lz|VLyaT7)0_biibKVEb!p9N3` zsKD~9-)WRbVMbaS{_1DjA-UPX^Ixg+Fb63+ZU-#V8%C^Oa|JHt-oL|-KW{RDyB zLRg*dI)aKN6Maz~Y!K^8iWGFLJipW$q!LHf$hbxO9tE;U(}v+oQL9*Qq0C6>zL#H! zD#^;*Gx#>lX=jm9uBCFcRi0m z3QdwlV#oLJ^lJF~l$5s)A5tz6R%aD@lF|HZp*cM%=ln2f+B`561-gLj+*5I_%L}E* zLyF97ytSja?vZ$Fj6g60D@}VueC(!=@1<*Pe~hBZ#0=s>&T~Ud=@>IxM!!icFqt<@ zCZ?FFwH9|_$UntcqFE@deP9nvpGNFhM>zBuJwTh>6R5Gj!cG|6S7NH&V`Gi8{a2xJ zyh1!fPlF`QxXUdFO!A~R$sz1tLRnhYpv3<`&Rat|ef`U%YcQiCX(eC=TC%16Fx zUk&$@uOkTJ5l#K9lbc$-2b(zukuTXQ!y+a0g}J#A2y9T0#a1!>;rvWXKpo zZZeLd(rv=MLKcVHeAuicWSAHZJ0WXQb~2gCa3GMou`XqBeq&p460^mEoSnsN-G4wa zaa3eRYds4gXrq7vA!w_;rJIekd?Fs5h?UJe(gjUE$8eHzZ^w6K%32uM=_hL+Ab-eO z3xxU!S^I&Cq{&)iP+|XoU~qkUMcX5?T)&N%UV+Q?7W1TnL_*-sq9uX|+*&F-W#g5& zXp*N+EOB#%(7c5F+*3%Vn7*I9?W1?0n6M(-aWZ;2=@x;#VP7I>@FgsK!w z-nRW7AWOEbNQv$o7LqP+Ly7~^MC)n1@|G5ufJ2q3C>i>*ZGQ)qx4lV1-o^*W+bC}a8(u;NWy#yO=o__8jpVHd zTCJ44O%`Nw4*>e^Hl^h)QIHezc0W->gkPGoYmD@bEj&$5>{?3rp7IJ`7jIE-!iVm@ z{34|A-BF(KO?fRq_-;Y|5We^K=)%Y4(}XXYg-_ULg5j@EA$|pwzi@9!pP@uT{>I;Z z-SSrj`Gu0d0rW1k{9S-`U7q}9zFJEDmUjw}zi4lj=H;PE!Q`(ONU^x-mioF)ND28H zVaQ+cPXTEb=xMz2w>>b)L~oKqs&zAEY1x4i2kq}Bc)e}<+?8hQVj#`YhEjbH>Y zLgCEV|2Y>SPl;DKgqwysK$vY85GG?@Ks|+*SPh^yJXunbY8aob?-Ih=h#;PKAftxe zDLNNSO;pZ#0sGoupEb*@vqaL8Ssx@%{Ng1^5!4rRDBnNTQ;8y@v!vw7zh&%4M5ZhD zx@yx4xfrGr>vv^M&f%+M&1Rgzii$<%3>+J1$@~mo*sx5~m9*7M3`f?1+B8t}%%C*r zd$lxI0@92?8ha71Za`T~h=C&ek?Q`GR>oC$Ol9uO_Zi*b25urv>n3`j=DsX#guL8s z@PbV!7eb#1WnN!hYLS2)25p)NH8C*BE#4%D)MFbNQj@r~gLp$L=FU?AOg7hsq2iub z{pV*4d&(DIdD8>%)jwCq*MGJJ;%m|02ELa5>}~7rQ%H@)8rBH_p&IL4}JSuWKu zw*L-RZ}$+!GT#EE*Lbr+VOM6Ouz3uwc6$TBbz)s0xS|7-Z1pBNq`tC&!PT6b`ntj8 zga%}ARY5U5ullX`GW1o#v;aIs;D{HYukM1C zg8q-OW!d2j(f?IUS#^T?V>~Sd$2_lk{W~tpu1O3TJp|O!7xxH1FEYzR&nZRfj@y}) zxziy>oIyveu-@_O_Ciq~3Q?Z9mcidLRADPNH8!0@$Z2`}I5l*8?(KH}$g`M}*JYy| z1Kl+yB87GXCz^@oPtjdh6?IAPL}x%{!4Kr@tTsaha#ZsQnrV@`Vh=ovq~+UzmsTWQ zK-Rp#XlW)Ittk>5I~H!D{r$0`q&-iDPG{=s>qvk}W^HcOcYX%5Pw@I+|2cI{d(3Yl z-Zn}Ov&BSUlf7FCPDz6;ui?Zxd>HE!e@@fJaIi}K3Z&ZI+u{Fc{2wXRu0o++R854! zO*_o}PF_c}2Ch{T z+Gz8eZBZe%({#hFdV$f1+qgk3LzEDRt5_p$0&e~0H^tNgrnNCV!^HgZc&^%D`3X2u zRm{f`uVAp9k|Jw9iR0|(cKa!5K;bE=|8_8m?kzLdSxody>bHsRYfj_){u@t8gMPsC zdZXz>sdgPynaH8aU2fH?oU&6?**oPQwOUkp2ypuoSKspF)DTtXPy?_Prlr@VEZig< z*JI4|?}Pwo{!^~6R@p7>xUww?8ELX&*|HXd^orwt9o>7&JiWD6=2y_I6TiG=9=6IT zbF3)y@|XT;nVX`_JpE#H`dWM>VGHq*xdrKWN^xXN$Kgm&DGtZ-NO5yxvhh}mTgdKo zDehwis1)~A%o2XSl2IyS%jkA=UKe()Mc^~7(3L54Fq)n5vMV>{1X9yYguE;gm+kl# zLHVwP1wT~6`T;h{b=&bVhaQrC z8v@K{C(SB^15?VQu^|*h=JTxVGHSp87=vrI&f?1@tMA8WsvTKk%To+s>4+MnjeP;p z8W9{-kB>RnNA19gGHxV!Oyew*K0iV039G1^R$MGu-Ia1GX)B6+&uRzVp1>{qku+H~ zNlK-hyP*eDB34sOkh+5s(`!>QN+@-u_f7C#Cejugu6W`Ag-=@X99r6ya6-9QqOQPa zPz<989sSjbU=q2me?X2%c&LC9rsKs-?L|8-D+Et{RC~g)K(3_ITGBLifcAnmD^};u zx=@1oU%WJft;9)f3Q~e$K+}yK@krMl+g1=LS8`AcWNF5?bZcpr7ZjJdFn;x{F~_2N@`eh$n5VC{X968|6!v zD7bs$57T{Fqq`S0bhP1xcA`?(>=aL z)OQgc=yV^~=+2--htya>cX>{T`Yu2+FJ1b^OLv*}hUpRo&oCxBgNgd6n={L)Y8YsN z+;Zl&rAKgbHW7_g5f!-vI*jDA7=*Kv&U_1uW%O1rzQ$bKGalAQNA)N)AmH5CEZ1j*Bg&3p~ckSl`DYlJIIo>DG|_MJ4$QDjd-N9Gm0y>lGPRJ zw~x7N8Oetvma^MLpX+7k66E7$C$${CVRjM)_ip@Qj!xJtnsGKB=yVq>6Y$BVM2FNz z1l?1ULo_3`oR=E$j-w{!tdE>TB5z-HGr?}RZoZ#dtI!$;K*z>i2 zCKvrpGBmVEe&YPj)JG$+=K!{KzDF)BX=N^Qw?#8?2h&!czoGUQ74zByi{rS-Zx&`i zfAr>-_i;)c-6HxNMgThb+SQFt@`)I&lN`-F_Cf7EOAXY9iR#YG4$9qYKFZ zWv;)zUT|*15^O?IW$o}8u>UY|2Kx_&O>rzV`V$W9Mf}~IPSnXql651SH^Tml((FH9 z_W+pnCq7$@&m7K}7>AS0$eYHQ(erL_xE3v#Vm8fCtK;60sE(zb>qYwKh>SBl#t~Oc z@%a(7C;AhcnA8&mOxnCr%6%EIaKxP+E=x~=^wTxpjR`XimmVz~F2&aSfUgIw!S&wZ zQoX(4G5#OW_)i=xM;{c3gq&a_5}*O75eDyriDubPiKN)gu)H>+jczTJv2Kn3Wy|q} z^aS+U?nRGQNZmJPUTWTqm>H}?1skvwQ`;q5k)7JC$2QXfR~Ld@51f^oh9BdR$+ zUBZ3B$8&*gk~J6t>K{mh4G54w``SK0S|r(9h_P#N6{v$L&tN#{YB?9r9WFj!feueW z$5@?~c|=ob=^~0Q5NwE$MTc?(+s~vbCqQxP&D3v)Nx2k~i+B^PrNf202mZ{U=<%t| zx#te&0KFc9_8_AD7tyW;+H&HcnCNF;qo1hp(>B;*YMO>G8~behf#J8?Vya6s*TQhY zj-@zh6V%mMsxd~|+09_v&?qC;%OxyZ^_L$Xeqp{2ZZ!mIpe7M08(5%)8;+nyV`$+O zNKe3XL`UF8R&rw|&@ZBZv+>Ib#4A=C5$fQ}B_-6xO_n2mAEq`MvM{643%B4IfQD9w ztvzTv`uMLAi-?Cv)OOAI8=P(2%W$0ZTFM)CZiL4I6lEb!-LebMzlHr%lATnDOW0%c zkSOl}Z#O6PTFVXUO1fnu48CTqzy=sIx#>tkrvLbH3`cdsAJ*>%be^8cr&dV;8`un$bJ}G|iL0RK$RLd^H;VBzUjZdm3T7 zYt7gyCL9H?= z-2{pl$mM?X`xu~r|}Mjo!TFOk!NqP zg+~)HVMsCV*XjrM-LvF2PZ!AA2aEj3>(Ub~;fjllJ-F`h5I<8AVZ`1a4dUPmm^ zSEJE)qZ4sjsvIK!N?i`Tu8mHVBh9}UMLIL#-u3XFoULq5e?WGns_`Xgv>jsQz8VeV zSaznUvN9qf@4$ovJC=GBo6#icw?HMl^DOnWChP>}6id9Zz1Xt;RO<}5ms2BTWh&i) zL(vf&4d1LG9F;_=24`B7ER+~`62^LcbtL*rOZk0VjKIf&=MRypo3qS5cqxKBL-qk`%G@RLEm znod8{pkKQb{g+|W`mrQ5{e^9H`t3FPYi=g`ec|3hr}!9bMQB9Czxotn9(9qlk;Azs z$nHssq%V)j%6@bq5d$A`pJ;laMEkxaRf4{+;q!f#{{2$%y^26t-|v%A0`jk^f5Mhx z7JPreV8LMen)WVv4qwA#^=JxbV zrKtt5wwcKv>^Io-I8mlX>cf;RqecoxghlO*m^t-U4wg&Evw#K1v2J1u&o-{ZGK)Ux zv`Ik~dFVk1)Lw^kOfrtZYzlUDn#w!6b;gf4e_%Fprj$q~4^55+tEa&CAv>!gctgsi z&4*I34e$f!3TYcBDVKKTkX>y?B8}ZSU51HjpS&TO6uT=tTP`fFjJ2Nf}@M@wL7O!nPgXuDD4}q0GynF<4}B(W4l}d1Mlf8WH5R0;9aknrZ$5NP<$=) z-#*bk6x>yeu0>4pe?FX`Vfk)^-at#x7OImY8xt;vVWIy49I=BoibYTs`k}nWP-keU z25^>G&sH&~kAcQ4_S2Zh5S|C+R!kZb$45-)iDuID6Gpg}r^m8>uqh|Y)|v58`%uI2 zn>0oI!Tif5pPM}ifzMy&=X6d*L)5Ge#t(pQef;EGu-$Xz@VG^+1_kapMIj9Ypc$q5g|9GGJ;8z;Eth)_%-M>y_*U_Qg{%|t9A^!bg z$1pyX43$%Avpb4^ol3-46=g zWQM|a8HbfA=d2~W7|U3vpR!$BdSX*Jk3d!9T@P*L@?aN6F47)4DAAdU6YEp3abjw$ zvu~vH&iDg47n@77Fp4j_uOy?L`bsJ~AG9w9s=HTE@xx=xDE~bu{{v5H0!o{7Qw2UM zrviE1{VTACb3=ryZw)w;fExIXCrRa}C`EQ<3*-{M|0MGL!{a|KCL3?0xS5*Ae{ReI zzF(+${6CH<;QOz{oK)P(m}1R7%5IF}1@=kj)T|_~= z8$n+U#V&NvSHtlm`n7^bppfw)b!;~0h-ez$;tSfO&*kGymY2nXT08tt?>JSojPZcO zRda9-ulFWd#oj}yO0oL!5z^i1^)cM4flwtfDNqm;LLK`etqE^)FUDkNQ%vYMYXT~S z5_M{4a>=ZNjgy6OS@uM*Liq*cFhIlSHS%_F@fT)u@jt+i&`xF)pWZuwg`D*;Tr87D zbF)%?;HXZvIX|z#-EPf87;ihAPqfS1F`==|nHo8zMG%Pv?E6+^;m7W1$)7^s3 zJw)du789#)4&i>QxsiDpSs;T;lenN)@gp+mFEaRLl(%#!f>r5`T_rK3D#{)LM&Lj4 ztP(h&{)CMG5Yk|e=xMs5RA)N8yy zLG*?_ogIq7nFiYp&OEY8ji4R7Qg%`4d!~1~<2D6E&ss&cOJa2Q%0e3p;nE zD!)+s4MM<6JOkT;I1Om*41feT4Vh~ZU^~d$lw&E% zd9ZfeKsv$bd;n6h-ww5(ZtURz;S%-DMT}Hu%WULK8%zpE#97LW#*=Z#NgL9y`ihzE zGo-)!@c;=6Xo!y9A$`)m^Vq}-jENxi?;!PmLQTbC%e)ZfCR!N}f4fPVUx00>G4$bD zV_zE&jazpOXEO58&8Y20n3VnHoC)nr=~d&Q5!A=~kt(5r<5b`qc^7M94VK(<9juBQ z)p+zlR8s{%*ypVoaK7vBp)7;rdBTSpo*&*~;CTr18iRXZJYOA99-cF?Emu%HpMLCm z@ccGHUxDWq2A<8pa}f@9&7=8$;4e}#ePcl(!tXEOGvvkTsS%Lw44kLG`8v|mroJD~kKgGkx>XeD;z z3fg|R54)cBJ98#j`&H@c*M2f+`YXQ;Ln}fI?Kcbg2XDWfx0G(buIO6Pem(G$KbG3> zdk9u}?bl;d$oA_6An5w&*9XdIKRtW2PMSVyyTq3>?^P_C} z-b;WX`Ch%jkniD?H922>_48oRC|kaN!p>Yl<@>%N%*boBHy%Q$FZ6Sazka^?9zXdW z0h<2uP3P{FZ`?q>uOKWbxO|^(Ra(A>e#P=V5LU-|Mqa(zho9sot5%Xb*E z3TbbY-F{K;YVB9D&S<|roOeL`&4XZ--F}Te4$*$E4Xy}F1MS7H5mQ#W{T@&9YrjPw z1-4(S3K2v5^+o={+wb<4rQ7e_FSz|a#83VNYQMJNM|t}B!?hvXug_AW{klR%L$;rv zK6+xFrjOE)vtchjPMMK@zL4hCN7J#7mw{~3&ov(6Cl%4py%8N8sE-=QR7@YeH;BoE z&_{QshR{dfeM5B+`nf%-5z1cl9xgZu=64d9Ad}l zK!AYZ;8zbaAEBO4lrtRs4Z}f)%a%gJ!6tu&Q#tZm>iYSYk>-&m^`%51-$aK7ghe0t zHX98HQz}Fb6jmN30Y6Lah64xn5n-xwUhUJ21^g}=5DwD@glj%!0pEn5{7e$?RIr2u z{5KvJVXsepSX9NTz;kEWitX-b=D4Xo7{o*Ys1Ev?`J2MwGfx2RIMy&=BUi$6%E0qhMMho--;$4#;W*3c>OGVw2K%KJ^jf`2v3OvkA`=!IHA@d}U=&Jn#C_2hVTzC>PJ6 z_0h)wx6ntgYNSXX9TNEm=%aQZRJK0)^xaVH7xTdNwBK%oaRt#w=Q{Ye-<=?9bgR^U zU-zvDIn*>A6oR+knntDDulji|sLrFSY7U%owqvObv^^t=7^zqL-zKkJ#H1~dfQW1OOnLkVGqfc(Cm_AAnWJ2hp zB3lT3G@R=o?2R?uL+c|yez<39{Mf$Smmf29emsYaG=9|jZy-OW-B)3LJoiUwe!ShV zV*F?+$b{g>(yk%+VfNw27u`bhLznO1{+^Am<4YP3ezr`Yk^Il~DeJ)TU{BB}dpxma zeu(iz*FMb1Ya9H=0pqG@e+D zoHRUlp6AOMlJAvi{G43JGD~1qlc+KE(bmKJ&jJ{h8`(8osxEZQ$EUxd-C=DUc}}-$$`MR#1P(&|VdR zoEUr>^DC~yjPI`g_`VZfejk7I1km)y_t~BmAqIT6LH@zV%VG6P<9pn@jPK|1lkXyY zU+q#pzMuapB)(tz%)oaYWK}VIC%&xVI~q9~_?}If5xzHBz4#vdmM>=r-#?}DlZxOw z?iU^3{n`b^cX8c{;d_Lj83NxIlS1J897ZiVzRy4it{dMGuW0x_{)K_>aOQo0KWIA0 zl#TBib3))d$59c;1>*bQ&x~)IKfe35_QUt=H+@@?%(MCxA_ja}5C$<8;jCR$_yZBb(&dDBm%afZ>iqJ&Tto{{vBg6{CFImjPAtq=k$iT& zIlToUn3L^AwypFD@(V|P1t^JaYXm)wtwaYJTrwBGzGV;eC7_P<~4V`wHoaCbBPFZg1q1`Z)tiimu5ZOjg3nX=PbU#G8%lw zaVYwi9EnmBUVr+M{e>ctZxBh7nk*w7pg<5T5h=E$cg?!${88cA+#UM7AHRSSZj)Y*)m z`|%?2Sg?d9R8DXQ(o&o;mf_}Tx4zz;X?N2mS~ezr^rj-TTlDVhx1DUk zDMuX2FY4+TYKWWAeZBXd1|Q^-v=06rv4)3iJZDUSq)giXXw%$3fMeQ$=)D z?L1f-V)?DJ29>S;UDX4kt2(BRyA6#+om5l3lM+*3DX1LEU{&^F=yI_>A^UGk_NFT9 zIsA7w;>;0RuWXjj9mp%e>CgMr&Xd71TTD2Jw9ts$tl3Z9K?AF&YYs>ofqFYALq!0^CtKH2ckmyM4m zBvJw&VW$6Iax2|j8fBHh3TnNJ!%%)rNj1{J`^sH#EmQTz_$qxQ?d zheG(6g;JJ{k2(v2V!AD^_jc6@AlUdP90^L_Dg8957l^h2(|N7VO0@Zm%k ze?9p4PUJ4|arV}K2On1fbqycC&hy8|I>Dz>_;>-NNyx8He>6r2ynzogk9_cvjroCc z^~b$cg5aY-IO zuE0ku!re>hk5TB+uLmC{UwrJo<=?@_AwXTj$J)96__zR(4A#F41nKL?M;ipI8~6y& zA4BR@03WR_LGZBvyRe{t`Qbmn#|*+pUzD_K72eZau@pJo7jH`AFBX$4Il5$@yEyT5cuc>($|lV zBm~17_z2J+$#CJ9t3RrT1;I!5T*k-eQ-P0JgpUN2vTS^O`DSo@{PJJl{v{P#N?a>G zo=Dg6(F-&Td>lv40w3ovYz01K#P65VAFV50A3ipT+yy>f2Z0LMA6Pt$usd3y7NuLL zX96tLxd1!fW0|~V@@#*EY!#fUOBO2aM8y^=q5~UH?bwXO!Zo%`&v-4{XNyYGck6z~W7U zMH3XwfCVq5t!5Z@l~R;*sOOt+h%S=_NjfWj*r_w$-oEYE%332#-*;L{s`AEg^%i}==Jn3u_AYYkMSVz@8Ba7VAt^R z$m{<2h!(smg^vp@t_L4O5oR9}AC=+x*C0m>3xbayuU?_$h5q;$JD>6Kd@k@YkMMC7 zMJpE{&&>*rkN087P_HWRAtAd8;X@k_R6rhUjPvsQk{{waL9pBaky(NQ7lI(g zf97XeGgLGWU|cw=}uiQO*hK8%lV ztqESLVPAbj!ocS{&q}_C`4iS&$6r|&29P38f|8@(<3r;U^yhLLOIS5`FUbr#5bTr^)F3PIWc%<*Y;17+;63~wg z7&bUDe0T74#EH|jw}*l2E6$bC4j$ZV$KR^4x~_9K=wSanJjt|2hwb0_NB++s`*+|K zR2`tc`**tHPz0=6n|Pi!@O)PXyq9jnTUzff0t)7u8fB9QbUM~kR1fHN)dR|}r0IGy za=@*$^l3nryrA$Z{e^P`+zSezg1B+t&OWwpXLJY$G<7Q$94L`--%jUq49)lYxIuq; ziYdL{@WJ^yl8To2z8zGx@!Sq2{oxq=wPkRx`A~J&&e)r9*)h@w+plx(HD=^qeR-T!#cC;&Y%l|kSUOvJH=W7Ql zIuI`_TU3FUE>RWZWhwS@fgKz#_cUU7c>pC6URY<=|LLFMrA=l9c=>rc+7(N95l;Od z#!G#ixzO=4JXFO?&s+muKE`gf3h;8EVIW?HUJ--t9wzZ-+r8d zw<#d0Xg|)e`sl16`*HSS;~nb270T~G5=!zs$@k;1E?m1UC_t*%kE32e7nde(PZe=3 zsF=0|R~-tXbCn>@T_bNCK}H!?yFbj~)?W)SdKKzI$L0s&2C=jqSklK`pi!{UdZSvn z7x6IeGSlxxEbzG(@yiRa2BegN3hqVh)ReKOs?9stA9MxV{^?HnFFwVS#B}}PBrMyG zQ?EZfh**C8VNu7+%(N}V1{bQW;BJf?(Kdj6kU#D>Qct?sptd4U(^5)=hZk9Yfa{7igF9;{Jnd-n%qG zyZ1$9LZ1}@l==BA)cxe@ey*zUlRHeo&jh6e!cT2hLLh$Xpg`c~ZQQC>5q=!!D#g#m zTdLIuz|U?RLLmH1|2POO2~lcku7bhg3Ux1$?$a@bg*q=v088=Nav_WO@1EXEtW#72_vumX4pp z&nfsRr%C5O)IVWE6#SIT)W@$cSqXvoS%?Cme`0V6TSfT!`(&l~aW<+}9{@it9AqH; zTv!ndKcf-L@e|sI;%97%_#;jkVta!i!mJUUuu$f% zl7>gg8wLSEDL)sd&{G}2wE5pNcv-Ypv=+*eoIk_%>5Ia|UtLE+#VxM0A+Adyj!>9W zk;oE)PaHo?$vu^3N%{LBci8CgNx88JtW?(Q%s~t!B3)i%u}} z6B#W-5ssG0rN!ZR-iT37dKqUisJ*zPy4|~1yq*XIr%G+N(FNi2Hy7Z=CcE@P7Nr#j zy=}Eb<>5Aa6F%Kk5I$cRi%(1ZpkZ!3t2y4frcnB4EzVPK__pKSthWXCchoj& z2>N#gnYUS3%WUL2iU%QfIhx|YA!c=8S%IU0`Zxq0CjvDv2AA1;-Y1Fu%Z4iB*$OGK&2z+Q%XZ7G{-$eEaGz~D2<6ET6di^s8d z-;Rev++lY7zlq*?6I_SS+T+ph8>!R!q)88j+ui9=38nhpXnKFaF3l+eo@SlJLL*&< zZnCUynwq%X@?1gAv8$$n@O=>>i*OKdGakF!5G^F0b8c7mpYO(r2;PY}`G74ruBlWe zX4vB2kQJwccveCq0r3RS)XgU>&_8nGk_hc}t0EL$3-an7z0YtXI6+c>W6ARrFv0J4 zVDID=Xys02%p-rC&gPN)C_)Bm#1zO3nrCAF zH=2my@|E}K!77}TxCLRUN*Xkk&H{K+DJlPs2SJi?A2NHKDh9`4=J%&sqL8u1LRzbZ z+=QGs1_)2cn)kv?Z1qB$nZl5N7p%hGrV#l7tW6MO1=@*@i`VGkKP-~6rEomn()VXJ zBgK8r+JVM{*d~ivV$mpoq>dRN>CNWNv=2S6AiIZvhsC0u!&s9V<3fKrjky_FSkvd2 zaLGTVbZv}b4-nJSd*Re?Y(lxC!)TJ~V zkcQD%Qu3ybLC&sdc_1!DW6bJ0&Cnym)N1|d#fxYBS*%(7hBQNem)EbnzvJ{fv`6C< zg&-awHnO!Kc9*tXXE)>FKz4&RKNR|k#CSMwB&r`n)emJ&#PTgz*p*lqHOQ6wmj__3z{T=FN9+Bxl3L>p_m=ScU{#%pd&+ zjc>FDK(G4zK@;5C2KK&EkFnP#9#Pd~@RKzV`|K(D5P2M%ac$yp43Tly@nj*q**MXG z^*Q;{Tjkyq5hrB5A&yZ{y2DfQym;9IPZ!|`19I4)Va=`S(*4NEuaTt#Z@_Wu8k(wO zzaN{alVDf}jSm@1QiA)~2V>GMhrG^h9gJ^};5s%M--eVtjs_th1p!%|1u4|fu0p^P zy1(jnxs!VFn#q&lFD89P(`dY;qP+0tPP!BE1_?%enf&6OekQ^*WJQD}^ROp%4#~JP zh;yj+H2}cn^Cp6N9z=PM0_Ud^`Y0k24H^u3G;99>L>TTiTqQ0iW#Hnp3eHb;ILi9@ zaPad}pF@(tj;fYm{LW9E>{RLbsorYsVo^IqPX?Ty5+-w=+${IAGsSxk){wv`{2Z#OuOjGrL|IoM_jF55(Aj1|mcTM0OPC`_7p&~?cF9D{wZwA+|(F_M1G4N=a*-t|J z>aRmzkaysQd#6 zxgQ}}_k*Rz)_opUz1E@P|H4@j7)B$~Ichxb!P`-#(RsWFeYL3PbJkl@4X+ahyS3jhtoJ( zz}CaR>`jVd6Rf#c$0^!32E{f+u~?ngmlO^wOX3}=V7K{4Ty;jT#yo~Wca_hA_`AO` zP_N>eqKeVO!$7kGP<;mwl!B0e#DiB`wi z0;EKxX`FqdIR_pMzbn-Js)5l z48>3|K%TsuqY!M%91Dqnp2D?g!2it0Jj+lkd_&j@gpn3C>Z90N)opmvIh>+Eb>yA! zj8d^6>Q8M?NcE^0+iX}{e}peO^Q$9^d<$;W4RSMR;sPqZ-wk zjcgo`7Nqu7fo?ow$A*cj@i+~~K?slaUaSg_0#Yh?jJ!?9V}crdUOo<(8vDk8$G*>2 ziN{tN9)G9A(2Bt0?$Hd7ZPNnr7>zK01TFWXHDoMS+3=*9IJH4|w2rC}kG-l%&DdrG z9&h0#@Mmk-Vj1q4qQ&|Kzx&|vQ;1(BcubtH;&H+Ge~QQDxXzF3$5~Gp@K}cz5s1ge zRHEDbao>vY=-L~I$9YKYi^pr%s@pBiFXLDS;c?dURpD_5QYv_y8?ECpUkyGlKLVH< z`^JFBZ=zBPY5hE==aNg=%6@@H`AR-hkOU#%V+ zjcqpI@hzOd0K*K6{|X+n5BT7*#dDS7(K=7XW9gZHipQ{I6^|!I8Sr=;FCq|+xm2Rt z+#L6?1s|_3{2YkKGyHNg!+1UEO7$3tDe2QVOhR}(v8*aQ4naxw z&48(~Zwz>Bv!qHq>iTgVCFc6^i;)bE5on@69?Nk*nm-;Lm#f?GBoQY$NI$lOi?{+j z-dRm*#x@)9co#1rP(PmD=Yz**AbyqT$4BO>cpP);pW@Mhi}$#G9Qv36j|sepKs^3^ zlHt+at0FvR?h3@?V@U0*9}kvSw_BRm!+{gR3H0#2A`KZ-&`Rc zUlXguqply@FV^tbY6QdM99+TXkH@hH^T*>KWz}tXQbS&E`PoM+#N&(Aq*ehQKYgYG z{WxNe4<5Y`ze?~pVz!FMJtzJt9{+ei#pAYN20XUmMFisU2`bTTzJ?pjg6qfKKLz6P zCw||VK|iLIR<~Q4Kev?Qahp^X9>*f3q91>Z((%||4L&cw511PJ#-JbTFRT)et+ny` zO-ju5v8Y{3=70#_nkg? zJOuHp1dn59sCZoc=Rd{cM%=;2$Ls$LHsI0DiwMM{jY@Qz58~Rj;QH~4ZGm|FlwZ|?58z6PJe{q z@dw<>=09GqL6|=tJD#m>!;@CxBnp}%AAx_h0{ij!nd(t9w%MQ`d-DgBgm%b%#19}-ahyy}-9tCWBBP2chd z4M>Np{1LSdNlG1PJu)B1CdA*x6Xd@*Qtowa@+RzZU8^%AQpnr{SI6bIv45cPd?Y-K zqb696es(@BuUl}T9Qosi!yRukF@L;x5uVTs?Ma|Fqn*DF;O)F6*|PdaWS@z0u!lq3 zkAmh>K}A&16;@CY3VK#6=ou7*l*!o9Qb*pEZ8DXZ<=fO!nYVn|0C_PAV*H${ltT`N z?yM~+pcx9lAhId;Dz2MAT{Cbwpl^TlQS&Dl^53fF|Lri#pI34IdTRc259|GT35P=% zo?hqqQ!2{OtE2l<{^@V+y=?UI6kPg8UEntNI>~@*&)l9Wb=zW>dJn;q)Ll}gm_F`~ ze_~x2uB;|uR@&t5%`b!hNAC1_8CIQ(XhnLd2k~~-)zBGr5(+%fsz`MhyIrmd?kQIV z@w`xYf^M!35qDx!mf*S`F+D7yv}B6lI(k(o+wZ^s#S&$^h%Gv)7o#i^kr-gKG}VJ7%s6_BmzIt zeda5(sEcWD$tyT*B8b}saU1aex*c1maDX;hkRsF50no(80yb$y&*>+96uXGB()HkU zeiBZVfhbN&jRi2Ut0WcQVwlqlTl2q+U4gX9#~`|cG8sEb;P?9WAk(z)d%+JTckheR zT-Pj5HKV{iY;#8f}0MqPAYkGk6vb8A2Bo+$0kJ>Ho zZk#sQEqK>akg)r>z3$JJ)mst#!?a|#aGj;3banq$gX2@{9(4=Xtlv@&`|dvwE?C~( zHmw1&0wGsjXPQ3;Z1Yf z?jb0&#`zh+Juo(cZ9W9EiMw%fzf9_#O~iEc_M$9on=8(lh`+Q0C^fW0Dvo^cO^7yh zTCAfU0{Biu+>wcI*o27JH#i%tmgU9v_&uqj(*#+-_S(SqJL)8R5LP6C0VYk(rELN&t&HY4CjP zMRUZq6~q(buhv0;1?BTPV$<<|2OJlCWDntBW0qlunc{Ex-@<7?|Dn~y z|KghB|H_|)e zz}P94_}61|5M_yfkBOTl{-fBp+3zo7SFz7;V+-&}qedK!9~e4Fmy`0Rd*uWHoA6?o z77*OIv4>ew+IhH!luZZrlTJ$?m+7}Kexmawa^_ zkScYARnbeaD&k;OoI++GyvZkBXy`1EN#_Q2L|9{gTi*bh@ z?~jp3tL~56?>F?vLo5DE{gFLe>ksJ%)*tV8X607UAA0}{-XDUrfJQ;u9FG3)AxNFQ zhcUA-spsL+6TIsXkMoGI^?<>)Cd+8>R3H4J2%aAbp_6u>KLK59)DR^>tb` z(Feinx4I+a)cU71aNT(Q#&cS;by_v4pAkPXoKm7rsb>9m_&(OEkecKVwZ>f%U1!sr1yT)TBOv^w!?XxO4?4eiW_z&*+Wk^uD+;dOrQnDNWTW zRn0GB{=*5ZWr;P(AIP6qIh8BZZ-_s}`lNG8`8uVl+Y?xydYsB^ok~sm%UGWR80j#1 z5_L*9QlD9z%9Uw1#2;;ZypNOlRwom5eALp1^7PBANN;TKj(b>p$LU$BZm%)_GM+!- zM)Rlh{FkO`oT^6ox&_dXXWyV_uZjJ!yFF|C5ZVf)ibpMdBc8r- zb<-bf!?3_k~Z>%Ey09_vE^Bk}0IjSL#hWu8Z|M8mTH&~S>P9R<wcCf%RD% z&$v)ur&5#p1kxMN=@m`XxLPB6n4Vb&(i#9w(Cj#jtphHKQ=Y0*CgIzr3m;|?$Fabm zO#+$Bsk1=#qbRVxYvWk^Tj^A5RNsL0it(J@0UXczU$G~fa(d6-7(F9icHG5U+Fz%1 zBY0WNsWj55)QDd+{SKHPcIGsTaUe?J*^SS?PGJ2LR-H?y_0Q|~BBy!3PP4l8qx1BE z<3A^N7ALU`5UKw74*^MI;}g5_?1CU_t@C4%ObpJ3B}4utjAbn+^m&EBUxM6xm{GM&W z8fevt1;IbpFuHy**jKA~{<@Xsuf#txh3DUilVA#Sf|OrL{ti6s_|?Cq@mqiT{r z5TF0yR9fj&Y9c?z{us$A9eKP4{0OX1Q%>bwok~sW6G(4cbH=5N8>Cl>eK3VnuB%h7 zxqWWrUks;Lhy!pHZ9q;qT3i_mgu>I>raDzSjMxA(zDb|zSDXB_#4e1 z#q*!T0kn$o;HO`L;J+zr_!l~r%H&D4JVq$%c^dy*oQy*!cunn&@)$e zJ`tQ=>8-3yWjJG|aHb~oDzf+A=2TbeRBJBJmCYxTIsN|slz!lR@_01khj)0*`4MRU za9ZE!v?{|(!1`w;`ZAeQ9;Z{TIe(4%^6V|F)h%^;Rm*2^JiX5;9m3JN8se#n_0u#? zc&Sb}$o#aj^;1rt%{OrKH#YZL#UJeAFFtch`DVt41ig@UFw!dsZ_xFVI-F>h zPLxElqV*G42=JpQ`r9Zk1&vvQ6Lm6G%Zsl6dFC)Zv%mgl>%RuPVtyPPuU$B)!bde8 zRf5-Q&5rf;hv4$Pxe;smV7%XhB$A>HGGTV0kONX<4l&^;Z(kB zGxlVb$}u2XlXi99w2u^(ak7p^~@H3aFU2wZ%K0}U@D42y%EnM4*^au?BWS5iB@ zGI#T@s3yW&>*06suSMZS;kyxYn;sKw%+W{*58n~K56L35xY7+F&M39AdouBC1?q(J zA>N%h7vg!CS|Tl2M%BqHa6X=JU_Jc1CVBW{*ineRc++sFZZU27$L3G3T!yyVu@5!e zjt$#U2*jPSIAK6vEQ1ShJ1cEW#T!Psvk;OhX2yB4D5`}G)TN$rMDT5tDo9zlQPb-v z!R8zJ3zUSC50wl^IKWO7BpfIa*oM-xc1vNe4#;H5T?;Zgw%GlvtS9p5f>Swt6skqP z9e;a9BOpzDpBj`Z9s?(~wa^e!%)fGkY|z8k^RFsG*61-`8FQ>s!WD$9)Zz#s5h{zP zKTdlw(Ff#>WJny!DjL6wQ8Bx*G2`!4LI1*2z*2WcDO-)AN`}G8lP-T zb;^Q%a%Xp;ZM}s$sq;RhwjdFeHASb=-G|BtM5VY_9QCKC>owdBtLZz{USjf9NT^`) zwd8h6Unt>cC-sgGsVq)Pj?t-{?q;Min5d}o)HhI`l;>BYm{657 zp~6eDSD}?U-llOefq&&(Y^#UI^RFrw@6cmf7;`jL!WAwy(&Ct0;l7+*wC?YkP2*M$ zs(`2EphXVJ-wY?YO8OG9cGok~(SPr^FVzNZggQHCpSd&HO8eTA?1kj(=65_O%}Kr7_2+ zO1J{G6DL-DKR!! zW+oa1?l^i+aL?`{xN$G3yhbPI@gcXKC8H8Y>y+;Eq4YW>DelRKLis9&LiSG^4-NJ+ zlitf%m2ict4{LF%05>GZ0Tpw_)QjOZmUW#Nd@Zv#m!p%SMjf0fzmJjp7CeG_D)QTp$uDXhg<3QDwTY8r@I4Os zs3pnllVn#Q*~Rh9k2p7&@J2Mzx~VSz%3&6!hllX5D$Fi7)^e2buROs48aAfxg-_xgrQ6~U~wm|ZovM@R34Mum7R=|+m=$1 zWP?TwcFt&%vP2S!6F9}Lw~>QXYevyBqW5xT^sZ1<+~#llR6!5qI6d(SlBY0|S-gsC z{HnNulbouPq;&yx{YX0}#O$?n5G$tzZC3@vGB~leIx$)&(Avw+RT=z)v_1in|5F*s za87ckU28He{NJIl&yMx>!G(V&I4XKRSH#pUaG)r`1RKM10fB4tW|2~BQIKqqz zBAWmG81Y~>X}_~fIVSzu5Y^;M0(#B<~3SWz|dRu2Dj&L_NGS|EkvO9zCY5F~?m>xKghe zEslw@{O^ZJhRw53I_#5?WR5h&v@`AAS|)k)Lx=*BCw{)jM>cLxj|91ZVca@?J; zRX2cO{|pSr!980z77uIjG;_k^&|~&E=P`(23>pPdG)GYz>8mSgWR%AE;ruIS{182S z5dW$+u%8~&*O;T160S6`hZe^gs9Laf2N1(IMr9QF>SRX?T^~PA`nW@X)-%kW>W=_! zjPwDU6ooeNf>EK(r{?I!$W7>1CEcD5MwRv`OQ#wmZFF+Oe8}N21t%x(LxmMe@B2`~ zv|LwfpVB;H+5hL~hu!8^h7o|0#}Zy3+{b|xqxN(@$SO7DxpTa9r?^K|$RgCC8;}{nh835g|0nvn1SHJqvs( z{rY8lBSP*+Iy*=)do@Z9*Xbqt(6gxY#{kP}B(1GTc=n_ePjqEKZeL9~_E&*nf8vmtVyn z5!~}jX{jo)*y8#cgzT>35H|IrW4v-p6Zu|5Ffh@n_f6>2&9=5tCfw)| zHUILci4#rEItg1nbdw1^6coko`WMz^J~`Pj?a7HIA@Qsw_bo)y%_Hj^W2cQyIENcO z8m%8a>IqZA^}5?Fxk+m5q*2o*B%HIXcEmQO@V09B^qG@04dJ(`;bRbi@UM~HRhmgz z>L4l~*fPz(Jbs)5LvCv&?b=CCJ~29Br{(K`NPB)_-EEd!n%Cw-1DJ%hnNK<=J4R1K zWp`L|&m)L6WX!ZtlM=RAzD`A!bEE5GQGB%;HQh1Jk+20#YP8moIo6c0lVV9OS;n!W zM@>P-)yPQUY(hg3LjH8eG-sy6IZfbnqXiHa>J~bjjCF{2PMI=o^z`WzkL=MDHJVLTJ=K?Z>^`^k)li9gkU;xm|uRnw<4H* zNYe1^83gkagh4O`shw>w6U?MT_=xuy1@jI?FtLl0Z-18;Ar}O*A+mT(FwTYfg%=^l zusvF$p!LKt$S>BsTU?@MCuLFbp}cs<6s73Au%^f;~$)M6X* zVqZn_G`tXU7cH0k=2<|E)hZC_TY)#rSp~vb`+Jpnp*q<3;6f&)9v>o@v%t#h@c`=K z!-DBus2+OrMdU#9Z$ff5@IViuB92Z%;bHWBd1Yqn;aU8vI*?4&V&2cgrd2JDR^N>i={DOkX7j$jpy}nIEF0am2+5u1)aPl{y}_<;{tUas0~KEysZ- z>lNgR$IUKk1|os(aIW_w)HrTEsZLf?R5KpcEP0JR>60gM#rI}c$P{Md?#NvFCWb&6 zK9{J5#oVukE!DzewXmnPuxKspDJ?8Q3mdP6nRu9|0V_N*zdsdZ9V>`4#}*Cpd(Q@o zR%r!k;zsQ8u!?1N+)3kpm0sAyJ%~GN(fxq+#I&F1U|yAUG=Z)`q+0|8_GZ*H+)IyV zKXHE-d^5vWphe4GhX#{OX_-Gg#O~MOFMVRY!b24ZT>%~9+``wR@zhLKQ(A>;Vt1_@ zLjCNlk4sarD)b`#5?t$Kguy0I9tm9$FefxW9Lc;9gUXP`i83 z8mr{qNQf*bD>RvEn{az#;o;j{N9q(FX%UE>2ou6X$-5A_{O@jWy&a%hH*sS!vH&VV2w{@r~~9DLf91*TjoS4&50P z3lzv7G7r}Vh?0}u9ZCk*AV|L<$=W*+pDON__dQb%G2CxMQ7L&_vnSZZt#vudt zRuJl}zm7B;zJ@t!i5)PeMqzBlbL&pJN^P7Y%(ZFkRIlPd1P8$;lTciAE&2PeO}N4a(9_xzs3 z%*k*vD;*;B3R_vr6k&4QWS3rC0shm=X;H3O!%U8Pd0XdorIyX>BuLGhngH9b^=#7I zZ&M}b3d@q!l-Qlr16@FUCefp;=OCw_xy!wtIfzVkuOmM?Kt~@KW!B;EN?IaY^Cw#S z%_xer*!BtTjt67tySqsQuW0_$_$kLZpo7FAm;wkfaAR5;CgaA9aD2q9C0js<-_J}d zWq&{iy!f~s!4L_2wQVO(so$9=R0(H`s3@`?SQiEs;{WTlpnHlpK&){&V=m?685Mdk z;05mn=SjO*2UQ%0dDXfCBq3-HB5vkPr+UIik(Er6ejmGL?YaDyJLNMn&ACbxi?j&6AV zdZ@|K5*;xIJNT3OqB1_r@3^EKf?Co}O%MWx`Xp$C1U6bkKg}*al#A}h6=m+o*Z&MN zm4<|1Q4{al7+#G<*Gk+(PVV95%L!g5$8_S}*$ME9cHM)LG5Zq5Q&4*ZA z3})VSEtI`QdzX!DXa^c`j@6OfJ2?cGEZL;o*e#$4D2>4#^mH9z0e;f;OQ0QtXE-cN zyE1qUiK816V+8lq>nRDlQqb-eR?NH99ClX`$%i+!>%iC;KKppc9r17r%fvnZY>#?FOmEgxKL+Y+?`8leHh(wtZU z0&8`Zhgz1FvvFoQ<60kg1a>VIM#Yv#gf7BBvBPs5v1^bAj729cT#!SQC3DxS)GfEq zX@hQ|ZgeNzfo@^;4ZJO2KDuKsu3$&fC?sW>;s5>n1?Zg2AJHjvGvyTOp|O^wJ!tkV z)nRX^q1&U7>A)4rMAy%`3fEAwE?DmAGAjg55g3o@)IJ+-HKmR(X>-=KfJqBwNEXDY zFfs55FBa}X#BIo$E_5A6J$e+@oFERv;*7glhJcGq3y>QI&_PmS*dzsz2(Y+NydySC z{xz0<3NSoy2Z&R9gt zv#eOp2d7$K;Wymm@T9skla<8ZV^IgouWX~!dMNiRM+8wePv$i#e-iD0cWy=_6+N_IWpTrY)legk)nesOxKwdW)8VvcP z&${O4A^_C}o5te*P;_0)Wr9YWWyxI(HMo$kxPVD?$OgcqE>l5}-qhG3z{nR1q5ZD| zW4g4^c!k(>&+VAXD)Wg{dRG0cAffXtx&6UrVpuXcBP_W+z)s>UeC(e?iz_U=;OU5( z>H0a4zj6b{-(xdEKrI8D!%nhKh=9~aaLwiX9j)?r0utjbagD#P9j=JK4WF-+zvGdS z^EXwRWb$Ef_c)co!zTqYIF&IN?nueJuAFfg(>vVnxFm+Ld5|xg-)T#VTw`-8ZlCv* zF{_L*s*?u6_TUofr$GK}iDdjKdW!J(6z~TI9|r5~((Qrx>x;xj{LRJ;J~;l)JzFV% z`XFO){I$R=h~uyO#6b4w_~cd>C_Io`OHRoEVdkQ%qBV$3sEIlG~K{L}0Mw z{z6~fbD>`_2PXL(5}`o?nyo3CWyvjKiOh2`d8gK^D#~%MQ3@L~T^C&Z`XZ;=e5#N% z+!rHFVZCxDBu)s%1eiZ?S$_kOCZN1fs<49fHw=3pQOt&NGGHVw7p#b&1^^6TMFCo6 zTNY+=^f>EU!NlCzNy?!wn6@^CD2F*iVAUL7OM{)f7`Zj=8He59`7J1TH|r{ZD->Fr zi6*-R+Q+AU4_38Yb7M@7R2JuHf!{`TV52IL4kFt}p*x$=Wr4KSJfCLl@)!g%nC66$ zy>$^tCFIgpmEC7uAM!SAm6&OTHv9)|NOl<7uo*Wsmn>JCuXSF9?KkFKjJ(0x&w9zX z{WOFqZ{$L$J8DCXg*cMI?LAAel=UlG4|()!uf*v1wf89mvSHyJ*vF~jHH-{2QdHL7 z^y!B7?s=NEm&P1Yt>|;8K+KE*d5kZpPzox<`oxku2R3x7dph(X-uXT)XVlf?-I9y< zCm|Z_JujoZ%D~(oY*dDiD<0gxXS`oFP(Q8+XZrEosfO`mG8>wL zj2~@~*f@S3M2<3k zD2!IYl1v;^z!Hs$t1@HB#hb#w#003zGlZ8mbqsjfLlASD2me}AytG3OMLWWL9LaUI zzlto2QQ2_wm_RnL86w!=1Di?bG}!p*$f2!$_z*Uaq#Q+iZbci&N+I(wobx84)M zV1V21)m=EAzKYE=Wj_h-bLzx=Zv^_PDHGWmalC{|DYv1X#_ z>^<2e{|N_BnG94$?Yxp!2?x~gq=?vPx7JJ@h$#SumF{OlO`*f6?Zdd{=s@ON9Dn7( zon!$muE~3oX~|4lchV&h%_VDtt*83yw+~rY`L*vw1VW!X5`A^~UQL((sOj=gpvxVT z4Q;zT7j1i)*)`hGgXuN};0*}W4;99qQ?*GG&V*|1XJ)3O?^)N%TvRv2X_c6jtBiUL zjHN6`DM7UU!O;Xf&a8%@oHHku{8s}n&@_tXD8*J7nwTdJKnS>haFNb^&o(d(3(`)JH7%~k9-#jbo-1#NPKH7Hsg5mPV?of~Iz-nBj%Rlp== zGcv8E6&U#|+Day-#L-H0JS!A!aAkK0V=S4|987)=!kyHJ7f$e$msK@;B}i`^8MNtO3~Jmg^U1as3az(IX?7IC9~dvpLG-hyn3OIq^^@Q-0m=>eV5{^VK=@mpiE$C-)YSdxprpsgpC` zYsgu$Rp~cH=`E<`-)~GT(0OP*AUHhAr}Mg_0B+k2$LeJTokz7@cal$z*{I#Y(+Jf} z*s4h^DI`~y=Gg;L^?yMZs*`d;UO1*)$+L(V=9!EL^)IIJaoRLKqXqm1v}2Ob;T!S9 zscK@joRXo=*O?6)wuP{Ydf904CKyxW4XYPta6-2eR|2I@27$Tb6u3osUyy=y-f&BxdMY zY=+JkTTu;dhCU44Ml346YXL`eJhfy z7QuHI4eh&(7D2jU#=btcQi~uO8PzF+-)!OJttz7G)42u!z<0{dXA6Y?6Us!PRj|qA zAh60{40vb27`W^+XUE$LI;v0xzvC~##iSZvAt3tCTMDTXT#?z-0Y z&%z_9@zdR@ACjlSa-bP5nGfB(c+pFm1PRAxk6+m&eKOl%JMC zK6*;Auaxx;HmdhG0I-7(0GE-l>HOk=ibmtLg`&Oa2)lHTwveI0?wxDIBEFD8Z#?b# zsUj8$PglyKe z00vGW0Ss1}u+j`2AbW8>)p%I!*i^_L*6ilcYS9@=pv>E22up8Y)i{7PK^ANNVY|YG zcBFPy;j`GK+E^mn=eI=m0TQd=z}gySnLcWK#?5N$U!=1ML4?jO*8UC(33WAJIIeIY z0~N7LkND2ee}i%|2;Kq*IB+l37~PNNW04>2tZ;t*#Ap(tQa(RFfxMcf0(awiK0m*Y zff!(dkpx>EUx>Bvh^Qx5uwMBYOnE*(XDp=zF&>-GBwd-WVk)lCJ-|9%HDb^6`T1r9 zGGu=at(Yoa0YLeD^%Tv|KjzlfRw<9ZDD(5TpD?uHPPBo~&w1nFl4dn>^wL%+x~VG^ z*sNO@dD%im2EJhNfHUIAbR#41%obAhLrWo!fsEmv`Up2J zP$Z*6RMYh`CwBl{uW*Yq0Sl-zGebhHC7akfNMI_oAMFPV-O(6qh;(4T2wZSl8Q}SIq&TOR0#M9Vp zA1D)S?O2tGL&p@EfQCU?eiQjEP%Z|Um^KwM@jeprp}WcBG|t$;R&AU)R&uYOzI1mw zJ<4}{`K_FEg0cualMQ0(Bpzj@x+f*m@G^#_;<~dCEP8QUMY=O$Zl$_&G%~6h#Ob@h zmw1!PsUdVY!cTkf@r6y|^N%WA3cmgeC1f06`c46xN-<^=#V+6t9k&~(Og>`-*GvEg zat+PNgi2SR4H;a%$1X4imyraQ5oOviYsvkMI>~Kbyj9^vMRfX*xjf zsqq=xW1!*32M=n3FbpWr3fv{kv>@J^1K(&Xk20+%h0G@Ps^!?025#U_)enk({DyU| zpMHEFflMv%`Mj@M*r}<7VpT0TRzM$QKW5O7VQ5jwbJ%Lr%#J&sSQTHxNQ3=mr~ni7 z^B1Y_ctf8$tTZ%~mMRDsp1r89K6-kFQsx3SE*KRaPvT)liQ>QVYu^FZVSeq~j6mpr zht*g2V?M9w{vWlL(R}_r_|>%W>+Z=kpV$347=x(Rep7mk3)+nULUJ7=>n>`i&;^ zWLBLyOMCekb})y>-oR|y^!0X>GAS25m@Ld2uT+kzAqZlxaH~74J!Vg5ErknmP!X#; zqP@FWIQ-vMSC7VQ=ZD?GG@pnw#C*o_0El3@|E&U?vRH&XhFu%5uhsh*lmn=4^M^%H z@1|r2maf8LksRiB>$ebQcP}i*FG#h3`!6gh`*1949ZW+A?s=om~+XVq?Ir^l`L>rM&JwOKt&leJWOtu})zg=VZf@J@W^8hAvI| zWEJRR8yvaAP1xt@PWl6MAV(k611i3NqL<$XCA)h8bC^TKk;eS|21aE?h@-pR^&M-O zB^UE`6Sm5=wY$GMObv9K9Y|((e@CoJmC~?oGcYzfAE^Ys;mw;KLmqB4ri(S?kY(xn zr~`6!MlQG!v1{W61YohXEmgjQzU3_fRRe?bw^8lZJV02-dGG?Z10fA@sJ*8yYX1Yp z%VWU@6x=oiyB(J1qADrk4h|vgKBH3tr?ve$*yW1#o13vJR2PrSs{73ZaRcplyVoXe z%Q;#r=d!lz3=!7S!cb>4{)Rbj>*H>0T94Kl*0Zs<%_`1mf=wCN$ zmZfu$+Mc<~21LUSAYY-rBkpc}N1Td}|Hgi}9Y6<3c{CV-4RP9TxDUb^lM$MKg7`SH zD|W+CUqE0xSj$qv*nYU1aqq?o>NZSV>bbIpK`HOYPk>?>nucFL;8&WP{Sw^Y#uiW@ zZU4%R?SL5iq;Y^gqm)nD{zbpfQc`>#Rz7zqp9RY2D&_NS<&z4e^f~yHA3uG~Tbvsk z23q(J!bVTAei=(5ZxjEbn{I%hOUk}W@mIXWIt2d<_FUC1P3fE()S?0>T8%;&IbY$=sQzVM=E& zP-0Lz2cCeAhTLNhD5=c^)N%^G0{~11h+eKFVJ@O(M|sWotvp}`{j?Y7sd~~_vyx_- zn!8lTr^Ior#L@c_DL$CtVM~c`&)0I5j=4J96#R3qm|3~Z)#7lJ8^k+eWB`~uCbdXSZxwcSP zUQ0;W!Ja$DZf7BLmmsx8+Hu&6e#%jdLs;VUW+m7n)#N7#F5>WZDUNoO=1-ss$EH$+ z&)CJ^)5MOrx5^_FUcxOGGN-zQs6G`=t3sI=NW=C)*s-Gy8B-JE9D`t=(78Y7c@Uol z;_JE~CLcRkP4W`#qfZs%;P#KhPbT;clWA`%_JTAJq{hDrVmew7_N&#^D;kW>>R@u1 z@x2+o^U+Z`8xPqb{~7PUf$UhaxEq)A;r!%eKF#8fwF8~P&kVtHXww(nAI)C*-UyhA zr^Wpk7rQ)87J#FkyQkMx9yYycNe3W&AL21;l;C4+E2{bDNQLlDKt95EQ}~?}{wl)d zluygOi8323m+}OkQ-ZrF!Av9o>eoIIMjim57Vw%6c(LL_Ev}c4$SysZjBa7$)ih3E zDiNSVtgLuv&VOA4@RKD3rAd^Q|+@h&4-@%)ZIt}9`d zyv6upm)=@Mr1K82DlQp>IfA>>b_m|uL5P-L7)6$tvVDd=Na@C+c|WxCMAB->Kv2kH-}} z{SML!p5(`Z;Av59R)g2@vGy6N!Q-d_>is7VcTxCr6y68n^2LudJaq?QRQ+*E@H{1m zM*Ax?%kq^cOqz!qL?zD7r+9f#;5l z`8lYN5sb{kMS3q3mmq)Ani&jWXP~;|Z$=P|z+;A^!=%;Soqj>gTGIdW>xhO;?Smtq z_bS+hjCccs9c3|J8>e9DchZ`0(NAKsbph^ALRX7rSZQ)Z5LzOg zBg2T-bTmsu0;{x;dJ*z9qa$Lkz;7yKHl8npZ1dvMQOeg1`4S4O3t2iI6ptV_=Pj|L ztv@`)+8Rn_-j4n)X~$EA8Z+|bGy!{qC;vGV$)k~6er-4vz?CzTBH#ObaG!^{;4wP5 zV{$w!UXh!9%-V4g*I&`|)Yz90R_N~QbzKUb-Vnn^vXny&0tS~Cl*B^)IGYPn4#S0% z!@C|T#PHAmudEJrq{DYx}=>)@O*+;nJ`vj z9wkkVDd`Kf9|?mVtJYEUA(qj4^*J0<#eH#1h)?|s2AhOu!!r*OAf&M|N+O&rG08oU zh{a-=*@m|UPWX<2p0}1$+vs1g`;+8VK$cb9h}zwP+C7b;&{i-ZKhN_nl7P(6;jD-3nWrHa zk}H|AutFFVaV=`vWQBy4m+BRC!9|G9I@gKwtI#BmAw&Q1RJ5i{Z03Zg)`diRf1lEt&GX*^w}@aG{9Vu`ARhb^&^! zh?V^bVV3VTtBAEm|DSK}X?LGe_+jYm3a5AnQ_b=51&GcI|Dc%H-8 zG0OX9IF)Cz_+lFn4S=%`)~@BD)c2*8_Xm(ZQcM4}U;3}Xy1?`YAJy9Lm%ezWmLBh!$npn(+97dshG%5N=}7R^U)v1^O%?t?ZGKb zI*{Zxf4+)la3PN2@(>V&QW*#%q#cObrDn0RjS6{LaCIv(Il8itdwGZyRwTIA48c%g za^3--S-2pk>|hBR>ItMYOicI@NVj>@5DtUxDD+1dIf4`||M@;6PsF5`*>E6!D1)Ru z^O`*qTJ^l_N^fNWYH#Ro_8b|z#an&`RI!*V{!RzU&e5&W zp0@45OoKda^ zb@d%osVJ{tCat^ebdomg^fNxzGKJgz5$a0w*Q1Cl80x>L6+64z5sL%7O_p9KFF{%U z2Q(~yc^8{-V*eUcIwsa~W}PzcgPX%zk$Qaz98QI#;yTK12o{ncWTt6N*Lsl?hnT?- zxg)}@n-@}usiXl9#Kcl=M(N#6?%-u1W&VdqqOutVfTvG9+Nt4_wU^z;DPG_v(0-iL z=VG5eo#~CbtTq@}{*phbO)GcBwAJx(+Ppm+`&qp9#6wuKuv;G7%f`mz^2?Me@zC_> zw2jH|{(LVoU>39wWy& zusy%rRR#?M{jb|6SSXG|w_<^qy=n??CI{S@K`Q^Fs5R2t)C$3E!!A&^l#Au07{bG5 zgqY-s6s_XXirE(MXu}6@a}D z6Y{RGGH=h#VeLT?Yrt&jL0*?jgViRsHG=G0<^!aDp$)ds^%MCn+h`$kVr*=hdt$6N zHStdn6D$w@q5yX`$Rcohv_0gEJsx-SdKoxK1eS#Y9Br`Q3i!B(<6|{d(%oqQJ~%#p zc(~mA;Nq}04=%E`Lz|QWqi6_UBiLf8nM_yPmP ztFWSjj?l@3Gd4nZU?Vi953=(mOnOZ;P`e|4g|(y14Vo2_juM)pmXeFqz9bBET?$!C zwxT6vXWprNgkhSwO%w(~2MHPcwLpXZrrM&eXUkb#%h`vauI}ZmuBRE>gIE*6>bmts z)O8@_0(EVt*EI~AX%|r)F+ZC*FoYaRsFDBudGsFGHThGJ-!Sjk`Lc?~7!%(T%x12mOU>;d^dJiW^&y(=rrBw#pZiL4_$ z-?icfi&lTKXQDZ+-!nY@a3c+wAIA1wev?WX;@J>`xMk_`3H%19i(p-8Ge$mBq}p@y z#h8CBPyc*i`t%^_sXmKXi6ZJVIo7{E6hBsrUw5Z}JV|$Wx++iE6QNNPc?E9rtpJ<3 zNXhAb_7>&e_YlkPxKqCV25akH7;uKRDp|vJ%C5s9j~3B86Pmr6E^p&`-VK^(WB`9q z-V?k$7~Ty~U-0&RG=S#ti6*+B(43B+T-=rQRbYTFscfs|+cSab4KD&x5=z-MhP|M{ z9z>!>$eb9ReLucZyJ$k-HkYz*@LSgr_j}VJRNCYqopzgG6&&+~A&Hxu4QRVGpDWOc z9EfA?yk!CoOf)A!r~QtUSUl}bAL*0RvDq&5Ao_@j&Mk24)e}ZziNG4Nxn!epy%_#n z)}|r-)V{05+th}tN~%_E(1Qq28dOJXQ0wY8s4fi$Y+VFPOc?sFjz?QsvbN;lZ^i8? zwoBb`cuQ;09z%oBzG8c3u@%=KS;e*sO4jQ5r}dWHG__6b$FqJKj7G9H^_E|M%`l!% z#Zo^;KLbi8Doqo4GREUcop@6+~;ixjc-K3TH?KoEA zp9n}ez{<>!spuF_y`N zV=Pk&;0C^K-cQD#ds?|5mI;MtLUGzWM7-wu6JM@JBXg-|C&9w?*HxkH5Ng<9TzO~!oI+t zfnP+aVLS0z$eM4Lg`n~=yeugri%G2HL>}%4#a+Bi*Bi&jH9(fhXb&Ls1ViSl<%}rHyapFtdHu#4!+8BH zY%WaWlOR)j-e!$;9l_-uTODl>G7u&onh*R+5j!amS3BqPS$qWBv>}Mk($54hS@rw1 zC)h`L>NP4i&i{1#pru~kn1J&B!1<6HE3Z!zV|i@8{xvK#rDa#&@^9I!DoVlvg|THB zo^iLJ0M(vi^atzoUk{+)w5IfLz15$787yd}{@nuTuVvR~RopWH_0MnWPyZ#I{%>#k z^Ji#H>EC*rKmGf4`f~#4UxtBDSx*Ple_R0ly|CI9{xl1q|7uO?dz$;#e}+!~+c*6A z^FU4M$G7mOe~V6kSOER~%(SRM|IQ4c|Ml}4f3CjnU;kM(rT=RH{lPl@*8}J`tttKZ zmInS{ZTK&F@K4vh=PglTu|tZ;K3-u{hw|G;!MZ?#Qau5iJ{a`-Ygjrl=yT7N`o6zs zNBI7(AL;wMq>;~W6d&?UsHqtDw~^jmhTrGb(r@~Q-%KBrU4YW%E3`}Iuo;3;-<##0 zYW+uyWY*EAXpl0W_8j;F+c@<4Q+wBF>D%-4tx~k~Os5<4Kbudwu9rF^u{^{^JI~5w zST+|hE{s3H#u?9fJ|sjKU#n*0h&DXxhlDj_k3*jO`uXl%7gcATZ z6cVyeBcQdHxp55j^K`xIim`p3`t#VlQPrnHW)DyF6y0AZNIg8^hTp9JA5{5w`(uoM zUt@EwVZCCJ7Jq#Ni+>66uq83{8U1y3Ok>}`C4rj1ZVF69B=hyx4Ijz;VI%3o;II1< z?S=WCge(>N>z+X()n8|o=9&T=cBh%KVI0r(^}2M~gv#mux?O!)?fm_9-#y0aS3n;I ze_dk~4S(GmEK^1Px-&hH$j4td2%MVV1-;7sb)S4zp}#KauaJuUb^o!l9;(V;_YlZe z(_gn8M!M#&d#O9syCQ$xrB#9cx@VBx*IzdPG%EDhJ%YKP(O=g~|BW>Rlc%%x8}N+h zKa}+q$ZL4AiqGs}9DfK<@QG+o4;JkRDU#}78{j2aR~uHtV;4g6C(<8Cvy-R6lzcXk zAb;Jxj~e`SpK0+KYW#Bu#^jMgxO>hre#zL5wh}{v-YNbCO!^Y><^NNyM?pUA?LC{u7Yu`|E1q zhB@x9TLFSFm&ji?7etx!Z8;U<J`k@z*us)pwA;t~sl8wA{&%Hn_iT zcRc2TRr~AM_8GV#?U*fNs&#NN!-iG5g&bStvV+Gd>n3u3aCzkRKTtsq5++TOiQ|jZdyA$<<^-*+0^~ZEe zthv7~_W`xW?NMWSC2lq&f8D?FsVzf2HH3B5OnmUJ+TDe9)i9W5tgDRvx{j!h(O);X zp59r^UsoF~H2UkFDg?30{B^C--PQEhtxi;1Gx8C%<^Zl2tHfXTEk&z%e0DHvD@yrKANFL75eL1yvY1@PNYW5G=JR+)_s-v>mK~n;IEsxg8Six^^%< zRZfO!{<=C{jQ+a0_rn_KBHwh9CJBE2x--~4i}swy2lv;db`JE{tpEYOlzIC=CV^!z zw+#00axK0)k1wGTVgACtz<5V4Fy?x1Qh1QK7rB*v7`$K$ap4Ell*}3vWQ@jweSpWV zXg0iH{UA~xco*uU3{~8Z_2PAe2lLp`hFpK2oppp^zM%N)l6g%9|C%1mVm0kvlbYU2 zHGL0qftt=`Hjg%_R_(9j_5$8_<@uBJ{Jfz* zw*<{vf&Z=^&vOh`l%c&!aY6le@7<@?w;$>Y-p)V;4F0=i_{qiJ*MB!r%Xc%&XYPT7 z{{FiG2vgi$)GqG7>&(90sQ-@qqyH`c-OKl?ym;^-rW+@qkv{&rrxBnus5iwihvaDX ztr`vT_uqBH>eheTf44C~ZPVm_tW7VWk&6HBw|R!~{WF{`!sziOKKS_FpaaQ{`6ZZa zhEb_%|J}n{iC5EDiLFth=D!az#gx+?SE{fr>he>and zSKoj4p&@fOL*|P7cLLi=Der_`qj*7X&SQ-=`0vOjMDwfk-w9HEa^V?<{61wq^FjFU zl=4RD<-MQlUmklO=7!2!Oxu?=h_ms!Y?jutZUH5&?Ob`w0{llSub=>*^?{dk`oFpS zTQan!^dG(EPyc?M{+s~%mpj$4{+F)%)87kwUG;wj(0{e2^dI&5)1RT!|MqEr{yb1q z`YQwI-=fnW7C?VLvo$J4Zb1LW*E0Bz7=FISEJ5MV)%pJQpH)-(<3j!E57z0w9zefo zP3h+c&@Y>z)xTQ+{k6<=sR4g(4fC)6OFI4Ea{T!-w5IgOnGN)r|L&zPeEfHEoH~?` zNP%?$|6S)VwFG|tJM#bR!$ez^SNs;F&Yn(ZDaeLVp8x*J?{~^MJ>CCB`R_aj;9@h5A26S~X!ZTX#;hSP0+ji*r_I&?e_gniKAWeX9o#+AgqY+P~F$X}ODdC6aQWe?Bo=dW9iLaODjlj{5W>oPKZ{B^p&ir$~a zcITY`hqiYCjPt1O#XpBQ4}-G~U@#X_z9><$GS=EMac-j6Zq}A;sgWgBlAX9tSXSDV zw0N~E_TdLmNMa{Mah-qKOKC2TLVGEf+t4=c<$s&f_F_AUW9LN(6f8m#=K*M==0VcG z8z_+f?|073_t;&@GD!pSe&5WQnKNh3oH=vm%=y;b{>jtfns?LJ=`%im4_p#aN;(x*IZ^`y!4Hl-dml% zT+>IZ)8DP>*H@>%zF+FUWm0kQ>i?;x-&LLdZAqVhp{k^};2 z?(06Qec#5@+Yz4Tbj46J*Jdb%O^F+G?aSAq`&f@#p@q=uNRNl$%LYk51+gmnuo-vul|-DzM1 z#6HX)xOP+LN9JaE6`J3PM?r_Ue1Ns^P652%@5HB}k#q}!Rv~}Ny^&e-kA8*?%qyP* zh&xae5MPDM0o?V;zae-1E5Xk9eH`puKJ)PWf5L;D(FM;B^#0HZ93}VVDWoH}JPSbr ztS^X(Ae}gX?ax8Dbw&0*z>IwzxQ2}gbN`GNMCrWk^OE?7`1Y5x=e~LWdtS={*%^EK zNyo(ZS@<*e@B>K`uk88NyifL@xMyDJ-PqqV^uuD5ulxW9w&uPHJfS=2o^?Mx$?%o8 z$4YP^#OI2p|Dj{w#O-jT$`~H?KPM_X#6k!1lOn(8;rE_@AW@-HXGw4z_eLex@ z6L@Fuy8-cj5S021d@s|*Q^&*+-n8ZYsC($|b`2tsvFCrrzU*Jv)Lh+jxu~no@QAE* zo4&?z|NAcK_dWCej{SZoir?Nb@iOpbj}PG%!=C?`_sKqf_i2gg?z`CCC#1W2zGM6Q z5c`WxpD6!x$G*-bL>`~u^4dTj{}O#YF#YGi`yTf841TN#kNa;pPP7pnEz$;0R`LG^ zzpy`l$Bg|8w=S#h&wpoz-yePT+Cp@xV1Eu0^+11yPNhHlZg6DG4wU~7zXOTS4T3z= ze`CA2Fwn*6Kama|KS>9x*4N&t&t*lqc<H`8rEgb%U*X6ezoIZnIhxj7qeq1E? zNJVQh)?c;%Y03AYaqyH7*%O-FYv#pM3~ma@UOPasAe zzO#kFTg>ZT2r_d6%OWnyz8gL)mB@P2kGohupvU&Frhc?t$Lb$3BvaqUi`*6Z2HrS= zUtr<=3;#rFKRYlN_b|iGMSRCc=Hk_o7@UjKShcF>U*xt3;5Y~0VVLqc_(c}wTSIZDbuJ}~cqu}y0L4s;mb&^ohg zV&hr&Z@dzfV^_VggTD+Bb?(MR_=^Vpc`1)^W^m=izkokr3q~vFB23Sfd+xpko*Sn{ z{@@YTF>wqbZ@}oQ{^~HkC*O;tZ!QMvQ;(cD@%qH*m61hni8SF`^;moHd;?`3zKkGm zQ6xvs)ucu1ack)+H?pXIMWl(J#%sdIzavejU)Z_tw!2UriXJDXizZ%{pFiYWj+~2+ zFrM3sO0HaF;i9Ks7>TlMl(n3z;O81}se^4pfKyy{OmuX}>%<7HRz4+qLoQi4jPArATl1ukk+A#A_YF^dJ2*zVk4+wH~6+w)!oPi)5MU*=CYS>@J&K;>Dh{4_TM7pr&Q&&2rb1{O` z_u}Yp4F~U|)O5`iE6;x5>!-b46AyMFyzj)r9TV@o5dH)4iC<2AapX08boxZw*~cTd zw19$Be}Dwe!VB@zwSVz-P|iB{EeOoQw{i&f-9B1iVZPaW^L!@@7+y@;32iRpF( zxW8=@B_8N!u6@^&vT^vqaEU)!c`x$Rzlgz^u#RJWzyI|;ug{Czb^|Go@N*Ln zbDA!K*hMQhorBcMqYyFptR&X=6I|bqVtwCto30N>AuA^yL1isRr~igQquz?=u8D*E zmgASW{OnB&o;z?S{&rOZPL!~EbOSeKqr)aXP-Tp*+;kMwD!spJf9E1bFx+>^g{2~< zH#!029+>_lLLR&@J)ektq-+0e$C-S?A+jK#OV@TVW>#tAzV6c}9y$18WY14doA~y@ zpPqfgPXTupKYn`}D07S=`>aUYQ~CwmvnRVI?wR*9d|X{WgBzcSAdU~(db<%T)AJF! zs0Bf*F1e8Hp3}L%bIGQgj&?@cj&@8ycX^?7`lg9ZK;Ur-ly`9b*o=WFMM%OI${Y9H zay>{e{o9)+zP$-Ted39!FQ>5#*|YKTW$45HRlD$`C$En!q4ORBT0JNR><+hMVtUiW z&nMmrenGnk4s*DD9=-=*?k8OvH+RaBJzeqiH}O|#c^rD!Srdpr2KSVEG<4)t16qes zq5@g}?-zt+Jwtctflu%0|9*(^=}Lz>hVJ?r$-MuT4|62<-#vhz6Nk=%+Vbs=rXwBm zUf%Vmof8p6Q2$3{IMaV<`RngFELeP1U&8P#lBlL&w$jqOPX{ROUfp~L>jc}p2ccA2 zj(+XR$Y&0I&E4O1_G$13gv@F?c#k-U-gCR$r@;k4km`3a^Q?{YkB{gslU}D2Pl^b? zj<*%`DR7?a&qqj}CD*SheiSG~Zkj;*hvyID1)Ie+M}CZ%STI$#;*k7$+`mE~p2Z(} z0%%U)8qCy%xBPSQ{~{0O+duzVMoGJ$C~|pN64(Y|%k;@la}S7{d#kciC!(ZY8TcOdNjwyDdin z_s0k&e%@8YYu`I?ZR*z@XFt#}@eUB-y;DC<%H;ViOrCGL1c0K1*aruvBPNVTh2j@e zF@FEeoG#y?{(&Z6V3Myl$wxK$Jd>O;$z0!1 z$$L$5ACf1q8N^O=|HAnQwx=6TjJj@*@bD!d$t~%8cq{9}ug)|NUqO&4$(ptgry(Mg zq`b#I+-@I!U?2FQSb=G@56kSsdi(G(=oSL=Gy4$5hDK6) znO8!5#`*uW9kXx$u0^l+!nVh?0wsg+;y*YbK@V;~G1$K(4$Fyy^GXZl)+p40vtVC& zo2(RiHx?_T@$UpF`cVp>FzTIp<->B0_u%_vx@)8`=#|%SVDG=4Km1Spx)9*x6?}Ln zQ042#jr_eEjX|-SKY$oXoIf3mrhCKBS-f;!{PNYP;7IxT_`cK6nmD6#U)x!@mU)^k zeJuwt;eg8gt$W_0K1=b-cb!#QBHvEOPK>}&<2K(iITIBF~WcYq!0n3#9>d~|@7KF+L( zaWTA@<_{R?gU1mU;F*^yX8;zEf2)vgpx)1Vkn;igROLrl4FLIRg=D04i$T_dghA$+ zZ&m(IA+J-&VCUB{>Hb5X;<|moxg7_OpIN~vC#zkd!1#EBYRi8NYYUc+#fzlG;nx|; z{DPGzaaQGzw8XC&#%yBz%IXqNGX4I;_@!t(($Z8u4Dlq&J ztIuhP-auzRCBTPp{$;xG*2*C;41mWJ_?qhKCEgkkddXJ*w#v7)#1&fN!__6;D{UNp z{V7{wVdaZj;%qH3T3wgb{y-R@ax*i-Cfd4%Uk7)8T&gWLXsPG*Me@hsCsf9;qWPyKs zWlZ6hC_JM+2kQStn%xCH@YxmkcU0CW{1kI0?z$rk|A2*m$-uv}f^huA|89lF~3je+e*#Ph#RQTgz_{ARlQwo3H z^fmyWp}<5fz!6hJwzJ<-;NO~#0eF(h6L-;k5&-^3rb@sW5XTVz{T*jRcAo3W&M#@n z*Q8`vCVhfg|CdE29GQ%@+i^DTOt0L3I#n?oLI&4Q;L*t<`yk!1Xh!z_5hj{08j(-m zER$~Wz=K>kR)4c&-Va{?>4}4_?$+IiJi&w;-kL=y7>8}s6#?G@Umr2H1 zk-e)m<0qQ2sPcZvSQOcNfo5pjwaz7#GbF=BKy1zUhL&(EFJMlbICy1b@6Tj%Ed0D? zL@VFJ``)9GiAhc0qvE-X_ia_oUF_nhLEmz{O=A%|KXdAJ@DOSKg_4 zS27P@$zk5NG;g%>8n7RR`DOxP6`1i=%^0sdg?Chl-r>{mns=+_?W$m}CV8hJ4_j!K z%SqnE^%(xjS4=j)n*JA>-J{v$_{vQtn_phPS+iGY_U+6bHra@PxOYUe&(-WZm`%-_ zc)7?{0kH5DtZ*a%z8={Ohz`uZq1ksa`+5As${n!j zG=7l%$C}N#U3t)EgFzqC>>ZkYfZ1QS+2GT^((J1>`v|l5+iY;_ZJK?VW5odo zi%L7tsH^D|A=6tW-7S3x>1S#Bai+&5{mRk?q`#aH3QRG*>87K*VQEZ{*7n6b*)+7UZ1scDCdj z^%QwhjE6Nm8Nv4afN0^Js16sm%5Q}jZP z&GDUYLA;i~hoNJFF}BXq!6?5^Hp(w|L=G-I;|S~(2cKR+>*|C8Aa1^WoH*jg!>W89 z!NkJ!{O2?1t-+8=ZNkG%XNJ6~*Wne}Ha=i5J|<0C6XowsyxckQQ|Qw-MTps+<1cqM z;d0t9L5U|(bvvvs5_aY|auJGe;ukQu-|}68?w|i-09?K(a@)Q7`c=HDgYv!dLP|d>MIPpAQOvT%~8Heg>ZL%(aIb zNUv2#@uMET7r<+Z@aK?Xyjn-AEiEvAxv$pW*>B&RC!*vt+r;^uGp#D>6#O0I6R%Hw zv`4Ud7O?NKSbcwL8?my^&?^+H4|-Vbhc6o8EmqMB zGb%4Y>4bj;3~;ZRoWs0hub2t`G1Q84?MpZx%qDZHQXL~={aP-jK80^JVt=q0f1%}&5xjT zdt~5c{Jj?WlS4>b`iy`yk7*r0L27$s%TFS)$AHScQkOuX{+}S@r$~J$aw{XpMq-ag zZv9g{pq)ebd)A`UV5-_#Lfeh+#M{n~?8PAiZR?SNUq@nV9Hw0a_(uS-@Re`kZ3*7K zkGI9o;Vp9WuK}y;Pb79Aaw`?NNbG3j)^2%tEOP5A#o*)R$iR7*|Lr_yI&04tK$_V6 zKSeFWpo8@KJ;;wle-W2XA9yvg^mq$_8h5j)0d)BQI>vUQ{}G8Itk+A=5tMMuMOO4j zkz4l?d!n$957FbGKgMzzf6w6W9{fG!Ke^!{k&!&1lfz?AhIt8De(BLj=ihCROWElIi(1X%cUuubKw-uwIt-}jq$ z^6xMh7;-ZD9sYCd6|gWLoDsxPxTMnSw*usCn zVkD&K1q|9A_&NWnfUjSPEIpz?&7YAKYv2*24o9|po6VvMM7VqDD522ABS?Q3X_Ft@ zj@;)yR>t!b{vN`BKaal$@pljYzV}Mx+6tl(E&T7O@|DOnhmeN%t*9e<-#zT(%aKoa zfqlTt_u@zSmMHxj3G?!fA5_lt`IYGhr*HGt6TUw^y*Kp!ok}58&txU*zk{K#`71E& zcaS9afd(2o`2P3a`~1uJ{zZK!KR*s1Tl_7-Ulf0rP2O|tfyX~_;T@BQjvbvmfTyob z-h1o;dAb{U56jaLK;H4>vy+;B%jD4~4?Q&n8T~l^IpiLS?7i_c$CsRfyb9Z+5S}I*01pC zD4)K`r-Q%~e~&jWGZ;ob4JTAWJpaTGBcJ|0o}W1O#Ie1PMQ$1dAF}U+{x#w|qbHS} zq}$gfpT<)RPj~YvLZ?=i`qAXk$p@wpsF3=R_kK?JotWG%*iFBUddlPjn$PrW1Xq&| zZf8AA=UL(8gLv9U{7hG0Bw_aciy%Dt;^gtk2PcnK9>J?=@2Mvyi4T$=ntXWrZBIPu zzdha@ll}zhehcV$3xJi54+tGgr%htXc)Zym^n*`LgF-S!3VYPRa)e5Yh`{vQ{P7ih zZ{>%5K$8W-w+H(vo9l}Vo}k+Fe?dObpMHC={Nz!g&mnN+!DA0US(%)FFLb*f9mQCE zf~Y?E(39ZBCy!3Qk8n>s&T)HU5&N8r%AG-dPMGaM z&R|e}Tonh)YT4_@htJ_(HWQD0L6;$h&f3R|-e)%tX<-s$bBh2lgevJ6}4^##v zpYnr>*f+i=N(GjL2O;sfD6~bEe>-wBtvFa4k$wo`^VP_Qo`q=MdN1^Vf5qR^c)143 z!ZlC|u00M-??Y4k=Q!5Lk8g$0{rCXn=Sv5^iAu0?#~zJ*{y?Pt5Z0ExpV5?Ke#(t( zDR$uF^RcpiY!}2}3sKs#_#^m1Q)r%=$LF7VZU?$37|L9ptSu8N*G}_LmQ(8_EcockEuXojlv&k{*n;k+GmM8DxQBUR39X> zYg3gUgLiL-I{Hy0Mm|fGaN)2#g5agIDEjUJ1d6TcK{62dMdZf6MG86yU4GyZr2IT` zT49pQ*|UG#A`IDL;O4O&i*PHV{2zR_&kh2bP27=4}wGTss`_Li&1L+J_ z`w;#;`tfVXqmK!XazTI0XUR{ob|n4KCY8of;)Rc&fqzeYECnTF@z-I}g`%-ZQ|HD#$hWp|L1ZKLqSQ^ibs* z@FNtH#;-w6v-}h6`BV5O_M@GPneY=P{FDjLMQ)~dJCQvex$%FR$EPDVegThAnZRjK zQ5$~^V>B9nm_^R}T~-?zcnB;AmFWPXK-|a{QVYtHC`*S40323*LV=MVo4-V!g?CwS z7z_(=>P_hO7WR(174L2VNV6B10b^h?|Ng%ej^*>hf0SpBW$9hO zUOgMRkvj>1L=WR1AgW!x!(&&fkW{4;+<^9aXW^;`+y{e2j#XtfeIef+(w7|PqN2azVrr7V%t3&DT>t62%=Z-IuyrTr|dH1jv%g|!?b zI!m6!GC3XBb@mBed8b#}_56t+v99R`^ZvspemMQE;oFhMC+Ivno_w1;>eB~0=)Zvu zM~~gd280G@g=nzk$)`z!%D-bE1z(~AZH^k})Z@+9{<&&sPaNAx{dNhpwhk{Xa`Ru4 z49%A!aj=+dp4=q0KZE@?Ty7Jl+)wpG=PY?&ni z-6(Ps^&RTk{Co1?|5BFdW%yT|H=t0KX~V-nGvyu#;~u$`|I2IemJ@#pGmn(o7{^oa-*eD_xv^PiY90IU^$abEzf3mj5U|?`RveWGLvg=X=%QE z*KkkQ&N>+_EwL4`70dJE>D<`(@ zM6R68I)lw?2S;OrgR${KddF}fop#p%4<{NO98D)vi4qWuMu9{D4}T&c-)-)6Z>-OJo&cV$x({sr7pJnH)?ViD{? z7)_^9{&P3fZZEx`gJv*Frk$B(s^3+*mqSa#y<_ zTnP+YR;;|lSsFD%xU^}!R1oBy=CvR!>5lTG-gQ*M(xgoJd;9WLa@+{R*S zV`_o3y18zdCby6-l?%Bd3NNUsnDyj`Y{hf0+?1QWa-bfl{S;8Q1!u3GY-TXWP|SrS zQUZgP%?ysE$F^s3saP@Zn8(D>XnJUSBDo`($tDN0X)j%g@4d1TXH)y8t2(>e5^e1p z;+wk$y!X!Tf%d+x_V|`|FR5eQ)xqaPeUL6djn z`xCuASGV^idNw2muI`B@v(0P0IoE{g*SvOk(4w9!?FgZd9N=CHL-CfFDKj~kFO+7^ zCHE&w`2rxE&AIfh@$^s$vsPvW)7?@bnJF2>5~*Y zN+V^lG?Ksy-e~aM2f^?Nzyc?kN}2Hju^Zh>FX6DQkU=Z>V~IR7ng(9j7^xqyItP~~ z&RGstAyLArjByUsZE7?qO8Z#z1UeSRJB-o?!Z4a&Q4+n;4lIJh zNr)GJs5z%*UIH_zUF6RdSn@MPF3coSG+IRpQFNGAhK|DVD4A8A-G;VS1>Qt;Wo=;G zl;;y6%*^at4@@(;5yKiG&A{E6fnFv(Nw6VsZLt5f-2@NT=TU+x5e+qFU{{|-ZHZR0 zspU$a)MuMUe3iSH1z|Qf66zPW;hqY!IxtU7m*d#4#A;E&y4Q-~(ya zNC~?XnLcmw)+9FS*oAY2zYWo?1mr3AAmQm~)$OLJuiaxZVIp4Sei9o8&gyW9(x~Z~ zbeaGw%rJ}>ILooWGE=maFD0{U8nfB53;mxDDab2A4nihwZ*^Df!bmF1U5YjbcbC$|nB{|NEW7g}C$(&Gfg|N)YzA|(5u0TT z6phLREHz=@)r2MFG9|}g@?-_g-f2_3tE*?dF4GI_hDsCH*;KEMTzV&o8)!#S<)~)! z!cMyH#S6BD+!YFXkh6mzXJRmu6LHw&F1IqpZWo)Hz!!iJ6K^#~sQ%u+x&Gci$Z~TjYvHR+2j2KufEn<}(Fj3q7psMc3saRX zC~_+d;Z&6X(^*L%{Fcsrw45$OTOP~rpqK^GhSSjU^Qx|sbrv{zkB3Ejm2JM&L9no4 z<>Wk=Sr5S?>zM*_iV@yyi$nF(DX!d14uxeBCJ#H`vU>R4EnYlJ$2zKFR)B&OIW z>h;!kK`j(uE$6CDz1Svq4s^!55(6E5?eVt6I_$Pp=nf?Y(<7N2h@45KvT1)Kn=EDW zIb#O!b}t5&_6l#KJCsQ0QmxgHNb^dKWb=c`thK(tyrc5HIv*JZrr7ERUfeaJfXP4r z-F!I*6PQ|Zq^>G#6d+LE$E`7CJ3U@5j>6U!Xb^@ZFqfzzfplyHJT%Ai<8_Mo*{pKB zkOzt|g|xbX3cb`&bsh@oo7a{`W2MnV5u!QA7AV16-gH~# zP_aBdj(xc?SE{mZ+b$7FSrlR*AD$J5Y7|3YqxE5iMiPa5zErd$1g&p-LJERgWVESR zVGPD83v&4s)bepRnM+ymP=@lAw;3@P_2raHitf%NW&;MYG&bJ6HjrW40<(gQvOU z)X3jddK~(9e%R32R!F`G%;VuKW}Y2eZ~6`<3x!O&VAIWj8%)NqS(z!1Sk}#t>e2yK z9eaTMSb|D>G-`!mCIuatL~F8Km@lN#g|sJ1!x*rYSpkL$ut0)e>vzDGC5Sr>`=>)q+w>5 z!#ghClH~0*hY~f_OaJ{PM>@Y3P2;w6}gtmR; zx)>J8wbBW`Wb=+q=l;)2FOO^biXc2*EWA8gcmZ-?dIwt%K{qSO9viBVVC{8WmJ4Kg z#sD7KHMQ7z;lXj{dBYZ(u^tE~e%&Fe9Zd^bpWJ4m)l@9dvc_bn6N=p-Q*`s?64w^d zFN^LrCNJYZ*PWzYsfn0~CCjgJ2ofcm#t}ws`SE;lu3faCbL(OVx~hxJtA`9_=p5;7 zLF*wSEBj2Wx~)YN72ysD+e_} zc4NEH)C#lECD17vV@r!pJGA9Fl!+}sq2h&L&kH?OxG{C5oQ&ge+~%1TS<|Z$n=@nB z@+EUaX%sLJJ)3&nP3cmS21Z#Tv3$u(!UGN`XY={-a0<0OoF#*rF!LAl<-$<m}1lT8OmoJ;=WEbM0wr-n{@EKAFP4>axt7J*oKm>#;&Fa$BlF-wG)CM zGXwzxO{$;RcmH}yfxO-`W&Z#u`M3x#|^u#pwT8Zov} z;lGY6H)lMtP??huT4ytzlNdA=bUE3PU9^YG#;0PZ$3tFGZCC1@F;^Wj zio0_|Zj_i&IxKL8N)(ciYi4r+$>i!I1c z=ZCRJEmuMewMjc%fJ0h`h5e( z<3|Cdyx!KhGKCcy@P;LYs^bLaq9U#(0W7N8r3JFLE8f|iSQqc>>um26o8*R`zN>zx zrz#OHJDb-JboPWnLxmH)@d5Y+b=R#Vlvz`mmph(?2cH8pw|@i@)sdm20EaVEE}bku zpG~Ko(cR+^ccZWhBnv~M+*~_wK%sDpMsr!X+LTgF(dHH$e!SUIF4J;ZP6W!*rAys@ z_`X33yLiUB42E94y0N%+?E$`gT;rT>dF?p+Tb)EH2 zZ%=>cHBLI`ba(ZGnjQ4v!g3!&5sc>uOzWf0=Ki?Tvf_gubXGbmSG4@s6{}W$&}pZn zbE4(kcI>}%?r{`!c${xmLQeQ+5iViH%nio zzOi;T`ZEb^W*t!eq^_^KAB??dRw~7nZJB! z93BJ1c_;j4QUz~lZCI;tj2guOo?j<)JWTCklT#md0LYIebGz%6Fjy4QJE0J|!SXXy zmd!)hli{jb!)(GKJCq5MN?M~jmq}x(({5=8#xg~*e)-4`XVTf!3_zp1i{xMzJ+1@h z5yMsr+EiiXfuzb*OkgR6*$jv;=P^gWq@%q zR7Ag=PBRYd8+B=nn!r?*>&#Ke;LHbQgt!K_M|Wj#j2)+M9S-`PP4c4-9D0mFJvt4_ z04-QH=>+P)zivBxlfb>Hw6hv#3hCjs4s43~6qjJ~?$B=6A_8dWI!F)mlPWugVNn5w zGUc@6luC^Qu*}meS!{JSL!pOJ(!TCY7IMhIF%pE2C@j{+0XDRYOBnO*X@KX7X=i=! zW@kYEiY~;FYw_+Ffboc)l_>|0Fx~32*MnUvJ>-?L*>rN)ZD|qO8=F2!B2<^WORBQ! zk6&4N&SrABs)!}kn9=sJ2&VS*ws%8IZR_lZVBhMtcW>$J>*?Oq-aX*1Yv0(}?aTtu zj+3ixsq~J_Q2IJ&+bH&|*EuDOF4fXjw-fk4Shifqb${iBIF6U(tCiq&azvulN$=kc zP8)MYwX2iefpK%u3>x6S5C_STv7{U2Mh(rjHh%EJVzjBX@sbN6O1i9*Xwhv@n@>Y5 zB(ugK&%leYL&D)9KjJp9&W2W}O&vnP*OHHe3`kXXFzwR4FD5Owx>WjI@E|DeJD~>i zc={2@a`9Ts(DbkjN2(>Mi)l1#il;6cH`UfDYQe&VwZdSlz$lsJOxx{ZsYug{0wzjG z05#Q{Sr}*w1(1dQdEiN-yO?U@C5*^;iPn4^mc#UqeX(x2MflrBD4j#K&s@%L2{nvj za+z}dvRTOQNEe3Tbc>Be2{Rg9pjy*|MFzZU_+MDf@!_+OLKZycI`wz*pl=jhl4^=! zQ6tHq%jB}X9xKtayl5TKhD1w}g zDwQBiyp5H+0~)d5rHtsR_-u8ciO4z2Twv?fYwKYb)--UUG_<-`V>>s3Cb4fsx8R_X zPUc`BR`1@JgVnhsou%X(&<&}PUEtkJwgkq;P=Ix~>ov~UF~<}zW2CK;#>MMcdvFr3)- zY{#U7ZGq0*S?DM*XlKY?DQwBn{i?EKjY`dG>p^Y` z6YeC?M*Nq(?s?XPT$98plzl*N*!|P&W-GV`cC@R4K|W5wet!!aF5k}COR}@p#j`SNVEvf)CPT3hkQjFW394C8K z)ppvqx)*cCU#tQrl?OL+IV^F{Lfxwt+dxH_fn#=lbKfcwNLEwZAzdA@{;NeiIm~kz zu()ERgWEt$o{>VJsI4bJ6f6Bh#W}(aw&q!i3kp2#^MTz^MYtPc+w|B{M;F#fPb%QV z7<5sLZE@RondfGA5fxtL6i%g^=3IyhB+gT@(MX+Qq193d{@L0j-7e=|gD9@e(&}>T zZc-vh1~VhG)@R4N*GT)@ivi~MSr)o zT0o#8UWT4_0q4FMico3j>34BhlS^k^ZzdWNcq}`o7JR=~@Rcnwq;@rKXs9!%$@bL5 zz3#*I9Te}LPS5eRmEdAT0XsR|&4a0HBw!D;i@06sZ2@atG~O*%d{UVA55x!h69b)_ z+WX+ZLWP&75~8Pry~Kz^8;oTZlb0V(C3nZfTpX&v>~3=SP6m}(;V>)*QYA*sT6gojXS|HNM~WM0;{HkRdcY2a;O5@ z(5cr09akosFQw(k_6phB4(DN#Bq*mSTbnxqNLFM2hSrRhqDjf{y^EIldqvppeGw>cyo>9SDT;D>9rPSm{wq=5S2TTpj_&M)v_OF zQtfStuFiF|r2zYa$6YBh=RbAj+i5sO0hAz*5neKQI4osF)o^zf^@zC``Jap z?gzO7#mrV%)C&>fNWmFQerIth7D)JyclFCD+7@w6P{COTgeo7V0!qTI8S7VXTTgep z-?VGD3^aja@^Azpf0Axnj}PQo-LN(Ur9no0jfmiC|lZh@r+mS2tQ zJKpYtD55Xo>Td^JbjVXKw+ylbdJE+rcIVVOPq_*`NI*F{t%4qkP`!#hfc024^iUoP zAVR-jOV05WVu9n;j#)3u1d8z%GZN6_1DZQRr(k-Sr?;E$Ek@bQ?-V_7dn(D$DX*~dI zNA>b}c>uFSJ6fHJ#UfYo64_2T1)3OC9oT4bWy&{}*~N%kRj~zOz^vIZg=xakM60;P zB5HINI_cHwYo%D2^@5ra&68gHI6{Z9XojwG$*?zM>Iwj}_UE9&|C{9I_oypCb&5c%py0htt)F7U+tk22^5|We9)ET#Xdju_^<<@E| z!Bg&&fa-0E;CZmpW2UOHL@>mPYXpzyK~PnSBUObIHXG<(;E?*{MP}nPy9;9+zJ!l!E+O@&dwK?`w=sbn{u}iJL$l6?l#Ng!2P<}YS;WkPJ$A;ew~qKq;!tyg-L{hyCKs+`#c}2pm8wA&ij{*8U+m7ZH3t^S?1{ zn!a#zLt`#(3XuUkvos1rZrTNR06Qer&8iHSnPEA&80hKk>FU|IHL5g6jJ= zQ%k(U?1QM;TGa&Z%lYvpQJiV5f!hOig>d!589p9{GrOp9W7`QU-Z-LBHp4v^CJ(SZ zNL|3r(uPTMWtO1`*GF%aU#1oTTIy_r(Azbzn(k~oHQZC*k|B?1YWU(I&FBnNTIiRj zyB)D<05Q)y+MFW7k;!<_;BFpOPeF~)+;Xdq@82X&a*d#VlgFJK)Gt8?=uCm_j~WcY zwR(UerXcERndI`Y#P$-SUEhA04252V|nny6$c-xqA0W?MI z!H_nZ--$gy0S`Fy6HOWx2}m~_5(B|9T~_2OG`%S-<ls>g+NE| z+(BtwXY}Vr4v|nCGiz7DSt1b2lwgJAMezoo(QuOm{Wt43UGBJ^>>Q=6NumbdlZ!Kk z`Jjcro66_l!y#^DEN30@z{SC2?Dy5i?~jz%QG385)w^(!E&@`bhZ3gx2PPx za)pSUtd4%U%>4Th&Qxppmj|Yj=E8=laB^p0@TinZg)UZk0~Pp->1fOV8&1_C#mj zrmi(BoPZVH`h<+YyT8s@@QH;&Uf>C-+Ite71D=fmRK8wh-$0zurRn0=Vzf| zs;{pFI6@7T;sY5JymRuZ;4(6VYmQ0q4Lp^_XdiS}=@PeAYXikdn|ZFDlM>Q{V`O~7 z;K^LG)EfH+gg@>i7zY}ET65~3e9XXM=H? zsv)-Tt5e)PHkik0jSiu^o}qU|qH~F(+b5^0of`en7qO}grb|2Nxsu9^P{gW@5Q>7C zSK%_kAkAEHl-Ve>gn9uH;;XqkGD+7S&=@5H&d{E&X~)H?(m3kTH5JM!R+OABZuX4c z6>;N9Z#iPLlbb4(90|!m2X^<~${8^Ki@{rt`?V_XP|SAGFixoEfPVeP8&Eder1org z7S!C;8Cbz-{9gT$wL!z#rI##4)(4PkN70HCj0_Y8W8#>tYRDo4&12o%?^UzD=U-N> zFWUA31X)96Sk*|gau{B)hGClds$8n*9SQllU8cEAeRD$~Pb9arfWR>ek5J}0eJ^kX%Z9TLI&JAq;xh^Nsn(Bvrc21!yeaN>W9LEu>;&LQ3^33R zkg|Db!kpy7+;MfHfAhNj_5t4`B4C%t)bxE`uif{kGb1n6-rkann*w3f8JZqk^}Cu-qyJ;8j-j#V$FItMr~8 zTcxF&tCQ-MAp(kOti1yibFh?+VB5o?7)obxkVMZ0!@nk65%g}a2Q!k6M#AH4JIc^8kIFt9rYyV$Ud{4Z(_d&B&AH!3t<3-fV9z5%-XFozopG-j#9=SFxYY=*Gqf`bmOpYX7O zLib7t3*4RBC6mXLlF4bAY$jz+EFu=jJFb*eT$!O=E>j${`5iQ$*b^4+7P%*I`_ftQ zCnx9FBMje=XX~(wU0nfZE`(Gc-Fe4$!j}Q@M$Uk^F*ht`povO1>##xM;#=gagpH_10ID8yJ6r9A{CN`-o{)P)Lkn0vhNP*vyg*5K)T-Q}gnM;56w8D3d`V(2Jc6NM+&z^LVx%($&1Kfw zBd56FJHA8qr{DpHdtr!81S5-8vLG;rGb3d^3KlgM{|sfzVp+kor1OR=UEAGzJ)GD~rd z|7)M6Md_uOx;z2Fs|=&1(s;3TIWAcv;v7H163Z7xmO~{JJ=a`euDkh!=P`6!UFk7L z)O#%E7-}O#3f&R)qKz0pMzN02r3;FR`XB+_Wa=Y0@FqbB0!4;ii0iNF@BF>?x@`h4 zE>ei)M*cFM6`UO0zk+lJS8uxY;q>n(t7Xwncyj_P@850wV|jy<559AVW*?Bis%n5Uv+ zt`H>+S2W`W9tF826V1r59mySVH7C*Q6>?Lm8pD+?&K{^%o`#M9Y`D>EO;1%qR7^?Y zSP%D&?PvzVIWJ8Zj-pvq6}1%4#xd8R)?;r1M+3|sDrc!QI1fQ0!Op^N;)8%Kr&#Z) zNQhw$ldOpIU~uLD@E?R@4_cA2&cm?9H688ZA}-yA1%FxpK?T6T+Ej%$!0X^kUt{A* ziV2eB7lvedsZoao_-br$)iu)4yBoEN(^$-nLp7uOW-&R;<8t47gDf=6EhVzPE zFo(wnq+i2|hGlNUhIm(hdqd1^h;4}R9r_D@a!`O^CmzQ1N$WHN3pBJai&W)rY(NX- z__8~VEi4Maj&9*0rqYE`-PxIiP}d*Ksy6GaVclBDJ^|Fp&LD#bXn*vo?*DP+z#QUb zLC7kvCX65CGC0NFKjkbAN=lM$Qx6o$p1y!6#JG{WFxFuaT2(kKKe19RpS>Vhgl;LE zA>pF47c<^0HN_O0KrV6C^#K%Q3s6z4Fjn9I26cO0Q{~*C*l>-!1lNm7jO)~pO37Rr za!uTX=mkn$*`C>iZ~aB7rqE>%qEDnY1a{JhHgbk;_c*LsE=%a9l_;uR$dzMcc!~fg zp$1Xl1TAA{h+_?RDz+`G)3%~eHDzsRM$kKALe(I!q!f)Ud^S>a4~Ke?A1=$y1Ey%T>e2Z z7OaDXQN-F{6w#a&xh7tXe_*ic~?2TL{tAJ!(j7BYGURuGWO96(ccA|DBc<`6un zC8=;y0r#z7vn1PTf@LZwVU=DdtENQymA_s$X#^dHF~ujx84 zWDYOjMO$^GI_n6G4U+XR}qo;O*(%7%KP}&$WQR)69-|pOs*& zDhaV=)~+E~OcA{&^QOlZG8o*|%N1QW|TovdjH}$zR z6_Tct3>-q#;=Jb+NFOXPXYvONg*s;9Z)$+EP^@|kiJ;aFMFpWv#m9xw85o=!!i_pE zZ3w=1zXosMSb761(o*BkCCKdv5n+Sx@`HzoMyM;Y<6xvW2WzxrOa~6`WI${Pj7L<$ z1cRPQQNLcJ?Q-42y(=iLvcIFeMv^w?Rb`MFPp4+BQg4PyaZY8%?q;kK*qpIj9>@P1 zFGDxqO>wXyrWib)$Uq&egfxW>=ZklG6zq-tdMlh#iyPE2P~ zlfB1M6);_st76y-dWE#kt|3~X!2#wTj4fY7J7yrxS%7Y{4(7lGxG-MEVO|m6!lrZMgdigl zz7-~EyaxEir!4N=nyAHzKwdya~@$jb7w)zFlysv3mCW9SJatTM~ih$Jg+}+|6PF+bx<)gLCIyMmdvC&z{=)zU~x__ zHyV{WYiPeoEs-*srzUxWQn}s;VMfTe1Je8=V_ui-TKZX*Z%pA^%VuJ6pGwnju|>a~#2%=+1CfliM7oP#JI6fuRyR0TVC|gCr&khz;sF`0)P@}~ z{23&wHkt*2X+G9uncI*|R*vGf;p+mCp)ClRS(y;P5-Qo|6!H0*n0+yXVCyP_cyy5v z(FMOP;!u+;M_5`l=ORL(V!m1m%}^077UFY&9kh2&^rqFW+%LWca{lp~AkLj{O;>SR zCN!2^a+sPy-OCX1WL0?LUbK{e==ax(AQ`PON_%79>QSHHVZ#V;b5tgVZcn-3_CfUPmtv7%zE~$2 z1L&=02yDOV`zBSAOv9!$YSvm+TG%=Rg}JNvZKQjU{WwqP?uC^_fJ4blb=Sd0Ku<_h zaW_>Gm^bzNo-o&woOCoPz@muBM(xw83*0=Pj3S#6ZTRG516hPfu165*QU@CIQd~)5 zeP)o+AxVM*Dr5{h&HucfbmrV%s8;%gFijR@e)GN%m6P{{P-qVK9V`m~4Qx{aJyE=^ z#P4h~sQb8Yg6nKaNnhQqE=EX@13A?ef@7!WdVzu-F?1Z+fT_=MNUZQ^Gv%ZM+KbSS zb0C6FL**jYEB`q{o2o>#=?f0r7f9v#;Xyf5Mc<$%^tBIc?(4>L*-A57UKoQd3|hXz zjR&Eq-;18iW!r2Vy$`3*U=++1>#keO%I3<_URgz#@&y`Zf3>T~8X`m4fuANW=R4>7 z$^oB5Wf6tJ$UwVl(msGM2~$eSCw#H228|chco{uCu=7|@uhu}mp=MS8bV&<tt}F3d!*7!{K>jqm}N0Pc8Fr1e92R#i}?19#E34HiXh z6?MkkO@sQCFx82IJp&rbW>BoGS}(VO@GfTpfo}*xrU6;lL|ZHqm2)8yCAI@qi zlu9QnVFT$h6dDfLz`7>XK=4CuR@dZ?A;e0m+KX?_=5_6T2`(k_1qghV77Rry)Pc8b zMUa4gYU0G8jGTNL>Yc0uGO9k1KUqYX=235}e5`>6d$ozUV058ZK)HqO5h9QYMkV3n zIIF;erM_K5OmREMq^F<^Yf!Trzap&qrr)RN`Sx>s-bc|x^%xtqVrGbcz8LZR+N1>~ zDD~kP=XF)Fzzi}(t=p3@2IxOYYx^$xw;fFs=NB;j%J?=rI-Hg>Luj9Burh)KJ1Xr0 zE+H|svCSWO|78gzcy5`H;v z7G~3aooXq;k+{Kp5FAgxGvHeP(10ZIzxc}ejw^8T`PUV&IqmZEJV4=iErO2>doVt4 zh;3PhtQ9xiAkV04_&Z&GMiku+r0{!POfjQhNK*{f4!7WKjnB5?x?n5kwy~`uNp;l- z)ebi_Xr8d`VOz*UK=~Xmk%icVO{63Ng7Cf#360*z+XC}la1OW#ShVdHOOAr98QHEm z#ci_T@b{}S+qktwb-Ex4{T=_^tn}Cw*B=LR!p!^pdi9VM>ZMyj$2`Lwbug=*2||Z} zVSQFQXkm{Ui81)Sb7g4})}uR8x=_EHL<)nW>!{3xs?|QrJ6~qK$1_eB!X#xgKBtp? zgJzw&z4E(a?LzXU-1;o8b9z<|hcQ7t1cTLKcF+^kpGBB6oI`o}o@(7mfW2vu8dZew z$>1rhRntKad87^rKtPQcwDry+tH8&S;(DfsmMo>Ttv^m;+ZRblySZN`SUri~O) znTB_3We1!pYc=Bsk>n4lFP!`|GgG7>N81i@&7?D!SEG?a7Z}$tJmIi@y^ryt}@B{ z=CcQg^<+l~A)~s=ppKW7+2v)BzOtYqNiKVP@R~7A)~&$nlL%P3jU7~`QIl1)VL;b$ zr)9&6+v+cPlN(md-ViY(51M-Iywkc9GDBd4HCv^q!QD#C9IO@!gN78QNe%XDezkB^ zVa@j(jS@9eMKhFuSw38&Dy8x{HcsL|KM|NaHw622a7|hOm$%GrmW_ykO~2&_>dWoS&GhbPFSZDJaKbri;#DqfIIpL-u|>2 zzVecf+Zj)DP*r^{M0U9m%Bpss(>3fo7-0jN@--&m4x|1D(t0 zTi`hjz6E~6V{a>ZGl$;R`36SbR&nYBZ%dxyxZ7f?Z`$=^MmDJrPHE!_gqeBF7OrQC z2{Ew+ETqS9O(w{{R7H&8Bj5&7w=i2VxHOJ8H)eP7d#(^nxBwX|=3}djM6k2dN&_BX z7fNNiYVnIZ#Rhz@YTQ9_$GQv{;U?yxwyGNdrc&&hpg5+p@+D+!?Qs+Ux#@q6Ni1L* zeuKh9){&r?s#{(rh@HIkAw+ijI*YGbQGF>UJU8s9#g<7!=1NINK4 zJ2>MKow}$8!t$z>22Y5^D>uOnuNk$}a8@@$Vg<6AK@bDBOH5?!)yXGl9HgBPd;>y- zdxA}Kz}}|ZUBqtMQ;J!q4uUw94B#>ojV9R3A_EA-%n${5-qu24BT9F;Nl6Z(ezILG zd|D9R7Hl74GcOgUAhl84iM)V+b;h-yW=f>_Hd^==QZ!f-0C#3RI_%S-g6fWt7 zU_|PmnHS4k0sgI|B-bl^fEW&S6tz>9KJO9hLD_VZ9(kBI%W8fGTSoCsmf@gHZT7-nI1BNKHzFG0^9hX5lLRu=38QM{dS@z{p=^xV6L&WZx!hgXaS;4t%gj&58gJ5zp7sHU0;N>HISK8Mr$2F!7s5o)T8fvJc z2O^@?;6u-Xs__yO-Q3&j^XRwwPE54PnbBJ2t^a7pQePO(>II5=9ek)!`(^-$Onagl z%;2f3yQZbe0pn`Sqf%VgmP1+NKFJ>@G{z7a|Z z1U?o&FP_>#W@w_}h`QbZ5+~7MPSsR3^#o^Jt9MRgr=KNW4WJP=7LNSpovqdYGeM@j z3MwJ)%qR8Qg_=st5t3!olVE1S3}U=Mlfni-hHw;Pi0=`5Z*o}Zzrq6`^s-G374Z3B zTbeEdn^906Y$_rd1D5N@)*V* z8J_`fr*TrlC={fyOfAE8$!J-e(yUM&A_5t9ep{=wXMT3(2#%0{B53f@h^!-LT{tPG zv0feRlraPDojTZX^0F?*@cEUm_Hv=2n1IO`It|Hf!v>4-ktHk(Xr*F*h10n>e45!{ zZN6qcsCiT5na~kKs@|~yglv+fgf6qHu&Ox4;VIpEEC31PZ~&1&@qkYzXW)@z9EY(w z(aolIzL5oumoDVLYnwHGy1wUv?POp+u&6l)JxNiIWpQmg!SEmceFKZW9qIZQLK~ku z$N8ps-x6OlnTdR`RyjGGn}Pr2wUS@FlOb-U7C6>0z)`=*A10f;jXOzyYTM)(D92}W z=AoYVD*r7Ax3X1WP0smt94&c^<8al+joY-xYc@yD46HpJ$XQ<16GS7GiLl)x+NuqU zFiSSreBkL3)ki8pPW1e!Pj>9a)GX5^ClVH@d2P`AQLjx}l4fes=oMIUs+S|Qrbp)q zNKH858sw|b*kx){HNaIPFGP-%;L__=0_p9Yzx!h+m~%W^K-4*4pxB0X$~-8>h3}c# zQu29dczux%dYno{+6+)t9Ew_#nQOK67ZC#}3IDaAel#1V*5+bkQHjSrn%WM!)9Eb> zNySA*VkbMpq*)G2fIda}2rZ+f$ywpza8-eFrn9)sqzRJ8ikv`}yz?K0_S!K0^Zbe4 zj4tAG-w;;=s2H(Jh8H;HamKQS(j(555@`iCiT`9uTQOYQp@7NNpLMmcNx@RMS|bP9y(f-J#YJc(zJQFv-_hf~f(O#U@)3=T&IdPwzb-8Xa>g!DVn; z2FATYtYB7Q%ucei6?n49%Z)poySA79;S|ip2waDLO6 zlB4RJxHb>kDR9EfGCr50N-4UOf%VISaMqQ`5`{WYU|p%#57(R(kVK66*BS2$ns#TU zk(k{TVl0!w7mh-9|Byj-7wye~>ydTft!s>FGH8^>#Me~cc8!(8yP*>@U{j9OsUlGx zG<2@hG>&PLSrgp_Q>0#b${vpsLC89_s3mymQdnw9^@|%Xb{cVdf=DckdFG(vu_QN- z_-GuFM4Y}&@qq-xgPCcz_(1sq#5acbBO)Y1XH+twXF#8$*sn1E2r&C&VtVqs{xv8nSsswm+u&^XtdYSl(;_q4Ak;0~2yc6K{l3*<{t zhP&(#CM4vry>l6fNlF@Q7T|zHWv_6Uvypt} z09%}C^6W&i3BNJuLSDE&E$F|p8vl(fiNI%l@xHCn%+>Kud^x@c zA{`Jc#k0oM&4W&bfM&?Zkhk>W`}#Y3x+P;E-hUNJdCwS{_IMXk z66<@q`v>~so!tY{@TT}RiTL_~&MgR3*S@8_t6$M+-w@y2HDIDFO42~QZ)5vF0*!a| zph41yW!VtKRA)~gV&Qttb@lWhyR%!ewaQ?mMTM&g%P7fho&6d&4DpIKphuF}(KC?X z$!EW`DTr35<2wwR6z^{9YR8hXu^Z9kB&oBzqaElaHbB+r=^p6o>5}BQ21b(Sb%E#g zf#-i}!j=a^@8Q0P4jrS$`;@umy zcNoKs-3dgX?9uAt>w5Y)OkHs$elQB3)YCuE(-+@}6W4gJyw?P;lvHqXJ1f>fvcWP< zcuRq(icYIsf}ujg{zM~FR4qhOm`W3fzzK7eB=oQEKD#-v$oqQY-_;c#pa76zAd7(S z`s8f@B=H`MVD3co(1)$Y$Eyyi3Ud{P-5Jpqu~P|%JRUw6XoQMEO(W_95-RMZfM@Pkz(;M&ahnRA7Cqi{FUmh8S|EyCg!*5UG zb2>Qa;FrdsK1pm;DkFXy4w}%WZJNG1t%110SI{)ptOinzN?vS6fa!pHMOc+K%W4Vn zU$UaSFLTgK_6EiUtfF>xZ&Q)#Y=V5^xNLPG={UY^j)Y8fWc5|89M(p$&-vqFv~>o2 zqp{6s+H#=}E4GdRE@0UHL96C{3?R{1TqekvipTM3o#A{!qU8~DAZWu{o1ujYK9t7& zM#L1Qg&vVR#0kQ5(yu|9*=PN2OtX6VC-L?WD`8{Tjlq83&`VcW1Bp~Avobi-aIV@wkVMjZdg z!4woTHXAXQ{9dwqMIG2D4&|Q%Yx@2F0V;;54vx{+iJA4cNB8 ziB>zQn^bmv&Bdk!_nBZd?_Hjy4#{zuC9jfUD)kDPcjWC_nH-0M1~y&##O;?pHG5BZ z(9g!g)o9plY0)?A_>#j3`-W+o9L6>$0BK(Y(7p(qeF@bUsxDL;Uu+S-d7I)jiUeDs zt;<$pYOr19FFVR#c9Xy1PF@o1qj}LTnioXpN)891f=C;V-BXB zWVwX1&;o32AA>_8+SJzI0hY##2j2?mlOak|C8@+2<^8j_-Gp1d^UrP;m^%svy!J`>13iE{HC2$AvKP`P?{w#iQr3f@Fn={B+YkOoI(kfpKRJ$(X#S`m#n(w5azX>O8rp4&o(drl1QWOysR^C+7|i2+Zqf~s^x z`NmN|6>NTI0@I}`bx6KGQk6I^cFk~cWq>L`v+e{^(>b*%Mb%vrakj8-`D^l<9u^g~ zi;XDI9{ilSfE4kYACCGNgXQdY#J=?rBVgkUaGatmoG3!IBb-n=)#Miw&0)3cC$ORF zYEim=`|fWCOR8=1BEK%;NaIT@&eHr;Rs~L&V~x-zW~foSjv>+dRv4dFn*bjzufGJL z$`KekSORrn=Jg#1mO3ZOr#aRMJx%fdR19NC1zU&{hnPrg(w%*?ph zuGK-so^bLs2E++D5E<^1`v&;LZ+aY`KpbW8cnc-{3HaU-OI@%7{fCp69WOdbsNEm&*x*BU35}wud>Ln1P2xTw5!kVK*DLp% zl)?HaBTx($Hn)X>4OY`3$}>nSQtVA6A`kvB7cXQerQA@0YMxJ(S=mKQTu`P@k!3Pz z1lGqPXbBIrOYGVWqY;9bk5Xq-5nPK#pbzRE?Q?ekn0^?=dN>Ow)$OJ!60RQxHnN>q zBG+&3>uc{GNOZ#{|GS&pH@D+nlg=AkDWwK&a$q5z4%8MfbJ<7qlu!%}pchbmrnah) zt7&_8CY?>yMSvH9Nsi#TwvV$Z7a){nA{bA~yjo!CFbnCh%aS8hF*E>h)CidYT>3EWILdZx#EGDBosU zRMlCB3M#0<+s1p(6X4kF>x`lhG^ooA6QKyBBwSX#cPu#Y7sVYnMmz)pp(tz;_!Y}J zFSZWPR;Su2Ee10dyE<@hUj#3_gQaeGCi0V49#$uP#BJeSs zCIVLMIn|2q$x`~m9n$YR#pD~R9Mc2QE@ePHBu=r?-8lrx98jNI9Vp6g>247*XW z#x7hvJ){S??s7?udIW)sj1LD6vpOs|PXg$AnKi>fJ_?TpQ#jj6AFP;yK+%ozwJd%l z3^-@BPx%@eytnWrEVy?vb_)6+9@LaKm;-@@i#1QR{TV8jnOOhFU` zlL29Y0}C2tSoy_8-0P9M(tb!C4HMB zaE8T};xpv%X%f@P2l$m1d>~I9!hj?0c-Kp^o_|D{UrEOG{#-hVP;`_e)P|waGY=n` z^DAd6;~2030m0X`XurjY3;y9@hC-lIGN|Qoe#;BEE`?K_rzu~0NfTX-nFtkCVBn}r z$Pc*4SS`^0ysyFT3LU)*&{i2fu0RrvQN!7ZDii^&j?bu3&Zaays%}z1o(LMDS2Nc< zn(#p>f}7^H9jTRXr%0M*_~NCKB{*^`(diZtL(dX(x;6ejMsj6_U=MU0ZJ#T!(>a>xCBRTX)?5lY27 z?O|ea>Ppqnh9lGoo&p}jUBSjrb5gc_>wJ(6*WC<{fji!;ZtOL$SXSwqUF8`>rzWyQ zqOaB?l(3KNPxE{-T0D%~GB0D~ksVNJ8YbUZDD!Gi_JLx5!F*S>g< zitEg6A6)OqoFZP+R^D5x-z>;oy@J_v3pqkdT)yjYztnZ}f(a8-O>PS)?q$%PieID1 za(V~Ju=cYgN;oY-1{7?PWMq}9m>~m^$oiC?0xEGB zwKfSlSfNUIK;4vtZ&aPTXvn7d&)3CTKyUXif#YlNHVYA|2tkUnvnfXo!-=wMf{{H-LP=02mt+g| zG}#c7`^>lo2?qtML*l6h{(fjSpw2uYH`2LBn8|_!gw!ura;55bSxaLpe6?FZN6{OW z8H!>WP`4&jRaHdECaQPRnYkYZlRXEhL}tiV)j|!FNhedwG!ObNbsL7Xiz|W3ZLonZ z0kPD@>W{o%-EJ!w#{ALIfzSDo70c9++S9jGE|+w6>-V!u^Gxi@h3X@aPy9Fj+84QK z{WVhMEy7j=4hCfT!Kb8(7OO2>$$B$n?MzfIJ8LmWowW&-vl;fDOlf)@0=?)Yz6Snn={e>d4JfT~jl^j#e*c{7m3>;lC*M?lIDMEGiJD6#&z?YVlrl{4{UUZg> zj%M)to>>tqXenII9|tdl)Mr+dKB8I?c65X2wX(p=$XK`&7c)qPx_C~?3wCA2=y5?b zeBV3HK~PWpAVZ9mD_*(d#}s8@vrjsA*vSm>pc^Af*R)8^#bPH0p%t(0Wp$kwP`a0x zqgY|z!S>LI-xTKAFcop1Y?WmY@||+s2x6q=&b+u}YPUqaHZJ(L(DF>b5L1$;G`}R? z6CGx}xho`Yosj7(OBV`a6pL15=JEY$Ju(I!V$|yv?^noS0kUNg$5?04&95q{?QGap z4b@#cs=2*WYeF<3S;IALhNsP4T?t<$z{py1R-91T%H}D|V3EJewqI5PvZt!cWPA%2 zv0ba)a-QI7<9=JZVkMe;I@;P;%u>UzF&j$F#NJk@C95~f%qIF`VmZ!kVnq|9Lhmt8 zI`30z#h)2unO5s|%wW2wkNbhLpiaa=TyFJtU|YlG@`62)EvCbtY75YMIWiy7D#ZBZ z5A0zyrC&0*$r#7m-sDhZTS|utC7$78{i$aPqA)1jH?x8Gu4#$@K#S@00P+F(}bSIR!Mcw$_DVYuKT(Nu-TiJ{Jw zOTMJP^9?{YQQ)T?xD-5hP>gr6LxuITA)oiRh+KHI&v zxwE?!%5>wFHJlyQCOH?CX$4a;byFiFYHd!T*bOF!wBfXCEh5)D9%2%eS_A@A{->g+ zw!?MbSHqT^x-lbOBoMt;Q*C5;`Fk5XWq6p;PJ~-VfOCnqBP%y%;55^8Im<+I`EC-P znALS<&>8na>utey6-NafdzY{Mu?oZ{1rt6U%fA3lSS4@`S8AC^(Nj_gIVq5Acm7FUZ%H;ToTUT%!l!s#!r*B6tg=LvYB6!v z(q(rrZ@txp5Tz5*Hel430ahjJ*`?lYloG6Fjf{GIA_XMW^e}bh4Oa7cF>puVoT}kyGzzN% z9+`;a67wh&Me)3Q>DoRL#E+K~wW-t8;iyY)CeTB5$|nf@$9|c3Ebp+fDREf1-o@G= z3#pxJn}v)Kx4ha~Mk*Fv?cR0v%n{}|qYO1}*vhJ)b^C0aL5)H_?v)qYMpbg`+~(U;;FL!S*6grBGU4I@eaWv4bSF?WWA^H5na zjF@~B|L!cBD{<>hVJQ*5k%Sw?7*aJ*hLPlyTT3eo!?^PP=82nxevPayY2@y!`(d~)T%fT^@-Gj6mwVO9db1|wM1@ns?$EJ zcr${2F^Rxg;AYmpYUx_-Z$z`nArD?2FAH|TwLEixH zV&yfhi96;!mYB=a$fFINISnWiwYC;svLJl(imoMWE*Si{NLxWWjD^x8LbYfQI1!lJ^|skz+G@@6mRIg>7{9{E|d_Wl_#%WI6Q_d(t)9R;HzTxjIP zKGqH^D%334UnY=%liJNeN?G3Hy@XeJFYgo&^qmzI(^A#doJ!_+j9S{xMor1Zbb~@V zZ}xV`6i$kzN+ZD(r!za&G9i}r>|jGjcL4{c-HlNz3mo@a%JFv-$Tqip)#)z3SW}>h z8LW*$IDoJ&U!BR9h{9$`M-DBSf!ivrIv~R(0N4*LAGELK+^1CtYwV(mq3w-aFXNN| z74>6#t5XoNTBCW$K}y}eKsRIoUF$~yNLH`poW4a>k#h4EXEC+yj_7IMBuxr8r7v~M zts|o+4o5Btn6bhLJ}6!99jw8#m0weCWunDP9CS6JI8s-+=U^7ctdydeoSSqUM3T!P zYWpH(H!I|vy`|C4f@VuMThh28g*P~BS;nTN;>}$!y=)CwFo8glVSAIcAq%FPuRVL^ zD1tTV@issetX7J_vtrJUW3@7iIPxPF+7a_patJhg$H-4EpB(k^Tel>wR0^$JA+#LT z!x_n@FS#gYH(a@}Y@M>SbRnquL>e`=+TDnn?Hu;n4hdq4qob-#u_JYKW7B#$`3rZq zfN?Km6wuQ|Wr5Wcz-7~2wUX`5!0YJqT}*#u84)C#dbE{;iG;J23$58` zb+S04a=~t$1oGe!7 z9V^fKf|d=6tyZ*%E+qk_2z;oHT~}2m@b?}`JYLNKf!?*ZJ|Us#S4pgWPA(-TwoV}g zngo$t!m&0RoLc{Vp6BqxYzOaIQOkWHOqK%WGP^qEp~9*2 zPBk{Z?R-%-N@eLq&D#AT&{iuSW_+$6!BdHurCA(KE9p~3_Dv})|Hxg*cI%euii-$C zD-l7m9D>xe)B%Vfa+fQM{}u+HL%H85w0S#`3jvw|SiN^f7sjd$F;{}5fD4KUz`>hn zSc43}S#n3{^XeEUMuejBRv6VqYc1>d@?uaqwA{NkH!aaxn^QHFiX9u&j&m_wpp^RxFNvUHldx}D zN>eFn?`g#4Wh0s)m~ico;OI&Vi#{Njn9s)Pa>5VD*kYxb>SR4kza?gMJH|?mG7v*i z1;Mczp*1De0Mcq)#Nlj4=c*}O5;6J|I&vPURBi%3D^j*0%LWPS+WytJLP<%@)Je-s zEw{sxDlK9|&6(u$9be2=i<7H*&|&ymvV?tZ8G-z^ps5OKirrmteqASk)dCjq0>mQ3HuyH~A{o0#x! zICzxP6sq@y$0Qk9q)*sr&PJpXT3+4>F`vD)#){6K`LwBo!b?0HB4`XiFl;66CQ6CC z@*`|&Xj$nCiLOVM*S9^&9-y-Ht7?hc+r#C{4CYLVYXd!ypEz%-Z-;HGoWg1 zvbw5BY$@W9@=B&uqF(;Uv#MFPTgbhtK?jHKNnMj#HA{jwH?(y(JhGgBH9M;s)n>4O zB^gXv>h#NLU)|HJ!!S=}1oE*2EODDNfFfW4CMf@o@c6IWDxWAQHy9W*<;BKoGfTuo z4wiD%)v1K6^4XW^NQ$r}-)89Gms}~G-#TBtIp{6y97xMB`VmK6!Bpq~^=c%6$~eou z00%;Kvl^Td@>nmlt-2!ORL9nu!Q(8LQi*fBkOp&Dp}68Ad_Y1-5a&9 zNmJga=D>o2Q@*IP-lJzEm7@=R9c?ov3Q#UC@(cCvSfaoC%y&<(`akTPS-PUxR|O7^ ztQXPGWrv*Q+ z3w~Z7{H#(xow6mc&GJqHS+(oSF22@qdI%)KV7PT8t4^s+JzcUK>yla*ST6Q6Cb~dX z^O8{R3`ZIysJNQ$Qjy#Q9g#g`;5B1OME_zkYE>gEok}iM5Di;LET^~iwB_Yf_Iy%0 zpq5O{n3Y-1O;~iUFT$Cefpc{1e2myQ?<3&FypW9Wk}F$h==u;`l6P=2TZF?Y3xTI-1JM@%ng8E)7fgZHa(l4+t#n?&Q>+e^jxnb9MFIjki{; zAu@tWk=Lg({+W}mS@RLRf)P|5haHVV8D-S3szc#pN~#1_Q2!44Oeo^Nk@p%I$ET|I zk@Jee6z|Ksa3f|r{*4`{Y#)ycrnOC*5IcZosJhKSSB{KH);x=vYZDmQ?p#E|Bhjd6 z*wM#fHd@!@tBjvvN#9C!mnvYXcon_PGSgM>Xy!mK)~JmTgKFu>oyS^z4#lp;L$GKsD166Rn-syb zMj~otSoqOm%$m`faif@7^O=`?5N>UW5++B%^|!yMXjNPV`_#+8R+fS_g8`m^!{%Gu zKlxu8h&6VusCIS7`-a4rG<0n3Ts9#?+kHIR#p+eiIebvy*yN-TL^)C>gqM7)%7{;^ ztD}Dzf7Vt>+!@h}kgLYOoY=J2Pcx+@T4ZBWsVNRO#KnzvI5mC^#l>z}wY)8r&lmME zD23N95!i2}wL!Vr#Rxo4RUOopT^}3; zt%5sUMw?hM8qdY>po}H%9XF7jer!(B7*gUw8f+!yiF&Rnme5Yqb7^1TBII+bls@7# z@amB3?yjeqRVCz2vii!8Zg-ulTDP)zepHARh-Gu7MocS*OQlQHj(#Cx3gsMeb#+8j_lV=*W0Xx1<*)!5GAPCy zX2hJz=B+r4=X-5l{LRqHm_AL=#;!nbn~sb}bl0VZA4-zgQj@(en_G!g zzidr%ah+7Xe~n=35^A_*={x#X$d0U`V6iNlSrJW!3`E6T7%K;BOt%PT&P{yQWnqFh zv}+E#+xj?~y_^VTG6FG=Gg=Z{4`irvqgpsMQ>VgB>9$%bb{TQD{Q`N(Q@0LeIYX{p zsbFZxQC*wu>g?<&2+>?Iy*5suSN1?H1taN^T8QjuMzv#xLB(W<8HwyPA{|`^GLQ{W zu56_$N65Is37?+NUaH~T49V6)5xPvhwa7S{6wTEK2xZ(+Csx!qM#m_7g6@XcsIfFJ_#CS`>%LI)LoRqUoq2NGTgyJ zW+J6~p2k-Po@9NR^7HJXga9rRZ(*zF25x7w7sL*9ye0RerJ=^8DS)TXD?pD zF{6x%rg}Z2J^>*_)W6EG`TyB#-U`se7-51c$nH4z%Gwl)kdv1k$7x1kif|NUsRvL! zUfD(}Xy|$KHF8I#S-5HLN~o9u3`DYjCld-Y0v1Bijz=bzl+rdKXGftRM31lYIT)0^ zDbXM~(Ie8c4L=f20%uMr5f4TUm7JAJ^d%T(c=&ET?@pN7a#UVe&hCk(EKEM;ZLgsJMUjT?9>8G8D40i3~-f$Jum6 zR+Dt7EUU)uQmu65p6m9Agp4GPqNdMM7$@~tlavNQC zGo|(&lTlY8qk%U!bT}$GJJ&bF2-_U_nNAOI;Eta^Pho zrJUc1=wr?GD^~TbX_j01p~)Ao=YoazEzA&WA)MpR%W+6wC?VFT1P2CH;3+F$OIEwUK4zdj-D)^-DM(fnm5}OL z%W?IN4jG?HNi3Ji`B)d8m2RveFSW#q zCGgnCE%BU1b7EA*%hiP&smC~xZ72O=IyG7-gotdR(B(IPk*vU!6Je_t$)sCLI~lDw zx}t6hLwCiFwK`&@S=sWV!f>E1RFdLLAi|c2%N9ixqF%I$c*V<+dQXKI8Q(0JzkidHM44e(_>7b}_QRREzTQ?|iWxbNtyxf5vIk!f zR!YtT&uyGv*Sv7v-Hmk%?!D8hf`iT@ZEM-~Qxhz;{YNR?eLXG9+Y|9RuRGKng<@bj37T^ zDQ`(#FD{Poys+`E`q_6@F#4?IRWGDeCAwE@iiU1Noj_G*pgB6*rjA;xK%Tf;OILPP zNa4+l7Ts$(0N%W+Wo6ss)D_dNFp)m4Rfh?#OMIW~!!) za-zkny8Mc(|A9l03AeF$(oXU}`nJrT_=r%o2*J=O)>H1%@n$NfFDm+#+4eUUNfl&u z+Yw<#tgB1yvUCr(28>%5e7Hu3z6u{Ih8DuWnh@s{+hw_Vq}wwCJ*gTH0cXOP>r>5g3gq+_cQnsYIS)v?q3& z9AmXXfm);h7U}(<^13NsIwh=8EUt~4rr-3Tn!5E(c;v;bjF%>EgHJ!AE!w&iA`!FU ztP!MR3k&k{2Fa5LJ2{yM=dVsbkD>G?Ng|FIzwzu3}7rMB;WZ5l)Shv?m8LS?8FY ztN`LlX4J}03Q;qLx@$$Vl9(*C2&O)!?blDeH*^fdQ8rvGR3 zGAnt!BdxdlyswrnH&d_hNcYU+(0hQBXkSoJwLbH#v^)dXK&{!`b?w<+bBVc1kI5{w_L1e zFXX({!?K>Q{lobREPSL2;H+&vzOo`+ASUf8x4;aY7bOjoEs*mO>S(xx3#FprGR|8q z4AFdw5Xx3y(Jx6qL&fDXn-TR4;angV&4fNYN*1o3!MY7AIiZ0wLbO1}^DC#Nny+2M z`3fw2qz${WW$hAX7-5TUOC8lvainVG zlu15Tvm#v}CPOavOZA3b9*c{7fi=mm)-mGwMC-_2AS)wnd0Ucol161Ul%s4X^HB@z zq+eiN3Ky&8zEHV_^B2g>Xa#FV&I={iF!=&&Qn*+{qkb+=!M1TIdx5NsR;U+bjI-5< z5HGMIh0D}ZFH}{-`3q!bq*86|Y*BY|o$CzjCUd2qwNhDS_h;&(o)u+_g`NMpguA$%{#>Z4gv&brHL@^udgqHN=C!JX>kIC=IqFx7^7pAAP>Bq0@ z%zAI`LPIqOuf7TSVEIk{%ir5V^~q<=Vp$7jB4o-6=PA-3ZI2nfkX_EA)F)C*!8IyO ztd@2mat-G#n2k{hHf$X(oLs}D6kMOe#A-+vBGpjVf|(eVP$SbQ+m;avdHz*5dzl5- zwJ?D@3o1nXSrH3n@TE6KSP?Irx<_gnF0$a7j-n|-+O2Emp1p~gbMYrFSTK8|YKX{S z{?dhC(b37?ru>;?*vU6$Mi?l#u7x#)rCmrz2i9e#z zR=yXwirLFN&y~v|%R7Oj!FZaLMnvotcVwuU%O&}?qsY;p8rAHRa(LIE39Y4 ziYP?%4wQnK8kLgR0{1G+0A)Au1Ct=R(!RD)t3$nMgtBr#AjE#`ASp zG1gbI(+}~VF@cR@MHDioEG%}8W)s69G2Jh(PDwSbBEX7eG&r9%-%yd7_M;;-#$1A7hX!AmcWQeSRKAtCFonC%Z{Rj z$c9(SiAk?Y_cMnFx6G70RD2Ed$wgRJ^s?j$QI4||-`ntslaL!Nw#VVidF_fexlf{Z zJ|bK>fyCa>Es#4k!b<@rK~wYhQO--RM&8Wq3g^U_nG3;+Aze5xkx8+(0~dlXM=_)1 z@d64j!sLi0dEtboDHkp;V>d5EI~vl3^OAk3=t8iUy|ltPj%dLJ6s4=22$#O)TuyL$ zb-yEa-$e#Goffy&`g(DPiU--;#a%ob&UiI1lP26PH<%T5olmz!%BH1SJGpT$_mhK+ z_EmUc1jmqJ@xoT#-}`ppN)04kaWIk5VOgJwx!9HB{&EY!7bTi5*KB++G2Xdt&5h29 z6D4{a|EZYr`rqXevPmvK^~~U~*~B#}ma!B;_+7a@-^I-{t{rhJmwR1$kW|4%M0z@Q zO>bM5`gK`?R|P!AWwS}PK)IWD9YI(H+_|ixaZrGmncr zp_ZZv?-2acvv$?eDANkk4WeJTf<$GfKwaH!_&1gvO-ZS*DM&#~G$~te1=BGE5v9#Y zXb6PR)7;gkqGc;t`>;-lq#OaQY~lJkZ{p!bcPvHX{B=i?R`Qx52^2tti6w2zSIGTf zp%nt7g%O}At|PAk$Mee7cpGagLPRB)Sc#DY{T3q|$53Bb4j3}2t!-RNlMspVbmFG< zDetTq_34Qb&YIM@gfLFrbrLA(yEOV5rWr85(1G$5kl}NflMpCjwkz#34 zM8yKF&@AU^0=e17iGjn-<4Us8E~CU+mJ|A(caLI*U@lS)A&yjs3Ms1ABtOB|R$_r- z6fvvPh|w;ll1vLn)iRnAXqzTRoXUt|2GCeeZqeE}nPH_@`9o|Wc<0J)mCG&sta*LXEYb7fEx`zLW|l=Ms!81@C-KzIXI#NhIO z)J_qWpjoa?Gw7_eW`wqt76~(EKmixay5**;%F_Jk^`^_f(0zt!GnlF0p&0dyVl#1nbg|m$S=THelenL@&*Rgix?AR@DV%CRyx473Z?u^-NI3$LOhM(cI-ByAmnValkiTv0cK3}iLVjU9>%sILogTA0jJ+nUiu zgQouvhV9NJ532zwHj;~F34yfwMf5$SriQeyqvn6BFwt&dq3BjDpJlo%WZ%7i#` zN~;mCy3bbLmgU2n+twITY8;PLNFd?F&SlHO|1R(7_{l37PFODrv5%m z#3(*deVsK+WmXLZUe&XVc!44X;?n3PSlh~xl4YS?N!!)p*>Z-e-%cuCjeO(0owcPQ(D;h`@CqJ6SqnL6lZ>W=%`XD&5mUoD&%(8Mzp#Yxs+bh~y z6_+BSfJZGU6<$e6#dH8a-cqEV5@nY64G7N)?$Vt~{=%xF2@7MF|t+$%m z7_iiwf+AIluwjB>kzvZMY6WNN%3k$`V_vC?`$5RDRRU43Se8B~Z%nR=CMoa(?%WSb z%bQm^M{*dX6fYWlF!Tb2m5RJ>p)56XipC`kBMJP}h@oiHLH@pAx<8D|%F1-o%>& zW2D*CQwBQ}g<;_}(tJX*}V;t9f;~ zzYo*hjSaNc5gSNM@%s9E?vRd=O01=dt2)U(u_tBLs#8lCnwGXpa59Eu)=>z2e~VmD z)blA?hke)xLKo|ktULsn37h9^3Zm&$A4 zaG?nGdp<=de#;aaurlyum?bd3!(z8F>}W+%@e%<_98|Qcn`RbOh=6V1%}BuJ>s7u; zij3k$#M$7@D+tlIVksG&v_lkvoWfyGyR74e`EzB>nxSotE;S>AbqAaY+O)(ARjc(G z`DM7s0NQwE83{VDSO(Y}pUZ%A(10GA1x#=6%9dm%`JpPTAUI_>x6GyR=UWqEjdX}r zX(G9{(H4hE=)^e8yuKk078UFhqsn~Lmfp>z1`Cn6x20PGfX+|@SL1>O^*GEuyl{g# zIdOQ^%sh3)#GWgrUY1IAu*}(^VLfc>w52MCRv=>rG7VCpl+^~5h*H(g8gFq&4F5i;qs5qb{W@7*Ik1#h zd`Q676|JGX8jh3#iqwVKo~%RqiD3jyBFL^)G*)p4`a?=0in{ZBlIH~;Q1gB+ z&XOap6~dEzta@Ff|4mr@OU(aP?fi@eo{yf%mUz+gyzpb;_S?$9ehc03Bl*JrOFsEn z{`G%4kNmdvvEP<|`)&EQc!@;iES}lH|ME*<>U(w#U-IU zfX*o&_U$(hdk^z`l4m{7Z+M>O`6`dV{}@Yu*?KpfZ1e^G_B=T6cBFsB0TWt(0N(i2uy@mYsWZ<{ zc>=ldtES@0Nh#kWZ|P8*c=}zt3}8enCn~dk_ri>nxa;vx6u-7%e#$I{&Pd%bwK7$4 zUFEbJr%jvWqeb(JXQo~-qoTg^lEIa2yl10>jXT*W1?ekm-}>qM4!+?1dg#(Of955D-+9M(ihlR%=Kp#AA3k2x{^!4VKe^&}ziR$w`IOnIi~nQ(pV!WR+cysU zIC=H6S08y|*B^iWY)8v2_mBDFLw}g_$8jIO<$=fBr(XTx#gqR0u3f8syT9?$Z`|>U zPkrep*EBx4e*ddCEoz+o@_GOLbj3F=|0nPDfBNFsGw=CT*}>}D z|MJZjhF4!-HEq*pn{J-;%NL&c%a=}FzGdozJ>zQ6E&WLE^OKHzc+Vp@&cETghG&=j z-_7s-#`?`u-uIVp-thguO_tyCqrd#-ksn|G{C8e{*NHr@df z_}^rKhw0_}{Zh-n^tEa4A75>r*YM3V%>OCi|IYIlo?pE#?Y-soX|IlFInVofp5yry z&mTy;{0(XE`3LkfsVVK1n&&3I=kwUK7s(^feZaoOw>OwRW_933vZ%BJjy^FfNC+$7M^Bm6^p1Dt@z0Evt z*qrwM`q2yXjFk2ud~AlFr@oi={*~vW=39Qt^I7x#TnPS+&~M3eAojn&)|$uC$@hJs z$`>1?$CE#)@uGiVYOTQ9e*9zk{@mu*ube6WClbfZczfz?=700u->m;nBtH6!t4>@# z^%b{%@Q+{HHvGd~w`%yQC!c%u8Sm%?dPYLq=G_M`C*F9*d(E3J%rg?&Ht#w3@g|+| zK2~|gdwSX#@8jiXykA{=#(VLmGv2-P&UnAS{fsx6?}uib@&1!p1Zk3f18{k4n*8n=I^*5X(_+5mw|(0AE$N#F^<&}k zKYICHo@QLEC-EBP@t(cutasPUv;MdImgk!@&U&>spY`tH`w)5lh2M|da@Knn-}3)& zZa?d7Zw$WWw>%|xob{gO*;aqndo9nK?mX)~zW^Ly^8bhKKkI$DHTag_@_gliv!2Iu zJI_Cn=L=0|y~`dt>oxK%|39(ntT((S_?F-De53QMcS+Y-Zz11bC(oDpJ+u3)*TlE_ z|FN^)jQ5@O-toBpmf!Ns=_fB~XZilOb!WYKPn`8mnmo1dI_v%X{lGqc*89;1^tb$$ zXV)g3w)B~^-lPvwPoCKub=po~mw%G-|NgA^3-c|%<$2(Juo%Npl6u6&0>&@M& z(;f!)!p^f^@3+r-|Nfl*mf!NM|Ef+~u=}jH;UCU=({`Qp8osR4J`C)U|9jT!=6N^I zve2{Ez-+or6S$odh@FyoLHJ|mCIVv{dJ0b5lza4!c8b+tNo>KF)@E!9n=kP{0)_2*|S<1##hgt=Wx|dP^ z(B{8_%edVwS7he5^Tc;9yuRoIucBsAeDl5y*_`2pdn_$?uT52$wdqOXsZJFybt+D3 zRpm|B-I$8w$Nvxewmw!^ma+0}nR0k{hJE{oaO2}d`R!P-%KF2GOFyIe5zVg__?6o{ zgH6`ZVKpDkm4B)6>}RBAb#M+gC9D1*oSXWhH}TpRy?UO~xdeK|J zvySKMJYVDaG0zJ;9?$q2Ui7B%+{Uwn=bb#C;Q2bw&v^ce=dv4L^seH08_xqgkMVq* zXAjT6@(l63`mHZ|RXhuMx_O@Ad5-4?Jiq1{G+wYsoK(t+S1DP7i}#0Q1R2r;wy{f|CCB2hn?q7 z2Bk^xhfjNd3Gm6eUgQ0~NT~T3t>oRvGw!day~ibgtu1e6X~oRa%G%QDwWT%dFWGqU z2QT_i$)+dvTZ3U%%)uf*yy;IWXMCi0yI?w-5616Nl$X|K(wAUg4ih*9U zr6=;nLaOi>JLR0VsK_Djmc3EQC@IXe;Uc zq+cV8Vwv@+D_tDnW5Y$R@@h*LgRR>Aq?A`O=xq=Hx@X({L&;>nYA@7R+O-U`dVqW% zH~G+QUvDL+R$D-%3!io5pMKGx*X5R1TyJM(kyj0*6ur&RTXgZDw_1$7-|x_KqX!>U zJt(;^qz7vjdMgAF=l^cY|7SR9xKMgz${8|g-Ti|2qXX9Qq=)Eokm->_g9}m1eTR&`w z^uq-g=crFB^m?H){dI%h%);dJI;VW{*m>dmDCMNyFzEf+-7o7(`->uszc)+A><3@k zVKR&Ihb9bad!MZxTB7YBcD)t6F>f67ZjRSCV%Li|Fp`E1yXqPuukC{WH-p|-`mv*5 z)Rji%|A#EqXh@!PHO%bN2FQv%9*c7Cdh?(s|4TWHPj^~{7d|GFevI@sw>)G0v$)#H zN1k>Qd2Obg6ITp+GQI|OByRtTuL;Y`dLE+3hXw!2L9c}0_9O6rDPQe6ykd%2@uLz)w-G z(6k@s%4SYQC*T&#u*+@$PkJD$Wlc)gxs#yMN;FS(| zBk<`Ccn9zr2mJxy^BnN4z#ANNb^~AJfFA_D7mh@OXX8*ht*s zpg$S-HsI4@bn1W~aKM{@pK{RY1)g@mHv&&g%#`zX;A4QlB3ABR;NyT_6@woJUI9F= z4<~`w0FUcc$yns?pg#e4g9Ba#e31iQ4}7r$-U__k0bd8a3;3&J{BH)n2Ka3;_)g%v z9Ps_XPXK>SEdNp9ryTT815Z2PV`bC$s!V>$fsb*(tAUSmz#D;&2OhT@9l%o#_yF(< z;Bh;!6?mlsz8m;-2mB!L8sM^DX+NUd$AQlSUS)xN3;Z1LF5q$dP*#fkfoso9BT4?r zz&8Pp+l@NlTO9P8fbRnymqRb`1Hj*+Nvpp?ez#wz;}{_BD7a==@G9|3-s&CIvtUk5x@kqO@n zydAjYu^;)p6L=T!xEWwR`45c938&M;i#1V)g%K@c4<3*#?QVo{B1G#I^d~UneffP=Q-dzfp-Cq^RplL8sPEz9tFM$__eWe zPXpfpJU;%8#ev%AfR_V5;(%8JKLtFzULf*s1fB+df2`aN;5Bub@B!c(fY-+IZw0>3 z0pBh39q@y|D`yXSe-oo~9QbtL@$v2)@CFCG3%ecneROtO${zs#ME&UP z>wfUp++_7I~VvCgb_yX>L#hgRqjvYY>r{F8xq0cZI2KLW2a`B6jvBk(5R zLLYbA{|LO-07Ye^lz_uU7|t^K!o*+SM+-F1a7P1NRJik7dDoBn#d-@Ww3~ z^q$Ou*OdjY3gIrgZ_tzdsxY6{uY1CQC-v?CZ`b{Uo-AY9kH80j?*Lw6fqV;mEAVZO z{JVi~apXS;d=v0^yB!C<0XWNE{->H>=YaPE|6r^hcAnB0u7_iuQq4eo=z&4+i&^kj z<-uPEe$9h}-j}oB_vOGBKX5PjyB@-C3-CjJrP-fd5w=r$n<#9jtR{)P$6|2CEgtlk zKKUPkmjfRI9CzCP2)x?l$DQy$0&fI9p8WCt&;dLJe43wIxAOq-c@Fqi;9bDq8q2>M z_!bBJAn<*_B?i196h-t{r~WZ*Tx<9=2h@I}Dm^qYWp z0iPVB(+hlq1HKXXHV1q=@I4Otdx0Nvzz+jI0X$><4|rlpCcGp?eSy!2@i_r_4RGlz z_9N|Em12AX9$#mz2j1_X-wJ#S@Y&$nkI-3{f`12mGw?A>Gx^*JJmrAz2R_{aKMK47 zcziwMH1KxdHztCQ@H6(!*bm@weJcmP2YB3ntOkC_LBA3B2?x9bc%n6vp8??G9q_Hd zD;@CNz~=#v>(xQvi-ETW)lzo!IPg6V_&MO?+A{UF>wqtEz?*<~ zIpDp(H#p!Mfo}sIw-4KaA8^3;0zU;j-d=}+k6)GvKMA}B_@bD6N>Gpu!1at@CyG8y z0KN_QoLK%U;75SR?La;7Q^0Ft`CEaHU!J)hxej7wuCTlC~KboZ=fUJ{{;Jmn;T)w36~>sb{8|Axoe2g-$iacsR%D#b_2?*+g8 z3HA*la*LI}BZgnAMI-pT!C%zR{(G+SPrLcA1OGJm74K%>D}rzJEZlAvWy%$N`3RkA z*2wC5bL2gP-VY=4u>5Q)3MtZ8iZc{cxY7I^gwEpk4SJ6{>lLBXlC5Gg?v=4o zzU2d%c5X88eZXr~iTaP^uLGV29v=sqfTuQQ!h3G_X6Jq zTy(;IgrCE}j{uL`AIyZ8Fkz^0z$XB203IJVs(`lxkNc1Hz&APQv;yA)JU$Mr z1Afc_-wb@rhcff;1YQZ8;oJX6efI;O2fWpX>Uq^s;M*MV)4HxmY0UrRq2Y9@_wgNvEgRA}ze9WfNjWdFO8vHfSj1IpM z{3;am#D~xSIJFVF$2OmTdw(3d>5q-x-j~ym2evrvZQz&Wu(z$?Z~4Sax05@e)3x=b z+qcuu+41Sj^IK!tDA@-5;#fZ_2foFTzZ&=^;FrhpHv-=P{E`^F19(61(h$6g-vhwc z03XSET0MAs!8`PsLGNq1{6#idW9!uT1rdniM)(-Z1gPe-gWgvHdbP4|uh#Y0FWv61 zM@9Y4I`9sBZqVBi;Mw)^KtG<1@u5o9{=fkE)3*jmbY8@A)0^83t@=Z@&;$KsXr z=l$Ss0RKIC@mD$VOPFvT0lz;l{t7349r)uvKRW)!W)Fbh4!&B4_5FV8KU0e1jzjd` z!wl!SO68}LH+~;N>cmINIY~MFU%2q)G%|7B^2G~Z&R)vdwd2B;BmJVBf&0Lhg7yvF z8(3)X4bV}R+TSAYa-JseQh#UGy=d1Kb&A}-LL%AJx!VEq%_HAZ0gx~GfLvo4r#jgL zK-)>*Li+6{{WeACF*Wy-^!>sg>A1D#-0m`eURVa`IO#`7$6ToNm81&ZIpC*&HySvb zBX?Ou!J9zkEC1g31Mnp!iruLKz6f}0q`zm?*E^m1DrNGKat5HcW~bTjqMRnmVTev_ z1>O(*CdmjqxQFpna%FH;K~fc+gXG^t{x>Ly{v&jb1K(009m!vI1LFhvpELD)Dmm+A z7l+PR7jG%zmXxLs=|mm*E501Gk3R3ue1_g==TmEAHdo472VM<$(~RGrQO?Jblv6wQ z;&HluJIUYhmCSK#Kk#|LZ__NPzxDh*3cMfq_7eWl^209s?G!&Z{(%zL@o+;^^m#H4 z@3F59dc6XJ-umPdN)x%ngw@s=C0`@?rhlFJc36J%wIqt~(6ST$){(F49|yfV3e%&v z=F+1&=p7V#dm`tRbbV=uIyvkgEFiq0C~C>+YqjLi_fX1kL=Svp(EEB}d~M6cm*__; z^rnA{a|r=GHLjZTL&UX*B zMG1c;ED)~w{-F0yQiM-0s=wT}i8u|yM>Tlko*(oM1oiUe9g_9O82J_4TrQgJ5PhZS z%|_^L+K-=T=&AlN$LP(=wcd!`+D*Ov!(3rVbZsd{>w0(+bu`MKN3p9 z|2gtC{8ON(dG6`V&ezWM7^=kw2ED(BcCat154$B9DU@r2o~4p=?LX>X$pCmqz}qW$ zTK;4*hXw!M8an@;l0Po&mGXXM_T`iu>LYSEYSQTzimn~Eo=SG9p-Kpe+)J2PuYu0& zjC@b}`9$uM$+s;>dG#j!jTv7$wEicH|Izfes`PnWl|18we{j2-$Ql` z7QH@7zGIa0xXBl_%X)t_`AA5w@h7GHG8Qr_{k9rzaD&j?8CN7#CG zPeSKZjK0*jq?-9GaLFU|*9X^r6u;#r{SA_CKGF`=z=fVHg9)B(ho`vK%8g0oz(~GU z@}&#Nw~>5_f6h&BGFf($Zw&b^HtSrT=m$Q)-lvQbGvVe=>BOmcGuc%~YD)Vktk z=(qngsGs(Ggjs!l_)n4XqAU5i(Eq}te5Bq-p;P&P;`iU8^-dm-)={ec;V4Lvly;na zEB)y(krob_P1mc)!!)Pffqd|jK3!Q2foX@sXdy~}dQJ9#!L+g9*;!CUh? z`gyi?5Bb_GJN%Dx+~wM0u6zDcpQDshbDVo$+3NG&pgyYpwd6m+d0a8TuKG{8$oKmv zkfoaZ4SzKE%E;fUykWV$uIF`4q%S6&X_lhLyo+2qeI1~6r1z8lF;ia5|BwzJig%D) z?^6HSrCr5GoQ^vwIRqr_caHM6{r8}^DLnrO+0kSx)t$}sqxjXuw&H?UH4}S2IOyGL z+E3}pZ2_;zWft$(z9E+Sc7T^k4|+$7_yV9a!m2NAt22RrW2!BV(UvoC|UeIaa z^I~x6mt*VDXW&0{w@=K^DE?HIX2=!lQoq~f9 zAECDydKDKDht~A3jD8Z8PjO#1=Ab40^*Hp}FB$UQBmAjJ2-?oNE<1wyLe`^2)`PIe z0hRttn8SYGm?2Nl>__yf3izHFT*|2jz6@+ zbjVv9mtS<;OSr~8DR)2kYc3n|l;?v!1%7C9i5+7pwa)$)_5|;o@ax1|XR{)whwX1c zQ+QQ#X>ahF1Q0FnPMbMip6dVLjk}z9#s-h|HYOGjU`P;tHj=)W^bcgxeIgg#{ow5Z z&#v#SPd=eR_e>pck`k z0}9>kq>m{b^4=*J(6#!_e3xZV5a_kOzL_2@ct^o&0Pmv)4?BWB8(wa+eGt&&_P5sW zG8ox23cPyoQZFA_d7>u+;B5de+>SEdZ3Vsw_?Hd;)LRL&n2K++6_+$VLgyg)$Bi4x zxHoYe_;}!w$A0AZIp8Va;c^9D#zK3A13nper2}3Ed^+&)mN?(#JWarBfFBSz%`~@k zTM2FZ9X&G^pyqpkd?(0vkp`*1g1;5`G2pw*_yvA)eX{rqB_RS;Z?_>0K8VLw`gL6Bvw6k*?%JdIPD#R~7Iy@C}kx)r*mY z1umKJ*D|UISn!+3xA-;DdI3uG@@En7e{+v-tfEBYvOMk_-)hOG%h?aT6XS<6@4o;) z1^jYh$b6)~oi_Qe5}2wtp1Vn}=DX|;>Ia^((^{T%uV5Z#HX|2?reXfLDfAn`uXr7? z_k||(Wg;t8mCt0JUeeo1zf~lq`!n8P$$IpHw@`>Jj5+qpX_79>3P9Y>knltIL{;fmGSmrJdU2j zV`>&(-cVGuAJYV#6z?Z!jF0Pjey{2r_KT+H@Qb8fc0#X`cN+X4PA}>weB9+H2>wa% z_x;U~Hz+)6Ir{AysaNt?Mzv6x#N-8xPrNhXwb}gE=(_u}S=4s16fgAFL9gLT>_)sk z?tR~64)G{@2cehZoeZ-IqL)15a;tIjg*`=YLId&p3~rusbpM=w*%$RE!}i+Xsu~iQASTtWR$(B zz6<$H8}c3z5b^<6e3zEc@TBD2O1>lHn`-i{Pih&Sj&g$Vj&o>u6!-!SBTUjWwLpDGf2pWJN?v!wA6d2A;Cm>YTT zhyc_&L9h-`1!y@O(d^ z_*+F5kKxQX3c`Om3VdSvkoP+wW%=*FSn+>2#=qomB>#?^@GGRfqT^7D%}&82YCAJP z{yj5>yq`zH}vY!7g3ZWB#QStK?k|e%IC^@BT{xWXd~Z9dP<3Zh7}pzSy0u(Chy^ z_P}j-V*RFgOct|K^RTNJVVaM~zvO=A7hfFm4!iAdd>`&xIn1vbzZ#)8=D8v7{ZasO zSTFm@d?(lH_^7>79_ha=tX}`@te4Q{BmD1&-uPX}$?ccN<@DNOmpsTN^s0Eu9$^0V zRpz&W9t7hgD)hKNP6p%aWbo?2>)$=(eMJcA_6JYvUGjZa)c}z!e%LzlkNet?cQz=; zpO3K65k9ZK}Q>Sz+z)_FV0t>|Yc0 z`6l)&LeGw0CeG1o-F~TzQyalg>>Y~S_Y*$11D^+c{U!X9*{|a5yVBXMK$VZQ(`o2! zcz(!zPUo}1TA1XYz*GJp`n-Qg$L~@4%(*v7STUYZ- zYm&cm^_ZNIT*ZDhJ;eC>&qLmQCH#}wZn5)+$#!=k4aGllc35cgk@nnAIeUIGO;^G5%f;Xc$wAv7lF%Kk&I>tC^xFL&~pu}=11W8D(m zS2Wj^pcc@C?~=u=cfEkU&aGD`qk4tolYDm+1TCT02)*eihP<01cEI=N<9bGzjOkQb zr5lG*O{Z!grRZ&kUd4aXzvBG4`w=HR9Q1@3AJLc7i=p=i)-}v{k#Wx96|!xu{S(#y zTkt3TYe>g~SN%WfPslbyua5K+q<^ZQ@h3Uo#U7oh_j>6Ze zKM(1+J@73j&jo%O_?Z8W!UuqlUBY?~@Wqco>zOD5>y z3{qm}Hp9pG(?j0B3LkzyLO%>2+KDdyUNVGj7hpyI4uijEXvq6QydHM`$3!{o_m((& zwDx;d`!9u`zYgj9a;p9BQ2tCi@|5&C(x+!hmwwzz`XbUl=jJEgA0{~2$!2ZArU>P? z9Hg9WXIU2#fVOL52lb&bJyTOHkzzN|xV?)15|~VbH__m&4_-^5`d>NeW6lkEKXdaR zJEv0o4JZFXn~$_lFZ8y&IHcp&Xg+g|i}g+&H}w{M-Y@)n(e-~R=P2+*V%Yn!n{QcJ ziRi&saxgCCOm4%zCwc#%kToAErw;fA;Og8~c71(+xRao-bP2`=RdatkT(!q$=$$AY z)^Ti*&l06=bCk~^`nH?&be8lg(hrk9res*Z2SoE@^nlHvzq9@gpcVEvbpUVdGRAB0 z>WcWs*B>=)(K@u*t`8~u%rVBs5MZ`Cz*r7yBXka2H0+(^cLME5E|&^)scLlHr+%yT z!*%4_bn&oW_fra~$8DCyzF?OzMDE+kS8>U(j=!Siq2_CQf!6?kI^fs$pF{JtC&O}w zbKy$a!E;jnm|=fiQdT9UJ*A{_Q+Lvt?eyBm62#tnN%125w}1llgDQ$!)V$SSR4 z9IeFbIVCOdM&KuamkQi`1l|Gs81UCxAm5_T11A5I0*4N3 z$agE1M{gv3JL&UYHLTAO==2)XjHsIh~T|<2%@`Dd`bjt?nAeu9b1&%X_e5Bl?;BR`%u-760 ztsi96O0183D9%%N1@3^7b6E%a2ALT@tgV?d%UX4;SNH34`RaFz{1a`EF)vZ|NT z3#iCb)t~&^$ZzZ6T2CkZW}vO$N%;fdO`kR#iK{8}wgRsK-Xi74^dOu53g3spTLYfu z1159oTS+JSdELn5Ddkjy*9G2hg}<0y|H7fy9ptaPeq`l{9JYhE0ldm0T@G?Z8`TP- z((B?k6@^+tn9=L?N5Si_8uk!}16(Bva}vzKyq&B)Z7!@&0dZ;^}z>W$DF z`wqra2fcFO=@HVCc54E!^5$W$EYfbFbGH{|wwvH>25)@z$oW4AUITcqf`0C@57>L~DIBcvz(W?2vQnK|sA3(@DJ^r;4sXBFwwNgpYn9pH6=_j(b8 z`3SuM;A=)mPx#ym-Y)ReJOKAp;s)T3E)w5Z=pH3~+^muDsp{X0{{x;{PYvkelWV$F zr0*C7-45`M<)FKf^qRVn@hkebAG|f-eUIO9JM8i=PLqH9?2*}FDQ9vY?FU|=Q${(P!D|QaRZ<`Gsp5O5ln;EQdUqVW9S(ZufbSXwy{bo<-#O^j13xtidIR89 z%+0LtR^XMuM_S**;I%vGodn)B3VP+Mk)MNJHSk@dpw|oD3Gmdo%=je7p+vtn0@^kfPt>0%etVG}v9&^oKI|ob*Zh&`my~lFyaV7Bs>kJPkmqe9D@XLW3A}yay+*UF z{tDl{zz+Z)X}j(OFL8S&z5T$)03Rv6bKup07w>0fYq5VLq*o7X_2Bh`xA=1Y$@F{F zz#pFP&UKzU0+&x6&sOMdx@Xv@%zsK zKL-5e0yiJ2M;V6y2=M9bZG=VPZ@2Jw->}zM!ate(WvqKlclxVBP4BanJWhXna5&rf!uYy}`@NRr;$6B9 zM^=|3<7x-xEN&k5<_QSC_4*J$n1)Ng*hu;&(nq4lg0~;M1K`~wbhX{Ee!iM2$oZ`J zdZ6gSIq*(__rXlOcUfyA^vl=bKQ12jeiyVK^h5KHLz#Z8=x-BvJNN6@R78O@ZAJn7kJ+jKBD&Ax$d!%{Nt95%+5-G z*biPic>gwue{_9g^Q}w5{q;VVme!UYx(+50<+#~8V9B%;15X2Q;dfk5a;^Iv1h4YYuphq?^_3+HIrYh%ASs@K*7O4@=N$R> z{dCw9w^Hg6=?C28)w&P!p~YU|yJ|iD=Ff)xxHoK5>GfaWDd21?X3*nCv5TBq#~J`{ zQH-9HvlVz3@UVY20r+m7Howsrpuve;4`R<0?nn5nWDfoxT^mF^7k}JCeE_&7a+8 zemYrvLs4iwQ^#c!z1s<1>KDV_v`oEgvh0bf>8MrOggs^xghxK*Jg1>E{$Gc^Z33|M z>{9mjqc*$9e*zWTL_U$Z{iyZ_z6E%E-cS#G8}O0p?ErX3z&lw&DViU3wo4574z0M# z2JfTZb!6Ess;^ZW7?1z6aK2l~e}MdSJ1ZyA3pEeOwx1{VXe)TBKMZ?+ z5IoyYH|cv*$85t&8lNhjgXBL({vQfJw?|OUJFTt5LWKN&DW~LpjAtil$H1U$bG8`8tx*Z3WmE60PB4gAe-z`Q z(AlE*7exfRdu@kK`~Pr$h~IHJC1V1q zC(B{-?;-zdFX5j|d2k*gYS%yMTpy_=n?5&Qz7c&XNqe&{&O&crl-^}dyE(gbU$Xd( zSxospQEB;<^K7QP_RG@V|2Fa`=D|M{sRKcc5&hXqzHwvI-mQT>M}Mpzf!8-TY5fS= zMaA9wbO@jhtVww#EP#x8dD>fS%G3K?uPF-qi=xky$yYNj?cWRKaL+l*kjTBB^wcZT z-p5S;^!qpM?RReun+C&y8rCau{39SpseZQ=dR?zd>-b!eepkGr*mgE*97M0u>tlz( zJMfycr-Yi>{_*or%d@megYY5sF8>ho^Vg+y|CdvfEZ5k6EaOWZ={rdOwjh{~*o`LO z4X;o8aZ6nCKz}237ddVQZwq*TAMbzu`Q50#z0$e<$oXB`LHIuoz4RN>{yl8k&5v^} z=_OB7zX@q)91Q8l<)kknJ>ljjzMk-(F7qOC>VVF;H>SN;@LT%j0;DMQ9RNNa_`erK zzqmh3b!&v|WS+y&+wrEfjwchdtH~N`OeMFLPst|qh5Q`?fG^}j03rEDuZxwFKK^gg z9%A%AQlDzzn}9Eq{%1Y{Zv=kginKQ-1ebo+0sPp+w13{xj$cnPE|}Swnh$LjeDYmn ziSjLUcN+X(hTzrw-Vc1oRcU?SK-X9MvC{ASOP9rOpyw&L8BIvl{jB5}@GH{Z%S8Th zc@0~6(a}QXR`I(Uy#7gPSG)~B4lTo%KSm0=w0AFf2f!N>Z*Rk|xnKT=5WCnf=W$TA zezYHY8?H%v_ZfN_@%Vmh;_=;St~Dgv_#xbw_3sZ;|F@*QpT+sH=R!kwOtGq;aOz*S zc#P(Jq{yp-a#B;$-m_A$ZmTdi#h=Vl|C%~i#|K-=QT3;shHKN_y95xi=Rq7N^d+)>Blc%I zcss!RKZ57W&G&C&{3XBbVngi0N$Av6ro9HC6W8-OR?j6->*<8ea$YR$bxB9eEH~~~ z6<^{!5US_zqW2xp>%SrGeLN!PX!{qh3-1Ft8&cR)?Y0+shi*)J&y@gh@fX$G>$0?4 zL$UjYsnT4LTlq(^e>bQ7b3E2=F+CsayV}AOpGJAeKc+hE{agTQV8kxG4l@A$KI~`0g5MydOR)1VC^9P67lQEA1^2QM`Kq_{zmej zn49)KV&s-#k6(!9A0Ypt`Ds6{QJg*(!+Zp3m)+z~-W>B#%L z1-=*fG2pL}jOHWo!zTaBERb)3pEUX9xBbZPl8be^1n}k#YuruL1s=Z2cnEp4rynYa`XKBwGSW|qL ze}eVN`!o5j27U_W7LmiHAoF;8RtEu+>_vK0xueWjdEoqx69Ss zjtVB^{xGQYW%8%l-*`0bJ?>stir)iWk}D2_=*v3j9eN_I_YpJwq!_*A9+z0nbs5Fq zLFiRJ$v7QpCo5O89M4-^BK2ch6`LrCRMon{gwNow_osC{SNKE!bi7{DMgOWvANQ`b z_rYv-I~otL#c3{Pmo9eB8-xiy6L_{$&h&w_e|~E{$M@~}OE2mBNuNjhmK^owvPPb2 zU;qyIV`xdwVPdobsxrCn7W8*gVBc4ioP1)>k%y0PH zqS8G@a_pn7^Z@Z04iTSWS5fhGNuY}jRCdn=>b%M*<%%Abe3tR;{SN;pIv-DG%*T^4 zXBS$c7md(6@qx7W>umLi>cv-_%ddI#0@Ih+OF4@-rM>q?+CAi-N5+HX=S$Z}Ec02V z8+bM$mM#{9*2pYwCLlQhQAeB$IkQt+x`XdsMRVm90&5z{QI{nLL|R?lGI1FGnm$MW zc_!=pOjZ)Z0~U*^Cn)F?#isf0=WxfdB3W%XQPc@^CQ$e%iU3f2mJ_gfiYHC}{v-_Y zY)aOaZsDlGHlAb9I8k(Ojyyttv5WiJBsfE6Fn6F{Rey^=^3k+6-965!z1y%~__-qV za|xPQS9*l!SW!LN$y-(&qXdiOMa938{0}J2-BK@?Aws$hjD}GD zUVh(4{<&H5&zG{lo~`UGwbuJ0leg2~KauvfA%g%7^fIqmM_33QmS#&*Rah7r#cngdnwh?#ET|U=;-ShX7aUA%cUu(+#U=pXU zd&nO0uWw15s<(XmOXVf;LQ81Bdxq@6(*3Kb{pIzlqu0^hD|D=}@>kZ8U@zlVC*HiC zA^Xdv@%-!Q`;sXt;Xj-T^6sOY_WQVg(EcZ!SXZ|Bz>m%dDD<0p^l?mrukdt^8@uodC zWM}>JE2(GItK*FyX*caQ#?Rxd2l;yf?e>6QyVc{`Nt`)P47tB&UwnMXKj&40or&FI z>~twleMH`md=>H;o)F4-%p$LTa>!m*ZhtOrzhs&D+J72TWl8=`w=*7>4cTXjtT=zZ zYVRK3not?obz`@K|9s0brmAp#RCSAQ2QWUwUwx!s`=$KnhV06%*%&*1$DG%%+RCpd z+<-lxKE?j((1m{`-)fn$Y}HHQ#rC*}(My8G8+P za6NWl$TrH2tCHhHAjlcYEV4X?jPvI${;xSo5WkD~weJqu&IQo1{aLz>u9~w2Ys6Uv zOJ-*weT6KUPgcueSx7t5PERW9NqLmdksjpR6r|$*{^6ZmKU*_oKNv(XHlH!$>+e<6 z_heOH?~E+ax!a*D=Qbd9@1ZH~lW=>%g#mvHx*NPE(5ZZx$p=xWdrQNz79I^>WU>IKa2# zmjq@bJb{g>Co0)GmaSuyiAV!iAv^=2*q`iM?TS9~$&yd=DSBR@YH}r8v(*+az+1rAjTiFUB8$jnv1@XXn9M>-NAMFiO4?B9c!^(nGVZGO z7qip7_&2k04jXbl#|-DhCu^r&d%C$Ex5IGx^RMFb%Br_zjDM+Qf8eVX?%AO;;9n4v z(p`o&UB%?Inki;wW#D&ynLGJ3+|BW-cG&)_|Nby$e&j`;%P6d5e%#%gACE4aAA2!9 z1Jl#leF9lFyvefFH=PQDHtHvzCE;QFME`MDdcM%)yBy+tL0$;&v$PraOd?A8P4{s8 z*=N}1wteaGkEbx5fj8#*q=sn%zm@oHuIq~#;#KcI>^?6(cD$FaZ|DG@+DaYx#P}Dv zm;VkJ-sJO>IR4%E|64BJjm>AwdNAjE!EkgvXcDh6I&80**zxTzFd4aL)mS9ip)eeA^M+5LUzSyGaZ3oM{U0GVG*zKxXm{{wEMXKF>}+#N0|C0 z@L!Gp=cK}n5BK*-+}~uXm-?fxK7QDJ4ivrj90GT(FLm}SPQ9d^`mvjf-B10GpQYpe z+rGn0a^NHJ>hEVhIdRyYH?epZju)?ncx}X6aq_VH9Gn!wN8}0QD}Cf$$XEHuP2{V6 zSlEv~YQz8?K_^q

AsF_( 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 literal 0 HcmV?d00001 diff --git a/src/Simulation/Native/osx/libomp.dylib b/src/Simulation/Native/osx/libomp.dylib new file mode 100644 index 0000000000000000000000000000000000000000..3aa24cd1ddcd84c2ffd93ca738f5cbd0ce28f7c8 GIT binary patch literal 654696 zcmeFaX?#>g_CMSSX$TO!2}VIt2^uxHAVE+9W=u;0x1|Fpf+$4PDB=PrbR&vDpcCYB zX~h{AbkxytT*n1;WYd8Jlq7%<7TLlQM6qMLM9?HC($DwQa+gkbz~6sfJTC&DPTyM2 zsk7Cos#A5VH~;p-i8c;LTq}pe(Hb8GpG9~mDS8S|4#!#eWW+lhW5?chgKnXL|_B;h=N^&*Fa*97WdT*s)W*zB{KFS&{hu zlfhg55VX@jO2_d>_BT=BGwHi`;=SInlg5pka<>;~Bk_&Dl-EoYI4CVpvz#+6xao21 z*uqH@r!;(Jiwn-AgBKT6y9<=Mtx;G5!|eDB12L{22W-+FQSR?OlRWLhGy(n@(_ z$NDBdeDB1&#@;(|+$5H^>-Rq&a(p=*I0i~b;@~CxFWE^DpRr?eT{pSL4j4LQIJXvQ zA3409BO*<9M<2qSjL+Dy_e?US78_q@DJK z)A~((?t&q4KCLA}k)<+Eq>Ff3^2x26;P1M_dxxwW8{aU|FC30G_#gWp`q%i$ci(Z> z*r|6+CjKMo8^vQ+*hoBBqATMh2ciQqqM}3oAhocMfs2%n06NSo(YrlSHZ2!qaF1WUTFXW}+ z!+A@>QxbdTx-XBv1UZa;eA7Rw(H9@W#U<7i0*P~Qd2sfJKQhI8_kIEvfc( zQUlJ@KWgnz^`5Ky;`XcH)wupg)z+?}gsL3~uEecunWbtVsgr6khS#b76RE!U-2qpP z+kY(0tqdu1Yi-=xX^b1!ZLYC~jj8%FW~wFi-duEt%t}?Ot5cOFPg1V;yv)j@3*Gus zRs{uaWyurt?5kA)aJs6W=g}I1H{pgYRohQ}=m*1OT#$lmgzKi^s{i}G!B8J2hSXt( z6>u?34Tr2az)CN9mBbx74lRCv== zeQ>fX{5jYFw5sg^f~7z}!bKfljjE4;K-Z}L-%@=a=au~6RUpH@qg`WM1ze73J6pDG zFRGmYL}o`gpIcALP(uXQl&OI!iNQ`}|LD!|5-_*Y#85n(4C_kV5m*G-IS+PHQm@SW z4!4M@D;gm^{F|i)2Er67l*hMGw*N%(Cv<6;stnz)`qy5p`VTd#TBGW(h=cG-A)A+W zp$BU-syzCeB=un3AK`GG{%JbdFeJ9(bU`e&VssV65D?gKYeSC+;gX zYX|9UV6v)}tKAPMfwMq=W+|^_;hF*-6vQ3 zFq=FdLG757)>ct75R0n;le_8&&|@p{zO;WYwmf z2!~aFIP0(Z;`Xo02>lIREcApJfzh$TYRNiZwyGT^5he!5kaGxh7(Ce0i#=L> z@J6VgOzb>0FgQ_-D^nY))ovS9Z9rqFL+~G4osMz`U5=Vrt!leWA31V35X0>TogD2i z*IUrKl@F-@g3tZIqrY?XoiQI#^_)6tDp@UGR|C^hyRQo+Wmbnesrr;%s(;-s8edLB zld9H*!$-DA^N1^G@`HhYWKiqHSej;QTb~MtL2d5|o`BJZx&`m#)o!p>ljPkb$QvkK z*tKr|%ti;BF1%39rVFp*Yvo*Yj9^3iI7e{L6|B)#R%~uG8l;OQGfQnE(w}2vgMVh7 z!`nv<+*YIN?N$H56Kd8m?@+aTps?QAe3WWU!`BjeR*L_Ezeg8_4#Avvsom$Wu_ZjG z5xQn_3eTbOMb#Rpx$r;PWJBcX1MAc{4xkSS0v;l-^q#AB-=KEKaI6o2l@5lLQ&+(= zx=N^x+5pj`B1U6vzgyc8^rZqjjo$vpS|vMX4p4QPHtIKF+Q?>QY!Z1xhN|bbN><~d zqs7QX25^Z)rRBCtbnA2F6mYCtf5M#j4NmqAar;-1XNmK*#eB3U1Rm-SQqk;i(JG$N zDXI5Vxx;g5I_M5RK_KodR^QhiQ$PZwf2Ja67`h2l=Iz{MRq$7E42}(s7-n>BK5VKV zm}RC3ueXMq=9*99D?$N@;(9Km&_%p^^DqI!ZC3SDx)Fj~a3~b}T zBoC-Zz~FDdBsBQy<;-x_4-!4aqxUYONyudl=n481INf^RIT(~L*v-tY2fkLmNM={m z7J#UL%EVOd%NXtf7zg2 zP+LL%7n7uJ(v|RzUQ$oI65EW3vp|HH(q?bLsJsdW>j+jde9ps1FbAe#helbVPQIDg)7b$^$J{|@7!5r)j z0_(=XrrE%HnP8($uv89KLSWx*WX!k)7^mv@I!4v^^cCncf$FW{^}5^YZR7PmkXxPlX<;b$})uLM@n$H5s!k)yE#~Q0_)GgR@%TkCfG|RSPu@? zhQJayn9jkJ;x5!J^u7h*3zLyWeFIAP<0qme>`e}?-2kDKJA=ref6T1DrBaRM;j5OX zzT;mZ{`Cw0`jvm3MvZAs1z)^3LX^*7)}fY{qxEp`L25*EhN*U-&$E`2k-X#wUh=%9 z-kg$aiINhc0SI=t85`8?{VS)ILJJje5ArML*Ffhw`152L#C?>|7^v^1DaE$U7`(xGXne}tOO z>I~gs_V)uzoCP(fVF~9vY?Kw3`Pvp`e-0prS4GLYyu>#o)Q`831e}9-8@_IM9zgi9 zj&|NDGO5B4{_JfHMiWCFF<=HC{t?|K;M@ya^XPqPZDF4eD_tEQ!?w@IhrV@up2g=? zk$xB7tgi)}nXfR5DyY2$(IXAio4I-eV>WheCTnmowly!7!5@vBFrL&woqcE5sc&twb;12zT zo7Ziqq|A90olo^oPs7Y}4*_b8n2VMT$neB9s{IF~DRULpI~y@k#O!iFhCYDoT`Ad5 zaDn?ft68HvDsr|vbQd~kQJSHo}kBY}MrFarOatapX zu_*<6d2S>HWgyq2;47F5Bv-SUNiKx1m7^fJ+A`!TU2}LTR(8#^e)*8>#( zVxl{1pz4#Gidk_-C~J(GXxOU)kQ?3~6(rjC-tp3sjsD8(bG5b=xR zd{*m>Mnc&CY^6AxLoG%+b1TH46u-oCo?tbQ4)FB2Ypk8(nhG!-yzd97j0ji;an;_5 zibdI9f+(2$2nN-mCxe0;xrw?`(iT{Z_b|y^ca{J_Z6*VE{@lN5 zqrZO78ubnIPfzWjlzh)LmF*%I9_Zu2*UEcHmYZ3=^MfcDKH?aZ;=iH}f>O?lT@Cx( zgb3N0o-yBr4_NdCBZ656>vct}6oDM3w08mJKv?IZ*!A>>SR9pf8!iovS}1k-@M2ou`+{w9eBX@U$0USLeU! zSx;26woJKL)#G6hm6X#z-g^h0KNrs<@LVRI-Ku`uE=0&+Zvz`4(pURp1o?}@TcBo@ zO`UOW z))KEB##3HaJb6avyY!4n8a$(O6sy~p(RPs8AdeUz{y&U|3_O9y{*p$snGvPHgylwm zxAvJD7?4K085A#r;T#~txnVWM1`2CD+H`cs(RCgT>w31n9%cjy)IdQ6s;{~m!CeIH z{j>)aaOznk5EVw~NzYJ{u|+@=1q#7n#*nNex1#L=R3C%5G10ink%n1IZ9c4Cl1y7S z4G508{pGXVWk0n+AQqBojGxlZwHmG&jfJj8I$=r&*J=uqEQjAhS3p)WWhGM<)eEH{ z>)MC!ajnjwEW}qpU_y>Nuwb1EI8{GO?7JbfjlevQ9`FE&TYqugFsg&V%Ej)$(=36= zzlLdpvZR-HLuUQag{pqG%<%mjTJA3Uw#_H6pb>YVcUKCClzt11#;ry4zX)MS$Z`tg zIK46SwD1oijDv6qd_(pxq_v@)si#@O+sPgH z4|^gJwN_CEnVsqTS=G)`%ZVzi0|x{d<=F9sLUf@Jt-V`&k?Dqog-C`wzlIF;DG(ly z8QmA+cB0%|s-!%=2;}2y9{-xgzsB<~Vhv@aX|co`IozW!qd;bGHn3)vW@3t!nnSxK z?m!Ye+)Zbusafm2DfRJj*bCA6u}!@j(?Z{=;Zj&qst@yxFl~Nxb%mcz23~vc4t)XU z;;S)2S{{8!GTX_?%iQV-INx67bX*rmNZHb;7FOkFB~{IGy0kUe)2YzPw2IvBRsP1f zS^M3EYe*(+zbuf{M%5^q?`eZ*A?*uz@t_aH!-Hv@sk*p!{GnmD@iy??;;1sS9rhY#RvaOGc&H?Ow)1_ClK}Xea}mB=J!JWK{MZgKm&>P29#B3b=zTEqdf0~J#Q)1`_Y!i2+pwMV|hL8 zdCD@t#%&r0dH3=O##mlAdmb^n+GLjMpXvL-6vQ%=Wo{kU@H2^mmxg#L!=`-jGjHN& zOJ-Yp6UwqmWi{hCf*O&1A|jhH-88RzBv#bRwCCx_>b8loEc6TZbdx*A+)oB`RFb)s zv&M>q&Ik<{V|b48+LYDShM97pLlUoOi{+eXlJjF^PNoeH%@eR;1+vMR`|1qpRQ)fs zPy4*ua7@+K;E{W-U_=E>2OHqcnpWU=i4TTYvdy!>i>*1H3x1;Io`{48SJ+*isDGCdI{-Im$EZ=EoP8;=4R2t%3JcAvxAt5;sv5-m`?( z$CWTJnDw|437DfSZQz!8kc%Cqne|%vxVD=Ko)?M!z`^x+8!*%TH`0a(ltZ$7(J-cS zgp3Tq4$CAd8b&D%`Q@sBXJx{V&X4a~F(Y+eUU+_97*FlsvD$eP=EsMGZ=&*&+C?{&{&Z6nc{6-DqMsy=qki_pgn9fdwl zvvHbea{78G2B!;908W?hwQ{;S+u-y8325WAmg{3E2X;tK4ShVp5Lj7EM^&kh@hCO* zaVJtjA7QEdNUJ%_72nZDWp|UxbrLWdm2Y$4Te-=_$4BbpAPbXOiG5h2J2ia_dOSiO zWmsIW{xK7%O-`pFB{)3;@ztpP<2a(4&__nKRUg+f3YlH+ML7esaazgsv6=%v$j#Q$ zKTfdNn3ct+QB~?=7fMYkw<0B|oFtVWsgIFd@pJZAseGO_!l=AT0!E|qEDpS$E3>IS zZfHX6w^CZCrjKPM5&FnPw4dqYN5tJsPJ>7ZPATpgRUZ$a0Qy+8+sf$&EPTf}^+-S) zr^mQHuHe8mT$vVqOk@bG`ba=ksSnjg<#i^N2c+^N^+9oQPZeM3jUj`t%5&*lo0%5vV}+! zD?|Ya{)rt{8+#p)VobbFLUO@_vsU;FPEaxmNCS|_n6>yo11Ts-8BD@IO(3OnQm}*n zH{p*F!XI-|;U|xP%vp8P0INSDQurILBF?PBzXM^_W`(aR89`?FSIuVf|4zz(LMb== zx7$hi-wo`h;g3a1$p84E7>0ic1tkB|zO>5!LPjMs{52BNkpGoJ{v%2u|2;|uI>9aL zl#E08ItaEuQ!+w${87pHisy{_M(I&Hy{*#YYh^xd4GB#ZlBVtw&8O}(H1!MEgB_~I z%qDNKs^y@Y-&d532_(WgYA{rRp80<7NaM);$}|okk#LQYu`YNmZ~(TZ z_I>P&M&Q373Vw0`wTad!IOgLjGphqL$*kZ;m6A`mX>qf{uRc0c$-|5 zojE8W&aDqbeVh*;iZ5XhuW}b#!(DUUE?~&tOGJ_agMTL!%FH}OJNliOw-IhO4{jFb zlwTG46bjwfD^j6TYN9CA*qMM%GL-K5RnP{`gJZ4a&vwmVoqjbm!&gb4v=+0DX+Umj zWinDiD~fC*(%IG@VB`7uTdYdSVl=Y8z60gV6$z!dlw^o5BfoT&#N3Ni`jcnOeC zLFTeX7|E|mz>|{v2*>mew@5KR#Ez?6KV>$de2~NqcO)v>hs8);Ju^K*SBg{UYGY3; z0T`dU*~)kTfMQ&{L;}WOd`ubXsx@@w;Fy+htje6$Z%-CowORI`3p>7qZo?hz=7!ZN$?C$B~+36s;~E^jQ(l<_HK7qnnn>KRB0g?+d;hQgjl0lB=- zzOb@i-NRsinuO#ULk#FjeC|&~4_k+a5j96Jf+6t*5(OacmJLS~h(yUajORnV;Fk5+ zCE190Q|WYyLRIn+6^yjPXD|lI?2dwrHQaDW-L<@H4r8QPg?6|a>ZX%C=$eG#yltbE;qNXt7;YmW|2GW774@imbexsh*I}8O1VL#mNeg`ALX_0XL`fiNCvQ!hTuIzG)Sge9F3 zCoO5qWmds%KuQR9{GJ$=G!zBI)uS7%f_(~*qVM;RkcMEP{^Y@l!ir!$!QcPkbXXMxPj9BCFQ!T>*AZ>4_Qr3UqN zusWuJ*wkl7Q2$?mkVJmqrq)!?UWVSv#C+L`RnJn5^wuJC2bd-#`?L4?nEF09)i)AO zfjNQ;I|8$-J~v$iBikb>^!L`T82Wn>1w`%2N|FFT`KVQOi6Mds5|oRe`qJwAlU>zU z>|f)mo|L@5Y)&_8P}Wx{AZ2yH3#k@mUBD=0Q;bpx8o~8^hRZl3tu#?8L~D!7T0pnrxNS{QL|Xs#EHn}nF$gl6sAx38LDqI0{uQkF|E_3}2( z#1LVO@$ufV7+DTn7-{rAR1DoG!A})^SZMqwp>Y^!2YB@yX?^rc(Uc}_RZ1(cR<(PT z2t(a5i5coP(@=*VlZM(J_$^&D0ZF0SSGUGc?K~8aYCl?QQ*C9sq1tg0w5e(%jqmD3 zPKOlt6$0@AVKX!+l!0i7;Q@x+>R97Zxt87{!Jse@r4}ZxMN%;F;`SI!_)$Pi{J6%( zM1sl09TN29OiX^xWa1Km_-uoTrb>PJf=C1U1qLK%Z-)N4QgJS1emr)}wTf}iE30ON z$2ElISs!ob`K?hxxmv~ZX1>ojKY-Gl`M$8S^qAI|Q(uo0Q*~_1y%R$@KR>KB;)KvT zt%7fj*79v!Z4)m>qnov|ZQrs(3Em_lvmq3{V)#@m{uHyK(Z;5n3~}f|91Wo3KiK`J zjsMj%P8j^s?(Lbh`QJJuHo`3xmr+GJ6Vzaw3F1}7Q3Y+2M2WKmoL9ov&#PGT8$ySr zT&&q7n(&{i{!??+t++RJ7biBvxd}QP6i){gW*j#-XN)K4t&L*_);c&W#CSF;87y!- zdB=rniQ6P2uOTEF)HWG;j87(&lh^wxRy_k7I76LY@|YSJW83R=fMQ0Ys#VY_A{_2D z4hhjoiq@h1TmemL(~%;)lNzh`CIdI{6T>Qu8CwkfaN3(T^~JFbts(TaY#<6q_|Jp< z)I5l_?M-+Mo@)1!y%w=q?1>mhKr*V1Dz|N+10eWpf$ZA(_HkmPR2&nvBGyl~0~;At zM+hYy>7YMbsQGrj-5hJQ%0L^va`Y1rci+nf9PTC_wOK;D5L(;vnBq+=oH{Ke3tt(|96IK%B!6SjUqO zQC03J)}L#ovJNRhW#Ee#RC-Z>hFpZp+5_KB-uD^ZF2hB`WT$fM*%op`iYg(FU~PIy-xz#IQ^OHBcB7G z;L5bUlA zj{{vIhi{)m7gHaId{@b+%D{0<9W;3nQI*vQR`K}Ubl^5w^&ur#?N}K@A;&8COeTG$ zRU`cwjcmcR3l%JJ2?Y7!QREiy7;MFkVOzYk!NazA-x3H%abqSe(c&Aku)}9ZGX5Cq z*8Z2x!m>+IYLdPZDM5NCX%dlIIsu+&5_azjE9ph76-N3#$uw8fNlAZCAbg4Iy=gop zy$J`8$|g=pb^2XQb(Vlw!jDpQrDxgrM@sO2b9oHa{RIV#f4p>HI=3P~3b%2tgp~Z} zk?OG3lMHPok4^|4SwP!mDYTo^iSH(Tw~pg{ftv$qPXxp=7+z~1TZOtZAQo?<{&;7D z`dg&=L~1Wb*vY?_S*c$GNI`v92^ov}-c6|gUPxpww}_?+EM(}dOstSHilxBF-Hh@( znGVgJCl}t!W9MB?bh2u&5h5iR1mq&X)`flN2}l3M z&QmXr=@2&sQX8#s(diyy*sL74K~=f)G}uORo=NhZQY?{bbE5zx|N60&z|>Qc%>1Nf=V{rQk?!IPK*(iI)Sag&G3d^BM0UBSa8iJK%Y3w8x|~5s359*V zHip7Bpn$qu{eP_NcVLt9Fc@`ZmwOVWCiNOpg8Db4)kNwpfC8evuZ{YltQAK60}?Ve^(*Gtsm~HP@8ve! zw9D0{Ml#V_wi2z&MT9kP8OzjXi9v4-3iVz11Tb6H?T;fVB#^!)hW^^4fFy9$N2EU^ z2JK-qG7;342~aKqgr6xuR(PN9=YNo9s$qZ7Y}!5ZU&yrmG3<&q>rWu+(g{ z=&b^#FiW(k+qY6-`#Rb<-+`pyd`f8y&TmBlabB{-#`)g?Dtu&L2^yg=s4FsB)OM~J zXo(Yumk3LsZYQEee__b2E^|A)j*J#{wlk4pGBGih)r}BVSGw57#Euk$i7O@O$(hK- zH6JqMbzIos_rflq%qAhg2U#mtZq`W?NB@h679CM8Yn&w>PvcC@xi2 zH7ctzwK^U!qIgh>T#ci+0$~XDP7#GFdili5QmO!5-KeZKL8(fLdLwHe5{K}QsDNTi@pWpG_kYkPiV+yd#ND1|T!3BknIc!qN0eJ}j3f4&d-n3CZ|~X5 zo4(&;FK_y85YBJm5Dgu7^x-wosW@SSxB?w_#B^UCcieqcxpgZxxUuZMbt|T8XDT=2 z>(*_^f<{=@NSuB=jjhAIIfO#b$Jw|zUXOOr4cHNNBJ*nt^oU>hSxCsLZD@rEWt=); zW112+=2QtYV6B81(9sBE7pr0)x)vXZ3^%9b;b^G!BwR;+5^jxo67E*advD#1^I$kK zuujRq34&X2oM22D4&&kR8=kWX60w~jp!a!6e-L@zF1-4R=Q4V>9*t9qpP_jcJ01s> zB?{?QC^uK5$%2ii+$P_~KQDHBI59V$ooL$t#&_Ve4;$GNg81XB3%X|0sGRJp!=DL3 zoVTh9eT?4S7uT}Igz3-(hMk6M7jYV{uaW`DfwygzLuAYOA+q=;hsa1;w^o9v5ip9B zf{LJ4M3mi1!mGr+lqqfK&(MTuhssp*P#L5RJS6o>eCO{4TZAwf2>V(QLL1AWlKfB2 zBW9(c_ZjEroqEdqb$UFvYCNKQ81b)oQYXE>1*Z~^PFHHgu;?fZ5ARX0ibwoP7RnGa z9ACV$N){x0$)Tw%zV*d;D1>$bE z5%;i(eLKo6F&ry#D>&#o+>EeANw0`qV}d?!f);^1B?Eyd?>Z4Hr#vXsuD)pBED2%+n1Qe!Z3cVYL6h=s9PKPbQ+wCUw zA0I>Le?vBe?y}L=-=uAn6hNfVujP^pyNEW zfjW}8l7aaB85JiH{iQcD(Z2^EF8bH2h3M}DcGITDASFb9>_0I?UxNaOKFP-31tyWD z6426%t6bF+=`BXMnO8aZjoc(Hi`tsj2A?xfr*;vSe;Kk(0zW}Y5ZGA?BU1ihuHpM% zx5|HxiTyx?ZQ$j`85ROdIrtK8T0#i}Oz>Asa8g3`geo|k-IWm)=zG={5IzwTlGeu%D6=<$w*`Pt*TAVIFG=%A3 zIoRU;s9=}S!PzzzQ%x3^EQz6mMJRwQKl`VZ#p+fDi_;_^XOTKPO_5q7ve&QEKz77` z1V_vdW@xNzUV^H%?{jrbM5)=O#v>)v@wrrcq&nW^dhcwb^$L^L1rjhe zt@m;iw{nwfs+oiF#JQE^t0mHyn!#L5oGcak8IaHPL+`qA{rq=_(9felZ}RL#O7NVr zIEH>2KVbSvf7Pm={)|c%S=ohh>)6Qxd88mrNAq@JC{4lZ5rOO_9L=5FlBvtQ%XL&2 z7s>EkRIR1mO$M5%U*+V7bXnJB-WaG^Yesc7+!Aw82bHMd;F76nkDZqt$9K^42Zgd-xg5d|> zkD;KOQGgEQ{|7N_gzTONq;L{fNl4DIh<)v**K}RgGwHl&Do61-(=iX#y~DM0BST{~ z$KZQL54!L&JGB>@)Xs@zPWPe!)PDK0joMHc7l!e7y=rG`l^ywrp6f;v{bNL zGXaC&6=8*2)b3ScJ(WSbNqiZFhrHuhDdMFvI!1u7%1nL_!am&M)(Xqe=0MoVgIFL~ z?BW`vWWFXNgT~bobO-_M(11#R#LWu3(NqEoMO(1|`GJIH0NEmsjy?shIZfVw6aw?O zCS@Hyn;}qTRT*cL^;Qf(S>+3Bb>p5N$L?ODFj^;X$N6p8c`Pbn zcQSlU*btUw}MjhbBB9A_swV%8>fh#|(6Rl<}l5QMu< zURA~D5HJS?%re>4ti&iE9Fs(U+Z@qtV-jtpnCY2`z}tncy^=@kh;1@~=A}bCGv&v^ zKwabH@+FI~S6dcM4c$-55z|&?%xe7fneRB)D5L9p5@BA0W;n^6MkT3C)a!)nfZBwZ zxbu!gtt)QjLjM<)smCj3Wdmyi(;sV_9Fe7MvkIv$8g*t3);q~=Bj~r(pf1^b4M@HD z8YIbRHCS+)qG~=Ir)yBVZ5BVe)z9}0Si-1-vv{UJZM9hdpI;Bg0{F0a6{6kG;f}6MWYjpK-_IK_CXRew6=s+rBuia|EY zSkBH4#u}KTgWS^G@E>bP<_8L!8IofGqP6BH0c>z8uEZ7g-k-2@?Jx4m*Pqn zuCzBsJW(SzZF6WZRNwrNUzb=x=%6ZgN1`0BBj*UhKk}Q`$`$yVak%^)6s0vPOB;n3 z^ClbRy~b(26QP}GKE~jZNglGTXq)>$?)}Z7i1lf9<661yJ8o-^I;XdTDC?#9j)(S9 zQ>H(Y{(zd1t*{==-IM9}gwb+TtYcdml4gnHva&)iRr585b~Mwaa6c%v>v*FQf$u;h z0J{k;L!3{~>APu$LM{il!L?y}42gNo4$Oa)+%-m=o?Q@U0h@VhV5B}=&UOL6HxA0n z+B5_6LXx|)2$6)u$ z88v4%Q zB)ef1u!&X!V5XOsj-6Q-3q5du9A6xWS*n4k%#MiPW7iC#vIs=dTj1r`imBObGe;~O zkY?A(ZDMYNc6WMt=}tP^>H>t-h^2&}%!05i0%6&yAS{bSX!x5yKm9zFnaU}S!OaZ_ z28H!otTcMt8wG4?6U{-&`5+u!1Aq;Jy&WtiY;|MxZ_?{X5b`+Qb}~1_x`FAVtn-70 zEi|Dpnele8l(My(sVRo z;o6I&;5y~S7+g30opGHWu<59uN$XBjh{|ZSS&+TC90vojpO#Iy?WTZt!QtRNDmI!T&4Up?hOb4XI!VCWoI(p^m z2pye`(^X7IJ8|Eih3hIL1=kZ^h@qpKP=J0^q}#ZD7LX#ScBO=jqjq}nEIQT z{tr4j-X}swQ*o-9>F7!{VbRfLND3WQE{dU}#VCM|_G&h+k9=ov{iKA9d6J zorH~Bbo4J1n+ug>KPo}Ch1!`&3TnGZyNJ|LJhy`$c4~7?{0CtJQG0zPwaZZveBUc< zQ}mj4Uvo!>_a|^FN51+IdAlENS}F8r zP=a`+cxzQ_5_9TEW~|g+;}`_$uypUNC^cUdOC*jtVaPU=+_df zf|3};Z2ReL329N#R;Hi=G9Fw?NLNE95688TV{i}S7;G1?>miXL4d~{C+6q8;0++vg z*h=3UND2B{NfV7Upznm%M%d_k0Fc6fDpA4KuVFy+12?$1>`%})8xT_ECxe46J^eQ> zwOnr2uqFJopmWDJk$Qdr^+MzR1mfR?Izn@qI4-L5LAC_X zq?BMoT-sC43TaQracQGzPxVL%ef{mPG3@D46p%f=?zh_0r+^gtxlk zEnSHZU6Hp2R~oLf-E|oI#zp#3IanUujakSnkDW`rC!zKn;D+V(vT<^m$%zIPG5d+M zya$DjtLIobIdaJ0WT=F+aB`Sg9=|g3|H#QLAUG-~bhC&wrT?cE=nfF01z7XCgxpjulfH`VW}gF$=`hm# z=?cl?Bg7Sw`|umZlo65{^vjZzu}5ZnD>5o&#_g7~v(32V;>(yzrZ=>NOa23g)3{4s zanRa@K0-=#pJ z(ja?F4MiHH^=2*>tU#O&_w_aSvvV$i4N+W+&ROU0QcAvJ))b~IpFhBfUKf6gE^y)f zXv#7(z6(iVPI2HYsk`%hg4@bn|Odb)u z*a*~;+Nb*@Ej;}dNx{n$cDr_XVa1t7{NNPNiLQ+mGhW5Xo z$K7J5M{Sb2+$4QHYS^`ZDeQI%_3h8`Faqav*lnG#)Z_w?XWZ8L4W8+?P88g-o^I-- zw{4UcaFHjj>wE#f4321`Qj9Cp(HW$T7nkxJLQbH;TZgchPem7~tpnR|a&!0C7@dWr zVDv?4tC1$*XLeT~?D2?=(OiHEo4Z4T8Yb~SWYjys%B1%pgTY7gtqg`nK>{WJVh$q3 zNBw>R`Ay!b;5)M)=j!@Fs0)@>2){XVx4}gh)ClDgmM3Cjc^K9}^M^N0Ec6aQUlYp+ zX)iny2-TY2D$NMmN+yU*GE84Z@Es3(Es3mxy%3ZhiztZ zEP!UDGMDYjuP_4`fdit(_-~lAIy#7NDW< z-#d*KRn)3ok8D`}0%TjdcnOk%rGG;4QHMf}+02Px@2NJHt~VRFM}nRTOYdCYEK6j6 zB*4Mbcx%EJ?%iRqb8N2RP>R4*4BIkvFN0);H}nMV##N=gx-q@u6tMJz|3#QPt} zHu-oSDZxj*w82O(w~rZAeNgpU`50@W|5QT$KkzY4G%}tU6vfHNd;GTD;NfPoks@$X zJ)yLE0&a-3Pj$^LpBNe*)-_VYl{f^?HC%$mOv%hbN=W9MIWaWc3I(L$9#gE6$uo)m zYPMmP^vhV$G#rA4ziUpzF9QcPGK8CvMZ;k!@FvgufK;R*N|vB5Vz z+hSvGHIk=lzY`y{F;@&w!Q4T+0sr5aqj*a+=IEX0Xw0q4HJA(COS2B_%R1=N)ZOce zWBl1DZ#U&vsp2|Wai#M^Gr79DF-vA^rYZ0vA66M04MmO6O@#I3Q^r~?j9`N>0%5yj zOsp%U{m5NT@=owgqbxCb>qW5;2QI#a2CqqH4jp_2HxIy-3~*~R2)4Ep<|-$Hc*zFQ z-#WVy{?FPwXoMSfHtQYrU|sZ%O1yO?{NHA)-NoNLDa_}q z$0GU$GXvbILEjr))ncHFwC*>rbCRz_rT!4n^knk%>y5z=GTL2fj({`K1|xzQF&hDK zJv@zopKdY;xdoMK4}fcofG;82^pDRWCHVXWrV(|vQ!T7&-~=n51t$8H5|WRA)t8W(BEhD7W3TY068!Xx3n`pPWc8t8uRlYq?9_#G^ zW$DjaoeOUdl;`p*T>FW$J@jfp$nquud*4BxvX|Gp;`UcM>do$c?dM~MlG$qqwwEJp zm2u51KPGu9m4Av+S(0HKLee(pWZ*y|#~kam3k`uY^T>U^apb;&&hXie+;53>zHM*egam^S-$|Bx0>*9t&lX;Ag7x zkIOd?=+|Mbht=21(|{4R#c_4BIzJC;scvBAwqc$m-)y3^)FG2NSsk*3D0SqyFpV*5 zsbQW@Wz-ud!SZqH+;Wbb{T{9T9Qk_l6r{G(fTJVfP`=uLpC!gsvCW?&N0ag(H?`M* zD`Npo#|(`#--zSLvzAS3O&^rdfwZ8nyPq!?v3 z`C^PRAEN+AKn{+xO~x9^4F~_Ugf!M!;+WsTh@&s}b4=&l%Q4ZCK^*gY+r%~ymE_Tv z`N+0RjQvOoYSSK$L2VlpfZ8kV)Y83vV(dRW)i(BHJdZ)`e^C*bCXScXvZWv0>nAY1 zXky|6+n+k-SCA5+qn$4Z9X*XEEL;bW6kK28jlp#a3P5Z2-8LN!H)*Y#5`*iXBXm@b zioi7O9?7+#Bd3Y&pQt2tbog@{wFi(C)IKKdB68(k$nD_CyKL0H4oD%{>m+2PMMYA3 z7RR(+Xj@D^Mw^%#rNra}IEIeoy1eNLlaCdqC(H4q9{8aJJ~jRBGvZwyPx=}u!TRjU zF%&f(1vD%CTOsi-gD>v@Qm{TqLQ2-79#4wAnU;1kJK2vX4YARtnzX$xO(9Y(3s69` zHQZ^X?KG3N`z54>HnM#CX`^Oni+(&Q5&+>N*F&6?pP7ls<4OLtBqr+)=2@s0{diIo zr0)vZzbKJL+rI4Dqz#|ch&`rrO2?C?bzsJ0*$e;qS!q1)t+5)|61a2%d z2<$E)Ed=tt@JIstG((`d7aj=}?j5;j-7t~M>`iXe@DQ{Yp2bMATGD3JGxx$H@xIvv z?^vOWp%QO2W7=98X|NemLotm>9^5zf!h5%e4beUTh0-JT!e7IsN+SM`rYwWTC?thB z{W>9rw)Ucc#s9~Wwu~6kxr}JG7rs)0a&;kmZQBbUvlcnD7e3}x_QEHK=FVl-YugKd z2i7G0A8N_nP#xJ8o{EtaJiR(822b-)Ks;S}n~f*8*}ymn`oG}mEYX~s8N9IC%-eqXem)Fx1nmPAR0U^cHoH~wplB^k*qUYc=e_?L!nz){;e@Uy19Kdv8VONc@vE(ruxL1On3QO?Y^h?J0#12RB(KhRRyP;L@$<*yyHLxO7V8PRYbXxcSuo1dA z8KKS(S6B&r7b!tt+gN5>C(L%Vjlju(6gILsirKCeYmHAKnD32jN?MQhTAa==`m=2({h8x`%xiO@MqBXv7rA!*y+Ao zn2vI7Oq6bl;`b!|ilgZC0#5da%Siw7mu}ugO6cExcMJpVi2^K3$BZQ2 z<$a)204UU-ECIQF(vp70UfgQOZ+ts)7lVF{8P6aZdvK_mLh+d5# zNhW=7LxW7jkv?o83P9hdBdqjoTWZkvpahIc-;Er)m86eF8lEwsdzsKhpfLK~pyG8x zH)5~y_f&9_vfjazuohrq)-Y*4`3X8dc_~`346*4*3O$q+#^CcU6ws_;+fBr%F=wp( z*x+=o1m&FKbSb;^4F`L~?{MH&U99lN3Pj4y91$snh8Za3MTX2eIq!wawWKl-Jr$)E zq9-9Kh~5YdMpe#7C?KNGvlHFhB>E`{+C0(s2}HLtGoHJ6X{qHYG8+T#y?N?!bAb#~Z^w-HKKF~zZAe<@Z<%)w_*MjK}Tc>pQtKktko zg1S4nZ|XAKYM{Lst!%2l85JzUJ`PROn-Fwhr3Pftu^)EgX8_#>_nJU9oLf7oj()EP z%pd&7u!EVXRQo2=S@s%aoAiE)l%RLFG?vKzRLabwK6w9)R(j`{=>H)hxyG8McZxvv z8q+`eKkHv~ucYuEH=4+bKrsxq6yaQPC8_+;4r4@SE3`DOCw?Q`Q-3gBl>%05U$%Q( z=<33CAKL77HIjn)F}KH1)&LaHXgu)-TPG_9s35qT1m)agNSRSV!`qDQ#{F<|RH`4# zk-fn*&zD_v))?Bl(nMH=TD5eQFnU<3o#GBA#rMTBuNzQ66n{F*M)B4q2E|uM(34Y~ zAdvmSbZ;!GN=#&5nZ{ZKnyV*N;2mpr=*B#-XQ+#&)x+|&b$IO%I-4JlGgUiX^AgfM zfeAZ2+D{(su&S+hg{xfi6VhGt^BuToqrLZH)Y^d>JC81$-)dgoPLKAjNBhyE{pJeq zn4hsCQCtf^_{O<3*6em$v&u5Gt1QcR(2iDn?`5dDooG9{ zP+8UrcXEJ8vu$Nr9)9UDe>pp1haO-&v-%ZNOnzN^*!}hO6mgtAu z$HeG|pP(RDI~+WmPgYH9rH26d$NPp+zkmv%8x5R?P$F;^-4+AqJt!cYe>HH@^5AU~ z=RgT5h9d2Ns_o~7=g-a{hJ2au!CeJyn};&m;M0)nyo2Gf4n7T|LE>Kk@M8gQ_+<&e z0#;V*0erV6@XG+k#s#~nnZp-*6DUINvm3eG*T2_9?yHd{{U1nUs3V>K02GjnCVH%L zF9D=*f9DfZrrhs0an6(EM&g_#*gxCANpjCLaSoA?(d53kLCXEjTRCkv53$O<_FbaQ zD)(8a$K+lw6m^jVh$i>9o4~II*q@erTOt$oek0ID*!v)43AulLOANVhKmp0U{(7t2 zJ22YVB;g%Yu*m)BzYUzjB)O4tzgn>WPXi~(eFY$eF3*&Z(d6E@UdsInLE8bYKVk0= zF+5hew;>YA-d71DdS3!WlY3?p_{XJD{uz6J>Q^rJJ?}J;`(|Vbxj!%}hTMmvfaE^Y zZI$~ofD|(7g$fqAPd9OPmgGjtJuK|>5(6j6-DTq3j|$AdqRGAV7b*8;H*?zV8Em!p zV{b>=`;(~0ncFBfbzou*6K?-H7I!2(z^ zK!1FzwWB@0>02c29$<#V1T+h2VgM93b$2>~_2)PpYDuXVzvNOL?DdET|oVXMzi!Wn`|#S-NmRZ6BPiq>_T#e?G>aK+u+_TRU_Izve19 zANgva!z0MU&)%quR6U_g&q))d5Af2_)>2i^$b=kB(`gK{YxY2tFk#- z!l)pj8L)#C%9(Esb!ll|FxMmPc&(>CvUUw zDYn^Gw8;)zumJ7s?}HEwZdJkz!>xsjOTAYp-Aj5xFG}}74*Pm$82fsOUYJ$7zy2Wm znoy*4_bpVq&v-=*yyQTZstxY!(FUY>w80sw?i~0btU`Ctk3tAKL>BmoTW!hNcqx=Yn3=cxJo|`pc3-UDU$s(^UOg^aMygNmI)X0)9ceI)?XNEbj6b=au|0?aW;5JD5xrndw;7 zzkC!K1D>=bOq)A=0!#I1;au&aL#>-NdeUFQp<}N;b^bc z3yBBYo#kZxM%vDu3t>CeWUp(5z3wvX^;f)h7GbZyOkgb>XL3Hdy?!y7+pBEtmnUPl zme{m+%;l{;af+>t6|Gqg^0j<2*5^MkjkW7Ea?EfxNsuP})K=k9kKVh^qfIEq!YaD` z=4<1ox%DAA`fMy1Vd`^>Kq;0BZtYhnu1+l+mIhVouffy*Ck|Hb9j@vcH`>&{s%2lb zR<(Cih`W;NX?&wn?V^bcze0DmrpsP$FDoW#eVWVbe#9`!*< z0X3`*P4YL!`JBPI*FcgwFUd)C>rX6(scWubnWb)R;51h`69bV1a3U?Q_-o%;;OWCB z7*E&h2|IWqxDkX``%{iwpAWn1HxRfgg zCZ*&UxyFF=3%#|&-`4^4bVqzT_`m{E`Q_I_Iy8mOFFZU%zoy2m|04&wa_f)3Mc#?b z%0F$4!`l(2gY{YF))mNh1b+|3IsBi@L$eNFXN>n#&VzmeeSF=Vj+N)4xnR{0*5;B| zn0()gQ;OH2u50${+W}AK!}%}yxb-K=G}Q9hdan4 zS6HkDc1LDCBg3_V65(Mz)xe0-)hI+kW@R33zlWioXh7JYUMF$pOKi zq>)T?Un#B4uh&x#s``B9j?3prPfA^&D2xSqIQV^ig2Pq*xFlWGKPhbkaLE5Uy-j~V ziNS~7>CYiGU})2eh;AjhjgmYRvEEelRcC)WUI zOpx$3Elt&*TnJWFO-&1CqXLQ+qlR01oU+3@HODUs088UTPEx8jrRbBsBn)q2^;f(9 z-H&nSUkHqDZBUM`7vagJ4FztUGIfpSKghUCWWeii;@i5lq2u*=)CP(lR0|m>8$Mgj zBMMPIie&QU-{Z(ih*4clP*xs1W6Jq3g!^dD7wGdqR~Uj9Z3N3b%$h{K*@&N}IW#o^ zr0@HVlitOx56Z!1_fIYdE>$nCAj<={%mCr%<}vv8WVqj(VBR3cM+q zr7r)h2OY}Or7n$W2)$0VxCZn+xMyQ3cGf)%yc>GTsZ7O=+%JYUIFfVEnFmVxJA6st zGa1jpBAB{=da47zi-2FG3pm%lL{sHfX}&gWa?j?=%aEt)i)x^oVD1r^r0&DmU#@Dq zc%6s<1ANwaU|It75feef!6f`e#bop}r*u)%*IWRBchH7=_$`6cx}6*1el zpsH1K_$>6iajecoa05+PhYI*C6hC;@hNhvsH*WJ z(j*~0&U+CWDa{O{-);41$3)lj|B?XPfDoo7I(!MLHXidW=MGSe&f)qv4rAFBZapd8 ze-MLNrS}3F!jdqARnic)g7rTd!mtw8o}yG<<`162-!UjOdbGuhkb(P**(fHO%jp&` zs7XQytyC?~Nd&nVRDNKCN&#<};H`s-|FiM2&E&{kOjf@^o=s#GWyZeYUeiU(SnTUA3V;)q!wQuJQzP4IJsK*&FN}oI>3DCu%{7*cy`aj{(>^F?2SbxlWhugcmqZcazleL$3vPUYI$V63r|^V#Fi4&Zk;2B9s!i^Dqt+>KPwvy? zUg6sDrUGpj6Rm$*n#0@P!nG+JGqZLHBorZzSMFruc#Em`jbmY4O5j|}Ft=Y_%aX9g2+I+0-) zm%DI>8W8i*z|$!P;ra6L3xLO-gMAw z%FNQ84m}qsAvIcevK!PYt`~17gZm?}7(SnzjovF0k+a2nZf8tSVhTJt(>Zrr3`fis zM`^w)@H1u(=e|5|BUpA=f)`53ukZoXtNuW}f6bN_=z(I)f0#4y$>Sw zL3lhuo*h(hUK|H(_=Zg>B1TU!S zx8}IDm&cP@Tl7Ee62CO zumV~5XrgML}6zZ;!D(axt77?s;BkP)(hjqcHNn< zzBOchn2&JlqxlHU+n5CNGQ*hfrcCJ#t?WW15R>O3ut{)>K>Ql!DfERTY|Dg$=|8+B zuQ=@MD2a{KmmEi}PVb&EOe2$EAEz=E$+^RDdSZ=xIU`Yq4rq-#80rBD(bl-_Gb`B& zw>ucJtZ=cO>cm)#T;s9;v$O!YI>i~jFA$Ew4QFoc7=%sl?=nZaiRLt_&LdwI=Cyp9 z{z1Tc9)ygGU;@q$W{?TxX7z=e%GDZqkX0%9Isp?q#N(K6RaSnJJb9)|S$Q~R@)-K+ zsLbgEsblTyuW99PY~>xr9ubvD^5(BZoC5R2b@9Hz_#5XVa~x*5m`>;%xTY04!RI;|YKM)-olwUNM>w_2MFI$P=*J>V zNoC|gJ5Uk)MtF-ToWKgI2rcj85!y@6OdH zYMCP<`ibPDDu1cz6}*)T6EUXa|FZLm93)Z4J#iangX< z$ax4mQS>B1cXX@Bs_ux5W_;=>S6hh!%@Y3gjoi|)fw4+|&nvLFCB$xj5= z=$7GB@;n7mD5?e1L{Xv;8U-u&A&=pulQsH?3Nflj47>s7HxEmR@J=@fqi(H-4ZY6F zh_X#owyo)~d?#keX!1UE-%}X``eXe;PI>q+6;2-O$6k6HqoWobYxD5Utjj1%E7iam zH;`==Ce2slwuBF|ZW8LJ>RmA^GAS==$E5s12Px%W`%(SDiJ4gZ9ZP)pG|=@-@gTi zbIbW}YtwQtgJH&9hF}qlQ*UoI%}}97zaYQlYsOAxTgJ|YB(U=!6cW4$?6~!F($QL% zXsvyd&qO~oN^4ViYcAcBj$!Kn4u)|H`h&5piBab1 zGMo}`Hp=+XjZ7S$Fxj7c7QNtR(Ot#%@<-k#()V@1FKSVn1+{0S$HNS48_WZEdxKB0 zy>mo+<`x={I`(hcu2Ql9T4ysk3Oj03q}sok47F!K_sBg2I8r+cI}QSEZ_$cEgdN|6 ze?grOm^@D+3mJ9%dN_?dVZ(;@UQamAEkrD-zEzy}GPi~wr!Nq3N6c?TAh3N6#aCN- zv_tmL<7m*w?Fd1uX;)x@B|?wsxtO1xEcTdR_$@82jMyUv3fe*wZLUQmooKR!9{)eq z&ICS+A`AEvl7WE4jsj~`(5O*iy+A=3Lo_23?12eH0mW4mjiP&a!HnRVK*A(Q(+uLd zc&p%`@gE5$t2+MeZP;NX8NeEdiCnnt9R9_ zkhN2!ym)IOVXa1Nl8LxNqfS^^B5AvG<^)p|=Y5_6K-o!=Q+DE?uvD653cY2_$6vBC z95cRMVM~hZvPQ(b=STN_t_F@ztqXaHNF-8VE8zbi_V`PXGSqpV5MQT&>EjoVU?uFdN zqx_Kyr&gB69#^(ZWykDW1LIy0pc#)pf%T>X+j(6tjhmpHUqXA2!KIRm&Db*WU|M@YX$&(PM%>)+72-#5 zwryr5uo?#?oW=ji@+gjgC=x!(=5T;zA9SD6M|l9b>@lTBLtJKZtis9&#rl+rxh`6t zC)Be-kJ}#8YG9uF6L+bOvmY9y3a2_kiv|c*nz2yd>w4ty- z=f+*|V?rhptLqZNNPMeJWB3+aQXv`pcbrRk?_ZmBv=CT2&Qt3WZD2xB{;pIr<8(8I zYNkK2)=oCn1g$mryut%YVK)UKtHn&z2V++xLcU$5aUME>SdkrM#=% zP3!3i%t#bvD^h2T-_$|C>EK-bD6@;e8^Oj5M(iaDR=cu3F@6b+XXwVYgnkB1*DF(B zvgu=zO?Pzc*0no!f4t$}(J(FCNQHtFk*^k}xpwW+P0G7F^LMKIousCkb?W6+2Ydc4b8rTDPf8St8Q`{h_M6o?FXuYij=kGBkM{?=QOTSfI z#i*4)3bp)*H3_TOT)PMaavPJob(S(g?*4&*Sxk@=di**yu)*^6+GxB`2sX{0F7}Bm)1D}EU?kQ%0xvRD z2)5Z_V7+JZE@ao$(N}?Yhx5^wiG&g>(AUMb6%Sf05S@g%L<^RYo!`T@-1w0!9YnD; zph)8bM)H@4JkKEC|02>@Bx8cbwDux;sisYr}=m&jEe zC_#b)WT--l5^})N<=1GWixtHC$fqJth>@(<(hw~gk2XvdIm1%V6HThx=&r8QdMZNr z^6M;*J-C_zEuUzTkb&;WZUA?n^V0^pn;z&cYC!vgLU%ylX4EPEiw5*o%(g!^px5xO z!+;+81p_Md{j&pl&ffh7G<&!j&|F1rKR?$$I6rMbS@{VuRGy9<;?i=b`6j`%jOF(- z2-wfTnOUBkUYwoXW;V2BF~9EqSdjTyVqAt0@$zp|=royNU+$3!_8AlGOkQ5+78ShT z(_WBC)w4iNutd0P(7req6P%dxpXOs1?K18P?XL6Xr{+-??8^%6Zm46*4exEkG=}+A z&myr9Ka6gx)pa$AK2VdW4LKm?y;oBxzFT3ORc`wVcM9F-S6KP8B8Q*H_>C~*)D-#= zj9+!Ni*eC7!O*IYguM47;}gG1lJVgb5X=iYOTJ0r{m0OG6}@oLY0%U!Md!2FV-AeY zM|jf#oumKj((s_4MCW3WsNJ9l7oF!9t1gdG!~FB;%tysh=p-mY8D2YCUA>G{D_*`# z(;fy+EL(5<(81qUVJa9}|Y*ObXdbjZG)~`~C z%$I$!DRcRbRf*29(s1^H_BOq*@Kn_d9BN$EzF~=JL6u7?Rh^<6Q3m9M4*+n!Oaag@ z4b!T5mjYA6`_QCch$+m>#Q-ImbC&q0j%n~UM1Da$$(Z+W!g{=kBWUQ`7u)aHe*MNnBh~kEf286)u(A!X=P>?FC%0FB+@PZKw2? zpQnI4%5NXsnId-z#0MuK-ijRunoci=4-z$>c`Q!6oa-)^0^QB>x0IV@KSxO#o66~_ z;1rW(_ypO%z(^6@AtSX%Ax8H=jnq-R>N_R1t?nKDUX2f0C39?t;#@7M1xwU{A7v6B z5xh+=L{9q=Ch^F`Ur72)_Y#0fF^OUYSsIi0;-dpI2}25U{=70lr7;O$lAzPFb`XR6 zF^W@#sR>IuR+l0$M*1>-zk+8=!C@)x=U3z)d?h@9ukT?n^`kUCqP?lD1RS_5Q`=k9 zCrC#mr&vpjxN;Y(Kg(MDm;FNg!dgB7MQ%bC;VIj=?Z8v)4}XNG48~LiKxu3aT7?g# zcnUZZ_v6R$6yW}}!om{=2v3w&>)Ojq?NsJcDRWtJS#){NXvKT-74JEZ@B0IFa>Wyq z`T}9!ngL1tzBgOm!#`z3RPTkhTT_ee&kO?M@O0%&`1%rzFFSmBA**x=HWn2A%BEuD z&ugtM$_mqF)YdSc(2@PtCR#n6;z-PR6X#FBKDI%^A=&5m8}&5Y2idWQfP|A>`CXiv zQ`MbFZ?gX!f(BlrD~x+0|8a&Cm8O)2?2?WzZ@q zw&&=*5T)#es9LNZ*2)h%5^7~7u}bRwYt>aM`mpDc4AMrldex6<^+p1(Y_hfmtPexh z*F;LxVS--byb5al)*4`Zm+k?h7()WqBl%RiR2&q+%$S&Smnqv}=J;Z47`sBY+RB%v z=lZL^NA>iCuaXOxj8U_Y4#^GQ8nu{Y1y?3UC{h2bjvFXISNYaP4&$+p$13nl#|SNG zlhO)UkeTcFsn4%o#sA7zeBkL+kACZ0Yt&Zj0-s?F(+@k>8^3}Qer;8cdDls_UOg{bKJqku91Fv=Pkpw4Jg>WZx1pXJ9W* z-&s&WQ#^b|HWo-s-Y{j&OWL50ZQovSSjqsFqa;+ly)){l-0vYR=o3hjwHr%T(!tr2CkuEY7|S7i-eZP4D@Gr!X*;Ydp#{ z)kq0N6CHLXl+5{5qRonqi%VaJ9RGQiXW3B)GbO4H$80!ghlG1#e2bjrZ!F1YEUBV& zF?$xFc1^`4S7XVrYZ}rB*||KA4$V;{jOBnOczU~lhLkaJ0gNMQ`r3VlB7+P?u|Ka( zY#iEIIm=Cjb41T(RJG5~J7_ZsS*{x(XSe}!WJHPolRoIUxGl&YPGcX5i(8}P;+}h3 z;^KxCsJOTQAr`TmW0c)R2gV&N@350gV4QwCR=rI{#tkdbRNu^iOhSJa!jbWj@5E1# zt}st+)fyhLZz1F9Xw48&L#i6@ZuT}ygM;cm7O#4VeRjB7qsS`hy#O!^y zsdJqY;Z;qYymYV|(Jy5Zu7 zL`t$SG#j_q2o=Y?e*q}zv4oC@S&+rY`Q5M8tIxIJsB^>_`g>~yUzUPMiOs4yE?cv{ z2BW5$8shi!Cym3@SgNI>#!uATTIVpgE|s}e@GF+M8%ym1S%eQe0307`T-PMwAlygj z!Id?=uQLW60bmVij>y<8<(1}>T0HzOo1_w&3zH9EtUJgqlhC4lTG)2{x6*LufU=3K zrm6WF9H>xqff})&pRdObNt>^(sd~Df&B*xwFO(%a;KQZXam@}`PIA#ESw4cnYkJYH zyg-4^qP?{YEcVqgDF2}v8Ao>3f7NN#e)9yrX4#>!b(Dg_O3Qy>8vv{J483ZnHcA)H zu9CsB(pT*f`KeWVL~7L@-M(tic317$sa0ED{q(9$d?U*?lQgw#_gV*)t7W@D1G)dQ zt+q3}%l1XTc-g*>9;KG;yA>^Z@5E|zfMt6Yk2^1~vTOsbTDPq|iNs5gyeD46U+^jU zB-86rFJ;xfTE8E}d-beyt?}U$cu9ye?&GS{nk)yoQhO^luLG~i_rLrjYqC?O2KX5w z;J%nX1a|j#Wj9MM%Etu=!Egg_{_j@hWHN^IAv-soL3)GK!aPjCJ;1^&6LKhU33(op zPM%H%l$lzYPtl+&iJ(1PE->dK@m&;IA1Ll&6NtX-J>edo9)ch3U0IkTXZssRb#OG3$v!zEkC_3UwN_`iQh8keu>}V>_G>Z=XC#)(VF!m zkJokB|MMqAOqJ+Ej36hCaryraNpPTN=hZ>`ayAmHGzNw9tE7|G#3hkSlY5ItGdmyD zGPRV`{g&BjYf)srJ3HsA*;%^DzgEvqoI7oeC2It0t-q2sM5ta9vf5g+lUMc}S!wh# zRGPU$mLaoxwOWVvla{M@%kqO)vnhNd*ATW*^EGvI&1Xh!gQn<5-bi1C78tj`rk@`U zeq8eSOf5r9w>sy;;}r6*)^?~4+O4uWd=(d!DHJKznaMh?z11Q5heW2Jp+9MQGNbl%GC*s)M9ZiOS zpTv6p$Aa~e{hjEENFn_x(m*Kfrz5gkQDur2zNZ-81KVMEmk^-geAg57=>bzb^Nb|d z3tG(lXp-Y8cDGtje$DPS6B6vQJDPoRWZKyD5Pl+4ZCXAT`)MfY&iRW^RHJu=B9Wh$ zcm~2a#Zcs&fTUDgKb%_}Ac zW0iTq*n~tdc5|_5kI5z0KZ95S`}}P4q;Bjbs$DlDb;o|hZstk6*|`<(Kc=CfMP4u)LYu4_V!EFh* zC7xDxIF)#~qH^?cb$Xiwl=-9Icah0b(K{Gz=pRfp1&yZ;=Q5wm$hX4_!)FD;y+*|< z&I-s5hkLrB`3BEmX5*xQ1}(+9I*wV{=1x!TDSjNZirECt$50j5T6Db&fk0q3{VB^=-O7f0({x|I2ipTV@QS%Q3ysq5wm?3EqL zj^2=cT`pm$d8RdT91#TrOg}wHGXVH_hv+nkdP))r4MK| z<~=0@Us%#Kqa-fMsQ4#p-<@$7HG~E@#ypWN%)-*98Aruy<@JC!jCmFAGh^Nqx!U<| z$Z~{8zNOBf)wjUkh+#mqNfm6xh#0f}%3X+DMT1CCG=@H5I|C3668;v_!r7f$ewU0TV*_ijf z`*@ygT5hM`255DQnekfC3RUC+Vnv<;G1{0NOsqp>Cmbd=T=w4>!PUpN@Ts+RK!Y}r z`#FcOVK3x3VxXP1(0H_I$|&e=^<$g{w1Dk_M08|?`wQjuXAu8ZB9V3Qi?IPNxZ z=a-N%-1O+sfR9>_5^{!Uy`cduxGn~)Q6$-tB*_p4Y|}cbaYVMna0R1#x=fi|icw5x zu@qVixwL3<1sTF{;e#Q_a6m(AzDsrMW^l{-mCZQm2Q;TRt|dgZ6{0e&(2U&1z>GX; z0$vMEHANQD{}V7cs*z;{^d7^F8rh(hrvuhTJ)-*)p2+K-w^}sWjUQ+ae!zJ2%_&)J z-LoEG`0E*i@KrxK{OOGBfumEy|7SHGKhMl=g!ehVSN9)&lYUtK0}S|L={bJ#^O6H@ z+I?Y2qf$8vZVTB{U8Ys6*?ybRkegUlIQHs@>9amb+!Blzx)Z z+z*A(n;oYIJThg@`QuRv^jXmHFPR!+QA`x07dNVe(>s5J^{Yr_j7ciidkm65axD-~ zBw0c@GIXzVL3_bHSh)eq_1wn)*tPu&yq7AFQ39Lgt0UXL!q>5zNCWAMik*Ki`B@5< zFZ*|bWo$QHGlMhmTqXTsJgRv_bvf}@(a5y;#rs_SUh;(wTj~bG>z9fH5C>HK`6AG* z@>5EO_~yNHl64NGPJirt31^%_xLeVt4N8XHya^fhQ1o?YkY45v#n`8%fqd!`?r=<# z$(~s8eD1?K7qSM618kFKK%WF>a*sOa@o{=_DxdbrrMr{*HENP@A4C7~drIcTGE zgeg(iQ}gYy1MN{bC5kfM#=uDTa??b97RIS zp1cf+1^b#Zm-JQGx)QqoSprdhJifV45mn_DC&6B3f?ox1$zc=wzaqfHQcdhQQZ=!! z_!l%m?dw6E5SRprv%AVz_A*wD>b;_FS9WX7Tegf_`glRJ8iMaOW_g@v0l;`+wW2w9 z#H&AV=3&s#_?omoJdO1YZe&;u3tiW(RwmABEqO_q^5OKwrQ0i zTAH{UNq1zKtmrx0Ckj&{(3$glW8+&)>pbj^l4A6{Y_l$#wg&RQX?0OZ3R#<-d-A!r zy?fHiToQ};?c1CppejHa6z^@zc4lrA3U4%{;wD~#_3_a|FRP#-+b ztVZc_8TlpZO(XCYQQdVCJ)VPwBA^Cy-VuTtoi!=L!{+;X=T`N|TMhXq$G6x`6+18) zdQ9$EQpJ)xcE2EVDkz4-Cg*!{gBMdE=ddDb#7$w;3}a-V?}K>|u=6F6rOLR_@A`+C zfhr$AMWMHev;-oF#Av1kGV35&Bf)8=`{;NLi-c84+l zEBejW8r)3w#7)Lit3{~{mA3^m-c%p%HJ%x`6auOWGrjm+e zc!n8GWLB`ddfd^8x!JtzCAx&KdCE5-a?ZB)BFeD!V7Z)YCaQM#h+Ok@4-$N2>@$6B zkwdHSAm{Kjob6xh>EXA>3;6Fd^>MUgO##sR8RNB?()+51=%vc@reLJNG z&)W(G@p=A4qu;mFn0Kj!Cg)FX^z?wSQ(yU>);l5Fyfh9@9p}XYXD9C8$v%~$=`^Qs zaw<)6-|{aPdmX=u&;PuO8YYS?7dKOE$St0(o@GtoZ(@A+YE5jyy3JRo4MZeLX7M8R{dN9+Zr)*YpN>}OLPmJdW(Vyd%Cw?5nIioDk&x;x*vy-eO@j>siL zuyrtLrv*FOoAN$$l1}Z#6BI854pO;9_fS`spm-{VHC} zU9x>Rf5-O8CZpRgN`9l-FHHMpWan>EFrVAu8>vC5j=-jRV~@^_m1SF!u_hzB>lh;{ z?sk)>l4CI1m}{MbFqx4Z-IZtDuA85c%N{waYdpRA>K|?XmJZE_Rk;z6kO|Knjm8I4 zYQHs^QRGX4$vN@E1i26Q*9+o`OTlkk1DswwTYp_fWfyS`jXo@idPN}m4PUgf<0-v3 z;&}QkU_3m*Exthy;MsjJBUh#u>jYvug#8(7hJTJUc8GxYG;=TgOM$0Tdp5#%Oj$GN zdbjokf5k@K{7b#1PVZ`8JNN$4MBmBPd6&@K1D)FbQK+ZTL7-kFP`^i`hy9@^Xr@h|KUBRKw(ysfRo%dHxps>H9?DBmO@O zmNAO|XY&86{GVKQWPLQ9UBr6}{}>cx*B1%kud3%>Z3YzCCwHZOOOhG()v?`8Z3rAm znbu6THtd37A}FgClWXJ+8q4E*DJ)MM`U|iOa!w`uK?^7%CfesZA%UzB)qM+Ox^ks_?v`0=S)}?$F$EegxYPr0o zDLgjF5YZf`=F~w4oK;lGlx_Y6TWx`c9 zi9Rq!UdY3T1rTes1bN?tkV7WGS9U3;R8lWs+m!^sedSzDmkE$2=Tk883VkG>oO7t) z6@f6>6(XMMoYURDjI^?*N>@f&fvMRcUxZ^6N;AIVNz-Wi4+FEoadzwDZZDRY794Z} zJ-}jdpv`RygcjY|a~MMak2-otJ1zbwkAimEU@by#%8FY)4Hlh)*V7|XJ>71c7#~P4 zbb)hC`^<^)tK56F^V76vW;^dK6C7@Ls_-y34wny^e#1ouPoIA&%T8IS{MuZ0jLkR| zRW)SaNMBzO3K;Y*Zkk=PF*fm%%tMh4SMx46p|0UaGu0+0^_6-_L3u6*E}TH5~-$kqfv8*+{A{A zMZpNgp0B4Ky1`)e86ruU&*9kuo&~LQRuocFg|RtXg$c;Jm=9YMvSw*Bgh><1Oy0B8ity(RHbnXC^+QL^#K}?tQ9k9L}-? zWU0N=7xFYosA9~)etVjLjDVZm0oek(n{^?DaK z1~$lQjYejLH}niygEyEwQq#`LRBM((s5aBsm*<(~BYMU{o~y0VB(@$_EKJ|5Zd5&- z{pCIoJOVey=-k?M)3NRLenUYW>wO`%@?K1da4yKp>cu)mi7;D${TUp%5#;|j*p`A} z^P)UT9wa4uNXdgJ*~3gAnm0J&O_}+AJ4kL?0Ztr|Eh3Md`s3Y)-EDJ*2%9Y*o@F28 zYns`Mt89Kd?m_5DcRt88Ge_mEe1!!XMNs0({sj%Dh)Qf?y1~K82F0PuI z$z_>Lq8TIytcnfU_SCHXQ9L|LGoMrji4WBxpbBWRCD!|xf4R=k>>Y1BN( zBW_<^*+h@y;<~_?)YYh6$#dAMPK`(KoWxtcf=ch(V${CLI~-KZBk!pa7eLUnk?ZZn zC8uL9sasU(`{CK0ejS1PGs$g?PO z%MKDeu3+1(Kn?WSzJ?iB_zO$3W?Z7Gq&|CGQ+9Mu*YIJ{RlB2mGNu)y(69l2WB9Bc z=Vhrg-+DH+j-d9Q(~ht6AgBh6M|Vv81nt@UUVaG==nAR((sFd*l}tZW3I$)J#CXY$^5B1#!r0>p)5a%xf=alTXI zyX_=3zM=A+L=?4QQB+j55G!QB*CzQDi_R2rC^lqH1E`uHsJfdCt-{3Q97fZY6v(7o zEZO8d3Ec+Ekqn_lzetF92RK1Uk>ejWWc%%KLAEByVH-^AvJJUXC>u=i3$W31^5_?90xGkYHfkzHEC+mNlpmX3ZCk z=k1c;M3d#uCG%T@poyBuJ&hoQJX8#t*REWXdVDg`YYK{(x8c|6#BbUiK)BGpH47L< zg>1jTP%1E#*r8q7e&5&OgQEMo5O5XUof#P%jE&osZI%Pl%~=P42@q}}M7TcN1s%pPXBna!^{hfC9~nQ3ZjcD8`(Buh)G1=(U9vAu7b zDOn_1)JlLdVNf57m=Y`MGB0V{dvYsB85F&t-#)M3{=FVs?TO!jE7UftRtYa6@z(IV zst`-!ZK~Xm8p?@$cil50mKily>&G{`k1uc^YuECS-?)#@b|0TfX;+8|Hi{#ZyXC4a zWY%K2)l$mg$P7XI+!d#`KkDi}x}yEjw}YhA(M+dZqG1Bn#;3{nA}Z*1XY3MemLg2O zDuj-4jv{OZ^zhiUywA^-^rx&z|SyIgQjuBd7`riZ} zKZ9#A7*9&dI}=GQ4IcG-@8SBuXQ7Ejatk;Uh3md286|tU zbkv#4HJ%gEDY$C%9{Lu?_(239{xmB|(kK0g1R}O~b4g0bG-{W~7-G!;h_uBaWEV}~ zGrHcafDLv?$%C@VS00oYMCorVhjY{-AmLFk>rm1MRNo9KN5M64|o73DJMLgvD$ zd}@1d*$8fk968Lii$>4!dYo#hq|tj0*N7L1MsFD<yQH-juW?$~D)q>p`JN1AlU_&LF{?S1`(_Ay?<^^cG7{}>M$<7fUY zNYy&RLnjc+cM@`sGmNLg+mKB*wBxZW^U(3h2aVnx(4NL)HYMa=2VY@z!sE&CRGe(> z9aLXUIj?8tu>s@7Zza3d;SGCp**q3R>c!dXKi}&)zi{x0Gy0Or6t_(*r$;vk!yxsI z)g%<7q`GL)-hXvCxqCH0ZRKc1}tC19eS=u ze)jj!6`dy&Q#^EAl1!&lGOVSdv<&2bj6U^2%Rmat4O(M}S35r!FOzdP)B*J`p?>69 zvP-d4IFpahfR;XUHXfG&%Gw%sJH6H#o+W!C35P>Q3>5U_0;S3OqCd$V$cv?Q zQ0aJTteqAAXxBiKavsNTNnWx>L3hHMmbKD@HNzS9Pc_I!%|8Jdv(_?sioY1ZoXa5q zR+dONr;Pg8xx8FnMt2<>VQ=hb&QczhWPBk<8ZwICawjs_HB_R%m&{&Ax>daDV?_Z8F(r+6ma;icVgB$vC(va}nU4StRW4T>N3g6Wx9F!lz^;90r;L{E zHI8eayx$)CW0SYuX$DzBH_F^oC-^WeEaOElzMvMh&lwFtIi@0KlHfv?KffLPzGS#4$yYqh=wFg6EX~17E?nzzRYAK0Sb)PT z_2S<r&lKj3lyp1XkmJF5wx7jk&^j^$AZ=7P zWMC`dOVTuDdW@2<*NQqet{|&4hDa|`zL-vAI>7-h!t^f8au5UTT62Q-StNf+nOE*S zMy5c*F(?5y=ee0@TBFeJOjK|-H_}~#&#*8vAyn-u=bET_%jhklNj*(LuHk;sUEWBD zw&(DG%u`~}c@-EoqWrXC768QL%Pd~dlPZOfBpI^+a zY2T}-?^n*d`5Nj=)Z1SMHTjZ+;()xiR4&{F*~Si0G~_u&flaa)F{wgS&qy^ECFgrH zInAoq$QY(g250?adYs$IG9Lx7${0{e0K)i11R@ZCa7{gd2+af{v=E5U#=w>-x+l=* z0I>+M=Lf2{>4XTD-2jCB2~p*@bQXXd=dXBsQcT%RCD3eIUt?S+_||(6eQE8+#hzhA zqvDI>%$j~G2F9p)f)+qRKKEwyT*y!v5MzA~~z-iTVhp0%y8a?YXf=vdIZa}3b;sU+iyD?qPS_j8M0P6f21+FQz1!7 zHWja-sw6JNDYJzR!h_)(Cqr7|He_v*aWDqlJ4yYha2y7U!MmQpi!gYVOBk$NH5>;R zDLdyMg-Pzwg0rDsaVr%y0y(BdjbyS)cSUy+>pg2w!nyJFF3BV)%8?~G-cv9C%1Z{R zRMjnvrG?`}s@F&dTnCqP$)hQ%YgYaG{}u=HpROdrb{OlP@{_w-9-*!+YA-`i+ldc^0TMtlN(dolA7C>>i#t>1q~E z$-X6w55x3riG1J`sv6m$aHX|{tX^xQx8{1nlT7;%mNCa9I(5L#sl82Wki0W9Zzc+K zvx%*tmGkv(g~R8J5ZKs;d@NE9ssXZ%_~g9G`GKJ@!m82d$ zg{8B}DSY2w+?jFFSdQ2!`xSeyqUU(RM}y2>hiS6u=3MlfOi!!Vc>tiS)zMx1B1Q1% zVbhZ;Yk!(iUv($_@e3$Ltvwv#xjfEMd?!&gMY*Z6A<9}rTH}LGvPC7HmN|QBu{{i5 zLs;6R=6wmLj`Jj(0byC!ha3V?65vX3>K7%}4aNK)pwgG9)EOsTj1@ga38(KH>iW1_ zc|J@(|I-$(v-I=V$BwgZ~FT8a=lPr|3$9n>Fc-Tx=LSndzb65zAl``^*vbKfagZJo};fHmFo(woqsX8 z7>L<@ht(8gI5@LL8P=5Te@8=A^FluPRn zU$Zf06?fTkhquG~7GE}cnluNHGL6VWiXA+m-Vih^t&;_eHu-S7To7K-=N-8q0(8jR za&aa}tpCuPc^50XnIER@E$S!dHu)_DGw5B5kh+|q0AppaOUrbw!-EKky?md@nddqu^2?H5 zNIPUlkw<Iq7Mw=17fP0YJnYR*%ED9#G7C0X;Q=MzmY$vgD%)*PBe zlvB@FC6g_@)67%0^F4@b;BVG0Z0DyExawTIIgubNmr9Ga>35Um-D&c!kate(feepx z*9e5wgmc1hMHX)zN>X>}#sge5Vk%I>wXT_LZCRe*a}C%~)Vdwp1lY+ZAU={^u_|x)v3eT#{!95i2)tDip)Orwm zD8gMEGvLEg=tAlU*n_a^MDn@4RK8)~%Zy&OY`u~!sMC3*N0^yCisE7u2$i>T_O(M! zkjT+1>#53#Z4k$2qr4n#4RiQ#Cm#kRV)O}7TbzR5V5_UG=aS;m^o!IrH)zg@t>IZ< z&hxME!@$(t?3IDBVolsr?7dt8$%?(MZyVg(W_>$_((+cN_jWDrR_zw`((45RP|T6< zwX&!IQ!nWsw;#)GW39uFK;w_Dtdd_f3AQ4zF>Y6W2gWC|bJIEVEsTe;nZ-`|Dl$9E zI`EW~F0oD{QU2}c<5}#=Ny;@mqJ=wwk2Z-F4OxFEAi(700{_c``H(gf%K|C4%j6Hn z(GT#a3y$BqAe)=AgTc7m^px0Uevzm8e076cqIb~p z3u~TFDMfaE%b(BvpXDn``!OK|v8!O4uzHe*rvoAQ>)=%$XCuKw(q{o!%%8#n%teYI zo4x2b7)~sgA3)IWD$dIij*l4Q&iJ4H#B>AuyuzfV`&aHL7CyiA?Uh=Qhx|R_6 zX=45&$J18FWT@!C(w<2cz^EKSLIXJO{fp3jQIo@y4`8Li7z1EWU%DU}Ki}89b)9Uj7zUaTob7#b3N$Eggc*1@fkjKOUh2dGa2=EA#k+#3fXf52u+- zH{m5_c4M)m@n9Mh=klY<6L%vZY(GfWz36gT6riUD-oh1s$Y(8)!@Z4~r+DIgfd`Nj z11!jFZ#&qkCp5W1&Lm*#qB>|*I58ocDy&Yv>k^h6-z%vlWcPQKzF}WH}p;;&79IiDq;# znh`2P3(+iS9&-dFyl+Qh?cnLF>Zx~Qj=-z;vK=t6GhVH5`+Wb7mD>9A^*x03VaqF4 zuf@=&YX5_7bAsDuSN-%N{n6!VZQ{>U-W4XG+$Nbn~~$@RwW zKZqm9$ekKQJUFp_|N1TZZEVOxbQvC3%1&qo^gMo&o74}Jt-{~Pif?| z{z2%eTa&dZbDJR)-O;lCC#O+)hnPZbQ&dz zX+~+)3ump9>cy5{O7Jo59QAOr(lS-)8ug*XDBnX#mc*U&vm{O|j5l-0x@VPj&56+# z>vwNZ<4okbmAEwLO$w?g@PxCQOPrq%P~7=~YY}WdQNKH#_xZ)$XnDiDhAea%#H>u;Y(13m>v^V{$Bb2u9OgZqmJobsdsjd{vnLe8 zdUkqs`@NFw_fV}nE8fLp@{(#dVi0bQ>+$}bFNvgS_1fP^gQ09FuSfzys3)dVsO;3^ zlXQ=6=*`bkw1bPef~CqK$U|u4E*dARMzDN4;c;6`dt`CQdS)Ty;9t%kk9!7tSfC#x zaEkj$A`pm64_e=gKA6KDDY=ZAEcIBH8WBgoaXv>kX4K*mI%>}n$s(ct+E2?hjGBz1 zee7r4n>OQV^_*0g(3JP|du2!&jM>~AbB#>dOr!P|q#nru!r+PEWYk_G52AmZ&gE~o zj4pkMzQNtK>&6@CLhl6T+HYx+?jDE1LeD6JkR- zB4+j3n?XgKr^7}TQE|nu^*_2vjkm_LJc$hy*+P-{2Ry`FoWjAhw-pW)eq=`u1ZdJT z5eyBTJy3en7sN*e=`3J+sjR}K2B`Kh`(%Ig9$LbddHAd})fJ2@>4BA3gX_AdhJls6qDj6Y# zi!kT46wM&{q2M9sI`v$%hBswTA!RYI$o|f$$r2+{C7x?9aUvzkRf*Q4sQoT^BkG8B z*E_HMj^<-IHR?MtlpS$rsx#^|fg=CZfSXF`M2i`A(dZx_d|{&r!2D3=vL@d9!$1ujzVvS7_TD^pf63{^z*?i5z$2@?hlA|gwiTW)7r!(&1a z%~1MF`$7Dg>4?y{H#nNB?1?`8FLSACOT+poU=M_j?oE@Abf#Lxpu)B7h z{PpvZ6cAOOrBY?{8D9rGZ#Hdx9)KkJvF1$RV_JU&3m6nh7Q2wY`sIR2JQdY2d`^&t zRN$TU)Gn%8oGqzxUu@%&ul^)oRX57AgMU)nV#8fr4UOWJb;J7-JdR zQ27$Hc8|N-CU?UW4WYAowfNvkk=sh^gEnTEQd@VAZ-n2)?SsE<#drCsGML&n-GT)h&Z7Ac6AN1-ru8{HGUm!EhJQ!|*Q8OiUOq{i|3;1M zsZ7zIwOCJlHCFh=>*2UqzzC8owH)X4t3^4H2T6!k?dJHd2c`1|v*)B9Yp~`6=S8&Z9o*rs7!# zfVQKOzu!t$YOVKMZ(9+BdCvYU$s4poB*uHh5CPX@Jt}F&u*ez7_6nh8l6X${ga<_H zHqlg%6{e!(SPPob~!4`%s) z%!UuM6i>rxlZzLo_2S|=n+GMLm7BU$gfP*u9r*Q7IpLuHm69w9xxw;z1)`LYp2N4* zsQnX72ub{#UvxyHrj+%iwmx7J-BfcS*MsWg!_|`0Z}M(bLHjr~LuS*a@G&L6e;3s7 znGvg{K2i9-DrHo#kz1K`JhEK}MGmi1hVy{6SPG-SvaQ8=c(nRLZ_`6ZE#ymNGXm4} zG6k7U+vQI0+ZdY?`?-RJ0xHxh)pV(&Nlyi0tG93h6Ouz3UJu6ZDbN9zgT?j|*e=Tc zDX+elQ?iV18N*F) z$^=!o#v>F9(tF_mq4LU2Bwb<~6aKQ^2fJTC!PmNM#4Ri9(#TlveZ(|px`pni5TELD zrEa+eG9cw8ubaPbnvhmuWvapg3J!Xg;g)Dy5Xf3`_KA#!^;|(V12EaR(c4y)CBHda zW~tvkE&8{gqko;r##eFPe>m9~de$eCjTtS72i=2>fxd!4zC62kOE!;0K+@xV~m z`y)G2mpxHi-4%;*t~&v`@;#(_MCKS4@MPb5)3>@RDwhuKtkxY&=-+gWgA@+>=P;n%%%s<80`a%7p`x+mGgcvm_j{79xHFFn4kGp=Xm zKl?u=&iSqPjhcEoPPRkgVKUxg3LUhu>g7Xb^1MqVdu@%n%H&C-)O0Bxv8GTPok-Un-xX3BMZ3 zc&)CO+DL~_98#eftuJ=z-_%+EKQ$8#rtj;>Mk*7Yv&D%0h91dq3LElUd4hYH)0H>L z8ln2a?n99og+86azrsJbkqO|O>fV_0<``}mW_)m?8DJ?R9|z0tQ8mNxIKnPMtWSju zRAs&M^&_f0vGLIHB_@s2o&e$7Qh9+{E<3@YaRRNw0jbW#tCh9Y^h$TtoF|Bjz;RNR zHWZs)jYgGNIzm5J7f#&7FuIk}2m0H3n-T$qpGucyJh8~<1${X4xP}^dDpy$L^N^~A zdg+twAbIh8dFo{vMR9GWL~0R^1Qjde=Srw=S~5(6O}c`kL96t8AQhL3%oNfCc*`N-pHyWmZZay zV98=l0_b+_C5e(@Tbx4%r{SnEYYUV}ORJMWbKrQzzX3XllV6JZVIx=sh3_@vMh1=T zQ_Q;LYUzpZl}NlDK6h-M=ptkDoEn?(rNSho32)L@?EqzvZgsi@6_RH?i0*p9bS*nrcUB1|>;)oW zkSAJxqI$57z%_LBoXa()PdDws1QO1eZYx%2t*DYuY$cnR)(TaDcAUQ|V;>%F zZBf?cWilt)>lyr}nX!3gv8uc8Fp^wK2#{I5ww@;@`)}v~`9OphG(^^QWWb;0Lz4S3 zU?^5G`gbmum8<1I3OGj8Jb=J<`i-ION-8_nfwN#e+#+@&X7|V|<&$0#6Co-2B%=N# z?0%y75BNsa_BXe-&WWj>o7Qd(O75{-NXPJ9NZfJAs=bLHB)-Mgy%p+exu_z*cVP;? zX0acADfW${tjLm3`Ilr1Wf!Tp{wvjkkRb)oZ-}mkoAOwQ%6uIsH&=U1g1GtzK_Ka?Id@p zwS#j*$bd4aUi=NSe2jgU9AHUX-LE-SIt(54fALiqU(5>^MT*-AjROBXQ@(B-p(wt7O= z2Kvh}BU`BCc>1I46GqLWJY1Y@)ZEE$(E1Jm{ked(e7f|CQ^u_Z#Mi?WfI7N>UTi@K z7aN9cipu-Den9P0!(B%e#eVr)h0UZsx?Dy+!%xJPKUy!A*B6vcZn;94{k)(IJI4Zy z8&##&d)PNht&ak>YMVXY&mktZd(}fWyGFD=Yg)5~)B?V}oNZ8V)T#wI=KY{=3J{~_ zWF`aRxlwbR%nCVE#i)@960)BcItzF88Yg>Grm&E)Q$(LR%wzEvHvVWVTF>A*E{9;}Pi>eMuN=Mx-~kK`XjTs*#qhYFRm{ zWOqfXk{pWYcU!s%RG+Fm`S&pJ+AOLm4%ALRNM6G=OX?B}1dsT8YRh?u(daD^g0TOt z$7nPTdtQ8mJh#W-YzXyO%KrB5`tnIjGEK1nu)5#{`Xel#OH^iyU3ey7AO;w zbIlxefnTbD3t)JN110S|@%Gr`7jdeYX)RaVO=|bZdwV243vYAK>!}_J3TEmvUyNGp z`=ms`uM>ZZD}+lMBlA_4VwzGc!UNT!K49*S{QwXWZxb0DiapVvI^xX`MC0sw{>nd4 z1_H*T#KyPgNQ(^c9I+|JZ>4LUXaC;=mrvi%cZ1e(z8w#Q zk=!lqnbzDkp4Zghif6}ru`1mG5YUa2Y(G$ljREAUd>J&0V+2|7dyQ2s9z-2GJh@@a ztKM$XLqUm|`K)R!R=GfArYfMUN|fcf9io7qe(?;(h3~%l6e58Va!$q3U#B{(FmV#{ zaOon9@PWDG*9(W|C}nq@3fPu#7=OkFB4%)P1eutMNPP_fqqHe58wdRgk##0XA=bic6a}PhLVhUT-IE1Bhdg5 z^*Q%-q0r}reFM&l7LT%}OcD2#P7{9%_)G@Gq!N|w7sRBf4^i%)ui*bzh(}@^DD)xF z(NNBP4A4mk%xW+qBr6T(rUsxPh4wK`j75fE#h6c^1TCw%PDK~V0A~j>)~UgDSpgfl zU|xg*J=6zh~$A+&&A@4@{~k#VDTkr zFG;%p4_MsBDE&P8dI>+{9NZ6GI=_KVq;DG-4-k6Wz@`sG6j9p-N(8c4&MeB>-JxlB zo<|n3Wl7LI9&}%rYu}~Ny}`%)V5H_x6*7+Hg!qamdp*nal1Kty)0yI5vC-P znBqemz=xOH5^h{|Yaqo)6->2~-wK$n(|t2)C9Z{ZZEAY}Xqhh0nIARR7;34U(`hi3 zku__j45Zhjtb}1cu}BsA3O}ui%==^oyorEN^;FW@si*6C$~aHr!?zU5b@*p06f?=9 zB((}@JV~rUt}ApC9g8U`R7k~|4A0ze27L$>scm|bTDt`}P-LLBMW&BnMy8YWy|u5J zNNQHeZTHlzlpr64QF}K-52BAekI{C8C8zgYcs8wVjkD_^a`_jsuSXLj9cDvIrZfLK z#-v^A42rm^v{;c|{&u0b*F?dQP@=_rt6JI4g)dcY75Jpn-$gOu3;seibU>w@`yC#y&)k?RwXkuY6DQ4oR!__ zEEIgk0GF5}8V%y--QSAjhtsUq(l9FFub;fMujeR|NU^IJq2Ox8NULpnS$3YJ5x@0k zt+wGc2vFUOv8cZ7nwuCS{5E^nqI;C~wjr3wwtrCOw|Xmts>}ixfKXB6h+80$DCkzh zARhn4EQT{zAi4>}q%uw1tMoKma`Y}nD9r-N2x4qXy;loM-o|f)In2tF5wBh)Oj_+{ zCw=ES&8Km}nRe#l+^_@=-A`!(y-gV_SJ0x*O3?B*)=uJUnaJ^nW$Ja(@jA%4d(PKt zo-5$?F=Z^2v>1y0Ris6KRi(#s>*X#;?IJ9B$_0d2zq7UpBnO4;<&yvgmb3du{D%N9 z^n*=c7d}K+2DX$4+!$35YcgWqbdqq}N;$XpT=8%c8~U|0N3aBzd<;`K1qy`x1ed&> z#oHih+d4_u5Q!3OKUAz&i-roF`w6yZ3j&DCqaG1#1=Xjj7CWH2%0;ycw_y4Vfax?@ z+9%3ABLvGbJCqvn6t^iXKclgXqxK>ii@&G32P+V4V!~|#S7`S%k&gQZ+9;-}q*GTZ zsLs@N1z>vFj@(kaRwx`2+#knZJKL_3uJ=1js)o)$@D+q|xv9l!SbeUkzx8xLJczU7=uLT+1;LUzqj7dU-IIT= z3N9zLl`gEhw(E8@nY&w5uc2icI2=h@}L}C|+z`coWu(0!xJzwTrVOh^g*@tHb z=4AN`{h>&gL1@t>&-v|}CoM&z@L=E=7_g(wT>7KCB)(@YYr>0EQh0ICN@&b5%QxD+ z@AQ46iW?=b%2tm0M)ifNpgw@oEn4=>g6Qt9k)tJni!Dy}(ghM#1G8ErX^N0At<7bv zR|V}0CYjc~ElgV0KEEu01e*+qi55!ixQP0)Ta6z<0bYo%RxR6B7|n@w)K6qaOum)s zWwRHT9a>04>JyR0&MhqzA##UMX}k0}-<&FNVb>Obws1GUHD7N1zS%YW0N5OP=H96I zkf3k2tWM!>uvWPU`u@DYy;m2EgUsHbZ@#uql~hSlb;GCqArfH%>T`Xg3|PDpKCK?R zmaICvO7TuLpguLYGmkT)w-Eu*7x?6zf=wya z*)SOCGY#$H34pXnm87F`;m0z{s)co`yX^Nue$T==V24CN<-POqJ$#uXGhDtCs|`us%xK)X zIl!SJiM3A66~g06__$6!Hm!yFXLZ1;lh2(8YxgBIJacUkz+i|{!m6Lsvx|N%Aw&W% z98OuO39u!6wvWyw@Vs=e@bt<)>~oS!6{k@+_z;qfGXiU)N~Uv{bVRA}L=l;c`LpO3 z^8;Dw|9XY@WrsN<@&L>H($>?Y@)-lDchJV5{enyg(|$oq6F7-{gPX&6c?UPUJ1O6@ zmGgk1ejSQZv?v$;C`+wfx&VD59I+MpXO)5pHMN?O?A*YPsN#yx8@ z$R6D1q%+}fXIGvi*-aZhU`P6}Y_#Ong11<2wgjG@gk@ZIHo(ek1{hJb)yDSicoy)t z_BlrSvqFHzKvT=tYNxb+Wid}wqO~2kl!l)GK=yq7G5%sjY$Kq<8t?AN4K=%V!H1;?tbXJUQrXHBXS9OO?eAW;7Z|7t?`^aDZ7Z zh2gC}7ceoi4c_3J-9pom!|fN|+ z!oMydLr7l;8OyjB2idaR!P?#0J<$x`62rF;e-BCM|BbVd@$Y2&uJ|A7(sqC1KH<7} zZ}I?Y`!ym647s)rLH%)zbk4B*Sdex=k}{!<8k27tt0qByO2+hY3xJ1R4S=zJmkmZ2 z1a^%2!>y)h%MWNek_FehzFaz>)37^0Tw*mQHWE#09~6IAAlZ%I?^a!Z+FP5S~4h*iin z?s!s4+15fjptd;tnfnr3(W-qxwpapp1Ca6JJBin-_a-QX`zF?BdlT}xZ`cDy?V<8v zEa%O|(#o){7+L_#qW~LARm!I)8xyv~19B^1e~7_KQMWZqd=@0%HEK`fC1WJLjvvW2 za{2+4?7uvvB+Ero1Vf*@fzslsYb}XwlFB=6qD*ShvVT!&(Lb&-KlQY$GMB|SvcjYDbwQ1GLT1dMmO_H7{7f`ptCUS_XpL~_Rd+uUUZ-ZaZarYLr>bTp#nxTy7ie#?j^OA0o1E3&WLbNY=gU|Y zZGIg2*J9IS%o}b0SZ&KtusIu~Pg?16{tFUpOa!r;h;B*}pF?wU>(^XXAN=;YREEtG7fq+#v!%o~vNk!LqbH(Hv+GGl5ZKn2E}z-;Rks z9kPc{CvSk#$%xr|<_zKXa+tX?lsP-LBLfY;x=^)MNhGnfsS0S-T${!^>~V|BO78A2 z!+XtHc^kvW`+a||g6$bGfi`HXJVn9SY*}1PUn2=diYoUdqI-{=8GtWK$s?s)>;)+h zwDigx^M=-IA#Fy9Jzt_EgVk&E_#p_g@AJeeYS_MM9T&?wGP?JSrB_o2?gf#NDP@)u zQ21G<^KZl^rm@TmMtS#}RLRDHlY-^CRE%uwq)&HSpz8lT2X~ddiL$vZzUTQwqQfpX zNeB6sWDh0wn7V{C%ij!f#x)yB@^xm4b0;bO-1rRqd1F8L^Fs@S&DIl}5QvtRme;b~1uqWb+~Cx+}0za|A0g3J3wcYT=Jdj4t6hXs(-_ zT)B=F{q1#KJ&?pFYFNXP9pGcR(d?D+eMy>D;DnRq8>2~Z7y+f8;qQySq}R>btH7N? zX!u|x73GI#3nCAbV-)iqdYNt^mNV{Tv5>Q9>kWWv#jB!kXwBG&KER8_sj}{Z+?_gH z@gJc}7D&H6<7#rxPRo|0#BEaNKfa1wGPqYZ;Pa%VXp$0QPY>FE z@f>a$n#u+3EAAfpsguRD1&oG#fA#lz(X{}dMK}Hq@5$%382Vf!!%nIWR^H`hEQ@~f zAX^C*-?uh0R`!^D-m&79=;(jQd&S#)YIZCiVAwDPmIco%Dd$Mo!uvC zT8gK?zaMFm-PzsQ+1cIM*_l~3-_f%9_F5*J?~Qc@#`o-m3*M883TtWqC9J`Z-Ue@1 z!>JuXD}}~pS#5N)iph|OfGb$gJ=v8u9P6PtCWd;>PAo5*#^lL=6RhRpIs7C(Bk%sZX1U3Z@)ChsAw)9r7X z>RiM=h|-Z;e{KX=sg`p_VR5=Miw|1^9aorQ(`lg1!46mK<6=5J)gYp&^;>_&RJp)N zi#%(gzDG@&=DVUEA|zdMjmump`zl^hx3k8`$rB~_*GpnsUV$%rBUu?P1U?hOpS6`njW6A3Jng}ybBi!&h&{y> zo<_jKV&exh;HNE@fwf>jv}Y)AWJ7kBs&p=i2+?z6wWoQ-5>kmMJ)ZfviXQ3n-;|lS z@#@{GY?;?-kM7_*{q%E=W0xyBIz`#KsBsLPVUObw;=W*f;y7+E5&*VV7cU^}7;%yH zh`D-i;^#_gz-uc$+E=2${JqgeWgH*pBJ~Q}K5LK2%ox5fT*x}2^P6B$(D`~m)LByo7uI@Hw|@QU^Gdm8wls?$&#m=348$lWOBIxrlj(Xui;1h~ zGAo29A>uV2vqHFoc?qqik|En28Pi>XHEQSco&vMx3oUbh^&Ve5_@-2EJH7b%RBbOx z9%#PUL!&tc))RG-t5WUca-2BbV?J0-(t;FTy}eU1#qdadVIz_pPNS{`3f{TA8q4K3 zmy!qx)Q5Se%$0du86;)XQr-`=q({>N1wCBT;IFJcdbqGvYU_1j=bsINU^YQc&bfsP zRzT1ERs8Wg3+jaZ;Jm;(v4MPfi;UF~#eC@3G~;2O@-2oBp&c9PM1Xinn_>*@z z0fg+^0eQkm#1Lt=y|ZEiKMQ$CC)>3)m6YP<+IKZkhcDsfPG$}M{1d5U>@0WddzMkk zi!o$TceLU2MC4F9bmyw=ZEraZJYND-twKEZL66_Z7Y9$)4~vbB(J`}lMZEx*D)0gR z_*-~A$uaL}_~;^OM9dYt^Z3ebU4gnH2BoZ>2!LViim!3Sxi@sr_x5BsKN+V;G4UUe z;;fUPZNqa(&k9DbLDErv$b&oxDiTOYlnUQL6&Lp7vKj_QQIvQN-hP2qT9CqEC73gk zh*2Ia;boQgb~IP{rO#;S-smoJt5VVJ25iB}>?#Ari$?(EzoOjjykA8Fxx1Zr-Nz@L zTn?1F!T%Kiw(Gi>`+{7^`m{PuMZbud#S@?EQ|3q=#ksxo4lfQ??V^4jZsf3jBOc;6 z)?$EI?b&yyBmhS^3(UI zP-u}|0U|SA080GlQ^p|HY_r(|Rmpn41RNx!hw+4_9VD=(bW|dO5*@;0+|^x9DL6HU zAEW8ULsN01=z8KlDa02x?@{OH+*ZD6^>~!J6qk=OXYbnYG1n>xxW{A6m#^mV^q@Ox zj7}Ggn!~zcn)vsq95I>AF!K?=?v@3~aE*yMa^QVZmJw?huawBsaO|K)s{=<)b9lac z@ceuV`))9miDckFv)Nav*Z2G?8X--jpaCDXwlDp&{>}@6wqBs2Q#95YgvxI>CYxvV z@=Ze)YE8LGzZAJCi3^J25Jt1gMybOB6)03}aT2I#dQTT2iGF?IqrVvi$muo)npr+7{+& z{&OyjkU|^1y4o{GDJFvsuM`zqvA0!zUP^XsonLknp&*%_!oFpf5nhI4+kMa^ z0^_e@e~p)#&x(1+L8GQtFHt`nS}~XI_=hxa=1bX_(!4oQKbnUHt&IiEkHiD)t!3Bq zeP&;@aOVkC`5*an*m!}Jh#|e@dR=LU1mkm}Zo;;#)_mWUHw09KHI;2Gy#7cu@ESEWfk^j<&NlH*2T@MX^m||aDM&+zKyCi|O0 z;^sYK0JP1z3tRla>Mhb?i8t$bjYf7wxpVqZk_6%i5M)dsBg!CU{QQREJr!Fux>^p# zvDm6}Gl1(%c1U5KI3Mh1SAVY9JF5pk?*XJ3A6upYEX4b)e7T<26TlchE;7P?m9^@s zB<#W@B>Ch=7-QlLz`im4@c%Xhed;mA7&^+i2oKb7QM_%jNU$$S&HQmC>*2RHHqgCv z%owC6Gi3tOPa@wZKzJKMOtv8!NGRyEXQBRb8HbIZ=lvHZof{m63DM-48Np$P0{bW4 z>TnsKMCOROQSe40!|kl<5$o=)4@-A5ql;zR7Au!+Rhdc3`3A&`ulPRwjYxj6WliPU6QUCV4ugInXIks?8Kj18=r4pIU0_+@B zYmArxlgw(oghMtrM1O8oJ(HxcI;z`jg6fUOf>q*ML>C8YwgnEfcFq@Nf^^BRI!962 zGu@@>3*5;y(XU)Y&FG?V5RI(gIjq)b)2})*YAx%ze>H!SB4>(N=3mX9q{zv#82EX8 ziSHfPPL}WdA=ug4De|2^NvcNY&}{~>Fcns2{sf~LU2*e_IK#DFhO1|is3+u|l;^l| z0;!i3mG#v|oOQ8BN9$bBohMm{)yRX@)m8weowDe0Iyi!V)A%Q^kFMn3U-^dwtI{P; z(&gX1{1e9OS1l?gPU}f(#GDIcA~H;qRthDFNAro8^7CvVXOl%DKIHCk-u1M=1a3oq z%QWZt`H{P8cI(`AJ_k~Jq#5eFJwAu&%7#t#W*Xg?yJyZsN-nOM)1{EPpH*PI$CJg; zw{%*1AewB1=KdJL?VR!6BnN2%QN2MyS4Lyv#E@EqBk{NW5nmvNGFUiDb~P*bnK@+~>hu_R{z&^3?INiWoJ< zx_MtSVv7R@yL;ON4xY^Rfewbuh=fBAC@ALs$IAidv4fA@HQ#1eyziDnmEM+|qd%Va z6+b2!)$X)fcUqlp;@EBhcK+~qc;PRHsqn&vb{^2dg^l@3;&iT$Oo;t|Mbx=)mrye3 zc(wpXMHL-c={KZ8K^%AIN<>*rAj0fpheh+(WbX@T!`ejAP;8 z&%ISH7&eXy4%v@%QA;KA9GRyS<3w@QHbPdj^JT?zyhfJW>>JCW4$C@^lc!n6+1e)% z_W@C446?djL+E7V%fizKbaxq@iTaRN@fx@d?mFjuM2csjrWPqSPf`2W4P+w!p!NkK zjs30baNb61?lQUpJu?pdGtfluQ+rtb^E3@scP^p!iclGR$nQY-3Ocqt#zl*KcN<3v z)oYCwv)CQHD4)z4$;=ljf~(4WTV=i?L+TFR*NYFpmI_!ez%-iiS{&EL z@{~$Lx6qIj;S3-fk^>bk7sZ4>!8Y)aTbof3{MT*F%r`E@coz52*99fU?z;|bWt$3e z`=Z`4?yjTjq4~l=E%=9lH1{UMsX!)=G5ne$$3?`$LOapA z94s)ta;f=joq<&8DcvACDo=C8(qdRbTs=kTz-qq~_Z6*8YK!du+%0k~sFhm0kKdAQ3Q?=t7hwHLm^6WW8<{$y`+g0vQuZuive zXdy9e(c$Gq3)H!O{zIJWFOeQi@I|AegWa!@Gh$&c{`K($%CePSqAVM3uwFkGTjq(f z$-gi|CSzeX1JdRdJu8MY9kY2#I@@mCWv-RW#8~6V`gPF@FT9(zP=LBG;e zagDvy+9y&P_IRRnE6m~_2fjjdOogco!WeYE)sPJ0%kFBOLHiJ2lH5wMC#i13tR-P1 zjVjBoW;0Gw;|gsAa3iMuVzy;!v#r`0-!0>D+2 zr1vER@z^XcilV%WS#r^LeDMGy^&Cdq*2}lZ;^0`X3y3Lk(ctNBbtlqw)V*hQ;3!kl33 zmm_vtN-`Vu?fBX=Xx?0{k9bjUTWjW(>Lery@}H-4zEtMPeX}f08sHt1$ct2|i2i3@T&vV=7@aE? zYG8VvqD&7?0(Pw%f_R$G$%>BQeB-!<(T<{ikWd`{F-&Dbp#{fAjWOwnBfhRWV})c` z&y>h?1~8-mRkzGJS;}q6dI$pGP>?05a&a%8{Kxp+L$5S51}DLc4S4P-{^bT;6mR$! z|C{~J>`TyfXZg2Op?nH$NvU zlq491mr9CJR%?`eNXAy`Kvxp%@-bfqH&^o{S)*v&3yPlzidRm@CZjnm_^4)ZvhvmV zTuBr;*9g!S0m=o43g7w{6=vkiaM!?Oifx?*n-L)T(t<}>Ltw}(SoZ(inc^^%Lh`Y46MzOpfn8Dq_V1vsnbWUUfdN%Ui`aF=iok-#``gN?k-08N6X4gJ@p-A#WlK*ssj7tQ|8Yn8H45 z$z}2y#RYL`aapeY7{x-&AnML_AyiH#QOFpOaIR(W`8_~Of-@KY?^>HAd z-@cDzTT-^xe26$h=k8qShHV+MPt%ns58Et~B8rcM5lB#mipB+#V%*Av+CrA(A}McR zB%{q-QN-trF;tS9>^)Pxs5D$^#Lwb+MmlwHN1lyA7u;U67th8VkY{5=wi2LDRKocA zy7B!~DIkWE9f*mZTcaM08Ah5e2|%0Hf~txjwb#1+Lz!YCE4mvUWqAz^GanI$avxd% zvfh?%<39NkSS{OX)Y~c)P+vF>AO`3=qQ3IZ8#)ga%6cM4S#sP!i}4%(M#)+JlI+Bo zjd7zJEcOeG`F^YLn9z7m{Xm$kOYnExvzcUTg*4Ux zRbcHR`QA%^m%>(O{auJ;wdK1=AM*u@4*^g+TW_^lQI!n1CpcgDQQKF2ajCF<)cQz$ z?vgQ7FFZFCZ?&}VdPB$qZD+TF4c4cLaY}Y^>5&n^A)=!THiL< z4{N2^OPNRQBfW3|Hz&$-Ug!Q(FH~(f{2YH9YB%G~?cl*?pNdXNUOQTvYzKO&j*REx zMD|CSQc17=T;A{>-e+l7;Ws-2GTx?*3DLN!v6n@>9HZ z)c^)29O1XcVr!^H_jZ;?7TxA|vFLu#5gyobEsL%MbMT(Pjp?^-$kr;+gpNS`z?5Vg zd*wpsG7Af&R0^*{61QAwi^{4IN<5fj+mxkL_$+xLS5})|jfUGDea|v`a%KvZC>3`@ z{^cBzg_W->FejfNk$fQh5?81J)3B91{;a@YOtM1+XU9|glwD2kBcIUUeQotJXx;HE zkLtb7pNg%wwY2}C>L;-aMYZMs`7g5F%X24@l8gTWc56En>DhE6yYt z`D%BIn0)ocC1Qv!9ll<5*msTU+LZvMw~PU;0EpfVqjze}KTQzk48(0EYt?R9tH8AL z9*HsyrW3Px@l0$wcKNnj{{|f@TN`h2wW=&{S}dU!Y6;tXAmq)nI*qq-U&G1J!KC z^MON0eCN`Q6^R%iWXy*_z-ACoCI_w$`msLD^fJGB zMiRLn(ZR?&xp}kCmnleI-*{9LYTbr%L5-AwymvLtib7Q_46SL;%7sqx6b~sNcQ_@6 z`yfeBe629NV$u=el^r}L6V8I_YF1owk#)OLb>tKY3C$L4R9us1oTt!D(|!`dnrZmL z>qoY1_lR%lX&q3Ze8r03H$s&eEPT?Hdmw~zZkdLUk--cNpClhd)HS-HLjDvPy&5XX ze-u2Sz98-oYHwC$)i;5${)S){`P{la$}(qm#H^@4*FnLIMd0i<`!Rhs3XaEBJ}45@ z-gU{|l%E$xb_2>0*)b}>+|eM6 zSgJnq@(Hp|FNX1fF6F&{NEME2blzaeBP0$P%gOLaB-v0^vsSz=XTNyz1t`c%CKvJ) zwR*J#rD4Ts_A4mUS-WFzps$>B_`Rc0LdFD&hoG63L-R5oBT9Ncq?SBpwh^t z*2>=0GpL=j!cRS@NYoW}tl?{P!_IQqKw^#a)=In`mws!dh<2oQ)s!-03+BCejwnig zqF3AhE^Tj&zqisIXrj+scha;xsC7J8jRz}{!#mTW7@ht=PsCb*!8fqK$EcXxD$bXX z5z|R^KlG{f+jIOT#$_yH84hrkr4mczkZ|Um^q)2CMpaEM)o?^Eqj*k+a&O+Kt0?1^sTt3&M5{w3}?&T>;a0Ke4ql7<{tFNq1*>KaD~@DFlCQ?;1SimlG_ zt@vg{(k0~!$i;J$s9wreSbnKs-Ui{&ge{TPrzb7r$Sj+OQ0(O-#c?N=Az{3GDrcI$ z?%)&S$qcVnw9H&quHZQzDtIUG80kQO?`F%+LO=@Ep_cj{?n9Eostdu)rMg_(hV8rz zgf%7Bj@;x&aEs2Ipn;d!J}@>?5>WwcYDuM$etRRbdgg1;?F~UMmwMa8>fNtPSS9od zDi$%F|H!@I(N9OUo~IW_Zj6In9(aPSgb~L1SRN?gRx9t(Xo{`2xN|g@#)IX0d;WZB zG;eM!OGAfW13=bURn;X&S2a2YZw-!Db-WsayaBN+yQ=H#s_X*>Jv{ih+U00HO|{-7 zNCO4t*@zq0^G&_JHCOax|HVQSKE9qHy{pVltX}!}p~IFQ1w}|1?v{AU-jG|D3PEyK zdeR&Y->EGB!JNU8GUT2lUq@cTHO?~z8$<3!dWBJu=wg z8Lr1#6a}AYw+rf^=e*S&d?lN0$W{%E45qKu5y9_IO{H#aAInS9=SjuEyorp9+dN;a z4Y63O#jjvrfjL|U#@EJzuIPm5S4C{Qv*1z1ha!f@34bn%EqSkO z$-f1K{fu~m=Dy+Smy5b196c_l76z9H>O}VFyuZjS&BvH)d`P((DW(g#Z05`8C@pgI z=peyuV`F{Ibz-AZDAZ9=KY|&bpm+1wY{ zj8P^SNG1tNX=M_GOL-QA6W&VO6pi{#A!9y;1CMATv`s{50OkR*g+BUXZ0%`yphINr zEVGRAS5RJYJki8bYK=wJbXm`)_+_uQS9urUdmm;6!4qT!jVC!r6VNQ9lPZr9!CnkN z3)gWX+6__D0Ce#Tk7#i1&G74oK$O#V3K5HL56NuR^B+DEXYnCV~PegM|!dYu*DP@OAx8-Blh(d#sXLBRX2N+Pz2Gn5D* zQ@lbQo-;xKu?cpOO0vhbk;iPztOPp~^#mwR4mJfvdngo4=^irzntdyR$yMO=ltP-# zOzgP2s~>_nV}H8*U^{~ouqBuE01ry_(^yB3Ib&obX^^*w<5AnVzjD34tvcNTN#I#9je*K9?lL z&Tl&x-mjtBlO#)58{_TpJdIrOr;)$LhYH4y4He^5HA9UPf_i+Mo>xhZS74K)82itR z(}#?=%PisOu~-qgY**W63Ja2>0FF^=K`kiG9?~+XUzRVE?8=j zpxRl>v`IQI^$((YvLIa8GO&y5UuQy6E%)bxPB5<^}&VRF6lJ@mP4(Sn3 zevFMWp4=>+{L+^(XzR>V(S`+c?j%p2;?Kq?JD7JXjmr%VF72}awzm$rMAzIhW|RtS zy(#y{w3(-{9c*m|PR>VihtyBfjAULl1N9{9+e_t$+vN(Ha+`y#*4#acD!m<`U8dQI zdpjj0-mDV^fpqJ0a@=-b>Xj3xv5RSX<-JO9PODa+l#swVsn3%vMKu_8ZSpx3OKbA6 zpFb+Fk0-(=H4Q848gJHJdpr6vWO&CV3MIszx6#NT_T0vSa2878j6#)>X2@OkW?MN& z2pLd8<;5eqB2VAfUCGm(W+G2_>Iy}6jT1G^TECE|!8@D9!I}9SxVQ$p0#Cvih&<6e zUx1m~@GaR&PE*SE@ErgOCBT<$Xp(WrdKGgwFnju5p?4al2WAQ(2;F#Frl34z<<(}9 zrL2-nyh12R2aDA>{tqL&*vfZ@NQ;3Dla#z0IMm#WYjiVjN9-GYBSQXau$2GQO?f1{ zJ^`fU4MVxW6vNz%cIt<1Nou%@l>DhG4Hr^AX3Bb(TFycBQQ5Rv*A&Scp~`i#+UR7N zCe(p42%N$7zK});GnIm`EfV9@K(x8{65}9NY2GP;gM^Q}gSKK@M6xDIU)|E6rdo`=zOo}r{#s#b42UP&^MnB@XFV=rhRBgvD5$TPC5PE9a> zl-^R|i#MviE?0xtsINz1fTDo~$mRmQ|7P4B+kdY@fhT(J9^6_hO~SnO$|%QKu*J1+ zW0Z~E<1F|RHr=x;c1Za$UuLZ1(}lVYiQM5J)4h@vQU05YBZu2Ll(`@gRrtn9&2jcl zAh7cXmJY^FPI-^VYE`F~52;zr+rSU3p=F1y&O!m1tTK1f17(Mk=e98C`Qdcv($-%0 z8Z3G?y(vpmZ4nagBUy&c*Sc?30Vv z&*{wRF)KJn3^3L2mPCp+j?DehWt!D>KZBvGgiPFPm~K7%ajqE#WxB3(o)5zCQeN-<9MKo z%x;9DkxZp;HYyhImF;c`AM63fn(2ITRi<|AD?Nc9j#lH8YI(_=kCk9y2%o%H|-l?uF~n$liM z`%)ua3I`47?mf;E2xWQZMJ;Ofy@Uy1q^BaiC;4+mrlq?yC}=F84?$Nmw^1R#=+R3_ zf)k+=`3cGVL%NswrqVHDpii26wkvo6flX7L^Cb!b%)pfj8(PXdcXDlXJFzl_4+zGb zujfwqZ!jwbZ=5@VzgO|Nnf`sPv*MqWw=T?-{)DU!e1=EMd=0J<7GiV{aGpg8x8xSJ zl2yT=F5}HG8?Dqg%~{@8*W~q;QbyEyR!0h=JQC&R>0|~}YO?e0llZ}-Ec^|(*M;1^ zGpl4DMCB(Xk-@C1x`~OC-MDX=m;h8;ZdwiRRvnF@bv0;-_9L^UMy!WM%zx;1uOre+ z$OO{|$J7}${;#(AYt{-=h5ZLkoUvobMDO+?WzLFcs1LaC<5F)u!6Ii^m$yd`&f^xk zJHrn}^;6;^2b9>onLEy2H_SzHj*S#1)L^PNIiv5IYh?ObQ#T78<2{0}Pk}?;uT)b! zVe*=|Sk;5k>kDPV8E*y@mu4y}o{q}YE9c2+2pX=EJAT?X>w&S6%MXw-I-^J+c;GcZ% zwm;>&{1ery+O3q7<-$_i_*vfZX33b&*`23Q+FR3`a2Iem=~!*0S#f`Pw?w7U)XC&m0Gw)&kpGvj}Lwr5So4OO-}JPdQT+6ZHt*453Dc7_UnO~>`!aHO_{e*=0V_~V|6n+>MZ)Q ze3RP8GcN&+0<%A7o0@f5frHIwvVZ4n7M3mT@Sr<+PxR~6Y6b<$c=hlBHvXSakolT( z`wg&2pc^bQ1}BNI9Dm6CSZ7`-nU6{4*<=Z?0lIlp7 zLJEv3`stj~t||xC+E&#{AE@5GMjCK@ps4XbM4Xu9nfe!LlzywHk>z>hLDY`|K8j_r z;wkGjCD3L(!??x8U(=sWnVS8nv6FzqL#tXwi6;$INpvV_Ep>6r{L407rP|3wUhIO4 zhIb%>!37L_OTb0db#92Nna_Pm`x(-UXxB589IwZEfodWm_os*G&3NL@ z7#V_c3P^Pu8IOVn7l$SvrsFpL;)Y2FLXIwH#}v|;Cy}7cMXRk-e#S6|yU=nWnEY1~ z&iY8VbkP`IY>xDodcNWBV8`jy=G$YQgZ0K~M~u0HU2i%bCz&XHI}>J(oOvDDRtoK>)4ujTO&9BsU`9}e*+^CgO8m6)@jK1W z=3x0FZ3b>nZ9SKJ!NFC1DQ3MTC5+~wVX0C}Lj7?)p0slVRCk+M)-(~oA1*RGtjAuv zE3LT9)D^JBTrq`fNmM%wcjXYXfKf0cuxu%Z{~~ixF>*-!a-=x-9pBE#^>pK!0K>_^q|ENS*`j}aGy@sQAyCq40k@Enr0Nj|B9_G4KhU18$UYe1trQcx2wcl#;WK0l1S9)ZeyXH`~$3WSTu^C`_ zRc@%6@^JE79#g+t&~K~r-vb^IEko{SzF*v>pUF>Lm|F#B9(iQnke7&`rkif1o5r`0 zsplwHEej5N?oceRE~CExhWn%;i(*$$=gAG!&IqEgW1NP^d(W&C#hl?P;*~{VNM~+n zPHXCUk+Mdz5wZcyvEu>d8Q-hZwjuqBMYjf-7OvaAM+P?gVq-2F&67I(F(6lYRZ3d=P^( zqoro;;i<;(Y_~Bn%lh|hgf%wNcb7H8DNtEZd)sNRS;o#Wjj_YHS|FmZt$eO362m~A zn}PFycxRrBZqkTQ$}Z^yDMv^V4_n7Qe35InQ~CacU)b2b*V{sd-0LX??JMNyg$%GM zx`>3)T)iDG(1h}jW$uTtW0Mw0G?nv<&a=)`=J@{lyy|$lcXXa4sB(eTZRM+1_2*>C zG*{=7Vm13%H6Y&=Al+Le*}S@~1;p;b?Ey5J2!{+m0u!>T3nOD#i^!r^;v zdv=2U$H`il^Kl1GRre3I2TpFEr5f_reFkhWv)#7e2uxWL{<&pJl5PQkBulz=9W4Pj zaVlGos+hQ}rIn&ZQ*EKIDaN9~a))H{(^T=kjUsdB45R>_1z75CL;8FqP0TLlbis(t znyOu4*X?K-@t*X-YWwK zZuE{+Fo6TNc-@hY0tbfAJzW`fbCfQya|*oeBC7)jF7lpgCtTzES5?x4o{q@LfdjaL z*r~<72dgH1&vKPsWieMGjw=681Cv%DHO%F~pS|F;$9Y;Uc-5?wH2wSCJvg%MB4vT)GFR|w?k=K zY|TqcJs!anwFn2IsVjlylBgCw{Ju=swPt%Wu0D$8*60i2Ule7i9(V&t{YVBdW0L^t z8-p&S0^i8R!YjPDxGjp6OaED2+5{pR-+R z>IQEkb~rge_u>Fu%U19EI+8jplyZ(tHWs|1!8b1R{R`%uH(6#4Z`-a$qD3I;f0}II zJoATucM>ARO?JLi`>+Dph9{df6|FY8ug+#25@U|j)*`hhS+gBVx=<^-NmFj6{**S| z#>mvzf|Gfwsx;#iK18li9~qrgV%fu0ZM9_l(q%GVyIdYciNC+tg zDSL_AJli^_g`{u@4lq907tJ|sbt-M5GLXH)ZO+cxkGWfx^)jLzu|M3U>>PphZRJH; zbbgK&x5G}dcIKh8Yn>`ONm1Hcqw>^Z8~v+VQSl=>u)R5ER){wGb|=THQLeV;pze}m zt{BJ-k=h1X&C&(^oNm|H^t~bhsRdv}m#-G=w7vywSJituh(j@H%!7XDFgs&Py)2n*%hqJYHVTx!#M1Kb- z-&)F#t(XuDX0NtxBTM*{!RWN)Su$REYkY4;#_(s!iID2ncDaB|rtD}AmHg~6T*L03;@r81-;pWKLFfE5#X0ADu?!avOJ+r#T$MMvf(SmbRHb5iX+4F(sBA`Q!=ll( zJp@G8sQAy@IDeR>m>qCfeHv^C7{^~uMrOq_phlVALHkFU zeRv&wpEWt!oUL}hV@B30*=j{@2>|{w+!GrqU(; zoW>=XvyxFHZz6ogOJhhQVUTu<)mEI}cdx8oZbs)E7$)n+-u^bWRo+?BmxAK`ZcY7?lIO<*gU zZAB;ZY$Wm*TgeV$xzv`mMksB4;SwTlvsT_Ji*sHx8U&)NK$wo6_v=9u7432Cgff;1 zJE3*v;pY1O4ZqM^WV2@Sd@Nu3HsShW^Mdi(8?;MQS?b@2Q>)Ds8y(|sWvW@*_e;l{ z;thFYDEPz@p{7{oT6dhMG5;PmS$nn+?Sau!Hm7icu!rt8m%xg4^Jl8P=L9w}F}KL+ zDKP4oaU(hK{(U=Al17`}Q_+m>^^U~t%X{ibv-7En6#%5j`&TgJXa3fl`vmDhlCM41 zgxw+;_D^p|fgfp(JC*&)=FKl%(T{D>QEkajt{otF{y0kEc_Z=E8{@f+VPJW@owjII z9=@oy-j<xu)Yf9BqZR#~QmC2ld$5HdkCo z6`4HVocB3R!$z_OoWk%L>x<3q_!@K1bi_JN5^4~dkLM`CzAe71v56o4^-yzIM>NXS z5yuKRoG9dt*8~JSo!RT1girgX8wia0agrIF?VR z4Mlo&!)Q$hCL$up17tu?bo6||9z`ieN%!%yz!=0@OMt7!9lqG5x;&LD3AssU`FWpv zb4;90r#-?#*io6$#v5`SB(Jp8@~I>NZLB8?F-rlOT_e>!q^n!pRCPz01&Cq7Cu)W{ZdF~*rpr?kmIJLGaEz^! zIaU(RzfPO|Lem#XBG!Q%_pNNk0;-))6^%6J3+#d|?SkkSKDx<)g7~U-QhA%} z>urj)L54W!?`21Gn=?|aDO1$Iik}u3s(nc;oKP|5ZDoa13IGWb`yZBQ7yxyICq8MhL8+n=1|4J-tmAiKL0&L*^*}l!X7rY_$0-L#lxlw)`cQl=(N3O2Yl&FdOC`8)jQ9 zNvtZcjaGdMX3V((s>jVxb=hQn52PZ@p9vNHsHgFlbZmSpzDOO<&)3yY;csR$hk^3Rx?f^zmKy5zgnF2cR24~m-<#^mj6(;*Wo{uCeLYAM|KjNGt%C< z{H?%O$*$yg{OjvpN+xsWgYMvT>|OR$y2bD(cpHzYZB%te#7xMpp=ITXv>n;$if-^9 zNTb#R*}nEv(Qgw~IOnq=M#Beayx*oU=M)Sv4>y}V5vnYls>eqzG)Yo zLr5^=0f4w~bSqIq4VW<&{aHqD(y>7ZW)9(t!39(1S?Y_C8lGc!bfMe{BPw1Dyod?8g7FyZCV znO0z=Go0n(dp|6gj#JjC)Iwtlu6~EmATV4Ey5RfvJUZ<(|FQ3{}Q<2tVR zLy232*P+L#hSR4NsPea7E3>ze+=XVeS_CmHI1860TJ%4s<`Q~X5xAr}v-m^mI$76s z+A-={8msGJWp^r4*Hu(RSt!OpYmyo1i^4alt+!+ugHrXKk}1B|Zj#liw~kskY$s+7RyO;Trn_Sk69}OKh*x?ll7AV+e9y-BRkoMQu zocl+xp|h=7C>t&t^L~&Z?zRMNI_{|uYVy0V&YyP*wZ<2(2jncvBQ6A4=WG(+8cmVl zWqBVG%aEPWCp&MjOMALy4ojB>Xg#Cv4nCmO5*K0_IaFIlifiqh>xzum9BN6H{H=qp4@lK2)#kxx8xl}8lg>5pg%0C z^Yw1?0acr+ngG+cE>c|p_FW||tMjCl$+pMIZc(`=fSl~caw-?#`s8!H~^$43aE|YQ4=cS+zU3Zz7 z`N;ma^%gO9Xo>BTw*$#bWQUd6%5H=Z6gi8TSm*vHrTyNk^t=z84;54cWh)v&>v{d4 zP$}qm5+*omrX2G<`1iRJ6%YQ5(d*?(-?b5Wk~uLwCMVhVq>jF13zg0(iBsvvs}rP^ zj#tD9`Vr{@nr?#%l|-s=YdXMm*T2bmG1OA%TiJX_nm1)gw$H&L7}+h>w9gC4f_Y2E z%I?gI&{m(z)k&a?#0TPu$LmB1B4NZ6o9V>K^k=ptBCpGWvQN_$4xAx03_AXLO%pUa z)@t%^W@6+7@P###B5nD?CxKP%9zZR3qA;Qi_w0z3+{3^!?ovcQjso~VWju^uJOQd} zkCE>&4Po{YH$Oj+SA>mkb35lIHi83Wuerg@j=b>!%mnf#uFSj*}V5udRS?%)D|U5eXnYMn*RozC+LRJS=VtnoAR#bm=DB zN|T%(h&^(xu9YfZ%~jsgP1MCQuZ32e=WuWmL36)myU=PI_v^0E#KTJ66FAHRvp0*# z*--pzAghgu?N?{qM;(maXmj>AGDc$c@ZmQ~%X_Uq??#w2$=gF8%D0^pjgB;n1WayX zZXY4DN$xv7m?(?5PVF*M$RvyS8d9OKtJHniE>V3S5AyhSILo`Sr3v$$z^5pw74!YPLopxB zj-qEj#c=xX<4M7gB)tZw9bBT`>i2$r<&bvy*at;dx=PV9hxt+79r0sPsKja+76X@&m2krN+j5vsB>uc?aR(r6k^gT{I z1A<;(=1980NLl70$yxD;;;uE*>9);aXdAzRDu0L8Osp4S#Mqh}_f3Yq{5DHeNXbMF z+XffW%1QK0tbT)K3#zVHEG8o|Rw^}zX%>rlI#b)jF$P-@XRwE;hnYwS86kJ{O?9W! zCA3n}`H-z@{N5UfLP==+cLf#l1fnTmy#z4dCp5l9Pg7Ig1Egbe*Y=-*YUX?d!!|v0 zmc@`+lGv}7(l6eY4wkJ*=#Zbvny#fbR?CWbmo^MS)DiQMtH#R^3|WTJPaUGYCvb!b zvz$W$a<*_+f{5N=&LHMxF>QqBv7mzQmuGMc;WPR!u68@t!q*fXu7(Z{4Pn=$KmB!(&s6Sj0(@PW3re7ipR z70JG_W31lDbcX($ATuXwX0I5fBw@JFyU+gXSd=Vt!tryU#y{!3G^;HT|E-|m7 zoscqZju1Gb%O(6|B-n&RMfpCBOBDkF9HarkHu5BuJvk&+*)6&1b=F)1$zyuD}TabD!vu)HL;Q(r#1rrJVO$Grf%QouO3a+dy5h9UeAT?b&t zkImI937Ibr7QTsRr(BqnZoGc6zMOznIz9RCGYWVG~dirCCfSsiFWL`goKiCv*I{xp+Hc4KMbskXEu9Hs=u%v zhuyDgc{ge&)yq-Z0MldqDpz90$JV%!dP#ksK`t^PoFTJ0L#Ekh$do$Q8?a^+Psni| ziRACAb5*uL!Nx)+I<}wCv9ShNM<&U%+)z<{8#khPY2S(xGv~Qs2z=AAHn662WZ{gy zTV(v)sD80Ra|ef|qTfZw1iU+NAk|qeQc!;7fYxd=99lUfxga=taq!aZF8t*5X868y z*e3WpW{}m;08n;$jwY(*gCOM+Ftk&6kMNzz)$1{VOpI-<^4NZsWOxWX$R+XuE z!|_DPC`?wD!Ch5j_4L-4I4%3C>FpHGYJ3(s$|XH^7#SurtO+Z{VJV6t+w&DgQuH&y z|DRM@E;?qdr^RDWdfUg_qMX18kyNykLXZf{{dZ#>Nrk!7Qp>t}%=0{@zl!eJdUR{O zez_CWEHtK}Tb`Eg3jEe=wuJ02p_E)`FpnI+z7$iKBaMkl-P<32yH^I6a0Nuev-+_T zp~LP(@*N4uC#qy;`BFvjlDbBGsN7AMw1u>VI~T9^z66IC=Kktj_@k7FuCHt@1FT2T zUt>=T`pS?x#VuacNpL}MESCk<;?ud)S+!fH#(z=W)K86{*sz%zcSHPD@5|H}*`A{8 z#0sI*A!*Kv9#R+q^J-+M?EZ~q(O~)N5-(FfSy!-XCxwww5z{lixrGr%l_jUpYHJVMWpVDeWxO%F zld3+*Q{vU}4KTe|K6#o#{|ODKRl91(io+Vf+FQuP zQL@cAJ+TDGC=z6wdBaXpViYDih&ubM+%3Y!8D|1hWah4pvW~fPw-BOXOT9SM4H$Hw zUFC>xZ<9&`ns5nQHYS1EJ9{g1??Y5#kmJ<;hMB7*g8uY_3{BDZl)&M5p;%Z&47Xm< zxwbg4jBM$cxQ3`%$^>=IeOcs*9q}jnE1iQE(nMJzvdLyt6m<1~}5!TfS5DAg@ zDv`|hS$#i&5L&f7$sK$`&PT$b{gPxnRdCLcY7`t7DW?7(TpF7Q3xuyi%oYhwM$8tiFsVPVMW#^wJSDH%O{c2rz0*mbo|wLCs9Jgn?#D^9zuk!5 zpr;(Gou-eMOW_Gmuq0WIycOjvyWuvn_68l@RCjvOoyazRc2qx4lb@n@Xs&+tmY+3> zIb-6xKksZNLVVqNwx^m&o?M}4{e9PC2#jhbS+NX}tt&{S?teTdx}CuOUc7m>zqdTI zkoos>5%*j2Wf` znN+rArQSQtyeg=q4XrE~6q^=fi-K#W zG6iEZqsaIgY&R)#I5v;`GZVwXYyy!&F)MhV?Xf6$eKJ41Q$eba_iFy0>n!iXx>s1q z3u)Y0f6YGVmpRlI&d?2y(G8Dps^Mepfk8Mae3dk4Os*|9c6y@kg$h5UpU~$EB7S@e zSC**p`$=ZkgnVwMPa(J8CLzeTd;?(JAVEO^3?VLk8 zr=-5NAJ5mdoh%D}Fz?6uoDaxBuP4d~3Dco*&R-#@Dg45Rb!C+lL6%u{EYT8Qf@%T^#tc8dxFE8IhVUpki-rST-#Mgekk8GtBu>te0y?A(%yo~ zycFMrM%@>S0ln(%Iz=rS``v$rvHQT33bC-oI3ch452nq`NR(WEE-c^Sy&QIC@!D23 zP%m_1^T1px(@j=1)#R~QdKD6FzfF21rqQO$_!ZgMdJEwLc3Joe^f79<1tQ=R+9PKL zFa9yzbdbdyY2EltH=ab}Y*wi>e)OW=gt>2QJIw_F80cYPAZ2r5e5O1x>CX!%H?=_= zwOuML_@3_Ag)pph!_R_p48sA6J`(!T#`1Ei1k0<3|4A(Gqk0zNIR&BsXoN19Hvbct zx&>3Hh!Ky~y6{7n@eaaT4=OG&SlBaOe@5=75in%gZLEH*-&3|-kg%tW%~pHLul*bD zDZ`PI)Shzx*>;BPDg8*LE2C-0%yO>!ZH*%x z(*I%7|G@ffn3DGj9BMsN97G*-hPWaR^R8W#g*N9=%Cg(6r_u02Iw5d4GB`36Tsm;P zEDPKd008%xz`YC{NfUL^#Uw>8QJWEoJ`GnXaFrVF91XWy;LZf(RQ)?Fzfa=#@%s0d z@|#QloR<3cXZ)_;@OlkbZFVFPG@cb$sjG$lE!e5L_Ci(i@0H(D*SGrjLVnlR_4x%! zNsCgLCi0H}B~dXklYgQ-B-FM_m%Q`se-H5~XFB;8;Com5-+g>O&A(V4%o3G+LCG8a~>k@f;j`$O&KBd^KfqebT5-nd3 z9#St~Cm1xa5wz*cY3F^5_$G4B#rz=eHKB&GUYMp6Co(%w@$21y^MGCrzdlLLpYP$H zKOz5OE*+8AQ`XZ#eISU)`QTOcQ+k)69~R>1lR~5JL%6xp{R!ZQd2cWy?|fw))u8LW zNpqJ%!&CBYvNpUQy$aIQ+X1g)r(*M|w$6s);81@_nk#TJ7US6^V`89+3Rm)j9uN+g zD9+hul;S)zNRJ5-gNU<{FNj52=rG`PbSf|bC-m-#uFWv2$zf@Z9X!*LJbQJ?ddQHi)Cv1;XI}2be0FeE~e{}%WW+& zozz8*Vb7sWj$xzNi?QYX@~$cZoi@}`UV&dOQx`{POYFE?H>oR<@+Z_-*1N%O3yY7j zoM(f1BWiZD|Nb?^r4CAPwDi&q@RGTh@LL#vL3^%*3By2 zEB3iP8I4eWk>o_uaG5(>dqBIqg9U?ca9f6=uvVW&umkRT2_n zyB!ju=9Wtu;$$xxFPx}wdQIl$(VA7;{CWx}$CgtP?+3r@ESG!KT@9TUJ&{8AiFPt> ziKf(gr9iJezDDNKN?9aI!nrxIDdfl}U1rr;=hRP@i_kMHg^Hq`=RN1a+6?5v1l7WB zHCg0-b@vGh_XA9+qi{c#EOsV{hX=xNn(@CpBVp*bu)&D@F84i*^~S`!H|)F};6~o- ziFr%xyjq>NG%>H-&ij|ndn7S$s-3q;=NXB4MJmrXi?+%V(+BAENu=MLnBG~Z3;Rz_ zOi$72!v2>frvFeFXaC~F^bb|Km!quX9yB&eh*Hr;+he!Dmzd0?yfUb?Q)1zVbYa;} z#!)zwg!}}x9G|QbB}EE9B2|?6sZYXuF0Du8%f$4Nx~{GiPgQlb&~=%rE~z+tlb(|= zBo^zSs}uVCEiwIYf$Fc&=b^;(9Xeg;b5~;eJ33vK2Y+Jvt14Z+A9pi4qm?ZMk*!Qm z080`9O%2!w{1*&@i)Upec}w{*m{OsnRNa}Xl|mTlS@>_dj*}DX7_RF;#qTJH)q#xrk=G9Nculq+L`{^7azau##1kM8H_MC>Li>_p+@=nNui=MLZb zo3x-k!x}VwFjF<%?9ViP4oy>gRgn-*wwv%vy81flSp&zj$EZI1?4g(_=%}QOwz^E6 z*$xR}Mu~_Y9coI#XAVdV8LnM9=KUb6fHK(>vjs=N>zFN=Q&S2}H#c0qYRu(|jT_HkC6$QRWO;Vx~a?m#!Y zDu)yEH58oA)y+E96iTlD%`(89%$ANX;@i=u97{%|1mqC;PJul}eY!d&6yDwUy_I@Wfgsz^qG5rG*J&r*I0fOu{gU&xh}v!W|J9%&9ZwajVdGRCJA z8t&AH>|(QI&4T3)FqvYs0PCI_>oc3iTAL6xzAY-1c`$E-@LR$emNwk95qXp^lkCP0 z(pcmkTU1sz7>E3M$+Q*MnBLM(sFrhlcd$yhd$<;PUY%~2>kNJOa1p6YrfXki`yP`b zjLkt)1K8IO{eXyzzqTQno)^E!1%mRK!Gl|@oYb7C_5=xEjMdn&=7WTeOPCLY=DRy9 zHXod7K1Bb(e2B_?*skV7sKI=Y_+jp#%m?(Z%m*C=IblMC|GNi|gBc&>G+kvA6QUJWMOs0N zNT>L0hHUbIIdg6NpQ_TdlI~)GxQ`FMJhde{9ch^ zO*eLUIgjXkdk&ldK;tI7~3nqc-3sRDo)x>j!tKi`*}*l3rTYy`MdwU?74{ zB`-HQ%Za4GIp~FK68de`ms_4Sa5n!%@iS0XpymSt&xSBgf_SA5IoFr!TAoa1WSFyR zzcp|r*Aq6(c$c$a!_WogdHGUew6AMr(TR4{$`7{t51c=KW#hRA0hatBAE zn>!SxQE%(Yf)kV7#@pr9zD4eN2gD$&$W+KV%ddo(>RRMtzQihEOx8$KZetBDEVc>s zjXZ*=_6Me)_iPl->CWIyd6jl;8&)}q@bcZ6({x+b{|Pt~aEaBIC7Qx=2;N)c-J4 zc2)6BIi+>Ld`3c+MMKv5*U2z8Zj?cILW;#@Z#6pXWK zNb8E|taM&{G7IJpDd@I6a(tCE3u&z3)Ce8y>NqvG@DFJ{QB0(2A{(8(9COz+PjdDy zT*B9K{dE~%4gIwmJ6~t{acXgVZ3yVNs<8V&we#az`GmAd3dc2Bd<+GT)2&~ZOAj`{ zP(#hxYnEV_?&~Y@EY#k^P{J`vu!B3~AO zLA>nR*6n<{ZpKLSHQ}WKW4HC~8Iadhoa7FUPj(M}LYUZDz67!tnXh7&q&e{3*JOB~ z5RQv8;@v@hAwpOzJR-0Bf(XIFLtka;v;KHnNxozDSxu}z$2xq!lum<~%c5-Xm?ue) zL2UPLPqhwx_M0?f{miFFKWD?jSW~1I#(1C>W^96>V{LjhAyA7gWGIJ7({ZO=6vG{G z93;vORC&&FUgJ>*f8&t5$xu4jznrOfe$5Jc8S{?6BvrbabMVB5`$AD)dtZ2jH5&Bw zzA%tf+T5U&5-9Rv{)L9{c`zOGm+rw|AUcd)WKKvMYWKFu#hQ*gaI=WZ6^l+0f$qUxT)KI z{Oa!aCmyb^mKz0iEuF`}$`ir(+lu&s#lc@lDN3`P_ZPm0a3BkZ_ziXC4mVku>KdQM zEFM!Lt)uI(=9H`4e(xI>zu_)jCt*dcEz7_lP)#Vt?YrE)c{h3TGVzGN>qObwCNIIX z_F?G#IFnl8sa!2c2*eYn%E}&eTo+H6q!Y%*6UOU=zVU=HI>8xB;B{i&1&IGz#IM$| zUlnpR!%HR1L@YLbD>e=*KU_bD^#b$aHwr3C-YYEM>N~eU`V`Dt1sLje#=cr?t5$JG z4&UVznKxF)z^UwUpdu}md)1BAuFAqBJXCihIQ=*z&sp&{t5H}Ew0jHv$x_H!F`i#k z-cFJITdDXeUGW+Cjj%DPx+~q$_)%X>Y$ZMNJ$;$aD1}pX6+3MFsN$qQQALqd@upg@ z@>bSYv6b0C_x=zT?WBr3bQP8LRXnV#IPH&gAI zAG>HZMZ;0V1I( z>@E+Y%S))QGQCysw#C8Alq;BX`6lHFc0lamujEuAHuCQ(BJNfl-sgRl0qLMH?4a$v zU6lznUh{vcG1lMP8sm5R|EV@%7I0h2?2U~C@p|Sgv<6S+wU%P zKQ`&UV_B2cP5Tb)5#NCykw0abmhP4J0yg~54)mcZxZNS?h8`!bIK6qFr9!EI%| z3U4@8WkK0$6r33Ag#UF+xal!CQ{bKfuE^sQp!2U&r_$Y7{>%hDvW z!2UF6xrDgq%`!(4J|F#tR(3$UchmwH94j;2e~=}S3I2g|*k&-vAM~;JjaV&<8`YBi zr)ptgZ6OO`kKzt$A#8y(qAJvDb${0CZow-T2QRSKRs2oyLEYFy8)~WE<>jQwmeQWu zsI;T5l)he;P-)+xl__b#>5GHo?Zv)Yty8;#L#6ve=;}JvRaEh~@qFxEQyeUo2j2q+ zaSIxyDzX z$IYrP8O<-*1^@4(8C#=vvN*9uealkC8uh)k7_;U^>l1#T-&^w~J-DVX4Bl{k+I~nL zcTnroj_jt_r+f;<)+ebTaeX?Dw{&D?#TF)6q#)Urwzg1UuTfrSoVz2eQG|&vtFCN` zVD~eE-A)ng)W=t5|PQxlBMv@J2wiC{|Ha&NzrcYyv9G_h0**nM@!E_IsZ9ee+Z1 zT=v1?eNY1^i}2qYwY_5xs+mDM_8TqUQj)&|F$OX`^z_ z!gKL!OT_7=tM$>!lXkiqn#r{^?U+CXlk$m`EoUN|MNi0tBX&y8f#-D>$BV9@uvwl* zmd@D^3MC|_vzO_Jd1?f<@L7|1kJIJKk?09jn&dcfN4#Q{Vnw z!)bFGoTP$uIF%}7+Ye4T3?ZH6dXj~l!j=w#QUE#234X00vRMxBFf5>hljXqfHabV0 zZXo^JcrX{nb$w9s*S1hO?5gu8ZJRGr-(jl0!_XFYs&DRpT3=69Ur$%v)K2w{`cLcY zp?1$B_#A@W!&N7=)Ec(12{}J$yh{&6A)hYn8bcnG=aHq8_QQ~`zfEDt&VF5E$ka3p zkqXi=WPn1j{V-%}PG<}Wga0WEksS#MJh(o9qp-SDi{!}U9lwrPR`QNb$`K>{f2ZA~ zAjoEx6Wq2Ra!I|uh(_207@iDQoe7i)3X-S%ph2&1GCBHXc8gS6{8PeWdk6xu>i}#| zd+^0TMC-2VgS~rdpZc!o`P1w3Mar{?gc9DH<*K_z)i=CIqL)b2gCkUZ-Miq*Mn4w0 z%HqnJ)LC_xgw!0mJNOb^iyZfbl8t>w4-3+ISUflLn27dRq*9KwFnF+ZYi$m1rp@8; zsNGfCnq=_~gjf?#>>9B~$a4aw?}u0qev?A1hmYwJ58S$ZGf~oVoxUDfs>BdJ={rVJ)4UufQ!iq zZr=~B1SNeD&*2IU4tLeHT0kb~Oq*m*>=i`m`BNndFHm6*RUy%7(!dJXH_HG07#q!@LnARWD~SJ=59dYzfo8NJ?soTQ-_bPJZi5x-Vgp$5@C#xGZw zFo2HuI7P}1m&@VlobLf?m7uDhz_H&SC+<7SwhE7p8`C(F$Dmev)Ytf#+B->{G9X(_ zpZt;Qov_?in2B7@d4l=$GybJ@91rEiZlUKy6o57N$_PMeOK5z$tFA;1>aExiel;XF z=9B%UeMvBo)^s6Fhr$P%uTjT$Jzs<6d1NV4o_+Y%*+fXUIW_}A-<9AeFYRC@6{OGC z%S<pdAi&bLbRgO2%19i0xui3kNq=Nz_z+Z~+9M?l~|;Y7xz7WI?VM-4{{l@Q{- zz}|cg{m3oEJ^UT?L70&AswUc1LEIe@XElC-WWr2W*l=YPSaaQzZ(^ z4}=v(AW~QSX}&y%`=c_9VXw%OyV=RR-g0-lx}zlGC`YV9-E|f>j;1bId0UlI$C$iG z*P{A3YIU=ou{Wbsb28wF@$E3h8r{?l*1TPwYBWD6M*;%f^Tv-ZJ zSN&g^AuV$4#x#{Rh5H9>qhl1FkjQN<4>Xw951@X z$RktH+{S;w{cP)gf!trnz0bO@k^A$xpJClEmU}#|`qo-C5 zqB$&uyR!VD5NM@^c!+^!qCwum`_xApd5CgeR*^Vz-N)`iC@&Rr=4DvSRL_%k zJtQnq_0XG3szi1Ey8R$6(8c|fCC!Kx*s%N7y@~LML6ilhdmT=`9fXOOB=~WaHKOx4 zV>dw8KTbx#P`dh$*_p#5{yjr|ll6g=i1a#e`;NG9nMelE;+vI;p?|snf#_6eUSRRGHrWdOB$0lD$?~#t%y&qwHHaz(@ z+55BX-gnq05V09Oy2`sOQAF(UTgLHzgQRLIh0@x4#pW?s9iCC(2o?ImtFnE@WXzP3 z@1L>WPnI`QCb-#By??yy1!$FucPN1z|E0Q=^?6UBRtJeTV%czu0$ylcAGpjiy%jVd z99}X)j1{t4>~yk1Z3@{)EY=3jwU*88;jN1X$0IQ*bG>-H;{Uu@G+pi)`c817C*pq0 zi)4QIF@*ex;%(np<|>VPBV&0wUPbKU`Rg86=^LJ*&7qSx3{oFeQDtcH-0o;n9%vle zf^~mEGvBvw#F~82#*T1)Nne9Sa7;Kid-QiTU8OB!6Po)oi+ExCgq5Le5VlE`U$0*% zcNHu*W$}aEqNcwfTLh6@2t2~#G3OsGp~SoUj1zF3mVn|tNz68Fl&@k{+^_8VxxKYd znZ8-Y5%&_jjl6Al^#_LLnOn$vE!wVn)o8`PuqkVh$}t!`I<^}q^BKjb_ax;TrPMoX zOOq`}1uQq7T*MbBA=wwDW6aB8p9%9g;>a8^8nYbIB$7!FJCaG)8_;OA9J|VvhGDAJ z@Q}ZJD}*O4%iIi+gcY5ViBlXYhTIm zYcO|dTX2dNNq)FUmV95DOeImDm87D-P5M+%a7HxohsGYTj1`%KGXINyFJr(E$vW7 zk-pB;_79sK=%BwuJp_vak~bFfx20;$8(CMKlp+;clUk3=prd_-N~?XmuW1!Y;&Czg zF7Y)^_Pw>*72=bv)qX0EefqoYjmd(mt%AFg1skn`pI8OoR#w_!;fIZh@wj9)L8hsmWPKJhZ%Pvidd zLPeS4=cs((uDX8GQqv06Cqk+YTBi+Ir5 zBe9GYO8~7)>rkI@4r!~NjH(`QHNSuh@EZzjWW5lQfo;9*%4j9l7Wy1;^xip2|W$6EQ8Zg&*~#G;U?MWHBC2^F!;nnWjM z3bLk(pF)~lr=UhUfw@^vCopN4`gVq3>Z#VUasNwU>Stf4VJiK?bA?4T;-5SwkS^ga ztoJI2u8E9VUcL~sF_&DXJW)tYZjiLa(h8r~`Cv!zKi84#W4GibJiwd@KW3EI8K=%H1N%Zyxjm$E=%E(Scm31iFiuTT@lGV|dGcnKV zcZ$QBKVK#~JS*2Rvscq-5zB#`Jyxe&E3xzqZ<}I_&Ms-4b}F{d&S**Nt>5XT*?vj= zIW|vUjj?{PpX|8f<_KP8z;K9{hXfHILb61u8#O!iqCl${kI;>9yG;_d*e(@2RZ2uA zZ;a!}V`YQ1v-I4Jb1!86es-vXGL)eIwQMFb9@|d%dt(+p(+TK|4He})NlKjqP%Z1UVo)jaJ42!6R&vyhh7z|?+iHCyc z<3?eO%Z-#}JGF{db2~K9S1~i!mvO#iePtTWARSPtpDxT*@N~YuIx|mF2zi{Na@Fi7 ziHOB9hqn#1$eHDObrqK0mWe2=^0kXSV6o@4$+;F;#qdJn8tZ@yRJl{3w+J&w`H!XGz3PoLmBpQEx z5wA79oaxl^{kprruWJKo?@qftJ+R9P4KWhIfowG+vo$3xE0UF_cQfCYc{O@noa)~$ zVxH8#CjFSa(yX9ok`$Yz_YIr@J4k2%x>b@eHh$Sti+G&vs~tbM9HGNeixR;6*3aXa z#p{cs0(aP=2MT1+#QKj6i9iR7qmyHJttz}!%*llDgphFc?xETKQ_|9<_~Ei!9s|O# zs995fdcs*novT-KKV03vrktyA)jE?~^OZWmGMrrMqa+m|>$+I^Qx<-LZ%60h4JGjI z#1SS>QA6PuKsA7VCO{W(0(3DHat(T*T>U6dTGyZ_t(mxqnFuix)eANKg=`9F`U83D zCn7RV&RGTOC!(aEM%J!=DKuLyi_LuLPJt=B##`1%UX`c5r6SOlNr7En%)E*eUGx*y zta;&}Z(6KSkn=K$ICh)ajM>J*t0S7zxrr)$?^{L8Qs&L4zeY2m=U}r$g~C3&%%&wT zzNe_#vhSs52RSAK#e0PG7+Gi91Cf)-@qP|-WWEM=X^2cqEwmKB-#o3>W+KE><9p4x zz`UI&2m$>1*~;nX*WCK`X;7pYdFEv6rXvIok}T`1Qr>9$iLp93TS*cC(v*tJl|{MD zM}=9!uLz_&0hUMn7j6OKo)?_YIUy?pe8$Xdw)fyslE30o-T=4zSH^Rmb5bOJArW+p zYgt%BKHnxEZ#BFJ8ldw7`sD~cc{i`JX5{9X$VjiloTDwR6ZZ&7~TUHQv zy||L~o}UILSsmuT7@3M%cz>hboPJKRNR$i(PfUrvUq{)%nc;g%P>xYIuqtB|AO54U=TO zZnR#LlSW^qUabn~!^yM#we|XO`!yTXYwGoDe*K1l%#!swY`?xT^>ymYsrIW3KC>fA z#z)Xssh$axY5>Riv3W zA-yV&Lh;;qQRa3-aXH4dELs-PmX}4!3na`u@~W1yh;Mnsqi$WLjh>PfA^aE0dJrsv zPeZH9bk)iFwpqQOb&~sYcsGaZ{>FGuf*!a$C9SSU8j*X+Fec+?8sDkLZ&8EDh+l01 zHI>&^%6029=pA@b|2VJ&m9FQIprSH~EPI6g?k?-yMZDYRYho+$b!aMI4oUwq!+KuM z^OMt`$01XcAIkII``7lC^_F;jBYs0qCG*V(W&;l)VD&Ht53EL1*uh{VM|Jn7`}HfV zYD$f25eYm}qxzNo&K}i0yxV6~UaKE6s%hz8o?$(gQC*$>ys!0KMs?x-wY5VS8MBOP z>(=C`KIP$oM#V8g-)Ro6wh*&d*_H-4lY>hId~UJTAQZ@?d^U9Jj-}gTaf!yKfKXgm>TJs!vc-o$EX* zJcO6U?Uowc9-)Ko_}Q-@=W}o)^KlAq^5jP5sb8`syyAM=*VOOR*J%}-=H{NDH|G`% zzdDpN*MEW}vW;i>_17_bzU@W`iMC8mFqB5l_QdLGmqEt-F7FDU>Sj6O2;po0)HOfq z&Tb7bty*NlFlWl4p~qbE9h0k=j10#>^oA(;kvS6;Bzz^}alw>$pXFIhW;|%Xh^U|V9pzW@yTSgI zYxy53jrv6|u72ei7QZQOSvHP;3No&lo9XI6#>URbcrOsroBa{!v}bNPK^!`ek&R8E zV_D>K@Ugz_K^R++n}%wNg089Ig? zYOn>?pS{ruti2Ri&ED42uHbo8Jf>s-nlXE^przr?*K~Dhtwr{$(=_8QO-Zk`e63f&Jp(aG#s2Dsi0sYF8&^8&F6TAa@M|_{XDBjIUJsLmh zpYwk04qoQL)OZpX!-@9VgqTFKOcz6 zi;jj9}wa}ZU2h+5mUoX3|$+4=-#Y_I-v3U;(o8Zj$=~d2wuzViZpfYFC^6iNq5}uQ)oSA`0e`hWGQ#Sz5EhyO2k7>sy z526+hJ&jwAsNMQ?;=4r7$Lf9Yrtm9sXvX1sV5Pk1o@m^1WMm1^OpB}vd`)#u(csEo zK>wpN%CCoKA}x?VFUWkWJgBqo)ytaXwX1iXa}GBW+E}v&q#3v8`&iCnBmG&`aiW|BhPHYV^Q0@G!5-r-t4~U~c+U)wEi&Y( zj}W$Dw&gIl{Z&N&S;%-d1i7RjcGY85CjEPr8hrF_pd46S=DdfUtYvP^ zbq}gB$N~Hz%0L~XmXO0$-^7Zv0O~}|)T}jSDxAbt5fKCThOHH>xpToRB3JI9bC!; zU(5V{7QDo-Zwa8hQkDNG{*1G#zb;k%-~OVi7yLQJs$N<;R;qteN&OEz!5LOv$E50- zV$~%Te1LuoJ%XCw!_B7`$oy6hG{3pu9>I3AffCmAu98Jl5BqQ^(|b3?1RMr4(P@@r zzoNo@SGtDf_ySTp5|c~+2EU&9(8u*($PU<@?cZEr+%I(VL~Km zoj!2`A2hh?Fbg5(bwFQ-(Z-xfu&8aLGrJiX!K`p|H$7vKGju|DnIfs7qkP6(Ars-- zr#OQ-O`a)S^XZ}%SN;8b7l^#%=831R35m_*g#rDo;IZUrX!kX(-UXSz?QmahlSTnw zc#e@Yc-6tu86rE0MFCqD?hId*rXFriOn76wHV0M!-jY z)EH}InR{d(=>-!Nq^$SBA0XI4;Y6h*61z2Z{JOTmVn`J%!`%s_~cn&hA!wFJBQmvdBN=P=I`LS^bAI! zrjaDOKL_#D0Vtra#;72mziW;FpaK2Mfc^;@Sd5$M8)V8cch`*j8|6EgK=}#ZQ4Sk9 zPoN^a>p%Vad)5F{Eg>L@bla*(M&YXn6rhjMBzzKjOC(@RvIS(05LU1Et4p@eMOvgP z+s%4hY!=^7$RxwNxXC?9kbJp_3(Tt@7rK&GEgi!mm5o9QYJv=`!}6dje8-hUd~X_g zB~N(7lGd+9v=+YO8i%X?3a*+)ife`=Hje8g;GZq+3h=S5B0OxW$(Hi`S?JZuRR<3O z=1JQz^sxKUCeA=R84=N4XDd*Km#h}}IYI-OfSmBFxqzx$)v+Qu^tctMDXOcYdfgjR z)CfzN@UCuES2Nz^TT8;^8}#-VUIRPhIu9g&(=K?ile%xT=!gQ zRif9{@V2Qo%D>VHj8JKJ%>@p}7`@J_g_!wUSX{HbardSFGfuXc5mntUZ|tDYBlu%1^rJxjTudy-(~CJ>|Z?vRrC zSf`@!ta3+Clyn^3Qmnt6lL)f1SajuY)@GBd*z^ z>%@+ki;Is(;?jeQKk@_#16!QcyMKii#j0pRow4A_C(#c#VFrpfl@#d{zjZyjQg3ZE zPtbBUhK?1cJAwAc`>hUIt}u^cyJQ+Bk=2d^*+v;&7+DlbiRG^e06TRi+nT)7c4fEt7 zGqI~|g}!2PY=;dFk*B8^nF-?|qdKCR5nt{QzNH5YM?j3i+DwDbfx3u4v-Z$)5m8jU zAyNv>P~r(stvXt(!@T+;1Jv=f^>Btbx(ebeZE3)GY9lQ#DhNVlv+kBwB1;OhnPp$( z`9h&*a!iLa$bLDK8$L~x7sPI70Gz=J<=iiS@xQ0KtU~pLw+;2^yQ#23^=zoGqS0?; zHd%-Lx;3|p&qCS9!XJ3+*UZc+D|w^(*aQ)nn}6T_y+_1_D?H)GZhoVz344-gH;pAv zCt=JQe8vJr)u_#1QCXm*7EjY#wO@(kz;&lYDPYwSaM%m)^(XH9#x!kQq;M9_TCBc5 zo>D`X#SRVPwFvzcCB{Ymc8YA`V(>CHl6wk^I65w}&}HyY5~n)kd=ZK)?hQk8rkiKbw1_h|P%8!<@x5W>mi^3Wu>1l_|hA zto+4RZQoOyC3$?^`n24t3ev&)P}TUXD$0bb{lLto3iSb7S^a~2qq=8R_KS|LRprn| z)HEnfHx_{^rN-T-2rs1R{hLdTI(40hV(8#VtQpW)s#|Y8i5{Td(Z5!xCxWbF)COR@ zETc%YfRFMpizS$7Q7zBCBGYQTn8u6O6Q5>IEv@Lntq)Bjw)CPQDQg+2W)=)x?bY8j zFa8b+q$8U0w!}m|GA?rCDQ?cSUNW?wBO_|^rtK0_AKpXh-BKEDWNH$dylNk7P`j@v zQ_Ncib)!GAY2fX?m^uktM~J^iPZ)QJAPg@FH)s6;ua~^;s$0iE@!-7?!CqSiiIG3x zJ`j0Iu(2+B`%rIvVkY)8S(P8+`&KfvIv-ucmp7<0+_P_UhWjQ9_GI)Q6li}FHe@|pJowQhYC$RRVElY%zCzEI%XprkT~QQAYqB@CB(O@CkUhmwrgRWHJM zsKH@Aqdp3Vefp>x{v->-q z<@k(cLb0S(z>*g_T20I#25mJiF=YCWrYe=MB(=W_pW%(F^etAo&hKMS!tKz~KQ?xN zCKpm#TPe`gy^CFWwHlYMJbjY-`Q23c88mUBYfu1d5pRvwR4b3zkIXwCwNU$t-9da5{ym~##jMeSHp7+ z^wzirGKztWrnfb)-qtXCt3fMBJA>K2rcsNjB@NK8Uj%=vvI){V$0AGAIw~%^NJ_?Q zi&|si-KMZ#b=l1wmP-vvpt{DEroK5+)=pLy6=+6{g%E)T%_tFA^tE8|vPTA@@sF!) z2SQ%CEnc5!iQzV!THInL$>DjYN8j6~fSwo1D^pfO=Eb|=_}MsR0lxO0J=-V)QX40t z_F#`1V>Q)vv%hJE*$06-g#G&w5h|PYuHqkx;2&)6r8zW4!kD7<8*%EF$^H9wl0>L2 zToG<_jGF1sf-b0Oc(YhIS#cs&bCc3(rkyRrWr_qx6Q_u0Le-4EG zrr($&T}jh`fH|JTdLy&}M_yO`6O4~9wrx=JDqo}(jn(ruoo$Id!~>9a9A{8Wf_nAk zGo>_;Q~2>dW1cKS0mu=C54*SU?o8JMD0F+Pq3IpBmSfL~k?liYl% zu_d`aVDF}Wv>mQ`aT~Htad>9)>abm84f+O5IzRiHHgxp;x&jl5O$bfUnZxs z?XY;9ZQc>WC1U*gHfrF@e@{tvE|>+6!j{xNdAM4*otT|SuL&TQ;M9t6rHC3X2Xt}b z;tVNUFL=;BsW9BZ0&Et1Lt$tyKoo|l1tB+;16Z?0Ra4u1mP;6??wFuJCHX zW?ABfF2F7`emV3Nv1IVMp4ou4!a(#iXk9&nHu#)xy6S|gYlg2#4#srpJk7W$FOE%i z*7B>;N6q%nv-?udTy^+TB@|l_6WddStt`HY(se6FY^n`=Zm- zChzkyZ!~aLv5h{T({rDAx^N^sE_0o9CBt8_9Ze;~K{2Mj$ZWM7+3p((5Rs?@d4|W$ z_S)>zACfZ*75@G+H44`&n~#=r#k3-xMRf=;NSC2?_Rpv^#uJ)@K!f}@?X;22>%bSK1 zbJoS&Tc88toj@l*ka9<>a;F}!oC2}0X|~Ld{IT0k?X>;%I-J>N6}jrJ0FkYg6a#Bw zeudYEfda7!%zM6XGsuRNv^*r_& zR|>ChSSfhjZsYZXX@yTu6+V%xeGyya9p!IX?1D`q)3^rWY|8i}StAD9NG~iO_mMa4 z`$gO%KO|@R+tO#DqJCrex`6Rt78NZkgp5`d7DY;-qh*DHbDvz19G%5Cf^+I%kR2-b z87XWl3s;sqL+AS=XWae?fg0MpLdXY#qSUbb44Y2+Bi;?*g5)d}Oxj^e;C;JnE|&^_ z9-xb!_A3i5diW!ZOb#k8YVW;P`gd?f=F_Jso=(Jmbf!uE)WuBixjYGrj+tJUdgiJt z<11^Xf6kSf>DtEhnf_Z^;TKag{Wq>WO|ymB=074Gb=-67P-wF+CR8G&SfB@i5AIpE77E`ybiR8rR}H0B8=QcoERCI(7ktS6<*X|%0WTdfO+ugKsfGg zQ4Q#l{PNlcQOvOE!FfR_=No}MGm0rcmbuDeI;=9)cXQpX^Nr|5>!mMb7(%RgEgFo! zS5l)f`EFO;rF5LM zTj*h^z`)kYKyxeD&ysHqB`(+W)mr2BZd#+6p}o?pDC)?_EsARGpF(c3wd+^>x9mKF zRs-_sTBOWLjB+9YsWyUxXyaCC-H<+uP^CJWXfdi;RNEDFh|+usPMPuJIzJo9Gc8;l zg#zYSV<=43BCLsJzhl)F6N8y>bqn0a-?^e%CT**EF$tAiFGY*jw~MuRS;?0k*CS0H z=RdoEG@V>JNazis;=7oC?r-8gDJq`EBcE~CeCdb)zCw`Qn2Au>Z3%^sRzl(9L?~R3 z2>8Bo;>HVO!u8LyF{>0YJ=eAJ{FhwI$m9LwUklx20>eWS!S0qmQym(c7)ocD4Bk#H ztPO8e3N+9gCbfE@4We-M^Nvto@N=PN^fYq9pX?nrCKpOhDQuWzr8$Drcg|;MA2rEP zGeX0-ZW}0sPDI)Rk#2`X__nE89>Md^rJRw&iCj`Z->z;-nrCL2U$#0?RjSqEs{aJ_ zk%fWb${)noM(DRglr-LEBm%KUQ99AJ;Q1b-uF%@CLuWDI1>j?-Hy1TXisasQq?Hko z0R;W5W;p5E=Dou_xxo_T3~HI7g-#8JQ}W%aO4S$WMg4eMV>7Kx+e{Ul;$I3e!Z*h) zy|b;AEc=E~h6eknk9ONn^<7%VZK$l;Cnu&9sjo0@%NU)n8RHOa-sVP^F*)(cb%R|e z$Y3CK@=s?{SG#Qi&j975)hRK%zDo)Dk!Hd7uxv@?j3vqVle z(t4RAFU6VPe2kZ@81$FFl=k$=4ZaGN_-4E*&xx|%nMckNos>6Prib2?6piy_-(!|w zfOA*Lh#}F7NEXP?LM)x5w}zelJC5_G8w-Bup?%fD`0<_O%Y=D+KxK3Oiw6 zSz!|Wu+|OX0zKlpiE8E=8%@vwS<|Aw7I#~C*kkq2xG-ICxm~soQ6q*MXixQ|JkTEv8CAPd_fI6f(SX5_tjVb}jKn z$h494yktY2kkkv3ZvII~Dz1Wv3zC{g?_&x{0}6Kz&ch!6XOJ{SEL|r!CZ;^z%8?Oq z;@0<=zucns+yN_We0)oYq1X8BHNNm3Xw+5~jxgGFt;vhMa$#JT=P`bhAE=mBAS9CQ zY{X^b6@nI!O6`?hLRwzLYb8FQqXXB?4;a(4Q=dwu5&#$N^Hx1p9F6C&oXJ<#9NdUi zcGMR+X9FjP4S7y>#**V*b??xwujI-N`L}J9pMvS@Vo@HY*Y7iK+>lS<;Lk*-{cQ32 zj+d?z${?I2SH9~Y7)@e@ujJj(j`%%e!d0AjgJZ`SSMGtV?(3sv?+Jcm@f;bnoL5Bw z&R}o6SPk~<7Z~hL8SI)n_aKcwAy#yk5#@M)5YNdM!JUQT19rMw+o(Xa!x!wN_(^i&SH)Niy`xaXB=0C5;tt zijC#9?0%EGphGCT)yeIm<&dGal6<%8(bf7!wGXzs>c3_<#QVX=U$mEyqZ6a{^uK`( zDbpV;yaofio!y0J-s=qY*@r;I#4sa3DR-datFcDic1@^=@U_bOra0O<*7fY&>S@TU ze_VzX1?vR!BGIYqD}5DB9s3cyJmC6<=bNM63!SDW{mQuIIL!RU;1p)b~8BK>ZMycqm)zREXSxu$l-oARhR7 z#}c)>rYk{Q_0!bu`VFtgGZl)p!~C+aIeA;D z^Eg;^>?P{9$RbIMLc}q%$P>935yvG+IQk~Wh`OO$Kr|?SS6{6`DA5f8#^=(0+o>@ZR|Wv-ubjahZf3@NXLTb;-s#Du ztVFTQZAEnv`wL@ICjcz@8t)Q)iU*slYZ7ZpnnNMGU=szo6d&s8K@hX)E@?vkJWc8o zxr|@kQH|KtbyPFht_H8%WHo16)kweOk80!-`6H4H^o1|X!ze@0iadGRRGKe80yP1m zW|X3Bx=ZlHuKS~Ddr)b4yVbbrAL1#@q`d6JOfr=noAg4oJxt&tF!WH+{dUy$K4U^5 z49APv^i-t8nsKisQJxqjehOwWuL$(CraR?F{+I(-eL1Qdx||&wt#q7O=ZcUn!Y7eH z15Q-78Wx{P) z$1>7YCjxSWJ$W%X<}gI6@}B*^ z1VcN%e1orik|vff%B+FCFgk^@NBYGgMOt_R!w{<&bO_euExfIq`VT{Gh|N|yxe5Ii(RZBZ zD9-#9UyL#OZ}uC{31F8E6cAx;IOdi;2@xfLWbRD)LDeU?gDrHnbVti;ax3KHvcN_< z8oLhhYn!`UO=uijSh*mYGNG~q6C`=Tk_Qx;d0sg*G&=$!Oixi&(oN;pm8P+TmW47A zav=*S1rHxoco+#pH639~|L2QlwLXy&{(1p;DP>{dq{0R*vfBANVp8<1hGnKuwtSNL({6iE1j&Dk9PpsC`Ml9;$yktd+ zZYEucXTw}r;#pKg#@}UJ#^gFz-Q|q63-PR|ts(qDFT#Isvd;#rl;EhV9Siq_R` zCc3qQNNAO76>^|bmQa@x+T0f`!egiuZ=EEx>e&20A)#$y`ns0TiVp1?^ZEDFCA8MF zg*>w*w1)|fM6&Ko)nZ9#<&b7eXm@fc`0uKJhAZ|th-bUG_=mj*lh7uCP4&l;hD=Fl zInoIYe}kl5NeS)EJQ8+izVt*yv{&)KgQHcKGTJb**sp(%EcQ00lIsV*aXMl*Sl9oO z=U1sI4k;NeN=>B_kY%;6jCMVPNy=y~sLb7Ht&#m@v;}lc$!H5~8Lje{3(PUb6uMsY z_nM=XjLCD=eMgNc`KBeVJ@X$O;@Z)Sc^`4@>Cf5X+D*@jwm6z8fvsSX?ww9k4^ z{{NUNX%9`S<#On%r26v@M5rnjCkd6zbtgjgKc-6hnY0dy9Y~dQ*t_Y33gsK8`1TDc zLS?Ix-XD>y#UfNcfQLV-O6q}=^r5SgZgts&3i+lGsuQ_S5~`o7O482lP$hl+6=cd* zC7mnJ4^@@)S{j+MV6x?%1CgnWB$+xQrAktIB(af5EnbT-J^1$y!u0gv`w^!5p0)|o zNXn)3NX6<#5vIrAOCwC59fUBwmLyEW()37YCMnZ_^hk*7Z9URYP$FF>l<0s;q;&T3 zKOjTrrjsFbjQ`J&q3vh(hwQ zM+YHB%aX*%lSYh&9E=#jKBagh)Y{rGc%wtqYX|-}Nz&kSk~HA|A(C{(p#N(mX$wvN zM9%1jAqOH!zW@5)CrQ1e^&cTgJKorzB>jtLok`O2bCR_jB1!rROTk0uj3#yOOp>y> z|4&KM;4?Z%(z~B^kfi?d{7^~K>itO4n%56Rl6oXb66-ick`y`mYJYNc$DcdM(Y;yw zk)zw5w8_yaluPkOebtR3M|ZuIMvgu`2sv7jBu69C$WigZ$Pp^+6gm0{q-f%glOhQq zh!f|Ki6^23(AzB+xn&b@$2GG4auL|2m%26mxJS86zLqdIu{cFir#z8)j<|y&Xg~z) zC_A&L&#LSeO8Si6T-OXC?132vUSKg`tl{BbUm4VmZiDX~vA3C1$Z zV~m=FxAw0+D&2x-New0O)&7|yI1FFypG8HS4g;Ss9emYPI)T>=Vuss1>LMk%cdG}< zLZ?wkY80>SlC{-@M474K#O@w`_2{vF_9rfmkT3w;9Hnkb*3Il;&VHTx z`lDtI9Ub;=*c<9?hIqoLE@TMSsI1Y}pDqCF?B1@>=n~wC_ku;|h?p`s0hq2lA&Eg} zUM%Q%+%de8us)}V#2M`ADfdmKZr~#rcVDXfILgOQ;ZaTM(QqCu7t>d>WeV6ppjr|r z&f+1_21?8I(kl^fNX!C#>;&DYp+dd%nx=4+3jsfx;Z)Gc#m-YzScEz1UvlJVMxBa} zK;*bZ6t-QYSy$n01)5IqgNH;Yq8WdDPhQIaD#QgiG?@WoLxPjEYEX+1Q(Jdo^OjAE zj;7I;ib-!%J~xnr7Lc*Yb*ut!tr6uGhbDOae%qz(B4#s#T9r=NjPO}48D z$0YF@vK(Fl_kRtI2VuFyMTkvQbD`cRGL-G0VmOAC=1Oq%K!ew~t$>i=p zl%?Eh_Rwfdvc(*rp1(&X*3vSqJS1p(nYyb!0~VFj~}_Jn`vR@GZzAOQT9&IxSr zanBk~aceJEuSSPX1f|dAwSi|6us?E}tVUojfUlnm$&HtJ zjF+YWs_@<;LwTO?tO7?c2UnMJ9>s6)8Kd23go;29kprQiiVloVq|V156>zu-{bBY) z|LLh+E_DdVUG?`#Y4m>2D&X4AhjrCF1^QA<6wk4nxNpej%9mjoVu}@WB2dymBtlis1t3=k4u%d(!!(=d$?!g0AVV5hC4_7~0wH_t+p8RXTjy{BDIO{5hG;qex?a3X zb_Kuje3KxLFTA~mnHTRBuU>$Te6e3YOKTdbwt_PK>U^@B6k_9y#gf7w3Gevz02M#J zelc^XzCGh2W`|yViH*43D~v#UokoX+BE4DN%aeGG-zv+7gXAk^j?ndL`XBpFreDmY zQfB3Kf+Ijl_qJL2iRwnNy!Wku&9cZSte4nQ(d{I56Qz8O8L)a-Co=MQF72tc ze#U)D34Q-VibPfQp~qTBk8S&s{efuZH3453jvWdmX`>zT*34VY^h0Lu(uBW&%n zyR~+nxXS<^c_S{Ut%*5x+_u&}B`^3}&U8uglaV|{S-x4ANZYzMce?6l9|7tiIRAWp zhh>6frEt`0SE{fe#K5AzG8+|GjGxnN1tP@d?D$*16$S9eeQ8&@Tq~~n?W6a#O;5lJjf$*b#h-cogTW03wF>TThACQGFpnGR}94xr4<-zp4p;Y`v_S8JQzc zL{aB!Zrq(+R`Q7ic1jlAOi>ZXqa`fEep-pV_xr#Vxr7d3T`P^)jQXW~h(cWgn-Hbs z+p6QoMuwkn))0k_r|~>>cdK=WPMt6wb*lS#3PzJ*SBz|>^FL=DGn8mFF8wy~`heF- zNs=ILS}H73eupkSb~bIwnp6?&YwoepW_D+^F;Zxwe+=jRYoMdAm6WCB^ z36jEELec_OxMf@o$xdcndU`JgnFLwY5N6}<|nH8=g z^=JZT%|&ik-E~Yg&HVBKICywPMeC2nBPR)Em*LJVUK8Gh&w67dn1dHX*58o_;&&i= zW+En(4~(5?)p4BEA*Lg;UmUm&pVV=^)Pd8xRly)C*q8d|V>s%Myr`C@MG??`M*YUq zVpAZtC%8G8Z%+wHOFNDZwhjNdDShm8$3eN#Str{MRRWS>9ge_ z$9P-pUU?BAK|>_Xz0AqugTdmg@-ptTj<9WC`yrDPxl_PQIh_ z+uT;PzM2|&QM*#L5Xrg?L8yf7B_OTXtfnFON*IJ}=^K9pej_UH>{c$dh64VT|LKT> z_wiMoVPpBgVA;D^LQ;m_M4ptd4O-WBrxiV=I~LxD#g7iZD!y@HkFIpRxW__LQWV9u=1I&*$#h(mm`K4&3N6K z<=+Pc2Xb4$t?VFN=E-dFyI329Ws$N^@e{4Eog42QNm{YS^;i^hAO~~ltx>*LOrB+k zK|CcAm^=N(3sRXc{1Lq%(4pxhKs-Gn1v>WBI|5FujwJ#KX5*{U$SP}et|Dt1IlNQYs-IVP^a!x=`bHwhHHI z)l3wc+(O-x8PApr0+16Gc2lsISSA{wMKF>riFXVpSOPXGFGBO*OJ%E2U$r;+fS2_y-5V2&#+-ZL?bLS(V`x!0O`gDEwbT7xMzGI!Np zota2{3}hAy23Vm>id2-TkM?u1iBWNfP|0SPSh7~Mlpp+&r)?}-^gA2N)Sim**&^z; zBG^C}>z<_=Ou9n7^~TyyB*<8>hu?Tr$oHabY+88>ky7^T6j%dyfL(haQ?13|$tOp7 zkG~1WVvh>S*j-{U28Wc1#p!l)@ZqeTf%eS+ZaQxa+$D*ea3G$VYrB6O(3i>B+0!IA zTHFN{s2SJ2V4rnM$j(5aYo2g(%2M+WT-d#i-NUt<$cf=c&Y?A-0%RMEo$SQCi1>~V> zcmXd`v_>R_+X#U3ojCCs5J{rI8ty#5F$D`gt-x|cogsQ#XLE?|qFET2$1 zSXk6WK`FMAxL%5H@35Op_1Ctz+bFXlR-_MD8^uytYM?ls3={$Rg^)^qYM`GBe1o7l z-Z?;VAkbybCKoUz`Qky1&z|m`@7I-Qq;1JYphZ^Cd-LqoGjTp_VvDverVV-<%3zZo zO@G9qFE31@;mT8}yjdI6JncLTap45vhXx_knY>t$yhZBYhPWGRzePgiT+gi32CZUn=o5{pU9M()2Oe{*3B5e*F&c zDNxQmxMYD?ze8XTUW@^)?0sNN5tkM;$3R($;iQiN(F9auG=3TRm~u?s0N<@3UqIu2 z3Rx2M73P}_GV7tm61~aVHY^J1FWEu21y-)v5?w)!UMJE47kn<^)MdiB$QMMUKYn6u ztNkpq5Tiu63mRG|28jXEt6dFPA&!D{9h|EYBFpN@2VI^qI0O-pGCdmQ32c?d7(d&L_UO`0A@AptfoH#+oP-royPs^GEI#O0Hzhn2H0>>IN0icdfVnv&wVn z(u0U#*n};?kBZOsJVWM5nQU8`BBl%;o=jbVB`60Yp-j`)3yw(MVw!2dKzp&LZDbE; znSN6XOGwr(aiQ4TjehYHlDrHl5)acVNc4DFX1u3d8${>5EL)58dVj7+>2Zngb)ITG zr%b<=xWM0HO}fK}E3;s(7RF2t>;I2^gPM>z!$vc^A83O}^Vxzlw7nhgzCrMY-}~A( z6|eWT6LX80*?Tb-4xL@|OW7Rmx4k%DknULrSvE+p<#i^mvI7BPp9)&Q##j(jY>WU7 zVzW@}dL>$!xvaGtJHg80ggIx2TzP8%rVl|I#^HI&yT6PZkgY}wH?m9u*<>(I29?o2 z0C0)<3wYqyV{mIB!dv52>WoG*YhD(vktD|cX02ik{)@PuYsL$e^f^VyRIFzq?D2VHSr7*oRomY7YPP*IkC1Ke4YPJEs4RBcA) zkLL^3VRb@{{Q86xC6ZhTVu4Nw9=j>K9di@ugs9MszN!Z@wYE|)2yI1HH*WUFAXXqx zACL_og+-hyRWRc;EM6%q{4|aY_R=n(!uMy}OZyWAMA~}`6gVF&h?5%poILNSxkqG`@~ou=D~Qbh6}9%{;tnnpWf%~M3Zr!e2iS?J8^-) zj|Vfj-2%Jf&~^W)c56=nJp@>vQJojEdgK`S(>zBdqAW}gb~t+y7V zge>jPa=A}V1$JOdITjqxtq`@eV?n@pI(aN8;H?}Be$8($>r60OBAezS@oaOtgV#ZN zTM)ZNvgXzylAx3lNfZzoB2BWE_+mvss$v`!(%$tmQ5v{T60!guX8|3Veq)Z4Ky(AyI0^p85mDkF`}qsu6oVXoAnG8TvJnWSOChf%En|nVU>|ZU~c@5;+}_HZiKeAYr@D zNONL;fzT%loKFFH$iXMd2QgC9bew%U4z%qw z{TV%lpV6y17I2I$1YsW)VxSJ|WyZ833F9$mftuZyWMPQ^5w2`o&F_B?-`q4?p2;5{ zl)*!~>Lybb2h6BHGQ-V8%gX-uS-?&*ZS!Y8I_qp6smSC;B}G-TOGRrcGaZ$vJ4Y-yQfh+IPO=*Pxis2e8m*yGAR|lTyD^e*K^@h<<}#KKH3Qq4lc|7) zbxH;F{t>GCt)XO1=UO$fNZ0_<#A>m}sjTy(l_cU+G}Y7o9_$>ncV{;6GS`6v1X7u` zJw{#o&pz0p);OVe7UdC#w>5E34P$WCAI=U+j7O{j3g8w9XgWQ==ECkZhz-n>X`F!7 z^>JocoP|*fN**TpF1R7~uHZ;`nZgHG9m-%KdKS2d$g6HgWm=*THx@Qe@kH)WekAa+ zefGjkM9ESG5tFD;EkDBz0z_SPckmpJ2#JF7e)%8E7WK>C3htG`B;1#IWCoRhWT;PO zP(1U@Gr0T@vPETBwI7qJeM(2|A84uC*K&FAY*8=fsjj{?E!ov0t;(c-5o#c6Lo!>` z6eyLtHJ>B_#>yI z^ZC4cX?V$CQS>nJf8}56oYp}6c=Z&0%wTs?Q(`s^7V=gd^@J~Q1aA@|LHzZ>f)t77 z(Z-U&vLSmCYdr&+2;VTchC4i1cQLpIEgAYKUsxDS+P?J|#C`44f?GJ;3DwRwyR|7eU|!UnI3)-djJx|O zc8E~+9{q5?9+yE=k2q}ceo-)|HQ}@zfB`ix76Lj8V3l;y23V|Fb+0}4JinqOpThk9 znQJDE17Y=I+#>Nx5)F~`k%|%b+?`#+z1KLOM~llMH}CZ<5vE-tYb2unirWeQwAMGE z32<@*mYK!)o1w^YmeYfI-oIriAC%oj4q7EZXA0r0L?Sdq-A zaIZ(gvgT^xl|`J6HQ`ma(G7553S4z%{yy}7KbG{M9l2@0j+}mwjtu?D9Vss}W))zF z8=|X{VcvcaY5PzOlI~+5ESd0nmaGY-yLDeK|>rnZT_O?&lkA#V6usbAt zRCino@`K1R=hX16sQV<3<1Q2gL=o*RC5~4PnOSVUaU@#gt2AyK>PcLR&~C__jTx{R zt9=z-QB_sl<1=REA%1ezEs`$TETkM!`EeR^p3?#q7yIX!tQ5WZ+0~!{4pUM!+oyF`| zGW)`F?^e4c<0hp<-z(HZ+~;y%mm&AmhH3e(x+kOy#M=znRm;JH`@vQXu67x6r2h-^67}Aj9ni1U z80mijVcsYqy*d9B_N7R#QmgLWKHclMP(OV)?-duFwwhxvNYMk%q$DIrEH9ub^HkLX z)FqSh35`JK)w$>l0_xWc@8Jj$j*F;YD+$MS44i}c0~zDUGJ=o}ef?fGEOW!2ZgjBq zK;VIOn97#Hw!xWG|F_sKjdun@Ti1U7VTd^kUqVl%fmsPI@4b%@lF$?OLr z->aUc5E<&Cv zE)o0U6Q6$Wh59*&=Y%qWs=A=PPrnd$E|(4US-AxTzI})O5=*|P^!M!8Hh?Hy776;E zY0_mR=tzcgRVIfc>3fS>1VRQ~b;~HNRtF#}Esz%{VT5n5j@UxpCZFFb&xzF{Y!}Z4 zs$!JCnWd9QHZoRId>T;AQ}A@v6UEu0FnTFZS$|Vi$fA(^3)ohp3DYJkE%oA z()Psofw3FZ=N-*(f}NHZlS8d<*v!13+-957KMUcertMy;ogfJvt++w40!7Jal(cQg zZOzhTgMzrKvAvcwAu4ENZWiAS&?RQd(+C=QjGF2lh%2M!P2-dpGNh*L;9|&86FP|@ z<#;~|2{WfnpkP0xMxRuo72HatlTiH0VP>k88m?I;vd)^wKL^xA{_R%j z$-yVGT2%bDL|RZGzN8c3XPEh@(qQ7To8YvEwu>IS>IbM5I$}Em6G_&G1sqk`^pp7_ zMm)d^>zL8VDY z+~s)qF%JbC#|b!$?!Jl-Axgp#g^10K-sL+^Ii_fzg(uQ8-)9EXghHKBJm}44B?%5 z)L^x#P-=>l5)Mb;b45orS=fC@?lTfR_F6zc#B6uw5hB3Bq(DFC9hHiDU8r?TBsV@r z?;rOWmq>ixINnc}WXpv>Z_|x3lSj#|KyQrUk7u`Pu4nt<2?dia65;72cP6go8M2$f z6G=;f4LXXZ{aE*Oc?Byrz*$Pj0?3KhI7JpNPN1oZ3|VzGWZ_#O3(uS>WZ@%E<95ix z7xtF>Dfk9iXcvH4%nMl`lgx{`3z3UO7N$TJrl!b3liLmIGa@-4YD1wCELfou?OjZ! zI%#}xg8(2ynmJv=xXsXj18QN70kXOE&_u)rUrJ`;-tIhCZ-@E(F-Vf$RKvH<9C|C~ z@2cU&>)mZl&QRat_4;mo@4CH-6>W{(^c}%}vnjfkoj@hdMB?rG#O=FC7A3bBHh+Un zq;tnRyR3=`#X?2rDw`_~W#oSQF8tm9$K9F0H&vw#zkvp-wBDjctAbXo3a+gdB?8(& z0ymNZDkv@}V-cBgLr4Uj779tR*Gmxh&bZ;|%rH8R#SyH6+5)x(6$`k4xZpCH7*rN5 zC`-Qob8eERrMQjn_kO?6pEP$l=iIYA+j-8jSSD+SujI-g8{zucjX^0xJK9Zv?UTHMef0GgTLbJW;G^S_B)6AJ4Z=s63Naw`?@**>^NuyS_ zws^VWT2xmLe8n2{z}|HKS4MMv_z2Dbd7Y!Z_({(xC#r+rv9CLgD|-UQXxIJ?v*dN2 zb%*1s+~qqPhvf1dwpy`_vO{XSaw(mwk9G@uN^4i*`{S@oeW##Ns~59)Ggbz?xGHp=wy9Ij$@(`Pj8?mz;qIi zobgAOS&xq4(HZeaL#;=-M78zOu6^T981KPywLz{j)Ae*H<*j!+KqNap!sTsae+s)gu^#4ED{2wd(!d>q(szSW%GV+u`pq6;Mn>obWiT z-qqkbcW+wwvTf3Bf5xDSvNQLlA;r}CZ@lito2K5#pgMQpTQ+m^L=eMc?B;9J<6i^Y z8(e3TRGM5y6Co3Ef5yPh1Iv!KTpLw9K{PYkGvDj=-yDb2RA6VRv2*HX&c3vu1Ya)+ z`HEt9bRv)Bef1@d&$Zd22InsLseCRpTb)iYMfxW%8+eK8@U*S)h{L{6^cTAqFD{@VD)x9=rxm+oiLn$O>w7?-; zmGt@C6S_s*=f1v{6BRR!(+Y(5qpu{~U|qOC&AC>^Ax)ZI&Bk7vqeSi4>&}X@e9Z1b z)~+{PNx^N(l7t@6>g)qUhv3ItdBi{uWXY(L@l1Qa*>$73TU z5SJovJ1fqE`TkYF!1uZydU$~h8&T^fmY422TuRh({$2?DPm5Xyd-le{?|&UfjufM( zF@#fvkyRO^gV=Adl!vjD@FF<~EhYc4#26$%JLWHWIu>>w^NRdpv`h777yc&dRh+!@_-=fED+b;F|xK;_eerDxt9Nw#r@~uuixr~z)}K*ewEC!hfO(| zPW*x9UB)-+Xqp4a1+ctotW4&|Gem{#P73H|1{JcW5K!Ij*k6T_)0}*A9G?`1A6Qb= znIA3qC4Z?lr~&0^VGHty7Mz*^&?KCbwctcBqfRE&BbgpwBQB2E-B^wCu}8Eadjycb?v?hOuiwjNlFqEw9V-=Jhtyh7XU-x zkpBtr7@}HuxhQxEczUPYn=`BB^FV5FhPoe_&2g}t_WN*8z_4>co)*NOLuyW-W~5AA z+x6|JIZX6Bb?DWptj=dc_C6gB!dLDo{Ya#INw97Hq5eNq{fILx%!k88E0wI*g*Rr}KxBj&z9QW;i&fiL z@U^Brs<_pi=Id-absR@RS><6qr#)ly7{UB13x2k3<&j9Qbl(0!X$nB3HwC8UrTN6Q zZjThQgkyRt;Z}Lryw5`cF1N7xLO*M^T}D)^6jZ05 z6;i(aq)$mc#C#J>hWt}VRwP0|d#P5qOiix z5%Og@%`QR>f;{nXd^Ro3r-=u}TXY0-6!9x&j_Lw0Jj4ijaD_YwWfiE-pzs+j)N74y z-lgbDDC=D{M+dOeMWZ;+N*qNJVWWZXM7&IHd`J-?@1SM0Cx2RTvg;)bCKV?+|4u>2 z7sl-~2WscH;p^la;5JE)N9N_}_Rp;Kz=TjW7{2Ni5tL+!K!Q%w+1birFR51T7wzXO z*R^j^)+REYfgE4Q$O3hB^>v2}(%k-;nx($=qv=*C>vRE*(sZ))LgvTT#WsO5i+L5f z6Gcf%Rc1ofUS-t|ShYWvJFB*;Std0lS3+TnTWnIPB9^9|wBVDhne2LkGr5S!p%;UB zISxv`n;;2wsBsjbGPZe6zBfNi5n-wFEB~=)>Qr`unjW1z7P@Vle)0qIQg6IHQ3lgB z566KY5l@=I!Fyq+#Cf&|EMU&!e=noW1(j-j`e?xsE7eQ4d z*O;a`O9u-mQCk`w(^No{Jt2ck6sy`{!S4s6#_fvft9;(qZI%;?Uo|@6z zj@}GBLJjJ`m*ZptSxF#PmVMH)Vd0xv=v#JKbgHF6m|D3-zx{v(Cj;d`%1N_$6U zao=U?G?VR=eLT-Z3IcwpkRk=OCVP}(1NT=<9cU)RAK;tDJbpUgx>mWe@j zsBa5oF!G{xy+^M9WnFibGG~YiH`I5nJU_v@-XPaUa6RvE{`5w>^acDBV_Wn9v6#d% z`#0C%=|09o)11a0`hLI_7A@_|^}}2%7Yxqv->@XlqNbA433;e=iaES2nS^m%XIR^4 zlITQ4$6mNmykl_503yUo`)JPfBTpWf6i1aq2C@X)dseG7I=fXERhKlBRtP0&373Mn zhMNclRwhl6L^q+SG0UIZza;uR1z1hBXd;O|v%d-=iOx<4qAX`!;6){jid&`@tf3Rs zUbsX7mKNLr^1)^ej3?9Lk^np@D7B7Vwqtnzhp$j=lz$#{j> z`E9FkrUjRY%-AZRU60eMh?P$(QL?Xg0gJvsUE8;cOr(0`^NBCOJ{|H+`}sW)0a&+f zVZk7?2|3p{ETt!3K!_0)&jAdLk%)@@l&B~~xtXtXszl%cP8%W@(7V=G(R`jqI?J=Q z)Z8>e`dr?m$YgAtRF>u7B<#!=VW;B7%z=)$4SndsSJn>r%6sO2-3zTEKCIg#$~R*R)HvgxRh8X7XmJ7dy`W7Tei zO3>LXh1!qsqkSK;f_mtY0>wn*-#waGLh@x|3T3m7#1zWoZ<6&ig`aT4{TA6|C%#^g zB~ac34_ZSR20kp_J1tnpgOsk}pvR^yZfQVP&EKvoTdv z9Y?qJ*KO_J)~Y0wJKobnqq;*NbJ+8g9flb^2jG?lJHFC*|M9UF-+8(@H~Aryh(?oq ziVvjj2J1OQ@aVQ3C_h5>$N!U@xK4;hjes5U!5e~tSR1&^apN(RBE8g%Vo#tkT>|B3 zb7oS+QcH149(_SAB;t$ZfZV7Yd1XTJ;F|_{jwd-ztTQX1xPDXE>rx7;%9|+c44m6Z z@`sKFUuFr+0Q(qy847$HIOh$b{X68&6MMD9vDsfq_vUf9Rm>RPU2JV!uEhF@b5>A_ zy_%A)Ekq2@TZ9``;a7sHa!Q^eRwMK&Ev?4@SAuG4Rk^w z`}SdSy#GZU*He~Wwr4^sl=yksXUPdh{Irs7pVs~vRsiu%W8!X!pzlAYz9?^$6k0Y# zi2)lwr8%`(xs#Qp~nI<|{ibxWNO<*dBh7O|QpzRGvjXw)(KwLqq>W&fxf;&y8$-e_|ez>p=Kyidx>@^n% z%TelSYq##Tn1#o5eZYEEDLQT__a&F1JOjz>Sp}1?kdwgiMXV-=^^W)b;>ED=S&K># zYe2x>Ul+b;p@m{7DdgiJ`}9o~DEdwp_x^T_R3xxUDWH%_;kRZ%c$7dDJLCb9WakMo z3=y_3O$ysP(1eMg2XygnzruF&{))wgZ6)CWOU&h0zPuFFR}-XkLRe*12sz#j2i~ZT z(x;_JQJvW6$=KY$lw@_hO#=3WbBzU2?>GD==+4u==-G3C~MUS*`Lj{ zbVfIQqBdBbA#AXU5e>tyAFQ-KN?!WGWqcf$#{a}Dh|VZ$PHOE!t9Cc3JxprP?YMS6 zV!YBBwQsf?q+jWb+P`=#Q^AMC2-pQhqmIbnTjQ{Fx`Ia!Fw^u@wtyxEVNe)$cJ4}K1$V9QI@BLJ)Q0#8#agyLQp+AW z4kA^fbsw3hb=TztJ32JkVZ?&DAJx(`VI3ao(<>)odZEV8LnoQ@{2<2Je zGH)3#vEC-1DD*qlq!3unVOJSj*Zokr%zvoM_PKzC_%!WLBoJN~!iaa49` z+tjqkF=||GgL|rKjp5W8W1n#K`5Z&Nz}L1~>47$AiyITZt9=_Ojncnyr2I1;&MJPL!2eQ(7|ExRy z&>11EaHZ36dxZ?|-g;XTcL|~GQErifhK1&+iP7%0k$_nC;jDkj0++V<<~`z}`MEKA zDR705KekSMzQgwj^JZ&YxU$OqZjcB~uGQoz3zXMF39p&21s_t2{-U+^v((z-5?@mK zt*k$AgW;Nhz?D}D$b5#N6tYixGO-+_HJdMf#qI?aDAaP3Ya<`jDuvuey74FZTnmbz zhC9#c;~2Dtby7A2A$w$=69CGWzux?8{)(yi=(SX(^j^yw7BSvUbcU10=Lt=&e}7?IyFv^TNv zjH#!1jTr@AV?@6MJcZ|-Vgapy5FT#mH`9hS1{G-1Qd)$AcC`%b%2J0j%zQ3B6X?oS^1OErJ%jlpFk@PM7GVvcopVF7@A% z=nH(A>7R4D&P&si?$}U%`LNJZb*r1t%IXtt0sF1hPOW!(K7Z7D^j2%rn+Q0Av_21= zCiuq1y{F|_7jsS%5avnnG=X;AJiGI7nl5`f@l}}tZE?l~!R}jBU;Q;Dq2Srl5HSZP zINsFmslUVhZcB5pNvnLE5);^&i{5OW=Ku^ugJ-M$7N$RcFwddaq`3|yS zvJg7XYO*QhJ&3p(8@#1Et*C|G(4vu0I;LC=Oib;dxZ;^4AJz>Omc?cKbqt005dx}P zdv7+2;T!wNP|zvGmU|t$%3g>pWfWNW#G05h zrTGSX%$J1q5TD7y(W3R79U2>iKF_^r?EcLm<5JM{RkMMofNYV1$=Y)oVE0#JCqM6 zz6$hd!3^o;J{tzlj?ec8fiPMNgzjrj^o5fO9&vgvX2|A{@w(`AW+~1tA?5^sL-rwq zQbjAmu@w`yO8`P~J(HRi9C=SJw~XwZFBS06Yi#nEFI%FE0M0fGaGo74fHS)zzzHkB z2`j(}dqU|)(;XY6P+Spa%LhGyS9?dFR1=g%$8MlwGC}?eJ@MefQC;mI06MZ+TTahT zWt-;>`RC*0_CB(DZwnMl=DUn?h_D<}xNC){9B~{I8e6VA#!BMWeWMPi+AsIx^QSr0 zyjW2iRG1O+#l304jHnMp^z#iATa;q@U%`~05Wc%`ucfuG z9u)-y5lzwNqN6ZJzZI^3LPQ1Oh4wpn8#g;bwY$JqAmg&=Q_iY*bkU02l-oVB9Dc`XfNM82S4)f%$LSPh*m z!RMe})@&MW+?v|PNmd)_(#8kU#_d1W#uwdaqo~8?yHYuNc!#eZ#6EzSAHGsPuD@XMcy{gcn|c%YcXbZCQMV%K5+?qN%Jd5C3dmb6oO z{vj40TSFN>I~fAVlK};Ckmk#j!+CXS&GO@~#n*KJ<>ykKjwIIAFJS$o6lmAEM>=?R zP8>kAV5W38G|*4qoMu;%dw!5_1^&neF)OenuC)K0XVR^>+WuYDovhc@u$6ZHz}Om2 z6KO$^8kgsfOUx(og*dv*KPq+laY~*3G!+4&xUHGFM0R8xtQW40{6#fs-x^;A-=)xg zfqDq5e)2tGdD|F}ANdaw*=oj8)Z`U2miw(TvlC^M8OxjgkI*e7zOpj>MKqbs0(A%0YQs)UIp-%RVeW*FOJ z&BljvV(T#~rNjJKUHAcw8p6UCU64`+7K3WKQMr@DkjBb1`o;pKHCEOy__Its(IJIgHb}pFzNeIv$x7M26s}cVsg}lR9pTzvqZ^hs1V&}7 zS+}#&y;Q5zcu&X%$?Da~kJ8;eUm!J5mo9Zw3&!Z@DE+ChH+3>Gw#v5Lv0V!+rkjEC zx7bRHE4zA)!H_GIuUniMbtJnrf{E5M$aCX^%%f+GmA&JGq*5K-El>}O`77gP(=DY` z&`tuV$zp}C?;+3a*Zf&hCV5=49)vglV(Uh1{15Giiaw(c~;L~Qhd-{EI+aP6fB19dHZcsEn`P*euq-Z zYLmF2P6rktYLTZL!R%MrUUP)|co) zqG!n-(0^5QQ0LKa$!fCbVL-iFR#9}6tc!rCZVb)k9G_mNg~wu7CAH#V_x#6NV3e(+ zil>PMdcc)koQ{LB0;>|%I)h!Kpum1*>zSLI)T&w2rcB(aww-Wu#ZF`Ah)@whWj-eu z_`ieC8q%ho0c zg+86HEEXy(@O>A_YGuAkS!z(nYu1e6O&hey8hCzsn(W6ajt4!iKDg6TY}v_^W&c-qLGu>4Q4GY~hpZ16;gd5H)h^jIqBZ zAG@}=tJk(k;y}EsK8>>2d0C+wiqbY#_TwSXfOrK0$<-zqLAZOiDqN*={?J{FL#=sSr07z!%eISe zBO=qy&&#k3QNeT>SYl9^bgHuvm$3#4sLeWqPes1wTQaosLqRoG`CvIpGF&bp3Y0Xn zUFP^Z80&7Q<9$?LpEA}vfP0%ebjo>d$A7etL?4&KI#21V2{sZRZx;b2yNP4zLr= zCW5PqUtJ-k!B~MNu~T}5!9W4D%9&~r?9O`<+FC#Q93_Z|wtRxhkz%?A6e|WSNh6Km zp=!8h@X&EG>_A;H>ghw1>S>t-OWVcUw75Q6FAW|#ihGag0!mWo^<76Jbq`Y1I25$z zu~g52=)92tjSg(ZrsYs6OS&d7HO!Fi&0HZ=`bUU(HLsDh6z>xv&I#+gUULF89Bad% zwQ~|73M)#{0EiMOWIw1dU9_S#3N`SJShq>cIyoD@yOl~SlekEIk}jvC(dy77&RDNn zh}HFX*J^<#a6())B<>(t1R%Ad2(rj+pdNBdt_(t|z~pgg!VYSQOs7z6^i;PfDa*?C zz!X#uH^+x}#-RiJOOL~&2r7-0Bl#Q0zdC?aC`O}NVA_*OmQv6pWvFFQ+6gfT9V~hpxu7yvWSw6y=DGuA<18{kCS!D{k$H z*7_z}^Y*`?c1m|9pSbY-$3AB)*Jg)AT4Bj7>dfKp4X;PLsFSoh{7i<#UXwN6m0Tmy zNrr+pwIHRhF_8!_1l5Vp`o3n64~xZkPZ21FgFSWn>Tyjyz02x`6V2 zA)WZ+&~J#N99^Q7CVCA!i7N%p@CV43utK@C8<)#9So8yajW%h7$9d1hh-^g6z}c&@Prh5>8{@ z7zzs?NriT^b6j3;1K~KO3QX3~%ws6oEC@##EzF^HB9vSa6N|Xc9pH)u-6<_y(%KSk zsE+b#t@7_8L}UHH=$SWM`cq@9w~gq4g^RA#uCmuM*5SUHr9dN4L1N`rgi&d(!An+2y1GiTHU}zcV}5q*sGD08p0yU_y6v<>Gpp!0n_S zHykZkLOGhPS(*S&EqD%(M0p@MOJ`Hm;;~KGEx3$u{ibZr!)<8?I5Y64%tpOljc?E5 zBK-I_`Zy&KPYQpXq~<~m^)zWih@p=*|0Ys*#Id6q6YjX6-Sw3;2B%z!uEt-3vm-h7 zxDbxojPG zz)pXkiRq@AQi_x=C{j@5iXsSATGn0I`|IZ65_%~MFVV#8V3ke|)$rNKKr#p6i~4fW zX2$kiUNmkf4iLn2W0!8)8!>s5iGXOJ`(M*rl&<9*5O7AdS22)*H~b?JM&wT$L0t)^ zrd29l5VBu@`S`xmc;rjTX~ZOaU`}@DG|P@$0%ft-om=0J;Jr<~XOvL|1i(s<3+RV# zbdrVWPl*;yTA;+rWQns|OJK7;@N-onDwY~OS3p0f4DZ; zcd?cZ4Gf}UvjW1T$v|ZqNFV~+Wa~FZEd8?C)+y_tAEx!s8e2>vx@t`5o&7-u01hu+tHl0sd4Z z(a#A$$bXeBDCf1xUZ72hIiZ*i&3axwqrhc^WR<*7M4$?a3V*K>j58XP_1BN8=&`~| zzXcV2IyPS`efT}c($g>(vgzGNeoIrZqE>bar-o0B)oA?m(f@%ad>D4t`*z= z$uuZW+}TwOp6X6kDz3mDr4-m9o+}0RV^)C-3Md6O>hXb3zn~P@xA#K%d>6J~;RDfI zC>1h_K;u1vkvWy*DC+BV@1oJTjZZY3kkZ0+Rts)v;UQ_EDYD-dE+am1wBLT3AGnd1 zNABn4o1e?*8=A9E0E%*(i!LC!CI%t(2bLTd1%o9*J$P(K+&lRQ??dl259mz%9 zNxV;9AKl@{l@cQO6^F82S5XEv@4b;Yy_b zFkZ(*Fvj6XXkabx*k#i_b@n2~pYFK0GLWUlY^#QJC!fvttw&SkwnUXeVs@;OaGGH! zGYs_}S-|VTYVj~V49@0RN@{5Fiw_1E9EB!42T-UZcacPRP{M)6eujn0K>01HyBI z3dql+uu%R}151?F-0_acCaz`Q9J?ZH=8+U?KbH)Gj5*EkXT$(U|eY3YBq+*QqcTxHT`$C+l>Qe1|Dj zyWKVcq&NX-bFcW**yZ!uD$bEYkUIbt;NT$IA}7E|Xbt375_ZS4bklkwZ?}94t+=QE z&}<*kU~kE9n4QSjeO^Dj0m5<-c(4I=){oXNZLA1Hg zBX&d@`6KPol6;HtUK|vvWQ72GCy>}`^I{QmZ07pygpczd8t(j5r!=m78J^DZ&;Te` zIAEmvkW=YBiY3dYP|iWId!;P_g!8@T;|l;s!M!3mfT@!XOKNYD1>5}nQ_^1cBzQZc;Qq>4iFsGqz57#3PFJT(`9xObo5L0VfTTOzbyFu$<>a)$42Ij23=8mZsUO+Tv0ikui&qGr^8lr@1el`0o=Ovao>Od5OmeGD3`)s>~y zDo;iZj}9^)5vm;6b%pZkRbM}Mz8AkBFN0I6ibDA5DUdPgtfqt~e(6ieFh zPmb6do4G_acN&gUaSl=#1P_XqdIdIiXQon7GG4miq7}f@PG=FW~y

!9jHe6BH|&zOv6`M?fWU70PycB5)(~3Z_%|@06!Le@h<}K2yMx9 zmZSi9N=otmaR9%xJ%GzjNXb`d18c({{2drSuN9I7#uYy(Qn=6P(4(u2;`76EWp?)i z{*V8w4fuc7OTf3|#P;h!4Ga89A83Jp31evk{zVFX0RK;qN&)}1>PCV8V7)!~7xIKz zJy11ef&Y`hc?aNsB+W2$T2LuzL-wm?Bv!>Q*fBt12Pdp^n5a|~m=P}jTO0*^lH4J&D{jB}a0|8CaQhm??WYU3pIFvP48wm+fB`QWg_HlF&ZvS2G{>feB$OO4da{DXk zZ5wjuri|kD-!gwmZvUyeQRHsa;P&Kh5Kox5BUMutxm%*}wV!Z%j60It{*?HdB)I*g z+YX3r+g3RuUIlK?313Ti(S@onu_NNdO}PE}RQXZj)}2P; z#O>>AC7s5O@Ie?FiF^64=Jw^P2Z|Vei_cptflG4x>rPD}hd+ng&$?BO18!f9GtvIJ z{mpm}GVI$ap5XRfxt=MasoeevQO1Yoi(l`4xc#EPwE_Q@9s<4{bNeqrjdtArD#p?V{D&y?f!lv~ zXbSj$rfwAYk1lQx{)2hKtoBq*S>V4EICu5m2mDW^nN)6n^VGzuC~iMoVMmAD{?13@ zC?MSaoYrc>?GLl6rEq(N2~Ul%rEvSN4~rv&aC-+0{3t@C(PSJUJ{WHy1aavVLL|BU zL#jmu;D=;)!0qRplmgxfZeJaKYiBG489L_ng*mO<{y$G7*Ei1XJL2^zF%HqSt>)Aa zLhm(ioM;XigNX#XHZs@wj&eH)ndLuhp-sH@99#S+5J8z-B-s7TCoc8 zjtuw0tO4zZlUzwxxI$OO+$3)v=|nX+3S5dgUy#2T9b%c=>??MKF4@aDuH#K#UyoxI ze+Zwb>!F)T<4OY09X^xu!mVrxK8US$bf&alt@z$z}Vb`A0QTd}(oH6k>6`P*W zobFaz-u!V;)!@Twe5{3}X&otQM7bz)R=M)a$-XpPTa5XFtBcL$*m;YWG-YnvUgylc zYN(>o+lUCpP-n1DQ9}*)duLC~UFFL!_pmgR)a(UYeCK#V+(n819Df+?t)3+BITr6) zxUvDgLaZKRk5T#MIwu{DHIp}UI?+zUp=2NqRtgY$3e2IW;7Lomrcb(5EbTsnY3l4x z$EC}LP-ITcuNY8Z1ClCc5HFwjAVF240fEyTT40W#YNp4U;<*1%$iJR|)r~`BbH}!3 zNVce(8;9h{K$MJSG%DqD*g)n`!fru4MDoQF9zNTWbC*As#1u=;1=F=DNeYuiC~&8F zaehO3cU!b4k%Gkn2}yQ%euFD3Y*WcoMu)fP2Xwa>#m^Rq>n@PofvEy9Q2G z5np$+N}}=A*zjW4f~7EPXT$9YWzoT?0+A!hpTNRIGS%LfW{ z(@u70#vZ%}~ah8mV(_ste72D|KKTw61& zWS&b85uRZ4XNI4`EDNaq>`_jV*cvc)l&>;+EhwxQLWL(L4g8S?gnD0GVm`kBh!Lax z^H3Al$xwW5GE<^VN;nx1b%ES|Wc4D7iP9(4DhYEc-;(USp}u}T7d^q*czdgAsfB27 zjkinF@?Xj;ogI?wikOqR2MM2btSZlqEpx0YJDANJABis_|l&j zewBCDN1x&~AH7$7fv8f^&OA>5jAmA-@Qo60k8`Uu?5g;34u_fjZ8HwT9<@_hcPkQS z$Ud8~$po{vv9G?V&1yX*BVx4%NZGD3)oK0$99zR*6QfZj92;9l^m+W}DX2K;!DOci zSCisWY@b7YyU@w_>RM}Cc@p|0rOI@g&yQoyNr6RB;lPYMluDk^?MkV1tQv+{VJVd) z25O+LcQi8|hxc}+4U#xo=+EdceK-97#D^mAidsZ}ri#ErFw{%7iXEH+$=_2@q(gzI z$c=3V*}!_pAnoB?MiuWZhTw5vY@(CgQEw~tWTLz!<}(%~e&y@y47^k)aN|SmQw}6v z7T5Y%keCRj!(L~pg2b=xL+j&A0Ww6+Xd#Vz(Mf^DBybQA{wIQ9Q}}@`7~pmcn(Xr* zV*M?>z>%!&Wejh@UZ`0=1;UQUcnbjL(_-tU0Wa{=ZdAH`8-R8uB5iH zUC32n!CYKPBMI!^M$yA8#&<@eWF_zxMhNB)oiG;W#%#FOfeL+{>qcUbphhaDf#mH_ZC zQGc{M?0D<0UvSv5s5-f(qW);Y(BLHdod#IAvJI)Kwc`=t8gDtg-n?T1iC z@uKgTza%gEOx;-fzcW(M{w+cK!8~E!da9=4`#)$;2io3K<7<*of86~0#Jnp}U^uk| z!P^~n+%pf>;)ox1oZGg_k?|^t!;X-Y4cXJ;BUOhT!>A%FvfsmwgN0IBl;fL=+v;}X z>W?I2(k#BDhaOOTiNg*^Tt|l;)4{qpo%znzR{haK31s%`QMx1vjTVd{t2HJyzmYB6 z#t%ClQ0xu+!HH@d>afGF4m&LNCWjrnqZ#}OkF}Z(Q8J@=HqfSZ;IiioO8@!8uq98SaM$*$lskVklV55V+&Z(PV;fiwe29^ zt1t(Kx67Ua`CqCV1^Jhs-X8KjJOSE{RZUrtzYGxX0P@eI8DKDZ&M|dDVpWvpW0XRS z4mBV5h2qdJnvdevYQijgS=CZBAL^W=iYl$=9N%`a#_ku*$9XjHqqxw8CgZs9DW(Id z2Y*S;$6r*7iiaK^+q3UE$K7a8l8~Lye9RBm!A4rufE{Z-&hFf*`H0?=T;Bu@`;k+Q zS6fT(bINhRHHq2&*_*m^fxNbxx_vivKY7YwpiC1vBzekF!GoVZ<+!ZlQorPs>LQJlt=9K2H2(W?(PQ{-u`^|U`&ZQ3<%NDOoZ24&e?n&hV=oeLtzWYKZ#K(0fS zc<_OQj$_oTdt%P2E6XSz!7#*Q48f%G%GOj#7mY*>u&`5&ZHrbjBGZ41M0{%)l9i^b zR6{gNl`gOJ<2PKnY`3JH%yyawc|)01CB|@d!gYAzN~LBna;lt0jv-1B^DN!5b@JD` z*`pVVRXNW-)jW{gTtvybFdOqTv+R!D#<}DpO4nm6$!gihSus5mG#7i&?en5r8`DIU zfr%BKt(D8447v_H<6Bs#Sfh(cZn@?8W*R>R^Ixb zXu3Qm7icFKqq9~Tb8GIMN|j6&DJ#S)XAJ3XZOG2Tm>4|Xi^thio0(G^_#xe?J+RE> z_+hHumAA%M+_KEZ$Cnv7wQIiQkLj&VM}6SWaK?tD%Z;kN+_uu-+N!TTP@lI!8dyOt zmpX>ACKC9bR);j1*?iumxxPn%k{-Gg$#jSA_)wd58wx=Tq$i*3)Sl_?G%le3!}&_* z$w#PIgW5BrYIZZZ3&|%XZ*<4%$x&zjgQgr|G~u%7G&2p`N~e)IQyh3m-R5YT9A*_W zF^rKEWh!54+tWByhgkRSUT7<{J|>%r(8MB9Awtac^(v|xmeF)vgkC69x#gL zsa_dHcc~0<>--TZ=~y@A2nEQv(ik~4iP;{IuRHcm{+b<4c(M$Vr&-BllTteYGWrD=vJO+hBL3|BbET1yd#b<=KN!|>$58CT*^)@p9z z@k+bk>u@pa{FHLcCg&Omb`V!?NYf7w$z@(%_}|m6U~xahurq!56Bg%rpznDxQWc= zY5;IBjDMH$@Av$h#=qP7cR&CB%0GhQ#+LJME&s56jHx;KG<8nIt*doTn53Q$Dk=3K zej<(XGL-cPtXtsEH}Ru#!}DmH$~R))$xq}ltJF7tR;51UCosVHHjAPl1eB}Y((AB!{?>ifIxa7972@VPIOJrPf1!eD2r60cY#&XW>vN{OEF5`pi#O+BI3hS!w# zc+-@gROmMKP<8Lp9^W*jTWAbb8|!$qaFChvg4^+)Khxz{<}#LPm8G=FHRvB(LYF|Y zT`Heo{Y0nH>_s!xfRjU&%N#w&?ZCc#^gLsYQycNROB?Ztr}Ql$aRq_BG0puBA=RA5 zs8GQK?Z)~E+N3%%2)ayv5S>W%cBgieSKi#xG(nrby11nQW*0AfPR{D|)(1rsG#+HM zKIo?&WVSvSpo?!C^X~r#9ddI3rHxoF86lm4hsp)6pxg zbvkyHA8i)RGko)Q>!I6ho>Jb2u7o-MpgTS)`;Xf!!EC19Q@Vy)6FF!pYZM0WPm8T~ zI<}Pe5&-a&HWS&_ESr~Z445a4sLF4aedRQ03^zIhsl=V;s4wqH)HNIg9q(v!mWc_H zBvGmk>2$Io`hH~{`N=~A7Xop>OCjmrUObRh2p_am;KlyH;TE_iEcjEiWQ6}R)3V?< zhq?kgW4>|5(BeXJC*EZLeO0Hl?M(BXiD_OXB1O94k_YGHtV&PZswrNTk+@Y8yeczs z+d93^M#LY|97^t{m~U+IJGS5aJJC{eD5ml;-{r}VJaqeSJ($3Z;+X#u&bZ`5N2?DR z%aFqSYKDNPZoV_kQFj&r0@1KJbc_@`mSQgo^(rJQXlls=k|m{CU#GFlSv8ZQY^CZ^wmBSKbXs5(KnSPR&wDvlAp$l6IS2nsrb@C}Bn0ZFg z9ZsXDimvFTU3Eu&*(aje(B?kQdU(xCdSiS=_>{R7-0G#xg)K;C&-V8&s*?=v4Z7o< zvajJDj(5s)z2*qAtZsG2(nVm#CJOiku)m4976HD)ZQPVYyc_65w&`6ouYcyV)9ps) zvu4*uN-zc}ZG&UWj8Exp5Bbze=Y>h~nv+eD(p)#HNIIEUom( z+HdGnAE@7}hl)b7nF!xT3 zb>k)0hq1Gt^RM!5o1);U&Y%4-^Wl=AEvG=*Gh8vsTqZJj?CFOlF5jd`M0Zg z=7=k#XfN|HN*$(~Gcss7^LYaQ3)F7&Z;y5|wu5(mA&&RL%)zFd&0teNh~w79dt!lI z5-(H4T!nFytTJ1olnGMCdJ}1+WLr64BszL>N_tColw9}qM8p4M?;vjS`mr{%efyz@gjy@!Wfy(fB&;*9e{zQ0gxQug3b zQNCWvS<|RzxgVJed#l^7%_uIAKgIHAqzEzCk}ku}x`3n3!kC%4gdJ3^UYfbY$h-qT z4#a-{m+d5XC2_H{?=m*>%wxM_acFj#Bl1eH^&IRJ9`9svdh4ZU)AB^iMX1Kc7|!4m z-WRL;XTB)lM(aDuzKI?tSW3APF!b&^|N3Z`8k@Krw>0OYCE&V6zL<>4#$J67g4Z)l zt5};YEt8cPIFZ|M4cGE)0l$jDh6XPGQi*KMe^jNGS$E60;}9qj^Q%HEFZdA+5%idN}UifsY8#h}Y z_+9b?C(z`CM3dQO5iLq1#cdn;)N15Qc^Voxz-pvtn?{aFG?JTaWY=wNdJ=EsuT~>B zQ9k^ry6&|C(#}AuVOw}~wCaK78J<8a)4zg@rsKpA`W2c24W5%9&9#NT|Cvk1H;x*tKpsyXv7QW<&V~kl z$z3?Z8d+Z2^kbkEA*P)YL+<8<29AmwiT^71Dg0-D9MI*4jV?0jP~PBv$04M+|n=-k6KWI{n_{PII6Tf~sGE_}dh zq?}Mz_w7>O$qwF?-&^8?v#W-53|0>a5!_kgBNxV~;GuD63zj}Mud!$%ACjPs4{wS$ z{0I$4H6Ap@A3U7=(xY#vFNr_#&->CxZ}O#ApqR13jc(KTP(g`fuWyRivE6s0@e$rp z|BxeI<5f)7xp{~in1rMnd-*7vXjSi%&XL^Sqtf^uV|~3($6v4Pr)EqnD6%W1jpT4I zqZ6!=9@v$sRo+5h+-6a}6Fo>^XXa$g8wTEr2nbAk|2bqYi@6TJvk(g-3PHrQxqp#G zLUY1yWt+u1UaFw^@L|&gCCl>19Oyg4Q@XlVwoZYip)%feBg<55Wn(ZT1?72dH%0pp z92yMksnoopo3A?tUp#CKR!UJR#SGL*^If*cfvq=xjHgk_F+%B!L`wm!KSfkE5PMx2 zw1`+yxY3dMsIZ6Sx((X@o_|ZUt6sl1&tq)y5~7#}iSv=4JIGA0Fe=A$tA@5o^=gYw z2nrrKm&!tcXN{FI2;QZgU;2<5tjwKKR1U9DQ?>d(Ow}neRZo${BA&_9td#FKuBa~X zBWV<8oA*gGdg&^(aO%=!7F8i!5h=Y`d$fU+<4=CAmY?XlzLUtG4h&TDBt8SINFgi2 ztS2Gh`>lKNsBC@TE%_d(exH}1ywiB!>v&1Vqg4)MJcM(R`2?PK#^L#8foD?zJ_zJ8 z)qK!E{VE0BE5G@<&}{=Cz2?(0YG|_vl)5m@(8JmCL2&flB<5UWwSB|SZu_sVGp|;o z+gS*rL(3?@A|Zn>$tQ(veEbzaB5VO#nZue)KcDx)2?m)1YMD;YSE?LSxs9}!@J)vK z9DpVJUEQ{xy{lNai??na=%?mSxP-^iSoVUH@tW#Wp6lM6XnHfo6Vk|<%a@Ajz{^iD zyf~6lf7VJheRq7_;q+CGRC8jXr_@fO=aSbjTZ}dG-8{%OLRO;xz*5bx+HZ@Y<3~3pc`<&ZQ8X_+<(y1PctP zPMh9MF0KJyvi`stA+OD#$WzkUS6H@Qm=M8T)_fgqV{!Cz)1nc zYOofA&CHX*D;2SlG#k4zALv_@#57bSrlBG+4IRmrC7V4?uA7XCb#9~QEdGhYSuZ_W zWL$RIXSj_)>9EGl5jiAu8iO*NMxoMX8=j2Dp#?$+bVc42eKLlk0vej3OQ4N3A#TK{ zXe`chy&Mp?kigQ`GmVk16t~awd&vV@hgm4wH#Z!6^=8#VG zkK(U9cNP=sx?}94tev{{n9~XAq2d>j&yh<40GW%XDHOh;hoi4NN*$iSina&!U+p(wY3|Hp?&pQ7t*CY!q@8gUu^GHTpKK)Rg+wlWG z%gYbpzHDJMQ+g2XLTQS+gByK^xUnThM{Do%1%W3r%+VFmYx!d|dmJl#mt*Wqr&K;X zarZ7=reB9n${aCHH@scOY1u<10ZA8Yl@gv^g(|f!{J_2Zz-qfOTGNRfmT;XY=?o>;Vi5>u>p$REqi1gm(zc=28o7vn>t z9+Ldcav{m~9bv&c9YN45l3`j~$&jITmht4PNCnh7se$jD%At#Kah@=lJK)Lk`1Ng`UF1^-=>1EY{Rcy(1@lv=bhzk7i#of^t~EAi zpQh=xy#&wGXkPX};{2Gh}6f=en_xPg%pFAo;;JDS5=krQ4OWeJnq1NA`d7$!EE z_)BT)`|<#-G77M<8M;v|1zbi>ez+IUsjn(GR;YSBv34g({*m0PiiV$rH}qudr>S)rXJP57?qr{uA;+EE>Z0yA1d1kXwnml})8nsKlgVO=&` zPZa<@@|hZxrxY)Z0b4xgh+>zyuu9}=X+C&xk3YF+ z?wrnklpE<=R78?)Dl4HD>`yfc8vZ&A4aXqOs*s%JZ}|xOIWaGKkvXY%=wh2OvbV>a zF~&=d%E27bEi8tQy!s;=g|-Sx>aMa@n_yf*O;R+iXGb|IcFIe ziOe4LojRw5ZzLTK_TPC<^D08oZ_eAH1Z}2PBi4B8N2IdHN#@C?V;6ESq3XBW1Vu%h^K((M4!k;7iLEfj^~U= z&DR)t9{MDXF&>(}l|}4((?)j0D`U+S1n%{Doq-h}aek6D^>AedEHS1zu$fOp+}Ou2 z0|%tjepzIXXm@oi5Vl!J*t3XiJGZ!?s?2a$bNN8=d_mMPT9UI*o(G=|E(iA z84ZQ8aJfh1t*rBTubY3WrbX08xo)PCT338xjZYG*sALpYyxmrKR^%ZO5uT7X?Q>y| ztrB92AF%B8-<4A$@$LxORX)%C(#FKDxi0)qNGbXIPJ_%I%D-OmU%5{F%ja6&Yw>@H z=W?Ie`6u!G^6%7uQtFG4~vsijUAzd+>MCKOa9OA ziS}5-er&--BV%~#z|-f4mkdt9b>$P0;8;61f#*mr{zW zb78S{c_JYY+w=A7G3QRf_tC6|h3`#2&DU$%^YsVTwZ->F_R`n!T0OlP2hVYZnohA*DHMgfVO@X zzHi28KF-$#-#7I84e>pP#(o{X?`;9!pW*=W*Wr7C_b2fENp{47?-TeAqYhiQJ+778 zUxx2x*I4)v=kM3B8owUj|NiFx1ip_vQ{nrczifl=(E$m3Uo=qR`z+q4$nkM}zxN$$ ze7_C8YyVE-`ymQKe;VIEd;T}UcjsvA?I1N1-NqYkqY=j0?35$%Z#~8j&vI@&?L3Iv zR1~UUO`H~pYT&-N)f4uLP`f6P;tosf<^5SuR5qY$Vh~+zA zdLPl0^@(2f%5wHHYX5~TR*CVB%h(uR{}(jW#zv`FVr+9ezA5kb%I=h6USnN}u^QHl zBKSXUW4D_#m?x;?Hg>sn@_!C` z)2R(!W7~iM_DYxSdw%NsuoAC2ZEp|(y&1WpnLfoa*IhO?z~C-g0d*IVb$hMi-akOHBUWjuugi zb}O{uskI(%t@Y48wY+bW%be*S#^Sh)bX+#yMF-&`;j$49pMj>XqWtwVRBvWy6h53D zrz(6VrfA~y(AWhjob%OZEV)iC>Q7_QBhOieSgC5GA4P@hKW~o;cdY&8sBkWI+M&Ya z{h-1dkG4aFDL;)0f1*yusPLcW4pBjr4y?s1YyK~x!m)+_6)H#o==P`}r#L@~3Xf8t zEh?z^yB(o|LIj&agqSus6{PQP1?dO&0qLP{N6#c@^;(Q+hNM=yr?t}E`&1ef$AiJF z%szN%y?308i+UeB-o zF+9MM8kWFcSON*Rys(6mIRx^;5{_dW(}^1`4+(<-OX%)3R_Z%8Snp9z?vSYaxjI|{ z!?s(9Bw|1GG{FVZo5@?WziZ$N@!TnxhiT8eOPCSI_qsOpO^-HYgKk^nfkk+2-}6(i z_gRnCi6_Y;KI#B5UgMb@H^3ykw!P%9@1r|@@M=T9rpW}G_?N;B-LbQkPdq5q)N!J) z1I%D;Iy^&t6sDoGpR|4N?bD>&h*7k1dJ*P}dXi`K@+zJ|N(678)r_+()9^aJ^lHPu zjP_ODFH}n~4OQ*oy4GrKxQ41$Lhz4Xxh$SHm1UH`GT!{vsB-r|6sr7LE&5NR%60$x zg{b1Nl!+>^`;1dG>uk{^=0B`23k;_~? z@S-~O^B;up$p+(Dxx*U7TN*vz%!%mcEP0?esvo{2JJ|0U0p1qJ5uzqE-mCwTQ@?Fm zW=PU1_k5&Fs_Mmo7vvl-&37$(2@Z*QG{$S*%sJVRZ0rnz7ou2nw#=3juTEO! zNpeTTEBOizk=U8w6*@fKX&i`@T_@Y2E{)<7Yh_;m1hgP#))XC*=`?JS1Jw69Yc$3# zWfQ}Bp-PTqB^bx_fG=N-t;^(GbL4n)QXY**R^pFtw}fRjVC}8(rkl@fudLg#3*Fn#1EvB znl+puH~UU7|1HPf#6IeYfhLce2THi2r8Cf6?`p zu(m6GnLuL(MuMQTVI$R{c|(;sb}1hoff7)w?8{^nt`!xce`=&RH)5D$UYtirJ*RP& z_ROkSlcQdneIK91Z34(K4g^AojT2vg;s#p-z~sx<%V{o-cm81GBk6m%r%$f#&I%p-~6M9QZV^b7_OugK~_$#itRW5QM@j>>m7Qi}I!C*cCY>qk6Yc zPB*7PXFiG^Wc;8#v&Qxww`?Z1vfm@`>pp3zFh-HtPucgq@tC4cZwmzcj8o9RLCo69yB$)e=_q5E*uSs%pP^2d zEdT$TIvr5*KTn++kNwru>HJZOI_-Qhg*rVE{7tD-A9|OdPQP2GsM8>RewsQ>eBd{y zP7Be${T9?|X1yA~eyGzk_wR=~T}`zV>J-4_(4tNyy%lvjLR5GX#c zbvj!h;Ac>$3{;uzsnY_ebBWPl$xgK%Y?gLF(mz0Z2IJ{M|HvIyVW737bqStmy791>M|#au zHb{o)gbX!-8;$`l&C|^(d2kIaD47ph0&(eS5jT3{;5_wRb6B>Aym00)LLnj8ks7mA zda~^CVKKyUeM<{IC1R5~IM;&+^{6F6RUpEV<8tggM5uA}#A2Zw>mfqjh6r_auBUV~ z2cx*dh!mwK#i(7_ij%Aa9dUTWg)|!)csDvZoNz0VrJho<)HQX+*ncWfYKup!AAygr zdpsNW819W;BdS%Ns!ECboxhq|b3c=5MEpw%QtQ-%!3jYstLITds=h*yDilHL6`26y zLlBUaz_pxMWBFA@0~MrXj|)`&5U4T}0+o1@KQKa(EcfC#$qIivL+DjW4PulkXo*o? zbJBcbJ^H1}c&p06QsvJ`P2u`vl`ArPi#_CFH;E*$BYeemM2n#<9if^3$W4j(RHc^= zMjmTK9(z@rGnP3PnT!mH2Kny{n+!N1mEj!cR3b4DSM zW~DC++cXi(1P}}xHwtVjeXJ8!^({j?kq6~j1{S%RCjvNyD*-*gPKjThr1&*|sp_QE z_DxO5j{Y&x>!glTqQH{l`yxhmD{kKXQPHf@W2iZ{YP0XA_5CzDETz$76OH9W1UwUOupXHwIztM-B?g`H22gwjZR9O^B4|Ya6EZV!2RfHH0Zp&{2?Bb0NDcpjSQrKR`ea zOlfpq0@`nmBA{=eto$(on$;^oK;PvGiu(i={$D4cy%!5{`tJzn(~7U!7cq%Hhk(w8 z-UBO)1RaW0)o1 zi>PV&X-(vd>`3-Embd@C?^rN=voB(dGUfY@<;))&3r6Xe!fGdtV=&p_g(or!J%;0Q zhr>9+8pg3da~Rw2YaPZ7Si~iUbSj)uuH%*gmM4e0xi9WWqHgX^y}2j#=KlCi>KQmP z_8z9;pg~N7Y*x|OYVJmaEPm=m3?hxMTAH~)psfYwEr$=1U#A{A# zCXwoqMzb;(Qk;07t0mH{if`QoMIhO*R6Oh1sxd;!p-rDUgyJ`_J}R(n&u6(fxN@yu zQu=jMH!8em8G8I^Pl>L6Sir3U+x~$ke0Ol7Uruvun(+~~1@Bksp9@mu?lVo4T6}PPf|8T-XKQl2p;PbY z9Yy{w4FPTOISN0s-#L;XLMhWTTqZ(hWDlcBPS0j_qo!xQBUOW>QTvi}>} z&;l*5Al1sEMJiGer2=XMq=AIKKmw?P;8H*t5y!!WCV)!Il2&*=ql^oKjx#dOqBEm{ zJ8qCtq%AN|7NNC3!37iJQox}_ko>>r-1o9ImEbtP|L^zz|NKbv-hJ=gd+xpGp6#A{ zjw=HRW<%5_*RIaXw0RZ~saXTJG9O~xQwCc7g(kCMsvtY!Oe)+K0oD=-4_dy16cqNg@>&NQ1kWu}~W6bC%b>Z8;H zId5}xcYA5w&GhB=iSDP(Fjdf{xcw{zI|UpM@ra+E#7+V!)BAa81Z_&!XjAmc;hfU1 z57%*?DN7_tDU-AnqmBrz8QP@)LBX224Nn1Dap-%dD{s7%=$h${G3PZ?^K!(RS;IHH zX7aE*5=~OhK?#~{>a4>xG`wW)6Xawt+SiwiZHOa1S?gw%Z z0AF@LKu+qXz+mYu&+rofJb#Du?!ohKQ>pD)7AmZK}p9d3IOa&7C8O6(%pv;E0aG8WVp9t??bEL0Nna; zAb(=E`;ei-Dc+2btb5$YFLdUpMLF){xz5q<;}^Kbz#LMG&K^t0$f{TQ$I(Jnm##!N z^SuIIuYeZ@CQA!GarVK-u8Z)^Mtp;8F&^UwxKPu|8`j|CBxzh-fCBITnG4P8ia(<+ z(tz8`(<^OCJLP-#@xH`hj1Ti0O0~PGPX`!kF2TnZ$$H$p=(r&%Gim?wC*C9US4ty8U;lcGc`<|SI z9x3%^#PFp5%4=MdgTC}1EZ|edNinI13_ua~9pSS}oZUxC~5P zzjvL3L)!&!A;(l*UL79JAArcQ%7#GS@*3PpORu0=MuMt3^ZV3nUfuk3m_XoCiI>d5 z4S+t)suW?v)sb#hZqFH1e;k7sVPKC)7gv}SYwi&#Gb6*)F6oFgrTPeB!#et*CI2W?$JmHh zauo7MeY*KLqVkeMCO-1Ru7gw?{c!HtfFxSQYWNGOdSb04)ksSqG6c$xnEvckl1G zHhV1TsNy&V*Z&MXE9r*>h|(i|dS*IFYgO`e0AN+^90xfblF;j%zUxI`r=+MI;&X!++h8)MY(-tgLS1CL5yN%#=0xD(UT@;yhqnO zibpV%OV@mkj@0}1S(ny(8%n(O6)zg^bo}_c#l3*>h@N9dL|9W>P?oGoQvXyFXw*g?}iH=^O9O+BhAVFAkQ;E!nno}kk7G=>nfQ$>EX7EH=cxWd*ODn-mKL@>5Wukv0xkQMtbH)34!y?77N z2MkrTAzG3GL?z=cT21m(Dqk@t^SkTwfpuH!u^58Q^}T^nj+_AEPv4%it{>hvD<3Sx z4{T?|AtD4-*bRBfm`x4RW4jPYM5(jn)tQxQb8{UnA#-z+|7{eTaTXkl%z%_=75?vV ziVqRVXrfDzcVHRfX?)-jaEasb z6_2U+dD4@&`|G{+-_(EO?7OdiUmc!%8)kWxO(+8LAzEgAMFwTyU1zS+rUf^^k>e{kzFX423rRyuItA10X zpBkIfUwd7ti;Mm>jeY{2UM=p259>kVCt(#qC@}s3Bz_K|eaULyt9SemY?!rLyh-n2 zgmUYB14r4e^^AEG_=cqc9N0! z>la*V{PwRT{|NqCpv8e0h}{6@uLul*2w{j36=Jx=Z#hbj*Z0aphyd8_`(W^KG^hX4 zHU0Y|%8lT+z45Ovt|#KR7naJ?_{aB}4tV_pim%`?E`$6)Qo7o+1)fa5!kw9qeXm8f$IWOo(m zD`}OOywJP;KOy>$u9oT`{qUyX1UHNjeQkaZ@_N~1@4*WuB9h$q{WZ8im&+~8MpLRO6* ztw$FyWE45aGoTT|oQga?VDDkX@pBZn>55bVSE-45X za1syu524aD+W$fHyy3ZsC>Y#MK{RZN6$ZWmXW==vBcWU)Kq6kqU-&Le}ov z5y->qa`aAiLnpB_gAp#m?%2d<5kk|q_iqRjH9Z+av{Lq1pOvT6XyGKQ3nyA{N0h4) z1d1q0qFE(L%o3iMi_z-uu`epC`QV|1@G??J@`fDpmaTjT5|8jl0}!flY=xK!J?>{z zEa4mSM068YOLSw=Y1NX2e-s^^9-)>j)zp$_F?o~&66@o95Fo`Mw34%;w323knD14r zFJX|TWBh(*z2xW9Np4Fbon)YY3|M2LI?3huhINuWT(r_jGP&@_bdqDpHKeBLI>}m1 zCpoO?B(tHDoDw<-MbL@RNnW4NI>~!HIf?5eUzb8BS<5=fR8)PL>&6(JWNmAmWGq0` zbP@|+YC6eQC?icmCxJ(z&`Bcnu8=-b1bw8G&hkneqwntnnORN#t)`FoQf~!Jx+c=# z8U+0R?hir}!DezCO~m)uuYU*%ox`E&ASW~(#IZV32dReEF*~G#G_Ve0j?qD?XA2$V zsIG%JG##WUQ5_@*9ppLSxTb@oAWTtNq!J0tKbbz(oH7LgV| z305tHYCCig7^LW6z;>Lz)6|enB{-1fs6`~_iBLnf8+MQoElU?er<%xmNI5(JBlVDG zKQ^^u^bk_7A`}sj0HKI%G(ZtMfTzcxu9yx9RirSiiWHJ6VhO1tc(FO8ixld*2ud+- z@syE@kl-sVeu>r-DI)|6X(PX*he8`!9I1`Cb#3IK*4jue0j>=krA+(Lfs;HBf!#zY zBp|m78*%6#G4vZ}E!9Vo^pVT@hxL*EbRE)1mWA|@WoMv|kggX;A2|obtdDfXg&2Aq zwu_^XEJiR!Qb-oBXN3e|wV{z5j?zd9+tx^aL4$4D?%tEsS{oTg>i;B`S;Y3 z&C-$@Qb(#;9jS{@M_!6hN1zz^PlUA*XOuSLh_8(-7GuKgvrj6XlrN&#IA+hJDXd^jrBtXoDH0T=3(4hWH*Yxih zl(&Npaz6fb$MyA^KJr_v7rKuYwikWX0s#*ZPbl&Uq~F~*;Q$HJ_~ma~OJyrHsjPj! zD5>mdGg1q}RvayrO#qwHrLuo6Z&NCJE81EtZbQ~$z7^Kuhsau-hJUaYYgS@@s#%G( z4-ddAy|slHk?i7_h<74B0hx#?f7fZmu?xvWoQGlg6TV?-{ux}5{vd3`IE_{p=#J+L zxY#ybGZMqg-KLxywh+(c$GS8YvJlIQO5pJyX(IlhAEQ!GHxcI+vp9CiiZIfILKz|| zTG&LK8f7A$0$kHf#1O||B90ZuLMGy?LMGz(kzEMl7#YOh7Ts2@5#%`h)B23^S1Z6fv6krGIHG@OhYs))1|Lj06s+E@h z9WdGfS6)jALXBdV`LjT0{L+!hqc&v&0$19UQXCAO0(ZVC*$!m}jJd8pp~D8}M(ps- zKzg6$;Jh%y=Z&6*o? zb@an|FBnJ#>p7b2>@jBTDBQW zdb8Z|7OXUcl1=B@j$;P=hfo5yVhqeF3=G6g1Ybs!Lnv!P#a2DOLTJWNw zK^~4~VNAw}ClcO#{_Am}O;8CI(}y&PHut_DqXXc6m@i1jG@r^wVA)XwOveFY%;{#?fZ!LM;esiZ z&%~(06~pu~1uK^gO*m1AX-&hDpe6uilHbMyFR*(4`QeEri4VAq40p}-a&KVnxPm|m zR#(B=e)!C+ytNQNut5{&iLgQ2OedtrCW1@JbSxUwWWU_JUt6xn{Pq}e?|F!O4l+JF zV0^X(w_sZ+AAvv)1SWv60I(!m)#w8JB&}uJv!V^^DJ&59p;qIFIyt;jRNX&#ZPNHX zvSE{*Owc6=xQZpX)owaP=!V$)FhJvHbO9(G8K7M-Kp%qvdLyNp_sV&+Ug2AAE!%+r z^q!Qf@oJ{sP!+h5o=U3_k-mjTcNIn#I6p2E&fC~mYbd?cZmLJim4Qo8n&wdM=Cwm{ zmqD^XEx9xaXg(a58z0xU_RQ3X1!0Xc-%IKN?XW~hJGK|Ow=v;hV zy$=8+%OQI-8F_Vkv>ewUEpI1_^q2HrV*uyBD{!h5W?`;x_G`i_jSe|y5#X9(y6e~x&ow`1WvfqL~{x~6~Mqx?R|hrhwUdAP2^@AHry#{odP*X2gtXk6_P z5~8qUKaaZv?ARXIVxla^Fu#Uu)38RsH9yLZZByq?gB_cEPBde&|2J6Ev9Jt_gk|{I z49kxhuy;b3hynvvp?C)DTY88-Y6k4gumM|h&}++rosEnHsrZ;O0)xpS@Bz}TRKqxc zqp=wue+AjGi>yi%qv5dRCjWn%(hTQ0W#TT5tN#Yxz-P{L@pk6JF#L5eZ7xXbF?lyx&$$*AI4N!;dp9BFD2v-yUVj7k2Gk}-iV zYGNwYwm+UV>~Gt&Uuh+pk&N-1s(_~8H)!1thh=>ajcRtL*@*dw;4B{O({!nF>b{# zG>;k5dve>X%xP3tJsv29rQ(Wgw|0Qp>=3l++1iK;~_aMfYwo{X&qN{vzofKnCzu2 zoHBf*b#&3eBCTWbBzmrC9qu`}A+6&fE{)PUp5m|cTL0Om*5UpoYaO$obol1ubQx&{FotXeo8do)WdP+Ri#LcBf)lCxJPqAu`nGPSDOR;9ir$+zPeQb82d@S^l zyYSD9Yx22y3A)MkwB~TH>jT1pMDu@EZ^*P_kFktmFCqR2?AxHoj%xLxg(z@)8{I7# z(h^SxdI)cmk0|UWcJzS#8K0w2OX3cvN7XG1jyH^Jr8P!9_NVhCAG*iGGm z#kpQuvJ(8(ib&uHg5u0g_gK<`rdotMsgg#m$C+xxX;H4AS}bt&Q+nni37k}Z9G{py z-8z6n)+%Q!8~s#(YW)wVkww~>n?r5pio@iH$>X4hCTv$d?v>m}@vgLLE7HN{W(GHD zE#H!xuGHpLo0eb{_)QREv?Qppgi{QpB*N%-&v{ja{*@?ti#0R=R;_0DCeUm1K2!*u?528{2b7BX zienX#&ZB;^P}FULI~zx3Qu(jO^aZomSKWH)smipSRvd-O+a|rW8Gq}2L9Z)4&>!)V zxNUOtYryVPjA4=OiZH{#XaQ4W9lOpgRB`ejSqQM_tk*AG=d8+ZbKXXFo7-qLHP7k2 zuMYk(9vEanjD|wYc{dN^@B4BDQKBc2IcEdjlH5sHef#Rnh?5!glNk+KU}K4{s-|f`UIUf2_u1c1u(ChVFXMjaOP4YSVg8i(vrJyJ=)_m1+Avt zgtk^`)DglJ;I=&%dDoGW0M7sIl#U9yC+;yIL@q5~TyHg0K;o`OY^L|nJp}$L%PqsN zK`Q$j>a;5JbKxuM%(eKR!L4$Hd@&50pvTlIXGyD?EQYP9yjr{!8aaz0?JFG&2>x91_pY!`R>i#%gTf zU|BeG`(ctp@h6@|Ivmg)>_+FCtIBdoxWem6it9-tVr3_B%>lls%X(Z2GZJ)OQXZtp zs+J~1IZ&-DWpxFGr;w*t!EA=}a+c&AyC*%(VLIsSsy>-U)gn1+5BK-U&W?d@rc+WG zg}Mq>DJ@T%n_HAUfe-B-@tRp}N0Gu1ajIRp*VQ%Oi&OYGGKq=qDwX{b*A6wG-)ZNv zP%f~FFLNx2nt7E{YsqU;HddT!*Sz1|lDdXa6k8kyYM)oQ2ILar5a!^A7SpUJrSdG)K+|DS;PGg!#t%=(WB5>;5TfP_`8FjNKTOlo zNc>a`gi|TFti~mhK;$G9z-%uthikbXGPWRrN_+pWaibg|niL{^rMG#~FDFX>hbjv^ zs4dF&U`?0?>y%d6FReOaK~hx0nt|}U1_L5kmF!kXnnn$xk3cv(kQ9ejXx`)WZxwY! zAe^60SYhA@ve2R}yEsJ(^x{5HrLRd zG>pnE1Rkv+Ix)}+JXFIqXI23$S}ZjF1MwynMjn1d##owoTWcW9&C8D~{o9ci#J!TAA+ zJkN16u~xaWhIDBK4wqP4ig8M8_$63HV6e3v!C>Eo7p+gZ>W3gSb!!W$>lP!a@RwHes|NAv zU+C5M>D4KrS0T2*>vcn>IF=o0Nc90_ED1@rkH?d213y8s{ToQ?8A`UqgrdYuDxkIa zWCD`yNwjz7lI=Q{CL@GtE&z=^W6AdMNXeFDjxbeCP_n&)VTq7zxj;y^Bz_9A9+qsc ziYwVp4@tI*KgUPWl21Iz_5j|Bk!<1g$(czTUnVc4|1U(`zo+mDoP3uq;-(Hct%!Sa z_Ww;0_gq2=7I7ED2_|NueaoQdCMM#}$H#4oxbvtHO~m~*u77S3_wT4PLd5+YZhwM^ zI}@M95phXg4U4$R@n6b`dZ{b!B1GKtF*a?AxbM{dsEA8>E6+g0Ra$;b!tE&}+$@rC zDFigJMZrm1i?|QO6>*Ux=X4_OH<2Rl=(a`NTF694mkAMM6A;%#^dnKn!AKgWuBEr_S6d? z*OCqODeYIcrzVj+i?T=X`w#p(f`1o6uBGQs#<8bngHG7hQk=m>KKB5u*_n)T}R10t@P5@})wOV!Oh*$Aj28zf@LlD6j=#OR_>U@WDfBJyZ@8Y=z4! zr6ofl^B_%=9TKh`F%H!kaHMdy3pz|lNeEZ1C#n#F@Q4iMq`h6a2$k6k`|Qf4Hup)` zHZO+Mh1i4b5NXh%eCNLex8Q~wAo1E&a!MU7vss41auyMjG2tBY;~z@yT>4I01x@#c z967j&+g9gfBew<;W!O!1c&iHghdmI5pRB2$IpNDTIM>D|+y=V+*;7cVFgD7{PC2goG5$Tp%y4fL1?|wgmv>c3At!#jA zVI5giCMLQ51_P)6X02Nkn*{dwHGrc421UeU{ea?PG`>uKA*nLPz>Ovi;E-8%C7VWR z_N)RHcQsgi!`%}I!m`CcN;1r1_bkRT3r{yXYYfw@(TJ+@Yhqlv5StZtpeHI2Pjv)# zwFdD$47V~BuUOysGF@QTkwaqC+LDzIL3K%|oWG_4sQu?bocn zzlALaN~v|4E)sv2MyTU+Aq2P2vP;BXmB%45ROS>?zPDQ{=o#i_YPe?Mh5e0 zhgw)*SMTN}1(0Z?T2_&Gd`3UuNSawWCAl9Yf}wl?M*-AS?dzIN_-6IWNLk|7E zK)7QSx}lPyM2y7@_#efz(eycByTX~@WeAmlQJuBIu8x~PiPN>j z3>jNK#C9Q!xmE1Qi;r+%8pNV(JPq>n^-Lp?Bffxg#GBuv=QM?O#X}k-hH5fxYAXkA zk_7>5Yi#NoGV2n2FzedY`KdYMJ%cZ^nT|QTjZ(`lTT0)<#+ySX+fIRVaV?eAQKP{P z^wHC{W`u^_6<9mg^9aAJ8t|rwU#l8m-_3wyvxV)koiXh66qz)rR-4*>>`=>PX~m^5 zTQ41}-f~$#a`OR#4S(SnPs79_;Jbv$_N83(LvXxj{$)V5MinV+7iZD;=YYi9`nQ*s zjG?I&Pu9>A4KzYTfX8?US6sOISKCz{2ABkwim?eu`rGs--oo~{4aTkV9avI8`PDRs zWUXH#et?~zR<~h}w6oxtv0vbh_as0uSHWF+qdoZwscZ~N!6(7`q$StjdW;7tY)_fI5>$L1HEf7xYfGde>Po{Ulph&XvV>U58Cj{dTai!9! zNGCEB*{66w{s8_remxy=6&##CW?oG-z-O99K=c(?SV8bwF)(-5x+|3}<5s3j!z9l1 zyK$2bkCdwr)tCYLk}yu|uAf45JCs9B4ygi^LMIWWGm$2%FOG4*rJSIt2R)^ZLLk8Q zKnZ3Z%g4F~9_u`5G)ut1J(#6am>UY83|qLEuV~09$^j+wEVE$sgDLqIbs_w+E`?lY)Y*|enR5FSRoe`W1hZY4hn*UHg4dtt*TF0`${;tF zKt9A`SKAZID=rnp6iAyCm<_q4D9J(C(ld@)VK_+l7q82wNhp^B31!IjSiT`v3<35Hiq+k>ibgW=3 zpsFJkj5G#ZC>U!4trUzFdY^==#ih9V_Y{oVv~KC*9pEUys>6b21%o^+Awt6glN1do z7%u=ENYZ6w9bXt<)2M-fa7LQO?@;G|Qq#C3O4FDHu-iI=7E&|P2&Dh0nlbQe7Q6Pt zO;k9SczWq-Mm4J$WDyCe8RBqel$znXnP?HD&~0(ljCq)?ST(~%G(%T2yuN=BMSzqR zRx?1*NzFh>l$x;vFKTLr7vf#DP%|zCi0OAj`WNpjEF+d@IueHm+_q&jaD_d zOOdJuoel(&$5%C`k|bS)&ayS^THLX!K}QoqszxD7byZ_1u75^Vg91Zhg`%}YRgHTA z0MIN#)o4%PMW`C24@AE~u^1!YAmt=cRU?Vs)m4q7grluhjayjFfR$l+6^?i!c}pQq zeX^yHzWguOGg!x1UNzQ}(ifnR-3DO%ubyG84(Am5x%CXs48)%1&JWAuy;&@JfM3;11+e*>Ur?9%j%*EBsN z){n;hRkoRf3z{nqrI{CPOvbWTQ(<^=Wg=4woC#rZ8YDc&Vg0=3AUp~nmcV7r2nC7* z2%h~qo$Jd{jmmb)2vSmQ#@Q2DHO|H@h8+?8nqI>LCFrZ@Ona;mA^0uuFyDNgc3ks; zYa@ps1-8EopEyZ*p}Ej!Mb*`o9GfnB>SA<}r&m!?!fXj2nO*4B&Z& zU)UBk!^?0hX1Funpc!sVk2Ax5?iIGeR*a9B;U#>-Gu$#Sc7_k31P!lS{UbBHet!(4 zRijdXyy7Tc+=-4J8+B|-utFJ|5*V%~=hqMd3~q%0gE#@#;uzfqbB07nyD~blw^mH&)02ObXs|~8CSFS3ANrr@j1!+}<*riBH zsw(U$esaW5E?7ixW2!-XurU=PJmP5<{^;xCUBYEvPikQfqi_cVNX>!fT~m#RXpEVxmbo1@LSfEEV%;P_m6fjjOihxi#W?PoAj zXo80BOa?6K6CVsK0`tS;sK=1)C&<$U4pu4c(~pf)hcy8O?t?pf6fw7XmMjGll3k9h zYPcknG{Z3%2Zn4x1e{^-aC?U)yt2mpemi>EGo;JQL=^_KL;ZG-@%6E2Mk(^Dqq>1s zp66}}x-Jbn8-x3=X_BQ^$7UjIcHq+d8u+XevS6gI@8-JDe?F>IM`hy6OiGF4sKo>E zZioCDE!C!Z(Mf9A)gOK6HH|yvK7efJ2ohjbUzmnRHs!gQ_(3P=&Wui!)wsqUU8c5Y z3M?&|iYAEvZg-v`fC$1a34 z8sXq1KQ+{2($#CQ=~LYTn+k8eT(XZi7K%0eM-g;K{$7tl_dovR4Cs9XWhRg zg{7pL@@Cij-ol+#5nZTSLS3N$fV%ynOug1>p~Ywe!8r`NO^qCgu5oHXyyg1Pg#QEF zJG$QB0a_Q=PXI4m&@IW;H^1Q>bQH-diMDiOMmRxy-zFo((zPk4Fe{gZ8#2QB3Nhgw z>Il_mn?9u*;#CEan0x4yOjka%es&${fZaXX8y^S6SRat`cdVhe=_tbu-JI89Cubu> z`{@khf!prSyfe zlrWo@>CNUTV!2?Y!YT*7(5n=7QwlSc!fd6mr&5@MMMiMQ$_Viy5wg70wqDcL9uI>~ zVbaXO(YXkO-b*=(q3}(mb9z;y1wp|9xG6c&kWdyMuyBp~byUZKE-7Pk10%tr9>ly{ zonONXhUW!K2BF(2OVpctLQ^XQvuFaSQLRvaiBCn)tr4y0R{YVxFert&KRObj=WSA? z3BVCSzMJe)#exD^otkY|?|`q2u@OhTn-m)S$hVo zz@sR6k}_UBDAPg)I$T_c3qAbDxqQRY#>4kUg#V~LrO9Kj=RF&BmTB+$`L0n{n59s~+|@57XvF2BYO z>GEIFrplMeQ z!?1WVdJdrzk z$8v>1(X`Vu5PikR33K2CUQ`MTltS1Rj2Asmyh9mpR|`@Qz9qz-LAcr`8dD5yW6bG@ zMgqWvx|^sH6(#4l*+3*~J{?({pVW2_+g=mVW(H5jbr@V-A-fMoBzVu9Qq820ftBA+ z3fbMjD_`=XB-5V6Y~+8_E@_O~^8f|N11aq!s~yHD=?DBiU?0*mcrEIXj@KtcF#eaV z;%mf^_FIMy`4_B1Quz|RK@r17c`O4cK9`-@T#E1YAjqzQQ=CIS#Csz>-M;39iujK1 zYOFwY_$w%um0mC4$G7(D6G6++S-XmJ$w9!T>|2*q0Ql~qI@F9ZelrE0DwVe2KV6^V z^t8p$q!^tjhb@bq!f+W#MtRVy7;ohQ<2d}-)k~_)iw*^0>#5ZOq|Gu9yB8t&SOyUn<(G9p7tk{55GyXT=5)ObBr;K}IDcNq@8 z%Q~Cyvc_}e83p`fyiwfU#6MX#(+{%rQDus;i0?8E^IgUyzRUWG@3OS-#_)H>>HL%N zOa95ao!>NW6}8;KcNv>REw}Pr)<#i__T4Y|JL4?=$+(+;vhLwGjeixj+{bqre-yRc z#dleh{YF-@wC|?ycgDH=lQEBfvhK%E71@zVbJdNcvNBgY!-=ajjR=OWl)3#xQTXER zWvD=V57KAoO8-_Z)UMP*?c4ChlJK`owSI9uEJ#Q(vHn3cW##W`ALgUy7tg^X-9b8*f<9#rfK>~EpDe#QRxKTc?__8CSKx|h& zUi1mAeYxTjoM9i8X6@sve~<&1-n(-)N6dh(3EQIi$cUNtepMkqTyX} zO}IHbmnt>}*+es}&exTI3RbGde^E(=uOp<1+517z_Tk?5oexhv#(ERRnc!qcun-$Y zFhwt7DL$#00k7AR!gd-e0>0fq0Kz_>3WJHujum%!5G_2BAUZ_|6W()Jn5f1=I;}8) ztWr;7)14|*Gx`ENbpmQn-wqLh<%6Q&L8dhXM)|RMokG@WXBXdnUugC+@n$8UnH~X6 zs(|Kl0nOD3LemM*P>V%=;;?k(v*3b-FM&mCj6lvKOR&pfbY9Hms^mUybaqiHjxGz< zxW0EENM?!6_l|gzp1K;u$I)z1IbmK)xC42u<1<7)FFb)+fo}TJRhXQXRB9NM7a=yu z5Y}1kv726O2e&}?H-_TJff3JDVJe|q0#k*Ut{T64o1k)GQwHZ7RO3F} z+LZR@brg4tTXdzbAt-5|XQ;CynJBu0X9PY)b<<+2TsmCN}7`gWb1|-vSH2-W1Xw7Pd*gJx|y6E zJ?r~{3?DWo8`pLK)&A5W1v@IjuTlJ3(pm(xP}Dmqe^N74*I&I zDB?cOE3`8OlyDg(!$?_-tknD)QX^VdIS=_gs zn8QT+_UCMULd>={C*-tyYd>t@{N)Q3Q=Qkqm$rlZK)YZCNZ`j}`!Cfs;2l~MVlhasN-oNDJ0%9Z4#C=hk%5ic0VILj z{S|Ek`ZmJR3m^V|NNC_2h}!lbhkT;8FJH=-R!2ys4g7Uo`IDP4SBVUKe9jg!x!LV zEbj@V2m9B2E<95im$Zdc+$rC?BsEN}8wYT2c!{KmB~sRfd-Dh~&?eHGqO-*k5z$En ziEZnehI!Ff#M>WEebL~YLQBH5AkB4~Ix3gQ>pd`5VAXe2M`7;>hfyGeBxu{B4OBhb0Wev+FX8Sj3m`LIR*krMQJ=X0_Hnb`5QSbUY_AiJ z=R_gTvBtyh&g4;<1GGqFR0=^H3B5&+7Xl>NG{SWiI_zGM8+2LFQSK!A=s?rtnB5*! zEv75qwFRMvNbIiC3t5K}wKAh|4z@`9E)@MV@u7XpEPqQ7q5Tu?dCc|MlgGHMSPCNpE5v zuex)2$>pepwB(!vFmvV z;Z_$~6HdY*aC83ySO@4jWnhF<8{N3Mb>knU^LXsbPi#D10d>={NJDKqP)Oy##WWz- z)6!JQDvQ{Fhv9+YRoIM+%!RQfc%Rh=wF|7Qx~}+YG@`7D2+I%l$(R3jTx8&iURx<1HcX z54mW(J(jmSd%69F*+%z)RM%%Xlu6=ye#6j0dG4jK1_ttIPZOPE*6r-Eu?2ZWhpX@* zfGuNrUu@9sg%suUeR~qwo*9f7S$~4!f_K{q^Ex5xUwGc5G%N$8OKDh!crS?~>!<6( z`0J3QpURTHYtW1BTvr8#k)WS~MPvZzko0?r{pik`pg$9JY6Dq6F=8Oi?r%xfrz3j1 zVg@Yb05Cs#Y{k-D^woUB*9LB`b20MpFm%hC=SiFVzg`!u||PnVV# zZJ=s|z+8h=;8fBXg{!HMIU}*l$3-Ep%8;C0A_|!#Xma+5 z4!kN0F}{hg%WP0ky{m-IL=^@yrySv4kdx#br}ye6y;lw(m(KC&3(>2ix!kMhj_enO z(H*G~h0z^(Llj1KWKJ4)q!h~{k&cW9DHI)Xe>IQ!Cc}S)4*y6U{vpsP1pG{YNprp; z0#2qIG~m7C!I|C~&aJ5o=WbwKB5=L{+M^Q_lF9TzU!d_)VX}3vBRYsf_K)E&aICv- zuLQP*_NJurhw$_?+d=!+U}A(~8@nB}Xamom*oHulFGG-XVCK>&Wb7^qS4JVDQ53GB z!VoexUBI8$QlW;7ueIl~dAEOJW21HwW8-@Z#3Dk&BQ8Bp9iQSp9&}!+YpGX<%pood zOujV=yN~^KkB*(8*p=-J&oO3!9AGgO-aE>p@LN9Sb8UhnXn{ zwnCZjPh@i8oUSA0J+ZD(57g^jh$I_3dh_TCvhks~iC%51MPYP5eCpq@+LZ* z*vkCqd>)(VmFX3QyfQ<0{SQ$Xy)u`J!pN1Goy=pCgDi}RP_4rtax~wXFyKt}jc$Oc zt0U|yRfPrUcjR&nzto#vO2$jEi z<5Sd!BtzsOgkyJ2rd%LUL&zQXko7L4$ftM5{E8X!URsw|e}-#9G}1DiUUH?yp$MxQ7N! zQxxa5={+$l+IwPv7|3imsz(i^<~Z62>>YcIFXtvUmZe%_%=~!0 zOyu=)i^fOp)CufQb;J#?riXj*aEaAaB5tBr(@aqq*`3{|xI6p%B-Wi(AUOJn#nC;7 z*72|<#cMpkNqNLJi#C=wipFnEu<^@d8}FteWJve@0h9`evrse@-TAv(w_pDQcmCi7 ziFN)pP##_v?4szKb|e_Y66}iQ?YkYXA{GS>-i4jP*@^(Kbz5V1#3#H#0^UVAsPJ{QOMI3 zvLTj>LdI3ivU>4Jp03M#CpKNlptU-#vM!O&M8ALp8`pT@+18dLYj{=taE@42A<9l# zg-;YlL%dTIMnXLA1Vg+qCozbx1tHTR=GE1oVZHjauxh(F*G7O9BACNkgLUwG2Frhb zVqm=slBa{k1KCSw1bLbi#hihSoR{WeM4)AUOmp^^$vpLCn9D&46-KR z5Q-r$sqws|ZqUd+=?z#?_a(ffG$*L2mGu&`KY>4rmGzvsiC$R`i$WgqPzPP2FmlLi zTeyRDy%Ou--#|C@fo6mlz!u11jICqaz*aa$hga2M&V+*$&bq~fR@Gin7!7TeD2#;m z0s-yC2|{}UWFrdNOT(g!^Gf%7tfRYN2ygVIe59KviMEBo9T^YY0r9}iZVhg6GY{^A zJrf&Ty9RC>!>Bpr3;Ued5Pp?RWuXmW&EG&g`a|1~)Oe2~cb@dUqd4cWp4yL%w2SZ1 zG+Y6TuY61Ned_k8`yzkO&0>8P`FC#NOW6V(KC#>gWDU;Q)csQ>`)B&Jn< z^VbA{B6aIWPr?1@ftCfLnUHJ{d$JSrbB5mU1Hypoj?!_x-~U~)SKwTczXrohi@V5g zfXGf)x`dL*X}d($Sdsr5pdi(p$lHmv9_7;7Mzx`XB z6;hYroN^X2pdK@2%WxV+S`cKvsqmdIcW9Ezzi5wDM82ws9%sb?a)%dZ(9>ka`XW9H z;xnuT`}DvVHN}U*l_-1{mKU5nqvdDKuQ^uGF4Kiwa6DY?UyCvX7(3=r_WF)Kh}{Gf z<_CT6&qq`ft5OO0mar>`#x)~4rQxv@DV1T!_J9EK0R6tK69ol{JRZOmy}!$T0SBP^>_MrCvl+d zQ-^Xmkcmf7`jP^vxWGu@STCJbGk()exGUs99o!&cD>Z7+wg=6 z0EIRGGk4H7zq`AN^1Q4>u$uylx^N*TPc~9my8!7Q+2}2%ndaD{7Ub}YZf}8I?Pqp> zu#~oVTp3pNgLI69*&Q@sR>H6{8kBtoPmAZ-0y8nw*#WW1`zHszfmAiQxz?QAPHA_{ z+%D635qwe0@e;vqpYDwTpJ9K3V24n{8!O>0F|+$rP$_xenT`vCD_z-?cO=kHIg+<2 zZ~<~XIy))Vc}NP098Up^S#xtEGCfrzkY%%4^1ia(GZGVmQ%ugA0A$u#m{=2bKp<_6 zS+`!F8$@bY#&bMtA%cZ1btv2HN`qDT(D&Q{V4FH|8O|wM6`xIkS7Ol$nl)7IP>v&J z!cqiYSg5*k+`-;XjLrb5j4X!k-~|-jSSqilc`&s|Zcdqn%w8rh>Z_LA?_%Vvl-wzK zkVP3}RWA3xi4s$ja#$K!T`rFHO5+cs8^_$=8{Bp9&v1E_!<0;l>&wC0%6i1r#<`|U zB$=XmU8whQDyRHYwaI5GXIb(N8@Br&K^Y;avIjBAucnb|_E_2noA>ud#9`EmV}+|W zDu@-Vf7E2avCMXqN3-kzI$)~C)U9WG3YvIqFN*vh;}13sZ}<~$8jkLSO+#u1OO%Ih zgYWMq?0kYxO|>P+PSg%$asl~PE+B{2b4{J3Kde`_TJnyWnxyBvIknPTUL_S^ zqwN+pu(&eeHc5R2ZY%ArSP*xC7Fbq7(jcEj9Ir7Bx)-UnuS#}ZCrHA)c}cE9kc4MJ z5)7{4j`9W|Km)91HpzOzUGn|~s0s6r#9P!AZ0>$L=gEBOR0zG>%ukkNAKb9Lp^*px`$_ndMG{8 z9b@9p#vj?kA(KeQaAV@|%#lROQJogI(Ge*LljbqtFwZkxq^0fS5wi`|ccpOwYFnf`OI*b!_vIt`1xK!g4N z7K?qY)0wf@VfFvZVl@^!l`TqOu}dOZ?9tybi~TgY6^kw063t@I$M-smm45Yeu-JdH zQN{IBS?r_YbDhO5&~A%=3X2`7fs!zb?Sc<}HWo_>0Exv0iNywW2DCiHfPNdzfSzLO z4zbudtyt{A6%j19cIN3>?7TkyBTwC1n3`s4Fgv+^$p2@kX<25T|(gQ8lkOk6{H ztVQwZifkWvtig~64RnK3 zu`g=6>8M)~oW|H*o!49)a@VDdaJMg#D>|f~`Y}FfJ zuhTIq(`axYbqFQaH~Ui_l?T!i7?l{+^~KLm23sqwn2BsC6`APT5DXG=RcIeOZ3=SU ze#^Qip04m6+Joo`YTL^!-aw}6yW6Oi*k$t z3+>ha8eRcF*8H!b=h^1>FuONyBwfp#)9yq_8l>H>qVo+Xt+wZRk)^}dTx&B_Tg$$-OIEL4fuL;M zmMx%nA}Ew`6K>)`4#jn)P`X(2f2B_ zC`X==W=xTFne3TIlR;XmacYW~)p1yuE*sJ}U=O@xVTAgM=|${6R$Kov57_2Vc3I(2 zesDXn){=!*<)}mX#I9=3jw9G0%^CzGjMb^$P8olpxW0tpz!h+(XpPXun2oTVwR8elPVOQrT@d-*54TY`8aC4LU1?+$mWeP+yOKIW@QB7LEy{k;!fw(xJ#OUf?t5m}XeKJNxv8BlfuLbqFi zZ~aL$93JD++vv!>HUci3+R2m3d*M@yQZGXxLLON30@3(Qn-H%Px;zcbXk=tSx(|f> z4-GKxD&@QuJJJ;}w7_5}a+eX1Wt4CY1K@=U3H7(qPtjH|MHI)CjRV?HiaT`sY!t|O z^|E0*s`v^fK7`^&eNvf2gNt-gM4I%15}Gza88s`Z{(NeLN9J98QIaga0X$L}AL_*f z@JDM9-vb)wlZfXa`A-6p$e9CF)i_;)W?iU++uVUy=o9NQ?VAdMUPlzwL0D4ZPz{6( zjB*Icto5K;427(oO-l)$ytO46GP7r_fCb3nK+F7mYSV6N2W{An@$L^wNeXc#(kQ*P z)2y6hhuy@}>kuqp3kn0+=dLZy4A((aA*Pz&M^^J}Of}D;nv!IPLV=~R-mkLakkc$6 z!MDpajz0}I`=<$x{|lS@0VvcCqEG17FgyV&BY;hq$$Cl?qzlqFc5h=O{5Gc z!S5gZF(&=dDMWZ~n@RVI%cNHX(Ni@knn_;|OP$935@6Ehw}+VYxEW`{r2D)apGp6- zfk)+|qy$DKhDj&yKMj*!hCynJNt)ECVgQWkpCAj>32_xSv^xGJ#5qeGU=blq%VVoN?H=b zq&I*w;~2{u-$gU&9v?(A>7y{b`M)Qw<}rSH(|?djKa7T?GKE_DsZ6>MRp?B*5EYT| z5RXasr$(4bXW@(DNG6>r+K)1-YSi~nM1KEx%=bz7zBmqho}fgq=Mgt1 z#-2Z&eF)!GlrHFSd<;3{^Dk(-Pq8EY+8Nj)kcwpCkg2b+_>#26H)t9N1M)u%}zgmh$Zbup_Z3JRgL@Z;u_^@)8RQ& zVH^NFYj2?7%V{KsH6yB~8KS)FUdX?zPMCH|BX{y%74iVA+HFpr2)h&hY5P^+q_r$X zN@YUWfie#hy_)nHwlI>~r|FAgPu$*@dLpE{uSq)}rKFm3;q`cm%;1 z3Y6FtO3#&6)tQrv&{$EDC9lZj5cnz+$S99wJ+8 zevszf+}uRdE|rrpL#e-dxX5_F9+#AL;pkuAsaKwsk0n03+Q?z7gY29n8F3BL9PZWB=tS}qer0L|#9j z3+~?QbfuBk7jTUYtB$$}U&z+cjTLialx8xLmb-sV)evo+j*A%Dx|kGPkMZGe6Qiv+ zgA~U~u=7}go%dB+wDnvZ{}vJ~FuEV)*3}3unS<+C88++dwy10MS`fyN3~N(UZE

{SHXsE5V40|u0;)w%?@>qsl3y4ooU2P=8o@G-_HZWC~im^SwQmh3JgcN%& zAS>+?^#-LJIu__npP(G(L70aFU88R4m7{XrHd&KqDfchr*aBUE9?Rke~Lp=$e zuprwY;$ldoN0)HT+e^C0e5#6s5bYJBzddXuy8dB3EbaEZW9WN?;a5g354db12{_EP zN`;N&;m2rC&rcqyysyAbIg$Y$3%OF+R0vSip(hbHybhvnPBpx$Kv4aoNwPvT^==Vh zAh@^yHVnz{BOnRejsZzY3?wBTY)X2r|62?oBS*T8gjbs5rodpr3g06F(&NyGK)R*0 z(mQNYA^s5(Y(g3GMkAvxO}Y=T>CG>9}L23Y}vDvi`2)6d?IR5 zcB3+c+bY2h&6P6W9kBr|Y#3~N-Vts^lXb}tPf)Aw1 zO0I@*rT5S-L+9`g0p*aU`8|)|bAsAzBG{quv?qirrA%Ui?+zI>76*_xV5kwd?S(^#|pa#@idYgUxw!XyOQIn zpdm0X{CwnC#^Q^zHC%}TCdcHT%H;TYT(m)s*%6z!;m(8{lf?mau(&G|R^7~30kX_y zK0%L{M^M4Ai4Rn8P7D>CyTI>8h4E=I%yjW-ae<)4b22m-Py==t!$kOrh~~oq|3O5Un66HQ`{CM8`5%4;BJ9U73L;F#j~F8SA&UH@e1HgB;ED>7creoa z=oW_vispafFMyNWRFBJNCQ2&HhILB=vm-hn`#MLA%BoQrce zHKiG%knCQE1CmAA+}t1@LtQ&s9^_MO()dQ@W0>W(E6viX@6F29$~OF33}2X)5?He~ z8Bmr9M|Pxz!AJOa493~*Y{g7QGAv;Zh~pQfx%gw2##aTh*&!WI z##Jn!CnX*EiM`6K#Ms&p!lLNK2tIrlHl#2H#h8{v4EvV#Z6U&~jqwlxt}1OHLYD(= zA;Rn*MT93_j*AGzi6Fux?b|jGVL7_+KL-(lnC?*(vuV2L^ycXI>Hg&LKK_4v%fK37=;&h@(Wzz$;tx&GW>4wYzUrhjeM3BeuiVD!#9YE&qI?( zcjGG(JxTa9ejUEUD0?zKr+XN9JjMs_AkY|K9BW4%w-xEV+pj>1L@G0q)a;(ypOs0D z`Na390|=8fJsHEZ(l#B&C^{2eWnE1zfgrA-6g@VzB#9J%6B_7vXQ+XT(eiX^Sq1IX#1%sU&q5u1OPBU;!Dh?Px5fjnU z%sSE1^lh{=PE&BRtj^2!eT;W$K9owz-g_MNOHvgEa)}-atGQdUmgzA^)pMEsZ>Ha_P8VyCGEBIb+>}%5fLl$Z;0r%NZX3g zDbVW#_A>G|919_@Qkq*HoJU=|fzSjw3t=Y|1A~Z1Stc%oN}9fjaI2#{RL+*lCS&|% zPsuXh<5OwWr1Irj0Zq7tvKHfH zCEi#ndt9jdxbJejrBo7hFB2T9btz_BDqD#g8**|o{9C3l{AH^Ew%zmQy;!dlPJE-U z52i=<{C+a&NO0CTUrgF}ukkdUs3PeH*@$wGu8QlXyq!D&?t9KGA8+dgFd=Xq&p|L zPxO(>_VC@=QaSBQqSgtmYMmx(ohfQvOUWF3w~Kmdvx(}JP;X!uzFyJl>kGu!tF^Dw z>FbNc*VWqBnfMyew_rO8IGV(yNzDCZZHdZy|FLFq-j&yEEHdb;nAU8ne>2*_P#n;j zy+925Q)mKEwrEiHAz+>XfI!4d4H3HtVD1vY6k}QG^dc@W@b~g$js2&A8tW&Jd+lqY zv3{bl0xl&QG>}^|o*z-?8PcGASTwpIMKRE-$(qCj=T}E`f^)#4&do)j0pB~_Xb6U1 zbvtoRuz~w*(>KZ<5BLV=%+@4VnOls~K|- zQ!Y=HniIFDF_)Uj=-@GD2xc3~vq}P5bdXp@#&TN1TG|)C~ z+?Ut&Nr(o&7&rsrg}Z*uur9C4^geE$l7TcR%%VFkw*&N;L~$OZ%yj`oaw+{zEpfq< z1m3L#3Qo0$m-FPFjLy9WqxB52_dxbX7CajgaQ9h9_acn4t!{$S>xwy?0EguLW0)*9 zgSgN;MO<((qqp@lB_ssy0-DJbQMr>=)ZUp`Ig<*T{2t@}alo9a7K7ZcD&U&Us0*PL zHL%EJ6wg6H4BaU!o)FD}M5_?lMv+?0 zVW?_<0LRI2H6h*Dp2jwSy(uiT*xPzP3dsJ^43BM!Nxn$=pC#eKqz{CS;o$2L z+MI(=2&EbNA`XA!`omuW9mRBsH|;(^%-2L?XF_8EZ1qJ}`4GHOish?sB@ulgdZ z`~j`lt?FC(W?n2l_`-n~0n4wC0qIy*ZN(yfix`K;pYX^YwyF=C)CZsX@QwQL#CD~y zTYYfhL16V;e62oB48B`}ipu(}ogg(AJXe`uFSE=W?7if`7H6FQr_Gk@02m-k8`lfB zcm6$tp`vsEp3C`j>_9yK$e#-xc;10$`S8j?>-*SkEg3LSRbi--G3P|!>8I=8woYYO{7i8 zXWpctW-aqy%!^FsMSz>&oV|}1!34tQ;a`9%AZO>cFvy8&9)1Rb7alhQEKM=6S$)W| z$}J`o$ej^B^7bF#d3TcF{hWp`-x_??zak*f(8G=Ovkle8nh-M9w|No$SdU^G3g}SB zdXm+!9A^9 zmgr!*QwNi}=%?wE{8iW|ffgeF4LLp9;S}jla{d`+GRn)a)^JF$k`c$VUhr%+(_QV& z-N!M(x9Q%%l$#2sdfeRPbbc6?{2`HsoHlewtw^bfgYVa3heaVTIsHJcpLS zWz?@W%a`w9%bCyT!zv-8{G^G@6W8uy&t7`K|8hRx&0aO%>|qZ8cn|=t2*3hc&O}_y zf|KoCqPt^lb6zRIDgNdZkI7eEN2`2K)xfEP#Jvvd^37AO(t2@!k3+$wyeI0yGyQh> zXK%!q(8qzz)Q5?8YA&aR5T?Y6qH44{_ZnA>+{S1G%As}@Lum-NM@Oqqp&L~GsZOin zO`){fcZ$>M1ZW0YNoH|95sK)9+z#>g^zR+C<3 zG$E}7yUz^@fhOZY(RxlrouCyW)8vYcp)|4o!)bCm&K*UNpKoy`jE*iJV`z*nQHabE zw5ky%I+3vg#^`9%(5cdgAuGJ&$gv{@_f6Dk!KUbV!cGh1EGsd zp6AzxlIP8noIFJ!Qv~w#>trBLD*zWQc>-v)uH<7{aWm~6Vc6*iPlN5lhCPLv3mNv+*scv(m0q<-KWsaYfMNG7syD@tL!`qDyD>aF z+|W=d-tGh+c0W))bl8mI<~mW_K2#g}G-@(r=!3B}6f*Q{UeOPI7!ZM>r!xA~i{d9C zF2gr3XA179OP=2>O6QbLqL80Wj&}%0XW*5$8cIN zP@M{>Xyu2`IfNbYJRZ-uQeAF01YSI(nk+XL!bS@qF2iprgiR3OHaAH!))QHK$zVKA zWhJC_jET8Ru-@;x%X+8f$Z)giF6%hU3HEn}@3{3=OCp{@lq6k7Wm?+Bk&uh0*^b`O zKGx<#6Y(#>+PooLuH=}8kL4WvR^aM%LCP0s-WOx63Hg-3*xGz>93E+p1drHO!A_1i z7+y?dl4?G<5B4f^H&Xk``c`g;hB7E@tMxUXRYP&|ON3Nq?Q%{Y0E`18m#hsV31QYQ z)%V@XAxauId$!25P1Vy@nwBSW(_woKCGJn2T0YE4NJ7NqCsTaF*+X`ooH!HZ`73lhy9^JD(oMxss{Tj zFB)KfgAK*ml&X0;JBO&FCD$GYxN>hedndfu$u=dCwL44H1dprBHfVTXsJ+gAF zJtoYz_L#iP+QVI7?J?6Qc=HqSNf1XQ2%^x|DW)enMIi}}{U!TI5*i^{nvA7T8Mfz8 z0^}{EJ?cJ;{B-0yW#1=elYA5*rL+&xQ6Q%Z9f~NXea}yUKyoEOu-2i3KL%IZU^ja( zYZ|U)yX;0#UIkD{urpt-d@Ty)Bz|tX@B31m)86?%)eyG`;5svE#K0n z;aQfQ=ZN{AFOFdwT}uc!@8|-tnC;urCD!?P1hbN&c2XG-k41S5!Wa z#-_x>Pc^Y5u)i!Ig_Yu8L)*KdTV5)q64-u2Y!|izfSt6CjJk_So`Hb1(|A)0(Nyhi zAgi2DJ^*fEP+|4+6vjn6!>gz{wwEA(n9jz~28x9B;Z2)zKG;!gD95Ls4XnEz!;ss9 z8;LGM*WF4#o6%3`>f5m-!dCxkwDq_(vjm!<0#(Jhby-wOCVbInQz9^79ZcU#SkrNM zI)*3an*fs1%%7r1Z_1+yX9IE(gU6b`9Bn`^6v&5_7hkd$X`}C=vhD)8KzUCzX9Yh~ zUi{8qER@G8FU+J)y=k}bnhWJ5<$ZJZe&#~Chw>r`FXS!L&jdDG_DyJD!ohsYfp0Mi zI0FXQ%iQE;Cq7bD=kHgO?Fr4<@gtJaRTS{6Q!yu=BXWP4j<@9}023>E@k&;7tg+}8 zUi3jKx@W4uC1VXer+MA7Q<(DPXilJ`q9kgnWmY_VYAq%*kT81p=vH;#V>($&xTSpX*1 zi}PNLJSVO1co4~Lms^2k;Hfq2+Pwa99_RwG8~~bkM+rFxzq!M21YV7zR~>_|Zrf}* znoSxYcOx~bcl*xcSQu*@U3)${Qic9O3=5xpNLY32-NRMSFxy0R56|Q!umBHEK;QBb zifMfijba3)Bnb7x(7YEohH{Hf5L;-?s*%DfZWwn`|HuMvs@-OR;V<;T;EdeJxo ze=v|?uE%lfCH69!T0ev8rFk}U?{Vwc5=^p9LMEz`0qR86n2%9E$sV6?n5fQR$QY!5 zRhU7l>QA@bTHSnj2U?G~Kq&McUA64w=7OuCr!?~m8+KWkWw47V{|c~#dzvsyA$xF~ zI@g*@U~RS4SzEM6L|e7o#zDpRP|+!Mc4kkHljmMVu_c=wxto{G#_Tj5KQS>md;InA zUm!OqcM=t*qXKq2ojuAN+1JK7aaQr39c*5|r-a)nJCH8wo?YpKtR|t*BtIgY4=%%5 zHXH+)+LRq`5JXE(KcECV#K9dWHcA3aJO?G@*kv}6iI#cB>9tp|crN)ZkSgf*rMess z7)>H-bl=I)-N#_xxszRP-P$s-N%%Uvb7C;_?^}1`12R=#d}juL@Q!s)j6mUh*=* zf`NqnlXLR&c}%dL{iwczbv@J%v0T=M`SVpZtB8htKMW9Xy|-&mIDKrNnQfJ^UCgd= zfM_petxewP6#qoJHr&u6@3@G`f*?+e%ili@hm3K{dYPFlhu)C;iwX!lUC3Np!BdFX z32aX_!wIT5L7YRsu+a`J{YYO}5(ngN-LO&5I;5-vdxhfkIFvWp^8)U6XtLx()})fT zM<~u=&7nXwVZ#2O{5mF)eBZQW$iQvPebdNu5YTOLb%a$m6HPg!W>Dx-(|tU8&$F5} z=R!~M9d4nXngg;ER{*ljWM!6re;M#DjRxe;P)QU!d9zyVD^^VY3`L+G5Q_uggWxe6 zl_45n?ZWJ+fK|d=D|)aF;}XRhzI;+VHw(uO!W zot}t6?`F=GMwLZoYaZR0+cxBqC_%QysiP^?-C1UXeo#u8*~f-SO=UrHqzlqZ zr45;iLBL%TIaOD%#0pp zFfWaXD`0Eh8QA=I`vTC4@hZcBI)`?)=KVk))zRdCO~1tXq|$J!Q~7%O$Z zIE)hwr}2hE22_3um8+2%E+6?v1ZZ$d$MBk&*@scNj4qB6#DzoxghGD?hm5V#PGo(* zI$1xiM%C$q&IK?zxDW?!SBB1%%+j~@!=@QYM?IDqID|beM?c#v^`nhQs>PMKHT0m*vf(RpJqFmV}WJXH6nthZP;zJGd z5Y5`3z}8Vfc$>Lm^&k|#RU-%$y@DVtf+b;?tJ8L|kFp0JY61bFLww&E5rH;wx4^GK zAIsR66niTGg>?2%J+8@4?_@<1wai7jXo71L>$g2A^T-W4=r4f?+tl@tvV~VGCx6KPPWV_KmdNIH`e5 z-Wo6^W*N)<=#fC|Kr5F}yX^u7;(3CYg#6abuzG-l<4_KMMC5U!XmigsGB(=8uLwq`R z;0=Z!vh>8vWwc)c_ZJj}eW6Vnk|^5W6TJBpAdWXaI2jQnw~`tzXW^!Q5SZF@Fqk29T3ZT@IPhHOlL0;kZl7UH6q|y0PH*cS@YB)U=~<5ps?rmg3(zT^v!Q7^YJUUMYE%m!ZS0Us z@$B27rD?hsB+KOpv?7er@g6$iz}@`gY*{>tQNF5|w)PLQG|TM03+BBOoikJ0-N2s# zjNkXVf^n-;>Q!Qs@~J1$zS~yJo~TcXB~^LpABEk&vJ$&D1TSHI9N5K;_ttz0L={A< zp$U;S5uz_uowGqyXNL0S3O0h0}?^A z5!Wzc>jdX7n>&JV17!>So33Xf6{$M&7gslBlV}YdWzGkoM`DNv4r<7PLN)2u?m^ zY#B!O`>zqBMQZsuw1Z~bqFJXmvj9!Q6+w3ZNLfCIxL5A~^Eu-5)-0Wcbtw`IAzs}% z4C2*<4%wm8BrRwOw;wQLfrGlSJ36KdK|-PZu!2LYhe}f{<^7-m079X%3^*_)@%i z>{UevA5>`(X@zdmm>Hoo)x z-Ox)b-isr9JL^SCA1ipK^+EJ28CHkoaknD(qN0V%mnrePGneK zUOuPZynN{=wes=+25lsc(|CDTSI*0wHC{H4l%F{knU@bPje?hFpxLn8a^Fw&=H(=` zsqnH9+Fy>=k(Up2i2&W#2cqZYh=kobyWWHy4X05pO6txf#D=vKwgtvWVsAuMAu=XL zQc`hfS+5R^cDbUYK8I-&maxzLSZ~7KjW)v)wy^@O9x6@l!YHZsk)ZnkURsgfr` zl+sSIOL4OulSDOE4;$qgCu z#t+#5bwmF7mAVZ1i;Jrd`5q+ctZm3McrTHLym72H}626Yj6=BS4o0=%OX8s-*hN3{g@Yx%*D1q|#oji;}vH zLuW7^H-1~YlKSoi)=MNM)p3-jq~0?Y)ubRgy__~9WXQd^n@%_6VZ4V7F)DjGuN@qT>a6lt0`<9`#Ofxoa(8m>2xQVC*j2YFRJJsHMERn->1(EH&=*C`W9|Fqe?n4kG+XfCB50Yx=Nak4ZPY^(mdWvB$f2-a7`s;8;eG(lGGue zKr9R#sG8&L7w!Pl84~6?4S8Fu>O-FMRqaE5#mf*IX~@3}(}w(@v1qhIj<^oE#LaLJ z#+azpiM$G4wOST<>z|^5)$X5przJIYc+DVYO)w`i9B*y0Hs+FB-HALAE!Qf#BhhTw zb--WSH1Q2YZ&8rHJJ13hb0@M9+DYGYX!THOqv1ZEs|@eg-Y;87S=X_PvA%jMHvQz1ey!+Em!u2<>xNl#&qYq0;CRhOL`Lf^Jqx z-P!v3`;BaE<1Rf#LlaxyHm443J=dzT^%@MTI$Q5Aj)JX^K3Nl6UuoCadV{f~hPL{$ z^^6DV&DIU!8LUNHw_@PduC2#4<7}N_VCzX(F-OwYYi38m))q7yRv+3o*PE?Z#s}Hj z2<;bGQ`U*C??y{up?hmn-P!uFdyQ;8=_STeI<}sZUkA4S1-tZITmOP#RcGs1fLN=x zZo_+wpsjBkq_OppJc9t#iLI-7Gv2VybKRGM31J|`(%~r9m&DFch}QzLsFs48 z8i#>y-}<_9^LrDG+`Nc;-*nu(=7~CRvz_2#wnuB=zdAQx2@q@LW`Xw@ft#PXM&srV z#*%g7X1X8%&N;YNey)@um%HMEr>ms^1aPET}kEt52Z~DWi?#2Mgaq^Xjd4xG83*|#|kwfuD)0o4p%=u zUJI@|r)juy_O2(ca_7r)~c1Dd#7oX`Y+;tkt_Sc0DT zDd^c|(l_Z#jwL$W!Q_ugpEOg!(pSbn97Xz$$vdvnuypDY1xsO5GLDd&Ws`PB#JB}M zLKgOYHzF;|)aW?%gv^IBV)(IC=O<(`5GbeUZ_4X^Y6b&{){d=^YdYVaG*Y_l5`N*&^M zhlooFDg|*HZZ^md2v++(`JVAm<;h1g^AEWiW~QEdxS@Y4{yg$9u4^F;o4?<>q$tyy zaUCM@(z0WL0kK%z%+w=D3Acw++(lZlRQ?1@THbw*-n{L4AP4S17LBZ4 zrJ+;Ednrsb`A{Y-T`1&}P{=O)dE^0|GQO6GwK>3YXFwVAJ>-9&jM;?Q6RTB@ltYRl zeg#EYj5PN2=(?OzdCKPuD;JU`KFTyPaz0CKlt|!aaQ%_5qc&~)*DVY)qtJW^W?J(0 z|69zg1tFrr%n#=xV5a%TP|U1EQ6pwd^jl#*i{b(p`XmK3^48grQ)m!`tNiO&v?|(Rh&jpJ{t7>8a z6Q9BP&V*r-+Eb+BTs3d@oFU%PnKvEy0P3b{h;4YP0v4WfPF{j=M0P6Mi}q<9zgf0{ z-Vm_8!99dO>CDQ9pXuSNL5k!v`XC?s2amL-= z2Aq*i#`#pm*^bj8IQ#umHi&rA0ur|EQdLRs& zan+nWC7=@|EYu;^1Wu#+JH+-?F`iN!Vz=R}W{5+q5Csg53%x^Z3+x`kJBD7}A=dU| zhVUlFC3)54S{xTw_tci;cV85R<02fc7J)=zaP<=$A@#@ArjvSHUD3H3u3kq01FrNA zvBj{2BI4@E%5b>aeqSxPYH^8%s{t3*6ITx+qBIPyKJNK%aJ8~hkE@2As^Mxr3K(#u zcZfX%+bbfjd#kv`{QMdmVyagO z(zh*B+(gbpc61u|*x@K%yBi2sxY5V57cMwDwD}Nn8!0DAm1Cr{_mE2wc@q#Z$_`Ff zPIIEdTij=-IL)rYn@#sHpjkqLx_Hg#FsF5iFVlOUoh;33ku?hkerYQKGlO!9I^a$a z#H_-Rw$bp;OzJeoHY(uu*~Uz2B*$*RVMWiz5p)>e+rBxVLJEdysmRKpfJVWkm*_y_ zDI+2UgAfGU{~}^nGN&0uRc4AZ(s~q<+bltz0xOQFNhgd$@=5SaIBO>=w8K$Z^rg86 zQLCm60~mSOQ~8>?{LZ4=wpjQjqTeJq_N0Ev`#q;RSr_1dXYt5@yN`SXh7o6~uI=Hh zRF4bOk@hqdfJ|f~iEv&xTr!KryU3%7WES9+leWNjbv-bwTTq4PwhyjTxoy()NZi(z zfT+%Gsi>fZ_Yk*@x%)riwyHlFw>^LZ>yfyvvyR(d@aeg2`D0Z?YfY?x0qQs{&63=RJg zg(f*w3U!+ni9)--2}_~Br-o9fB?s-_YV1SD7=>VnM5Itx9ffZAQct1V096==Q$XY3t>k#Q}2TDIBX#{rUXhew<8yc!)iZ(i5MF3)0%;lR%y$R znoX;d(2Ka)DNb0HDIS#XnvOdHDG35gfshVw;H=gTZ)U&|gH5Rtx(fSmp~nt~7)MYc zQ=x?98*tJfJ(1fNDD`8;a>EGuUcT#hx+%s%Ii&zZU1gsdDc zck+J!^~j5L2q|kX8 zT?~`@o^s@F#CjK*30{~+dvD$^%UG6?F@3BFvjx1dCd{KAtqCtoq(42zBwBl12eV=3 z9BYq;Lh)>ROaBu@mULH3*x?W-7N9E{!le#rw8`@`axv|6bwajeT+GPw8Xz@YOF_v( z=SB`?mgXS262lSQi=5&cl!H{v+D>E3`xSj)U08q%gI8pT?!wIcEpEEos^f8jI_17` z$UkVdP?>G=qp-N)2gXgAl;IWIrB3l{dF@pMZ%XI;Voyf}f-b%M_Aa@Gx#i%-YWL zWFhei7ti7x5>NVH-hR6L(9-GFaEOAk%AKhttik=s6ZYydS_tB7BE`q%^8T2Ezor*-TY2E+8Z*Pk0Cg9qRZ*pEo%JbCFAzhc` zH1i~GVvKr6DcwcnOs#n2yv>6XV*D)~F+|05bv@!xmE=@S zAEHs}lT%%iMbT?vQ%X{PtdTO(M{j27Xr_t8zq&+{X;-q3@@@FQVuB;4kA$NZ7jw!b z8El5O0ZOb#PLA`$+dws-+$G>#;)Di~n&md!x%X*e;k041yL+mRfAzP1v`KM?WWe z14Z`3%q(hkTyGYQ#1eMoMB)HgM7A*q!NM9g{S$5xp}P?PfY#x(wDbjIM!acNzZw{c zj2&tOQ#j+KA6IZr%9**_#L|ZK=U|7mX~G50s5xd!5h=)aGm7B=tU1T*geC`WW#Hu^qd@xqeK$I=cc*x-&kdbwPJ8Y%VyP-uWmt5i@#ysDB%$O(H2l^n5 z-1#3dMoC1o-8r@zjSyi;hcaxG>_BM8`1VSl8I5hm9s??zW4EY%I?k zu)pSKhW(q4!K$O2bdY|KU=02bnN_40o+uxZv=-P#LxN`&a0y1TWjdrW7ydhE=l(7r zJ>`QN)yU}*<`6O<{VsHtiOzI$gm^%a>@p_VF>fey1dJ+MV2^w|SRg3nH=u3u%OMwE zjlL$(0*ezy3v~Fy!J0aJ_I2JNKLEpF)<{b#aN zXmzeBBT**Tplb}Kk3pjeAITXa7Agb36_CF-QShuI4l_Zl#ijIw70S0*4X~GZkGrbc z)4g3_km|CDE6w;E0vOSENwSXu;gw^?E}n%QD;s5V2Ku@heW4T8D+#&W ziv=NfN*;JkVG?h9D{FXWL16R>xi7d<^;0fWCzBxav_^+u9yR7!qcJpTf4%)@V4lx@ ziVVgW1q`qb8-vzlITAf%d9#oUJDVxXF=a)|NiIama!%?4w_m+E>GQP_IO%(M(Tto_ zb;JLblcpVDob+3HI8K5GQsbnS?-@C%1NQ*xIB6hY2MHo_Qd9IroYa|w4q9H}B<65@ zep!%{HZdm|=cM1?uZfekU0)wg%KtGk81V`i|2ZdJlB#mjVK~3)%}Eb^5rLEDqg5j( zeK6vG%Sl6iV4Sr0w{V;UPpQU9Ti!Nu(r)et({a*q_zr5~r0@505-Ofi11Akz66B=m ztYOYc%igVtlXB5v-F4E)8o=1FI5?gCw>qf|CoQ;6T6E{X;H2(rB5=|Wv})v}@z?%u zIjPn6jFU$G8jh0;I_dGZjGQ!=c?{Kzo;16y$gG)@R_u$c3`|%FlXZ{vbTVt0bJC4q z-^jCDKXh1kPP(`TFdoI~mcaPWbVBg4`baYsK zIO&gXBZG070>*#NNzThvPKv|u>OH$Xw<-cBeFQ(6k&{Xt|65Kf*uyw!U0FCz!Y-3G zyZK);a#AICZ|OLx6=1JvcFRCt#7SMl*h%-j804hItYOYc>tC;lla>qh;iNBjM+W29 z7ygfQQiDD!C#{7`uHKyF_&5S5O+>3kPMSURf6Ga;aFrM0Oxy=*<)l}a89C`a?pxDw z($*n0b5aZR6^WBNEeLYbNY*gtq-kK^$U5mJbXfP|$@C*4#77}qOc)Nyvh9*!3=rOFO&jKCjhW8+^ zrb8H zF@~(*tyks0qZL9Nzdy|i5Kyrh!w6uVC$*aUP6_~KPh-lTiJGKTU>I4?a&DWu^+bOJnVQ{piM z3~gG1TnKF7N-UhzUV-+UQdXfGd+iqQ)f}p9Z2r(Th2}L?z!--%GcYVn-2jDo>&k6# zF(=q=V4y5m$w8qzjpzoWrp$M#4*X&)n=fHq0GXLSb@1B8PX~bg4}wzAyzI(hO@+9B z;m+rK2U1$8QgApG#NMgeq6V~oU7e+6LDz`V^843JTKc7`(lRt~Iw&n)@sAhMM6l_lgbuETU3!i}IAs7sEfVY??Xl(-8^EaP>gxn*vONyJk zy5T0T+o4@?lNW_WS$mAmvG&NCZ|yN*nYG8{0&5Sq4_9{~q$|G<+je;nT5|*<;RM8( zrzbi^0V*|q9$-V14D@6bZgDRY5E>?U?I?xF9nw_FbzSGl9Y}{umRnhQy3?u(5pcO1 z2^L%={6JC2q&R}z%XU`wT}-2i|1g!1*&LIhkd0|;;8t};cS?PRdHep2RuDmkYbB4< zjK0w+COJIk8qBz|kR~(Sb>umfG_{!^?hs;zCwSJ!i7hFH5z~P8dJJl097f;}n{LF! z??~P3{szRk8hcEf4ds$Qm5Kjw$i)BWpZbZv4TChT_huvBvrhb<;Jppts|(%_BX9=O zSSa34V$Yu$eeiiOV?@QffG{@Tyth;)FuGbhk0)GL!ZU4RL;m z3pq4v0L5HRUZyr8xl6PlzXN-*%0qmlgGF1~mxYA)eJi;)BHRd4>B? zIaksWqhYuJjccGAR&OB9L$R49N^IuDi6otf@`Vv9Syqo$nWfY{G&GJ+3syo)4^(TZ z16rc{;*6^!|7-G7UuvvI5q|;s5QT7g<9DSHk2Mk&q7Krx%%RX=r?heoNF-#B9iN#W zaFbEn4JI8d-YLnLreDQvqO#}Y=|KK|X7D!V-^S3l*XY~b_~wuvj}xpPo|eBoLCiTc z!D0RIwm8AO!6Dw(2llQjHdCC1oqa-xe=W7& z5bd)9Y~57;-p?T%37&zuIvVC4^6s3LPqibSOe^n8WU(qEMZk~z)`b+rsJwAzPfVn+ zM2cX*VWvEo?{r}+=;Bi%rk&D!LQ7`;PHP@~Vnni11T~i-XTL+bIg!0yiP*3kZGlG9dH}A@oyBPvAuw(6wT08MWO@ zrF<`5_)#hxpu!>wqhyKGTm~M-S>u64j=)CefC(j5cG<1p;t;F+AA_`EgVgAD;t^08 zHp+{{!nba|i0CsJ7a7_irYv;oeIIkjqyrD)W`u(9;2jn}_1#m<|AHy-k7SVddngjQ zEtT6K$32Z$A0@C<)hK*bttwdJ3|vUaB3{A$mOYmf_k+`~!JUXzPANMbp(lufe2K-j zTV}&W2XB|_a>;W$*nw7q?1ARBYKQDDUP3RGLv}cu^M@_)ExH(_w9$%ihE#dG8(CM&7qFgCq6<;^5NxtuKDi_Dgjiz!m1F&*;DCHc|j4m`4R3W@kE;&ZC z0mcbUhSv^rai%za)m#7E+9DyFWX5L-}{5fA~{6R z61%t;E;pqeI=&z$tVApC6e(u77CA z%g&$T<>ld8S^&8GnD%kia0tW;5pJpaSwp1sL{c>=l^QWAeeO~crP`%*e6uqFYe!Qa zXokCM0)OG(g^gl8tmBU=$G1h_sv$Mtb@c##<^ zU^kcP<30}Sn#zt?Ud2qE3V|no=CJIh1%kOKa4w0Cq!4m3RzxNCkQaGHvLH{jpBb;s{t(5IpJU3p5uFPplc4|Mo-0l&Z2 zfZu-WfT??c-$`Mx^}^@)=nV7W?Jw}*iZCC(z>!LZ+|ObC0l9JAfZXPdfZVo6YC!Jg zC>Da;E$1=h?&ujEa$jqLd8P~SnTCHi;@<=K7dppiw#3&4TVeuiiJ5KX7s05ZxE=kE zg4@*!@AlJpcRDvDjQm@Df_?~F@f^kaZ_4ER4NcU}Fdw{22*qJO41ZNY@mLDj@}|7e z1t`9PP`v8*8c_TViiM!~E(=5P{g*_C;%geK{5z0vi+}fr$1%+m%GGIxnPO(5+&7^* zijSXEP)v>-b*8vFh-T}Pa|!iqs)(;-tlVm)VBQ+|Ijq86`5DmT217p*LG_=&5dihXuPlxxBn4JaWYG7G-&&j)>$(cz&bM*nPf1jx&1P9zL=z4U|Mgf~^w%fAGzutm1 zh`05pofvqfIvX#OgEu-#@JJ5^MQs$e{?5rQpzC-{V*hS5MjqVV4t}?6Saamye{SO0 zKp`f6wp_^T0&l)a8a_U-CAGxe)ggV+WdvTx?^ocs29^u-gZ@WL2P#Sbqm9Ex!E-jC z%8eg0XQ=wB{Ol{-3&SuZi2Ve*9vnVJ*dd(-tmOr9tIz{yXvQSsuplkIO!$i-I5dvoHH&QKdoO1AEYsoh zteKJ9(mgtIe+$(|_yn|bDEuCN1ladiW(CUl7G`o_Ef^pmTl%4Y$@1+-=n%!MSkwH7 z_d;rkD<)W&?QRlLctQ_atE%-kUCHV%QR;U>{jExUoKg76DIRvRMXQR@K$-fa?(%Zq zgxa2)w|Aq`9!$IV-Aa2+S$mbVtxK)k$_K(cC2H+{ymq2e8wu&+;l5&{X@c57Ft(Qi zW&AG#z)-y^g$<^BB}YbGtFPwOKdNW-$9VPW^{hUCSI?+Rb&ZZ^`?8@oQ)(j_XZ$_| zbB)6yPDS}fUhzk)1!`p=o)N|-p3wTu=hfd-s$+jIew)&7Ys$Ax?1Nm-D$|6r54kf& zjSSOnZ{F^W^=sF_6+d6WP}5Rrs;*qIoLB$h!}>ARcwYUDdRFhstKT1ebrN>nQD~LU zKU~hR&|7JU2=%o}C?=TL&OOcqi_Hv*kZA`P(Wp_(?Gm-GmL4d(5u6JEQkQoF9);^x(ly&pBVR733LyoryMCTd5l0sa$x*yv~e3jkK~ zCI&?fK(!$}z*~r`e+#{N3tzt%Eq57^@W*8g2@93lbtPf}uYO1L)vIA(GH;?={ouch z*RFWC{#{d4#!mZ z!Uo>h)tez^qf(=;yzxA*?yYC_(Y*SNb*Zk+w&(NOiAwG0XZZuY*r5M-yCyVMW8xLO zR*_OGA`d0|g614o^30EWQfFq~%3FF|X(^17r{p%lJ+$hx4>uITS+Fs@>0V0H|Js86 zxFj<;y5;odq zO8Y%w7Hm|^f{x5AIEE-Mcx>%-Z4zy9s@qX2iPYcB8ds(A0p6Mres==UzGkNV}Z*XKqG2ChZH0Diw ztTa(O0M%M3>CTY$X!I>`K~*zj>KD>8cv~q-Tj2$@hLupLdEJY*cl7motD)b!vC(~8 z{}xv879Ned1p|pE@!Erx+VvrEciu!?)Br?SWBk;Wp`v6tM`oDmr;dxCdAz~Ll?J2W zJ#bE#RoM{U&NcN0j5S+ry8Q#^4dE54crD_1qnK{lv;i+JrVW$2s&?wiJGxTos2*a4QwTaWy9ap&fSF^644Tt`njAok(K1-pn_`4`u;e;)VVBAS7xO+QDScc98^x#CD4mfV7(Q;6 zivFNotjdrwk+jHYr-X*)RreeEE@micu5=KErZOnHTweYAr5p!!tv-lXUtZ7ZF}(VH z(O0iF5Bd_>_>+|;LWKfBHPwZ}=nR_0TR6ESyjVri!a&}_mr=K%az_lW_>@vHlKrBW zpwf6-HD zt8~@FxynP-fKC%`Lnt*g;fz`uVA7;&5nc7Ccy)U{t7r1+&FWdb8L$4`A`N-rMy~_D z8q;rU&&IzFbHqf zKfs$US;+BOuVy0{#I1PKZl&qE%4rRz_8RPegNHi*i>!Tk-~< zQW}iNDM7zO4MQ%*DK-pQP}-_1G7Um7owpUMv=vF|>8GUd%yT(!Xu}Kj#TY61ntXmc z+OSbiQaT8;c&m%gkD-@!M;8|&J{0*e9pWCu>1r1IZM;X5(j#s`i7!&DrB1Nm#RE=C zYf0y55c^XaYQP(R^SFcH82JJfeodRfuX(gJ8{-QLI1)q0i0gCs80)k^4YvTw;~k|a z9ffD1S{6XzLo+VnE&uX7A3~j54qdo@--@B+6{WpU!3k@#G7hcgUYO5Yx=Cp%jCu=k zFQ`kfU^-lbkQ`O@H{>i5NLMN>+wLM%Fx+8FBC8Il+_Gq!S*Iau<(P z7qiErxFYycDJPHJ?wYLFV10Lt$Buy z_?-;w5X24TeQ6N5FGJZ)x)kqlTpj^q0apTSKKUT(AUZg20UOfbBsh`W`~8h@GsG#p zN#4H>`_?A;=_k<&+)Mp&QlQv`CaD9N&Z6M}S)4=3OK(#`&XBDhr}Bm-Qq10!PH}pY zA2%%d`JvMa!CGWV;=41}yh7^LlV-(lTsZJFLbT-z(Wu|=6w{{Tr4#21J!uJG3WfA% zJF-Vk`Z(?VkNmw#`g8mzk^Z#4#sTHMLi*o=--z^0fyWoHQzBnSqm?XM+jCwVU@x=g zvoK_Kgb7CqnAi*6nWb_c6a`*dBWCr|DwAp5c^Htm9%n=rSkVSbup^bSRV&sVc-4yC z&x)mWqzxJ`u0~%!JJ?=(Lwk0mJ-JXT@tUDTXDU%_@nQdh2vlx63v6DRuRC3+$k_3A zMj4xe;#|hw>JUWq^Zbz`da3r_#UE8fFVMa`tFPf!-YbZn75t{kSUZ3T8Oy+bf%cC0 zC2t3;AlNDFIN*ySV}H-9S;kI)ND6NpMTYjuoACDJaaxHX zf9snnrV_=L@n{O@GL<_>wsz)fvW3MBq$?3z@cad;bRh*iW-#Jrtiy4z7rZ^>q9C@f z;Ex>JS8MNE@<$cheYG#i`Wmg2_X@V#2fwKT_BnPKAV&A#zYwss_$A-_1fD%;Cv1uR$lGD~0M4&}WfV3UI1 zQ~|qyfF!H}EDOM5X@x5JJoXrkL$b_55t5RdG#MM{nVx8NW1cxDx55A+TsR{*9g|yy z(5T9qw-v*p!<4Oq@^}nAkUSPJ1Po3mc`RV^*czQc9tC`m7v-Qs^wgc@O$f*vQOkid zOpfA=E=(e+(W^*O-@zCE<(T2_B>RPrU@?17}o%&xe7>gT>B=64d6yTUoI*D>{bEmdGDz1>+6vr6}#mE3^{N z8cMXJ62+E+rHaf};>4ERVU|v2X_2SQi3dP>Zg=7)14u1mwQ!R+VoMak^`0L@`eXc& zBRyYxe=~nnkv?7fGEHCO7UjKy^zp%Os^B&Nz!2Pf@m~n81;6Bv05!;3wuF6INywMt z{ZA5$!TNlaetRulRl$9RetXis2f-9RDdvw{aCd6&-{Oy|;Ff4#HtB1uP~IzoyE6Dq z72Mkan0x^NDaDThSX^+iW6EXsK^lr=S&veovYU~boycW(EUJgft`8$I%I@W?lr`^7 z8lyBALZZrU6Lg}=ZW;2oQBU2F#SE~>aj50M8Fojp9ZbR7WTN}WOht5WDnxY?Gft(& z3`}d@Pt=De?P2_e=srlIJCn*Y(X}(lwYRm46B5xhMAi;qn8e=8B)0c1)N_h{v@nA7 z3SYXU@kh=)g7&^We^i<0YVFGaeT@#vdxd$r2fwKj`|To7;%OSbWNF+I17Q+dYR&(Y z2BX@q!5AkCAiEE*NSETp)d9hE0%T(x`xd9MQrLA)eJVpR{j8JaIn4A>?sJ^ z6}-JsN_*rDP$SYJoB=^=f4{5_^j>3Yzs9hEHj4lqAD*0zv8&F4tnwB3MWa^7&g_&U z37k7bdlmZ2r~a&YC-7hVTH1nsv9i34T+x zT`S)40_xbCc0PW|8y{sr9ET4ZApH(Z1Ek%20{wyiI@df1pr1c-04ufk+xVjj;1TUh zxxU7B<-G#np5QkoQSvx~MYN1T@5p{s$lU4y7tYJ2JbDC1Li1_(4B2S}*gNB60H?Yw z?@%dEf0L^duD_8+#UYJSMjVb?HNdxd?AwgEB#hRP2)WB6Ce*){0%= z*B85;6-#SQJ$c=-{K?c{dsahx{gn3PceE1E8%n^}NSfrM7Zpvilq~kdM-)x+-zNKd zHJ(t%lYNQy3ZCc-_sZ!Kec8)^;#>ej7(5SyD`Tv3H>+7K{nRvfsFjj?Bn}w2Avi>` zT&`3?x+Rce+Y5{oOG(QxZ^_Rfq$0fE@JB8i-)rwbC zYiJ$xovqOx${Fh^O7L&h^hi&|Elzr*4W6M#){$^t4Dd*gaA3ci5)}PChx9sPAWQ9P_+PjKyBWG)6*BV+qjO&%vu5Z)|rT?mLu!ss3TW&>z z0NYd^2e2LD50tDdX8q zroEF?6E58J6d_aM^-zp0gaOxAxX#PSf3yltSbSu2<1c;-V;WRThw>u@J0KI5>^{Op z?ncswTJ-(~;0v@a!U|BZ+E1^=N0U7HLHrUe4bUm6-3$j#@Ox9f0pSHCyctbj@p>92 z_Me_X5pT*T_#~(C_tv~M;25+y9N%!bJ5XBwHobsfmN?HZ?q;Ekfz{19hq`)$I8BZ-q$Wc~l&GVqXT|8#L_#E<{4as*U zCc3T%)ICr{o<~)s_!K-3lbjdF2_mjrvvlJ>6LE$+)#OedCS@eT0--NW*_T#{>!9oi zC_q$Rg&Y9!sGS(6EBMQNYSER5l#v^;El}y6ZS$NpTl1HL>(S1lM**K`$)`V(<%Oy2 zS9dr2wUGZx=D(ihzk2dtPw`(}`LEghS4aFRA4XbW=KabPEm>{=0D_n{9DlT!2U@aY z?*iuRX?X+65(SYe06C(OPaBjY@2Qk>8&&nj7rcliSdTviZ*HX(pHhpbbaHsdnBla+ zIdHi#iVyc@T#Y+#EtjH#|6+S`rN5n!Tl620{^z`~piGkkSE8rJ%oqEb8E1 zG293fagG?ew9Btx@yd+U#B}QtBuFbOk~<2GDqvDUFWALx*sK$`QH~j}BzqFPAAyl* z#E+n^Q@TD;@U9^Nad>Ymu}Skbg4>dPCyPv`^GrxLUQ~9G=U~I4gYCS|xY%5Xj41(G z7pHX{F2$A*KHE7ZmXVmU8ztDqA9YES{SEOOd)jd}#;dl#PNV_y*|E$;PAG?XKT<}! z3vqEHsvWSI4_N1cur#J`tIVd#^aiokyzzLEA!h9svr4f;D-<1$6)*z%&c&yY~zIscg1wBb2`JK23P?lx;vz z?k1GNkRIb)4Uk#EQw;UJ9`|?ea=&HI-#KfFBYQ^%Ql%FC94mNdG*G&2%DQ#629T`Z z*8g38p}5zvP?O(|=)ltpRY zeA1xUw;Pz6ns7;@^z;g%0{M!_OX7KSoXOqT^XPb!HSaW<$>0BYBRi&>dBC?y8mIT8 z`P74F4gE2>$6D8vB^1))^Yc6Cy>;+j${3$W&qTg=-lhJ>B6F;e$S$i+N1ll|YxDHP z)lAPw2|{r!xnhw;zDP*j=055Waa92Pfj+#G?`73tkxfgd+C5Cx9_b1Amsp(Mhbqa3 zo;w#P_T=Fa1HiyX7YgFbV_}py#rwJ>P}V+pWs&f(3-Tyth`%wR{S%23iC^TGPz6>E za%8!hK}LpEf)~wZcQ^lKR1}whuc1cedz;{HTy~>o5|u!9LF6E#dxC=(eP@VRD~IHh z%UTA!uk|1SJamM-7F_DJRQy6Tt35?k(T32Rs<}rN0+bBV{=6W1)5+)(N9W-BWu&75 z+aobmi8%8M>%4}I2?=)a8c6^&yO%N+3*Lt?LF~k^uk$v&VVKma#1U98>o?#P6zMkKiC_U{Ht7DP%Xf<(YAk(!nAR{FoAYJ+lS zlqAHuJ0Wv@j>*-;=BbK#++qv({KzIkjb@Z2Y&Kzyi!8^UVpRKD>C~D}DRm0*FJOD} z$s7z17^*BI3?YLGQoFOe>YY*-s6cxTx&(0cWy$-=YT*~tqe-VYVIdNL`UG#gTLh^U zwpNhpa}dbpBnqw~OhGK~-zyLpxP`SPVT3=z!x1z2f zu9}F7f`~YRB0?fDl*8*fkT6$B%mcPpjlc^ygTcc6cUbe5<1cc~So0b~XDGMoVi(OR zb#{1=G7sYPGDer_b#+O{6oZf)Ie-2+WFVz1dziD_828tIF+CXPN(J97W2j_l>JR_K z@F7SH8MsBYq;Ld5Xx$FB2(m$&cK>!WNiEXmVd_ zlV;NcW;?_Ur5z+A%9~OJzsH((cr9POjFK$>MiCN)=%2U@d5qu3BPAVr8>zMC;K4O2 z%Jy@4`wN5ZA6Ob}f2`JiCLaB72@+%b7%cC(06-<;9kHslxoLBH0!W5C8=wwI)<8W# zgAA|tz*;F^ivK_b7GexUSd>D-+-XEp&-6GGdu`2|h~G}{6qQNKyo9*v#G}@{G%D-0 zbo(BuGw8j5KCoHTIxdSZDMYVvzBsM+xH z$P2Fnx~Cp!JLC~SKZL$vWKMg=Bpuk>7 zU8AvokSVz#@{?=k--~(U{ez9q;*AskR$&MV{~pDo|4n2FjbR*?GxK?5&MkGd0I8_& zw!}4?(-Tep#^5(TyY?sS6O)lHQMj=D2+@MQ=L}e$1T-LIXe*cpt6{GD_DScE^OyI; zTvapYKtq0sE-2Trlr^UYy_t!+2CeeKvGAn*;QLxgI{_8LX_bFo3*|;tZ`uOII=$Hv zkQlTIu$N)3BGg&)He)a}G~)Dph#{$05=Zw6SHFtD9L5EgN;&jb;eu)RGA?-fYn2Q3 zAfXpgM{*a)*Dgm2*5V;-iwaZ29FuE0$I}(a8eKC3B=UCq1>2p;+a(4#iJ>YCaD+Xc zW;#qEF+q%M*PtecAIXi8t9d=;3gaw5bS}mSkjrdzsi^8CLI7qfD(ucg^3=Iz8n$iD zkVJ=syADKqfht3|y+@W_1-8X~21&w=F5-wd>Yh@$1Fed-%SnxO-_JNw!c_|STihMi zrK5AX`$7x@eV}v_t@d_cP41AcO~MX(s)2R2A#4@b`3NkLi=TepUyEc2oRw1?M@!uiED+I}rgb&3Dw!qLn=q;g~Eb1WhwnO7Uz=If`d9MN(l_GFS z`&I-*M%~LLHtj0Zefb_n-Id!_>YjW_qwa%*12jRHgB?mR6x$fB{Rt{!=&e(HG)@R? z5C$wJlg*lM!MYQmOv4Ys8@mZmLXX6+`VNdAWA-N-4XgOYc<;#G1dt6CV$9f!5ZQ$m zxNRLPfq4myNQM&ukz#YPOD{wiU-?AT3zsi>+ucBUaUD`CtcO*bOFkYC zXe3gInc#ba!BwC$xRzlUq|QSPE&)9m3@%bS*1RRqBV=&BfWOQtX&4(+vqpn!F|eUG zxLQ4_QykL-uO;huMR5#-naGS}GGCd^_3*c~=#Cz!8%}q8xg?VAFxp(-&DQCTp%_{D z5a>xZpxVr=&~Xh!Q$dAD~sOM~sZwDyl-d`kPj;E^mX`y6Iw z+2@3@v9R>Zhp>b9rL1M7AQ8VqHr5KGjfGOMvGU1o(%D#U{MMN(GmwTjXk+1C3NlyL z{}z#i-|eb}g!53BlMrJ7keZp5NS*)#5fw8F;;fii+es8jk-=w*;UR*AUJ&qD^l!@up6zd@vqcuZIKTxXl*g_D0A+zNb_yncmg-2 zBPK9z*iU#~)yO{i0J;;32QwWElM8%S2b1fAY}WE7*Z{ocCcI^uar4oz!f21-5hhnw zX-w7}ruo~jgrF7M8=oRcfem`6)LI5!417jUu+7devMrLA4sz+h4h z3;o)K91pO#GQ^6U0dT(B=eTXi3(HKcL}qFs?XJ9f9>^sQW|r37IUosvG#thjX$)>~ zwbBf(zVx>IT_8@eye^Dnd0oq`E-Fu!m;bRK`@a1+5uUWIeGb`N_Bo_?iP|c0FE>!O z_w5Yt85>l*&z-MPHU?v-#+b-8R)yT(RKo|>yKs&TSU|>(HU9z_S^o35$%8K8azpxC zZvR1<&hci%nZ+Wy1mx))4ANX=UFyRg)IvP#_Mq5~0FJV-qhe5!2MWR3 zixe8*wY&w@p1d=)k9Em0i;dFalY# ze{xE__BteQ0ortUz8rx+=)>7XaN*{}w6AW(FK_FDF`lIe+pcQx%!&?Rv_aJ?w5 zqinj5e2&<75Xa&J+jtPfT|#j#{iOf-vGK8sHXaaB(x>E9D$ub>@*)>@W`J1Z0KqnJzFWAHxt-zf= z0UPz?nRKN3+;aibK+`O@kPUb+;DJI>SuC8c*x|$Whu|H^w?B~M_(9tKX!9?(A^N}% z%eFs+)bHGHfpqPe`)&q#HV=aWBLeKkB_Nb`(gGfmHll*J^^pT+(@9$_+j?l@kn;J~ zgU{92Gi@A{YbOxo|Izj?fKe6K|M=XSECL!9RFwL_Yb2Ub2!w}^NNAR1VIz5&1mw}U zZnB$)B-wNy1gwwHfRd)MSl`yR)_z;9tv?^N7Hw4!D`K_Us{Q&Fwbk9GR(uretNDM< znYnlG-E5G2>pyVs-h1ZE%$YMYXU?2CGZ(F78;XjzBk@)__+xtW4c<6o2LZ|cU)GK5 zJY2Q7N^#A_W#Gc1Ko)-X;o6JqXhh9D{t|2!Z3vfB_zAY{V; zX7LxFfi863OsulO%zK`15D`2B*)xy>c){NgeZOcAz9Q-^+LLHJ8*^rv7(U1HJh=E2 z%x5GKuz%n62R5aFqjs6VTpY^Xub0M-1D>>is0&E&u(g+zQs z`WMQ;;9iu(wp?)rfBntn`2&sVU%Xs#_%A*kPP|;3?wiD4ZhEeA;A9Wl=rq*ovEZHu zj6bg83{-*pGFo)1z&j@4t2DSo9OAwVem5Wl-|QL8`7Qcr<-mnI@nyILpBoIvg3{_M zsGB}o*}q{tC512PES**{2c~8RX(@uh-S78}A{!SIrghgdXY-Q1YR29j?vjz@(jD!$$9;}mZoQsa@+xf{j z-_C#QzM`k;3%eijx22DRp<*@G<>Bi){HUjY{c*nj!vOji=F|8i6~jBL&e$2h149>P z(yvkH*npDYu?nlh_()M@|H+m8N#D+o;o6^&Y4Zof@F5!rIHCiedwUwvDRyY(8Tqkg z7}e(v?R)Ta(4O#aBXuPomO3sW^^_^4w8%C^3eh89fJFs#XTRVXrY{%uZI~-!SfW8q zVA;z4DV%NFwwcS<@LwHt?S2#vKt=oE)BrCi)D}c9{D*c+Rj>JvAnCEe<->g+XGOn( zhEfVte4faC*Y%G2Otu)K6i-=|p*9u8bLxzD-oL@E_@KKzRDL*c$pv*QuH#`iszjZb04qe!6DK}HPyw2?``C}ELsC`bTmIa?6Vq`V%S zhUA8~C2${_jj`bm=Mcuir=P;u0G}W+L_00-mB8N;unWM%5nJiAxclU$ZfirZ+$)Rp zJAR*H?WrbfKLU{Ys)Mzcpsq^?wh~WisdfU82YTs^_)CmLYL~y@v_CSMs+OsVM%+;wEoI7%}>Mi_zCfMq_H*i!fw;1R_zT#!eq7%SQVws)QG#tXGIU zRj>EXW!!h4rwkS|Q>m@WTo4bHwgsC*uYQyneEv#iaG0!?uL6x3yg~xk5b$0A6L()a zI)mj=W}xn;k0_4rM`PUwQ&efopewAll$gZK|gsL)xqOs4c7%aPRei`T` zz(A>wcq21o=dH$M{~Spbt96aZ3(Qy2{Th?&)N5lhpq{|13wD^i`XhgP*p&wwOjaO# z4Z;V+V9oHRkB8kt^yEM#g(JD^niJtrN>dgxhh9qJRUIHSPz3YdcS zf&(VFLeO3@j&0{zK%9)`7$w;^iL4s<=DZ{<=Ed_*5EEb1!!?zF{l6fEsiOJwie`+&E1phVR1E0uK7!I8+zsI-HH@!f)3;4?8kmp?70rLa?Bq|j znTYJU))t!7I0~;WnuUSCxyYZtRf7*?;)tnKUr&B=q5a#)pWLGGWFJhPcZogp<+RXM zDm1Z+0~(XxQ~>ru+R~32uD;fLUc{gl1G=t$S(f!o@6++AR4bbvA+Ff0B#9f!g-FSq+Qf&bg8tpBl84}vZ#?=8y1s_h zbt!PJ}N4n=aAYGw8{+AA2M!W3W)E1md}{WU;f0fo#?^3DjG^+`=`_{`gpkT zHS~R~-A}`f+xw?2@7#w@1V!udeqRIHqz_{&4_Y}WCaCxfq*_uF!!D6qn|KkiC9yBU zQVFy-_y=|fli0!QnAoeqh>XO-0-}gL-6Hn!8;HmOA`%+V#s-bdR(+4uuHBX5{|XGs zpC{I+{IRb3>L>Vq^gF6-?yF17xnnhgx4kHrs7(|SuKXS~wmEDpCzn!Uy&OYo6O$;s zZ^H&bK4j2ndvC-bIh2EAM|^N*%1&Tgz9`y5D#*_M$5!v+naIE)s9X05XcXYE7)ThBa*5wEiWF*$#$%#yu0`Kwd>A{i3+QMfccYc8)f1RKcVSHLeX~vE&8irMnK2vQS=9_G;rVg_LO2!q0l)^|@h5Ja(^GW4!1fh8T_62sY;?UaY!tPmC^~TjMPC~mMLRQ7bQ{29;L)@2sPOrid*+XFze2YRMq> zGGdCdk2KG`&;K+0K0ZdzWsrj`&J)PSw zVNgNdnXHN3*gj+q#sIy@AV8p(lZGoL`mHppZYD}4fyp18Vpn-se?Jc&?UMz&2cIWK zQp-R)>F<MXiqvdyUj%*ri zL87pQe1U1O5?G^{2H(NT-v7lk_#Au{BvEZ3Dv=9+q7kOS`(UI}roo@y$5qLu!Otd>Y}rHd)HDq?SOmO{@6soJ{9Uwxv6u#r191-1-~h}8%*wHw2LAyjj$#@d z#Ns0JH@|I;Nn%y4CwAqF(J&2LkK$zU_|^eq*oAJ=ntr9sh(q})jRcX2zQ4SD^ zH{gSXlK#no$`-{#?;~TPFUwatbSTQ?8}MYqLn>RY?_RBz?3hY6!d#DpNZ20Lznch2 zUix>n;nqBaKhXmWma{O7Gs?|F5=DyPRh$42q!eD2vA9rnEcg|^2v!|zOgFr%)=c0*da6Vo$pw)&1FDFAF^2rL#WPCErq^; zL&*TfP2}s`F_UK$qvleU!W2g01cV%fMUK{`BwZg4SajV18=RA_Cs7q+q3d^Njz-tb z2ssG4WOF+&MbokAG%Y-XX*y`T+$W11Bq>v3;!S|ZV7>U`w=FL9!wTo%(!yJA9+R!$ z#gdE^?E-iV6fH_o^bu@cPKu_EjiPH8XQZeX;4x5iTffDl&OzD2#U@e8%1TADVjAlik^mMqIfg_E1Z)@KmXyF zcr=)qqV-JC7ue-kb*!a{+~O2PAK#Tu(a~e0=sZuxTB`u~;4Fpi8_i+9`9DZXSqeW* zWVRH({(TdBp$+@n$r0E-vRC9)DvJ?7d;CU1~;k9c=wG*ziCE-#@WV933BMoIIr1=dS38k(A8*H{|B}BVI zA(z}>R?jt`LFqHCTbI6O>7Is#5d%hJ@?sUlV>eO|R(OLwg_cwbuU>EFF^^L?R|Ual zr<5!?N!s*}Y2?!~;Cg^8qC8RE+gnoeb<7alTTaIPQP&c@Xz*XzOUuUT{woV-_9EWk z)EmD_KR=K@E^xDf|8U~!AJWWi>Rl8>t~UhRBwB_FQ=PveI?>e`0~*!Ps5HcwX|biR8Di9z?)d(dY<>7A%Wh{FCI@Ri$%=BvI$ z0}pL1-^ve8Yl^6b21*EHf^Xn1iawNGw1@n@hyUQ~f4}cj?UG+nVw1>BGt;ws9I$bM8bvsUKobTw z9fn9Aobt43Cm#^n{}{~_tob1Of`J>PF8W3 z<4hp-i+DZj)SWP z4ttzx2p?v632qq!n>c~~tbtAEIa4yn+-I<2;lXL{-$t4!OAa>jP*j||`zom4GxU|B z{fR%~%ui~5S=c9n!myK(wg;yg5Me2k3T^S|Kco_y{B|!ZMU`V5SO!-^2sPSMv1~G~ zd|7rW24O4mm@6hYkplZImX`Ky--66mG|Q;GuT!N zyf@*L3OsJ2UVsC9_$}XilY5GUOva|B$;%D*~S@&`uA;&fwKl}bsO6Q3U)F6-hI1f5Z=w{-~z&UVD zV*x}qu>#ty?kly}aR|TVdv{pu0QV=?81BjE5IgpP9oXnaXRK_Mgk@w0)fnPTIcKg~ zY;fm$p9VYjf*t$ZCgrLeT!6kyO0hR4F>wjoZA(*?&0iXXy=_`09oC40G^!q>WeRS4 zpCu+;@aZsIkIN_Qb#I05vPgWsQA*_9c&QxBnSK?iqIQXlH7M}lP9mPq@`PrH_u5iE z!R!jWRP?`w(-+;B|ALvdbbRGNFEP+Fc;O5_wBuXKg#&7vN$c{Y=pu-$>>nny7XA=5QuqDhW7LLP`GFZzIfsyTGmz$Uc+r- z)5Fw+sQXp<`YxU(uv4TuyZ?_n|LN{~OYeVb=i3uJ+YxGC8>PyeK$N#=Os!f|#*IASsm*ZhmHD{444sbcV~X;oYPi~;&_U%#93&#LS{ ziu_))EBaUPhOi>=Gv+2ny%f(K*xHLS4jqFXu$BGKB&s$*r|y4|wuIrZp6s0iKEu=R zMwKE>>`U40)zEY4lt24+DFhECX&{iIsOTj~=^WGJm={3NJmBk_c(;c|(_bMYkNln` zU8Rh~9tLS>tIc-b|HkC#L%zYSEa?XCYygG(A0CfUhw9K*@VGB)+nwOlhVNJOyDR#S zg3Bn1a5+)n>;DZgS+-a3W6E}_5!(4SZ+kXj;oP1}F*Ko3?1&wMtsX^tZY_0RwewbE zuyTUFot7gpwyC3aN4EO>-jWOI5Zk@Qe+Vgeop^zASMt=wXzTS~q1O7S2Tu1g{Sr^_ zVi7wHQvJ`Dp!xTI1POfH_dgr<@G2;VI1Cn3$89l#Gz2Nf&vI;7MY2~>vY$Gq9DT zWCswmc$se?=eKx57DxV2hzFsOiTjD_L_ad?ExCcQFaYOVEwQE()?5p#8Cd0{%q=YZ z5pq$Jgp(AZ-vIpg$PN2*$H55zJCMQauM_np9!l7~CGJA#K+fqh@%Mj##3xvZk7E*! zmYB;W<|K*vXTrq7iz4=A9A}tpLBV@V617w=qWDcbpCd6utyu4vT|;cN&Jy=JI+d?3(vr(oW;{|8?e%rOTMx##d-nbBwrvtq1uz*rH8?(6Rf=cb&c%S zezZ#D*Jb6GZRPh*3Nkx57)71>tt!szCZuEQQTH54HT`>p$u6=(V$pG&w%&9(uqyjY zeoKM<*q%Fh(e}hKSJLDRFHj`s^p<>!lEBAuWWhGdWV$Jt*;c`pA(b&S&9j0%B^) zUv5Q><7>hTKRgyNOQ2D!Ur#B3FN;vuTMFSAkc7xV9*vX-zSc>U4IJNqx5Vd%<9Tr5 z!yt)TFgM*Ca86#7cw;^`-o<%!z4aKwBC{&N{>bMc!@MSnvbAndwpnXp8Z=8uy4 zjiDXB`g6PwoQ^0LA_^9Kz_fBi8albRB*YY)1q#lS6qEzSMrR?@`8CGEF7A?I!WwW5 zP?Be!PFoILm#Jr0;*}|Y;$U^##+a6Em%zEK7{|lksD3S#gY?nfl7CZ&b8i`s`=hQQ zywG{>FXNY6%6n9lfoX|9Jxv}8Qy(FC-@}u^sW%XUGovwQM2or_{y0;Y{eS}B_>XS_ zl&Gm^;0>*yC^0vT_1k-Ca~`?V*Yy+q&}AzJ7VV_nMaO$~Uq%{>h6@{caq#bM*T=B4 z(ce%UO45GUJ9yP;(tZ3t@RaC%Z+KX03zR>`hvzE?y}W6db`0-HT!!yT^pD|xF7!*JjtVUU zj2ivB;5>n`975n_3jDkRV|q&9B?`P#fd?eGM1gNp;EN=9p#op2z+or&LIn;;aFN0e zDR8|6&r#rN1@=ntYz00|flrg*0tGe{xIlvQ6nKIHA1lEpD)9T0W#Mxqc)9|=q`g^KdlG!C0^hE{Z%S~k0$-!R&q?rc3VewI@0Q?W6u1pwvU$MRGMMAdLB7yS zljt8Hz~u*dNsN;8JV?)1$mieCGxSMmKT{!hyLJPS{%p#319X6#UjfcL zP;u~o>`-11$1Lg4$OLPX2{xEYFS5#kyjOsoxWALE;yFLx!W~skXfRP;g$(SQFU)<7 zmHm6ow1)SRY}r1IS(&qSjwa5yaQr^(f~I3%N+^N&KVc9$d|=V|erSy4ecI09 z*M0p9AHZZ=$!3{S$ccF>Vd6v`WcqIMREcty6Xghr;sVNR$s;7n94E>?vWxB9 zI}RuhCHG-E29l0+qC6>44)JYzouqy8af!7bV9cm#ZVwJ%z6K$EvqT;5+w{gTscmf% z^_dK)JrZ>Sp~4KGERm@6{fqQeD<$egLZvbNaEUs|s8$7>EU^v+nZr05D|wQ{3TH_0 zQ!?o7+N<%!E(7WX z64gzp;AxUJ_=A8q0k$=%28lJ9N(6Q$&z4xfcVZPvtSOB3`Ec^966+Qx)_93^IAeV} zoODU7ekax&S2JUdV62aZldq9J+rMy~6YF;p>qy3WcQ{GkO8{1t6YCm@HI=bm8%|y+ zvF0$Av)QbZs7Dbyz`A6SL_N%zpjToY%?VyIoLnNY{t2*+X(vdmX^b`epX6~8>uD#} z$Iyn+0=^=#K2Po^`P0AfZYS0=66+X=^=a~HiFK6|>voBCti<{#d7H#q@5H)HV&PjY zsLbJalba>hDkoMzVjVBBUQ3=Uv5K8oXG*N;66>Ml=@RQWJJx;31x*Wz)k!&rO8gU& zZi)CQ-klBoe!`^f2fmZ0zH%k=#z@{qqPBnGbD6QxX$kudiGAYGCB(nXsOYqWx>=&; z4mAMvyO~kZa|v~|L_G=Tm-H{}$c&1fOQ?ksb%t-k!%z$jybWg404#>)Bkt)OR|yH? z3H4$`%lU|mT|4*Y`6fWl<|Og99Rd<#Ma#C6;FEe5uJdtSh3hxCUc~h|u9HxfYFx0P z4r6!p@Z-4tg$pMZ3@^vE9v4>6h9Ab2z%>bMT7YW}t}VEJf$LAWKEic87+!{}9T&a? zF#Ky=ui`ok6rP5w3D+Pl`Yb3L(gt!optEQPhFkaMY3RW`I=L^)q0T%wbv*qvFS_5S z{qOMG`*-U2I3_jzft(`{EBO+hah@AK5-Wk@2>2)i$K#vR68P~I0MgNU`*%)uZ~nCe z{)2!wGSF~uzDWY<`%}rw7+8wW`bglP2^hii<~{EI9tnGtVCUi)s=;`7UqC{)6VxZ6 z6Wo2vCG<9e&XdrI?!JW*dLu!pACq$7?mIz3FDED&cL6=j-8Vr(dkMM^)emTnyYB;P z@B=v!g1#uBliYo;NGN@;Dv3jQL<^Q4`yZ3Qa|n2cM4jyJyIVpl2ufNIlAYr2Bkdo_ zo=MO?2|e81cd3NVCTORG9^vlmme3OjdX9u1>F%RNQ=~A3pdJaG>h3F-&@6&}RYH$) z_Z3R$zqSE7RYH$;_f3<~w+Tv0Fesbm?ju79(tUxTNeTUmyYC-(0`w0AeMUl$arga2 zLLVUL0}^_yyKjet-a*h?B=k6UAIpM)oF5aEG+X3$yu0rziF+lWLl*-y-QBlIg0>Q9 z-IhHYW5~CUUe5Ia!H5R&{!MzXruP%04S0{z`(k>}jh5qm9laOQ`$^FScyFfn>GVD$ ziaA%#T6&*E?|IQ9@m`O2T2a6z=t-y&9q<0^l*a{%cCpLXdwdVHjG!^qTgb;^|aO1AVP`Et|AB_)m(Gtw``-nsI-RPWW@<;~0 z4(+xifk&Y9;}FN4WT~)T`yZ23H6{z6wY)jr*pPB+FS0 z0#>L4f~+{Q(ro8BRrD9sudMT78Fcq9kPFp1k?nK)cHw(cklNVZ^@gti^8RUG-`-w& zDtMM~`~D+hC(`MXmHiLncr5y4P~YD%rJ1*~FR8V@Ic{hloqxbSD;Mqa;d`xB*sOqa zwW{0|%W-JWzq9ZFCv$ugvH}o%iSFMT9*%$=VD}Cp5q3AsD*k~%!hT+Zy9h^M8omin ztMee-5A5DGoL3D~%Wz&T-|P6^!1wih-@x|^`2I`2|3ALp$@jbYeh=U8<@ z`2Hy0ALIMueE%!o-{O0M?|VepUd}o zd|$x#Q~7>6-;4Rai0_N}Udneefeh!B^L;7beSANQ@0EP7=6fyQ>-gTl_mzBK#rHLQ z|2p5#<@-oNc?-%g>LcU+j_g=n#i|?EH zektF#^8MR<{|?_T=leFke~<51@%5uxW{ZB$+2Q?o|L=3_FhnW}u(OM7v!EVBThWag4zrE^Le7Ok_ z8FW!e%wNjEgwyW?Trk4$MawYeGi)T*A6Dx!{-slEa?C6?>5=qj#>cWG|C#Ivs`rrk zZBf6%OhCPVQ9h%l1AdNUp6a4jao`Z#Mkd2@?SEh;K7&d1;;rFV_D?wR*B4w{_OGmS?(ezv z>U%t`O|P#zw|(P}c3k(nU%m0*b02SwQa|O|Q=Y%*&Uc=>wj)ro zX8bMZ4lR9W^7SQazu8uJ%JPs~Ws+-}~Rqzwgl9!^gaP%VD2vdFjX}7A^na{r&cVyz4qFszg_jM`}(e$-T%S;3m^W8KBHvM2d}Ps za{jId-F16PO+JkFYu1z5F3*;Tz2>jk%*&FnHQL|Re>pjEXyKH_gYW$MrjH)Ib1~!fwv_Vkj&GF`ojSir*`*%&hstmM zRWvlrMkkrQQg#w!ZXy10FIiYrRCGpxn8+P!MqOxqyX-{^PA@uj;TgsZszLlY``c3V z%SfQh@cWyCq2>=A<6kt=JSP(GA|mF{^SaJ%f1sly++5h)-7Sz%XQ*>sdsnb98W!r&-`o~z zUgr<2N0x!6j*tcK^lipmD-y`s9oTUY7ztn^wS-;#6e z&;HCP{@Ob4Qg2*WsVwtz0a!Kla$vJ*s2ACCdL}^7Pg7yRkdgr6%7@hN`Hf| z&g&`nFG2JAGE(<9E1||MpX#8!t3BqYqWgQ=V{QI6@Sp33;a%voqXtr>45%V6TFn1N zylY)oxTi~yK2#QIkF_@kI{2lMVot0_bBY>J34(+yrl)oQhul_ z7TH*m7c3~ADDoBri;cX(nNi{G3LZ?H!if_(tGb3t!yF>=f`$BFfId+9rSLNpiG(A} z%>1r!SExYbb_XI55uuJ;(G!lWn@xQIr4qT}NHBz6k!v`?(NHtVwrH-%ZB{(OqlqkX zI|ET@k^muYyg7u2ra&ap&LD)XLyFvBYAZbz)&3=(y1EK)9YdDZ)Ga@&CJhLYvZAb^ zqQ;5pi0rTRG(c`uXH3KqI3h7Cw7VnF-X$=?tvf%A2d15h31Qn63PePV#AX}Do``5e zSpt#fHf|j=XU;V0LotK;KAutWsP{#S@}i3uPZX7&>Se+ZWumsGzG9UKb&2ZAdJyX) z5stQ8*c^zVeYAG8N84~7rAHLaoj+g96BtBKo4at{eBq_a68WlK8ZA)D3q)5qW(16` zcxMxcX$l05IC_L=M-{dPI*eviU!WN^5EbhK9q|w(QrPGqIcR&2(x9N;+oKroD8JE2=TQ`cbKo>=!G0T`k;d7e1Bp`FL%Y5xeB)?j*4$F+CqVD1FAb*?u3)HTv4G|p4iZnP?KW>TOhSN-nIz!O_9Pp$YOqKE zRT&gs2wzAfOk1O&SPYS(#bN~%FxzWSAku{ZsEz2`)HMvWW*#zw;jU9+XkqIpc2_hc z%4%1L26;tE%QQ^7eGNvaixjJ%z+m0Tq zEhuyS#bui_1F5>wn8nGc+D=hnht|}3t1+aNSJXppt~R{YD=X@1s;j)!4aO4hvWjYP z00b|_@wHL~Y7}cphiVit$RWN(RqdjupsJ%Hig7X&Q$JA=Y!Bgr?$j9$#z`gRpQxxT zGMWR>SFHzt=9wV%0ML9Bq#mN8dPSAT2!=aJR@=`n&AOK{PYe$^7&> z@%5nL8iDS1OJA?7G_zI@Q5u_zjS8?IqP}Pb4es-1K!IZLIkJ6a2w?%90baim9jnve z!8k*(56#p-HpqbP5IKR?&VZ3002J94=gprH%`YgAldiA@HIk0`M^~3QLQCAe7HS4>++rG1N$R41)kE?4dw3gfS5fV;%RTR4fce zj?_nwXNwb#wLzAsc+ew}Y8W%%mX2@_6v-F_7>WSx!>GZSims}w2x$(X9;y|SoI;EUs`iL;6kRgEB@8Le?agAf zt)87tj5HI~uDBS)eUi9hnUu+po$K2p;jT^^P1ZxfWV&QSM;<53I_oc zN(m>sZc;2p-~}N&BH@k17PH*89BEp>jTTuWQKf5Gm{m^3eF3%-|8c8$N_PsObCR-6 z#x;zm;dlgZQZ86!M?aB+#~5OdtXey7ttM;ZaIugbN3~DL5X^n3a)Pr^_K>lNrY~)a zNs*#QKRO4!vK$~eMmb_y!@44OK8y--F@c5_b8ca4{hU4tgdj#Q>cO(lLa0zbrZ%q> z;!#3rn#0qY1BCN5NQM{N5{5u9m2D>VOryQE3;K*21Fhjes-L3~)EZzJe_$kw2S&IH zT?n0-%?K=Qf>B$>^&2rK*&r2!Vq*o3-%vS7u&p(q;XqD?N*1-myP6jp7c$pjh$RRl zAVFXmZpCXy)8gVq@g{q?r68PGN>)MOICER7|QOp6t?;s1>G}=N}W9| zX|vlG8>di@KSc_hU>L2DhQk<5(Z~=ml3H6r=z*PP|EAhw3B;qRSs*z&V*JNg+YYNo z3nq~?XiAD?<>r!MOi3Yd)J(_56jS;;qEiiHbw#FpfapvDy08s7oenEct69q0joPHb zEIGsD=4jGkmYw^#nqA~`Tcs`>3>6%7BvK%a#ReuC!7)Z!#F31XS!x6^QW$d&J_S}> zXLGJ|FuNgpde~@cZ#`fN)Lv+SP!@qgA|N%HNn@eODyNcV_Ul}8VsF)-h0g*zCBJEq zt3c1`$ge9fJY)_eEgp+KMy)9}AU|cbL6}&{MCITO(@=+#1QQu;>)?^Qr9R|G3_l|J zySg#UQz^6lZl-D?f)qbYhki@D7(EIN;WhQfI=BUdIxy>2JyEg1YO)8FLnH*&&@_$O zl^LU1nh|M2LppPax*BQXR`JPPY!mO6PEYk~Cc?{^29`A2S&2@WKg~hh9O=ynrZE*F zwk;gA#3u>!`UX!!y}zNN%3D{A5ef>gAN*oH9nFhvR%CKA8;c4Hw*&*26^uwg&2G9v zp&<0;U=Wk6a2G6smYkhsgbG^=jZ+*s&6;;gA;x=>>|c<+BU&m|ln5h%U1K^(dY$P> z6?iOB4N^zg{AaQ_pZgva#ng(3GM<<6LW_O&!}^~!w-pWM=p-9BX%sYR#Sjqa*vJbr zMl0->Xi+vDa<&o04ov<0iLV->>bfR%VD)aOZb^!cY5RU_9Z$XtvS z39`^q)2F2-7~yTt+UMq5}Y6idn8L{lDC z5NKhiP_U(vZH$&}t#DL1B3m#tbC@V#!Dz=i6g59{kTBsW7V-EW`o9l2f=R zIuipV7XB;ic@1zSueV9TnE{1VK6C}d3~j&?y{Ij(srII_#`>F_GLQ)r?Tcy<@+V-F z*QAgvs~g4!d-pQEJ`Aj1AZZu|KZljfz%bpe4BJ@Q(Goot~rdAoe+kA3Yub5i#1uT z;u;m@H1~uYfoTqH19Qbxh;3$KWG0oH_-rMYa$7nAF}OO_8;fQyPR%}uM3kkw8`+x` z&N}3n(%ZTu4B?&<0e9Nl>PQErc>G%*7&c3=bFp;Ut79In^gK z3oTxn?lJ`_mm+I0qnVM_4#?c$SoD*g9JO^7D?JTf@(G1;P&$r4)5biV##T_mCPB=Y zW@EjOMhmLb01U@uDU5enqPWoTqCt~(hZf`PefFfIRyUA&pb^WGkkrNW+cYiFf;PGf z4La}?rCsb*A%(;DYpqnhW zrnX{V)c*q1){ZbtWA^25N$zM#V~F4tH6?f~hl#XUR8wh0VX|?+j50(yP&pjv@JEbu zx6Djdg&YYSY{c|Xu8>Iaq}Y@RQ?|NH*j&vc#|D+wimrCnEz@{Z9qz(PW2O*JPOZjA zjSbSuz{}3$0zm+_7s!^%9uY=<-aN<^C{O{jfrBi(+oKe@sHtJITG^vM6jKlE@?TLT@SISxzwDsQ`%~< zD^`@E>mh&Xg7kkE9;6<1c0=u zkE5tv&Xbgg&LJ>Keirji$$x5Q$)7QG@=42(I)VTHNL?1jp1QL%OuDl)r=^z$E7J|w zbdYXAC0AW`X6FTsGu1qZG+R?O$?phRLhO|yMDy})e0nHFp@Eux~5Y8CEcug4}B zZrG0lGcReYM2C@UH#Aq~p-BPGX4VZ2{QR$UzC#C)S?XwI)2qlO--}cx~YxOg|!cz;Yui@i2x!uws201jfl*h6@nJl)nTrmx0Eh%WS`AL}Iz#Or96MMzQk|J59V}ylu=W@XpfMPja#IZreugN& zQXP~tm(kNkVlIFbQch&lSt%U6NKNFzU2q>^4>lsq^Z`UGwu516kjo3Hnz9ONuI+HL z2J8%Iw%ilU7H!#k&GwivDzE!e|112WH0ojBZg1uWo?`cys37}j`RZys>x<&b4Zd=@4X8^}I_4oSYM6iW3BPIkmi={efe(=k|Y!kJJzkF!{_7m0JV%9Lre6m8(Dpo=lkcC4K~Aw$N6H-y&bA{)d1YFG@Q1&@^4&>wYwG%6T<2;*IAaq@YaR~N z$^$JM6~hQW+FF|FQ>VNlsW&Kptr5&lxd}x#b~c5vP$a9+D5E`&EYWF*Bac(+s%F=y zhpLJ}uPGGkA*Y#Odn<`pvO^L-&3@&KLkWO&R%0Wf#oV)rkd%hKzCB==YeP!EfgiS| z=9=|lYVlZQl4B}Jz=+Z%2RG9_z+iD>NpD`=G&?D;hN{&_ZqU}qX4n2DgT0&3Qx8G@RD z!l0}x2TB^U2wN*DZJKJPH+{>sEnQVL^RqFeg!FK!!K#r%wFOggBnxAjHy62xLcv|f z-JH9=+7t)vl~==U>wqnAN8Mnq16qC>mWdn+8TxJsH_0@w6+4j}K62r$7+qPem)QFT zW}du;LKZdX3t&QS^&+TMor~9&RyVFC|3BQTV~s|>1XH_57c%N+8P&6l%6Tvtz*1oF zkY0~+hGGbyZ5Y*<9T5U1A@E@a8h8gxp0^aBPtw5bJI7zYVoANXA?1u=TM|ImOu5aB z8i51_`>9do!1LK$T{i2_=@XT%pkUw&2D*9inQAE|4s2YPag@?;Cff~*Iyb=>Jx~)f z4LW4cux1cuYh~N>LR0m{1U(#)&UkXU+o`3~@(8pt=@G&Liqu$hw^gCQP}T}V164(H zr~_+QG?c0K+Z>19&C0n|f>BvVt1{`<)KQVyOh9D}&F0m4Yj#CB+wziqenf**JEr@LBWY?pqc=*cjmZs6j#lPu z$GPEL=`r77Y>#%D;d1+u99~IRCHYWj)P*|Om7Q9Sxq6baA)0BJgIz`er}md6>?@q)<~K|&^A1tX2}^W zJH`i%jp6tyST3Z+Zb&6_iz`j)Y59|S1-X2nds}l;Yj4RYRU(Be5@1&qs$1+jF7v|0 zLTxkVl{L(RrFU3*lQS(U=FaC)dy`$vk+@CCEp80dGkxb&)|91snaVMrXiDoc1)~X5 ztKC`>`2bB<4JpOQQb|-(c#kPkEk;^L1fSXu4c}bpHeYOC_m!(ClB>Lx1!9pTDn>e- zw!tzM4?Jo}duB$_`c1NNUnCVX<^Dcer*qb@B}$dy7G8qzNazS`#Iop!xvOgMEm*pR zBd4VK3t3-|jl!wgH9O^KJ$vLdjR%?k>qKoVksU(CivhRJs;4n9@` zwkZP#j35UzIjd6kItWTrUAN4L2g-F8%hh7pbfg*qO$6>kn5RP}Qc_>q+S%Ehc6VU) z{s45TW*CL75C?a_#tI`(3+#YWf-6PVBu*hq)t-jrRPMxYxvo$sYUSt?jW>~xTL7k~ zRy0mJ#7hpyY>rn;7qci&I_QgQ0b-usp=t%;>xvzqvlwhL3HnJ(duv=eeekRix8{yG z8!|Bpl6#+NCgzCb$_p^ep33n}&B-w~E#)I3Ko?m;F+P~eY`BRg&1i$z%$Z6Y6E{-t zp$~Loiyd!?LJ}Btsnd{FOXC3k%QAD0TuL@-TQx(QmfB*m?r8CxIbce(kPe9{3`bh$ zUIQbPMj=m6cR_BcV|!y8)HZV7#JoUy8-mCh_+YIY#Di>2U?livrgq;`URow1r%f0UQOO6 z7^|swlP?mO1wn)69q5R{lOM|ha3lR%S0dNH~7ARxP5Yl~#gBfk2+&)*-R#ue3 zX^gy8{WZ%=8tPVfsr+n$v2&k*5G-V623x=&UTFY9w45lb87_yC)y6MxY-sFSidsmSe!##{3k)T;qIzkK ze`!Ufw-DQyLm2by8+K`!f`_Tx&C(f%o0>d11HN65ez|jVXBoLmJ(cy|+(IL_aA_gE zW4b^;U6^mcAlQQL6O!EwO(3_3f{3g1Ti75YbkPeAYUBt|kWGAusZgX%8d8+vC-p7# zs&dmU%XDC)=3^tBnlsqI0y3~MP*e)rl ztyI-u-d0m*6NRWZYF(&nrwC1p?3AAvwB{T*BAN&}pivKTMm=ye<+nB>nxw`SN;J#y z0UV?pppu)ySR&gf$XN0bNgf;)WjsP&qSf;Z6bC0jDh0YikZbG^NdDe5B{NrNo%?%9 zDT|VGE<_(oZ3ygu5^dBnq@{$awS$Hw6w{O_QoG>81rT5<0@MlR=`bWG<8r2E&_t1Z ziD5TV=3I1S(gE!Wreq)l0~ONVEY*-rYa z%okOmY{N*!7LmE(h^5ML@WVI+fT>W>K@>dOgTFW#N}w+`p=|K<;4vPpEJ9i?R?1LS zq)-&dxihw}(S8(^k2et)3OZ8CbjPt=5egXW*mRKrhgzI9i78J%(#<@&0Y(nfL6rwM z?~)bE{7Y6W^_TfPb@fbMaH7Czba~j1#9CiI8GgD#G>R5*0LBs-kcT5%AV7sOqX=w` zK@pvi3CEEd5rV@%xREY>M=Sw(zQrUp` z+&HOk&`wghty)lJh`jFEc^w;O=S2lN5~dY}!Hswja{wp{kadR!TBF`qmG(MMy^~hK zXF#Ccr?5~ye#`3?NL`p4%T!MN&s3t|P@S96v z;$>Y!Zqqz-gr44<+PxH!f zm+B#uA@;n%kFL4ReD<4XC{kOJWj9gQ<^>zm(BQ@!rPA{qY@+hnp3UOfL8;Q&p|--A zU^81QL0N5BQl%`B86hZgaXKf}vU7VD6NZ+G5tin%vfeO23tUoe3G$dhJMptw0<}O| z6z$5DDEt}~Wc#OX?vGIjA6|-4lI8&Z_Mnh6Zoi5P02%;E6m*l8yym=SZhlK(U|dey zS^4c8PhE9I^|E@AS1a<`MP8T4^N5M)2@^S(>d`Nj@!c?tJS;?^li&avZ)LrtPoCtfYy%8x@YLZ1UO%X*tN{g7 z9~74p$LzhP4htq$)|E9i2*%l)6fBdp+Xp1x2x9^#%3Px$nd?X-mV`Kaj#Xlenm8y} zRc1|tvQQ9VTpG^Emx9BiM}j=n<&|E4Jp?-@N(`!~_IXhT|I%7wQA1r#C4<4VWz}>- za7~$fUs6-oAkXIDcl%_G0ri-Fc$Q(X@YJdVOe>1AaWE7O%S#DMu9!9z6N8vrTUS#i z&%LELb=aQYT$*C$m@l;GQ00+Lgch#+9uxzopGtbld{~UA^m2@P^M#lw8#ks*H4T_H zm05mI4kS-Qjp+-;$x-v6-J{iItD&xV%VZ`vjof)|3FB5V+t4p-DsiB1nLL(tSwls6 zs-4<>tvC)fE*#^Evrf?!`E=-&9$6FAFh~N`1MFv6q#~3p_tWvy{8nGf2fmgqM?1x7 ztaa3msH~oHPpxd^NP&1;YjtpWNbFLedNaaO#CoeeOVDb#$)nvD`p89$S3n4cr(`XZpx3+c1V}g!kkhUFxjr4rPXi%_S4fCQ%Di47yWY#83 zz6zXmJW&+e7GlnXLb_qL-0Uq^k)yM*BFA_buV)Dqgb0Stit&U@&9r>FQD97^9a=%q z!5gTAbuc-)J=MW#f%>AlEJvn16q$Shmn`y#WhSYo;3VEzJWAz7XK|+Hnw@|y-GmKx zUy5R^<}y*%jIlKX=6eB+hjb*t+xSEjQyUybSaJ%6XdD-U@f7q*9a^+vwLQ2Ihxp3l zmxMg0Kq$A@^&uz$=5Yrq$}AN{DdASkGdWoqe^x5K0@#v)9u|(_u(D=>HOSP9c}9L9 z9t)!p1-e5Qz`O`0QfA~w!SG_?7dv9Z#}7OvjR0wegxxKTU!b6I0r_RN{l$DXf2BSH zqXJehOvT9lGTZ(lpXD81(>NEDv>ySNS}0vGzyd^bO@8s?g|_tb%WS;NHeU$Md?qaO znUKt9JX$H?*-8k{RyrnnJ0F3nyh#N8;t3AUvLy)>c##nFcD$r z6%mPb`pq=yIf~88q77%N&MlfZf5F02Pdoh#R6<@56OU5#G$l?1j4wci{4{7YdvBxxyIIk9Mpw$L z6KKy}mIU)A{AGg1+C;;m2>F2@7=m zU~ZP67gRA#ATURa@v#HKW`M>V0!uacpaFjc09b6J!s6e0JevmvJ=gplN6ji4PN>EuSnj~GbEn|pf zs(`#<8-~ItW%~t9VFP}7M03>sB0A=yzrx}R1Ce?X9rG-ZdJ-K)7Dzqes~i?cJz<0m zH~Xc}tL@n|4`HspAZUCkwPbosaW%~(O()g{}OC@B_tEK6z3LS`Cg=hXEz~KwFQR(j#HY1@=UASlWa}4`fV(-a}A9 zA0Ch&2QfVais=IcNXOzH z!!JMmfnk~qG;07@l@L%+eg|F#w{@K<6rdxIZ4{yMlKO-ijQBHw-i*HM}#VZb%RnUy?> zIUwv~+VNkLMV+Qqt!gn@QM4DRBi-Sq^DPomoCC2;rr(cEF@7A4?e(UAxTs1x@c0r05C)_yrbVJELlp+QVbk;2Gu z9J3`|g#Bnf(X^O&JdP}E@JdHOie=6SHn=l_n#+f~@G-OK zI%lM`FlR(20kzWZ`6!c)y`jpMWCd8QmA)n8 zHxG|=$^{NmHSBDb&X81VlZnBu;%JyDXc{JLGqU|;z_*2^#p1~pOfzWEydY!mFPv36 zLRx&)v@z3#^@|kQ9$KZN-QbFcoJdBj5h;=UlLs!)Xd?T+ExLlV2c3+?yHieKfVF+} zP$nY}sCE#hKq)F(=&)*u;$J^s@14xRG<*`GFzZR4SgXT0(KQ`}QO}!@%oYf>jQ0gKv2U4o=JS?S+fw1u5U{gN_*+wTj*f}EELmUH>Js@p-vInIPQ>tOJ z;nQRrH}xKDjx&crg%t0G@@c|YeWgQpRcYlril^S8t@ufdq>bchAldvJW3{cBs-&zo zs@}~8r;Qr7C6~yDXqd)|)2a-KUv6{ww zxzAuE#Gk?gZ!sj(HpEcG+3Fl2PJY;eLVj`)HT#7lfbCE!b9t*llg5&dmXdhSw>UP#Ttp3y<&}mcMkp=|w&;{Se>z!dw~)9<&t5OI=uM#DZnT($%LfP(TafUshMM0tE2Jco8+-tEYLB~7`8s_j!d%@@{yEMHaB)-*i{{l8l{foTP8{{|8<||g+po-8Q z4Czx6r zWn!WM*Hrq%Dv#N63s`>jipt7axw*4aAC8!ntCnAI&^=bV#ccXB;22cbVBo+td~R`> zQM1&bRewWzj@7Z#fx(Cqv3-CXY}wP5)&-benB|rBNFNd)8Hb$-Sk=SseM8j8c@l!m z8mMe^eh7M9gm!Ph{6c=f(ruf3sF5P};?uBA?#zfHse?=8LD44n_aT}j5;8&3C;c(8 z4F?4AHxZ>%gXQO7l)!q80JwlsoIJwAfqn9OZ5(740u_=<8^%k+Y(ZEbGg+acr-g{6 zyi0|=pP`x_sLW*;ZPd9&QD!z%4Ig5&1*9A_VDV=!K9mY&q>90Z?(xxe#E?-(vOt|Y zXzoInahOd=L}sFxhEWoSE>D!5A_Vh4ZJ2{4$h;r{ zKN7;p$vgUDqO9e{U5cyGOXLx=3huT_#-jZ4=r9*9$T9L*bf#GoF7YT)(+Z zXeZwx#QHl#_D6RL*By6@Z2vvNHR)cV{pA6X)$ky~9uoRr9}?p4_+7OF_zw$R-zBu8 ze=o#|zZY2_{9b6`JwktKkI=69gUC)iDO|Ij5?LocEwu0cS!AF1tjN0JS;Tu$=#RW8 zTs1EX?YUQk?tN8gFTO7H-@PHS+us!WmN!M#_`eE$#$QF27rz(%Rb;>NSD~HrH=$qp zH{n|ImJr`~OXxqu@2&XVjbHcMLhF4;xIFtr*2V9Ej~|Nc-5-jqpZp7Xe+D}KBebFk znz(9$rcF9r%PKlt%WghgbKQXF2M*W7CwTtek(&P0k($^rRm(o{C{26pXifa>Xia}} znkL?vre)7RUeoK2*F@{_TGmJS)uwCOHw;bOY-swQ4NaSOqL%fY6E$sLu9h7*Nz-3C zNy~b6hL-({JWX4iuZd|hHSNPfO`JSOb3HLf(^k*bT#+J8yJDWEKR!V?vgTc@iEFRbw7*=Z>635J#F`s5?Z>wuzgsmiaI5BO{<)^Pf2oO+eu;E$ z*TnO;YuRVqp=AZ`)U=iNX!<|y(OebxYFUrmtBH^A)%5(|Xxhp5Yhu~`ns(N2HP>Um z)3h5N)WmNd)UqFcNE5j`wCrbhXj$*>)btl0*0R2}OA~kO(y~@OqKWT3qG?d(8T3WX!@&9Xu|iTrn~>BX^Z}(W&P~Wn*Pq8H8K7fO`rFyCMG_oX}7;GS=Xmb(Z!4@diHbpeQAoWA9lDd+78#V z?!#}^5xT2xsxDSd)w753JNGC(d)G0#`1>)scIEMUmOfqAt~2zkaVP3p;uKx1&DXPT z&DX`V`MO?Lpo>s}uHCy-7m;PUe$_Hv+=Abi@hg0K))t?x--q9_3SIB1(6h9&bnUUT zbg^=|uKBC<>`gVgw&QF)yQ^N;W;N)-+n{HC)}ZV6uF$g!SL#_?SL)jQb96C%mF~K6 zm9Dwg=vj-_==$0{%4yt;aZ>R(r`a*iY2-F@n!W_5u|3ggewXAl zRnrU@PSU6JkaTg8|0+rgPcZ4wv*n=cAC!&anh?poMwrkPI_jj z(|C87lj;w18mGoN%~BJb#?Fa|KM{Fb>NGbla~cbFJL#1@P9ug)N+3Ko!*smlFsT+E zVWiV^ta6(4H_J4=mPrkZnMQ}=rej5M)0uLwN$c-5oe3pOI#R+k`rT(bFWqOF)$cc* zJ?}RiR!P%YucT?dS;};FD`h$+mNL!dAtuF@Hl3?Vn^gY+)0y*tX_P5rQj0RCf6}A|PnwQ}PnynwPod#HZPH6m zo6gstF{$=5repH6rZe_A(|GE66JJT0jy}(u#t$!;j#)36=GK=@I{LEdX!K9hjQ^KO zlmBHpB3?C}y!#zO>Ly*QZaUw2!=$h`Ofv^~ z2w0;A@>&D>YnaXpxPPjq>8M!~W%=1O=@*kq{9+nu$)@>fib=i{)A3@e=`5XQ8WYk? zb4P2_>eI%g<84iIPJ5HKwKvT>9borvruk5&NgrpLjxL#|S+bAmJlMxHHw`rD`asj1 zKFFk1gG|S*L8dhz%cNhkO*3SONo9wa*2y8Jv+OX_5jM=@JN zI^J{|6HMdXt)_W(t4X)Fn#Rg)rt|Ubrg3z;>8!THG@Lt4=f8KFM!8*hp1Vw==5Ev3 zWw&X3xyN*l++!Nm_nFQ;`%GiRe$y&_z%+IrFs(WVO(W!xX|+6L8gCyqtx<bl;c-69AdChXhyk{;a*-DlpwzB0MU)ge; z0Zyr6IV!$xIeo8Nj>*7Fz{*uEXHr$@tZF${RkP?yHOpC}x@C5&Zds?QTh915ENj&p zmQlTiMW<_6jw5ecRHi13>fyY<;?lmqD>!LW~)yutIDUA+3{1$x$aZT zda0h}Xj0EI=hd@}()BHCX?@FiZv)E=YhXDBH$Yh%SjGpRTjmd6Th;^LTgI}+7JV0L zImU-tG{bEflVdDe9%ETw$67|y)|PW*Ys)Cx(K2Uru^iKTqe>4ruDKYtCv+QySGIXdRxUB_O+;S zU#nPG;JUt+b-SNsP8w`EN@iOWnQb{TvaMocalbDc&tZsFENO^E$wMqh4sapx81TNK zmKiw|{-KuREUNXwWw%A!)E zVWZKOGi{7TXUAC1%401@gRvIP1zrJO9S2)Zu*}_4El0I!7Tq)5a(10=QOp4_NGS7)Hdr3A05mWhf zwk_PpLwZ?-zeb!BT=Df~5s9Wx~G@OqVp45qwDSVZlcP%L?w_ zz$FNwN5%h`;NyZkUu3;c3Sye2{7(y(6a2g2GlI_wJ}3CR;0uB;3ce)xvfwL%{}BAA z;J*Z46?{#wykG^vih`8{D+^W;d|j}rpq>YZBv%*z8-g_i-xRDV_?BQT!PS1(O7u3$_q!DfpA%&w{@Q{wnw%!QTXv1zRaB zr@gozT$NjV2#pY&EVw{$TOs*D@t-b)SHw@%w7z=L-9W*xJ&r=N%+4+UfYiM zrjA!!q3*3Y(|7QX@lBQQa^zqS{{3?l^UGldr2px7<*2y$D@%BY_^XS*ocP}oe{J!< zC;nvd*A+iWeXnQxB?DjBe#yXhwqG(3Zu=zzQMSLFP9VYd*Vg`@mET`(EhS13o_?Pa zbyxn{^j0~WQ4m8auw8=xf))r`AZUT01%eg`S|DhFpap^!2wEU$fuIF~76@7(Xn~*w zf))r`AZUT01%eg`S|DhFpap^!2wEU$fuIF~76@7(Xn~*wf))r`AZUT01%eg`S|DhF zpap^!2wEU$fuIF~76@7(Xn~*wf))r`AZUT01%eg`THwztV1KXpXPiF^lg|(FWi5YS zJE2Ib{f%UifrzR9=?@V(Kl!gGs_E}8Uln{;VL6F|-)0lJS1_Yc_&AYI5u95ne7VTi z32qYHp>V%ZTT-&iiBCG!Ka}Y=E-}mbdIr}^xcIw&{^oxLE|xRT=D;iea%-`SKMwsn zfPZ7)Ib1K`dJz}@V;k^4#S^skI5_}>TU=4+}i`37;_k{P6;ManYf*!#X!ES=tf(rz9 z30@L(zM=E=nqa8lFMA1-A*F6m%B&?mUD_iT@G7 zCj_4ptSQ(~FiP+j!487c1ZN4(6I?I2Q}C$Zb-{<_JNXKN9|(RUm?+pmaE#z;!Oep9 z_xAh6e^l^{p#A;+4e{IG?cXEc=iA@uKPdjk1)mdqRj{hy+kzhnHWF+s7%TXz;N;i! z^Xn}BQG#;>mnyt_eOxcRqk>dR>nkf*Rqz9af#20fOZa~TvjrCl?h!0oTkCBom?k(% z@SxyhZ)@I1g5iQ`f};cv2o`%s^D7GeAo!DDj^Iu~$Ge*Ugy2Vl{RP(u-uIs7y(id0 zFiUWW;2FUu>S+Eqf?0wK1fO_chrcQKjo?p$eFc{a{vjChfsXf<;3&bRf@cLo>S|tj z!S@9{f_((13tkhf^r4OyFW6UbyI`e{boft#iv*32wY;8SlHh2;{esVYqInU5T?H2k zTA%9hih?e|bivtzCk3CVC+P}?3U(75FPJM>|1-_c65J*DM13uPOK_0jUcurGba*Af zCW74s=L=pFeEW0FpCkCUhT8v<;G2R!3U(KqEV!u&U4mBx z@BdoMpAoDq_@SU%FikL9aG7B7Z*=?@1>YC^SujU%tKfa#YJM%jIKd%;YXxrzKKh;J zmlym865JwqQ}BmK z&C3)#ELgRPmNykl5zG-hAozTg<~0$_5#=LGX~^y+3N+8-n!&e-P{{ zI7x7o;G<1-ypIHb6&xeDP4Kc{*%-}#MX;)1j9`}FY{8dfH9uAGuwcbFEpH*1Ex26p zL5~jqKrlv-;K9)4ZXA#{@r3)bdop8GlO*Azf6~0eg75yU{R;%mU$p--!5RP2{%eBI|EB#N1cwPel&s~S3w97( zB)DJj{#Ke-N$_jIo`Q1(e@M~19)iaOpH9{CV}cK-vEN@_d;XMM`hS~$FZdth(*vA- z2Cl$=e>Q)!^KZv`r@b!k!>{o|L~UCffWNiVynD(sFNAI?^xMUbuvPSx;veD%uZqGz zUPK$MudeXEz6-CU=!+5FW0hEMpuSfMlp};9?!r4PyyhxAgwpTAJ14w;!dr6}-XXEe ze&N-sTy*}74!XPtRCowoy9=+R@b0Uk?f0a@!18vIbju6x%e(L%6Ma7lFXb-0`BL7~ z!W;T}(d8H~yi!$l{@$-qG>?S$-|X@a$=~ufwZ44{1It@gc;|&zqGr+QHWJ>GDm;X& zw~FTdD7>;NJcP>Mh4-uQ-W6VjT1D&25Z-(h9zxsh!pjlfN#Q+GyJ&rLh4&8?9zq}8 zg||+4-wW@TyYP+(uZ!@;-Gz5ScngKM|1P}8!89z z=>B(#=2aD5ITap4*>~Z6B)qA@TXq-T_rlvDypwm~oh#7JYunvj0Qy8C@}?A@tw$rHNgN zf2hmxmBPSw-a~jzh1cvZyacI#_#h_m%KQ-i5bH>fb8i?Yj$aljyr3ym!Kj zF7ILC)m7mkboMU1+rqmfy!-JtJc?=`4|Ue{rJM>6p~+E2^PUynP8A+PsZERK)ezo! z6^`*$T+zJ7VwcM*JcPdV70vtnFY+2ny4w?3PY9h*82H?p2=Auw$|Mz?ZnE%RRN*01 z?Jm52!uwcwz3;*sExaYdd#8EP>CO?}zg2h$<@6|;w@P?nJ#~506b6>}xbS)jZ_QnJ z_jb|sV4v`E@4|aPc!`-h-H{3d(|ulem3nDj6NQ01{rka<@y!1GpFMA>UytWK<zI;4Hz74Yd4__#bbq{k0XABl~y5KaFI0U_IHa z^TfxZxXn(xmCc*6AwEXF0M!!B^ zD=n{wzmvoIC{<%G!76FmUrTVg;E2{*{ssPyPJVqaw`G5z{ln@N4J|=N?r*LdbQO__2lJ|D#a-dHcWApXcirO#dg9j^B>=Nxf;Knyq|mRgrpTiOEh$GQ@%IuuBKl^F|BPVC4y-qs z47h*wAHUJ;f3^DYdo$kl{#UfqS@1mf-&sZS|7`uP_B*BW;soYH*ZZJ6Xa`*{gLVko zL3bBHI|S_zd@lt1!(cz~zw`qk)cqHpsfN%3!N-2p{_h0)3GNhp^glZME5TlZn+1*E zbokeT69sbxUrW~Eae`w7%~o3ezTg1CeS%M==+qpc245!@~KRJxWo7Mvycayu>mLNHZu zg5Vy($J%S&mx7ssTLjGxI{baX)`H6g@9n6=!v%*49us`IlMas(93^OU*7A1+`wE^D zY}`eM&l0>T_!jBF`N`ptf;|N{ z3qIIKhkq`ZDY#hhG5n2Cj^9jhwczvpwEP#rd4gs8Yx$Rg;{=}^pyk~Jje*+#t>9F_ zYl5E-(&1eN7YJ6(((=xN=Z9#2J^Zav&ZlFv#%bd;8sjy7A~;BJzu;-XD+Jih5VF(LSdK;N-xcAF5T2bMjegz(1GT;h!n5f&z9_sI!n4bx(a(EF zcngGQmsevsQs2TLhxLTFLU^`4H2Qhp3U7n(YJpG>W z^X$9b!pjhzeh=B9{uQt@!s{(O{hkWs8H1!=2~WSr{Jap(B>t5V-U#98_gosE) zo_-Go^4<{M4B_ebWFYS|;VlrJevkTj_L5?_@Ky*y6<-*MsT_k1AFwqLIB^f(}pXWQ?p@bow#kT+V&LFIM*)8hy~ zFIn=pNO;ACr^gwAyluh@5uP501oF-ZudML&I37oHvm2J)T}UJK#rabh5^hVYVwr^k_j zyf1~9E<8QX4CMKQmmxeo4h`gW5MFQL>2YcxFI#w7!qel}K;B&8jS!w5=LYh&3vYt( z^f)+>cR_eFgr~>JfxP>&_48ODJUxyMpr{@8Iyy?QbDm*<;2;^-P9#zo&pPokq z^3DsdxbXBmBal~mh<+X+!qfARKweehl@*?zrv&o86<#^v>3K{bFG+YW2~W>+0(t4e zD=$1f56Z_2(H(wo;Z+l!o+kzJMhdUC@bo+?kT+L&b%m$rS%JI_!mBSlJr4`y9T47E z!qfA#K;C8HH5Q(p#|8549jc#Ol<@RCFOc`N@ZyE1=YfH|^1^E&JUvegcp&ee z!rLx9Jx}-Z?v+PVOL+T*r|0p3yavKME<8QY59EakFIRYa9l+14An7Iw@2c?hIzb?> zqwuJr?*H^ULLe_kc*TXM*BJtN^Mw~8JiQJP$lEErvcl8r6oI_U!Yd~{y^i7M+54u& zbM$k2NqBmlBarvF@X8BMuY&~gUK3t5;pugfKwd53)fS#!M+xM8CcL`B)9WmOyfER_ z7oJ{+3FIXT?sW!j4}>>DczT`7&$Itt{MW*pAUwSe7RZYb-VEXCb+SO7S9lAAr`OQ}d98)FLU?+e zEs)nwcpHSL*Wvs;;$so`H&uAsg{Rl)0(l#Rw_kXA9WRh~LU_l8r`P!cd5#hKx#bE^ zuLI`eh3Nb}A-t=?)9ZwRyeh&YS*OwKh=IJi!YeL3z0MfO`%ZWv!qe-JfxLL(l@*>| zrwrt^6<#^v>2=INULWDTBs{&&8OWO|yz;`+>!5+W&BCiDJiSgD$U7sv+QQT8sDZq{ zjnvPruJH6aYas7&;nf$OUWX0jRTth@!qe-tfxK^p*I0OZ9XF8oi}0d^r`LG{dEJB; zFFd^t9LO6jycWXK>%@V)dBRH;o?b@|MZ+ps!9I`_w?w|r|v(qv%I~IYe)U;=SqL7bNJ{{6>aYSuUMJKGx7gt zm06#2ya{wf3bKj4_%~RNSKWD9`&+%G(fO;!d#-D|b4M3L6-naQeXe|B^@wX6vY4K-^{{iu@75{_cKO_D!;x9E;=ckK+pm~3j{3?v_Q}TK??*e5VSzh0znG|EfBOo&;mgV z1T7G>K+pm~3j{3?v_Q}TK??*e5VSzh0znG|EfBOo&;mgV1T7G>K+ppJqXo(#ehjV_ z_~<1SnEx9W`)j1KkmvgvjMz`L@vY4Q{@zCa<9LtpEz3zhfWn=F>Z+d!F`(agh3HmY zTyt=hH|SOluFJUIchD{T?T1@Oaiu%y)+;96T7&B*I8 z-oo__t~gvNxH55#z_kF^W?aW{-NaR{I2rHb`VLnDu5?_PxUz9g!?gm}PF%-vUB`9b zy<|Lr>lIvY;Q9#HSGaz}m4vG!uKu{j;97=jFRnAV%o1cghU;})pWuqY)fv}7T;p)f z!?g<6PFyE(mG~RDxW2=ciE9n6Q@G0BhqB>{!qpkqB3!w+LheVoaeaX+0assKi*TLC zRjwo%b#cYx8i;EZE-FPv1zeH1QgBVewI5fB5R?zsOSoRgRToznt^{0da1F#Y1=k{6 zTX7x5bs1N&(quf0>jhkI;i`wLF|Gt$X}Ege8j5QQt`)d;;yRA&Ca#bN$an@}y3ouugc6)JF8WK3ui4*9B)tIk)A%Dd{+DI(_UmG2f4A%$YTuG91; zdgI-35w8DB)M`3vM6@?P)E6G*ig0^A{IO0_{pg0}UG=L(N4VpBDsx5gTK*MYi@&H3 zydv~ftf=$nZs873^toNWP;XPO->T*7)QPTNjcpno7wNgXeWU9~*H4P(f)uSVzs2sR zuz=bBlEMmj?thZQyC@V(yPM%T{Mg8a=fL?EX%lw=sj6-teD-O5WtbR`C;r12Je2p7 z>L=CV2l##xT>P&S6Z2ziG?Z20|8*+Gc*0p}5z+Y>{N?BsE9EqndhsOcynUTByn0l5qHc~BX{(coe{ zUL=jXCT^cs-FVQ1aiaqwV)AYz#}P4_5E0{T8B4B636G47N%Tg+uR|l_6QbjMk?<$D zp+C}xA|esKZJrR#i1gfXNeZJpUSC{jtQN+2LL)+xny7&IXp{-WgqY}9HY(pHdPAFN zrY}0y?TL&CZAmWHpjsfop6EoB-|LP+29%#$t&9Dr%CVs_s`kaYW5eSS7wC0Ed2DPb zY!#arr_j!Sye}%j9U1|PMS2pNlFRS+C7`eJ`Vu_QQ9v3U$9XLvLIM$PJiaJAF)n=J zK=mNK(Ld!23J;A7cjGDB)Nl_v)_??+v|xftyJOIDpieb1Z&a*HH%q=lNu%Rn z7F3bYa9=c!8oV)XH|*?s;V~%b?jrr#2^`t!%!nM+G=v11{vWlx>S?gX^D_(XK2dw&k2_P@l@oi>K9A$_|UE#edKD&Cpq;Fp*y z%tyOhJE&M3opJblbm`p+)mW>K(m!bu=Sgt8V&mhfYpB;18WDj3rWc(l-YXH*s<+|d z_5&k@VN}|a4T`>IsWXzBr5jD`Pd zH=d0v63@sJhrTt2M(r>nq7&TVu>63%205ccW6)2!Xdi5Sr1(!NS=zD-Az^qt)Y^;; zh1t=mdlFhwW+`t=ug@Ke>V%%)MlZvp+gh^cnK$RIutt@#-(1_xy9db9><-T~ls9bse z+>+$rcVULb`J>AvP3k|8vr>U(SQRPv?MgKK+j_L}HyLQrv2@g=8z^$Is&vGvOb3d| z$eyOYt;gGx9A4e!qVCP@CD0grc->-x# zX|sA|%Opy_N9Q8W)7*uI9G*m%_z|qnW-@Zw2d!>f3o0(JL6U9k*cD#L`1ykRh7=H!DTHXpnnaMb`IrCcOAp-1?3(Y z%lDlpBWI?hzSd5CQ(o#jbn5$xV~P!`No}XFyH>f|;8Mw0N-g1|)g=-_8sg7_D zWu`jfLla;O3<;*DI-;T@FfnpPxnp=#H#^m#Ix=p7UfPlBXi=>ynoy$MhFr}(7#t30 zgZ{}K+cY{Zf(Dg<0yNa|;D&n>Xh<7}Nw+!w4sJS%v$TXa%2hD)SMewFuFhgsDD5kO zCIt(t*Ji&i=-O2Gh}d+wgjb6%b(faYwkN?e;XN%OzswYw7 zyGRT%X-O4wN}EGFZg-!`-iR7(be*RKc>Fi#@KZay5E*moA)JdQ-Dgi9XkE={FP%(7 zm*Us7NozWsPt!?gN?yd)aMQ8-@El>#wN=T1ET-Jg&k!vq!k^Vu$XSG*z}vk7aya^a zmBZY8dM`t7rq&Bpi$DnDPP22RqT-*v-xo@wYQiAss8kh0omo-Sq*Y3TYCWw>`aH4G zXm6WJq5osKGn7V@l$RiNtLlkwi58p0-BxxDa;Qi%ORDkb?g@B=Yu9oqbyM6>G9oeD zO&8xZ>F7FE#hu#8k|;`Q6*UEz^E%A3fen0VQ(iPy-M*A+x*5ns+GY+vy@lN|+rcW( zYp*SZ&fkks0p>e2{X-v}{i;Jw``odSrT1-g56P1qJ1rUsd)l*ewiE* z5p*F0$*q3Gq$xWM18-j+&3l=giD8scI*O*1Z5~g1E0{Ew18L&36=VM6ZcTS}5%OQG>FH4>mZp_KW;d4c((y8!?NJY@Z0}aa&){tD z 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 mMXaB%w==fpPwL7rc_W&gESrXiBtKd8, A> const& wfn, unsigned q, double eps = 100. * std::numeric_limits::epsilon()) + __attribute__((noinline)) // TODO(rokuzmin, #885): Try to remove `__attribute__((noinline))` after migrating + // to clang-13 on Win and Linux. { std::size_t mask = 1ull << q; for (std::size_t i = 0; i < wfn.size(); ++i) diff --git a/src/Simulation/Native/win10/libomp140.x86_64.dll b/src/Simulation/Native/win10/libomp140.x86_64.dll new file mode 100644 index 0000000000000000000000000000000000000000..9d805929c261ad4a95f91bdef96c37e728d0b252 GIT binary patch literal 1664912 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 -U;%Qqn(VI|Abh-<)usmu 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

IF-zqZ%usCsUN~Z9l|!WF}12At%@Sd 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 J*9r>s2bVt2Vv^4_Q2Ggq|HfgWWUp=GP7Qw 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

AP)FGp7?)cxN*goSfKD%0A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

Dvz5Y1zZp=zAog74iY-Ub_!h> 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�i-RE$RV;?1VoA$hr=n6nfVbkb{HR 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 z⪪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 -fUYlf5DCt+i$#$lHA}=7yg=LScS31 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

gI)^hp&jcZoM>cDPp{1T|GdjE#l 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

Zdt3rt?+J&{2)nE8ZozI{ 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 literal 0 HcmV?d00001 diff --git a/src/Simulation/Native/win10/vcomp140.dll b/src/Simulation/Native/win10/vcomp140.dll deleted file mode 100644 index 872663e58d4e89f42a2c7f9c3e3977b5751d5d32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155296 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 z 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

;?Adb)cUv{#kb9 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 G_`d+o5e*vv diff --git a/src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj b/src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj index 73e638180e8..263b41e391e 100644 --- a/src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj +++ b/src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj @@ -44,6 +44,7 @@ PreserveNewest false + From 72f7e963077c4cebea641ecc50b1ce4417048453 Mon Sep 17 00:00:00 2001 From: IsraelMiles <96441245+IsraelMiles@users.noreply.github.com> Date: Wed, 5 Jan 2022 16:43:58 -0700 Subject: [PATCH 16/26] update project name to not include date (#894) --- build/e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/e2e.yml b/build/e2e.yml index 1a56ac89ab3..975952e7418 100644 --- a/build/e2e.yml +++ b/build/e2e.yml @@ -1,4 +1,4 @@ -name: $(Build.Major).$(Build.Minor).$(date:yyMM).$(BuildId) +name: $(Build.Major).$(Build.Minor).$(BuildId) parameters: - name: validation_level From b7668ca45bf720a6e85793e3715fb15c386cf02f Mon Sep 17 00:00:00 2001 From: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com> Date: Tue, 11 Jan 2022 11:11:16 -0800 Subject: [PATCH 17/26] Cherry-Picked: Broken up QuantumSimulator into CommonNativeSimulator and QuantumSimulator (#895) * Broken up QuantumSimulator into CommonNativeSimulator and QuantumSimulator (#853) * Reverting the Allocate() change. (#857) --- .../ApplyControlledX.cs | 4 +- .../ApplyControlledZ.cs | 4 +- .../ApplyUncontrolledH.cs | 4 +- .../ApplyUncontrolledRx.cs | 4 +- .../ApplyUncontrolledRy.cs | 4 +- .../ApplyUncontrolledRz.cs | 4 +- .../ApplyUncontrolledS.cs | 4 +- .../ApplyUncontrolledSAdj.cs | 4 +- .../ApplyUncontrolledSWAP.cs | 8 +- .../ApplyUncontrolledT.cs | 4 +- .../ApplyUncontrolledTAdj.cs | 4 +- .../ApplyUncontrolledX.cs | 4 +- .../ApplyUncontrolledY.cs | 4 +- .../ApplyUncontrolledZ.cs | 4 +- .../Assert.cs | 12 +- .../AssertProb.cs | 12 +- .../CommonNativeSimulator.cs | 191 +++++++++++++++++ .../Simulators/CommonNativeSimulator/Dump.cs | 100 +++++++++ .../Exp.cs | 6 +- .../Extensions.cs | 0 .../H.cs | 6 +- .../IsingXX.cs | 6 +- .../IsingYY.cs | 6 +- .../IsingZZ.cs | 6 +- .../M.cs | 4 +- .../MZ.cs | 4 +- .../Measure.cs | 4 +- .../CommonNativeSimulator/NativeWrappers.cs | 33 +++ .../Qubit.cs | 13 +- .../QubitManager.cs | 31 +-- .../R.cs | 6 +- .../Reset.cs | 6 +- .../Rx.cs | 6 +- .../Ry.cs | 6 +- .../Rz.cs | 6 +- .../S.cs | 10 +- .../SWAP.cs | 14 +- .../SimulatorBase.cs | 0 .../StackTrace.cs | 0 .../T.cs | 10 +- .../X.cs | 6 +- .../Y.cs | 6 +- .../Z.cs | 6 +- .../Simulators/QuantumSimulator/Dump.cs | 95 ++------- .../QuantumSimulator/NativeImports.cs | 76 ++++--- .../QuantumSimulator/NativeWrappers.cs | 145 +++++++++++++ .../QuantumSimulator/QuantumSimulator.cs | 195 +----------------- .../QuantumSimulator/StateDumper.cs | 11 +- 48 files changed, 682 insertions(+), 416 deletions(-) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyControlledX.cs (78%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyControlledZ.cs (78%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledH.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledRx.cs (80%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledRy.cs (80%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledRz.cs (80%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledS.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledSAdj.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledSWAP.cs (71%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledT.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledTAdj.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledX.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledY.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/ApplyUncontrolledZ.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Assert.cs (74%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/AssertProb.cs (80%) create mode 100644 src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs create mode 100644 src/Simulation/Simulators/CommonNativeSimulator/Dump.cs rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Exp.cs (86%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Extensions.cs (100%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/H.cs (78%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/IsingXX.cs (85%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/IsingYY.cs (85%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/IsingZZ.cs (85%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/M.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/MZ.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Measure.cs (85%) create mode 100644 src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Qubit.cs (55%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/QubitManager.cs (62%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/R.cs (85%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Reset.cs (79%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Rx.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Ry.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Rz.cs (81%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/S.cs (77%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/SWAP.cs (65%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/SimulatorBase.cs (100%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/StackTrace.cs (100%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/T.cs (77%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/X.cs (78%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Y.cs (78%) rename src/Simulation/Simulators/{QuantumSimulator => CommonNativeSimulator}/Z.cs (78%) create mode 100644 src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyControlledX.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyControlledX.cs similarity index 78% rename from src/Simulation/Simulators/QuantumSimulator/ApplyControlledX.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyControlledX.cs index f8c3a68e3ef..2e7a5944f3c 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyControlledX.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyControlledX.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyControlledX.Body(Qubit control, Qubit target) { this.CheckQubits(new QArray(new Qubit[]{ control, target })); - MCX(this.Id, 1, new uint[]{(uint)control.Id}, (uint)target.Id); + MCX(1, new uint[]{(uint)control.Id}, (uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyControlledZ.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyControlledZ.cs similarity index 78% rename from src/Simulation/Simulators/QuantumSimulator/ApplyControlledZ.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyControlledZ.cs index 1f0ae75acdc..760f0d8fe5e 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyControlledZ.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyControlledZ.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyControlledZ.Body(Qubit control, Qubit target) { this.CheckQubits(new QArray(new Qubit[]{ control, target })); - MCZ(this.Id, 1, new uint[]{(uint)control.Id}, (uint)target.Id); + MCZ(1, new uint[]{(uint)control.Id}, (uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledH.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledH.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledH.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledH.cs index 242d2bfa069..6dbafb55d77 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledH.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledH.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledH.Body(Qubit target) { this.CheckQubit(target); - H(this.Id, (uint)target.Id); + H((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRx.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRx.cs similarity index 80% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRx.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRx.cs index 1881c6fb24b..ecbf61e66eb 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRx.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRx.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledRx.Body(double angle, Qubit target) { this.CheckQubit(target, nameof(target)); CheckAngle(angle); - R(this.Id, Pauli.PauliX, angle, (uint)target.Id); + R(Pauli.PauliX, angle, (uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRy.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRy.cs similarity index 80% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRy.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRy.cs index d06574ea663..77400a58075 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRy.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRy.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledRy.Body(double angle, Qubit target) { this.CheckQubit(target, nameof(target)); CheckAngle(angle); - R(this.Id, Pauli.PauliY, angle, (uint)target.Id); + R(Pauli.PauliY, angle, (uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRz.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRz.cs similarity index 80% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRz.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRz.cs index a0349868b44..31de582fd84 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRz.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledRz.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledRz.Body(double angle, Qubit target) { this.CheckQubit(target, nameof(target)); CheckAngle(angle); - R(this.Id, Pauli.PauliZ, angle, (uint)target.Id); + R(Pauli.PauliZ, angle, (uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledS.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledS.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledS.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledS.cs index 3f106e2d5ae..9abcb19f4c4 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledS.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledS.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledS.Body(Qubit target) { this.CheckQubit(target); - S(this.Id, (uint)target.Id); + S((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledSAdj.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledSAdj.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledSAdj.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledSAdj.cs index 31da980a3b1..f50b097225c 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledSAdj.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledSAdj.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledSAdj.Body(Qubit target) { this.CheckQubit(target); - AdjS(this.Id, (uint)target.Id); + AdjS((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledSWAP.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledSWAP.cs similarity index 71% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledSWAP.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledSWAP.cs index 733db0889a2..f6042967b00 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledSWAP.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledSWAP.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledSWAP.Body(Qubit qubit1, Qubit qubit2) { @@ -16,9 +16,9 @@ void IIntrinsicApplyUncontrolledSWAP.Body(Qubit qubit1, Qubit qubit2) this.CheckQubits(new QArray(new Qubit[]{ qubit1, qubit2 })); - MCX(this.Id, 1, new uint[]{(uint)qubit1.Id}, (uint)qubit2.Id); - MCX(this.Id, 1, new uint[]{(uint)qubit2.Id}, (uint)qubit1.Id); - MCX(this.Id, 1, new uint[]{(uint)qubit1.Id}, (uint)qubit2.Id); + MCX(1, new uint[]{(uint)qubit1.Id}, (uint)qubit2.Id); + MCX(1, new uint[]{(uint)qubit2.Id}, (uint)qubit1.Id); + MCX(1, new uint[]{(uint)qubit1.Id}, (uint)qubit2.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledT.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledT.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledT.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledT.cs index dbbe5b337f5..dce12faedef 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledT.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledT.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledT.Body(Qubit target) { this.CheckQubit(target); - T(this.Id, (uint)target.Id); + T((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledTAdj.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledTAdj.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledTAdj.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledTAdj.cs index fda29c8cd5f..818447f16bd 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledTAdj.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledTAdj.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledTAdj.Body(Qubit target) { this.CheckQubit(target); - AdjT(this.Id, (uint)target.Id); + AdjT((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledX.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledX.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledX.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledX.cs index 673ca0742da..f40fd124921 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledX.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledX.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledX.Body(Qubit target) { this.CheckQubit(target); - X(this.Id, (uint)target.Id); + X((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledY.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledY.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledY.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledY.cs index 3f1d13c6a53..aa52dff46b8 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledY.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledY.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledY.Body(Qubit target) { this.CheckQubit(target); - Y(this.Id, (uint)target.Id); + Y((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledZ.cs b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledZ.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledZ.cs rename to src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledZ.cs index 10d6d31aca8..f47bec9f114 100644 --- a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledZ.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/ApplyUncontrolledZ.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicApplyUncontrolledZ.Body(Qubit target) { this.CheckQubit(target); - Z(this.Id, (uint)target.Id); + Z((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/Assert.cs b/src/Simulation/Simulators/CommonNativeSimulator/Assert.cs similarity index 74% rename from src/Simulation/Simulators/QuantumSimulator/Assert.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Assert.cs index fc54ba1fcc1..9d7d1681aa8 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Assert.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Assert.cs @@ -7,13 +7,17 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { + // `QSimAssert` makes an impression that it is never used, + // but since it inherits from Quantum.Diagnostics.AssertMeasurement + // (which is a C# class that corresponds to a Q# operation in our core libraries), it will be automatically used. + // It is instantiated via reflection, hence we don't see it easily in the code. public class QSimAssert : Microsoft.Quantum.Diagnostics.AssertMeasurement { - private QuantumSimulator Simulator { get; } + private CommonNativeSimulator Simulator { get; } - public QSimAssert(QuantumSimulator m) : base(m) + public QSimAssert(CommonNativeSimulator m) : base(m) { this.Simulator = m; } @@ -32,7 +36,7 @@ public QSimAssert(QuantumSimulator m) : base(m) var tolerance = 1.0e-10; var expectedPr = result == Result.Zero ? 0.0 : 1.0; - var ensemblePr = JointEnsembleProbability(this.Simulator.Id, (uint)paulis.Length, paulis.ToArray(), qubits.GetIds()); + var ensemblePr = this.Simulator.JointEnsembleProbability((uint)paulis.Length, paulis.ToArray(), qubits.GetIds()); if (Abs(ensemblePr - expectedPr) > tolerance) { diff --git a/src/Simulation/Simulators/QuantumSimulator/AssertProb.cs b/src/Simulation/Simulators/CommonNativeSimulator/AssertProb.cs similarity index 80% rename from src/Simulation/Simulators/QuantumSimulator/AssertProb.cs rename to src/Simulation/Simulators/CommonNativeSimulator/AssertProb.cs index 955ba22929b..fb038b23b4b 100644 --- a/src/Simulation/Simulators/QuantumSimulator/AssertProb.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/AssertProb.cs @@ -7,13 +7,17 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { + // `QSimAssertProb` makes an impression that it is never used, + // but since it inherits from Quantum.Diagnostics.AssertMeasurementProbability + // (which is a C# class that corresponds to a Q# operation in our core libraries), it will be automatically used. + // It is instantiated via reflection, hence we don't see it easily in the code. public class QSimAssertProb : Microsoft.Quantum.Diagnostics.AssertMeasurementProbability { - private QuantumSimulator Simulator { get; } + private CommonNativeSimulator Simulator { get; } - public QSimAssertProb(QuantumSimulator m) : base(m) + public QSimAssertProb(CommonNativeSimulator m) : base(m) { this.Simulator = m; } @@ -38,7 +42,7 @@ public QSimAssertProb(QuantumSimulator m) : base(m) expectedPr = 1 - expectedPr; } - var ensemblePr = JointEnsembleProbability(Simulator.Id, (uint)paulis.Length, paulis.ToArray(), qubits.GetIds()); + var ensemblePr = this.Simulator.JointEnsembleProbability((uint)paulis.Length, paulis.ToArray(), qubits.GetIds()); if (Abs(ensemblePr - expectedPr) > tol) { diff --git a/src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs b/src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs new file mode 100644 index 00000000000..dda46fc992a --- /dev/null +++ b/src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using Microsoft.Quantum.Simulation.Core; +using Microsoft.Quantum.Simulation.Common; +using System.Runtime.InteropServices; +using Microsoft.Quantum.Simulation.Simulators.Exceptions; +using Microsoft.Quantum.Intrinsic.Interfaces; +using System.Collections.Generic; +using System.Diagnostics; + +namespace Microsoft.Quantum.Simulation.Simulators +{ + public abstract partial class CommonNativeSimulator : SimulatorBase, IQSharpCore, IType1Core, IType2Core, IType3Core, IDisposable + { + ///

+ /// Creates a an instance of a quantum simulator. + /// + /// If set to true, the exception is thrown when trying to release qubits not in zero state. + /// Seed for the random number generator used by a simulator for measurement outcomes and the Random operation. + /// If true, Borrowing qubits will be disabled, and a new qubit will be allocated instead every time borrowing is requested. Performance may improve. + private protected CommonNativeSimulator( + bool throwOnReleasingQubitsNotInZeroState = true, + UInt32? randomNumberGeneratorSeed = null, + bool disableBorrowing = false) + : base( + new QSimQubitManager(throwOnReleasingQubitsNotInZeroState, disableBorrowing : disableBorrowing), + (int?)randomNumberGeneratorSeed + ) + { + Debug.Assert(this.QubitManager != null); + ((QSimQubitManager)this.QubitManager).Simulator = this; + } + + public uint Id { get; protected set; } + + public override string Name + { + get + { + return "CommonNativeSimulator"; + } + } + + static void CheckQubitInUse(Qubit q, bool[] used) + { + if (q == null) throw new ArgumentNullException(nameof(q), "Trying to perform a primitive operation on a null Qubit"); + + if (used[q.Id]) + { + throw new NotDistinctQubits(q); + } + + used[q.Id] = true; + } + + /// + /// Makes sure the angle for a rotation or exp operation is not NaN or Infinity. + /// + static void CheckAngle(double angle) + { + IgnorableAssert.Assert(!(double.IsNaN(angle) || double.IsInfinity(angle)), "Invalid angle for rotation/exponentiation."); + + if (double.IsNaN(angle)) throw new ArgumentOutOfRangeException("angle", "Angle can't be NaN."); + if (double.IsInfinity(angle)) throw new ArgumentOutOfRangeException("angle", "Angle can't be Infity."); + } + + /// + /// Makes sure the target qubit of an operation is valid. In particular it checks that the qubit instance is not null. + /// Also sets the isMeasured flag to false for each qubit + /// + void CheckQubit(Qubit q1) + { + if (q1 == null) throw new ArgumentNullException(nameof(q1), "Trying to perform a primitive operation on a null Qubit"); + //setting qubit as not measured to not allow release in case of gate operation on qubit + q1.IsMeasured = false; + } + + /// + /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that + /// - none of the qubits are null + /// - there are no duplicated qubits + /// Also sets the isMeasured flag to false for each qubit + /// + bool[] CheckQubits(IQArray ctrls, Qubit q1) + { + bool[] used = new bool[((QSimQubitManager)QubitManager).MaxId]; + + CheckQubitInUse(q1, used); + q1.IsMeasured = false; + + if (ctrls != null && ctrls.Length > 0) + { + foreach (var q in ctrls) + { + CheckQubitInUse(q, used); + //setting qubit as not measured to not allow release in case of gate operation on qubit + q.IsMeasured = false; + } + } + + return used; + } + + + /// + /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that + /// - none of the qubits are null + /// - there are no duplicated qubits + /// Also sets the isMeasured flag to false for each qubit + /// + bool[] CheckQubits(IQArray targets) + { + if (targets == null) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on a null Qubit array."); + if (targets.Length == 0) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on an empty Qubit array."); + + bool[] used = new bool[((QSimQubitManager)QubitManager).MaxId]; + + foreach (var q in targets) + { + CheckQubitInUse(q, used); + //setting qubit as not measured to not allow release in case of gate operation on qubit + q.IsMeasured = false; + } + + return used; + } + + /// + /// Intended to be used with simulator functions like Dump, Assert, AssertProb + /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that + /// - none of the qubits are null + /// - there are no duplicated qubits + /// + bool[] CheckAndPreserveQubits(IQArray targets) + { + if (targets == null) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on a null Qubit array."); + if (targets.Length == 0) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on an empty Qubit array."); + + bool[] used = new bool[((QSimQubitManager)QubitManager).MaxId]; + + foreach (var q in targets) + { + CheckQubitInUse(q, used); + } + + return used; + } + + /// + /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that + /// - none of the qubits are null + /// - there are no duplicated qubits + /// Also sets the isMeasured flag to false for each qubit + /// + bool[] CheckQubits(IQArray ctrls, IQArray targets) + { + bool[] used = CheckQubits(targets); + + if (ctrls != null) + { + foreach (var q in ctrls) + { + CheckQubitInUse(q, used); + //setting qubit as not measured to not allow release in case of gate operation on qubit + q.IsMeasured = false; + } + } + + return used; + } + + static void SafeControlled(IQArray ctrls, Action noControlsAction, Action controlledAction) + { + if (ctrls == null || ctrls.Length == 0) + { + noControlsAction(); + } + else + { + uint count = (uint)ctrls.Length; + controlledAction(count, ctrls.GetIds()); + } + } + + public virtual void Dispose() + { + } + } +} diff --git a/src/Simulation/Simulators/CommonNativeSimulator/Dump.cs b/src/Simulation/Simulators/CommonNativeSimulator/Dump.cs new file mode 100644 index 00000000000..51fa1c153fa --- /dev/null +++ b/src/Simulation/Simulators/CommonNativeSimulator/Dump.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using System.IO; +using System.Linq; +using Microsoft.Quantum.Simulation.Core; + +namespace Microsoft.Quantum.Simulation.Simulators +{ + public partial class CommonNativeSimulator + { + protected virtual QVoid process(Action channel, IQArray? qubits) + { + return QVoid.Instance; + } + + /// + /// Dumps the wave function for the given qubits into the given target. + /// If the target is QVoid or an empty string, it dumps it to the console + /// using the `Message` function, otherwise it dumps the content into a file + /// with the given name. + /// If the given qubits is null, it dumps the entire wave function, otherwise + /// it attempts to create the wave function or the resulting subsystem; if it fails + /// because the qubits are entangled with some external qubit, it just generates a message. + /// + protected virtual QVoid Dump(T target, IQArray? qubits = null) + { + var filename = (target is QVoid) ? "" : target.ToString(); + var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); + + // If no file provided, use `Message` to generate the message into the console; + if (string.IsNullOrWhiteSpace(filename)) + { + var op = this.Get, Microsoft.Quantum.Intrinsic.Message>(); + return process((msg) => op.Apply(msg), qubits); + } + else + { + try + { + using (var file = new StreamWriter(filename)) + { + return process(file.WriteLine, qubits); + } + } + catch (Exception e) + { + logMessage.Apply($"[warning] Unable to write state to '{filename}' ({e.Message})"); + return QVoid.Instance; + } + } + } + + // `QsimDumpMachine` makes an impression that it is never used, + // but since it inherits from Quantum.Diagnostics.DumpMachine (which is a C# class that corresponds to a + // Q# operation in our core libraries), it will be automatically used. + // It is instantiated via reflection, hence we don't see it easily in the code. + public class QsimDumpMachine : Quantum.Diagnostics.DumpMachine + { + private CommonNativeSimulator Simulator { get; } + + public QsimDumpMachine(CommonNativeSimulator m) : base(m) + { + this.Simulator = m; + } + + public override Func __Body__ => (location) => + { + if (location == null) { throw new ArgumentNullException(nameof(location)); } + + return Simulator.Dump(location); + }; + } + + // `QSimDumpRegister` makes an impression that it is never used, + // but since it inherits from Quantum.Diagnostics.QSimDumpRegister (which is a C# class that corresponds to a + // Q# operation in our core libraries), it will be automatically used. + // It is instantiated via reflection, hence we don't see it easily in the code. + public class QSimDumpRegister : Quantum.Diagnostics.DumpRegister + { + private CommonNativeSimulator Simulator { get; } + + public QSimDumpRegister(CommonNativeSimulator m) : base(m) + { + this.Simulator = m; + } + + public override Func<(T, IQArray), QVoid> __Body__ => (__in) => + { + var (location, qubits) = __in; + + if (location == null) { throw new ArgumentNullException(nameof(location)); } + Simulator.CheckAndPreserveQubits(qubits); + + return Simulator.Dump(location, qubits); + }; + } + } +} diff --git a/src/Simulation/Simulators/QuantumSimulator/Exp.cs b/src/Simulation/Simulators/CommonNativeSimulator/Exp.cs similarity index 86% rename from src/Simulation/Simulators/QuantumSimulator/Exp.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Exp.cs index 9d1b11511f4..61233f2d17b 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Exp.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Exp.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicExp.Body(IQArray paulis, double angle, IQArray targets) { @@ -19,7 +19,7 @@ void IIntrinsicExp.Body(IQArray paulis, double angle, IQArray targ throw new InvalidOperationException($"Both input arrays for Exp (paulis, targets), must be of same size."); } - Exp(this.Id, (uint)paulis.Length, paulis.ToArray(), angle, targets.GetIds()); + Exp((uint)paulis.Length, paulis.ToArray(), angle, targets.GetIds()); } void IIntrinsicExp.AdjointBody(IQArray paulis, double angle, IQArray targets) @@ -39,7 +39,7 @@ void IIntrinsicExp.ControlledBody(IQArray controls, IQArray paulis SafeControlled(controls, () => ((IIntrinsicExp)this).Body(paulis, angle, targets), - (count, ids) => MCExp(this.Id, (uint)paulis.Length, paulis.ToArray(), angle, count, ids, targets.GetIds())); + (count, ids) => MCExp((uint)paulis.Length, paulis.ToArray(), angle, count, ids, targets.GetIds())); } void IIntrinsicExp.ControlledAdjointBody(IQArray controls, IQArray paulis, double angle, IQArray targets) diff --git a/src/Simulation/Simulators/QuantumSimulator/Extensions.cs b/src/Simulation/Simulators/CommonNativeSimulator/Extensions.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Extensions.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Extensions.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/H.cs b/src/Simulation/Simulators/CommonNativeSimulator/H.cs similarity index 78% rename from src/Simulation/Simulators/QuantumSimulator/H.cs rename to src/Simulation/Simulators/CommonNativeSimulator/H.cs index 3df34308f06..179c363b987 100644 --- a/src/Simulation/Simulators/QuantumSimulator/H.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/H.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicH.Body(Qubit target) { this.CheckQubit(target); - H(this.Id, (uint)target.Id); + H((uint)target.Id); } void IIntrinsicH.ControlledBody(IQArray controls, Qubit target) @@ -21,7 +21,7 @@ void IIntrinsicH.ControlledBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicH)this).Body(target), - (count, ids) => MCH(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCH(count, ids, (uint)target.Id)); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/IsingXX.cs b/src/Simulation/Simulators/CommonNativeSimulator/IsingXX.cs similarity index 85% rename from src/Simulation/Simulators/QuantumSimulator/IsingXX.cs rename to src/Simulation/Simulators/CommonNativeSimulator/IsingXX.cs index f372f9a02de..5f114db803a 100644 --- a/src/Simulation/Simulators/QuantumSimulator/IsingXX.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/IsingXX.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicIsingXX.Body(double angle, Qubit target1, Qubit target2) { @@ -15,7 +15,7 @@ void IIntrinsicIsingXX.Body(double angle, Qubit target1, Qubit target2) CheckAngle(angle); this.CheckQubits(targets); - Exp(this.Id, (uint)targets.Length, paulis, angle * 2.0, targets.GetIds()); + Exp((uint)targets.Length, paulis, angle * 2.0, targets.GetIds()); } void IIntrinsicIsingXX.AdjointBody(double angle, Qubit target1, Qubit target2) @@ -36,7 +36,7 @@ void IIntrinsicIsingXX.ControlledBody(IQArray controls, double angle, Qub CheckAngle(angle); this.CheckQubits(QArray.Add(controls, targets)); - MCExp(this.Id, (uint)targets.Length, paulis, angle * 2.0, (uint)controls.Length, controls.GetIds(), targets.GetIds()); + MCExp((uint)targets.Length, paulis, angle * 2.0, (uint)controls.Length, controls.GetIds(), targets.GetIds()); } } diff --git a/src/Simulation/Simulators/QuantumSimulator/IsingYY.cs b/src/Simulation/Simulators/CommonNativeSimulator/IsingYY.cs similarity index 85% rename from src/Simulation/Simulators/QuantumSimulator/IsingYY.cs rename to src/Simulation/Simulators/CommonNativeSimulator/IsingYY.cs index c733988a2cd..1aa000ec554 100644 --- a/src/Simulation/Simulators/QuantumSimulator/IsingYY.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/IsingYY.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicIsingYY.Body(double angle, Qubit target1, Qubit target2) { @@ -15,7 +15,7 @@ void IIntrinsicIsingYY.Body(double angle, Qubit target1, Qubit target2) CheckAngle(angle); this.CheckQubits(targets); - Exp(this.Id, (uint)targets.Length, paulis, angle * 2.0, targets.GetIds()); + Exp((uint)targets.Length, paulis, angle * 2.0, targets.GetIds()); } void IIntrinsicIsingYY.AdjointBody(double angle, Qubit target1, Qubit target2) @@ -36,7 +36,7 @@ void IIntrinsicIsingYY.ControlledBody(IQArray controls, double angle, Qub CheckAngle(angle); this.CheckQubits(QArray.Add(controls, targets)); - MCExp(this.Id, (uint)targets.Length, paulis, angle * 2.0, (uint)controls.Length, controls.GetIds(), targets.GetIds()); + MCExp((uint)targets.Length, paulis, angle * 2.0, (uint)controls.Length, controls.GetIds(), targets.GetIds()); } } diff --git a/src/Simulation/Simulators/QuantumSimulator/IsingZZ.cs b/src/Simulation/Simulators/CommonNativeSimulator/IsingZZ.cs similarity index 85% rename from src/Simulation/Simulators/QuantumSimulator/IsingZZ.cs rename to src/Simulation/Simulators/CommonNativeSimulator/IsingZZ.cs index e19c69347d3..ffdef477228 100644 --- a/src/Simulation/Simulators/QuantumSimulator/IsingZZ.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/IsingZZ.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicIsingZZ.Body(double angle, Qubit target1, Qubit target2) { @@ -15,7 +15,7 @@ void IIntrinsicIsingZZ.Body(double angle, Qubit target1, Qubit target2) CheckAngle(angle); this.CheckQubits(targets); - Exp(this.Id, (uint)targets.Length, paulis, angle * 2.0, targets.GetIds()); + Exp((uint)targets.Length, paulis, angle * 2.0, targets.GetIds()); } void IIntrinsicIsingZZ.AdjointBody(double angle, Qubit target1, Qubit target2) @@ -36,7 +36,7 @@ void IIntrinsicIsingZZ.ControlledBody(IQArray controls, double angle, Qub CheckAngle(angle); this.CheckQubits(QArray.Add(controls, targets)); - MCExp(this.Id, (uint)targets.Length, paulis, angle * 2.0, (uint)controls.Length, controls.GetIds(), targets.GetIds()); + MCExp((uint)targets.Length, paulis, angle * 2.0, (uint)controls.Length, controls.GetIds(), targets.GetIds()); } } diff --git a/src/Simulation/Simulators/QuantumSimulator/M.cs b/src/Simulation/Simulators/CommonNativeSimulator/M.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/M.cs rename to src/Simulation/Simulators/CommonNativeSimulator/M.cs index 0777dd05c54..a258a29ec91 100644 --- a/src/Simulation/Simulators/QuantumSimulator/M.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/M.cs @@ -6,14 +6,14 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { Result IIntrinsicM.Body(Qubit target) { this.CheckQubit(target); //setting qubit as measured to allow for release target.IsMeasured = true; - return M(this.Id, (uint)target.Id).ToResult(); + return M((uint)target.Id).ToResult(); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/MZ.cs b/src/Simulation/Simulators/CommonNativeSimulator/MZ.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/MZ.cs rename to src/Simulation/Simulators/CommonNativeSimulator/MZ.cs index 2d4cdbc4d94..2110bf96ff8 100644 --- a/src/Simulation/Simulators/QuantumSimulator/MZ.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/MZ.cs @@ -6,14 +6,14 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { Result IIntrinsicMZ.Body(Qubit target) { this.CheckQubit(target); //setting qubit as measured to allow for release target.IsMeasured = true; - return M(this.Id, (uint)target.Id).ToResult(); + return M((uint)target.Id).ToResult(); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/Measure.cs b/src/Simulation/Simulators/CommonNativeSimulator/Measure.cs similarity index 85% rename from src/Simulation/Simulators/QuantumSimulator/Measure.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Measure.cs index 4ed4696dad0..e787d9aa707 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Measure.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Measure.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { Result IIntrinsicMeasure.Body(IQArray paulis, IQArray targets) { @@ -22,7 +22,7 @@ Result IIntrinsicMeasure.Body(IQArray paulis, IQArray targets) // that qubit as measured. targets[0].IsMeasured = true; } - return Measure(this.Id, (uint)paulis.Length, paulis.ToArray(), targets.GetIds()).ToResult(); + return Measure((uint)paulis.Length, paulis.ToArray(), targets.GetIds()).ToResult(); } } } diff --git a/src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs b/src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs new file mode 100644 index 00000000000..7e33cea1441 --- /dev/null +++ b/src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs @@ -0,0 +1,33 @@ +using Microsoft.Quantum.Simulation.Core; + +namespace Microsoft.Quantum.Simulation.Simulators +{ + public partial class CommonNativeSimulator + { + protected abstract double JointEnsembleProbability(uint n, Pauli[] b, uint[] q); + protected abstract void Exp(uint n, Pauli[] paulis, double angle, uint[] ids); + protected abstract void MCExp(uint n, Pauli[] paulis, double angle, uint nc, uint[] ctrls, uint[] ids); + protected abstract void H(uint qubit); + protected abstract void MCH(uint count, uint[] ctrls, uint qubit); + protected abstract uint M(uint q); + protected abstract uint Measure(uint n, Pauli[] b, uint[] ids); + protected abstract void AllocateOne(uint qubit_id); + protected abstract bool ReleaseOne(uint qubit_id); + protected abstract void R(Pauli basis, double angle, uint qubit); + protected abstract void MCR(Pauli basis, double angle, uint count, uint[] ctrls, uint qubit); + protected abstract void S(uint qubit); + protected abstract void AdjS(uint qubit); + protected abstract void MCS(uint count, uint[] ctrls, uint qubit); + protected abstract void MCAdjS(uint count, uint[] ctrls, uint qubit); + protected abstract void T(uint qubit); + protected abstract void AdjT(uint qubit); + protected abstract void MCT(uint count, uint[] ctrls, uint qubit); + protected abstract void MCAdjT(uint count, uint[] ctrls, uint qubit); + protected abstract void X(uint qubit); + protected abstract void MCX(uint count, uint[] ctrls, uint qubit); + protected abstract void Y(uint qubit); + protected abstract void MCY(uint count, uint[] ctrls, uint qubit); + protected abstract void Z(uint qubit); + protected abstract void MCZ(uint count, uint[] ctrls, uint qubit); + } +} diff --git a/src/Simulation/Simulators/QuantumSimulator/Qubit.cs b/src/Simulation/Simulators/CommonNativeSimulator/Qubit.cs similarity index 55% rename from src/Simulation/Simulators/QuantumSimulator/Qubit.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Qubit.cs index 02424dfbc3e..76ab9222808 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Qubit.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Qubit.cs @@ -8,22 +8,21 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator : SimulatorBase, IDisposable + public partial class CommonNativeSimulator : SimulatorBase, IDisposable { class QSimQubit : Qubit { [DebuggerBrowsable(DebuggerBrowsableState.Never)] private static Pauli[] PAULI_Z = new Pauli[] { Pauli.PauliZ }; + + private CommonNativeSimulator Simulator { get; } - public QSimQubit(int id, uint simulatorId) : base(id) + public QSimQubit(int id, CommonNativeSimulator sim) : base(id) { - this.SimulatorId = simulatorId; + this.Simulator = sim; } - [DebuggerBrowsable(DebuggerBrowsableState.Never)] - public uint SimulatorId { get; } - - public double Probability => JointEnsembleProbability(this.SimulatorId, 1, PAULI_Z, new uint[] { (uint)this.Id }); + public double Probability => this.Simulator.JointEnsembleProbability(1, PAULI_Z, new uint[] { (uint)this.Id }); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/QubitManager.cs b/src/Simulation/Simulators/CommonNativeSimulator/QubitManager.cs similarity index 62% rename from src/Simulation/Simulators/QuantumSimulator/QubitManager.cs rename to src/Simulation/Simulators/CommonNativeSimulator/QubitManager.cs index b1bcc7b09fa..4c1c9d73756 100644 --- a/src/Simulation/Simulators/QuantumSimulator/QubitManager.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/QubitManager.cs @@ -8,13 +8,15 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { - class QSimQubitManager : QubitManager + protected class QSimQubitManager : QubitManager { readonly bool throwOnReleasingQubitsNotInZeroState; - public uint SimulatorId { get; private set; } + public CommonNativeSimulator? Simulator { get; set; } // Must not be nullable (and public). But we cannot + // initialize it properly _during construction_. We initialize it _after construction_. + // That is why it is nullable and public. public QSimQubitManager(bool throwOnReleasingQubitsNotInZeroState = true, long qubitCapacity = 32, bool mayExtendCapacity = true, bool disableBorrowing = false) : base(qubitCapacity, mayExtendCapacity, disableBorrowing) @@ -22,11 +24,6 @@ public QSimQubitManager(bool throwOnReleasingQubitsNotInZeroState = true, long q this.throwOnReleasingQubitsNotInZeroState = throwOnReleasingQubitsNotInZeroState; } - public void Init(uint simulatorId) - { - this.SimulatorId = simulatorId; - } - /// /// The max number used as qubit id so far. /// @@ -34,20 +31,25 @@ public void Init(uint simulatorId) public override Qubit CreateQubitObject(long id) { - Debug.Assert(id < 50, "Using a qubit id > 50. This is a full-state simulator! Validating ids uniquenes might start becoming slow."); + Debug.Assert(id < 50, "Using a qubit id > 50. This is a full-state simulator! Validating ids uniqueness might start becoming slow."); if (id >= this.MaxId) { this.MaxId = id + 1; } - return new QSimQubit((int)id, SimulatorId); + Debug.Assert(Simulator != null); + return new QSimQubit((int)id, Simulator); } - protected override Qubit Allocate(bool usedOnlyForBorrowing) + protected override Qubit? Allocate(bool usedOnlyForBorrowing) { - Qubit qubit = base.Allocate(usedOnlyForBorrowing); - if (qubit != null) { AllocateOne(this.SimulatorId, (uint)qubit.Id); } + Qubit? qubit = base.Allocate(usedOnlyForBorrowing); + if (qubit != null) + { + Debug.Assert(Simulator != null); + Simulator.AllocateOne((uint)qubit.Id); + } return qubit; } @@ -56,7 +58,8 @@ protected override void Release(Qubit qubit, bool wasUsedOnlyForBorrowing) base.Release(qubit, wasUsedOnlyForBorrowing); if (qubit != null) { - bool isReleasedQubitZero = ReleaseOne(this.SimulatorId, (uint)qubit.Id); + Debug.Assert(Simulator != null); + bool isReleasedQubitZero = Simulator.ReleaseOne((uint)qubit.Id); if (!(isReleasedQubitZero || qubit.IsMeasured) && throwOnReleasingQubitsNotInZeroState) { throw new ReleasedQubitsAreNotInZeroState(); diff --git a/src/Simulation/Simulators/QuantumSimulator/R.cs b/src/Simulation/Simulators/CommonNativeSimulator/R.cs similarity index 85% rename from src/Simulation/Simulators/QuantumSimulator/R.cs rename to src/Simulation/Simulators/CommonNativeSimulator/R.cs index e0597eb2783..bfdb35c9e5d 100644 --- a/src/Simulation/Simulators/QuantumSimulator/R.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/R.cs @@ -6,14 +6,14 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicR.Body(Pauli pauli, double angle, Qubit target) { this.CheckQubit(target); CheckAngle(angle); - R(this.Id, pauli, angle, (uint)target.Id); + R(pauli, angle, (uint)target.Id); } void IIntrinsicR.AdjointBody(Pauli pauli, double angle, Qubit target) @@ -28,7 +28,7 @@ void IIntrinsicR.ControlledBody(IQArray controls, Pauli pauli, double ang SafeControlled(controls, () => ((IIntrinsicR)this).Body(pauli, angle, target), - (count, ids) => MCR(this.Id, pauli, angle, count, ids, (uint)target.Id)); + (count, ids) => MCR(pauli, angle, count, ids, (uint)target.Id)); } diff --git a/src/Simulation/Simulators/QuantumSimulator/Reset.cs b/src/Simulation/Simulators/CommonNativeSimulator/Reset.cs similarity index 79% rename from src/Simulation/Simulators/QuantumSimulator/Reset.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Reset.cs index a8bce353976..065ba0a615d 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Reset.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Reset.cs @@ -6,17 +6,17 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicReset.Body(Qubit target) { // The native simulator doesn't have a reset operation, so simulate // it via an M follow by a conditional X. this.CheckQubit(target); - var res = M(this.Id, (uint)target.Id); + var res = M((uint)target.Id); if (res == 1) { - X(this.Id, (uint)target.Id); + X((uint)target.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/Rx.cs b/src/Simulation/Simulators/CommonNativeSimulator/Rx.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/Rx.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Rx.cs index 32f65bd2d82..4d6a6449e64 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Rx.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Rx.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicRx.Body(double angle, Qubit target) { this.CheckQubit(target, nameof(target)); CheckAngle(angle); - R(this.Id, Pauli.PauliX, angle, (uint)target.Id); + R(Pauli.PauliX, angle, (uint)target.Id); } void IIntrinsicRx.AdjointBody(double angle, Qubit target) @@ -24,7 +24,7 @@ void IIntrinsicRx.ControlledBody(IQArray controls, double angle, Qubit ta { this.CheckQubits(controls, target); CheckAngle(angle); - MCR(this.Id, Pauli.PauliX, angle, (uint)controls.Length, controls.GetIds(), (uint)target.Id); + MCR(Pauli.PauliX, angle, (uint)controls.Length, controls.GetIds(), (uint)target.Id); } void IIntrinsicRx.ControlledAdjointBody(IQArray controls, double angle, Qubit target) diff --git a/src/Simulation/Simulators/QuantumSimulator/Ry.cs b/src/Simulation/Simulators/CommonNativeSimulator/Ry.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/Ry.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Ry.cs index b76cca3ec86..710d805bcd8 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Ry.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Ry.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicRy.Body(double angle, Qubit target) { this.CheckQubit(target, nameof(target)); CheckAngle(angle); - R(this.Id, Pauli.PauliY, angle, (uint)target.Id); + R(Pauli.PauliY, angle, (uint)target.Id); } void IIntrinsicRy.AdjointBody(double angle, Qubit target) @@ -24,7 +24,7 @@ void IIntrinsicRy.ControlledBody(IQArray controls, double angle, Qubit ta { this.CheckQubits(controls, target); CheckAngle(angle); - MCR(this.Id, Pauli.PauliY, angle, (uint)controls.Length, controls.GetIds(), (uint)target.Id); + MCR(Pauli.PauliY, angle, (uint)controls.Length, controls.GetIds(), (uint)target.Id); } void IIntrinsicRy.ControlledAdjointBody(IQArray controls, double angle, Qubit target) diff --git a/src/Simulation/Simulators/QuantumSimulator/Rz.cs b/src/Simulation/Simulators/CommonNativeSimulator/Rz.cs similarity index 81% rename from src/Simulation/Simulators/QuantumSimulator/Rz.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Rz.cs index 8f0b259ca95..10ea0196fea 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Rz.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Rz.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicRz.Body(double angle, Qubit target) { this.CheckQubit(target, nameof(target)); CheckAngle(angle); - R(this.Id, Pauli.PauliZ, angle, (uint)target.Id); + R(Pauli.PauliZ, angle, (uint)target.Id); } void IIntrinsicRz.AdjointBody(double angle, Qubit target) @@ -24,7 +24,7 @@ void IIntrinsicRz.ControlledBody(IQArray controls, double angle, Qubit ta { this.CheckQubits(controls, target); CheckAngle(angle); - MCR(this.Id, Pauli.PauliZ, angle, (uint)controls.Length, controls.GetIds(), (uint)target.Id); + MCR(Pauli.PauliZ, angle, (uint)controls.Length, controls.GetIds(), (uint)target.Id); } void IIntrinsicRz.ControlledAdjointBody(IQArray controls, double angle, Qubit target) diff --git a/src/Simulation/Simulators/QuantumSimulator/S.cs b/src/Simulation/Simulators/CommonNativeSimulator/S.cs similarity index 77% rename from src/Simulation/Simulators/QuantumSimulator/S.cs rename to src/Simulation/Simulators/CommonNativeSimulator/S.cs index f3a06adab56..2254039c66f 100644 --- a/src/Simulation/Simulators/QuantumSimulator/S.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/S.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicS.Body(Qubit target) { this.CheckQubit(target); - S(this.Id, (uint)target.Id); + S((uint)target.Id); } void IIntrinsicS.ControlledBody(IQArray controls, Qubit target) @@ -21,14 +21,14 @@ void IIntrinsicS.ControlledBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicS)this).Body(target), - (count, ids) => MCS(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCS(count, ids, (uint)target.Id)); } void IIntrinsicS.AdjointBody(Qubit target) { this.CheckQubit(target); - AdjS(this.Id, (uint)target.Id); + AdjS((uint)target.Id); } void IIntrinsicS.ControlledAdjointBody(IQArray controls, Qubit target) @@ -37,7 +37,7 @@ void IIntrinsicS.ControlledAdjointBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicS)this).AdjointBody(target), - (count, ids) => MCAdjS(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCAdjS(count, ids, (uint)target.Id)); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/SWAP.cs b/src/Simulation/Simulators/CommonNativeSimulator/SWAP.cs similarity index 65% rename from src/Simulation/Simulators/QuantumSimulator/SWAP.cs rename to src/Simulation/Simulators/CommonNativeSimulator/SWAP.cs index b0be124a3b7..b444dba0d03 100644 --- a/src/Simulation/Simulators/QuantumSimulator/SWAP.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/SWAP.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicSWAP.Body(Qubit target1, Qubit target2) { @@ -15,9 +15,9 @@ void IIntrinsicSWAP.Body(Qubit target1, Qubit target2) var ctrls2 = new QArray(target2); this.CheckQubits(ctrls1, target2); - MCX(this.Id, (uint)ctrls1.Length, ctrls1.GetIds(), (uint)target2.Id); - MCX(this.Id, (uint)ctrls2.Length, ctrls2.GetIds(), (uint)target1.Id); - MCX(this.Id, (uint)ctrls1.Length, ctrls1.GetIds(), (uint)target2.Id); + MCX((uint)ctrls1.Length, ctrls1.GetIds(), (uint)target2.Id); + MCX((uint)ctrls2.Length, ctrls2.GetIds(), (uint)target1.Id); + MCX((uint)ctrls1.Length, ctrls1.GetIds(), (uint)target2.Id); } void IIntrinsicSWAP.ControlledBody(IQArray controls, Qubit target1, Qubit target2) @@ -32,9 +32,9 @@ void IIntrinsicSWAP.ControlledBody(IQArray controls, Qubit target1, Qubit var ctrls_2 = QArray.Add(controls, new QArray(target2)); this.CheckQubits(ctrls_1, target2); - MCX(this.Id, (uint)ctrls_1.Length, ctrls_1.GetIds(), (uint)target2.Id); - MCX(this.Id, (uint)ctrls_2.Length, ctrls_2.GetIds(), (uint)target1.Id); - MCX(this.Id, (uint)ctrls_1.Length, ctrls_1.GetIds(), (uint)target2.Id); + MCX((uint)ctrls_1.Length, ctrls_1.GetIds(), (uint)target2.Id); + MCX((uint)ctrls_2.Length, ctrls_2.GetIds(), (uint)target1.Id); + MCX((uint)ctrls_1.Length, ctrls_1.GetIds(), (uint)target2.Id); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs b/src/Simulation/Simulators/CommonNativeSimulator/SimulatorBase.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs rename to src/Simulation/Simulators/CommonNativeSimulator/SimulatorBase.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/StackTrace.cs b/src/Simulation/Simulators/CommonNativeSimulator/StackTrace.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/StackTrace.cs rename to src/Simulation/Simulators/CommonNativeSimulator/StackTrace.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/T.cs b/src/Simulation/Simulators/CommonNativeSimulator/T.cs similarity index 77% rename from src/Simulation/Simulators/QuantumSimulator/T.cs rename to src/Simulation/Simulators/CommonNativeSimulator/T.cs index 25ca2f61d48..5d52c89a953 100644 --- a/src/Simulation/Simulators/QuantumSimulator/T.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/T.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicT.Body(Qubit target) { this.CheckQubit(target); - T(this.Id, (uint)target.Id); + T((uint)target.Id); } void IIntrinsicT.ControlledBody(IQArray controls, Qubit target) @@ -21,14 +21,14 @@ void IIntrinsicT.ControlledBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicT)this).Body(target), - (count, ids) => MCT(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCT(count, ids, (uint)target.Id)); } void IIntrinsicT.AdjointBody(Qubit target) { this.CheckQubit(target); - AdjT(this.Id, (uint)target.Id); + AdjT((uint)target.Id); } void IIntrinsicT.ControlledAdjointBody(IQArray controls, Qubit target) @@ -37,7 +37,7 @@ void IIntrinsicT.ControlledAdjointBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicT)this).AdjointBody(target), - (count, ids) => MCAdjT(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCAdjT(count, ids, (uint)target.Id)); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/X.cs b/src/Simulation/Simulators/CommonNativeSimulator/X.cs similarity index 78% rename from src/Simulation/Simulators/QuantumSimulator/X.cs rename to src/Simulation/Simulators/CommonNativeSimulator/X.cs index 7af68a2b261..9c54616a134 100644 --- a/src/Simulation/Simulators/QuantumSimulator/X.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/X.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicX.Body(Qubit target) { this.CheckQubit(target); - X(this.Id, (uint)target.Id); + X((uint)target.Id); } void IIntrinsicX.ControlledBody(IQArray controls, Qubit target) @@ -21,7 +21,7 @@ void IIntrinsicX.ControlledBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicX)this).Body(target), - (count, ids) => MCX(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCX(count, ids, (uint)target.Id)); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/Y.cs b/src/Simulation/Simulators/CommonNativeSimulator/Y.cs similarity index 78% rename from src/Simulation/Simulators/QuantumSimulator/Y.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Y.cs index 8858b2202dd..10613ceed86 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Y.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Y.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicY.Body(Qubit target) { this.CheckQubit(target); - Y(this.Id, (uint)target.Id); + Y((uint)target.Id); } void IIntrinsicY.ControlledBody(IQArray controls, Qubit target) @@ -21,7 +21,7 @@ void IIntrinsicY.ControlledBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicY)this).Body(target), - (count, ids) => MCY(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCY(count, ids, (uint)target.Id)); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/Z.cs b/src/Simulation/Simulators/CommonNativeSimulator/Z.cs similarity index 78% rename from src/Simulation/Simulators/QuantumSimulator/Z.cs rename to src/Simulation/Simulators/CommonNativeSimulator/Z.cs index 026f4f5c6d2..aca4aade2e6 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Z.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Z.cs @@ -6,13 +6,13 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator + public partial class CommonNativeSimulator { void IIntrinsicZ.Body(Qubit target) { this.CheckQubit(target); - Z(this.Id, (uint)target.Id); + Z((uint)target.Id); } void IIntrinsicZ.ControlledBody(IQArray controls, Qubit target) @@ -21,7 +21,7 @@ void IIntrinsicZ.ControlledBody(IQArray controls, Qubit target) SafeControlled(controls, () => ((IIntrinsicZ)this).Body(target), - (count, ids) => MCZ(this.Id, count, ids, (uint)target.Id)); + (count, ids) => MCZ(count, ids, (uint)target.Id)); } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/Dump.cs b/src/Simulation/Simulators/QuantumSimulator/Dump.cs index d57d0b7dd4a..3e414204905 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Dump.cs +++ b/src/Simulation/Simulators/QuantumSimulator/Dump.cs @@ -1,8 +1,9 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using System; -using System.IO; +using System.Diagnostics; +using System.Collections.Generic; using System.Linq; using Microsoft.Quantum.Simulation.Core; @@ -11,93 +12,33 @@ namespace Microsoft.Quantum.Simulation.Simulators public partial class QuantumSimulator { /// - /// Dumps the wave function for the given qubits into the given target. - /// If the target is QVoid or an empty string, it dumps it to the console - /// using the `Message` function, otherwise it dumps the content into a file - /// with the given name. - /// If the given qubits is null, it dumps the entire wave function, otherwise - /// it attemps to create the wave function or the resulting subsystem; if it fails - /// because the qubits are entangled with some external qubit, it just generates a message. + /// Returns the list of the qubits' ids currently allocated in the simulator. /// - protected virtual QVoid Dump(T target, IQArray? qubits = null) + public uint[] QubitIds { - var filename = (target is QVoid) ? "" : target.ToString(); - - QVoid process(Action channel) + get { - var ids = qubits?.Select(q => (uint)q.Id).ToArray() ?? QubitIds; - - var dumper = new SimpleDumper(this, channel); - channel($"# wave function for qubits with ids (least to most significant): {string.Join(";", ids)}"); - - if (!dumper.Dump(qubits)) - { - channel("## Qubits were entangled with an external qubit. Cannot dump corresponding wave function. ##"); - } - - return QVoid.Instance; - } - - var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); - - // If no file provided, use `Message` to generate the message into the console; - if (string.IsNullOrWhiteSpace(filename)) - { - var op = this.Get, Microsoft.Quantum.Intrinsic.Message>(); - return process((msg) => op.Apply(msg)); - } - else - { - try - { - using (var file = new StreamWriter(filename)) - { - return process(file.WriteLine); - } - } - catch (Exception e) - { - logMessage.Apply($"[warning] Unable to write state to '{filename}' ({e.Message})"); - return QVoid.Instance; - } + var ids = new List(); + sim_QubitsIdsNative(this.Id, ids.Add); + Debug.Assert(this.QubitManager != null); + Debug.Assert(ids.Count == this.QubitManager.AllocatedQubitsCount); + return ids.ToArray(); } } - public class QsimDumpMachine : Quantum.Diagnostics.DumpMachine + protected override QVoid process(Action channel, IQArray? qubits) { - private QuantumSimulator Simulator { get; } + var ids = qubits?.Select(q => (uint)q.Id).ToArray() ?? QubitIds; - public QsimDumpMachine(QuantumSimulator m) : base(m) - { - this.Simulator = m; - } - - public override Func __Body__ => (location) => - { - if (location == null) { throw new ArgumentNullException(nameof(location)); } - - return Simulator.Dump(location); - }; - } + var dumper = new SimpleDumper(this, channel); + channel($"# wave function for qubits with ids (least to most significant): {string.Join(";", ids)}"); - public class QSimDumpRegister : Quantum.Diagnostics.DumpRegister - { - private QuantumSimulator Simulator { get; } - - public QSimDumpRegister(QuantumSimulator m) : base(m) + if (!dumper.Dump(qubits)) { - this.Simulator = m; + channel("## Qubits were entangled with an external qubit. Cannot dump corresponding wave function. ##"); } - public override Func<(T, IQArray), QVoid> __Body__ => (__in) => - { - var (location, qubits) = __in; - - if (location == null) { throw new ArgumentNullException(nameof(location)); } - Simulator.CheckAndPreserveQubits(qubits); - - return Simulator.Dump(location, qubits); - }; + return QVoid.Instance; } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs index 30b84a41e8d..dd77a4299d0 100644 --- a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs +++ b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs @@ -9,90 +9,106 @@ namespace Microsoft.Quantum.Simulation.Simulators { public partial class QuantumSimulator { + public const string QSIM_DLL_NAME = "Microsoft.Quantum.Simulator.Runtime"; // If this is not public then + // we get a CI build error: + // Preparation\Arbitrary.cs(23,41): error CS0117: 'QuantumSimulator' does not contain a definition for + // 'QSIM_DLL_NAME' [D:\a\1\s\submodules\QuantumLibraries\Standard\src\Standard.csproj] + + private delegate void IdsCallback(uint id); + [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "DumpIds")] + private static extern void sim_QubitsIdsNative(uint id, IdsCallback callback); + + [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "init")] + private static extern uint InitNative(); + + [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "destroy")] + private static extern uint DestroyNative(uint id); + + [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "seed")] + private static extern void SetSeedNative(uint id, UInt32 seedValue); + [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "allocateQubit")] - private static extern void AllocateOne(uint id, uint qubit_id); + private static extern void AllocateOneNative(uint id, uint qubit_id); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "release")] - private static extern bool ReleaseOne(uint id, uint qubit_id); + private static extern bool ReleaseOneNative(uint id, uint qubit_id); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "Exp")] - private static extern void Exp(uint id, uint n, Pauli[] paulis, double angle, uint[] ids); + private static extern void ExpNative(uint id, uint n, Pauli[] paulis, double angle, uint[] ids); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCExp")] - private static extern void MCExp(uint id, uint n, Pauli[] paulis, double angle, uint nc, uint[] ctrls, uint[] ids); + private static extern void MCExpNative(uint id, uint n, Pauli[] paulis, double angle, uint nc, uint[] ctrls, uint[] ids); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "H")] - private static extern void H(uint id, uint qubit); + private static extern void HNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCH")] - private static extern void MCH(uint id, uint count, uint[] ctrls, uint qubit); + private static extern void MCHNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "M")] - private static extern uint M(uint id, uint q); + private static extern uint MNative(uint id, uint q); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "Measure")] - private static extern uint Measure(uint id, uint n, Pauli[] b, uint[] ids); + private static extern uint MeasureNative(uint id, uint n, Pauli[] b, uint[] ids); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "R")] - private static extern void R(uint id, Pauli basis, double angle, uint qubit); + private static extern void RNative(uint id, Pauli basis, double angle, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCR")] - private static extern void MCR(uint id, Pauli basis, double angle, uint count, uint[] ctrls, uint qubit); + private static extern void MCRNative(uint id, Pauli basis, double angle, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "S")] - private static extern void S(uint id, uint qubit); + private static extern void SNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "AdjS")] - private static extern void AdjS(uint id, uint qubit); + private static extern void AdjSNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCS")] - private static extern void MCS(uint id, uint count, uint[] ctrls, uint qubit); + private static extern void MCSNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCAdjS")] - private static extern void MCAdjS(uint id, uint count, uint[] ctrls, uint qubit); + private static extern void MCAdjSNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "T")] - private static extern void T(uint id, uint qubit); + private static extern void TNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "AdjT")] - private static extern void AdjT(uint id, uint qubit); + private static extern void AdjTNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCT")] - private static extern void MCT(uint id, uint count, uint[] ctrls, uint qubit); + private static extern void MCTNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCAdjT")] - private static extern void MCAdjT(uint id, uint count, uint[] ctrls, uint qubit); + private static extern void MCAdjTNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "X")] - private static extern void X(uint id, uint qubit); + private static extern void XNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCX")] - private static extern void MCX(uint id, uint count, uint[] ctrls, uint qubit); + private static extern void MCXNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "Y")] - private static extern void Y(uint id, uint qubit); + private static extern void YNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCY")] - private static extern void MCY(uint id, uint count, uint[] ctrls, uint qubit); + private static extern void MCYNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "Z")] - private static extern void Z(uint id, uint qubit); + private static extern void ZNative(uint id, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MCZ")] - private static extern void MCZ(uint id, uint count, uint[] ctrls, uint qubit); - - private delegate bool DumpCallback(uint idx, double real, double img); + private static extern void MCZNative(uint id, uint count, uint[] ctrls, uint qubit); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "Dump")] - private static extern void sim_Dump(uint id, DumpCallback callback); + private static extern void sim_DumpNative(uint id, DumpCallback callback); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "DumpQubits")] - private static extern bool sim_DumpQubits(uint id, uint cout, uint[] ids, DumpCallback callback); + private static extern bool sim_DumpQubitsNative(uint id, uint cout, uint[] ids, DumpCallback callback); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "JointEnsembleProbability")] - private static extern double JointEnsembleProbability(uint id, uint n, Pauli[] b, uint[] q); + private static extern double JointEnsembleProbabilityNative(uint id, uint n, Pauli[] b, uint[] q); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "random_choice")] - private static extern Int64 random_choice(uint id, Int64 size, double[] p); + private static extern Int64 random_choiceNative(uint id, Int64 size, double[] p); } } \ No newline at end of file diff --git a/src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs b/src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs new file mode 100644 index 00000000000..b185f287771 --- /dev/null +++ b/src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + + +using Microsoft.Quantum.Simulation.Core; + +namespace Microsoft.Quantum.Simulation.Simulators +{ + public partial class QuantumSimulator + { + protected override void MCX(uint count, uint[] ctrls, uint qubit) + { + MCXNative(this.Id, count, ctrls, qubit); + } + + protected override void MCZ(uint count, uint[] ctrls, uint qubit) + { + MCZNative(this.Id, count, ctrls, qubit); + } + + protected override void H(uint qubit) + { + HNative(this.Id, qubit); + } + protected override void MCH(uint count, uint[] ctrls, uint qubit) + { + MCHNative(this.Id, count, ctrls, qubit); + } + + protected override void R(Pauli basis, double angle, uint qubit) + { + RNative(this.Id, basis, angle, qubit); + } + + protected override void S(uint qubit) + { + SNative(this.Id, qubit); + } + + protected override void AdjS(uint qubit) + { + AdjSNative(this.Id, qubit); + } + + protected override void T(uint qubit) + { + TNative(this.Id, qubit); + } + + protected override void AdjT(uint qubit) + { + AdjTNative(this.Id, qubit); + } + + protected override void X(uint qubit) + { + XNative(this.Id, qubit); + } + + protected override void Y(uint qubit) + { + YNative(this.Id, qubit); + } + + protected override void Z(uint qubit) + { + ZNative(this.Id, qubit); + } + + protected override double JointEnsembleProbability(uint n, Pauli[] b, uint[] q) + { + return JointEnsembleProbabilityNative(this.Id, n, b, q); + } + + protected override void Exp(uint n, Pauli[] paulis, double angle, uint[] ids) + { + ExpNative(this.Id, n, paulis, angle, ids); + } + + protected override void MCExp(uint n, Pauli[] paulis, double angle, uint nc, uint[] ctrls, uint[] ids) + { + MCExpNative(this.Id, n, paulis, angle, nc, ctrls, ids); + } + + protected override uint M(uint q) + { + return MNative(this.Id, q); + } + + protected override uint Measure(uint n, Pauli[] b, uint[] ids) + { + return MeasureNative(this.Id, n, b, ids); + } + + protected override void MCR(Pauli basis, double angle, uint count, uint[] ctrls, uint qubit) + { + MCRNative(this.Id, basis, angle, count, ctrls, qubit); + } + + protected override void MCS(uint count, uint[] ctrls, uint qubit) + { + MCSNative(this.Id, count, ctrls, qubit); + } + + protected override void MCAdjS(uint count, uint[] ctrls, uint qubit) + { + MCAdjSNative(this.Id, count, ctrls, qubit); + } + + protected virtual void sim_Dump(DumpCallback callback) + { + sim_DumpNative(this.Id, callback); + } + + protected virtual bool sim_DumpQubits(uint count, uint[] ids, DumpCallback callback) + { + return sim_DumpQubitsNative(this.Id, count, ids, callback); + } + + protected override void MCT(uint count, uint[] ctrls, uint qubit) + { + MCTNative(this.Id, count, ctrls, qubit); + } + + protected override void MCAdjT(uint count, uint[] ctrls, uint qubit) + { + MCAdjTNative(this.Id, count, ctrls, qubit); + } + + protected override void MCY(uint count, uint[] ctrls, uint qubit) + { + MCYNative(this.Id, count, ctrls, qubit); + } + + protected override void AllocateOne(uint qubit_id) + { + AllocateOneNative(this.Id, qubit_id); + } + protected override bool ReleaseOne(uint qubit_id) + { + return ReleaseOneNative(this.Id, qubit_id); + } + + } +} \ No newline at end of file diff --git a/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs b/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs index 2df2bae2bb7..58bceb2903f 100644 --- a/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs +++ b/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs @@ -12,24 +12,8 @@ namespace Microsoft.Quantum.Simulation.Simulators { - public partial class QuantumSimulator : SimulatorBase, IQSharpCore, IType1Core, IType2Core, IType3Core, IDisposable + public partial class QuantumSimulator : CommonNativeSimulator { - public const string QSIM_DLL_NAME = "Microsoft.Quantum.Simulator.Runtime"; - - private delegate void IdsCallback(uint id); - - [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "DumpIds")] - private static extern void sim_QubitsIds(uint id, IdsCallback callback); - - [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "init")] - private static extern uint Init(); - - [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "destroy")] - private static extern uint Destroy(uint id); - - [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "seed")] - private static extern void SetSeed(uint id, UInt32 seedValue); - /// /// Creates a an instance of a quantum simulator. /// @@ -40,186 +24,27 @@ public QuantumSimulator( bool throwOnReleasingQubitsNotInZeroState = true, UInt32? randomNumberGeneratorSeed = null, bool disableBorrowing = false) - : base( - new QSimQubitManager(throwOnReleasingQubitsNotInZeroState, disableBorrowing : disableBorrowing), - (int?)randomNumberGeneratorSeed - ) + : base(throwOnReleasingQubitsNotInZeroState, + randomNumberGeneratorSeed, + disableBorrowing) { - Id = Init(); + Id = InitNative(); // Make sure that the same seed used by the built-in System.Random // instance is also used by the native simulator itself. - SetSeed(this.Id, (uint)this.Seed); - ((QSimQubitManager)QubitManager).Init(Id); - } - - public uint Id { get; } - - public override string Name - { - get - { - return "Quantum Simulator"; - } - } - - static void CheckQubitInUse(Qubit q, bool[] used) - { - if (q == null) throw new ArgumentNullException(nameof(q), "Trying to perform a primitive operation on a null Qubit"); - - if (used[q.Id]) - { - throw new NotDistinctQubits(q); - } - - used[q.Id] = true; - } - - /// - /// Makes sure the angle for a rotation or exp operation is not NaN or Infinity. - /// - static void CheckAngle(double angle) - { - IgnorableAssert.Assert(!(double.IsNaN(angle) || double.IsInfinity(angle)), "Invalid angle for rotation/exponentiation."); - - if (double.IsNaN(angle)) throw new ArgumentOutOfRangeException("angle", "Angle can't be NaN."); - if (double.IsInfinity(angle)) throw new ArgumentOutOfRangeException("angle", "Angle can't be Infity."); - } - - /// - /// Makes sure the target qubit of an operation is valid. In particular it checks that the qubit instance is not null. - /// Also sets the isMeasured flag to false for each qubit - /// - void CheckQubit(Qubit q1) - { - if (q1 == null) throw new ArgumentNullException(nameof(q1), "Trying to perform a primitive operation on a null Qubit"); - //setting qubit as not measured to not allow release in case of gate operation on qubit - q1.IsMeasured = false; - } - - /// - /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that - /// - none of the qubits are null - /// - there are no duplicated qubits - /// Also sets the isMeasured flag to false for each qubit - /// - bool[] CheckQubits(IQArray ctrls, Qubit q1) - { - bool[] used = new bool[((QSimQubitManager)QubitManager).MaxId]; - - CheckQubitInUse(q1, used); - q1.IsMeasured = false; - - if (ctrls != null && ctrls.Length > 0) - { - foreach (var q in ctrls) - { - CheckQubitInUse(q, used); - //setting qubit as not measured to not allow release in case of gate operation on qubit - q.IsMeasured = false; - } - } - - return used; + SetSeedNative(this.Id, (uint)this.Seed); } - - /// - /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that - /// - none of the qubits are null - /// - there are no duplicated qubits - /// Also sets the isMeasured flag to false for each qubit - /// - bool[] CheckQubits(IQArray targets) + public override void Dispose() { - if (targets == null) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on a null Qubit array."); - if (targets.Length == 0) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on an empty Qubit array."); - - bool[] used = new bool[((QSimQubitManager)QubitManager).MaxId]; - - foreach (var q in targets) - { - CheckQubitInUse(q, used); - //setting qubit as not measured to not allow release in case of gate operation on qubit - q.IsMeasured = false; - } - - return used; + DestroyNative(this.Id); } - /// - /// Intended to be used with simulator functions like Dump, Assert, AssertProb - /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that - /// - none of the qubits are null - /// - there are no duplicated qubits - /// - bool[] CheckAndPreserveQubits(IQArray targets) - { - if (targets == null) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on a null Qubit array."); - if (targets.Length == 0) throw new ArgumentNullException(nameof(targets), "Trying to perform an intrinsic operation on an empty Qubit array."); - - bool[] used = new bool[((QSimQubitManager)QubitManager).MaxId]; - - foreach (var q in targets) - { - CheckQubitInUse(q, used); - } - - return used; - } - - /// - /// Makes sure all qubits are valid as parameter of an intrinsic quantum operation. In particular it checks that - /// - none of the qubits are null - /// - there are no duplicated qubits - /// Also sets the isMeasured flag to false for each qubit - /// - bool[] CheckQubits(IQArray ctrls, IQArray targets) - { - bool[] used = CheckQubits(targets); - - if (ctrls != null) - { - foreach (var q in ctrls) - { - CheckQubitInUse(q, used); - //setting qubit as not measured to not allow release in case of gate operation on qubit - q.IsMeasured = false; - } - } - - return used; - } - - /// - /// Returns the list of the qubits' ids currently allocated in the simulator. - /// - public uint[] QubitIds + public override string Name { get { - var ids = new List(); - sim_QubitsIds(this.Id, ids.Add); - Debug.Assert(ids.Count == this.QubitManager.AllocatedQubitsCount); - return ids.ToArray(); + return "Quantum Simulator"; // There is a test case that expects exactly this string literal. } } - - static void SafeControlled(IQArray ctrls, Action noControlsAction, Action controlledAction) - { - if (ctrls == null || ctrls.Length == 0) - { - noControlsAction(); - } - else - { - uint count = (uint)ctrls.Length; - controlledAction(count, ctrls.GetIds()); - } - } - - public void Dispose() - { - Destroy(this.Id); - } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs b/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs index a7c351fad69..22c42a05f6e 100644 --- a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs +++ b/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs @@ -2,19 +2,22 @@ // Licensed under the MIT License. using System; +using System.Diagnostics; using Microsoft.Quantum.Simulation.Core; namespace Microsoft.Quantum.Simulation.Simulators { public partial class QuantumSimulator { + protected delegate bool DumpCallback(uint idx, double real, double img); + /// /// This class allows you to dump the state (wave function) /// of the QuantumSimulator into a callback function. /// The callback function is triggered for every state basis /// vector in the wavefunction. /// - public abstract class StateDumper + public abstract class StateDumper // Is used by "iqsharp\src\Jupyter\Visualization\StateDisplayOperations.cs". { /// /// Basic constructor. Takes the simulator to probe. @@ -48,13 +51,13 @@ public virtual bool Dump(IQArray? qubits = null) { if (qubits == null) { - sim_Dump(Simulator.Id, Callback); + this.Simulator.sim_Dump(Callback); return true; } else { var ids = qubits.GetIds(); - return sim_DumpQubits(Simulator.Id, (uint)ids.Length, ids, Callback); + return this.Simulator.sim_DumpQubits((uint)ids.Length, ids, Callback); } } } @@ -167,6 +170,8 @@ public override bool Callback(uint idx, double real, double img) public override bool Dump(IQArray? qubits = null) { + Debug.Assert(this.Simulator.QubitManager != null); + var count = qubits == null ? this.Simulator.QubitManager.AllocatedQubitsCount : qubits.Length; From e25fa0fc26a4821b22d4dcc8bb64f7ee483a9ddb Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Wed, 12 Jan 2022 11:14:51 -0800 Subject: [PATCH 18/26] libomp workaround for Linux, Mac (#897) * Workaround for libomp on Linux, Mac * Try renaming file * Add special case copy for local dev dependencies --- src/Simulation/Common/Simulators.Dev.props | 8 ++++++++ .../Native/linux/{libomp.so.5 => libomp.so} | Bin .../Simulators/QuantumSimulator/NativeImports.cs | 3 +++ .../Simulators/QuantumSimulator/QuantumSimulator.cs | 8 ++++++++ 4 files changed, 19 insertions(+) rename src/Simulation/Native/linux/{libomp.so.5 => libomp.so} (100%) diff --git a/src/Simulation/Common/Simulators.Dev.props b/src/Simulation/Common/Simulators.Dev.props index 9abcca669a7..bf304660f95 100644 --- a/src/Simulation/Common/Simulators.Dev.props +++ b/src/Simulation/Common/Simulators.Dev.props @@ -16,6 +16,9 @@ $(QsimDllMac) $(QsimDllLinux) $(QsimDllWindows) + $([MSBuild]::NormalizePath($(NativeBuildPath)/../../osx)) + $([MSBuild]::NormalizePath($(NativeBuildPath)/../../linux)) + $([MSBuild]::NormalizePath($(NativeBuildPath)/../../win10)) @@ -29,6 +32,11 @@ PreserveNewest false + + %(Filename)%(Extension) + PreserveNewest + false + diff --git a/src/Simulation/Native/linux/libomp.so.5 b/src/Simulation/Native/linux/libomp.so similarity index 100% rename from src/Simulation/Native/linux/libomp.so.5 rename to src/Simulation/Native/linux/libomp.so diff --git a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs index dd77a4299d0..3562c661487 100644 --- a/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs +++ b/src/Simulation/Simulators/QuantumSimulator/NativeImports.cs @@ -14,6 +14,9 @@ public partial class QuantumSimulator // Preparation\Arbitrary.cs(23,41): error CS0117: 'QuantumSimulator' does not contain a definition for // 'QSIM_DLL_NAME' [D:\a\1\s\submodules\QuantumLibraries\Standard\src\Standard.csproj] + [DllImport("libomp", ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "omp_get_num_threads")] + private static extern int OmpGetNumberOfThreadsNative(); + private delegate void IdsCallback(uint id); [DllImport(QSIM_DLL_NAME, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl, EntryPoint = "DumpIds")] private static extern void sim_QubitsIdsNative(uint id, IdsCallback callback); diff --git a/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs b/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs index 58bceb2903f..c012d569b40 100644 --- a/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs +++ b/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs @@ -28,6 +28,14 @@ public QuantumSimulator( randomNumberGeneratorSeed, disableBorrowing) { + if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + // We don't need this value, but explicitly calling an OMP function should trigger the load of libomp + // by .NET from the runtimes folder for the current platform, such that the later library load by the + // simulator does not need to know where to search for it. + var threadCount = OmpGetNumberOfThreadsNative(); + } + Id = InitNative(); // Make sure that the same seed used by the built-in System.Random // instance is also used by the native simulator itself. From 45a92af9307080a8e6b39a2213ff92dfda9bfd5b Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Wed, 12 Jan 2022 18:43:53 -0800 Subject: [PATCH 19/26] Add exponentiation test for runtime (#899) --- src/Qir/Tests/QIR-static/qir-test-math.cpp | 6 ++++++ src/Qir/Tests/QIR-static/qsharp/qir-test-math.qs | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/Qir/Tests/QIR-static/qir-test-math.cpp b/src/Qir/Tests/QIR-static/qir-test-math.cpp index 91e0e09857c..87765cb22e4 100644 --- a/src/Qir/Tests/QIR-static/qir-test-math.cpp +++ b/src/Qir/Tests/QIR-static/qir-test-math.cpp @@ -23,6 +23,7 @@ extern "C" uint64_t Microsoft__Quantum__Testing__QIR__Math__SinhTest__Interop(); extern "C" uint64_t Microsoft__Quantum__Testing__QIR__Math__CoshTest__Interop(); // NOLINT extern "C" uint64_t Microsoft__Quantum__Testing__QIR__Math__TanhTest__Interop(); // NOLINT extern "C" uint64_t Microsoft__Quantum__Testing__QIR__Math__IeeeRemainderTest__Interop(); // NOLINT +extern "C" uint64_t Microsoft__Quantum__Testing__QIR__Math__ExponentTest__Interop(); // NOLINT extern "C" int64_t Microsoft__Quantum__Testing__QIR__Math__TestDrawRandomInt__Interop( // NOLINT int64_t min, int64_t max); extern "C" double Microsoft__Quantum__Testing__QIR__Math__TestDrawRandomDouble__Interop( // NOLINT @@ -98,6 +99,11 @@ TEST_CASE("QIR: Math.IeeeRemainder", "[qir.math][qir.Math.IeeeRemainder]") REQUIRE(0 == Microsoft__Quantum__Testing__QIR__Math__IeeeRemainderTest__Interop()); } +TEST_CASE("QIR: Math.Exponent.builtin", "[qir.math][qir.Math.Exponent.builtin]") +{ + REQUIRE(0 == Microsoft__Quantum__Testing__QIR__Math__ExponentTest__Interop()); +} + TEST_CASE("QIR: Math.DrawRandomInt", "[qir.math][qir.Math.DrawRandomInt]") { // Test that the Q# random number generator is a wrapper around the C++ generator: diff --git a/src/Qir/Tests/QIR-static/qsharp/qir-test-math.qs b/src/Qir/Tests/QIR-static/qsharp/qir-test-math.qs index 000260ef140..052d0168a2b 100644 --- a/src/Qir/Tests/QIR-static/qsharp/qir-test-math.qs +++ b/src/Qir/Tests/QIR-static/qsharp/qir-test-math.qs @@ -346,4 +346,9 @@ namespace Microsoft.Quantum.Testing.QIR.Math { return 0; } + @EntryPoint() + function ExponentTest() : Int { + return (2 ^ 2) - 4; + } + } From 7736de760cf2ae9b3a099ba8df9713fffe453005 Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Wed, 12 Jan 2022 21:27:19 -0800 Subject: [PATCH 20/26] Fixing sign usage on Y matrix (#893) --- src/Simulation/qdk_sim_rs/src/common_matrices.rs | 2 +- src/Simulation/qdk_sim_rs/tests/data/ideal-noise-model.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Simulation/qdk_sim_rs/src/common_matrices.rs b/src/Simulation/qdk_sim_rs/src/common_matrices.rs index 4247b1d6234..60d562ee0bc 100644 --- a/src/Simulation/qdk_sim_rs/src/common_matrices.rs +++ b/src/Simulation/qdk_sim_rs/src/common_matrices.rs @@ -24,7 +24,7 @@ pub fn x() -> Array2 { /// Returns a unitary matrix representing the `Y` operation. pub fn y() -> Array2 { - array![[ZERO_C, I_C], [-I_C, ZERO_C]] + array![[ZERO_C, -I_C], [I_C, ZERO_C]] } /// Returns a unitary matrix representing the `Z` operation. diff --git a/src/Simulation/qdk_sim_rs/tests/data/ideal-noise-model.json b/src/Simulation/qdk_sim_rs/tests/data/ideal-noise-model.json index 33c2d3089bb..19778ad8793 100644 --- a/src/Simulation/qdk_sim_rs/tests/data/ideal-noise-model.json +++ b/src/Simulation/qdk_sim_rs/tests/data/ideal-noise-model.json @@ -1 +1 @@ -{"initial_state":{"n_qubits":1,"data":{"Mixed":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[0,0]]}}},"cnot":{"n_qubits":2,"data":{"Unitary":{"v":1,"dim":[4,4],"data":[[1,0],[0,0],[0,0],[0,0],[0,0],[1,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1,0],[0,0],[0,0],[1,0],[0,0]]}}},"i":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[1,0]]}}},"s":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[0,1]]}}},"s_adj":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,-0],[0,-0],[0,-0],[0,-1]]}}},"t":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[0.7071067811865476,0.7071067811865476]]}}},"t_adj":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,-0],[0,-0],[0,-0],[0.7071067811865476,-0.7071067811865476]]}}},"h":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[0.7071067811865476,0],[0.7071067811865476,0],[0.7071067811865476,0],[-0.7071067811865476,-0]]}}},"x":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[0,0],[1,0],[1,0],[0,0]]}}},"y":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[0,0],[0,1],[-0,-1],[0,0]]}}},"z":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[-1,-0]]}}},"z_meas":{"Effects":[{"n_qubits":1,"data":{"KrausDecomposition":{"v":1,"dim":[1,2,2],"data":[[1,0],[0,0],[0,0],[0,0]]}}},{"n_qubits":1,"data":{"KrausDecomposition":{"v":1,"dim":[1,2,2],"data":[[0,0],[0,0],[0,0],[1,0]]}}}]}} \ No newline at end of file +{"initial_state":{"n_qubits":1,"data":{"Mixed":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[0,0]]}}},"cnot":{"n_qubits":2,"data":{"Unitary":{"v":1,"dim":[4,4],"data":[[1,0],[0,0],[0,0],[0,0],[0,0],[1,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1,0],[0,0],[0,0],[1,0],[0,0]]}}},"i":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[1,0]]}}},"s":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[0,1]]}}},"s_adj":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,-0],[0,-0],[0,-0],[0,-1]]}}},"t":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[0.7071067811865476,0.7071067811865476]]}}},"t_adj":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,-0],[0,-0],[0,-0],[0.7071067811865476,-0.7071067811865476]]}}},"h":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[0.7071067811865476,0],[0.7071067811865476,0],[0.7071067811865476,0],[-0.7071067811865476,-0]]}}},"x":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[0,0],[1,0],[1,0],[0,0]]}}},"y":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[0,0],[-0,-1],[0,1],[0,0]]}}},"z":{"n_qubits":1,"data":{"Unitary":{"v":1,"dim":[2,2],"data":[[1,0],[0,0],[0,0],[-1,-0]]}}},"z_meas":{"Effects":[{"n_qubits":1,"data":{"KrausDecomposition":{"v":1,"dim":[1,2,2],"data":[[1,0],[0,0],[0,0],[0,0]]}}},{"n_qubits":1,"data":{"KrausDecomposition":{"v":1,"dim":[1,2,2],"data":[[0,0],[0,0],[0,0],[1,0]]}}}]}} From dcb5b1a305f0480b5fa07a9f1de5b82b5e44ef33 Mon Sep 17 00:00:00 2001 From: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com> Date: Fri, 14 Jan 2022 13:25:39 -0800 Subject: [PATCH 21/26] Refactored the Dump functionality on Q#RT side. (#898) --- .../CommonNativeSimulator.cs | 2 + .../CommonNativeSimulator/DisplayableState.cs | 242 ++++++++++++++++++ .../Simulators/CommonNativeSimulator/Dump.cs | 156 +++++++++-- .../CommonNativeSimulator/NativeWrappers.cs | 4 + .../Simulators/QuantumSimulator/Dump.cs | 16 +- .../QuantumSimulator/NativeWrappers.cs | 4 +- .../QuantumSimulator/StateDumper.cs | 184 ------------- 7 files changed, 392 insertions(+), 216 deletions(-) create mode 100644 src/Simulation/Simulators/CommonNativeSimulator/DisplayableState.cs delete mode 100644 src/Simulation/Simulators/QuantumSimulator/StateDumper.cs diff --git a/src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs b/src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs index dda46fc992a..e444e7bc203 100644 --- a/src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/CommonNativeSimulator.cs @@ -35,6 +35,8 @@ private protected CommonNativeSimulator( public uint Id { get; protected set; } + public abstract uint[] QubitIds { get; } + public override string Name { get diff --git a/src/Simulation/Simulators/CommonNativeSimulator/DisplayableState.cs b/src/Simulation/Simulators/CommonNativeSimulator/DisplayableState.cs new file mode 100644 index 00000000000..0cdf4fd272c --- /dev/null +++ b/src/Simulation/Simulators/CommonNativeSimulator/DisplayableState.cs @@ -0,0 +1,242 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace Microsoft.Quantum.Simulation.Simulators +{ + public partial class CommonNativeSimulator + { + /// + /// The convention to be used in labeling computational basis states + /// given their representations as strings of classical bits. + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum BasisStateLabelingConvention + { + /// + /// Label computational states directly by their bit strings. + /// + /// + /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled + /// by |011⟩. + /// + Bitstring, + + /// + /// Label computational states directly by interpreting their bit + /// strings as little-endian encoded integers. + /// + /// + /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled + /// by |6⟩. + /// + LittleEndian, + + /// + /// Label computational states directly by interpreting their bit + /// strings as big-endian encoded integers. + /// + /// + /// Following this convention, the state |0⟩ ⊗ |1⟩ ⊗ |1⟩ is labeled + /// by |3⟩. + /// + BigEndian + } + + /// + /// Represents a quantum state vector and all metadata needed to display + /// that state vector. + /// + public class DisplayableState + { + private static readonly IComparer ToIntComparer = + Comparer.Create((label1, label2) => + Comparer.Default.Compare( + Int32.Parse(label1), Int32.Parse(label2) + ) + ); + + /// + /// Metadata to be used when serializing to JSON, allowing code + /// in other languages to determine what representation is used + /// for this state. + /// + [JsonProperty("diagnostic_kind")] + private string DiagnosticKind => "state-vector"; + + /// + /// The indexes of each qubit on which this state is defined, or + /// null if these indexes are not known. + /// + [JsonProperty("qubit_ids")] + public IEnumerable? QubitIds { get; set; } + + /// + /// The number of qubits on which this state is defined. + /// + [JsonProperty("n_qubits")] + public int NQubits { get; set; } + + /// + /// These amplitudes represent the computational basis states + /// labeled in little-endian order, as per the behavior of + /// . + /// + [JsonProperty("amplitudes")] + public IDictionary? Amplitudes { get; set; } + + /// + /// An enumerable source of the significant amplitudes of this state + /// vector and their labels. + /// + /// + /// The convention to be used in labeling each computational basis state. + /// + /// + /// Whether to truncate small amplitudes. + /// + /// + /// If is true, + /// then amplitudes whose absolute value squared are below this + /// threshold are suppressed. + /// + public IEnumerable<(Complex, string)> SignificantAmplitudes( + BasisStateLabelingConvention convention, + bool truncateSmallAmplitudes, double truncationThreshold + ) => + ( + truncateSmallAmplitudes + ? Amplitudes + .Where(item => + System.Math.Pow(item.Value.Magnitude, 2.0) >= truncationThreshold + ) + : Amplitudes + ) + .Select( + item => (item.Value, BasisStateLabel(convention, item.Key)) + ) + .OrderBy( + item => item.Item2, + // If a basis state label is numeric, we want to compare + // numerically rather than lexographically. + convention switch { + BasisStateLabelingConvention.BigEndian => ToIntComparer, + BasisStateLabelingConvention.LittleEndian => ToIntComparer, + _ => Comparer.Default + } + ); + + /// + /// Using the given labeling convention, returns the label for a + /// computational basis state described by its bit string as encoded + /// into an integer index in the little-endian encoding. + /// + public string BasisStateLabel( + BasisStateLabelingConvention convention, int index + ) => convention switch + { + BasisStateLabelingConvention.Bitstring => + String.Concat( + System + .Convert + .ToString(index, 2) + .PadLeft(NQubits, '0') + .Reverse() + ), + BasisStateLabelingConvention.BigEndian => + System.Convert.ToInt64( + String.Concat( + System.Convert.ToString(index, 2).PadLeft(NQubits, '0').Reverse() + ), + fromBase: 2 + ) + .ToString(), + BasisStateLabelingConvention.LittleEndian => + index.ToString(), + _ => throw new ArgumentException($"Invalid basis state labeling convention {convention}.") + }; + + /// + /// Returns a string that represents the magnitude of the amplitude. + /// + public virtual string FormatMagnitude(double magnitude, double phase) => + (new String('*', (int)System.Math.Ceiling(20.0 * magnitude))).PadRight(20) + $" [ {magnitude:F6} ]"; + + /// + /// Returns a string that represents the phase of the amplitude. + /// + public virtual string FormatAngle(double magnitude, double angle) + { + var PI = System.Math.PI; + var offset = PI / 16.0; + if (magnitude == 0.0) + { + return " "; + } + + var chart = " ---"; + if (angle > 0) + { + if (angle >= (0 * PI / 8) + offset && angle < ((1 * PI / 8) + offset)) { chart = " /-"; } + if (angle >= (1 * PI / 8) + offset && angle < ((2 * PI / 8) + offset)) { chart = " / "; } + if (angle >= (2 * PI / 8) + offset && angle < ((3 * PI / 8) + offset)) { chart = " +/ "; } + if (angle >= (3 * PI / 8) + offset && angle < ((4 * PI / 8) + offset)) { chart = " ↑ "; } + if (angle >= (4 * PI / 8) + offset && angle < ((5 * PI / 8) + offset)) { chart = " \\- "; } + if (angle >= (5 * PI / 8) + offset && angle < ((6 * PI / 8) + offset)) { chart = " \\ "; } + if (angle >= (6 * PI / 8) + offset && angle < ((7 * PI / 8) + offset)) { chart = "+\\ "; } + if (angle >= (7 * PI / 8) + offset) { chart = "--- "; } + } + else if (angle < 0) + { + var abs_angle = System.Math.Abs(angle); + if (abs_angle >= (0 * PI / 8) + offset && abs_angle < ((1 * PI / 8) + offset)) { chart = " \\+"; } + if (abs_angle >= (1 * PI / 8) + offset && abs_angle < ((2 * PI / 8) + offset)) { chart = " \\ "; } + if (abs_angle >= (2 * PI / 8) + offset && abs_angle < ((3 * PI / 8) + offset)) { chart = " -\\ "; } + if (abs_angle >= (3 * PI / 8) + offset && abs_angle < ((4 * PI / 8) + offset)) { chart = " ↓ "; } + if (abs_angle >= (4 * PI / 8) + offset && abs_angle < ((5 * PI / 8) + offset)) { chart = " /+ "; } + if (abs_angle >= (5 * PI / 8) + offset && abs_angle < ((6 * PI / 8) + offset)) { chart = " / "; } + if (abs_angle >= (6 * PI / 8) + offset && abs_angle < ((7 * PI / 8) + offset)) { chart = "-/ "; } + } + + return $" {chart} [ {angle,8:F5} rad ]"; + } + + /// + /// Returns a string for the amplitude's polar representation (magnitude/angle). + /// + public virtual string FormatPolar(double magnitude, double angle) => + $"{FormatMagnitude(magnitude, angle)}{FormatAngle(magnitude, angle)}"; + + /// + /// Returns a string for the amplitude's cartesian representation (real + imagnary). + /// + public virtual string FormatCartesian(double real, double img) => + $"{real,9:F6} + {img,9:F6} i"; + + public string ToString(BasisStateLabelingConvention convention, // Non-override. Parameterized. + bool truncateSmallAmplitudes, + double truncationThreshold) + { + return string.Join('\n', + SignificantAmplitudes(convention, truncateSmallAmplitudes, truncationThreshold) + .Select( + item => + { + var (cmplx, basisLabel) = item; + var amplitude = (cmplx.Real * cmplx.Real) + (cmplx.Imaginary * cmplx.Imaginary); + var angle = System.Math.Atan2(cmplx.Imaginary, cmplx.Real); + return $"|{basisLabel}⟩\t{FormatCartesian(cmplx.Real, cmplx.Imaginary)}\t == \t" + + $"{FormatPolar(amplitude, angle)}"; + })); + } + + public override string ToString() => // An override of the `object.ToString()`. + ToString(BasisStateLabelingConvention.LittleEndian, false, 0.0); + + } + + } +} diff --git a/src/Simulation/Simulators/CommonNativeSimulator/Dump.cs b/src/Simulation/Simulators/CommonNativeSimulator/Dump.cs index 51fa1c153fa..ce3bcf38f63 100644 --- a/src/Simulation/Simulators/CommonNativeSimulator/Dump.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/Dump.cs @@ -2,19 +2,18 @@ // Licensed under the MIT License. using System; +using System.Collections.Generic; using System.IO; using System.Linq; +using System.Numerics; using Microsoft.Quantum.Simulation.Core; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace Microsoft.Quantum.Simulation.Simulators { public partial class CommonNativeSimulator { - protected virtual QVoid process(Action channel, IQArray? qubits) - { - return QVoid.Instance; - } - /// /// Dumps the wave function for the given qubits into the given target. /// If the target is QVoid or an empty string, it dumps it to the console @@ -26,30 +25,27 @@ protected virtual QVoid process(Action channel, IQArray? qubits) /// protected virtual QVoid Dump(T target, IQArray? qubits = null) { - var filename = (target is QVoid) ? "" : target.ToString(); - var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); + var filename = ((target == null) || (target is QVoid)) ? "" : target.ToString(); - // If no file provided, use `Message` to generate the message into the console; + // If no file provided, output to the console; if (string.IsNullOrWhiteSpace(filename)) { - var op = this.Get, Microsoft.Quantum.Intrinsic.Message>(); - return process((msg) => op.Apply(msg), qubits); + new DisplayableStateDumper(this).Dump(qubits); } else { try { - using (var file = new StreamWriter(filename)) - { - return process(file.WriteLine, qubits); - } + using var file = new StreamWriter(filename); + new DisplayableStateDumper(this, file.WriteLine).Dump(qubits); } catch (Exception e) { + var logMessage = this.Get, Microsoft.Quantum.Intrinsic.Message>(); logMessage.Apply($"[warning] Unable to write state to '{filename}' ({e.Message})"); - return QVoid.Instance; } } + return QVoid.Instance; } // `QsimDumpMachine` makes an impression that it is never used, @@ -96,5 +92,135 @@ public QSimDumpRegister(CommonNativeSimulator m) : base(m) return Simulator.Dump(location, qubits); }; } + + /// + /// This class allows you to dump the state (wave function) + /// of the native simulator into a callback function. + /// The callback function is triggered for every state basis + /// vector in the wavefunction. + /// + public abstract class StateDumper + { + /// + /// Basic constructor. Takes the simulator to probe. + /// + public StateDumper(CommonNativeSimulator qsim) + { + this.Simulator = qsim; + } + + /// + /// The callback method that will be used to report the amplitude + /// of each basis vector of the wave function. + /// The method should return 'true' if the simulator should + /// continue reporting the state of the remaining basis vectors. + /// + /// The index of the basis state vector being reported. + /// The real portion of the amplitude of the given basis state vector. + /// The imaginary portion of the amplitude of the given basis state vector. + /// true if dumping should continue, false to stop dumping. + public abstract bool Callback(uint idx, double real, double img); + + /// + /// The Simulator being reported. + /// + public CommonNativeSimulator Simulator { get; } + + /// + /// Entry method to get the dump of the wave function. + /// + public virtual bool Dump(IQArray? qubits = null) + { + if (qubits == null) + { + this.Simulator.sim_Dump(Callback); + return true; + } + else + { + var ids = qubits.GetIds(); + return this.Simulator.sim_DumpQubits((uint)ids.Length, ids, Callback); + } + } + } + + /// + /// A state dumper that encodes dumped states into displayable + /// objects. + /// + public class DisplayableStateDumper : StateDumper + { + private long _count = -1; + private IDictionary? _data = null; + + /// + /// A method to call to output a string representation. + /// + public virtual Action? FileWriter { get; } + + /// + /// Constructs a new display dumper for a given simulator. + /// + public DisplayableStateDumper(CommonNativeSimulator sim, Action? fileWriter = null) : base(sim) + { + this.FileWriter = fileWriter; + } + + /// + /// Used by the simulator to provide states when dumping. + /// Not intended to be called directly. + /// + public override bool Callback(uint idx, double real, double img) + { + if (_data == null) throw new Exception("Expected data buffer to be initialized before callback, but it was null."); + _data[(int)idx] = new Complex(real, img); + return true; + } + + /// + /// Dumps the state of a register of qubits as a displayable object. + /// + public override bool Dump(IQArray? qubits = null) + { + System.Diagnostics.Debug.Assert(this.Simulator.QubitManager != null, + "Internal logic error, QubitManager must be assigned"); + + _count = qubits == null + ? this.Simulator.QubitManager.AllocatedQubitsCount + : qubits.Length; + _data = new Dictionary(); // If 0 qubits are allocated then the array has + // a single element. The Hilbert space of the system is + // ℂ¹ (that is, complex-valued scalars). + var result = base.Dump(qubits); + + // At this point, _data should be filled with the full state + // vector, so let's display it, counting on the right display + // encoder to be there to pack it into a table. + + var state = new DisplayableState + { + // We cast here as we don't support a large enough number + // of qubits to saturate an int. + QubitIds = qubits?.Select(q => q.Id) ?? Simulator.QubitIds.Select(q => (int)q) ?? Enumerable.Empty(), + NQubits = (int)_count, + Amplitudes = _data, + }; + + if (this.FileWriter != null) + { + this.FileWriter(state.ToString()); + } + else + { + Simulator.MaybeDisplayDiagnostic(state); + } + + // Clean up the state vector buffer. + _data = null; + + return result; + } + + } } } diff --git a/src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs b/src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs index 7e33cea1441..42bfca58c8d 100644 --- a/src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs +++ b/src/Simulation/Simulators/CommonNativeSimulator/NativeWrappers.cs @@ -29,5 +29,9 @@ public partial class CommonNativeSimulator protected abstract void MCY(uint count, uint[] ctrls, uint qubit); protected abstract void Z(uint qubit); protected abstract void MCZ(uint count, uint[] ctrls, uint qubit); + + protected delegate bool DumpCallback(uint idx, double real, double img); + protected abstract void sim_Dump(DumpCallback callback); + protected abstract bool sim_DumpQubits(uint count, uint[] ids, DumpCallback callback); } } diff --git a/src/Simulation/Simulators/QuantumSimulator/Dump.cs b/src/Simulation/Simulators/QuantumSimulator/Dump.cs index 3e414204905..d89a153c50f 100644 --- a/src/Simulation/Simulators/QuantumSimulator/Dump.cs +++ b/src/Simulation/Simulators/QuantumSimulator/Dump.cs @@ -14,7 +14,7 @@ public partial class QuantumSimulator /// /// Returns the list of the qubits' ids currently allocated in the simulator. /// - public uint[] QubitIds + public override uint[] QubitIds { get { @@ -26,19 +26,5 @@ public uint[] QubitIds } } - protected override QVoid process(Action channel, IQArray? qubits) - { - var ids = qubits?.Select(q => (uint)q.Id).ToArray() ?? QubitIds; - - var dumper = new SimpleDumper(this, channel); - channel($"# wave function for qubits with ids (least to most significant): {string.Join(";", ids)}"); - - if (!dumper.Dump(qubits)) - { - channel("## Qubits were entangled with an external qubit. Cannot dump corresponding wave function. ##"); - } - - return QVoid.Instance; - } } } diff --git a/src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs b/src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs index b185f287771..4ad08dc2a3d 100644 --- a/src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs +++ b/src/Simulation/Simulators/QuantumSimulator/NativeWrappers.cs @@ -107,12 +107,12 @@ protected override void MCAdjS(uint count, uint[] ctrls, uint qubit) MCAdjSNative(this.Id, count, ctrls, qubit); } - protected virtual void sim_Dump(DumpCallback callback) + protected override void sim_Dump(DumpCallback callback) { sim_DumpNative(this.Id, callback); } - protected virtual bool sim_DumpQubits(uint count, uint[] ids, DumpCallback callback) + protected override bool sim_DumpQubits(uint count, uint[] ids, DumpCallback callback) { return sim_DumpQubitsNative(this.Id, count, ids, callback); } diff --git a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs b/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs deleted file mode 100644 index 22c42a05f6e..00000000000 --- a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Diagnostics; -using Microsoft.Quantum.Simulation.Core; - -namespace Microsoft.Quantum.Simulation.Simulators -{ - public partial class QuantumSimulator - { - protected delegate bool DumpCallback(uint idx, double real, double img); - - /// - /// This class allows you to dump the state (wave function) - /// of the QuantumSimulator into a callback function. - /// The callback function is triggered for every state basis - /// vector in the wavefunction. - /// - public abstract class StateDumper // Is used by "iqsharp\src\Jupyter\Visualization\StateDisplayOperations.cs". - { - /// - /// Basic constructor. Takes the simulator to probe. - /// - public StateDumper(QuantumSimulator qsim) - { - this.Simulator = qsim; - } - - /// - /// The callback method that will be used to report the amplitude - /// of each basis vector of the wave function. - /// The method should return 'true' if the QuantumSimulator should - /// continue reporting the state of the remaining basis vectors. - /// - /// The index of the basis state vector being reported. - /// The real portion of the amplitude of the given basis state vector. - /// The imaginary portion of the amplitude of the given basis state vector. - /// true if dumping should continue, false to stop dumping. - public abstract bool Callback(uint idx, double real, double img); - - /// - /// The QuantumSimulator being reported. - /// - public QuantumSimulator Simulator { get; } - - /// - /// Entry method to get the dump of the wave function. - /// - public virtual bool Dump(IQArray? qubits = null) - { - if (qubits == null) - { - this.Simulator.sim_Dump(Callback); - return true; - } - else - { - var ids = qubits.GetIds(); - return this.Simulator.sim_DumpQubits((uint)ids.Length, ids, Callback); - } - } - } - - /// - /// A simple implementation of a . It outputs the - /// a string representation of the state to the given channel. - /// - public class SimpleDumper : StateDumper - { - private int _maxCharsStateId; - - public SimpleDumper(QuantumSimulator qsim, Action channel) : base(qsim) - { - this.Channel = channel; - } - - /// - /// A method to call to output a string representation of the amplitude of each - /// state basis vector. - /// - public virtual Action Channel { get; } - - /// - /// Returns a string that represents the label for the given base state. - /// - public virtual string FormatBaseState(uint idx) => - $"∣{idx.ToString().PadLeft(_maxCharsStateId, ' ')}❭"; - - /// - /// Returns a string that represents the magnitude of the amplitude. - /// - public virtual string FormatMagnitude(double magnitude, double phase) => - (new String('*', (int)System.Math.Ceiling(20.0 * magnitude))).PadRight(20) + $" [ {magnitude:F6} ]"; - - /// - /// Returns a string that represents the phase of the amplitude. - /// - public virtual string FormatAngle(double magnitude, double angle) - { - var PI = System.Math.PI; - var offset = PI / 16.0; - if (magnitude == 0.0) - { - return " "; - } - - var chart = " ---"; - if (angle > 0) - { - if (angle >= (0 * PI / 8) + offset && angle < ((1 * PI / 8) + offset)) { chart = " /-"; } - if (angle >= (1 * PI / 8) + offset && angle < ((2 * PI / 8) + offset)) { chart = " / "; } - if (angle >= (2 * PI / 8) + offset && angle < ((3 * PI / 8) + offset)) { chart = " +/ "; } - if (angle >= (3 * PI / 8) + offset && angle < ((4 * PI / 8) + offset)) { chart = " ↑ "; } - if (angle >= (4 * PI / 8) + offset && angle < ((5 * PI / 8) + offset)) { chart = " \\- "; } - if (angle >= (5 * PI / 8) + offset && angle < ((6 * PI / 8) + offset)) { chart = " \\ "; } - if (angle >= (6 * PI / 8) + offset && angle < ((7 * PI / 8) + offset)) { chart = "+\\ "; } - if (angle >= (7 * PI / 8) + offset) { chart = "--- "; } - } - else if (angle < 0) - { - var abs_angle = System.Math.Abs(angle); - if (abs_angle >= (0 * PI / 8) + offset && abs_angle < ((1 * PI / 8) + offset)) { chart = " \\+"; } - if (abs_angle >= (1 * PI / 8) + offset && abs_angle < ((2 * PI / 8) + offset)) { chart = " \\ "; } - if (abs_angle >= (2 * PI / 8) + offset && abs_angle < ((3 * PI / 8) + offset)) { chart = " -\\ "; } - if (abs_angle >= (3 * PI / 8) + offset && abs_angle < ((4 * PI / 8) + offset)) { chart = " ↓ "; } - if (abs_angle >= (4 * PI / 8) + offset && abs_angle < ((5 * PI / 8) + offset)) { chart = " /+ "; } - if (abs_angle >= (5 * PI / 8) + offset && abs_angle < ((6 * PI / 8) + offset)) { chart = " / "; } - if (abs_angle >= (6 * PI / 8) + offset && abs_angle < ((7 * PI / 8) + offset)) { chart = "-/ "; } - } - - return $" {chart} [ {angle,8:F5} rad ]"; - } - - /// - /// Returns a string for the amplitude's polar representation (magnitude/angle). - /// - public virtual string FormatPolar(double magnitude, double angle) => - $"{FormatMagnitude(magnitude, angle)}{FormatAngle(magnitude, angle)}"; - - /// - /// Returns a string for the amplitude's cartesian representation (real + imagnary). - /// - public virtual string FormatCartesian(double real, double img) => - $"{real,9:F6} + {img,9:F6} i"; - - /// - /// The method to use to format the amplitude into a string. - /// - public virtual string Format(uint idx, double real, double img) - { - var amplitude = (real * real) + (img * img); - var angle = System.Math.Atan2(img, real); - - return $"{FormatBaseState(idx)}:\t" + - $"{FormatCartesian(real, img)}\t == \t" + - $"{FormatPolar(amplitude, angle)}"; - - } - - /// - /// The callback method. Formats the given state and invokes the - /// - /// True, so the entire wave function is dumped. - public override bool Callback(uint idx, double real, double img) - { - Channel(Format(idx, real, img)); - return true; - } - - public override bool Dump(IQArray? qubits = null) - { - Debug.Assert(this.Simulator.QubitManager != null); - - var count = qubits == null - ? this.Simulator.QubitManager.AllocatedQubitsCount - : qubits.Length; - this._maxCharsStateId = ((1 << (int)count) - 1).ToString().Length; - - return base.Dump(qubits); - } - } - } -} From 0c0e65d22eadff706fca61e223b65ccf2308ceca Mon Sep 17 00:00:00 2001 From: Mariia Mykhailova Date: Wed, 19 Jan 2022 12:17:32 -0800 Subject: [PATCH 22/26] Fix links to QIR specification (#903) * Fix links to QIR specification * Update README.md * Update README.md --- src/Qir/Runtime/README.md | 4 ++-- src/Qir/Runtime/lib/README.md | 2 +- src/Qir/Runtime/lib/Tracer/README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Qir/Runtime/README.md b/src/Qir/Runtime/README.md index c12eacdd5eb..ca78e33afa0 100644 --- a/src/Qir/Runtime/README.md +++ b/src/Qir/Runtime/README.md @@ -2,7 +2,7 @@ This folder contains the Quantum Intermediate Representation (QIR) Runtime project. The QIR is a subset of the [LLVM](https://llvm.org/) Intermediate Representation. The QIR runtime includes an implementation of the - [QIR specification](https://github.com/microsoft/qsharp-language/tree/main/Specifications/QIR) and the bridge to + [QIR specification](https://github.com/qir-alliance/qir-spec) and the bridge to run QIR against the native full state simulator. - `public` folder contains the public headers @@ -98,7 +98,7 @@ For tests that depend on the native simulator and qdk shared libraries, you migh ## QIR Bridge and Runtime This project contains an implementation of the QIR runtime per the - [QIR specifications](https://github.com/microsoft/qsharp-language/tree/main/Specifications/QIR) and the translation + [QIR specifications](https://github.com/qir-alliance/qir-spec) and the translation layer between the QIR and the IR, generated by Clang from the native code. Translation layer is called the "QIR Bridge". ![QIR Bridge architecture diagram](qir.png?raw=true "QIR Bridge architecture diagram") diff --git a/src/Qir/Runtime/lib/README.md b/src/Qir/Runtime/lib/README.md index dc13b07d59f..c29f64860de 100644 --- a/src/Qir/Runtime/lib/README.md +++ b/src/Qir/Runtime/lib/README.md @@ -16,7 +16,7 @@ Is a project defined [here](../../../Simulation/QSharpFoundation). Is a project defined [here](../../../Simulation/QSharpCore). ## QIR -Anything that is required by the [QIR specs](https://github.com/microsoft/qsharp-language/tree/main/Specifications/QIR), +Anything that is required by the [QIR specs](https://github.com/qir-alliance/qir-spec), which in particular includes the ["methods that delegate to the simulators"](QIR/bridge-rt.ll#46), should live in the QIR folder. They require support from the backend, but are not language-specific. Both the Q# Core and the Q# Foundation are Q#-specific in that these are the target instructions that the Q# libraries are built on. diff --git a/src/Qir/Runtime/lib/Tracer/README.md b/src/Qir/Runtime/lib/Tracer/README.md index 43993131345..ed0ec4e74dd 100644 --- a/src/Qir/Runtime/lib/Tracer/README.md +++ b/src/Qir/Runtime/lib/Tracer/README.md @@ -6,7 +6,7 @@ The purpose of the Resource Tracer is to provide efficient and flexible way to e for more background on resource estimation for quantum programs. To run against the tracer, the quantum program should comply with the - [QIR specifications](https://github.com/microsoft/qsharp-language/tree/main/Specifications/QIR) as well as: + [QIR specifications](https://github.com/qir-alliance/qir-spec) as well as: 1. convert _each_ used intrinsic operation into one of the Quantum Instruction Set (_qis_) operations supported by the tracer (see the last section of this readme); From a86051802eca2e96b270255e2f42b580b43c8945 Mon Sep 17 00:00:00 2001 From: Mariia Mykhailova Date: Wed, 19 Jan 2022 13:50:34 -0800 Subject: [PATCH 23/26] Fix capitalization in xref links (#902) xref links in https://docs.microsoft.com/en-us/qsharp/api/qsharp/microsoft.quantum.diagnostics.assertqubitwithintolerance and https://docs.microsoft.com/en-us/qsharp/api/qsharp/microsoft.quantum.diagnostics.assertqubit don't render as links. I believe docgen doesn't recognize API links if they are given in lowercase, it needs proper capitalization in xref. Co-authored-by: XField <58103249+vxfield@users.noreply.github.com> --- src/Simulation/QSharpFoundation/Diagnostics/AssertQubit.qs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Simulation/QSharpFoundation/Diagnostics/AssertQubit.qs b/src/Simulation/QSharpFoundation/Diagnostics/AssertQubit.qs index e1a9e993012..e44142a93e1 100644 --- a/src/Simulation/QSharpFoundation/Diagnostics/AssertQubit.qs +++ b/src/Simulation/QSharpFoundation/Diagnostics/AssertQubit.qs @@ -19,7 +19,7 @@ namespace Microsoft.Quantum.Diagnostics { /// - AssertQubitIsInStateWithinTolerance /// /// # Remarks - /// allows for asserting + /// allows for asserting /// arbitrary qubit states rather than only $Z$ eigenstates. /// /// Note that the Adjoint and Controlled versions of this operation will not @@ -47,7 +47,7 @@ namespace Microsoft.Quantum.Diagnostics { /// - AssertQubitIsInStateWithinTolerance /// /// # Remarks - /// allows for asserting + /// allows for asserting /// arbitrary qubit states rather than only $Z$ eigenstates. /// /// Note that the Adjoint and Controlled versions of this operation will not From d6ec661b018d5a55a399048ebc104cd20043d47a Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Thu, 20 Jan 2022 00:45:41 -0800 Subject: [PATCH 24/26] Update macOS build scripts for libomp dependency (#906) * Link against checked in libomp.dylib * Try another explicit link strategy * Show contents of osx folder * Try another linker strategy * go back to old linker pattern * try other syntax * Try checked in openmp headers * try getting more info from otool * Try adapting libomp rpath on mac * Ensure libomp lands in drops folder * Additional copy of libomp * Add explanatory comments * Use @loader_path instead of @executable_path --- src/Simulation/Native/CMakeLists.txt | 12 +- .../Native/build-native-simulator.ps1 | 15 + src/Simulation/Native/osx/include/omp-tools.h | 1376 +++++++++++++++++ src/Simulation/Native/osx/include/omp.h | 504 ++++++ src/Simulation/Native/osx/include/ompt.h | 1376 +++++++++++++++++ src/Simulation/Native/prerequisites.ps1 | 3 +- 6 files changed, 3282 insertions(+), 4 deletions(-) create mode 100644 src/Simulation/Native/osx/include/omp-tools.h create mode 100644 src/Simulation/Native/osx/include/omp.h create mode 100644 src/Simulation/Native/osx/include/ompt.h diff --git a/src/Simulation/Native/CMakeLists.txt b/src/Simulation/Native/CMakeLists.txt index 1029f69e1f7..ced3222baeb 100644 --- a/src/Simulation/Native/CMakeLists.txt +++ b/src/Simulation/Native/CMakeLists.txt @@ -90,15 +90,21 @@ include_directories(${PROJECT_SOURCE_DIR}/src) if(ENABLE_OPENMP) if (APPLE) - set(OPENMP_PATH "/usr/local/opt/libomp") - set(OPENMP_COMPILER_FLAGS "-Xpreprocessor -fopenmp -I${OPENMP_PATH}/include -lomp -L${OPENMP_PATH}/lib") + set(OPENMP_LOCAL_PATH "${PROJECT_SOURCE_DIR}/osx") + # Note we use `-rpath @loader_path` to ensure the produced binary includes the folder of the binary + # itself in the runtime search path for dynamic library load, regardless of environment settings. + # We don't use `@executable_path` because that takes into account recursive dependencies and will be + # the folder of the originally launched binary (root of the dependency tree) instead of loading binary + # (the immediate parent in the dependency tree), which will be the simulatory library itself. + # See https://www.man7.org/linux/man-pages/man1/ld.1.html and https://stackoverflow.com/questions/52981210/linking-with-dylib-library-from-the-command-line-using-clang + set(OPENMP_COMPILER_FLAGS "-Xpreprocessor -fopenmp -I${OPENMP_LOCAL_PATH}/include -L${OPENMP_LOCAL_PATH} -lomp -rpath @loader_path") set(OPENMP_LIB_NAME "omp") set(OpenMP_CXX_FLAGS "${OPENMP_COMPILER_FLAGS}") set(OpenMP_C_FLAGS "${OPENMP_COMPILER_FLAGS}") set(OpenMP_CXX_LIB_NAMES "${OPENMP_LIB_NAME}") set(OpenMP_C_LIB_NAMES "${OPENMP_LIB_NAME}") - set(OpenMP_omp_LIBRARY "${OPENMP_PATH}/lib/libomp.dylib") + set(OpenMP_omp_LIBRARY "${OPENMP_LOCAL_PATH}/libomp.dylib") endif() find_package(OpenMP) diff --git a/src/Simulation/Native/build-native-simulator.ps1 b/src/Simulation/Native/build-native-simulator.ps1 index 625112a0b1a..75f7043fc68 100644 --- a/src/Simulation/Native/build-native-simulator.ps1 +++ b/src/Simulation/Native/build-native-simulator.ps1 @@ -3,6 +3,15 @@ Write-Host "##[info]Build Native simulator for $Env:BUILD_CONFIGURATION" +if ($IsMacOS) { + # To ensure loading succeeds on Mac the install id of the library needs to be updated to use + # paths relative to target dynamic load path. Otherwise it will keep the full path encoding in the + # library from when it was built by homebrew. + # See https://stackoverflow.com/questions/52981210/linking-with-dylib-library-from-the-command-line-using-clang + Write-Host "##[info]Fixing binary dependencies with install_name_tool..." + install_name_tool -id "@rpath/libomp.dylib" (Join-Path $PSScriptRoot osx libomp.dylib) +} + $nativeBuild = (Join-Path $PSScriptRoot "build") if (-not (Test-Path $nativeBuild)) { @@ -72,6 +81,12 @@ else { } cmake --build . --config "$Env:BUILD_CONFIGURATION" --target install +if ($IsMacOS) { + Write-Host "##[info]Copying libomp..." + Copy-Item -Verbose (Join-Path $PSScriptRoot osx libomp.dylib) (Join-Path $PSScriptRoot build) + Copy-Item -Verbose (Join-Path $PSScriptRoot osx libomp.dylib) (Join-Path $PSScriptRoot build drop) +} + Pop-Location diff --git a/src/Simulation/Native/osx/include/omp-tools.h b/src/Simulation/Native/osx/include/omp-tools.h new file mode 100644 index 00000000000..5092174d66e --- /dev/null +++ b/src/Simulation/Native/osx/include/omp-tools.h @@ -0,0 +1,1376 @@ +/* + * include/omp-tools.h.var + */ + +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef __OMPT__ +#define __OMPT__ + +/***************************************************************************** + * system include files + *****************************************************************************/ + +#include +#include + +#ifdef DEPRECATION_WARNINGS +# ifdef __cplusplus +# define DEPRECATED_51 [[deprecated("as of 5.1")]] +# else +# define DEPRECATED_51 __attribute__((deprecated("as of 5.1"))) +#endif +#else +#define DEPRECATED_51 +#endif + +/***************************************************************************** + * iteration macros + *****************************************************************************/ + +#define FOREACH_OMPT_INQUIRY_FN(macro) \ + macro (ompt_enumerate_states) \ + macro (ompt_enumerate_mutex_impls) \ + \ + macro (ompt_set_callback) \ + macro (ompt_get_callback) \ + \ + macro (ompt_get_state) \ + \ + macro (ompt_get_parallel_info) \ + macro (ompt_get_task_info) \ + macro (ompt_get_task_memory) \ + macro (ompt_get_thread_data) \ + macro (ompt_get_unique_id) \ + macro (ompt_finalize_tool) \ + \ + macro(ompt_get_num_procs) \ + macro(ompt_get_num_places) \ + macro(ompt_get_place_proc_ids) \ + macro(ompt_get_place_num) \ + macro(ompt_get_partition_place_nums) \ + macro(ompt_get_proc_id) \ + \ + macro(ompt_get_target_info) \ + macro(ompt_get_num_devices) + +#define FOREACH_OMPT_STATE(macro) \ + \ + /* first available state */ \ + macro (ompt_state_undefined, 0x102) /* undefined thread state */ \ + \ + /* work states (0..15) */ \ + macro (ompt_state_work_serial, 0x000) /* working outside parallel */ \ + macro (ompt_state_work_parallel, 0x001) /* working within parallel */ \ + macro (ompt_state_work_reduction, 0x002) /* performing a reduction */ \ + \ + /* barrier wait states (16..31) */ \ + macro (ompt_state_wait_barrier, 0x010) /* waiting at a barrier */ \ + macro (ompt_state_wait_barrier_implicit_parallel, 0x011) \ + /* implicit barrier at the end of parallel region */\ + macro (ompt_state_wait_barrier_implicit_workshare, 0x012) \ + /* implicit barrier at the end of worksharing */ \ + macro (ompt_state_wait_barrier_implicit, 0x013) /* implicit barrier */ \ + macro (ompt_state_wait_barrier_explicit, 0x014) /* explicit barrier */ \ + \ + /* task wait states (32..63) */ \ + macro (ompt_state_wait_taskwait, 0x020) /* waiting at a taskwait */ \ + macro (ompt_state_wait_taskgroup, 0x021) /* waiting at a taskgroup */ \ + \ + /* mutex wait states (64..127) */ \ + macro (ompt_state_wait_mutex, 0x040) \ + macro (ompt_state_wait_lock, 0x041) /* waiting for lock */ \ + macro (ompt_state_wait_critical, 0x042) /* waiting for critical */ \ + macro (ompt_state_wait_atomic, 0x043) /* waiting for atomic */ \ + macro (ompt_state_wait_ordered, 0x044) /* waiting for ordered */ \ + \ + /* target wait states (128..255) */ \ + macro (ompt_state_wait_target, 0x080) /* waiting for target region */ \ + macro (ompt_state_wait_target_map, 0x081) /* waiting for target data mapping operation */ \ + macro (ompt_state_wait_target_update, 0x082) /* waiting for target update operation */ \ + \ + /* misc (256..511) */ \ + macro (ompt_state_idle, 0x100) /* waiting for work */ \ + macro (ompt_state_overhead, 0x101) /* overhead excluding wait states */ \ + \ + /* implementation-specific states (512..) */ + + +#define FOREACH_KMP_MUTEX_IMPL(macro) \ + macro (kmp_mutex_impl_none, 0) /* unknown implementation */ \ + macro (kmp_mutex_impl_spin, 1) /* based on spin */ \ + macro (kmp_mutex_impl_queuing, 2) /* based on some fair policy */ \ + macro (kmp_mutex_impl_speculative, 3) /* based on HW-supported speculation */ + +#define FOREACH_OMPT_EVENT(macro) \ + \ + /*--- Mandatory Events ---*/ \ + macro (ompt_callback_thread_begin, ompt_callback_thread_begin_t, 1) /* thread begin */ \ + macro (ompt_callback_thread_end, ompt_callback_thread_end_t, 2) /* thread end */ \ + \ + macro (ompt_callback_parallel_begin, ompt_callback_parallel_begin_t, 3) /* parallel begin */ \ + macro (ompt_callback_parallel_end, ompt_callback_parallel_end_t, 4) /* parallel end */ \ + \ + macro (ompt_callback_task_create, ompt_callback_task_create_t, 5) /* task begin */ \ + macro (ompt_callback_task_schedule, ompt_callback_task_schedule_t, 6) /* task schedule */ \ + macro (ompt_callback_implicit_task, ompt_callback_implicit_task_t, 7) /* implicit task */ \ + \ + macro (ompt_callback_target, ompt_callback_target_t, 8) /* target */ \ + macro (ompt_callback_target_data_op, ompt_callback_target_data_op_t, 9) /* target data op */ \ + macro (ompt_callback_target_submit, ompt_callback_target_submit_t, 10) /* target submit */ \ + \ + macro (ompt_callback_control_tool, ompt_callback_control_tool_t, 11) /* control tool */ \ + \ + macro (ompt_callback_device_initialize, ompt_callback_device_initialize_t, 12) /* device initialize */ \ + macro (ompt_callback_device_finalize, ompt_callback_device_finalize_t, 13) /* device finalize */ \ + \ + macro (ompt_callback_device_load, ompt_callback_device_load_t, 14) /* device load */ \ + macro (ompt_callback_device_unload, ompt_callback_device_unload_t, 15) /* device unload */ \ + \ + /* Optional Events */ \ + macro (ompt_callback_sync_region_wait, ompt_callback_sync_region_t, 16) /* sync region wait begin or end */ \ + \ + macro (ompt_callback_mutex_released, ompt_callback_mutex_t, 17) /* mutex released */ \ + \ + macro (ompt_callback_dependences, ompt_callback_dependences_t, 18) /* report task dependences */ \ + macro (ompt_callback_task_dependence, ompt_callback_task_dependence_t, 19) /* report task dependence */ \ + \ + macro (ompt_callback_work, ompt_callback_work_t, 20) /* task at work begin or end */ \ + \ + macro (ompt_callback_masked, ompt_callback_masked_t, 21) /* task at masked begin or end */ \ + \ + macro (ompt_callback_target_map, ompt_callback_target_map_t, 22) /* target map */ \ + \ + macro (ompt_callback_sync_region, ompt_callback_sync_region_t, 23) /* sync region begin or end */ \ + \ + macro (ompt_callback_lock_init, ompt_callback_mutex_acquire_t, 24) /* lock init */ \ + macro (ompt_callback_lock_destroy, ompt_callback_mutex_t, 25) /* lock destroy */ \ + \ + macro (ompt_callback_mutex_acquire, ompt_callback_mutex_acquire_t, 26) /* mutex acquire */ \ + macro (ompt_callback_mutex_acquired, ompt_callback_mutex_t, 27) /* mutex acquired */ \ + \ + macro (ompt_callback_nest_lock, ompt_callback_nest_lock_t, 28) /* nest lock */ \ + \ + macro (ompt_callback_flush, ompt_callback_flush_t, 29) /* after executing flush */ \ + \ + macro (ompt_callback_cancel, ompt_callback_cancel_t, 30) /* cancel innermost binding region */ \ + \ + macro (ompt_callback_reduction, ompt_callback_sync_region_t, 31) /* reduction */ \ + \ + macro (ompt_callback_dispatch, ompt_callback_dispatch_t, 32) /* dispatch of work */ \ + macro (ompt_callback_target_emi, ompt_callback_target_emi_t, 33) /* target */ \ + macro (ompt_callback_target_data_op_emi,ompt_callback_target_data_op_emi_t,34) /* target data op */ \ + macro (ompt_callback_target_submit_emi, ompt_callback_target_submit_emi_t, 35) /* target submit */ \ + macro (ompt_callback_target_map_emi, ompt_callback_target_map_emi_t, 36) /* target map */ \ + macro (ompt_callback_error, ompt_callback_error_t, 37) /* error */ + +/***************************************************************************** + * implementation specific types + *****************************************************************************/ + +typedef enum kmp_mutex_impl_t { +#define kmp_mutex_impl_macro(impl, code) impl = code, + FOREACH_KMP_MUTEX_IMPL(kmp_mutex_impl_macro) +#undef kmp_mutex_impl_macro +} kmp_mutex_impl_t; + +/***************************************************************************** + * definitions generated from spec + *****************************************************************************/ + +typedef enum ompt_callbacks_t { + ompt_callback_thread_begin = 1, + ompt_callback_thread_end = 2, + ompt_callback_parallel_begin = 3, + ompt_callback_parallel_end = 4, + ompt_callback_task_create = 5, + ompt_callback_task_schedule = 6, + ompt_callback_implicit_task = 7, + ompt_callback_target = 8, + ompt_callback_target_data_op = 9, + ompt_callback_target_submit = 10, + ompt_callback_control_tool = 11, + ompt_callback_device_initialize = 12, + ompt_callback_device_finalize = 13, + ompt_callback_device_load = 14, + ompt_callback_device_unload = 15, + ompt_callback_sync_region_wait = 16, + ompt_callback_mutex_released = 17, + ompt_callback_dependences = 18, + ompt_callback_task_dependence = 19, + ompt_callback_work = 20, + ompt_callback_master DEPRECATED_51 = 21, + ompt_callback_masked = 21, + ompt_callback_target_map = 22, + ompt_callback_sync_region = 23, + ompt_callback_lock_init = 24, + ompt_callback_lock_destroy = 25, + ompt_callback_mutex_acquire = 26, + ompt_callback_mutex_acquired = 27, + ompt_callback_nest_lock = 28, + ompt_callback_flush = 29, + ompt_callback_cancel = 30, + ompt_callback_reduction = 31, + ompt_callback_dispatch = 32, + ompt_callback_target_emi = 33, + ompt_callback_target_data_op_emi = 34, + ompt_callback_target_submit_emi = 35, + ompt_callback_target_map_emi = 36, + ompt_callback_error = 37 +} ompt_callbacks_t; + +typedef enum ompt_record_t { + ompt_record_ompt = 1, + ompt_record_native = 2, + ompt_record_invalid = 3 +} ompt_record_t; + +typedef enum ompt_record_native_t { + ompt_record_native_info = 1, + ompt_record_native_event = 2 +} ompt_record_native_t; + +typedef enum ompt_set_result_t { + ompt_set_error = 0, + ompt_set_never = 1, + ompt_set_impossible = 2, + ompt_set_sometimes = 3, + ompt_set_sometimes_paired = 4, + ompt_set_always = 5 +} ompt_set_result_t; + +typedef uint64_t ompt_id_t; + +typedef uint64_t ompt_device_time_t; + +typedef uint64_t ompt_buffer_cursor_t; + +typedef enum ompt_thread_t { + ompt_thread_initial = 1, + ompt_thread_worker = 2, + ompt_thread_other = 3, + ompt_thread_unknown = 4 +} ompt_thread_t; + +typedef enum ompt_scope_endpoint_t { + ompt_scope_begin = 1, + ompt_scope_end = 2, + ompt_scope_beginend = 3 +} ompt_scope_endpoint_t; + +typedef enum ompt_dispatch_t { + ompt_dispatch_iteration = 1, + ompt_dispatch_section = 2 +} ompt_dispatch_t; + +typedef enum ompt_sync_region_t { + ompt_sync_region_barrier DEPRECATED_51 = 1, + ompt_sync_region_barrier_implicit DEPRECATED_51 = 2, + ompt_sync_region_barrier_explicit = 3, + ompt_sync_region_barrier_implementation = 4, + ompt_sync_region_taskwait = 5, + ompt_sync_region_taskgroup = 6, + ompt_sync_region_reduction = 7, + ompt_sync_region_barrier_implicit_workshare = 8, + ompt_sync_region_barrier_implicit_parallel = 9, + ompt_sync_region_barrier_teams = 10 +} ompt_sync_region_t; + +typedef enum ompt_target_data_op_t { + ompt_target_data_alloc = 1, + ompt_target_data_transfer_to_device = 2, + ompt_target_data_transfer_from_device = 3, + ompt_target_data_delete = 4, + ompt_target_data_associate = 5, + ompt_target_data_disassociate = 6, + ompt_target_data_alloc_async = 17, + ompt_target_data_transfer_to_device_async = 18, + ompt_target_data_transfer_from_device_async = 19, + ompt_target_data_delete_async = 20 +} ompt_target_data_op_t; + +typedef enum ompt_work_t { + ompt_work_loop = 1, + ompt_work_sections = 2, + ompt_work_single_executor = 3, + ompt_work_single_other = 4, + ompt_work_workshare = 5, + ompt_work_distribute = 6, + ompt_work_taskloop = 7, + ompt_work_scope = 8 +} ompt_work_t; + +typedef enum ompt_mutex_t { + ompt_mutex_lock = 1, + ompt_mutex_test_lock = 2, + ompt_mutex_nest_lock = 3, + ompt_mutex_test_nest_lock = 4, + ompt_mutex_critical = 5, + ompt_mutex_atomic = 6, + ompt_mutex_ordered = 7 +} ompt_mutex_t; + +typedef enum ompt_native_mon_flag_t { + ompt_native_data_motion_explicit = 0x01, + ompt_native_data_motion_implicit = 0x02, + ompt_native_kernel_invocation = 0x04, + ompt_native_kernel_execution = 0x08, + ompt_native_driver = 0x10, + ompt_native_runtime = 0x20, + ompt_native_overhead = 0x40, + ompt_native_idleness = 0x80 +} ompt_native_mon_flag_t; + +typedef enum ompt_task_flag_t { + ompt_task_initial = 0x00000001, + ompt_task_implicit = 0x00000002, + ompt_task_explicit = 0x00000004, + ompt_task_target = 0x00000008, + ompt_task_taskwait = 0x00000010, + ompt_task_undeferred = 0x08000000, + ompt_task_untied = 0x10000000, + ompt_task_final = 0x20000000, + ompt_task_mergeable = 0x40000000, + ompt_task_merged = 0x80000000 +} ompt_task_flag_t; + +typedef enum ompt_task_status_t { + ompt_task_complete = 1, + ompt_task_yield = 2, + ompt_task_cancel = 3, + ompt_task_detach = 4, + ompt_task_early_fulfill = 5, + ompt_task_late_fulfill = 6, + ompt_task_switch = 7, + ompt_taskwait_complete = 8 +} ompt_task_status_t; + +typedef enum ompt_target_t { + ompt_target = 1, + ompt_target_enter_data = 2, + ompt_target_exit_data = 3, + ompt_target_update = 4, + ompt_target_nowait = 9, + ompt_target_enter_data_nowait = 10, + ompt_target_exit_data_nowait = 11, + ompt_target_update_nowait = 12 +} ompt_target_t; + +typedef enum ompt_parallel_flag_t { + ompt_parallel_invoker_program = 0x00000001, + ompt_parallel_invoker_runtime = 0x00000002, + ompt_parallel_league = 0x40000000, + ompt_parallel_team = 0x80000000 +} ompt_parallel_flag_t; + +typedef enum ompt_target_map_flag_t { + ompt_target_map_flag_to = 0x01, + ompt_target_map_flag_from = 0x02, + ompt_target_map_flag_alloc = 0x04, + ompt_target_map_flag_release = 0x08, + ompt_target_map_flag_delete = 0x10, + ompt_target_map_flag_implicit = 0x20 +} ompt_target_map_flag_t; + +typedef enum ompt_dependence_type_t { + ompt_dependence_type_in = 1, + ompt_dependence_type_out = 2, + ompt_dependence_type_inout = 3, + ompt_dependence_type_mutexinoutset = 4, + ompt_dependence_type_source = 5, + ompt_dependence_type_sink = 6, + ompt_dependence_type_inoutset = 7 +} ompt_dependence_type_t; + +typedef enum ompt_severity_t { + ompt_warning = 1, + ompt_fatal = 2 +} ompt_severity_t; + +typedef enum ompt_cancel_flag_t { + ompt_cancel_parallel = 0x01, + ompt_cancel_sections = 0x02, + ompt_cancel_loop = 0x04, + ompt_cancel_taskgroup = 0x08, + ompt_cancel_activated = 0x10, + ompt_cancel_detected = 0x20, + ompt_cancel_discarded_task = 0x40 +} ompt_cancel_flag_t; + +typedef uint64_t ompt_hwid_t; + +typedef uint64_t ompt_wait_id_t; + +typedef enum ompt_frame_flag_t { + ompt_frame_runtime = 0x00, + ompt_frame_application = 0x01, + ompt_frame_cfa = 0x10, + ompt_frame_framepointer = 0x20, + ompt_frame_stackaddress = 0x30 +} ompt_frame_flag_t; + +typedef enum ompt_state_t { + ompt_state_work_serial = 0x000, + ompt_state_work_parallel = 0x001, + ompt_state_work_reduction = 0x002, + + ompt_state_wait_barrier DEPRECATED_51 = 0x010, + ompt_state_wait_barrier_implicit_parallel = 0x011, + ompt_state_wait_barrier_implicit_workshare = 0x012, + ompt_state_wait_barrier_implicit DEPRECATED_51 = 0x013, + ompt_state_wait_barrier_explicit = 0x014, + ompt_state_wait_barrier_implementation = 0x015, + ompt_state_wait_barrier_teams = 0x016, + + ompt_state_wait_taskwait = 0x020, + ompt_state_wait_taskgroup = 0x021, + + ompt_state_wait_mutex = 0x040, + ompt_state_wait_lock = 0x041, + ompt_state_wait_critical = 0x042, + ompt_state_wait_atomic = 0x043, + ompt_state_wait_ordered = 0x044, + + ompt_state_wait_target = 0x080, + ompt_state_wait_target_map = 0x081, + ompt_state_wait_target_update = 0x082, + + ompt_state_idle = 0x100, + ompt_state_overhead = 0x101, + ompt_state_undefined = 0x102 +} ompt_state_t; + +typedef uint64_t (*ompt_get_unique_id_t) (void); + +typedef uint64_t ompd_size_t; + +typedef uint64_t ompd_wait_id_t; + +typedef uint64_t ompd_addr_t; +typedef int64_t ompd_word_t; +typedef uint64_t ompd_seg_t; + +typedef uint64_t ompd_device_t; + +typedef uint64_t ompd_thread_id_t; + +typedef enum ompd_scope_t { + ompd_scope_global = 1, + ompd_scope_address_space = 2, + ompd_scope_thread = 3, + ompd_scope_parallel = 4, + ompd_scope_implicit_task = 5, + ompd_scope_task = 6 +} ompd_scope_t; + +typedef uint64_t ompd_icv_id_t; + +typedef enum ompd_rc_t { + ompd_rc_ok = 0, + ompd_rc_unavailable = 1, + ompd_rc_stale_handle = 2, + ompd_rc_bad_input = 3, + ompd_rc_error = 4, + ompd_rc_unsupported = 5, + ompd_rc_needs_state_tracking = 6, + ompd_rc_incompatible = 7, + ompd_rc_device_read_error = 8, + ompd_rc_device_write_error = 9, + ompd_rc_nomem = 10, + ompd_rc_incomplete = 11, + ompd_rc_callback_error = 12 +} ompd_rc_t; + +typedef void (*ompt_interface_fn_t) (void); + +typedef ompt_interface_fn_t (*ompt_function_lookup_t) ( + const char *interface_function_name +); + +typedef union ompt_data_t { + uint64_t value; + void *ptr; +} ompt_data_t; + +typedef struct ompt_frame_t { + ompt_data_t exit_frame; + ompt_data_t enter_frame; + int exit_frame_flags; + int enter_frame_flags; +} ompt_frame_t; + +typedef void (*ompt_callback_t) (void); + +typedef void ompt_device_t; + +typedef void ompt_buffer_t; + +typedef void (*ompt_callback_buffer_request_t) ( + int device_num, + ompt_buffer_t **buffer, + size_t *bytes +); + +typedef void (*ompt_callback_buffer_complete_t) ( + int device_num, + ompt_buffer_t *buffer, + size_t bytes, + ompt_buffer_cursor_t begin, + int buffer_owned +); + +typedef void (*ompt_finalize_t) ( + ompt_data_t *tool_data +); + +typedef int (*ompt_initialize_t) ( + ompt_function_lookup_t lookup, + int initial_device_num, + ompt_data_t *tool_data +); + +typedef struct ompt_start_tool_result_t { + ompt_initialize_t initialize; + ompt_finalize_t finalize; + ompt_data_t tool_data; +} ompt_start_tool_result_t; + +typedef struct ompt_record_abstract_t { + ompt_record_native_t rclass; + const char *type; + ompt_device_time_t start_time; + ompt_device_time_t end_time; + ompt_hwid_t hwid; +} ompt_record_abstract_t; + +typedef struct ompt_dependence_t { + ompt_data_t variable; + ompt_dependence_type_t dependence_type; +} ompt_dependence_t; + +typedef int (*ompt_enumerate_states_t) ( + int current_state, + int *next_state, + const char **next_state_name +); + +typedef int (*ompt_enumerate_mutex_impls_t) ( + int current_impl, + int *next_impl, + const char **next_impl_name +); + +typedef ompt_set_result_t (*ompt_set_callback_t) ( + ompt_callbacks_t event, + ompt_callback_t callback +); + +typedef int (*ompt_get_callback_t) ( + ompt_callbacks_t event, + ompt_callback_t *callback +); + +typedef ompt_data_t *(*ompt_get_thread_data_t) (void); + +typedef int (*ompt_get_num_procs_t) (void); + +typedef int (*ompt_get_num_places_t) (void); + +typedef int (*ompt_get_place_proc_ids_t) ( + int place_num, + int ids_size, + int *ids +); + +typedef int (*ompt_get_place_num_t) (void); + +typedef int (*ompt_get_partition_place_nums_t) ( + int place_nums_size, + int *place_nums +); + +typedef int (*ompt_get_proc_id_t) (void); + +typedef int (*ompt_get_state_t) ( + ompt_wait_id_t *wait_id +); + +typedef int (*ompt_get_parallel_info_t) ( + int ancestor_level, + ompt_data_t **parallel_data, + int *team_size +); + +typedef int (*ompt_get_task_info_t) ( + int ancestor_level, + int *flags, + ompt_data_t **task_data, + ompt_frame_t **task_frame, + ompt_data_t **parallel_data, + int *thread_num +); + +typedef int (*ompt_get_task_memory_t)( + void **addr, + size_t *size, + int block +); + +typedef int (*ompt_get_target_info_t) ( + uint64_t *device_num, + ompt_id_t *target_id, + ompt_id_t *host_op_id +); + +typedef int (*ompt_get_num_devices_t) (void); + +typedef void (*ompt_finalize_tool_t) (void); + +typedef int (*ompt_get_device_num_procs_t) ( + ompt_device_t *device +); + +typedef ompt_device_time_t (*ompt_get_device_time_t) ( + ompt_device_t *device +); + +typedef double (*ompt_translate_time_t) ( + ompt_device_t *device, + ompt_device_time_t time +); + +typedef ompt_set_result_t (*ompt_set_trace_ompt_t) ( + ompt_device_t *device, + unsigned int enable, + unsigned int etype +); + +typedef ompt_set_result_t (*ompt_set_trace_native_t) ( + ompt_device_t *device, + int enable, + int flags +); + +typedef int (*ompt_start_trace_t) ( + ompt_device_t *device, + ompt_callback_buffer_request_t request, + ompt_callback_buffer_complete_t complete +); + +typedef int (*ompt_pause_trace_t) ( + ompt_device_t *device, + int begin_pause +); + +typedef int (*ompt_flush_trace_t) ( + ompt_device_t *device +); + +typedef int (*ompt_stop_trace_t) ( + ompt_device_t *device +); + +typedef int (*ompt_advance_buffer_cursor_t) ( + ompt_device_t *device, + ompt_buffer_t *buffer, + size_t size, + ompt_buffer_cursor_t current, + ompt_buffer_cursor_t *next +); + +typedef ompt_record_t (*ompt_get_record_type_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current +); + +typedef void *(*ompt_get_record_native_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current, + ompt_id_t *host_op_id +); + +typedef ompt_record_abstract_t * +(*ompt_get_record_abstract_t) ( + void *native_record +); + +typedef void (*ompt_callback_thread_begin_t) ( + ompt_thread_t thread_type, + ompt_data_t *thread_data +); + +typedef struct ompt_record_thread_begin_t { + ompt_thread_t thread_type; +} ompt_record_thread_begin_t; + +typedef void (*ompt_callback_thread_end_t) ( + ompt_data_t *thread_data +); + +typedef void (*ompt_callback_parallel_begin_t) ( + ompt_data_t *encountering_task_data, + const ompt_frame_t *encountering_task_frame, + ompt_data_t *parallel_data, + unsigned int requested_parallelism, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_parallel_begin_t { + ompt_id_t encountering_task_id; + ompt_id_t parallel_id; + unsigned int requested_parallelism; + int flags; + const void *codeptr_ra; +} ompt_record_parallel_begin_t; + +typedef void (*ompt_callback_parallel_end_t) ( + ompt_data_t *parallel_data, + ompt_data_t *encountering_task_data, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_parallel_end_t { + ompt_id_t parallel_id; + ompt_id_t encountering_task_id; + int flags; + const void *codeptr_ra; +} ompt_record_parallel_end_t; + +typedef void (*ompt_callback_work_t) ( + ompt_work_t wstype, + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + uint64_t count, + const void *codeptr_ra +); + +typedef struct ompt_record_work_t { + ompt_work_t wstype; + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + uint64_t count; + const void *codeptr_ra; +} ompt_record_work_t; + +typedef void (*ompt_callback_dispatch_t) ( + ompt_data_t *parallel_data, + ompt_data_t *task_data, + ompt_dispatch_t kind, + ompt_data_t instance +); + +typedef struct ompt_record_dispatch_t { + ompt_id_t parallel_id; + ompt_id_t task_id; + ompt_dispatch_t kind; + ompt_data_t instance; +} ompt_record_dispatch_t; + +typedef void (*ompt_callback_task_create_t) ( + ompt_data_t *encountering_task_data, + const ompt_frame_t *encountering_task_frame, + ompt_data_t *new_task_data, + int flags, + int has_dependences, + const void *codeptr_ra +); + +typedef struct ompt_record_task_create_t { + ompt_id_t encountering_task_id; + ompt_id_t new_task_id; + int flags; + int has_dependences; + const void *codeptr_ra; +} ompt_record_task_create_t; + +typedef void (*ompt_callback_dependences_t) ( + ompt_data_t *task_data, + const ompt_dependence_t *deps, + int ndeps +); + +typedef struct ompt_record_dependences_t { + ompt_id_t task_id; + ompt_dependence_t dep; + int ndeps; +} ompt_record_dependences_t; + +typedef void (*ompt_callback_task_dependence_t) ( + ompt_data_t *src_task_data, + ompt_data_t *sink_task_data +); + +typedef struct ompt_record_task_dependence_t { + ompt_id_t src_task_id; + ompt_id_t sink_task_id; +} ompt_record_task_dependence_t; + +typedef void (*ompt_callback_task_schedule_t) ( + ompt_data_t *prior_task_data, + ompt_task_status_t prior_task_status, + ompt_data_t *next_task_data +); + +typedef struct ompt_record_task_schedule_t { + ompt_id_t prior_task_id; + ompt_task_status_t prior_task_status; + ompt_id_t next_task_id; +} ompt_record_task_schedule_t; + +typedef void (*ompt_callback_implicit_task_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + unsigned int actual_parallelism, + unsigned int index, + int flags +); + +typedef struct ompt_record_implicit_task_t { + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + unsigned int actual_parallelism; + unsigned int index; + int flags; +} ompt_record_implicit_task_t; + +typedef void (*ompt_callback_masked_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + const void *codeptr_ra +); + +typedef ompt_callback_masked_t ompt_callback_master_t DEPRECATED_51; + +typedef struct ompt_record_masked_t { + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + const void *codeptr_ra; +} ompt_record_masked_t; + +typedef void (*ompt_callback_sync_region_t) ( + ompt_sync_region_t kind, + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + const void *codeptr_ra +); + +typedef struct ompt_record_sync_region_t { + ompt_sync_region_t kind; + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + const void *codeptr_ra; +} ompt_record_sync_region_t; + +typedef void (*ompt_callback_mutex_acquire_t) ( + ompt_mutex_t kind, + unsigned int hint, + unsigned int impl, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_mutex_acquire_t { + ompt_mutex_t kind; + unsigned int hint; + unsigned int impl; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_mutex_acquire_t; + +typedef void (*ompt_callback_mutex_t) ( + ompt_mutex_t kind, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_mutex_t { + ompt_mutex_t kind; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_mutex_t; + +typedef void (*ompt_callback_nest_lock_t) ( + ompt_scope_endpoint_t endpoint, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_nest_lock_t { + ompt_scope_endpoint_t endpoint; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_nest_lock_t; + +typedef void (*ompt_callback_flush_t) ( + ompt_data_t *thread_data, + const void *codeptr_ra +); + +typedef struct ompt_record_flush_t { + const void *codeptr_ra; +} ompt_record_flush_t; + +typedef void (*ompt_callback_cancel_t) ( + ompt_data_t *task_data, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_cancel_t { + ompt_id_t task_id; + int flags; + const void *codeptr_ra; +} ompt_record_cancel_t; + +typedef void (*ompt_callback_device_initialize_t) ( + int device_num, + const char *type, + ompt_device_t *device, + ompt_function_lookup_t lookup, + const char *documentation +); + +typedef void (*ompt_callback_device_finalize_t) ( + int device_num +); + +typedef void (*ompt_callback_device_load_t) ( + int device_num, + const char *filename, + int64_t offset_in_file, + void *vma_in_file, + size_t bytes, + void *host_addr, + void *device_addr, + uint64_t module_id +); + +typedef void (*ompt_callback_device_unload_t) ( + int device_num, + uint64_t module_id +); + +typedef void (*ompt_callback_target_data_op_emi_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *target_task_data, + ompt_data_t *target_data, + ompt_id_t *host_op_id, + ompt_target_data_op_t optype, + void *src_addr, + int src_device_num, + void *dest_addr, + int dest_device_num, + size_t bytes, + const void *codeptr_ra +); + +typedef void (*ompt_callback_target_data_op_t) ( + ompt_id_t target_id, + ompt_id_t host_op_id, + ompt_target_data_op_t optype, + void *src_addr, + int src_device_num, + void *dest_addr, + int dest_device_num, + size_t bytes, + const void *codeptr_ra +); + +typedef struct ompt_record_target_data_op_t { + ompt_id_t host_op_id; + ompt_target_data_op_t optype; + void *src_addr; + int src_device_num; + void *dest_addr; + int dest_device_num; + size_t bytes; + ompt_device_time_t end_time; + const void *codeptr_ra; +} ompt_record_target_data_op_t; + +typedef void (*ompt_callback_target_emi_t) ( + ompt_target_t kind, + ompt_scope_endpoint_t endpoint, + int device_num, + ompt_data_t *task_data, + ompt_data_t *target_task_data, + ompt_data_t *target_data, + const void *codeptr_ra +); + +typedef void (*ompt_callback_target_t) ( + ompt_target_t kind, + ompt_scope_endpoint_t endpoint, + int device_num, + ompt_data_t *task_data, + ompt_id_t target_id, + const void *codeptr_ra +); + +typedef struct ompt_record_target_t { + ompt_target_t kind; + ompt_scope_endpoint_t endpoint; + int device_num; + ompt_id_t task_id; + ompt_id_t target_id; + const void *codeptr_ra; +} ompt_record_target_t; + +typedef void (*ompt_callback_target_map_emi_t) ( + ompt_data_t *target_data, + unsigned int nitems, + void **host_addr, + void **device_addr, + size_t *bytes, + unsigned int *mapping_flags, + const void *codeptr_ra +); + +typedef void (*ompt_callback_target_map_t) ( + ompt_id_t target_id, + unsigned int nitems, + void **host_addr, + void **device_addr, + size_t *bytes, + unsigned int *mapping_flags, + const void *codeptr_ra +); + +typedef struct ompt_record_target_map_t { + ompt_id_t target_id; + unsigned int nitems; + void **host_addr; + void **device_addr; + size_t *bytes; + unsigned int *mapping_flags; + const void *codeptr_ra; +} ompt_record_target_map_t; + +typedef void (*ompt_callback_target_submit_emi_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *target_data, + ompt_id_t *host_op_id, + unsigned int requested_num_teams +); + +typedef void (*ompt_callback_target_submit_t) ( + ompt_id_t target_id, + ompt_id_t host_op_id, + unsigned int requested_num_teams +); + +typedef struct ompt_record_target_kernel_t { + ompt_id_t host_op_id; + unsigned int requested_num_teams; + unsigned int granted_num_teams; + ompt_device_time_t end_time; +} ompt_record_target_kernel_t; + +typedef int (*ompt_callback_control_tool_t) ( + uint64_t command, + uint64_t modifier, + void *arg, + const void *codeptr_ra +); + +typedef struct ompt_record_control_tool_t { + uint64_t command; + uint64_t modifier; + const void *codeptr_ra; +} ompt_record_control_tool_t; + +typedef void (*ompt_callback_error_t) ( + ompt_severity_t severity, + const char *message, size_t length, + const void *codeptr_ra +); + +typedef struct ompt_record_error_t { + ompt_severity_t severity; + const char *message; + size_t length; + const void *codeptr_ra; +} ompt_record_error_t; + +typedef struct ompd_address_t { + ompd_seg_t segment; + ompd_addr_t address; +} ompd_address_t; + +typedef struct ompd_frame_info_t { + ompd_address_t frame_address; + ompd_word_t frame_flag; +} ompd_frame_info_t; + +typedef struct _ompd_aspace_handle ompd_address_space_handle_t; +typedef struct _ompd_thread_handle ompd_thread_handle_t; +typedef struct _ompd_parallel_handle ompd_parallel_handle_t; +typedef struct _ompd_task_handle ompd_task_handle_t; + +typedef struct _ompd_aspace_cont ompd_address_space_context_t; +typedef struct _ompd_thread_cont ompd_thread_context_t; + +typedef struct ompd_device_type_sizes_t { + uint8_t sizeof_char; + uint8_t sizeof_short; + uint8_t sizeof_int; + uint8_t sizeof_long; + uint8_t sizeof_long_long; + uint8_t sizeof_pointer; +} ompd_device_type_sizes_t; + +void ompd_dll_locations_valid(void); + +typedef ompd_rc_t (*ompd_callback_memory_alloc_fn_t)(ompd_size_t nbytes, + void **ptr); + +typedef ompd_rc_t (*ompd_callback_memory_free_fn_t)(void *ptr); + +typedef ompd_rc_t (*ompd_callback_get_thread_context_for_thread_id_fn_t)( + ompd_address_space_context_t *address_space_context, ompd_thread_id_t kind, + ompd_size_t sizeof_thread_id, const void *thread_id, + ompd_thread_context_t **thread_context); + +typedef ompd_rc_t (*ompd_callback_sizeof_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_device_type_sizes_t *sizes); + +typedef ompd_rc_t (*ompd_callback_symbol_addr_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_thread_context_t *thread_context, const char *symbol_name, + ompd_address_t *symbol_addr, const char *file_name); + +typedef ompd_rc_t (*ompd_callback_memory_read_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_thread_context_t *thread_context, const ompd_address_t *addr, + ompd_size_t nbytes, void *buffer); + +typedef ompd_rc_t (*ompd_callback_memory_write_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_thread_context_t *thread_context, const ompd_address_t *addr, + ompd_size_t nbytes, const void *buffer); + +typedef ompd_rc_t (*ompd_callback_device_host_fn_t)( + ompd_address_space_context_t *address_space_context, const void *input, + ompd_size_t unit_size, ompd_size_t count, void *output); + +typedef ompd_rc_t (*ompd_callback_print_string_fn_t)(const char *string, + int category); + +typedef struct ompd_callbacks_t { + ompd_callback_memory_alloc_fn_t alloc_memory; + ompd_callback_memory_free_fn_t free_memory; + ompd_callback_print_string_fn_t print_string; + ompd_callback_sizeof_fn_t sizeof_type; + ompd_callback_symbol_addr_fn_t symbol_addr_lookup; + ompd_callback_memory_read_fn_t read_memory; + ompd_callback_memory_write_fn_t write_memory; + ompd_callback_memory_read_fn_t read_string; + ompd_callback_device_host_fn_t device_to_host; + ompd_callback_device_host_fn_t host_to_device; + ompd_callback_get_thread_context_for_thread_id_fn_t + get_thread_context_for_thread_id; +} ompd_callbacks_t; + +void ompd_bp_parallel_begin(void); + +void ompd_bp_parallel_end(void); + +void ompd_bp_task_begin(void); + +void ompd_bp_task_end(void); + +void ompd_bp_thread_begin(void); + +void ompd_bp_thread_end(void); + +void ompd_bp_device_begin(void); + +void ompd_bp_device_end(void); + +ompd_rc_t ompd_initialize(ompd_word_t api_version, + const ompd_callbacks_t *callbacks); + +ompd_rc_t ompd_get_api_version(ompd_word_t *version); + +ompd_rc_t ompd_get_version_string(const char **string); + +ompd_rc_t ompd_finalize(void); + +ompd_rc_t ompd_process_initialize(ompd_address_space_context_t *context, + ompd_address_space_handle_t **handle); + +ompd_rc_t ompd_device_initialize(ompd_address_space_handle_t *process_handle, + ompd_address_space_context_t *device_context, + ompd_device_t kind, ompd_size_t sizeof_id, + void *id, + ompd_address_space_handle_t **device_handle); + +ompd_rc_t ompd_rel_address_space_handle(ompd_address_space_handle_t *handle); + +ompd_rc_t ompd_get_omp_version(ompd_address_space_handle_t *address_space, + ompd_word_t *omp_version); + +ompd_rc_t +ompd_get_omp_version_string(ompd_address_space_handle_t *address_space, + const char **string); + +ompd_rc_t ompd_get_thread_in_parallel(ompd_parallel_handle_t *parallel_handle, + int thread_num, + ompd_thread_handle_t **thread_handle); + +ompd_rc_t ompd_get_thread_handle(ompd_address_space_handle_t *handle, + ompd_thread_id_t kind, + ompd_size_t sizeof_thread_id, + const void *thread_id, + ompd_thread_handle_t **thread_handle); + +ompd_rc_t ompd_rel_thread_handle(ompd_thread_handle_t *thread_handle); + +ompd_rc_t ompd_thread_handle_compare(ompd_thread_handle_t *thread_handle_1, + ompd_thread_handle_t *thread_handle_2, + int *cmp_value); + +ompd_rc_t ompd_get_thread_id(ompd_thread_handle_t *thread_handle, + ompd_thread_id_t kind, + ompd_size_t sizeof_thread_id, void *thread_id); + +ompd_rc_t +ompd_get_curr_parallel_handle(ompd_thread_handle_t *thread_handle, + ompd_parallel_handle_t **parallel_handle); + +ompd_rc_t ompd_get_enclosing_parallel_handle( + ompd_parallel_handle_t *parallel_handle, + ompd_parallel_handle_t **enclosing_parallel_handle); + +ompd_rc_t +ompd_get_task_parallel_handle(ompd_task_handle_t *task_handle, + ompd_parallel_handle_t **task_parallel_handle); + +ompd_rc_t ompd_rel_parallel_handle(ompd_parallel_handle_t *parallel_handle); + +ompd_rc_t +ompd_parallel_handle_compare(ompd_parallel_handle_t *parallel_handle_1, + ompd_parallel_handle_t *parallel_handle_2, + int *cmp_value); + +ompd_rc_t ompd_get_curr_task_handle(ompd_thread_handle_t *thread_handle, + ompd_task_handle_t **task_handle); + +ompd_rc_t +ompd_get_generating_task_handle(ompd_task_handle_t *task_handle, + ompd_task_handle_t **generating_task_handle); + +ompd_rc_t +ompd_get_scheduling_task_handle(ompd_task_handle_t *task_handle, + ompd_task_handle_t **scheduling_task_handle); + +ompd_rc_t ompd_get_task_in_parallel(ompd_parallel_handle_t *parallel_handle, + int thread_num, + ompd_task_handle_t **task_handle); + +ompd_rc_t ompd_rel_task_handle(ompd_task_handle_t *task_handle); + +ompd_rc_t ompd_task_handle_compare(ompd_task_handle_t *task_handle_1, + ompd_task_handle_t *task_handle_2, + int *cmp_value); + +ompd_rc_t ompd_get_task_function(ompd_task_handle_t *task_handle, + ompd_address_t *entry_point); + +ompd_rc_t ompd_get_task_frame(ompd_task_handle_t *task_handle, + ompd_frame_info_t *exit_frame, + ompd_frame_info_t *enter_frame); + +ompd_rc_t +ompd_enumerate_states(ompd_address_space_handle_t *address_space_handle, + ompd_word_t current_state, ompd_word_t *next_state, + const char **next_state_name, ompd_word_t *more_enums); + +ompd_rc_t ompd_get_state(ompd_thread_handle_t *thread_handle, + ompd_word_t *state, ompd_wait_id_t *wait_id); + +ompd_rc_t +ompd_get_display_control_vars(ompd_address_space_handle_t *address_space_handle, + const char *const **control_vars); + +ompd_rc_t ompd_rel_display_control_vars(const char *const **control_vars); + +ompd_rc_t ompd_enumerate_icvs(ompd_address_space_handle_t *handle, + ompd_icv_id_t current, ompd_icv_id_t *next_id, + const char **next_icv_name, + ompd_scope_t *next_scope, int *more); + +ompd_rc_t ompd_get_icv_from_scope(void *handle, ompd_scope_t scope, + ompd_icv_id_t icv_id, ompd_word_t *icv_value); + +ompd_rc_t ompd_get_icv_string_from_scope(void *handle, ompd_scope_t scope, + ompd_icv_id_t icv_id, + const char **icv_string); + +ompd_rc_t ompd_get_tool_data(void *handle, ompd_scope_t scope, + ompd_word_t *value, ompd_address_t *ptr); + +typedef struct ompt_record_ompt_t { + ompt_callbacks_t type; + ompt_device_time_t time; + ompt_id_t thread_id; + ompt_id_t target_id; + union { + ompt_record_thread_begin_t thread_begin; + ompt_record_parallel_begin_t parallel_begin; + ompt_record_parallel_end_t parallel_end; + ompt_record_work_t work; + ompt_record_dispatch_t dispatch; + ompt_record_task_create_t task_create; + ompt_record_dependences_t dependences; + ompt_record_task_dependence_t task_dependence; + ompt_record_task_schedule_t task_schedule; + ompt_record_implicit_task_t implicit_task; + ompt_record_masked_t masked; + ompt_record_sync_region_t sync_region; + ompt_record_mutex_acquire_t mutex_acquire; + ompt_record_mutex_t mutex; + ompt_record_nest_lock_t nest_lock; + ompt_record_flush_t flush; + ompt_record_cancel_t cancel; + ompt_record_target_t target; + ompt_record_target_data_op_t target_data_op; + ompt_record_target_map_t target_map; + ompt_record_target_kernel_t target_kernel; + ompt_record_control_tool_t control_tool; + } record; +} ompt_record_ompt_t; + +typedef ompt_record_ompt_t *(*ompt_get_record_ompt_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current +); + +#define ompt_id_none 0 +#define ompt_data_none {0} +#define ompt_time_none 0 +#define ompt_hwid_none 0 +#define ompt_addr_none ~0 +#define ompt_mutex_impl_none 0 +#define ompt_wait_id_none 0 + +#define ompd_segment_none 0 + +#endif /* __OMPT__ */ diff --git a/src/Simulation/Native/osx/include/omp.h b/src/Simulation/Native/osx/include/omp.h new file mode 100644 index 00000000000..f2e6345d4ca --- /dev/null +++ b/src/Simulation/Native/osx/include/omp.h @@ -0,0 +1,504 @@ +/* + * include/omp.h.var + */ + + +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + + +#ifndef __OMP_H +# define __OMP_H + +# include +# include + +# define KMP_VERSION_MAJOR 5 +# define KMP_VERSION_MINOR 0 +# define KMP_VERSION_BUILD 20140926 +# define KMP_BUILD_DATE "No_Timestamp" + +# ifdef __cplusplus + extern "C" { +# endif + +# define omp_set_affinity_format ompc_set_affinity_format +# define omp_get_affinity_format ompc_get_affinity_format +# define omp_display_affinity ompc_display_affinity +# define omp_capture_affinity ompc_capture_affinity + +# if defined(_WIN32) +# define __KAI_KMPC_CONVENTION __cdecl +# ifndef __KMP_IMP +# define __KMP_IMP __declspec(dllimport) +# endif +# else +# define __KAI_KMPC_CONVENTION +# ifndef __KMP_IMP +# define __KMP_IMP +# endif +# endif + + /* schedule kind constants */ + typedef enum omp_sched_t { + omp_sched_static = 1, + omp_sched_dynamic = 2, + omp_sched_guided = 3, + omp_sched_auto = 4, + omp_sched_monotonic = 0x80000000 + } omp_sched_t; + + /* set API functions */ + extern void __KAI_KMPC_CONVENTION omp_set_num_threads (int); + extern void __KAI_KMPC_CONVENTION omp_set_dynamic (int); + extern void __KAI_KMPC_CONVENTION omp_set_nested (int); + extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels (int); + extern void __KAI_KMPC_CONVENTION omp_set_schedule (omp_sched_t, int); + + /* query API functions */ + extern int __KAI_KMPC_CONVENTION omp_get_num_threads (void); + extern int __KAI_KMPC_CONVENTION omp_get_dynamic (void); + extern int __KAI_KMPC_CONVENTION omp_get_nested (void); + extern int __KAI_KMPC_CONVENTION omp_get_max_threads (void); + extern int __KAI_KMPC_CONVENTION omp_get_thread_num (void); + extern int __KAI_KMPC_CONVENTION omp_get_num_procs (void); + extern int __KAI_KMPC_CONVENTION omp_in_parallel (void); + extern int __KAI_KMPC_CONVENTION omp_in_final (void); + extern int __KAI_KMPC_CONVENTION omp_get_active_level (void); + extern int __KAI_KMPC_CONVENTION omp_get_level (void); + extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num (int); + extern int __KAI_KMPC_CONVENTION omp_get_team_size (int); + extern int __KAI_KMPC_CONVENTION omp_get_thread_limit (void); + extern int __KAI_KMPC_CONVENTION omp_get_max_active_levels (void); + extern void __KAI_KMPC_CONVENTION omp_get_schedule (omp_sched_t *, int *); + extern int __KAI_KMPC_CONVENTION omp_get_max_task_priority (void); + + /* lock API functions */ + typedef struct omp_lock_t { + void * _lk; + } omp_lock_t; + + extern void __KAI_KMPC_CONVENTION omp_init_lock (omp_lock_t *); + extern void __KAI_KMPC_CONVENTION omp_set_lock (omp_lock_t *); + extern void __KAI_KMPC_CONVENTION omp_unset_lock (omp_lock_t *); + extern void __KAI_KMPC_CONVENTION omp_destroy_lock (omp_lock_t *); + extern int __KAI_KMPC_CONVENTION omp_test_lock (omp_lock_t *); + + /* nested lock API functions */ + typedef struct omp_nest_lock_t { + void * _lk; + } omp_nest_lock_t; + + extern void __KAI_KMPC_CONVENTION omp_init_nest_lock (omp_nest_lock_t *); + extern void __KAI_KMPC_CONVENTION omp_set_nest_lock (omp_nest_lock_t *); + extern void __KAI_KMPC_CONVENTION omp_unset_nest_lock (omp_nest_lock_t *); + extern void __KAI_KMPC_CONVENTION omp_destroy_nest_lock (omp_nest_lock_t *); + extern int __KAI_KMPC_CONVENTION omp_test_nest_lock (omp_nest_lock_t *); + + /* OpenMP 5.0 Synchronization hints*/ + typedef enum omp_sync_hint_t { + omp_sync_hint_none = 0, + omp_lock_hint_none = omp_sync_hint_none, + omp_sync_hint_uncontended = 1, + omp_lock_hint_uncontended = omp_sync_hint_uncontended, + omp_sync_hint_contended = (1<<1), + omp_lock_hint_contended = omp_sync_hint_contended, + omp_sync_hint_nonspeculative = (1<<2), + omp_lock_hint_nonspeculative = omp_sync_hint_nonspeculative, + omp_sync_hint_speculative = (1<<3), + omp_lock_hint_speculative = omp_sync_hint_speculative, + kmp_lock_hint_hle = (1<<16), + kmp_lock_hint_rtm = (1<<17), + kmp_lock_hint_adaptive = (1<<18) + } omp_sync_hint_t; + + /* lock hint type for dynamic user lock */ + typedef omp_sync_hint_t omp_lock_hint_t; + + /* hinted lock initializers */ + extern void __KAI_KMPC_CONVENTION omp_init_lock_with_hint(omp_lock_t *, omp_lock_hint_t); + extern void __KAI_KMPC_CONVENTION omp_init_nest_lock_with_hint(omp_nest_lock_t *, omp_lock_hint_t); + + /* time API functions */ + extern double __KAI_KMPC_CONVENTION omp_get_wtime (void); + extern double __KAI_KMPC_CONVENTION omp_get_wtick (void); + + /* OpenMP 4.0 */ + extern int __KAI_KMPC_CONVENTION omp_get_default_device (void); + extern void __KAI_KMPC_CONVENTION omp_set_default_device (int); + extern int __KAI_KMPC_CONVENTION omp_is_initial_device (void); + extern int __KAI_KMPC_CONVENTION omp_get_num_devices (void); + extern int __KAI_KMPC_CONVENTION omp_get_num_teams (void); + extern int __KAI_KMPC_CONVENTION omp_get_team_num (void); + extern int __KAI_KMPC_CONVENTION omp_get_cancellation (void); + + /* OpenMP 4.5 */ + extern int __KAI_KMPC_CONVENTION omp_get_initial_device (void); + extern void* __KAI_KMPC_CONVENTION omp_target_alloc(size_t, int); + extern void __KAI_KMPC_CONVENTION omp_target_free(void *, int); + extern int __KAI_KMPC_CONVENTION omp_target_is_present(const void *, int); + extern int __KAI_KMPC_CONVENTION omp_target_memcpy(void *, const void *, size_t, size_t, size_t, int, int); + extern int __KAI_KMPC_CONVENTION omp_target_memcpy_rect(void *, const void *, size_t, int, const size_t *, + const size_t *, const size_t *, const size_t *, const size_t *, int, int); + extern int __KAI_KMPC_CONVENTION omp_target_associate_ptr(const void *, const void *, size_t, size_t, int); + extern int __KAI_KMPC_CONVENTION omp_target_disassociate_ptr(const void *, int); + + /* OpenMP 5.0 */ + extern int __KAI_KMPC_CONVENTION omp_get_device_num (void); + typedef void * omp_depend_t; + + /* OpenMP 5.1 interop */ + typedef intptr_t omp_intptr_t; + + /* 0..omp_get_num_interop_properties()-1 are reserved for implementation-defined properties */ + typedef enum omp_interop_property { + omp_ipr_fr_id = -1, + omp_ipr_fr_name = -2, + omp_ipr_vendor = -3, + omp_ipr_vendor_name = -4, + omp_ipr_device_num = -5, + omp_ipr_platform = -6, + omp_ipr_device = -7, + omp_ipr_device_context = -8, + omp_ipr_targetsync = -9, + omp_ipr_first = -9 + } omp_interop_property_t; + + #define omp_interop_none 0 + + typedef enum omp_interop_rc { + omp_irc_no_value = 1, + omp_irc_success = 0, + omp_irc_empty = -1, + omp_irc_out_of_range = -2, + omp_irc_type_int = -3, + omp_irc_type_ptr = -4, + omp_irc_type_str = -5, + omp_irc_other = -6 + } omp_interop_rc_t; + + typedef enum omp_interop_fr { + omp_ifr_cuda = 1, + omp_ifr_cuda_driver = 2, + omp_ifr_opencl = 3, + omp_ifr_sycl = 4, + omp_ifr_hip = 5, + omp_ifr_level_zero = 6, + omp_ifr_last = 7 + } omp_interop_fr_t; + + typedef void * omp_interop_t; + + /*! + * The `omp_get_num_interop_properties` routine retrieves the number of implementation-defined properties available for an `omp_interop_t` object. + */ + extern int __KAI_KMPC_CONVENTION omp_get_num_interop_properties(const omp_interop_t); + /*! + * The `omp_get_interop_int` routine retrieves an integer property from an `omp_interop_t` object. + */ + extern omp_intptr_t __KAI_KMPC_CONVENTION omp_get_interop_int(const omp_interop_t, omp_interop_property_t, int *); + /*! + * The `omp_get_interop_ptr` routine retrieves a pointer property from an `omp_interop_t` object. + */ + extern void * __KAI_KMPC_CONVENTION omp_get_interop_ptr(const omp_interop_t, omp_interop_property_t, int *); + /*! + * The `omp_get_interop_str` routine retrieves a string property from an `omp_interop_t` object. + */ + extern const char * __KAI_KMPC_CONVENTION omp_get_interop_str(const omp_interop_t, omp_interop_property_t, int *); + /*! + * The `omp_get_interop_name` routine retrieves a property name from an `omp_interop_t` object. + */ + extern const char * __KAI_KMPC_CONVENTION omp_get_interop_name(const omp_interop_t, omp_interop_property_t); + /*! + * The `omp_get_interop_type_desc` routine retrieves a description of the type of a property associated with an `omp_interop_t` object. + */ + extern const char * __KAI_KMPC_CONVENTION omp_get_interop_type_desc(const omp_interop_t, omp_interop_property_t); + /*! + * The `omp_get_interop_rc_desc` routine retrieves a description of the return code associated with an `omp_interop_t` object. + */ + extern const char * __KAI_KMPC_CONVENTION omp_get_interop_rc_desc(const omp_interop_t, omp_interop_rc_t); + + /* OpenMP 5.1 device memory routines */ + + /*! + * The `omp_target_memcpy_async` routine asynchronously performs a copy between any combination of host and device pointers. + */ + extern int __KAI_KMPC_CONVENTION omp_target_memcpy_async(void *, const void *, size_t, size_t, size_t, int, + int, int, omp_depend_t *); + /*! + * The `omp_target_memcpy_rect_async` routine asynchronously performs a copy between any combination of host and device pointers. + */ + extern int __KAI_KMPC_CONVENTION omp_target_memcpy_rect_async(void *, const void *, size_t, int, const size_t *, + const size_t *, const size_t *, const size_t *, const size_t *, int, int, + int, omp_depend_t *); + /*! + * The `omp_get_mapped_ptr` routine returns the device pointer that is associated with a host pointer for a given device. + */ + extern void * __KAI_KMPC_CONVENTION omp_get_mapped_ptr(const void *, int); + extern int __KAI_KMPC_CONVENTION omp_target_is_accessible(const void *, size_t, int); + + /* kmp API functions */ + extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void); + extern void __KAI_KMPC_CONVENTION kmp_set_stacksize (int); + extern size_t __KAI_KMPC_CONVENTION kmp_get_stacksize_s (void); + extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t); + extern int __KAI_KMPC_CONVENTION kmp_get_blocktime (void); + extern int __KAI_KMPC_CONVENTION kmp_get_library (void); + extern void __KAI_KMPC_CONVENTION kmp_set_blocktime (int); + extern void __KAI_KMPC_CONVENTION kmp_set_library (int); + extern void __KAI_KMPC_CONVENTION kmp_set_library_serial (void); + extern void __KAI_KMPC_CONVENTION kmp_set_library_turnaround (void); + extern void __KAI_KMPC_CONVENTION kmp_set_library_throughput (void); + extern void __KAI_KMPC_CONVENTION kmp_set_defaults (char const *); + extern void __KAI_KMPC_CONVENTION kmp_set_disp_num_buffers (int); + + /* Intel affinity API */ + typedef void * kmp_affinity_mask_t; + + extern int __KAI_KMPC_CONVENTION kmp_set_affinity (kmp_affinity_mask_t *); + extern int __KAI_KMPC_CONVENTION kmp_get_affinity (kmp_affinity_mask_t *); + extern int __KAI_KMPC_CONVENTION kmp_get_affinity_max_proc (void); + extern void __KAI_KMPC_CONVENTION kmp_create_affinity_mask (kmp_affinity_mask_t *); + extern void __KAI_KMPC_CONVENTION kmp_destroy_affinity_mask (kmp_affinity_mask_t *); + extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc (int, kmp_affinity_mask_t *); + extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *); + extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc (int, kmp_affinity_mask_t *); + + /* OpenMP 4.0 affinity API */ + typedef enum omp_proc_bind_t { + omp_proc_bind_false = 0, + omp_proc_bind_true = 1, + omp_proc_bind_master = 2, + omp_proc_bind_close = 3, + omp_proc_bind_spread = 4 + } omp_proc_bind_t; + + extern omp_proc_bind_t __KAI_KMPC_CONVENTION omp_get_proc_bind (void); + + /* OpenMP 4.5 affinity API */ + extern int __KAI_KMPC_CONVENTION omp_get_num_places (void); + extern int __KAI_KMPC_CONVENTION omp_get_place_num_procs (int); + extern void __KAI_KMPC_CONVENTION omp_get_place_proc_ids (int, int *); + extern int __KAI_KMPC_CONVENTION omp_get_place_num (void); + extern int __KAI_KMPC_CONVENTION omp_get_partition_num_places (void); + extern void __KAI_KMPC_CONVENTION omp_get_partition_place_nums (int *); + + extern void * __KAI_KMPC_CONVENTION kmp_malloc (size_t); + extern void * __KAI_KMPC_CONVENTION kmp_aligned_malloc (size_t, size_t); + extern void * __KAI_KMPC_CONVENTION kmp_calloc (size_t, size_t); + extern void * __KAI_KMPC_CONVENTION kmp_realloc (void *, size_t); + extern void __KAI_KMPC_CONVENTION kmp_free (void *); + + extern void __KAI_KMPC_CONVENTION kmp_set_warnings_on(void); + extern void __KAI_KMPC_CONVENTION kmp_set_warnings_off(void); + + /* OpenMP 5.0 Tool Control */ + typedef enum omp_control_tool_result_t { + omp_control_tool_notool = -2, + omp_control_tool_nocallback = -1, + omp_control_tool_success = 0, + omp_control_tool_ignored = 1 + } omp_control_tool_result_t; + + typedef enum omp_control_tool_t { + omp_control_tool_start = 1, + omp_control_tool_pause = 2, + omp_control_tool_flush = 3, + omp_control_tool_end = 4 + } omp_control_tool_t; + + extern int __KAI_KMPC_CONVENTION omp_control_tool(int, int, void*); + + /* OpenMP 5.0 Memory Management */ + typedef uintptr_t omp_uintptr_t; + + typedef enum { + omp_atk_sync_hint = 1, + omp_atk_alignment = 2, + omp_atk_access = 3, + omp_atk_pool_size = 4, + omp_atk_fallback = 5, + omp_atk_fb_data = 6, + omp_atk_pinned = 7, + omp_atk_partition = 8 + } omp_alloctrait_key_t; + + typedef enum { + omp_atv_false = 0, + omp_atv_true = 1, + omp_atv_contended = 3, + omp_atv_uncontended = 4, + omp_atv_serialized = 5, + omp_atv_sequential = omp_atv_serialized, // (deprecated) + omp_atv_private = 6, + omp_atv_all = 7, + omp_atv_thread = 8, + omp_atv_pteam = 9, + omp_atv_cgroup = 10, + omp_atv_default_mem_fb = 11, + omp_atv_null_fb = 12, + omp_atv_abort_fb = 13, + omp_atv_allocator_fb = 14, + omp_atv_environment = 15, + omp_atv_nearest = 16, + omp_atv_blocked = 17, + omp_atv_interleaved = 18 + } omp_alloctrait_value_t; + #define omp_atv_default ((omp_uintptr_t)-1) + + typedef struct { + omp_alloctrait_key_t key; + omp_uintptr_t value; + } omp_alloctrait_t; + +# if defined(_WIN32) + // On Windows cl and icl do not support 64-bit enum, let's use integer then. + typedef omp_uintptr_t omp_allocator_handle_t; + extern __KMP_IMP omp_allocator_handle_t const omp_null_allocator; + extern __KMP_IMP omp_allocator_handle_t const omp_default_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const omp_large_cap_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const omp_const_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const omp_high_bw_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const omp_low_lat_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const omp_cgroup_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const omp_pteam_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const omp_thread_mem_alloc; + /* Preview of target memory support */ + extern __KMP_IMP omp_allocator_handle_t const llvm_omp_target_host_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const llvm_omp_target_shared_mem_alloc; + extern __KMP_IMP omp_allocator_handle_t const llvm_omp_target_device_mem_alloc; + + typedef omp_uintptr_t omp_memspace_handle_t; + extern __KMP_IMP omp_memspace_handle_t const omp_default_mem_space; + extern __KMP_IMP omp_memspace_handle_t const omp_large_cap_mem_space; + extern __KMP_IMP omp_memspace_handle_t const omp_const_mem_space; + extern __KMP_IMP omp_memspace_handle_t const omp_high_bw_mem_space; + extern __KMP_IMP omp_memspace_handle_t const omp_low_lat_mem_space; + /* Preview of target memory support */ + extern __KMP_IMP omp_memspace_handle_t const llvm_omp_target_host_mem_space; + extern __KMP_IMP omp_memspace_handle_t const llvm_omp_target_shared_mem_space; + extern __KMP_IMP omp_memspace_handle_t const llvm_omp_target_device_mem_space; +# else +# if __cplusplus >= 201103 + typedef enum omp_allocator_handle_t : omp_uintptr_t +# else + typedef enum omp_allocator_handle_t +# endif + { + omp_null_allocator = 0, + omp_default_mem_alloc = 1, + omp_large_cap_mem_alloc = 2, + omp_const_mem_alloc = 3, + omp_high_bw_mem_alloc = 4, + omp_low_lat_mem_alloc = 5, + omp_cgroup_mem_alloc = 6, + omp_pteam_mem_alloc = 7, + omp_thread_mem_alloc = 8, + /* Preview of target memory support */ + llvm_omp_target_host_mem_alloc = 100, + llvm_omp_target_shared_mem_alloc = 101, + llvm_omp_target_device_mem_alloc = 102, + KMP_ALLOCATOR_MAX_HANDLE = UINTPTR_MAX + } omp_allocator_handle_t; +# if __cplusplus >= 201103 + typedef enum omp_memspace_handle_t : omp_uintptr_t +# else + typedef enum omp_memspace_handle_t +# endif + { + omp_default_mem_space = 0, + omp_large_cap_mem_space = 1, + omp_const_mem_space = 2, + omp_high_bw_mem_space = 3, + omp_low_lat_mem_space = 4, + /* Preview of target memory support */ + llvm_omp_target_host_mem_space = 100, + llvm_omp_target_shared_mem_space = 101, + llvm_omp_target_device_mem_space = 102, + KMP_MEMSPACE_MAX_HANDLE = UINTPTR_MAX + } omp_memspace_handle_t; +# endif + extern omp_allocator_handle_t __KAI_KMPC_CONVENTION omp_init_allocator(omp_memspace_handle_t m, + int ntraits, omp_alloctrait_t traits[]); + extern void __KAI_KMPC_CONVENTION omp_destroy_allocator(omp_allocator_handle_t allocator); + + extern void __KAI_KMPC_CONVENTION omp_set_default_allocator(omp_allocator_handle_t a); + extern omp_allocator_handle_t __KAI_KMPC_CONVENTION omp_get_default_allocator(void); +# ifdef __cplusplus + extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a = omp_null_allocator); + extern void *__KAI_KMPC_CONVENTION omp_calloc(size_t nmemb, size_t size, omp_allocator_handle_t a = omp_null_allocator); + extern void *__KAI_KMPC_CONVENTION omp_realloc(void *ptr, size_t size, + omp_allocator_handle_t allocator = omp_null_allocator, + omp_allocator_handle_t free_allocator = omp_null_allocator); + extern void __KAI_KMPC_CONVENTION omp_free(void * ptr, omp_allocator_handle_t a = omp_null_allocator); +# else + extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a); + extern void *__KAI_KMPC_CONVENTION omp_calloc(size_t nmemb, size_t size, omp_allocator_handle_t a); + extern void *__KAI_KMPC_CONVENTION omp_realloc(void *ptr, size_t size, omp_allocator_handle_t allocator, + omp_allocator_handle_t free_allocator); + extern void __KAI_KMPC_CONVENTION omp_free(void *ptr, omp_allocator_handle_t a); +# endif + + /* OpenMP 5.0 Affinity Format */ + extern void __KAI_KMPC_CONVENTION omp_set_affinity_format(char const *); + extern size_t __KAI_KMPC_CONVENTION omp_get_affinity_format(char *, size_t); + extern void __KAI_KMPC_CONVENTION omp_display_affinity(char const *); + extern size_t __KAI_KMPC_CONVENTION omp_capture_affinity(char *, size_t, char const *); + + /* OpenMP 5.0 events */ +# if defined(_WIN32) + // On Windows cl and icl do not support 64-bit enum, let's use integer then. + typedef omp_uintptr_t omp_event_handle_t; +# else + typedef enum omp_event_handle_t { KMP_EVENT_MAX_HANDLE = UINTPTR_MAX } omp_event_handle_t; +# endif + extern void __KAI_KMPC_CONVENTION omp_fulfill_event ( omp_event_handle_t event ); + + /* OpenMP 5.0 Pause Resources */ + typedef enum omp_pause_resource_t { + omp_pause_resume = 0, + omp_pause_soft = 1, + omp_pause_hard = 2 + } omp_pause_resource_t; + extern int __KAI_KMPC_CONVENTION omp_pause_resource(omp_pause_resource_t, int); + extern int __KAI_KMPC_CONVENTION omp_pause_resource_all(omp_pause_resource_t); + + extern int __KAI_KMPC_CONVENTION omp_get_supported_active_levels(void); + + /* OpenMP 5.1 */ + extern void __KAI_KMPC_CONVENTION omp_set_num_teams(int num_teams); + extern int __KAI_KMPC_CONVENTION omp_get_max_teams(void); + extern void __KAI_KMPC_CONVENTION omp_set_teams_thread_limit(int limit); + extern int __KAI_KMPC_CONVENTION omp_get_teams_thread_limit(void); + + /* OpenMP 5.1 Display Environment */ + extern void omp_display_env(int verbose); + +# if defined(_OPENMP) && _OPENMP >= 201811 + #pragma omp begin declare variant match(device={kind(host)}) + static inline int omp_is_initial_device(void) { return 1; } + #pragma omp end declare variant + #pragma omp begin declare variant match(device={kind(nohost)}) + static inline int omp_is_initial_device(void) { return 0; } + #pragma omp end declare variant +# endif + +# undef __KAI_KMPC_CONVENTION +# undef __KMP_IMP + + /* Warning: + The following typedefs are not standard, deprecated and will be removed in a future release. + */ + typedef int omp_int_t; + typedef double omp_wtime_t; + +# ifdef __cplusplus + } +# endif + +#endif /* __OMP_H */ diff --git a/src/Simulation/Native/osx/include/ompt.h b/src/Simulation/Native/osx/include/ompt.h new file mode 100644 index 00000000000..5092174d66e --- /dev/null +++ b/src/Simulation/Native/osx/include/ompt.h @@ -0,0 +1,1376 @@ +/* + * include/omp-tools.h.var + */ + +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef __OMPT__ +#define __OMPT__ + +/***************************************************************************** + * system include files + *****************************************************************************/ + +#include +#include + +#ifdef DEPRECATION_WARNINGS +# ifdef __cplusplus +# define DEPRECATED_51 [[deprecated("as of 5.1")]] +# else +# define DEPRECATED_51 __attribute__((deprecated("as of 5.1"))) +#endif +#else +#define DEPRECATED_51 +#endif + +/***************************************************************************** + * iteration macros + *****************************************************************************/ + +#define FOREACH_OMPT_INQUIRY_FN(macro) \ + macro (ompt_enumerate_states) \ + macro (ompt_enumerate_mutex_impls) \ + \ + macro (ompt_set_callback) \ + macro (ompt_get_callback) \ + \ + macro (ompt_get_state) \ + \ + macro (ompt_get_parallel_info) \ + macro (ompt_get_task_info) \ + macro (ompt_get_task_memory) \ + macro (ompt_get_thread_data) \ + macro (ompt_get_unique_id) \ + macro (ompt_finalize_tool) \ + \ + macro(ompt_get_num_procs) \ + macro(ompt_get_num_places) \ + macro(ompt_get_place_proc_ids) \ + macro(ompt_get_place_num) \ + macro(ompt_get_partition_place_nums) \ + macro(ompt_get_proc_id) \ + \ + macro(ompt_get_target_info) \ + macro(ompt_get_num_devices) + +#define FOREACH_OMPT_STATE(macro) \ + \ + /* first available state */ \ + macro (ompt_state_undefined, 0x102) /* undefined thread state */ \ + \ + /* work states (0..15) */ \ + macro (ompt_state_work_serial, 0x000) /* working outside parallel */ \ + macro (ompt_state_work_parallel, 0x001) /* working within parallel */ \ + macro (ompt_state_work_reduction, 0x002) /* performing a reduction */ \ + \ + /* barrier wait states (16..31) */ \ + macro (ompt_state_wait_barrier, 0x010) /* waiting at a barrier */ \ + macro (ompt_state_wait_barrier_implicit_parallel, 0x011) \ + /* implicit barrier at the end of parallel region */\ + macro (ompt_state_wait_barrier_implicit_workshare, 0x012) \ + /* implicit barrier at the end of worksharing */ \ + macro (ompt_state_wait_barrier_implicit, 0x013) /* implicit barrier */ \ + macro (ompt_state_wait_barrier_explicit, 0x014) /* explicit barrier */ \ + \ + /* task wait states (32..63) */ \ + macro (ompt_state_wait_taskwait, 0x020) /* waiting at a taskwait */ \ + macro (ompt_state_wait_taskgroup, 0x021) /* waiting at a taskgroup */ \ + \ + /* mutex wait states (64..127) */ \ + macro (ompt_state_wait_mutex, 0x040) \ + macro (ompt_state_wait_lock, 0x041) /* waiting for lock */ \ + macro (ompt_state_wait_critical, 0x042) /* waiting for critical */ \ + macro (ompt_state_wait_atomic, 0x043) /* waiting for atomic */ \ + macro (ompt_state_wait_ordered, 0x044) /* waiting for ordered */ \ + \ + /* target wait states (128..255) */ \ + macro (ompt_state_wait_target, 0x080) /* waiting for target region */ \ + macro (ompt_state_wait_target_map, 0x081) /* waiting for target data mapping operation */ \ + macro (ompt_state_wait_target_update, 0x082) /* waiting for target update operation */ \ + \ + /* misc (256..511) */ \ + macro (ompt_state_idle, 0x100) /* waiting for work */ \ + macro (ompt_state_overhead, 0x101) /* overhead excluding wait states */ \ + \ + /* implementation-specific states (512..) */ + + +#define FOREACH_KMP_MUTEX_IMPL(macro) \ + macro (kmp_mutex_impl_none, 0) /* unknown implementation */ \ + macro (kmp_mutex_impl_spin, 1) /* based on spin */ \ + macro (kmp_mutex_impl_queuing, 2) /* based on some fair policy */ \ + macro (kmp_mutex_impl_speculative, 3) /* based on HW-supported speculation */ + +#define FOREACH_OMPT_EVENT(macro) \ + \ + /*--- Mandatory Events ---*/ \ + macro (ompt_callback_thread_begin, ompt_callback_thread_begin_t, 1) /* thread begin */ \ + macro (ompt_callback_thread_end, ompt_callback_thread_end_t, 2) /* thread end */ \ + \ + macro (ompt_callback_parallel_begin, ompt_callback_parallel_begin_t, 3) /* parallel begin */ \ + macro (ompt_callback_parallel_end, ompt_callback_parallel_end_t, 4) /* parallel end */ \ + \ + macro (ompt_callback_task_create, ompt_callback_task_create_t, 5) /* task begin */ \ + macro (ompt_callback_task_schedule, ompt_callback_task_schedule_t, 6) /* task schedule */ \ + macro (ompt_callback_implicit_task, ompt_callback_implicit_task_t, 7) /* implicit task */ \ + \ + macro (ompt_callback_target, ompt_callback_target_t, 8) /* target */ \ + macro (ompt_callback_target_data_op, ompt_callback_target_data_op_t, 9) /* target data op */ \ + macro (ompt_callback_target_submit, ompt_callback_target_submit_t, 10) /* target submit */ \ + \ + macro (ompt_callback_control_tool, ompt_callback_control_tool_t, 11) /* control tool */ \ + \ + macro (ompt_callback_device_initialize, ompt_callback_device_initialize_t, 12) /* device initialize */ \ + macro (ompt_callback_device_finalize, ompt_callback_device_finalize_t, 13) /* device finalize */ \ + \ + macro (ompt_callback_device_load, ompt_callback_device_load_t, 14) /* device load */ \ + macro (ompt_callback_device_unload, ompt_callback_device_unload_t, 15) /* device unload */ \ + \ + /* Optional Events */ \ + macro (ompt_callback_sync_region_wait, ompt_callback_sync_region_t, 16) /* sync region wait begin or end */ \ + \ + macro (ompt_callback_mutex_released, ompt_callback_mutex_t, 17) /* mutex released */ \ + \ + macro (ompt_callback_dependences, ompt_callback_dependences_t, 18) /* report task dependences */ \ + macro (ompt_callback_task_dependence, ompt_callback_task_dependence_t, 19) /* report task dependence */ \ + \ + macro (ompt_callback_work, ompt_callback_work_t, 20) /* task at work begin or end */ \ + \ + macro (ompt_callback_masked, ompt_callback_masked_t, 21) /* task at masked begin or end */ \ + \ + macro (ompt_callback_target_map, ompt_callback_target_map_t, 22) /* target map */ \ + \ + macro (ompt_callback_sync_region, ompt_callback_sync_region_t, 23) /* sync region begin or end */ \ + \ + macro (ompt_callback_lock_init, ompt_callback_mutex_acquire_t, 24) /* lock init */ \ + macro (ompt_callback_lock_destroy, ompt_callback_mutex_t, 25) /* lock destroy */ \ + \ + macro (ompt_callback_mutex_acquire, ompt_callback_mutex_acquire_t, 26) /* mutex acquire */ \ + macro (ompt_callback_mutex_acquired, ompt_callback_mutex_t, 27) /* mutex acquired */ \ + \ + macro (ompt_callback_nest_lock, ompt_callback_nest_lock_t, 28) /* nest lock */ \ + \ + macro (ompt_callback_flush, ompt_callback_flush_t, 29) /* after executing flush */ \ + \ + macro (ompt_callback_cancel, ompt_callback_cancel_t, 30) /* cancel innermost binding region */ \ + \ + macro (ompt_callback_reduction, ompt_callback_sync_region_t, 31) /* reduction */ \ + \ + macro (ompt_callback_dispatch, ompt_callback_dispatch_t, 32) /* dispatch of work */ \ + macro (ompt_callback_target_emi, ompt_callback_target_emi_t, 33) /* target */ \ + macro (ompt_callback_target_data_op_emi,ompt_callback_target_data_op_emi_t,34) /* target data op */ \ + macro (ompt_callback_target_submit_emi, ompt_callback_target_submit_emi_t, 35) /* target submit */ \ + macro (ompt_callback_target_map_emi, ompt_callback_target_map_emi_t, 36) /* target map */ \ + macro (ompt_callback_error, ompt_callback_error_t, 37) /* error */ + +/***************************************************************************** + * implementation specific types + *****************************************************************************/ + +typedef enum kmp_mutex_impl_t { +#define kmp_mutex_impl_macro(impl, code) impl = code, + FOREACH_KMP_MUTEX_IMPL(kmp_mutex_impl_macro) +#undef kmp_mutex_impl_macro +} kmp_mutex_impl_t; + +/***************************************************************************** + * definitions generated from spec + *****************************************************************************/ + +typedef enum ompt_callbacks_t { + ompt_callback_thread_begin = 1, + ompt_callback_thread_end = 2, + ompt_callback_parallel_begin = 3, + ompt_callback_parallel_end = 4, + ompt_callback_task_create = 5, + ompt_callback_task_schedule = 6, + ompt_callback_implicit_task = 7, + ompt_callback_target = 8, + ompt_callback_target_data_op = 9, + ompt_callback_target_submit = 10, + ompt_callback_control_tool = 11, + ompt_callback_device_initialize = 12, + ompt_callback_device_finalize = 13, + ompt_callback_device_load = 14, + ompt_callback_device_unload = 15, + ompt_callback_sync_region_wait = 16, + ompt_callback_mutex_released = 17, + ompt_callback_dependences = 18, + ompt_callback_task_dependence = 19, + ompt_callback_work = 20, + ompt_callback_master DEPRECATED_51 = 21, + ompt_callback_masked = 21, + ompt_callback_target_map = 22, + ompt_callback_sync_region = 23, + ompt_callback_lock_init = 24, + ompt_callback_lock_destroy = 25, + ompt_callback_mutex_acquire = 26, + ompt_callback_mutex_acquired = 27, + ompt_callback_nest_lock = 28, + ompt_callback_flush = 29, + ompt_callback_cancel = 30, + ompt_callback_reduction = 31, + ompt_callback_dispatch = 32, + ompt_callback_target_emi = 33, + ompt_callback_target_data_op_emi = 34, + ompt_callback_target_submit_emi = 35, + ompt_callback_target_map_emi = 36, + ompt_callback_error = 37 +} ompt_callbacks_t; + +typedef enum ompt_record_t { + ompt_record_ompt = 1, + ompt_record_native = 2, + ompt_record_invalid = 3 +} ompt_record_t; + +typedef enum ompt_record_native_t { + ompt_record_native_info = 1, + ompt_record_native_event = 2 +} ompt_record_native_t; + +typedef enum ompt_set_result_t { + ompt_set_error = 0, + ompt_set_never = 1, + ompt_set_impossible = 2, + ompt_set_sometimes = 3, + ompt_set_sometimes_paired = 4, + ompt_set_always = 5 +} ompt_set_result_t; + +typedef uint64_t ompt_id_t; + +typedef uint64_t ompt_device_time_t; + +typedef uint64_t ompt_buffer_cursor_t; + +typedef enum ompt_thread_t { + ompt_thread_initial = 1, + ompt_thread_worker = 2, + ompt_thread_other = 3, + ompt_thread_unknown = 4 +} ompt_thread_t; + +typedef enum ompt_scope_endpoint_t { + ompt_scope_begin = 1, + ompt_scope_end = 2, + ompt_scope_beginend = 3 +} ompt_scope_endpoint_t; + +typedef enum ompt_dispatch_t { + ompt_dispatch_iteration = 1, + ompt_dispatch_section = 2 +} ompt_dispatch_t; + +typedef enum ompt_sync_region_t { + ompt_sync_region_barrier DEPRECATED_51 = 1, + ompt_sync_region_barrier_implicit DEPRECATED_51 = 2, + ompt_sync_region_barrier_explicit = 3, + ompt_sync_region_barrier_implementation = 4, + ompt_sync_region_taskwait = 5, + ompt_sync_region_taskgroup = 6, + ompt_sync_region_reduction = 7, + ompt_sync_region_barrier_implicit_workshare = 8, + ompt_sync_region_barrier_implicit_parallel = 9, + ompt_sync_region_barrier_teams = 10 +} ompt_sync_region_t; + +typedef enum ompt_target_data_op_t { + ompt_target_data_alloc = 1, + ompt_target_data_transfer_to_device = 2, + ompt_target_data_transfer_from_device = 3, + ompt_target_data_delete = 4, + ompt_target_data_associate = 5, + ompt_target_data_disassociate = 6, + ompt_target_data_alloc_async = 17, + ompt_target_data_transfer_to_device_async = 18, + ompt_target_data_transfer_from_device_async = 19, + ompt_target_data_delete_async = 20 +} ompt_target_data_op_t; + +typedef enum ompt_work_t { + ompt_work_loop = 1, + ompt_work_sections = 2, + ompt_work_single_executor = 3, + ompt_work_single_other = 4, + ompt_work_workshare = 5, + ompt_work_distribute = 6, + ompt_work_taskloop = 7, + ompt_work_scope = 8 +} ompt_work_t; + +typedef enum ompt_mutex_t { + ompt_mutex_lock = 1, + ompt_mutex_test_lock = 2, + ompt_mutex_nest_lock = 3, + ompt_mutex_test_nest_lock = 4, + ompt_mutex_critical = 5, + ompt_mutex_atomic = 6, + ompt_mutex_ordered = 7 +} ompt_mutex_t; + +typedef enum ompt_native_mon_flag_t { + ompt_native_data_motion_explicit = 0x01, + ompt_native_data_motion_implicit = 0x02, + ompt_native_kernel_invocation = 0x04, + ompt_native_kernel_execution = 0x08, + ompt_native_driver = 0x10, + ompt_native_runtime = 0x20, + ompt_native_overhead = 0x40, + ompt_native_idleness = 0x80 +} ompt_native_mon_flag_t; + +typedef enum ompt_task_flag_t { + ompt_task_initial = 0x00000001, + ompt_task_implicit = 0x00000002, + ompt_task_explicit = 0x00000004, + ompt_task_target = 0x00000008, + ompt_task_taskwait = 0x00000010, + ompt_task_undeferred = 0x08000000, + ompt_task_untied = 0x10000000, + ompt_task_final = 0x20000000, + ompt_task_mergeable = 0x40000000, + ompt_task_merged = 0x80000000 +} ompt_task_flag_t; + +typedef enum ompt_task_status_t { + ompt_task_complete = 1, + ompt_task_yield = 2, + ompt_task_cancel = 3, + ompt_task_detach = 4, + ompt_task_early_fulfill = 5, + ompt_task_late_fulfill = 6, + ompt_task_switch = 7, + ompt_taskwait_complete = 8 +} ompt_task_status_t; + +typedef enum ompt_target_t { + ompt_target = 1, + ompt_target_enter_data = 2, + ompt_target_exit_data = 3, + ompt_target_update = 4, + ompt_target_nowait = 9, + ompt_target_enter_data_nowait = 10, + ompt_target_exit_data_nowait = 11, + ompt_target_update_nowait = 12 +} ompt_target_t; + +typedef enum ompt_parallel_flag_t { + ompt_parallel_invoker_program = 0x00000001, + ompt_parallel_invoker_runtime = 0x00000002, + ompt_parallel_league = 0x40000000, + ompt_parallel_team = 0x80000000 +} ompt_parallel_flag_t; + +typedef enum ompt_target_map_flag_t { + ompt_target_map_flag_to = 0x01, + ompt_target_map_flag_from = 0x02, + ompt_target_map_flag_alloc = 0x04, + ompt_target_map_flag_release = 0x08, + ompt_target_map_flag_delete = 0x10, + ompt_target_map_flag_implicit = 0x20 +} ompt_target_map_flag_t; + +typedef enum ompt_dependence_type_t { + ompt_dependence_type_in = 1, + ompt_dependence_type_out = 2, + ompt_dependence_type_inout = 3, + ompt_dependence_type_mutexinoutset = 4, + ompt_dependence_type_source = 5, + ompt_dependence_type_sink = 6, + ompt_dependence_type_inoutset = 7 +} ompt_dependence_type_t; + +typedef enum ompt_severity_t { + ompt_warning = 1, + ompt_fatal = 2 +} ompt_severity_t; + +typedef enum ompt_cancel_flag_t { + ompt_cancel_parallel = 0x01, + ompt_cancel_sections = 0x02, + ompt_cancel_loop = 0x04, + ompt_cancel_taskgroup = 0x08, + ompt_cancel_activated = 0x10, + ompt_cancel_detected = 0x20, + ompt_cancel_discarded_task = 0x40 +} ompt_cancel_flag_t; + +typedef uint64_t ompt_hwid_t; + +typedef uint64_t ompt_wait_id_t; + +typedef enum ompt_frame_flag_t { + ompt_frame_runtime = 0x00, + ompt_frame_application = 0x01, + ompt_frame_cfa = 0x10, + ompt_frame_framepointer = 0x20, + ompt_frame_stackaddress = 0x30 +} ompt_frame_flag_t; + +typedef enum ompt_state_t { + ompt_state_work_serial = 0x000, + ompt_state_work_parallel = 0x001, + ompt_state_work_reduction = 0x002, + + ompt_state_wait_barrier DEPRECATED_51 = 0x010, + ompt_state_wait_barrier_implicit_parallel = 0x011, + ompt_state_wait_barrier_implicit_workshare = 0x012, + ompt_state_wait_barrier_implicit DEPRECATED_51 = 0x013, + ompt_state_wait_barrier_explicit = 0x014, + ompt_state_wait_barrier_implementation = 0x015, + ompt_state_wait_barrier_teams = 0x016, + + ompt_state_wait_taskwait = 0x020, + ompt_state_wait_taskgroup = 0x021, + + ompt_state_wait_mutex = 0x040, + ompt_state_wait_lock = 0x041, + ompt_state_wait_critical = 0x042, + ompt_state_wait_atomic = 0x043, + ompt_state_wait_ordered = 0x044, + + ompt_state_wait_target = 0x080, + ompt_state_wait_target_map = 0x081, + ompt_state_wait_target_update = 0x082, + + ompt_state_idle = 0x100, + ompt_state_overhead = 0x101, + ompt_state_undefined = 0x102 +} ompt_state_t; + +typedef uint64_t (*ompt_get_unique_id_t) (void); + +typedef uint64_t ompd_size_t; + +typedef uint64_t ompd_wait_id_t; + +typedef uint64_t ompd_addr_t; +typedef int64_t ompd_word_t; +typedef uint64_t ompd_seg_t; + +typedef uint64_t ompd_device_t; + +typedef uint64_t ompd_thread_id_t; + +typedef enum ompd_scope_t { + ompd_scope_global = 1, + ompd_scope_address_space = 2, + ompd_scope_thread = 3, + ompd_scope_parallel = 4, + ompd_scope_implicit_task = 5, + ompd_scope_task = 6 +} ompd_scope_t; + +typedef uint64_t ompd_icv_id_t; + +typedef enum ompd_rc_t { + ompd_rc_ok = 0, + ompd_rc_unavailable = 1, + ompd_rc_stale_handle = 2, + ompd_rc_bad_input = 3, + ompd_rc_error = 4, + ompd_rc_unsupported = 5, + ompd_rc_needs_state_tracking = 6, + ompd_rc_incompatible = 7, + ompd_rc_device_read_error = 8, + ompd_rc_device_write_error = 9, + ompd_rc_nomem = 10, + ompd_rc_incomplete = 11, + ompd_rc_callback_error = 12 +} ompd_rc_t; + +typedef void (*ompt_interface_fn_t) (void); + +typedef ompt_interface_fn_t (*ompt_function_lookup_t) ( + const char *interface_function_name +); + +typedef union ompt_data_t { + uint64_t value; + void *ptr; +} ompt_data_t; + +typedef struct ompt_frame_t { + ompt_data_t exit_frame; + ompt_data_t enter_frame; + int exit_frame_flags; + int enter_frame_flags; +} ompt_frame_t; + +typedef void (*ompt_callback_t) (void); + +typedef void ompt_device_t; + +typedef void ompt_buffer_t; + +typedef void (*ompt_callback_buffer_request_t) ( + int device_num, + ompt_buffer_t **buffer, + size_t *bytes +); + +typedef void (*ompt_callback_buffer_complete_t) ( + int device_num, + ompt_buffer_t *buffer, + size_t bytes, + ompt_buffer_cursor_t begin, + int buffer_owned +); + +typedef void (*ompt_finalize_t) ( + ompt_data_t *tool_data +); + +typedef int (*ompt_initialize_t) ( + ompt_function_lookup_t lookup, + int initial_device_num, + ompt_data_t *tool_data +); + +typedef struct ompt_start_tool_result_t { + ompt_initialize_t initialize; + ompt_finalize_t finalize; + ompt_data_t tool_data; +} ompt_start_tool_result_t; + +typedef struct ompt_record_abstract_t { + ompt_record_native_t rclass; + const char *type; + ompt_device_time_t start_time; + ompt_device_time_t end_time; + ompt_hwid_t hwid; +} ompt_record_abstract_t; + +typedef struct ompt_dependence_t { + ompt_data_t variable; + ompt_dependence_type_t dependence_type; +} ompt_dependence_t; + +typedef int (*ompt_enumerate_states_t) ( + int current_state, + int *next_state, + const char **next_state_name +); + +typedef int (*ompt_enumerate_mutex_impls_t) ( + int current_impl, + int *next_impl, + const char **next_impl_name +); + +typedef ompt_set_result_t (*ompt_set_callback_t) ( + ompt_callbacks_t event, + ompt_callback_t callback +); + +typedef int (*ompt_get_callback_t) ( + ompt_callbacks_t event, + ompt_callback_t *callback +); + +typedef ompt_data_t *(*ompt_get_thread_data_t) (void); + +typedef int (*ompt_get_num_procs_t) (void); + +typedef int (*ompt_get_num_places_t) (void); + +typedef int (*ompt_get_place_proc_ids_t) ( + int place_num, + int ids_size, + int *ids +); + +typedef int (*ompt_get_place_num_t) (void); + +typedef int (*ompt_get_partition_place_nums_t) ( + int place_nums_size, + int *place_nums +); + +typedef int (*ompt_get_proc_id_t) (void); + +typedef int (*ompt_get_state_t) ( + ompt_wait_id_t *wait_id +); + +typedef int (*ompt_get_parallel_info_t) ( + int ancestor_level, + ompt_data_t **parallel_data, + int *team_size +); + +typedef int (*ompt_get_task_info_t) ( + int ancestor_level, + int *flags, + ompt_data_t **task_data, + ompt_frame_t **task_frame, + ompt_data_t **parallel_data, + int *thread_num +); + +typedef int (*ompt_get_task_memory_t)( + void **addr, + size_t *size, + int block +); + +typedef int (*ompt_get_target_info_t) ( + uint64_t *device_num, + ompt_id_t *target_id, + ompt_id_t *host_op_id +); + +typedef int (*ompt_get_num_devices_t) (void); + +typedef void (*ompt_finalize_tool_t) (void); + +typedef int (*ompt_get_device_num_procs_t) ( + ompt_device_t *device +); + +typedef ompt_device_time_t (*ompt_get_device_time_t) ( + ompt_device_t *device +); + +typedef double (*ompt_translate_time_t) ( + ompt_device_t *device, + ompt_device_time_t time +); + +typedef ompt_set_result_t (*ompt_set_trace_ompt_t) ( + ompt_device_t *device, + unsigned int enable, + unsigned int etype +); + +typedef ompt_set_result_t (*ompt_set_trace_native_t) ( + ompt_device_t *device, + int enable, + int flags +); + +typedef int (*ompt_start_trace_t) ( + ompt_device_t *device, + ompt_callback_buffer_request_t request, + ompt_callback_buffer_complete_t complete +); + +typedef int (*ompt_pause_trace_t) ( + ompt_device_t *device, + int begin_pause +); + +typedef int (*ompt_flush_trace_t) ( + ompt_device_t *device +); + +typedef int (*ompt_stop_trace_t) ( + ompt_device_t *device +); + +typedef int (*ompt_advance_buffer_cursor_t) ( + ompt_device_t *device, + ompt_buffer_t *buffer, + size_t size, + ompt_buffer_cursor_t current, + ompt_buffer_cursor_t *next +); + +typedef ompt_record_t (*ompt_get_record_type_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current +); + +typedef void *(*ompt_get_record_native_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current, + ompt_id_t *host_op_id +); + +typedef ompt_record_abstract_t * +(*ompt_get_record_abstract_t) ( + void *native_record +); + +typedef void (*ompt_callback_thread_begin_t) ( + ompt_thread_t thread_type, + ompt_data_t *thread_data +); + +typedef struct ompt_record_thread_begin_t { + ompt_thread_t thread_type; +} ompt_record_thread_begin_t; + +typedef void (*ompt_callback_thread_end_t) ( + ompt_data_t *thread_data +); + +typedef void (*ompt_callback_parallel_begin_t) ( + ompt_data_t *encountering_task_data, + const ompt_frame_t *encountering_task_frame, + ompt_data_t *parallel_data, + unsigned int requested_parallelism, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_parallel_begin_t { + ompt_id_t encountering_task_id; + ompt_id_t parallel_id; + unsigned int requested_parallelism; + int flags; + const void *codeptr_ra; +} ompt_record_parallel_begin_t; + +typedef void (*ompt_callback_parallel_end_t) ( + ompt_data_t *parallel_data, + ompt_data_t *encountering_task_data, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_parallel_end_t { + ompt_id_t parallel_id; + ompt_id_t encountering_task_id; + int flags; + const void *codeptr_ra; +} ompt_record_parallel_end_t; + +typedef void (*ompt_callback_work_t) ( + ompt_work_t wstype, + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + uint64_t count, + const void *codeptr_ra +); + +typedef struct ompt_record_work_t { + ompt_work_t wstype; + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + uint64_t count; + const void *codeptr_ra; +} ompt_record_work_t; + +typedef void (*ompt_callback_dispatch_t) ( + ompt_data_t *parallel_data, + ompt_data_t *task_data, + ompt_dispatch_t kind, + ompt_data_t instance +); + +typedef struct ompt_record_dispatch_t { + ompt_id_t parallel_id; + ompt_id_t task_id; + ompt_dispatch_t kind; + ompt_data_t instance; +} ompt_record_dispatch_t; + +typedef void (*ompt_callback_task_create_t) ( + ompt_data_t *encountering_task_data, + const ompt_frame_t *encountering_task_frame, + ompt_data_t *new_task_data, + int flags, + int has_dependences, + const void *codeptr_ra +); + +typedef struct ompt_record_task_create_t { + ompt_id_t encountering_task_id; + ompt_id_t new_task_id; + int flags; + int has_dependences; + const void *codeptr_ra; +} ompt_record_task_create_t; + +typedef void (*ompt_callback_dependences_t) ( + ompt_data_t *task_data, + const ompt_dependence_t *deps, + int ndeps +); + +typedef struct ompt_record_dependences_t { + ompt_id_t task_id; + ompt_dependence_t dep; + int ndeps; +} ompt_record_dependences_t; + +typedef void (*ompt_callback_task_dependence_t) ( + ompt_data_t *src_task_data, + ompt_data_t *sink_task_data +); + +typedef struct ompt_record_task_dependence_t { + ompt_id_t src_task_id; + ompt_id_t sink_task_id; +} ompt_record_task_dependence_t; + +typedef void (*ompt_callback_task_schedule_t) ( + ompt_data_t *prior_task_data, + ompt_task_status_t prior_task_status, + ompt_data_t *next_task_data +); + +typedef struct ompt_record_task_schedule_t { + ompt_id_t prior_task_id; + ompt_task_status_t prior_task_status; + ompt_id_t next_task_id; +} ompt_record_task_schedule_t; + +typedef void (*ompt_callback_implicit_task_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + unsigned int actual_parallelism, + unsigned int index, + int flags +); + +typedef struct ompt_record_implicit_task_t { + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + unsigned int actual_parallelism; + unsigned int index; + int flags; +} ompt_record_implicit_task_t; + +typedef void (*ompt_callback_masked_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + const void *codeptr_ra +); + +typedef ompt_callback_masked_t ompt_callback_master_t DEPRECATED_51; + +typedef struct ompt_record_masked_t { + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + const void *codeptr_ra; +} ompt_record_masked_t; + +typedef void (*ompt_callback_sync_region_t) ( + ompt_sync_region_t kind, + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + const void *codeptr_ra +); + +typedef struct ompt_record_sync_region_t { + ompt_sync_region_t kind; + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + const void *codeptr_ra; +} ompt_record_sync_region_t; + +typedef void (*ompt_callback_mutex_acquire_t) ( + ompt_mutex_t kind, + unsigned int hint, + unsigned int impl, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_mutex_acquire_t { + ompt_mutex_t kind; + unsigned int hint; + unsigned int impl; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_mutex_acquire_t; + +typedef void (*ompt_callback_mutex_t) ( + ompt_mutex_t kind, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_mutex_t { + ompt_mutex_t kind; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_mutex_t; + +typedef void (*ompt_callback_nest_lock_t) ( + ompt_scope_endpoint_t endpoint, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_nest_lock_t { + ompt_scope_endpoint_t endpoint; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_nest_lock_t; + +typedef void (*ompt_callback_flush_t) ( + ompt_data_t *thread_data, + const void *codeptr_ra +); + +typedef struct ompt_record_flush_t { + const void *codeptr_ra; +} ompt_record_flush_t; + +typedef void (*ompt_callback_cancel_t) ( + ompt_data_t *task_data, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_cancel_t { + ompt_id_t task_id; + int flags; + const void *codeptr_ra; +} ompt_record_cancel_t; + +typedef void (*ompt_callback_device_initialize_t) ( + int device_num, + const char *type, + ompt_device_t *device, + ompt_function_lookup_t lookup, + const char *documentation +); + +typedef void (*ompt_callback_device_finalize_t) ( + int device_num +); + +typedef void (*ompt_callback_device_load_t) ( + int device_num, + const char *filename, + int64_t offset_in_file, + void *vma_in_file, + size_t bytes, + void *host_addr, + void *device_addr, + uint64_t module_id +); + +typedef void (*ompt_callback_device_unload_t) ( + int device_num, + uint64_t module_id +); + +typedef void (*ompt_callback_target_data_op_emi_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *target_task_data, + ompt_data_t *target_data, + ompt_id_t *host_op_id, + ompt_target_data_op_t optype, + void *src_addr, + int src_device_num, + void *dest_addr, + int dest_device_num, + size_t bytes, + const void *codeptr_ra +); + +typedef void (*ompt_callback_target_data_op_t) ( + ompt_id_t target_id, + ompt_id_t host_op_id, + ompt_target_data_op_t optype, + void *src_addr, + int src_device_num, + void *dest_addr, + int dest_device_num, + size_t bytes, + const void *codeptr_ra +); + +typedef struct ompt_record_target_data_op_t { + ompt_id_t host_op_id; + ompt_target_data_op_t optype; + void *src_addr; + int src_device_num; + void *dest_addr; + int dest_device_num; + size_t bytes; + ompt_device_time_t end_time; + const void *codeptr_ra; +} ompt_record_target_data_op_t; + +typedef void (*ompt_callback_target_emi_t) ( + ompt_target_t kind, + ompt_scope_endpoint_t endpoint, + int device_num, + ompt_data_t *task_data, + ompt_data_t *target_task_data, + ompt_data_t *target_data, + const void *codeptr_ra +); + +typedef void (*ompt_callback_target_t) ( + ompt_target_t kind, + ompt_scope_endpoint_t endpoint, + int device_num, + ompt_data_t *task_data, + ompt_id_t target_id, + const void *codeptr_ra +); + +typedef struct ompt_record_target_t { + ompt_target_t kind; + ompt_scope_endpoint_t endpoint; + int device_num; + ompt_id_t task_id; + ompt_id_t target_id; + const void *codeptr_ra; +} ompt_record_target_t; + +typedef void (*ompt_callback_target_map_emi_t) ( + ompt_data_t *target_data, + unsigned int nitems, + void **host_addr, + void **device_addr, + size_t *bytes, + unsigned int *mapping_flags, + const void *codeptr_ra +); + +typedef void (*ompt_callback_target_map_t) ( + ompt_id_t target_id, + unsigned int nitems, + void **host_addr, + void **device_addr, + size_t *bytes, + unsigned int *mapping_flags, + const void *codeptr_ra +); + +typedef struct ompt_record_target_map_t { + ompt_id_t target_id; + unsigned int nitems; + void **host_addr; + void **device_addr; + size_t *bytes; + unsigned int *mapping_flags; + const void *codeptr_ra; +} ompt_record_target_map_t; + +typedef void (*ompt_callback_target_submit_emi_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *target_data, + ompt_id_t *host_op_id, + unsigned int requested_num_teams +); + +typedef void (*ompt_callback_target_submit_t) ( + ompt_id_t target_id, + ompt_id_t host_op_id, + unsigned int requested_num_teams +); + +typedef struct ompt_record_target_kernel_t { + ompt_id_t host_op_id; + unsigned int requested_num_teams; + unsigned int granted_num_teams; + ompt_device_time_t end_time; +} ompt_record_target_kernel_t; + +typedef int (*ompt_callback_control_tool_t) ( + uint64_t command, + uint64_t modifier, + void *arg, + const void *codeptr_ra +); + +typedef struct ompt_record_control_tool_t { + uint64_t command; + uint64_t modifier; + const void *codeptr_ra; +} ompt_record_control_tool_t; + +typedef void (*ompt_callback_error_t) ( + ompt_severity_t severity, + const char *message, size_t length, + const void *codeptr_ra +); + +typedef struct ompt_record_error_t { + ompt_severity_t severity; + const char *message; + size_t length; + const void *codeptr_ra; +} ompt_record_error_t; + +typedef struct ompd_address_t { + ompd_seg_t segment; + ompd_addr_t address; +} ompd_address_t; + +typedef struct ompd_frame_info_t { + ompd_address_t frame_address; + ompd_word_t frame_flag; +} ompd_frame_info_t; + +typedef struct _ompd_aspace_handle ompd_address_space_handle_t; +typedef struct _ompd_thread_handle ompd_thread_handle_t; +typedef struct _ompd_parallel_handle ompd_parallel_handle_t; +typedef struct _ompd_task_handle ompd_task_handle_t; + +typedef struct _ompd_aspace_cont ompd_address_space_context_t; +typedef struct _ompd_thread_cont ompd_thread_context_t; + +typedef struct ompd_device_type_sizes_t { + uint8_t sizeof_char; + uint8_t sizeof_short; + uint8_t sizeof_int; + uint8_t sizeof_long; + uint8_t sizeof_long_long; + uint8_t sizeof_pointer; +} ompd_device_type_sizes_t; + +void ompd_dll_locations_valid(void); + +typedef ompd_rc_t (*ompd_callback_memory_alloc_fn_t)(ompd_size_t nbytes, + void **ptr); + +typedef ompd_rc_t (*ompd_callback_memory_free_fn_t)(void *ptr); + +typedef ompd_rc_t (*ompd_callback_get_thread_context_for_thread_id_fn_t)( + ompd_address_space_context_t *address_space_context, ompd_thread_id_t kind, + ompd_size_t sizeof_thread_id, const void *thread_id, + ompd_thread_context_t **thread_context); + +typedef ompd_rc_t (*ompd_callback_sizeof_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_device_type_sizes_t *sizes); + +typedef ompd_rc_t (*ompd_callback_symbol_addr_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_thread_context_t *thread_context, const char *symbol_name, + ompd_address_t *symbol_addr, const char *file_name); + +typedef ompd_rc_t (*ompd_callback_memory_read_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_thread_context_t *thread_context, const ompd_address_t *addr, + ompd_size_t nbytes, void *buffer); + +typedef ompd_rc_t (*ompd_callback_memory_write_fn_t)( + ompd_address_space_context_t *address_space_context, + ompd_thread_context_t *thread_context, const ompd_address_t *addr, + ompd_size_t nbytes, const void *buffer); + +typedef ompd_rc_t (*ompd_callback_device_host_fn_t)( + ompd_address_space_context_t *address_space_context, const void *input, + ompd_size_t unit_size, ompd_size_t count, void *output); + +typedef ompd_rc_t (*ompd_callback_print_string_fn_t)(const char *string, + int category); + +typedef struct ompd_callbacks_t { + ompd_callback_memory_alloc_fn_t alloc_memory; + ompd_callback_memory_free_fn_t free_memory; + ompd_callback_print_string_fn_t print_string; + ompd_callback_sizeof_fn_t sizeof_type; + ompd_callback_symbol_addr_fn_t symbol_addr_lookup; + ompd_callback_memory_read_fn_t read_memory; + ompd_callback_memory_write_fn_t write_memory; + ompd_callback_memory_read_fn_t read_string; + ompd_callback_device_host_fn_t device_to_host; + ompd_callback_device_host_fn_t host_to_device; + ompd_callback_get_thread_context_for_thread_id_fn_t + get_thread_context_for_thread_id; +} ompd_callbacks_t; + +void ompd_bp_parallel_begin(void); + +void ompd_bp_parallel_end(void); + +void ompd_bp_task_begin(void); + +void ompd_bp_task_end(void); + +void ompd_bp_thread_begin(void); + +void ompd_bp_thread_end(void); + +void ompd_bp_device_begin(void); + +void ompd_bp_device_end(void); + +ompd_rc_t ompd_initialize(ompd_word_t api_version, + const ompd_callbacks_t *callbacks); + +ompd_rc_t ompd_get_api_version(ompd_word_t *version); + +ompd_rc_t ompd_get_version_string(const char **string); + +ompd_rc_t ompd_finalize(void); + +ompd_rc_t ompd_process_initialize(ompd_address_space_context_t *context, + ompd_address_space_handle_t **handle); + +ompd_rc_t ompd_device_initialize(ompd_address_space_handle_t *process_handle, + ompd_address_space_context_t *device_context, + ompd_device_t kind, ompd_size_t sizeof_id, + void *id, + ompd_address_space_handle_t **device_handle); + +ompd_rc_t ompd_rel_address_space_handle(ompd_address_space_handle_t *handle); + +ompd_rc_t ompd_get_omp_version(ompd_address_space_handle_t *address_space, + ompd_word_t *omp_version); + +ompd_rc_t +ompd_get_omp_version_string(ompd_address_space_handle_t *address_space, + const char **string); + +ompd_rc_t ompd_get_thread_in_parallel(ompd_parallel_handle_t *parallel_handle, + int thread_num, + ompd_thread_handle_t **thread_handle); + +ompd_rc_t ompd_get_thread_handle(ompd_address_space_handle_t *handle, + ompd_thread_id_t kind, + ompd_size_t sizeof_thread_id, + const void *thread_id, + ompd_thread_handle_t **thread_handle); + +ompd_rc_t ompd_rel_thread_handle(ompd_thread_handle_t *thread_handle); + +ompd_rc_t ompd_thread_handle_compare(ompd_thread_handle_t *thread_handle_1, + ompd_thread_handle_t *thread_handle_2, + int *cmp_value); + +ompd_rc_t ompd_get_thread_id(ompd_thread_handle_t *thread_handle, + ompd_thread_id_t kind, + ompd_size_t sizeof_thread_id, void *thread_id); + +ompd_rc_t +ompd_get_curr_parallel_handle(ompd_thread_handle_t *thread_handle, + ompd_parallel_handle_t **parallel_handle); + +ompd_rc_t ompd_get_enclosing_parallel_handle( + ompd_parallel_handle_t *parallel_handle, + ompd_parallel_handle_t **enclosing_parallel_handle); + +ompd_rc_t +ompd_get_task_parallel_handle(ompd_task_handle_t *task_handle, + ompd_parallel_handle_t **task_parallel_handle); + +ompd_rc_t ompd_rel_parallel_handle(ompd_parallel_handle_t *parallel_handle); + +ompd_rc_t +ompd_parallel_handle_compare(ompd_parallel_handle_t *parallel_handle_1, + ompd_parallel_handle_t *parallel_handle_2, + int *cmp_value); + +ompd_rc_t ompd_get_curr_task_handle(ompd_thread_handle_t *thread_handle, + ompd_task_handle_t **task_handle); + +ompd_rc_t +ompd_get_generating_task_handle(ompd_task_handle_t *task_handle, + ompd_task_handle_t **generating_task_handle); + +ompd_rc_t +ompd_get_scheduling_task_handle(ompd_task_handle_t *task_handle, + ompd_task_handle_t **scheduling_task_handle); + +ompd_rc_t ompd_get_task_in_parallel(ompd_parallel_handle_t *parallel_handle, + int thread_num, + ompd_task_handle_t **task_handle); + +ompd_rc_t ompd_rel_task_handle(ompd_task_handle_t *task_handle); + +ompd_rc_t ompd_task_handle_compare(ompd_task_handle_t *task_handle_1, + ompd_task_handle_t *task_handle_2, + int *cmp_value); + +ompd_rc_t ompd_get_task_function(ompd_task_handle_t *task_handle, + ompd_address_t *entry_point); + +ompd_rc_t ompd_get_task_frame(ompd_task_handle_t *task_handle, + ompd_frame_info_t *exit_frame, + ompd_frame_info_t *enter_frame); + +ompd_rc_t +ompd_enumerate_states(ompd_address_space_handle_t *address_space_handle, + ompd_word_t current_state, ompd_word_t *next_state, + const char **next_state_name, ompd_word_t *more_enums); + +ompd_rc_t ompd_get_state(ompd_thread_handle_t *thread_handle, + ompd_word_t *state, ompd_wait_id_t *wait_id); + +ompd_rc_t +ompd_get_display_control_vars(ompd_address_space_handle_t *address_space_handle, + const char *const **control_vars); + +ompd_rc_t ompd_rel_display_control_vars(const char *const **control_vars); + +ompd_rc_t ompd_enumerate_icvs(ompd_address_space_handle_t *handle, + ompd_icv_id_t current, ompd_icv_id_t *next_id, + const char **next_icv_name, + ompd_scope_t *next_scope, int *more); + +ompd_rc_t ompd_get_icv_from_scope(void *handle, ompd_scope_t scope, + ompd_icv_id_t icv_id, ompd_word_t *icv_value); + +ompd_rc_t ompd_get_icv_string_from_scope(void *handle, ompd_scope_t scope, + ompd_icv_id_t icv_id, + const char **icv_string); + +ompd_rc_t ompd_get_tool_data(void *handle, ompd_scope_t scope, + ompd_word_t *value, ompd_address_t *ptr); + +typedef struct ompt_record_ompt_t { + ompt_callbacks_t type; + ompt_device_time_t time; + ompt_id_t thread_id; + ompt_id_t target_id; + union { + ompt_record_thread_begin_t thread_begin; + ompt_record_parallel_begin_t parallel_begin; + ompt_record_parallel_end_t parallel_end; + ompt_record_work_t work; + ompt_record_dispatch_t dispatch; + ompt_record_task_create_t task_create; + ompt_record_dependences_t dependences; + ompt_record_task_dependence_t task_dependence; + ompt_record_task_schedule_t task_schedule; + ompt_record_implicit_task_t implicit_task; + ompt_record_masked_t masked; + ompt_record_sync_region_t sync_region; + ompt_record_mutex_acquire_t mutex_acquire; + ompt_record_mutex_t mutex; + ompt_record_nest_lock_t nest_lock; + ompt_record_flush_t flush; + ompt_record_cancel_t cancel; + ompt_record_target_t target; + ompt_record_target_data_op_t target_data_op; + ompt_record_target_map_t target_map; + ompt_record_target_kernel_t target_kernel; + ompt_record_control_tool_t control_tool; + } record; +} ompt_record_ompt_t; + +typedef ompt_record_ompt_t *(*ompt_get_record_ompt_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current +); + +#define ompt_id_none 0 +#define ompt_data_none {0} +#define ompt_time_none 0 +#define ompt_hwid_none 0 +#define ompt_addr_none ~0 +#define ompt_mutex_impl_none 0 +#define ompt_wait_id_none 0 + +#define ompd_segment_none 0 + +#endif /* __OMPT__ */ diff --git a/src/Simulation/Native/prerequisites.ps1 b/src/Simulation/Native/prerequisites.ps1 index 4b7c2a72fc4..935e7d4caaf 100644 --- a/src/Simulation/Native/prerequisites.ps1 +++ b/src/Simulation/Native/prerequisites.ps1 @@ -2,7 +2,8 @@ # Licensed under the MIT License. if (($IsMacOS) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { - brew install libomp + # Skip explicit install for testing purposes + # brew install libomp } elseif (($IsWindows) -or ((Test-Path Env:/AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { if (!(Get-Command clang -ErrorAction SilentlyContinue) -or ` (Test-Path Env:/AGENT_OS)) { From 61e3fdeebb35e656e3b95ed22a4b757c593fc482 Mon Sep 17 00:00:00 2001 From: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com> Date: Thu, 20 Jan 2022 16:39:51 -0800 Subject: [PATCH 25/26] Added `libomp` instructions. (#901) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7554ea9ab78..7e0c2c12690 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ To build on other platforms: * Install [CMake](https://cmake.org/install/) * Install [.NET Core 3 SDK](https://dotnet.microsoft.com/download) * On [WSL](https://docs.microsoft.com/en-us/windows/wsl/)/Linux: - * Install `g++` (e.g. in Ubuntu 20.04 `sudo apt-get install g++`). + * Install [`libomp`](https://openmp.llvm.org) needed for the native (C++) full-state simulator. * The build does not accept `dotnet-*-5.0` packages, install `dotnet-*-3.1` (`sudo apt-get install dotnet-sdk-3.1`). The possible result can be: From 1fff10b1192d5d90f0ccbeebf437a011801c328c Mon Sep 17 00:00:00 2001 From: Andres Paz Date: Sat, 22 Jan 2022 21:17:54 -0800 Subject: [PATCH 26/26] Consolidate native dlls in a single folder to avoid dupe references (#912) --- .gitignore | 6 ++ src/Simulation/Common/Simulators.Dev.props | 68 +++++++++------------- 2 files changed, 34 insertions(+), 40 deletions(-) diff --git a/.gitignore b/.gitignore index e0bfc124ef3..962637a6fc6 100644 --- a/.gitignore +++ b/.gitignore @@ -354,3 +354,9 @@ out/ # Ignore drops from building native simulators. xplat +src/Simulation/Native/win10/Microsoft.Quantum.Simulator.Runtime.dll +src/Simulation/Native/linux/libMicrosoft.Quantum.Simulator.Runtime.so +src/Simulation/Native/osx/libMicrosoft.Quantum.Simulator.Runtime.dylib +src/Simulation/Native/win10/Microsoft.Quantum.Experimental.Simulators.Runtime.dll +src/Simulation/Native/linux/Microsoft.Quantum.Experimental.Simulators.Runtime.dll +src/Simulation/Native/osx/Microsoft.Quantum.Experimental.Simulators.Runtime.dll diff --git a/src/Simulation/Common/Simulators.Dev.props b/src/Simulation/Common/Simulators.Dev.props index bf304660f95..8e10e59a7b9 100644 --- a/src/Simulation/Common/Simulators.Dev.props +++ b/src/Simulation/Common/Simulators.Dev.props @@ -1,67 +1,55 @@  - + bin\$(BuildConfiguration)\$(TargetFramework)\$(AssemblyName).xml $([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory)..\..\..\)) - $([MSBuild]::NormalizePath($(EnlistmentRoot)src/Simulation/Native/build/drop)) + $([MSBuild]::NormalizePath($(EnlistmentRoot)src/Simulation/Native)) + $([MSBuild]::NormalizePath($(NativeRootPath)/build/drop)) $([MSBuild]::NormalizePath($(EnlistmentRoot)src/Simulation/qdk_sim_rs/drop)) - - - $([MSBuild]::NormalizePath($(NativeBuildPath)/libMicrosoft.Quantum.Simulator.Runtime.dylib)) - $([MSBuild]::NormalizePath($(NativeBuildPath)/libMicrosoft.Quantum.Simulator.Runtime.so)) - $([MSBuild]::NormalizePath($(NativeBuildPath)/Microsoft.Quantum.Simulator.Runtime.dll)) - $(QsimDllMac) - $(QsimDllLinux) - $(QsimDllWindows) - $([MSBuild]::NormalizePath($(NativeBuildPath)/../../osx)) - $([MSBuild]::NormalizePath($(NativeBuildPath)/../../linux)) - $([MSBuild]::NormalizePath($(NativeBuildPath)/../../win10)) - - + + + + + + + + + + + + + + + + + - + %(Filename)%(Extension) PreserveNewest false - + %(Filename)%(Extension) PreserveNewest false - - - - - $([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/libqdk_sim.dylib)) - $([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/libqdk_sim.so)) - $([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/qdk_sim.dll)) - $(ExperimentalSimDllMac) - $(ExperimentalSimDllLinux) - $(ExperimentalSimDllWindows) - - - - - Microsoft.Quantum.Experimental.Simulators.Runtime.dll + + %(Filename)%(Extension) PreserveNewest false - - - - -

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%0ARhP*_`s~Un0rV+@KgxsegYHkF} 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