From 7b83f4d60862dad69997ffd8ba86c199abf624d7 Mon Sep 17 00:00:00 2001 From: "jer.noble@apple.com" Date: Fri, 2 Sep 2016 18:01:51 +0000 Subject: [PATCH] Refactor MobileMiniBrowser into an application framework to allow external XCTesting https://bugs.webkit.org/show_bug.cgi?id=161462 Reviewed by Eric Carlson. XCTest targets need to be in the same project as the application which they're testing. To facilitate having external projects with XCTest targets, move the application's implementation into a framework that can be included with a bare-bones application shell for testing. Simultaneously, add the ability to load files from within the new framework's bundle by using a 'bundle:/' URL scheme. Update the tests to use this new bundle URL and remove the dependency on an external server for testing. * MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: * MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard: * MobileMiniBrowser/MobileMiniBrowser/Info.plist: * MobileMiniBrowser/MobileMiniBrowser/main.m: * MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h. * MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.m. (-[AppDelegate application:didFinishLaunchingWithOptions:]): Manually instantiate the main view controller from the framework's bundle. * MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json. * MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/Main.storyboard. * MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist: Added. * MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h. * MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.h. * MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.m. * MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.h. * MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.m. (+[NSURL __bundleURLForFileURL:bundle:]): Add utility method. (+[NSURL __fileURLForBundleURL:bundle:]): Ditto. (-[WebViewController navigateTo:]): Support loading "bundle:/" URLs which are really just "file:" URLs pointing to the framework's resources directory. (-[WebViewController observeValueForKeyPath:ofObject:change:context:]): Ditto. * MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m: (-[MobileMiniBrowserUITests testBasicVideoPlayback]): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205353 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Tools/ChangeLog | 39 ++++ .../MobileMiniBrowser/Configurations/Base.xcconfig | 65 +++--- .../Configurations/DebugRelease.xcconfig | 4 - .../Configurations/MobileMiniBrowser.xcconfig | 1 - .../MobileMiniBrowser.xcodeproj/project.pbxproj | 260 ++++++++++++++++++--- .../Base.lproj/LaunchScreen.storyboard | 30 ++- .../MobileMiniBrowser/MobileMiniBrowser/Info.plist | 2 - Tools/MobileMiniBrowser/MobileMiniBrowser/main.m | 3 +- .../AppDelegate.h | 0 .../AppDelegate.m | 15 +- .../AppIcon.appiconset/Contents.json | 0 .../Base.lproj/Main.storyboard | 36 ++- .../MobileMiniBrowserFramework/Info.plist | 24 ++ .../MobileMiniBrowserFramework/MobileMiniBrowser.h | 26 +++ .../Resources/index.html | 10 + .../Resources/looping.html | 9 + .../MobileMiniBrowserFramework/Resources/test.mp4 | Bin 0 -> 167758 bytes .../TabViewController.h | 0 .../TabViewController.m | 0 .../WebViewController.h | 0 .../WebViewController.m | 42 +++- .../MobileMiniBrowserUITests.m | 12 +- 22 files changed, 446 insertions(+), 132 deletions(-) rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/AppDelegate.h (100%) rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/AppDelegate.m (87%) rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/Base.lproj/Main.storyboard (85%) create mode 100644 Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist create mode 100644 Tools/MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h create mode 100644 Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/index.html create mode 100644 Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/looping.html create mode 100644 Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/test.mp4 rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/TabViewController.h (100%) rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/TabViewController.m (100%) rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/WebViewController.h (100%) rename Tools/MobileMiniBrowser/{MobileMiniBrowser => MobileMiniBrowserFramework}/WebViewController.m (79%) diff --git a/Tools/ChangeLog b/Tools/ChangeLog index 5ee887b..6fb5818 100644 --- a/Tools/ChangeLog +++ b/Tools/ChangeLog @@ -1,3 +1,42 @@ +2016-08-31 Jer Noble + + Refactor MobileMiniBrowser into an application framework to allow external XCTesting + https://bugs.webkit.org/show_bug.cgi?id=161462 + + Reviewed by Eric Carlson. + + XCTest targets need to be in the same project as the application which they're testing. To facilitate + having external projects with XCTest targets, move the application's implementation into a framework + that can be included with a bare-bones application shell for testing. + + Simultaneously, add the ability to load files from within the new framework's bundle by using a + 'bundle:/' URL scheme. Update the tests to use this new bundle URL and remove the dependency on + an external server for testing. + + * MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: + * MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard: + * MobileMiniBrowser/MobileMiniBrowser/Info.plist: + * MobileMiniBrowser/MobileMiniBrowser/main.m: + * MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h. + * MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.m. + (-[AppDelegate application:didFinishLaunchingWithOptions:]): Manually instantiate the main view + controller from the framework's bundle. + * MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json. + * MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/Main.storyboard. + * MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist: Added. + * MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h. + * MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.h. + * MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.m. + * MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.h. + * MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.m. + (+[NSURL __bundleURLForFileURL:bundle:]): Add utility method. + (+[NSURL __fileURLForBundleURL:bundle:]): Ditto. + (-[WebViewController navigateTo:]): Support loading "bundle:/" URLs which are really just "file:" URLs + pointing to the framework's resources directory. + (-[WebViewController observeValueForKeyPath:ofObject:change:context:]): Ditto. + * MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m: + (-[MobileMiniBrowserUITests testBasicVideoPlayback]): + 2016-09-02 Jonathan Bedard Fix --no-sample-on-timeout command line argument diff --git a/Tools/MobileMiniBrowser/Configurations/Base.xcconfig b/Tools/MobileMiniBrowser/Configurations/Base.xcconfig index f88c726..ed80413 100644 --- a/Tools/MobileMiniBrowser/Configurations/Base.xcconfig +++ b/Tools/MobileMiniBrowser/Configurations/Base.xcconfig @@ -23,38 +23,35 @@ #include "../../../../Internal/Configurations/HaveInternalSDK.xcconfig" -SDKROOT = iphoneos; - -TARGETED_DEVICE_FAMILY = 1,2; - +USE_INTERNAL_SDK = $(USE_INTERNAL_SDK_$(CONFIGURATION)); +USE_INTERNAL_SDK_Production = YES; +USE_INTERNAL_SDK_Debug = $(HAVE_INTERNAL_SDK); +USE_INTERNAL_SDK_Release = $(HAVE_INTERNAL_SDK); + +CLANG_CXX_LANGUAGE_STANDARD = gnu++14; +CLANG_CXX_LIBRARY = libc++; +CLANG_WARN_CXX0X_EXTENSIONS = NO; +HEADER_SEARCH_PATHS = $(BUILT_PRODUCTS_DIR)/usr/local/include; DEBUG_INFORMATION_FORMAT = dwarf-with-dsym; - -GCC_C_LANGUAGE_STANDARD = gnu99; - -GCC_PREPROCESSOR_DEFINITIONS = $(ENGINEERING_BUILD_DEFINES) $(inherited); - -GCC_TREAT_WARNINGS_AS_ERRORS = YES; - -CLANG_WARN_BOOL_CONVERSION = YES; -CLANG_WARN_CONSTANT_CONVERSION = YES; -CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; -CLANG_WARN_EMPTY_BODY = YES; -CLANG_WARN_ENUM_CONVERSION = YES; -CLANG_WARN_INT_CONVERSION = YES; -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; -CLANG_ENABLE_OBJC_ARC = YES; - -GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; -GCC_WARN_64_TO_32_BIT_CONVERSION = NO; -GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; -GCC_WARN_ABOUT_RETURN_TYPE = YES; -GCC_WARN_UNDECLARED_SELECTOR = YES; -GCC_WARN_UNINITIALIZED_AUTOS = YES; -GCC_WARN_UNUSED_FUNCTION = YES; -GCC_WARN_UNUSED_VARIABLE = YES; - -WARNING_CFLAGS = -Wall -Wundef -Wformat-security -Wimplicit-fallthrough -Wmissing-format-attribute -Wpointer-arith -Wexit-time-destructors -Wglobal-constructors -Woverriding-method-mismatch -Wmethod-signatures; - -OTHER_CFLAGS = -iframework $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks $(inherited); - -ALWAYS_SEARCH_USER_PATHS = NO; +PREBINDING = NO +GCC_C_LANGUAGE_STANDARD = gnu99 +GCC_ENABLE_CPP_EXCEPTIONS = NO; +GCC_ENABLE_CPP_RTTI = NO; +GCC_PRECOMPILE_PREFIX_HEADER = YES +GCC_TREAT_WARNINGS_AS_ERRORS = YES +GCC_VERSION = com.apple.compilers.llvm.clang.1_0; +GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO +GCC_WARN_UNUSED_FUNCTION = YES +GCC_WARN_UNUSED_VARIABLE = YES +GCC_WARN_64_TO_32_BIT_CONVERSION[arch=arm64] = NO; +GCC_WARN_64_TO_32_BIT_CONVERSION[arch=x86_64] = NO; +WARNING_CFLAGS = -Wall -W -Wno-unused-parameter -Wundef + +SUPPORTED_PLATFORMS = iphoneos iphonesimulator; +SDKROOT = iphonesimulator; + +OTHER_CFLAGS = $(ASAN_OTHER_CFLAGS); +OTHER_CPLUSPLUSFLAGS = $(ASAN_OTHER_CPLUSPLUSFLAGS); +OTHER_LDFLAGS = $(ASAN_OTHER_LDFLAGS); + +CODE_SIGN_IDENTITY = -; diff --git a/Tools/MobileMiniBrowser/Configurations/DebugRelease.xcconfig b/Tools/MobileMiniBrowser/Configurations/DebugRelease.xcconfig index 998f198..8e441de 100644 --- a/Tools/MobileMiniBrowser/Configurations/DebugRelease.xcconfig +++ b/Tools/MobileMiniBrowser/Configurations/DebugRelease.xcconfig @@ -28,7 +28,3 @@ ARCHS = $(ARCHS_STANDARD_32_64_BIT); ONLY_ACTIVE_ARCH = YES; GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; - -SDKROOT = $(SDKROOT_$(PLATFORM_NAME)); -SDKROOT_iphoneos = $(SDKROOT); -SDKROOT_iphonesimulator = $(SDKROOT); diff --git a/Tools/MobileMiniBrowser/Configurations/MobileMiniBrowser.xcconfig b/Tools/MobileMiniBrowser/Configurations/MobileMiniBrowser.xcconfig index 5117d63..f329577 100644 --- a/Tools/MobileMiniBrowser/Configurations/MobileMiniBrowser.xcconfig +++ b/Tools/MobileMiniBrowser/Configurations/MobileMiniBrowser.xcconfig @@ -22,4 +22,3 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRODUCT_NAME = MiniBrowser -EXCLUDED_SOURCE_FILE_NAMES[sdk=macosx*] = * diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj b/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj index c619477..9e963e2 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj +++ b/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj @@ -8,14 +8,27 @@ /* Begin PBXBuildFile section */ CD1DAF971D709E3600017CF0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAF961D709E3600017CF0 /* main.m */; }; - CD1DAF9A1D709E3600017CF0 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAF991D709E3600017CF0 /* AppDelegate.m */; }; - CD1DAFA01D709E3600017CF0 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAF9E1D709E3600017CF0 /* Main.storyboard */; }; - CD1DAFA21D709E3600017CF0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAFA11D709E3600017CF0 /* Assets.xcassets */; }; CD1DAFA51D709E3600017CF0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAFA31D709E3600017CF0 /* LaunchScreen.storyboard */; }; CD1DAFB01D709E3600017CF0 /* MobileMiniBrowserUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFAF1D709E3600017CF0 /* MobileMiniBrowserUITests.m */; }; - CD1DAFBE1D709EF200017CF0 /* TabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBB1D709EF200017CF0 /* TabViewController.m */; }; - CD1DAFBF1D709EF200017CF0 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBD1D709EF200017CF0 /* WebViewController.m */; }; CD1DAFC21D70E12D00017CF0 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD1DAFC11D70E12D00017CF0 /* WebKit.framework */; }; + CD498B421D76348000681FA7 /* MobileMiniBrowser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */; }; + CD498B431D76348000681FA7 /* MobileMiniBrowser.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CD498B4A1D763D4800681FA7 /* MobileMiniBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = CD498B481D7634C700681FA7 /* MobileMiniBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD498B4B1D763D7100681FA7 /* TabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBB1D709EF200017CF0 /* TabViewController.m */; }; + CD498B4C1D763D7100681FA7 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBD1D709EF200017CF0 /* WebViewController.m */; }; + CD498B4D1D763D7100681FA7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAF991D709E3600017CF0 /* AppDelegate.m */; }; + CD498B4E1D763D7600681FA7 /* TabViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1DAFBA1D709EF200017CF0 /* TabViewController.h */; }; + CD498B4F1D763D7600681FA7 /* WebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1DAFBC1D709EF200017CF0 /* WebViewController.h */; }; + CD498B501D763D7600681FA7 /* AppDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1DAF981D709E3600017CF0 /* AppDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD498B511D763D7F00681FA7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAF9E1D709E3600017CF0 /* Main.storyboard */; }; + CD498B521D763D8800681FA7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAFA11D709E3600017CF0 /* Assets.xcassets */; }; + CD498B531D763D9300681FA7 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD498B471D7634C700681FA7 /* Info.plist */; }; + CD4DEEE51D78C6FF00625986 /* Base.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CD4DEEE21D78C6FF00625986 /* Base.xcconfig */; }; + CD4DEEE61D78C6FF00625986 /* DebugRelease.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CD4DEEE31D78C6FF00625986 /* DebugRelease.xcconfig */; }; + CD4DEEE71D78C6FF00625986 /* MobileMiniBrowser.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CD4DEEE41D78C6FF00625986 /* MobileMiniBrowser.xcconfig */; }; + CDA985191D76483400EBC399 /* test.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = CDA985151D76477900EBC399 /* test.mp4 */; }; + CDA9851A1D76483400EBC399 /* index.html in Resources */ = {isa = PBXBuildFile; fileRef = CDA985131D76474100EBC399 /* index.html */; }; + CDA9851B1D76483400EBC399 /* looping.html in Resources */ = {isa = PBXBuildFile; fileRef = CDA985171D7647CD00EBC399 /* looping.html */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -26,8 +39,29 @@ remoteGlobalIDString = CD1DAF911D709E3600017CF0; remoteInfo = MobileMiniBrowser; }; + CD498B401D76348000681FA7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CD1DAF8A1D709E3600017CF0 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CD498B3A1D76348000681FA7; + remoteInfo = MobileMiniBrowser; + }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + CD498B231D76341700681FA7 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CD498B431D76348000681FA7 /* MobileMiniBrowser.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ CD1DAF921D709E3600017CF0 /* MobileMiniBrowser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MobileMiniBrowser.app; sourceTree = BUILT_PRODUCTS_DIR; }; CD1DAF961D709E3600017CF0 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; @@ -45,6 +79,15 @@ CD1DAFBC1D709EF200017CF0 /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewController.h; sourceTree = ""; }; CD1DAFBD1D709EF200017CF0 /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebViewController.m; sourceTree = ""; }; CD1DAFC11D70E12D00017CF0 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = "../../WebKitBuild/Debug-iphonesimulator/WebKit.framework"; sourceTree = ""; }; + CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MobileMiniBrowser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CD498B471D7634C700681FA7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CD498B481D7634C700681FA7 /* MobileMiniBrowser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobileMiniBrowser.h; sourceTree = ""; }; + CD4DEEE21D78C6FF00625986 /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Base.xcconfig; path = Configurations/Base.xcconfig; sourceTree = ""; }; + CD4DEEE31D78C6FF00625986 /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = DebugRelease.xcconfig; path = Configurations/DebugRelease.xcconfig; sourceTree = ""; }; + CD4DEEE41D78C6FF00625986 /* MobileMiniBrowser.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = MobileMiniBrowser.xcconfig; path = Configurations/MobileMiniBrowser.xcconfig; sourceTree = ""; }; + CDA985131D76474100EBC399 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = index.html; path = Resources/index.html; sourceTree = ""; }; + CDA985151D76477900EBC399 /* test.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; name = test.mp4; path = Resources/test.mp4; sourceTree = ""; }; + CDA985171D7647CD00EBC399 /* looping.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = looping.html; path = Resources/looping.html; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -52,6 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + CD498B421D76348000681FA7 /* MobileMiniBrowser.framework in Frameworks */, CD1DAFC21D70E12D00017CF0 /* WebKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -63,13 +107,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CD498B371D76348000681FA7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ CD1DAF891D709E3600017CF0 = { isa = PBXGroup; children = ( - CD1DAF941D709E3600017CF0 /* MobileMiniBrowser */, + CD4DEEE11D78C6F400625986 /* Configurations */, + CD1DAF941D709E3600017CF0 /* MobileMiniBrowser App */, + CD498B3C1D76348000681FA7 /* MobileMiniBrowser Framework */, CD1DAFAE1D709E3600017CF0 /* MobileMiniBrowserUITests */, CD1DAF931D709E3600017CF0 /* Products */, CD1DAFC01D70E12D00017CF0 /* Frameworks */, @@ -81,34 +134,20 @@ children = ( CD1DAF921D709E3600017CF0 /* MobileMiniBrowser.app */, CD1DAFAB1D709E3600017CF0 /* MobileMiniBrowserUITests.xctest */, + CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */, ); name = Products; sourceTree = ""; }; - CD1DAF941D709E3600017CF0 /* MobileMiniBrowser */ = { + CD1DAF941D709E3600017CF0 /* MobileMiniBrowser App */ = { isa = PBXGroup; children = ( - CD1DAFBA1D709EF200017CF0 /* TabViewController.h */, - CD1DAFBB1D709EF200017CF0 /* TabViewController.m */, - CD1DAFBC1D709EF200017CF0 /* WebViewController.h */, - CD1DAFBD1D709EF200017CF0 /* WebViewController.m */, - CD1DAF981D709E3600017CF0 /* AppDelegate.h */, - CD1DAF991D709E3600017CF0 /* AppDelegate.m */, - CD1DAF9E1D709E3600017CF0 /* Main.storyboard */, - CD1DAFA11D709E3600017CF0 /* Assets.xcassets */, - CD1DAFA31D709E3600017CF0 /* LaunchScreen.storyboard */, CD1DAFA61D709E3600017CF0 /* Info.plist */, - CD1DAF951D709E3600017CF0 /* Supporting Files */, - ); - path = MobileMiniBrowser; - sourceTree = ""; - }; - CD1DAF951D709E3600017CF0 /* Supporting Files */ = { - isa = PBXGroup; - children = ( + CD1DAFA31D709E3600017CF0 /* LaunchScreen.storyboard */, CD1DAF961D709E3600017CF0 /* main.m */, ); - name = "Supporting Files"; + name = "MobileMiniBrowser App"; + path = MobileMiniBrowser; sourceTree = ""; }; CD1DAFAE1D709E3600017CF0 /* MobileMiniBrowserUITests */ = { @@ -128,8 +167,61 @@ name = Frameworks; sourceTree = ""; }; + CD498B3C1D76348000681FA7 /* MobileMiniBrowser Framework */ = { + isa = PBXGroup; + children = ( + CDA985121D76471700EBC399 /* Resources */, + CD1DAF981D709E3600017CF0 /* AppDelegate.h */, + CD1DAF991D709E3600017CF0 /* AppDelegate.m */, + CD1DAFA11D709E3600017CF0 /* Assets.xcassets */, + CD498B471D7634C700681FA7 /* Info.plist */, + CD1DAF9E1D709E3600017CF0 /* Main.storyboard */, + CD498B481D7634C700681FA7 /* MobileMiniBrowser.h */, + CD1DAFBA1D709EF200017CF0 /* TabViewController.h */, + CD1DAFBB1D709EF200017CF0 /* TabViewController.m */, + CD1DAFBC1D709EF200017CF0 /* WebViewController.h */, + CD1DAFBD1D709EF200017CF0 /* WebViewController.m */, + ); + name = "MobileMiniBrowser Framework"; + path = MobileMiniBrowserFramework; + sourceTree = SOURCE_ROOT; + }; + CD4DEEE11D78C6F400625986 /* Configurations */ = { + isa = PBXGroup; + children = ( + CD4DEEE21D78C6FF00625986 /* Base.xcconfig */, + CD4DEEE31D78C6FF00625986 /* DebugRelease.xcconfig */, + CD4DEEE41D78C6FF00625986 /* MobileMiniBrowser.xcconfig */, + ); + name = Configurations; + sourceTree = ""; + }; + CDA985121D76471700EBC399 /* Resources */ = { + isa = PBXGroup; + children = ( + CDA985151D76477900EBC399 /* test.mp4 */, + CDA985131D76474100EBC399 /* index.html */, + CDA985171D7647CD00EBC399 /* looping.html */, + ); + name = Resources; + sourceTree = ""; + }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + CD498B381D76348000681FA7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CD498B4A1D763D4800681FA7 /* MobileMiniBrowser.h in Headers */, + CD498B4F1D763D7600681FA7 /* WebViewController.h in Headers */, + CD498B4E1D763D7600681FA7 /* TabViewController.h in Headers */, + CD498B501D763D7600681FA7 /* AppDelegate.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ CD1DAF911D709E3600017CF0 /* MobileMiniBrowser */ = { isa = PBXNativeTarget; @@ -138,10 +230,12 @@ CD1DAF8E1D709E3600017CF0 /* Sources */, CD1DAF8F1D709E3600017CF0 /* Frameworks */, CD1DAF901D709E3600017CF0 /* Resources */, + CD498B231D76341700681FA7 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( + CD498B411D76348000681FA7 /* PBXTargetDependency */, ); name = MobileMiniBrowser; productName = MobileMiniBrowser; @@ -166,6 +260,24 @@ productReference = CD1DAFAB1D709E3600017CF0 /* MobileMiniBrowserUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; + CD498B3A1D76348000681FA7 /* MobileMiniBrowser.framework */ = { + isa = PBXNativeTarget; + buildConfigurationList = CD498B441D76348000681FA7 /* Build configuration list for PBXNativeTarget "MobileMiniBrowser.framework" */; + buildPhases = ( + CD498B361D76348000681FA7 /* Sources */, + CD498B371D76348000681FA7 /* Frameworks */, + CD498B381D76348000681FA7 /* Headers */, + CD498B391D76348000681FA7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MobileMiniBrowser.framework; + productName = MobileMiniBrowser; + productReference = CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -182,6 +294,10 @@ CreatedOnToolsVersion = 8.0; TestTargetID = CD1DAF911D709E3600017CF0; }; + CD498B3A1D76348000681FA7 = { + CreatedOnToolsVersion = 8.0; + ProvisioningStyle = Automatic; + }; }; }; buildConfigurationList = CD1DAF8D1D709E3600017CF0 /* Build configuration list for PBXProject "MobileMiniBrowser" */; @@ -199,6 +315,7 @@ targets = ( CD1DAF911D709E3600017CF0 /* MobileMiniBrowser */, CD1DAFAA1D709E3600017CF0 /* MobileMiniBrowserUITests */, + CD498B3A1D76348000681FA7 /* MobileMiniBrowser.framework */, ); }; /* End PBXProject section */ @@ -209,8 +326,9 @@ buildActionMask = 2147483647; files = ( CD1DAFA51D709E3600017CF0 /* LaunchScreen.storyboard in Resources */, - CD1DAFA21D709E3600017CF0 /* Assets.xcassets in Resources */, - CD1DAFA01D709E3600017CF0 /* Main.storyboard in Resources */, + CD4DEEE61D78C6FF00625986 /* DebugRelease.xcconfig in Resources */, + CD4DEEE71D78C6FF00625986 /* MobileMiniBrowser.xcconfig in Resources */, + CD4DEEE51D78C6FF00625986 /* Base.xcconfig in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -221,6 +339,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CD498B391D76348000681FA7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CDA9851A1D76483400EBC399 /* index.html in Resources */, + CD498B521D763D8800681FA7 /* Assets.xcassets in Resources */, + CD498B511D763D7F00681FA7 /* Main.storyboard in Resources */, + CDA9851B1D76483400EBC399 /* looping.html in Resources */, + CD498B531D763D9300681FA7 /* Info.plist in Resources */, + CDA985191D76483400EBC399 /* test.mp4 in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -228,10 +359,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CD1DAFBE1D709EF200017CF0 /* TabViewController.m in Sources */, - CD1DAF9A1D709E3600017CF0 /* AppDelegate.m in Sources */, CD1DAF971D709E3600017CF0 /* main.m in Sources */, - CD1DAFBF1D709EF200017CF0 /* WebViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -243,6 +371,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CD498B361D76348000681FA7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CD498B4B1D763D7100681FA7 /* TabViewController.m in Sources */, + CD498B4C1D763D7100681FA7 /* WebViewController.m in Sources */, + CD498B4D1D763D7100681FA7 /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -251,6 +389,11 @@ target = CD1DAF911D709E3600017CF0 /* MobileMiniBrowser */; targetProxy = CD1DAFAC1D709E3600017CF0 /* PBXContainerItemProxy */; }; + CD498B411D76348000681FA7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CD498B3A1D76348000681FA7 /* MobileMiniBrowser.framework */; + targetProxy = CD498B401D76348000681FA7 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -275,6 +418,7 @@ /* Begin XCBuildConfiguration section */ CD1DAFB21D709E3600017CF0 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CD4DEEE31D78C6FF00625986 /* DebugRelease.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -321,6 +465,7 @@ }; CD1DAFB31D709E3600017CF0 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CD4DEEE31D78C6FF00625986 /* DebugRelease.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -361,23 +506,25 @@ }; CD1DAFB51D709E3600017CF0 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CD4DEEE41D78C6FF00625986 /* MobileMiniBrowser.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = MobileMiniBrowser/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowser; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = MobileMiniBrowser; }; name = Debug; }; CD1DAFB61D709E3600017CF0 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CD4DEEE41D78C6FF00625986 /* MobileMiniBrowser.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = MobileMiniBrowser/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowser; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = MobileMiniBrowser; }; name = Release; }; @@ -403,6 +550,46 @@ }; name = Release; }; + CD498B451D76348000681FA7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CD4DEEE41D78C6FF00625986 /* MobileMiniBrowser.xcconfig */; + buildSettings = { + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = MobileMiniBrowser/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowserFramework; + PRODUCT_NAME = MobileMiniBrowser; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CD498B461D76348000681FA7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CD4DEEE41D78C6FF00625986 /* MobileMiniBrowser.xcconfig */; + buildSettings = { + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = MobileMiniBrowser/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowserFramework; + PRODUCT_NAME = MobileMiniBrowser; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -433,6 +620,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + CD498B441D76348000681FA7 /* Build configuration list for PBXNativeTarget "MobileMiniBrowser.framework" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CD498B451D76348000681FA7 /* Debug */, + CD498B461D76348000681FA7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = CD1DAF8A1D709E3600017CF0 /* Project object */; diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard b/Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard index 06eb351..b383b8a 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard +++ b/Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard @@ -1,25 +1,25 @@ - - + + - + + - + - + - - + @@ -33,27 +33,23 @@ - + - - + - - + - - - - + @@ -72,7 +68,7 @@ - + diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/Info.plist b/Tools/MobileMiniBrowser/MobileMiniBrowser/Info.plist index 2414986..3461bf6 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowser/Info.plist +++ b/Tools/MobileMiniBrowser/MobileMiniBrowser/Info.plist @@ -22,8 +22,6 @@ UILaunchStoryboardName LaunchScreen - UIMainStoryboardFile - Main UIRequiredDeviceCapabilities armv7 diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m b/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m index f8aa61d..ec295ac 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m +++ b/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m @@ -23,8 +23,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#import "AppDelegate.h" -#import +#import int main(int argc, char * argv[]) { diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.h similarity index 100% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.h diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.m b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m similarity index 87% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.m rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m index b2ca617..8d6cf4a 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.m +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m @@ -25,16 +25,25 @@ #import "AppDelegate.h" -@interface AppDelegate () +#import "WebViewController.h" +@interface AppDelegate () @end @implementation AppDelegate - - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. + UIStoryboard *frameworkMainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle bundleForClass:[AppDelegate class]]]; + WebViewController *viewController = [frameworkMainStoryboard instantiateInitialViewController]; + if (!viewController) + return NO; + + if (!self.window) + self.window = [[UIWindow alloc] init]; + self.window.rootViewController = viewController; + [self.window makeKeyAndVisible]; + return YES; } diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/Main.storyboard b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard similarity index 85% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/Main.storyboard rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard index 9c90e36..3a79393 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/Main.storyboard +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard @@ -1,8 +1,9 @@ - - + + - + + @@ -14,11 +15,10 @@ - + - - + @@ -48,14 +48,12 @@ - + - - + - - + @@ -65,7 +63,7 @@ - - - - + @@ -95,12 +91,12 @@ - - + + - + @@ -135,13 +131,13 @@ - + - + diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist new file mode 100644 index 0000000..fbe1e6b --- /dev/null +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h new file mode 100644 index 0000000..11c823e --- /dev/null +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2016 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/index.html b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/index.html new file mode 100644 index 0000000..cb7eb98 --- /dev/null +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/index.html @@ -0,0 +1,10 @@ + + + + Test Resources + + + + + + diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/looping.html b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/looping.html new file mode 100644 index 0000000..e09affd --- /dev/null +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/looping.html @@ -0,0 +1,9 @@ + + + + Test Resources + + + + + diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/test.mp4 b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Resources/test.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..bb15fd4bc5ed7fcf11d4ffe30968bc3549daa97c GIT binary patch literal 167758 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 z zEJ;r)#xZIehjb_0Dt(oX|Nfocb4km|=>2mFA5${UXYedErkJNP^DcKJgFsyQv4w%N z@Lc=y2TXi2;J}5{edjoSls$;$*DkTT-;gbAdP+S%PV)5b)df;sck*l+u~|EvB}YQi zA9-Gnc>iRlR#niMOTFyGzH=#RxtR*54yC5t4-KBF{V4WyCqha#j`EMRnz>LCWgMuRWXp-rsp9Pfs@2}&gynNpV1hA$>+$afhbXM5lMZ$9aEuCg{=b zBl+(*5m@bGR3JOq?yfyaan2M8??@ZwpNy)(A}ur%rx=;&#dmiuq{CdEd8Fwunt}Wm z1bcH`%YqF{kxQRnSl+Gb!2TWghc0028Z&Cx64oG`oA+P$w(@^{iFoTvqWyRqN97p& zEU94rM4}a;Po=A5qWHX?^o0>(qvR*=_4l^F)80BczGa=O{8l?8t^gwM{~V~~`Mk3y zhp)XfO87RC8lF$+H#OvD2^F7@2u=6dQAF76?OFe^K{8{_f|2VUin)k8fuZPdyT<9j z=!@-pyEg6bS>Q0dvn6fd>}#+Vr;48_F_h%>akN+lj!tElzMHKeHOrV4TE93jZ9u%C zu~Rs9`lXMH5K40rW)s%f75-KA{cp63YjvW+G%V8S?68yR%jzKR_z@6@(kG? zA;*QUQojSwVid1ldt#zNu&b@S8S&5l`e|v)9Hj9jl@h=v`U2UDIyU%Y5bnsvy~l7k z1u$l)V*;Y(2vU;>Ps=eFg1TQmh)HT#b{{h%Ds?Lw6#gXg-*Vp~xi93($o$#&w*x|i zWvSBKqE*p1bROO}`f^pQ0lVT`LP4n>ynt8uroa8Y*xj{ez0!|NeztL*;yq(Co2=w; zcJO;m)+Nue>f9j73-pkB{U2ME&8%M9K1Gl&yaSZjxFB@ld|3c??jeSAUkM<2Zee>4c<PwdwU}HNPsH$jsH{v2QZFhdjFYEURwdveEoPJ_eFfoy}B6{-(B_MOTaSPD?XN z_WcxDxV7-$2ja)|n~v`L;Kd#4k-`+WUz%4_|h?YaVotR z^2rf(Qc-T!UCkxNNi(?jceZRJ2P$nn(QC@)n|IWvBhkQsF4z^{LR}rY`Nqgc%6x)8 zqbu`SrdOo+Fn{j$#N?#QkD}roktDo^_SINp8m7Y13Noy{7F2NQ? zAMfzaosE$CEP5YlF~{nR<(P`=i6>awZ#|{Rnc}}YFCv2T&Ett4-L9`*T!xI3Cv-n8 zM8${j+xotg6)*H=6L?*w#rdMxvq@^)5o&Y)XDPI_O-t+-2TC~or_xE z>nd=qsPRRKfGM|#wo@TPDe@slV*aDgZJbb;LtRH$d0Pd!{7FNVT zA(Ir2o+fLL%%KR(i2I~Ji&M&uG})~9;)Ka|>^H|EvC7EcoZTeu7w5uiZv`KC zV;`Xsqkqwp-Ws6kd|5| z4hjv~->u8(RxIAE*iUH`I=`ds$E{n2*s2}=I}XNo=a78fcxJ1U21?RRdpm>*b5!nO z1j5o6n-x;onrl0-(fbWl%6f>b9yY8G_tfD~O_Kn7D^2g7vvyVXhuGGIP^w|A1GDe_ z);Da~J4Rd#65yqh6+35kNnUN^u|Ij#mL}Q}BUr0K@BSVcHRcT?#fnS)@wo(89Q%piGq=y*2tuyP6d(bs_Ws+kZ#|}E>*S{4icRclce-;l3gr!o8E4kGk1<=_rXGbw~dE_N+|us z`z(A$=jc`G;jj~R%3JFuU4wm>z{%nhwV(Iz-sJtn4Dk~b3GSSrT4knRg4aCcJzdqB zzOguyA?1-rj0-gy5i$~6*r=e*8c}F76dpb`!_OlQ9S2fL< z01Hp%N6Wm>HScGKIgK=QS7J|8w^)*SiAL>xKVGV{oswq8C2uvpVDCwq+pUyA%{J>S zlHBJ>dUE$L%V+3ixzW|pkt+R_F8GknZ=$@9C#V*Bik)94N~BdS&nWo~+qJ~ljIoQx zz8in8|Em_y&FT^(23u^TG~@8k+E6j5%jIbkf1Ty6SUbKkv){~n>l5Y8v7vBoeq6h-VqeAgp=T{Jn zPrshap6n=NJ&v^{+Jj@{hx<_+vK0CFzJeFV)2#5(r$5DX_C-;Uxx*ABE*DP`$dgIp z?Ks(jM4gwY9DA&e>!-!;W59SIGMF0>Im8HlgcOLiJ9QvP^fK~>9~%K8bU zWo!S*x%ji81ex?>0zx8+y&Qq8b28-qf|JZ+_4iq&2!kIT{Qb*U9C?rcJEHI6jAz;S zr&U)+e>Js1L3HEN5viIZ zvV;=zEp4eDtUHfJ8Ez8iDZSE)R0h#y?WcWdq2etIYon0kz+hrJcC%!pfu(y#u~%eo zfW%&8Rd?zH2iA7m7&wdbj$BR)wY6^awqcy`u_^y$jQ;Nn;UKU*_3tHkHMbCkkgDOV zAq1&Q0l6bVCFhO0so3Z`QxMxXp4DQ=(c*Sv&uoDDl47fNTL#HibO~$|36zyCl(elU zoqCz5mH|zTFpeNxCL%Ap;E_;~)s-bCMvnWx=ScUz>Cwi1iP#3kS3TYhmW|Ll;)S(yiF;Frvs!nKVP}4K#S3dRt+0P=fao&ENF}~>Owm*}6K*K>& zJyvK0v0hm9*qzkb`bLK)@k77!b{U7Phfz!Z-0R+G{z(d1y?JqpfJB_hlIG2|F}Zdg z)kz@l+A)5;Z1h~WbijjL$>2=B(zt>ZnW408eG!8}q z2%UvCXIkdy6_A14TNE1ZVODfm!xi2LI5ar{a5ORz$ZI{uJL(Hg1y4|z9Dz>jrkeQL z6G3()4Ta=gY%0aqu&27g(Q+*rK=~<>ob~PZ5*-w9{&GX1zvv&Ug#2SG7pnfTqfh^+ z%cg%)m->4|!1d3mqaYKX|4Ws>bcw=z{57J#M*Rck@>U}Cmi#3o_5ZAHFeJ)H8C&G1 zR^rU(jB(~ubSdF4*qdPyf0O3rjFju+l##h#V8XXfy$Jc~O!zW``=lzj*9Y5Vy~<~>y1jDJ&JijYq3T`Yj~a@e{UBb9EsN-UFY`lx#bJA&iKq=7A2EkF zjuo8z)-aToB=_1fdq*v+<4mAu6suG+%{KO9c5R2dZUr(T)=IE@k`?lZ%*6Ig1vIFC zEwKMUxz2pBYhmU^kaKChs1+<4Lj3&Lrl*h6zsHIuq`pgrIdMEY*lUh4+Eo}#L|*IJ z?P3v!R+d(T4v5twl+tvvU2iwyR9-QUxOW9jlM5%Wr)y;BxgbMUl(9+j45>0C;3Sb` zP;h6RO=Pis8+D%2^5F~VQ@F?0t1pKHDmJjm4C|A{Dc>&0Ok4S#u!#$XbWc?Z-WI&E z_c>zoO6?LANp30DQJf!bsu^i9(nl7J^)hp3Qp0T zK2BY~<;L`(Ez*devYKvppv64GU$Q{D`EIcFy5Edx=0Ys(>5Ej$TaOL1>1&hpADW-- zfAVSnN4p~v#2mr`C0OM4Gr~C0XPmX6qQE}+S>!k<6a8vk?avqOdeNKz{~zq{>;Yu} ziA}Pt;!-PfHD*TfTH;b^X0&(?OWZa9RVH9kCNqr^UwJ(J^l<;U++L$qgGsH#RyC0c z5|_1ZNq9Cg=4g@Do%m%xwQ;0y2pJ_e6~Rj9dnB@vBNs=H5$DubGT^%lUcr1vXh_$s@cVdmH*gJ<&_S?E~cn%G+KMS`%^TQ3pJ74(V>PHk0+bPdV1v@ zwk1qTudWMC7G&&7xcB@X8Gk8|m3?6Adge4&o1q-n?Kv4Hp&zeQ@}$E$)M>)QZh}_E z!!{HCLfu{CtsM)2mY(@D6Ha{<3(x2KwZFn9c3yX>Y0vN&zTQpa=M zy7w!oZNo9qMX9yL7GbHxiQ+YvJ$lC;nCKEqnVwC^M7@b^Psr(>TOaNutxr#V)tT%2 zx$U8o({UruYsXGzta|wchnypCVb$|ab@w45@S;kW$;a&1{oGV`ih7=W)Zo@RoX0}k zM?y>Faa$R3olXRs@kQQo59j;Vqy2B}O;B`Xtq0rC=g?ba&b6CSwbYZ7jT{ z)9qW#18co3if;4qeisQjUA(!`kcZ7rrBhvNangf2kS_44e~2A(HKpDihtudDRj)bv zMGYPYKgFz<9a+>pBw~HV#(E*t!X~-4@!5*bXvyI8#F029i;Z7B2$P%TZ+^YWIGU~{ zJApA;9QC-dH)i%!*_zRA&d0uv8riK!p76C)`7+!eF*>W-oM2YT!q)I&C&wM`YCaZo z!)H<@ILbY)os40@(v_dp&%EZ%cO5=y5c|$qz&IgfK2+v={?63fTYMiG$;1&!-jS#8 z>{{Q0w2|+3D-JCT9It5XW%BL6qSNz|O}%5MqZV}=IWiKoG9x2Z>4;l6{?6ni@=$j| zHvlt^kSgg-8JBtyccvH3#G72jQMBq!Rm{kpIsSvFg>OI1Jn?gSwWJro6er3o^KmF?BFH;w>ZBi@{(MW(VdQ-@wCfH53PK7@+ zeZsOAkoh$TE;fx*Y`?73EUpTY>hW$#MhO4j^>#7-x5^Y1TS$Xt(~;3ZWZFJ!$=xP{Ozi;2!yG;^=8I3cxH z^Fi)K18jnObxCg0D}lqVf;+bBl^aez6`o|L`bo+|;bmVZkOYm)*1#TQdbFjvgi^`H zk%KR3wL-p;a@JF}M){NJqDpHx>u~#83ZkB+8x{QUKCOW{_ThW@Xj$~y50(#&`YIv5 z#FybZ$)O~h)&b(_E`fGT+0=2639?SAb7^=wE%y#0A*D7W^* zcOQosl9PlL@~Z1q)$1DUH+{}}8g48=i;pvuBZ!bBqSE-n8PNp`Ul;YpXI4JRDothf z_^H3Qf#gOPT98HX;|nftA@?v&5qFNq0ZNRW(E1~9?^_IqBU3AqJxY(f`hsCW2XPDL zE)UvGDIIeY1Y}|~F@_}Krm#;QspQ_-8+4vIYVtX|VzhK&Zs;uXTalK76&a&?PwCgS zrk&*tKS>}HIJapeJW^OVVLAe#M_kvhwX_;2AtT}R46_8*5dk)ZPJRBNmztNe`Vhi& z-S78-u#x*ukB9AfQQ`?_z}H^bpUJ`MaSHtRIPo59XhOzjCY<+)JliM@1M|*PeE!NJ zCIZ`5S(TQC`uGevH4&*C55nx26daUek_KK&q1l3832|FY^vbX;Iq-3x2MsH&5aL9M zpUQ6U>TTrYS(@P_tEcW2k|>A^Hr%>%`>Gpn2e-jLN#Jubd-g*MXA-LQlBXFAF75 z_02Bpu3Ez-x@Lgt#Nt?MpX%B1b2oe`2Rl>*31E;4Dz>j#eTCbL2ofp6o+^SHSJHf3 zoz1y!_1xonT)%_tb+bmEo*fVje)vw}An`<(KV8u;ivi!Fab|}kqI2bCAptpPg))?Y zkfp02lVcEfku;<<6iqw2fK2)K)?}p68JQXvO zzh@XBHpyjXo%n`Wy{JCXQm z%d0Ilq1@mrRF(>tEEV|mqN|{LnAmYYB9;X2V#j@3PPs1OS<@i1di} z*o*+SXLegu4Ui}|Nm&`%6lPy9ME5$M8i!OuE*pe4zI(VvF|x0jvpkQX;)khmsDgq zzlL1fJ|3$9$<~TmwLlm;A0#0AEmi-V2pY0{HT)}j`HS2Ov5D(`)BUDYoJWU#DAp`W zK8bWhs;H1T8~2N0eyECHwocZGM1^)?v7AZ~{vvweEyBNs$XXsNO3(x_aa(|a=(*6m zX*)ENGeSDGE7-(H+2B^a0RJUuURK3|YY(iHB1+bJ_A*+0V zHRuL$n(3ERl(wj(@SIZhBBUI$JSc5qEN?8E#^E4l&LZ704`aJX6~@0{%dXMXZ)92! z_Mrcc(A-^%_NAH4u3q}5qIi6L0&+0EGb#B1Z&UI`<1OrKa&G^4X>4wFc1m_^>x~?Z zjCVF%L(@}7@JaH@=KCD>Ib_#nX`F4$Q=R0>=4#VFZMFHX21AauN_bTD5I6Y79VrD0 zjX5BRuXl*YXr`^6QyaJbN??e}=ekPzRY7!V=PF267K*|_W@lf-qnGHaxDA7nc(e7^ z2rJf_k*~e78hF12B+A1_^;<0-$j9cg-epc_P6h^K&iqL>mp+{#R4ijtw)sIa- zGkxhI2?;1Kru#uAx5hz3(JmaP-$$500zweKfRLZQVA2az9nHmSi>aZ>2zvrwj6DAt z3?ykF21#;^|3}*NBh)7fT$w90AbqXeGN6heQ03@)k29gd9fBK3qI#`6B%K~{f1@Zl zk>3f5trq8g#0FRKINhE`*e7b9h(A*knabjR*E>d_QxHaNuy51N!Yt;x;~cBE_aQy8 z2ZMXES;%v94?$^7qA%*;v}Dm(P)tIRnKbr6=FTJSd3w$T1==U=-L6|*;e{-aUuE6)AodulG zt#zq5%_kQ*Cr9R{rx$|z6+*G+6;m9J_Z+Eq7b16^{3&_a{^<4CthVi@Eg}d*bKw)= z+!`L1c0#MuBQ48p!h2^s|06%Ia;EFP-g@fPAu(xsyBdXv)JkfA58R#Od#-Mvy}ciK zW*vWO6rTHHF?}q?31OIV>g#)n4eQLb^_P6r_(DH%0eqzkQiS34H`z&7rbjDPg693B z3wc9N#L6HwG7}8SfYUE!k*L2J8vI!9t00E3RCAIzi#Q>@;^_=%()QK>^1;x`Zs~#S zINmrrpCBYy&9fWA9%r_;&D+W5YQDQpdbL-J|5lYCtMu{KyKj_pxZ=B;e7aso2o0av z;LDsX(tc!vjh~cf@w#Z-yLVi`r?bn0s;tSrPvU8}3?*6aYv4SC33_N=7-*8N_k)^C z=y^lhPqba_!WQ^US0BF_t^K-8R-2VqTEo9NZ}0c8Ro{9Uhln-(34 z)D2i|^0B42g>T@hu`Cf6N4c|KtHPFAr{+Y6nk$dOy&+^GF9cl-p{pL8QoBQnFbA(I z1aIlW-LTP(@x2SJB%T&&(kJhUY#6N$yFEUz2jO&vXFfMxk%pnA%N#M-BcQ#A&_xplM{%2nfgahDvwa(i>&9AIV@~9>aS8h>LEOsz!@|hVJBQEjbY#+a&IQ$< zvSql>A9Gfrk^3}d%gQ;z#oqQVC>Z#4mzfuSpKZi`CD^JB^``s%JWz;?iap2gte9_} z4s?bY%Cr2}6586RJG))7f6#P}d{8~H*M3{3wT2vFvM3l^$CotmfX+dFdD0942Tt;c zf6Pge1=D8S`SC)9!58T5c<$urA-nf7Unlo{5^Tq^j+Y^yc^cq>z{KckaaZ|Zip(cc>A5kb}U_`E=7FIe6@h2_|Ld#51uehLBW-EX(SHs z(l|e`9rv{ia9iTp_|rlQPbia^%{N#htMLO z8M4v_dv$P~g(TTXJD61lNvl5R3<=1Vde*B8rb7;_-&?$~<vAyznL>=T&`an_Wg5;0bPhN8mMWV6SW&EgxQahm!7`jfh%$za6Knv61`L--O z$09ekz24o_;^GjuOmlXZQ{1b!&ip6Vtf|}BIVNk|<2gYGo-|K>)ERuB#@WEk^0*{c z-#`Fg#BS@kK;qjn)OV%Lu+aSDEQtBh_#DZ=lqEA1xfbbXGK>bd*xa5^OT76*Pr;)& zv}Hh0BK=)xq)Lpxlt7hg#L1M&jSR|m|G3rcyH@C@ib?3Kqn$l-Y?JduL_A3YDIm@; zR1`Xf9xyO)sT(U{{y zXI}a~u$<3vYv8?D|GjJazHc{~dDbC(VY9*aY#tHgR)*3#195k$kC6XP|4jEOnK_S{ zn`GpSJ`HQyF5gVrR#+mJxko(DWak_1jcIYb&2CZoBX#?H-?sjQ5Az^k-7+*(k2ZZn zI5qF5dd^Rk%i*L{oUg0;wDe2a=U05prio7xc*I+Hg7P@u)<4Dj*=9?nXd;W{YSh(Q zLqnU~PiP;$cZM)Nz|yL+-j+i}zgr8Kj1M6>NQWF3#D0_nJ6Hteh58aHB&EBgBaQv^ zP=ZwHu=RDQWt>T|$4!E7+AO_QZi~bkzNELHZVASYq$0GtNFVp+7w{1v{#OCRKzGPl&=oRI_=^pQzjG7l9Gt(+S&+C~e-;T#j#Dju ziTVZI`ThD$T4QROto^*xR~RCeW**hO9X|D#Gk)uJm_#%JpchPYyvmF&-GPw_Y1?@G z>;)oNG%T@a@)WwoPf2`c)=gsIw+8o!5Xu=gxqHM~#+kKJri~YP_9|LSZyI)C*ohRY zJ^dsbT`=g8P+bH@s|@yyJ5r=uZ+=hFZ@uVy5nB8rqBl?Y%^-og|JjxgU6K2y@*ho- zxNyIw6WYK8`{M%*3*#Ydp zpbVRcxp1BjKmEEa_WTZl-dEms{byZq?FqqJ(HqjvjRF5g5D=w#g|ZRivZ%g?-@7KG zv+7HygkJB8XbpAE(nFF^ja|T8UcSwq#>|{&>PMJtKClbXTd-nD`wlWIdo|6C)g}@r z>WLJAJM^4a9IGU`an&x$Db={k9)0}tWVDy%Qj?7Ur$ssuL=PEQW-j5sHOw|R|E%*0 z;<5mUiqMyz<74wrN7)iSr-}B?3|v0laNmCT$IFj;CX0yC4TWt*To6$ez6%rDhoRii?|>KsrK-c%Dtwl^kq)7Blo zQ6{@%@gx-qT1mV`D+1RwaC@j1mUw7T>Or%q}L;Nt1qg^fGbcpj+O{qu$Cx25$8 zX7)ILpeTn*Uf9b9@6sNmi&x#)q!0!?D{kOJ0$&>ufC6KgV_g zVR$gb32k)QdSN%SUHfp2;?TZT>ov1q#~BIJ_tqVCOdpM~pL99nN>C@Gx_}Qj5#ac! z{T6`%!B+K0`CBu3!1-^Tg^0`5(M4TD_|8*@Zbaln&Ta0pKN_ujc3;(x5PC(*oRvo8 z)4Uql?Fk~tM6FDMMs@kYjb5#r_dC3>$^f~;350S+{|FNI;wx{Sqeb@mO?vfX<|FtM zAQJ;YCcqEwt|L8JRZRqlVwuSx#XUS!eVvizM(K9(EW_|GoM+WD5JX-!;`p6T*gqDksD{^++P=k1*N zSyhtZ4|n)FV!B6(`D@m0@z;O7(bG^m%wL|)JEonTwcmVS#sWV&8Jbw3Q@!=RbqY<= zOi{Mlz0(oA^vheP8}S3$vC9$2HDek2cDamI64`XT`&Qd~Y+6dH?R~#D77et@_*^PGeYWNVM1JSaGEqLV4(bzZU*rBd%GhQg*3aWMEjz$NeLkW$~f zEJoz=U*p*2nLbg-(lSYdWgZzJeNSFowr!4(t#I93p;3gRW`KYoL&SLpEmki3n~oJr(<)=(_-Li80~q9;pOln!Y`hrQzSAGpa>m}A(1 zu;P;LN<3L_wrl)>Sdo<6?NT;bUJ$toX4-s&Tc@Wgww_q$Z3+5e0T?uS#14WjcPlfi ztRIbS-;LeA-Ye7F+x~;)BsDmwj<;{?kIbZ+$uoqHNb{fK&oML%gn8Ird<|~$6h6;M zS$bQA0Vm33<09&PyBNh8XR>|33}YmQ4;{paafV70>gvGGbR<7RedrZFTKK(8Ka%5; zvl%ae^$#1ExaRcG#zAS~g9{AbYC&o^77*I}YWB3MX=LDk)ti#x`!>!-s6CfTC(DH@ zU?Agpio5Mq!ms^pMdPj5i^tdLUi{(bo<(hV?wtQKtxwZ!zfUd4!_LDM+2}4O84Bl& zTy*~cm)s$BTV7N&m<_{!k8s@U^DBUHGj$I@;?n&e%vsc#>UxiS9Trc@~R-SVF|C1ipt!g33B z2i?v0m&eT$rYtnDqCqWknCbpl0^Rmp3Eh5po%7ts zmX(h`zS;g^GaG^Z@~h9WqJ(p51fU!RK*|0Pfel9(m7AIoiD_bgPv4#&(c%}()?9U< z%u(t?x1RD-wQAbIO~9<1_8H(K(9*Uyy8Un!P-LkCpF+@8xgU7b9R;3)_+vs(8bqSJ zjni!6hGGZt*dJ^-WE4S?v}ZCH^hn=_Y<$VW=y`{c1^NXA4IH?L2$~5XBALivVLJK@ zsroxBU4rjlbQS=jzY2H_#!)#AM|D(E9KdoycyRdLTdMDfc`o?)vYox;2YWMo87|FU z7ZY-!$Jf~@pT}6>)ao*MV5DicJJsuBk=&e*4D9;@ulX6o3gAeidE6U`OWuITdmB6x zslhVl{XbXgoSNZN3WnX&r4(rm)vu7cM{M^qo^TSAn>39kmb}Fhc+34Qq!>rBw&C@@ zyon7Q{MC74A<0-eM!yRjJY+^)j!9JZ5*G zJWNo!L01T0)wAFd$T3rYuFEGpZ8bp;bVxyva`Ua6>}RiAZLpr#ds*C$44lA9Ie?9+ z>41e`<;Nl@keKYmCV`#5)r=JGJ{?+XxvRt8FGM?gvgpTN($5&H*e=cuvR-nNR~i$< zGR9Z;S&%RrksWqT)mPNBgk?`1Mkq@!K{McS`R0742O*5w$&-g^iQWxMAyvy#R%!nC z9`YJ&m@9x@;LQC$8BLSm`)z-|*A`|c&}HZN*y5h^D{E0q(#pY)VUBhJuc#S&RbLSo z=uiEm?w)jBJQ*lXK$ytFPkGs#K6TvDpxIYvOYTG&Y%~2a@Bg;*kYapDw+6W*ed$&Q zHoev=N_BsqajC%Z^A#II;D6I%LB}+V?{SK&knIiMOZbx3eU-AzI!u-KxGgn${}K7* zsvi&MDxY02T0}(=L8~+GVB4f;$TsqiX&Q4??ugD;m=gvfQ03CIy9Vapm~U z*QaRAFS2Xj3GnynO1v6GHfC32`(I^}Fg7d4*i16GxEut^v-2-am0Ruf92G|5;(X%_ zh4iX9T8{co8w|y;=~_(EV#xGDr~35APj38pda4xRr{2gXmoePcJ^~9`1IH?G#XIdL zN0$myWD~yE_Ja?5zrsiM8sgX#b+ka7k09q8h{#kpYB4m)fG|KR2FwK$VfiA!<^Cvt zGbPY{_<_j3+riRz#$xstUlTuzdRmm2hDw#RZu$X>#RGl$UyTjS>0|fOL?v-NI9eK& zbV#Z@J!{ixB{*8| zAis7t72u2yZAmfnPP6|DZrCOF;|R>ZWFRK-x1E?oMooyB&0?))gvC#eN(vP(qVk-Q zpQWURCe9DM-S&;Zx8?&vzrD()KR{qy;S`o>rDJu$Tq-%sZ$tX$f>=^L)|KzsbO>?A zWk+CDGL2>Jrl9%u2uxi4XvS+y%8@q8Fhf2g(&ipl&DTB>J+M(Q>yS+}4y5>b3W-6H z<7-!owXVxfxC6}2()hA^x~+4=;Pt3aN3<4rQe=fS%B9>Ho2{zH=y3G6h>%ye{Y|pD z#r8Iq4^?N!tT_Jo-OcJmqHIDpIIQp5dPDU~5aL%CnS;Gp1g*lqC zEn~Cc$XL@>^q~9ztewYkc5-q-(3+{7A8N)J_viczPiTp?o1V}GdtlbO+Y%GP!t`Fl zt>_QP%1?kEf;JH<1?ZD>(2 z(hYBNV4td6#4?@6Echow%`Wy0Ysz%xiC4r=a=qXFG86wv)4hwWyz-Z4f#9MK*n<`i zLa=G#U#HTghkqOOkHZh_oHc(n0)Jy zS^s97V;Wm&{DGrZ&4)A1`;w8yoVX&)>Mt3$=9(AY*u)%ovq54JnH#8;gYklnZF+6l zbk59|2q#V%d-q3wq@}4vw*UQ|hJ9zZOW4ygLRm-D*blPA*s`)UurX2iY#D0b^U^3b zBzb#TMBuQF@EIXbzEB%cjSc6p3oxB78y*qzS})? z<;i>JedDDp4vuTi&TbvJ|H0gQKsD8D{lh6hD4`?0S5cHIAT1G)qBKPXQRxEG73n3R zgH%POsT4s(K~NA;frKtfM@2y)6h%Nu=mCP&f!umXlUzeY4F( zltvU8VuTkRUf%)MiUv+z4zd?5lYhlvCF{ikf4A`>p76EKm8@Q;TX$c#?zx}(Q(ZP) zUG=)xx^NgnLi|-pKO{1cLE#)+gh^9dR@O{K)nD^kQX|jhLUqB;n~r-F-Xz>WhPU#! z+sX;0GQSg(yS$cVzioRVs-|D3e9H7f@QAxr)84NJ=}KCWAEYG5@=^;vAKNaI6$~DK zeAT4Qu=VAwNtky^;~PWUf={|y^YDobthj~@dqO84<2od zlHicCtg)d#mT-Cwlrx7CK5hQ^E@uHg6_!YSUAIt?WpbPRhQ-cIH%{?*3}p5d6)tFaLumDHFP&nC~v`rg{trks@hG`OmT9$Z9c{UIc5 zeb$9ZWRZWX1Bpxhy7bR#bH_0SF)xl1%0P4-2N4EI$e{g z?|9%oZTZ?TD#E;|{9EwzA|gU6y^Y+2nv%|TCaahu@;~mYy5JCYk9%K)_JxPnIlfVHr>+u2eE-vwG~cO9jglgs%ON&`6cd zy*CP2bXj#gI1fDIKawZ7>ZtoEmDq&`mjOj^0e@b`@i$Ku&>8^Rh3KAH&_ca?mIZHj zw@|>!|8|^hppWzaw0yqroOv+5xf-|{lD7X?mg3bBDrk7$%sa{_x8u|#-HYwAA@mEX zzTgyuNN@;huo?8uUUPG2u#R6UzNjL&xey3DtTuAUnXfV?A5+%~pH(mHZYUe^l&(62}t@uDARS%QtT0gK9jwb*|!(P zY6qS?{h~@iO&#Il_|dsaI{y88l5`G}HoE7=8~M}bja85OJ8N|9&L%AQD^+{rK zwRhz_TVloUb1_@9fW57unI$mo7iP_eci-M0fn6yIhpl)TMZC{iy)VtluizP@emnUf z}qRue$H2ZVAdnwE=7rX@j*;i1yGZ|vx5wL936Li?+JXHaXvOPKU=~u zy*~TO;V8UtQqO>jnp-!Vg~vmZk<8T~Va#)QNwEFQ4x@~u%ma7C;Qa%#qM1%AOeN2P zdXafDel_^K4hRm$-~J=cRKH!&d(yego#ARPcAM{FS^V{P-y!cct-@n-82p}-c?Gco z1jA3!TxN5PZtV6g8tK@hO};u6M^X#H5CV6Y&iTb@j!{_RJ;&OD!zC`1VXq)lbL17c zx`dy4ahJKn4$QcG&_P;!I$gm)P#gDaKXflg%gd@pX0bk-n{jy zJz^9qNyiqdv!HB096O4=9v?q4aCKfqM!g1W*eTmSX>2w&yzm&&Y$S0AeZO8co7cld zVIiW@td>V5Fd}^Et~`TBFzI)rsUi*+PCIWtbi*HoT{mHV!%}x8Cbt}U13P}GzBw6e zR3l$r4Iz0?asOF6?t;BZjA*q0KIbL`dEX_bRe4cXng zEc7VPO{hfjvI*NvOPcfnR`d2tOmKy*S@EnW8NaGa8hNLXNA%pQF9z{io@$rSL{GE7 zbR)s#fA-3Mr!(O*px4iy_CRt^iTJshm$emNVQMXpE#F>}x;!knbtC4}8)#052XBx` z1pLRzBVmYJU{zB7MzgEybe_Agqv(=s*ydxE?%te@E;O>RPNlFweNe*i1{+@Qv5IpR z$Q=JDe^4>$NcmL%v}smE9WuJdApJ!4@9yP~_kOz%!w8<~ITn(|Qsh%*;WMRcM6Gr0 ze#SDN=i19ozAYeWWpS&gR6vULZKma=vYCq?zkHprXLogL{}Okl>h{w{rq45zM5K&g zSDd}0wb5w#6>r%KkN#0r8@XH6<;av4WLz(jI+ftpICz|`2jtv7u{2J5exj#Z(Av8D!zE-#ueKM36meUt6?fy7iogs&tznxtiBoO_X;B8MqdHF=*;cTp4nn20p$8_45S34N zYjFumb89|j`J#{4V3i#IQE_H}Ym5zRB3@PjA{#NDJLY?ORy9*81wYB_1C@yuXNonJ z2nyXJpZ`4c2v`rRG%8D=*BjAG$?nQ~26s4b4Rd+gY?{s|9=hZ|T{fbbdXD*46>H3} z%Mh4%a#QQ_$xC;68o2ij@&U7bSFBRhoG&?` zhIj-=Odvjx%-=QN@3y&MVRe9G>35qRFBOc1R5Yq3W{s1$UtKnVAT89-&Ie!rtgO&~ zAMp(D;odPbxHQe%{v{2X&RTUlk58OWC1d283dGf=VBmOFW>2_5u%P~JxVpT8cycJ$ zJ@Hw4r1NR_dVDddB*8!XnhN@$P}SNi_mJZ~s}Ea$J`8a9ZZY%h&+YLu<;V_vo_qad zBa`pOX#(aM_S(o3T~ik6V@<#phBJ3Bk7=9poSvf*r0W+mhuX|;)Sx!7DGu_F-%Qbe zZ^ER!3Tk8$cdIiemU=g3@}=%u1p=k{Qy;BppOk$(K*j%?>KzAoPful+ncEfZrwPu(k909Vv6>E+D5UUXP(}KWAtulysin*R1b%wrq6bZUJQJWy z`p80^_L!21fKaI@LF1=RpsuxSsJVm_jZNnv1}tA5%0MR%=CJI~_d&HOg;BelLCs0! zZH%}I#6Yx2vPiPc`iH$S@-pt;Yt`FA?$UNMlALzkp!@h6~hl< ztiVFOiXjerA^fq5UNAT*i9g6J3XX@=s|HL%ifpXGN92m#v)mict2Pjvaz0T0s$9{a zmD29=xV8Xf4kPaJ&DuXuU9NI(?B8g&o`Z(He&ptgtDLiZ}^CUWk zH>wOvQ6>{TSHrpaQd(GEktJHVYvty;@K_@=Dg7{FR3g^!tLewd7&^v*4$6AjA%uCi zNK>cL@fPoh;H`ibAn=a#0ODf0m{T<(QuOeZ6Oqpbifivy6w)zH5Tm6-(fvB zij1a{Vf0j%<36{IQ9@dk0b0M{^R!zy-t-g>Vz#72Rmfx*{q!#nDwj2WvG2Z(c144L zgdQ9?4u1_h1wAE24F9KzO}8(Dpv*D3hMrerZX<8o^vXLpjiQ=B<1koywqSxOB?-kk zLpLsk*sWUICT-ud$eH4>Fl&Syv@Op4xJ2wz(KOxCn*{M71rS4#(mH_Z^aEsFC5?ZT zblEEAJA7B3>U-oA5pQBUvYNKwnJnf@!5&^35v*@Fe*y8tolh$QO^9ju0G~?SDuqh` zzC=QWgRM0gA1U6mM=CevOXH`$xHpBWpbyKRC7)o4%fhT@+>lZDTK6!x;P4?~Z_99M zG@&~s<81nTa(|w}9yHx{CRc+6L?MCHQh&v$t_iJ~X38Y+x~&GA9jrCS_@j3r;=Lsh zP4UDgUQ{8lAZ%lfM5t>oQ}w+$WBk5yx6gNmA1K_C{E)!$ju>=V`jf<=E#vp&-!4y( zQrQ?XV%Ot$657i$D&x18>6j_{G;N;!|8knnLaW4_4}s(VyNpsjc(G;;IiiAq_2OXf zE_nJH3omi>VpzULy7EsMr;`N!18fjYd%sdw>qHt^E)CK@ACq&3>9j{ibj_MeRmZo4 zMCl82Tk3Q#h)uh0BP;8D!-+Zeu72`f3=p#etWRC*%m+xv`dNPtvhBUrTLe3`?=}f=D)5mx;zPFY8&gJ6Gus4!UVl9Hel9hcoKJkeM z!-1gv7MHMRO*kI!yy1YWNFH`)sfNtkX_t%M3NI&VP@T97Yc06+#ofzI&>c3(d%F#O&Xl z+7z3IGDDl+?t=)DIZJ`XHX#X2Kie6}IySom64SNY*j$073Rg$YHl-5mLk2bmaW}29 z^tik)r>E|Hh69lYWeTHyR zs4CXF5;$A9g-K4hX54-t!kXrE^t7_xy#Nr6(8nRk7s0I&_CZOIBjDqJ2GckJ!T3hX z58l^kTQP@ajk1+d8wILf%~nts;}fj5i(04_qkDrryQ~d3w?6-{@ON5aZvUZxNkLC+ z$;414cta>gC!qqI#|{z1DDt&ONC)qb(1v!(ie|O5XYiY+zbTsw3}8Tfl`w;!*D#4c zNLOve##}Pm!X6AR!jeH6iJdfaI`S?yZ{8vPVGED)+c{d;=jJG@#|fPb4g}QBm1M^8 zEdfG!oDj=;$trh}{OlDfWm!8*Yq*HnFir&;$yXqknuVbm*@&=Q%G7?H!tnNN5s$u+ zSnq5?v0bV>v!i1`uN1oxO~M|Q9^zJ0-d@PnikUiy;9{u4atk;)g;K}g36lVZ$tB?? zDSL?9X3!IUJ#og~H~0^Od+Jw>rd@V+VkDx=yOZ#LNL?GlAwYR=roQ(wZnH1>pdDxj zSs@Q7;8?+V@YmhdJO}h%>lt4P7^TBj z>7w;CI$k-~NoWJ~t>%I+9yAY4S^q)d*nL89Ck1Q%TN_cP)N(2ew_Ec!gQEw?NaKyA z@k>D1zRjYl$APb^b(nTR*>ZgP*Ec{89nAprs!6npLNTktjCc3szqvCp$h=hGp=BxJ zrzBP1&9s7ElnUt*-MHjyx1HF`E@v?oP=$D^G$`~O+gEzC=$`OFDS@S#kzw@>KIFHC zW4TwiN{eTEIG+P7X*X4sIQ+-Qe|!&z+=i=0PRftRRdLarK>Ahs&?umwr7kc!fpe^#12qnVd@uy$7Vc55IRN<)E5W6;xM?IBST2 zyEE5YVbpn~#Mbcy-$N7NQ+&@#rtzqRq+?xJipOnKVj#OeB{kneLJFYiD{wzYq}Z0O z(i=B7;Wc@MpQo94HtNu>DxEvCS7K+1_fc1zC5|ghm#5%jwnQPiwgJcdQJOC6{T2Kz z5bQ5+@5o#-)Zcsk!Op;QEmL6AV73XuT~7Hxyt;fC2h?+=U>Qy*2r;0(^HD_^^-3$a zc3R@7Xz*3Ffjdo?tQaO$Q_TC2zl7v<_EA)27pQ3+#<5Rxf^?i1$hiW?`pNMB*=*=) zOlRR!aaA;8Q1^TaUWI@AJ4C+j{T8rsltP1qUwCHOo-HMG(;VwXlN(&_UkN<`Ici&E(xeFGWZW{?ReC$ zeJ>um<#dJXlR@=i7dBb+7w{rb8E91r7-Ad%w!sfbIN0e`U}*98f49Gtx2wk$)X{(> zb{Le&bKk>Hcou4%s(;SK_FpRUp90grTw`W`D6iGLZq$0XM1|>BF`Lb)T2kC2&pUjM z`#vSM2yXG*PJ+{bgpL&H_I9`6F#QL6{N4kORg7$;$Cw-~0B1iS^zPI}EXPnupV>n3 z*XVO%bFpk<2}O2ANZl%fWxzu>F(qD}jOmgHehS0@p!+HZo5F=H3 zd>2uv6g@6>sTLV9amFxC<}6%aN}7Wy^y8%H&iG72lgge8G5b3OB)y4j86*nK}Z$>lW!C7Dh ziuSX_YsBlZvRpn~d!a&M2UUsPi5hq)3WW!`Xw1;!UuN9N9M16PfdVS$c8w`?UDCf>W0aIVi-*I?ca3Nmqj=`_R9*0eC{ zswYPf+OPv-v4VydA1#2<_p?^jxJ?aHi6LJ!g^>*3a&oqk!^^zJ@}GY|%`t>Y-n2)a zAFg9|KpV{PgdAZpW3tu)=iTJB>#DksKEF~za9uNZe?~%cM90rcx<$eH6>Zm;X@48qs7ZaaT{gEcs>gwG zq=e#PbjOme2w(+^UQYtemdV3KabOU*N6BHHiE|&i0r4gwj<49{7vldqLX$QYbgu^*t~ssuBF&1&X@==eoTOI#YiHn(Q4P`HG=S= zxq+u_mm4RyaKo9#_HBWXHocpDWs{J72hAl|h%`j@0%3f2Q%B#E7XZNNQe-XsiJtS$SVBmI`tVl%|yyj|EI$o~NaY)M|{xKd!*i z-y*R47Do|E%(LT%l%n@Jl-g%6e0zy-{Wc|=H|%Mvm;Wb5i=en&x68u3%ff7{eJM8k zyCbyl%lCUO2hUL2ecUs)7H(-mT99CubYe@KfCSk*-#7;}0d$NP(}>~=w_%61y~J9) zOvWPATTWm|aDx|_6U*Z#wB1l814#MvVVo;G1XLG^#}6MZyQ_*ufkIW6kB$nn*Yxt2!!Ql#cC0x zq(r_H6*Au}UmyW=JP%k@o~R8e5GpbfY+PQJeH-)jM-%y4S`}}u!YjS-d#=w^oxk@% z&`N7l1v5#?yIst?pm@n-5ns3BSH1?{&GrKsiabLhkKT{U`08AqIM0ARprB$XoezL{Sl`-+yFhjMo@ z22~TIJBbtfImtsi;(m6UW)Q2O2F02A6IhlB=#`wnwH%nqoi)q`$w zqZYfiwSamiW($b%z$?r>+O<4E^ygd7(1dWsW+jO>c?m40eUR~a6lDmob|Sk=O78`Q z49)!D`$Y(2^m6tNBb@mMQnCeY-#?GZouuC#K*7oR_Ij(xYp5VdxPwM$z&{+6GZkH?6+Z3opw87a7+nyCtUWti~8x~YN zJHk1ldD?qb?%3%$aOWX)ixK57^BR6N7LEQLHQ5Tnv3&qo%c!gM!?2LQ9nYKjXt}!AB6sh3^W~VK> zB3ZzYSdW-;er?oZ8KSIAT9c1{(!{W2NEWh=!Oa*1xbCZa@LBRwu4L+e;7BUlR^Xe_LwBTwC)$lxI1Xe2`);sX66({8`wT*>o&Jh zjC_FBT1FO=_bbJgWz}ZaLzcL2b03$-Cv;u15}VT!MYYqOmn1|Lr5CeGPS7RE6_ljs zcVmyQ{}5y{WsXhNc$2=7b11990Er?<3iSAhx2V@3RS{#82>^?I-e6hxXd92VF|gSV z6NdtvlA;$iu`$lETh__M|Hi-pc`vnI302-5@_&4Rn{Db%D+W%y`~--=0}GKgF4hpT z$Ia`$w_o;z51#F!g$+d(R1 zbLOwXppU;*q9G7^5XXxLlf6I$C;61si4-_TKz!P}<^5RMtI0z`XbZ(MN;XL%VL9?5 zG>a2QU;Cee6ZK;mchp#93F~404!3v&{d&%y=>rI?;N;$@EZj2VcH=ASZ*We^C_oc; zM$DBNyy*%20Y)fCkXf)nDfgN&UBdajv?!aDgQ4ec(gpyQMsOLH`AUe{IOzfahz-v6 z@4)%>wpzqC@p&B(jUgbCFL?V;y+c-S`b^Srpd#FO3E3AG4*YF@DEe>bbOE%w^3QXc z!qX2yZdpgKP(d$fHCTKpW98t|A7GPe}aJq-coSVv8O2JXppig|3~l~Y?y z7x@I@E-ps?I^cZ%F7@{uUuIE9JPU-wKP-=*@mdWFYg>t_CrsWy)vc4VrLEGS}yR+Q2Wi-!h(}Xawx#R^q zR_f8{6u~2Q>hr!9$3l)J)RY2&3G|tb&uMA{Bns?=*;tJZj@1To)PHGF8Eb6oCE){x z&7%*KBRKQNI^^DXL7$Ed3dSdEeIJ?UBU>UMf+lyjt-p{W4l6vHtEnJELhr8o04jTm zCTm2 zqPl6OT#y&)doDv|Ta~tK@7zckozk;8OYq`)5OoK@%ljCS%&xQQO$g~vt?xEGI=DS5Bn;iryKMqPLhw2QoiCsX7;*8d!z zEFKPrs$ZoLch~6y;3R)h9m{HjK8lM0h@jzXla#y_3O?Qn<}a~(pd(V7FX1Tg!av)T zfmI2th0sfx8y!6YcrUgnONB`UR>bMqg-I2~EjHa!-AU^|j=a_#IYNBekkDuD8dpEe z&6c2>r>;+#hF~P2*Kg-&5qG>A@S&v)858zL$z15~DwjGy2)RSy#UEeifJm!hSPO<@ zmMA%4wtHFJ`fss_850Z+?mEh;bLLpc7K54B?3sO zN!VGtP|B`pxo5Al3pv^Jf&P0B%Bj@UuV=uh{WS=NMA_QZDohbx`qocGuLrFKnwoeQ zb@J`3aCX|(X7qIpir#Vjw26%zdiLXME@MCN@u}dam-{@J??jNjK0~9sN2==F)0aNH zN|6>yXFSg>ow>PP*0XK#k|4BotQC&{tnu2so3-qit4nEDv)vqoCUlmk69+J;N(zQYn0475G3Yq@vm&oFM=j`c_`f zRj>U67-J33ruIm848CHi4J>I2`6YGpzG)IScgcfTm_~h?h>;*;@K~_c`eJLHAbs za#*JtiAO6~ukGczRrcx|0Rw0Iu*&hf>;vSfj)O8Z9*+~UzK`)^4#S`HEEQc;+@w}D zc>UznTgm}EaBE^#Ln#b_L57F zL#>Ue0RCp)()D#WlYzuAml2j_U+U{LqM^~FLb;mUlEzy}P1gluA-sC!<6H{QDaSYL zfn9Tn0w}nR&*QY-)udx^2@=208mPaRBBC`_4PmBElN20$wSy!=K9nvWCQn)xknJCcQ@NEK}Z zm!z9P$A%SoV`OU)l~D+y3Zlo(`tnZE3tTs_3Fm-Bh5RaNEEDVpt)*XAS*@+}tXOD} z&)d0V@z_|IL1F*}+V@UhI&8^T!S%klyh2`C8+K)FT)z0wxPxWsFW8qhyVg*wQTcSk(K+5lnycH|ijy`%KX+!^fnzu?-~wEG*slIpncU8)?5t8y4{@6m3c1RCpdU zYJSD;Cr28dv*@knboTy8TEGr~M{nMpR&JM=QzuI*LkPKxVeSH0ic;R(pld`2FtrBR z`~^KY35g_Txe5a6_Zm;b4zN#z@od94>s~OiH3cmhVi%oEHV+_Zy8}&k*1T+vqdRN< z%RLK*klN~jTJKKne|*)fJ)~mJ5_9Aplq61lxJ7c5VIxr0&vlBn8?7{OtwWzH7*>AS5A#sF9tIYF(={v03j$C{LHeqFV?!e44&b`=9`;r5{6OyxOP^)2zV*Dqap?K>}UXzlfo z`(?H`H2d!U70v;vO@|)bIj+;XF)+1zMR%NR^|Ti~XQ2aEAE=J7%YT91qh2`}|$OUS^>aO5z z<$1DT+RPZAJx|vXePEwaVm3UYna1a{HjNEAD-8yWuKTu)H_UVOS*0u=-dP5@HV~K} z7(ZXW5FlJidcHZ+5-CuZEaFqbl+H20Lmi(rBxQvv#ojlHhw~hEPFvM{K(0F~opW<)KibvGe!y+w z33lf^;{4l@S+bU7DrdFEC);65{YDKIn=86gW7oodnqK3&bm#0iYQ`DNSWOS&H7Cm& z6(?zS@H=Mwl*PAOyoUppxio(N0RMmG)FJ7`Q!M!+Rx(Vq4S)OEgKtgo8>icD5RA`N z6x{9`3gRElUxWIH(@Eu^H^Z*V1BE-9sLMB-3crR;G^bL4A4!T$gYvD{8Z^bMA}@)Y{mJsCUYxSBoh?bv z3k826AG%e$;Ttof7_RkdxjB+|YiiAiZ^Db$x$~R|M}>ZUM%4zxtOI9Ec(fT8MCbG( zbUa6w^2x11(X#90NT#D>CZ`;R1_&)HnZ<}(r(kM3*A``ZP~CYcgYce9}%3js^c zs?1d0uT`H*R)ZGcKQ7rk++2Fg^!uvxxb@OojuwY)@iO@#(GiT-)lDCrnp}mZnEtr; z%cGC8u*gQj=vbmDF2qLNu@@U>XW=eT&G%@<~9MySbSdzKkh;4Z5WVJDlq|T6~sQBcj}LTXQMTGHy4SlW(*W zBIM{J-0BddFH#N0?EW=Bfqq5cy8Mw=^AUYqtoCj~rw=NHySbu#KW(>g{7gHInJb0< ztqU;ylkKai1&jE&oClE@Sm0xE>WJSX7ft5XW$?kD{wcZC&o|6cyU<*(is1J5`3Ob@ ziwzpX)NT@}Q*BqZI9Fb#=IBkh1voTSyy#8rCV;t}(1m&K=X={Y8DC|u{UDH;ljZ6;v{5#KT11kL^6?--%u>f z`uM_wyX@495FSaV930 zT)J;6)CXJ_%E+6nOxZIti6e2vRaU!qT-M?^d|9(ah#-LmZ})=*y*m1kZ-+4z$x=P- z%b%k$?v1nMqGz5u6p`YV%d2{(JK1tkcA)4W+Zp8Ir|hdL3LdSR%z5;RSgey=70d?F z-|Vbv>BQf?306i}F3J@doae6+8hz?Ah%e}i^W|2RcYd+-kePAC0WSxM0%b*jbp8YD zNTzDN>x8zB)-g9l*oG<30Tm=_6?T5{D)}bU=L5x(66Ijq68qL;7Y88PEdG2BJtaw> z6uw^97&se+keg57e{rGn9JZmJL2}iNsLq#X;v2Ds*rU;Z&2ytAfc+IS)2DRc#$pXY z+jgyuE%GruW(+nq2qt-Ir9OaGkBGnGfQIPiQ)>#_{o|mG|5?>vz!wut&sEI|ayA#^ zbBwmqJ4+atSc>zPN^%KtP|io38aA}3y4eSZ_~9nS^FF8?i4d=&aItyQoa+u~lvmH) zXNVMEVF`@9*A@TqFV*`s^N;q#SoV3I{J1(4r=Jy${vllql^1z*;!e$|8794ZtpJbVy!{V}?s-#Z(eDD<5J-!E{nkp1UgV0JO0aem`Mm zpJ|Dl1xaqw*O2+4Bvx(j=E6PB2zrBHMyXV*yo*4wv@&52>GCa^!5a_4c!&)-%?~A! z*Yvl2^bb|#HvnR#C922K$EY;Cg+6{iKJ4~`^R_5>>n$iE(xgg!E%@1`VUH0?NF&d1 zqgKtN0p6(t)&%c(t~Q+y+)j%nyv4>hm+p6)Fg+)KSKbfR?Gt-oe|!XW^(P|*y&tc4 z-1eYi(Uw=EIPxL0?wE9g{_JjpJyI2$u=7vY7dHoLtxFalvaf2V&ck`#yM_anYbwTO zyM8i+=`X@2j9wMqFtT1MmaV+Uux0cSa$^?%={&olZ{a1a&G*|iobKB=6ELsWx7YyF zV3pbIk)5o(Tk80ty%Bhx^R-~MsblBl{p4xeMIdeA!CBQ$GM_eYGd7F8Z@+1;h~1P> zy*dDkDp{1&R($5}viDsmb={!g(`L>BH6DAci#hbUO7!cQ$#ke+sNATBG?;XX^`eEU zYWtLv0mJKGaRSQ+LNK;$S4ClG^tg!L0pnmsDLnt^l?xHtuYV=S<=Y}Hb`w-xSgK8= z9KSGW%X$iqy^zJAJ654;~5o7rSdJ{={P0K%j(^n3K~`co_a=ydF9 z`Kb_KnJXc{(5ro!4wL?U>s7z+~&l|=)@YB*hX7@oqWbC{D0!YcHqsN)&Hsq^Nm?S!c{CA&%Q?llEv7)q& z56MK*+rKw1Bl?fVX+rKsq&&Bh8T9r7Uf{CB6UbPRgyN6l0bTg)!Xd>0@NYR7+>E(e)`K6(0Q^R8oy z8$nh~o^s8zXV+yx#W)J8_}Gi9#(hHbP#@1Yyd=kVINsOK{+zy^zCoQg?psc{^K`=T z;92-7BPf7ra}7_gzhrkW9pt)SV9)9)1V%dxg|(nZPI;Z9qcRuvhE8Qo&~82>F{sr> zxlLx9>169P<#&*{bO|V5&eim|atsLC{9$Y?hED{ECki>({1&YhWqv7PyAwxo@|qvJ zDqm2Vs4y;B7i`6db;33*??C1qab1^drq<=E7htPfuoLfIcLy(iG$I_SJQ&lw3%J$< z&mpfmV~;<%5al^Jw!S!8`HW z&l6?#w-*GLIXNrWng>}3?ox~YXU~CBmVjB?v%G8El1>vfl<>v0k+ubV5%4kAsD1kr z=KjYvvUoi!L}D}+0Z@|7wRHVvhp6H&y1vY=WWRGP9!NXcQc`*C8>X}#2tV9*eU6BT zGB(fi{1GcQv%1e&!q3v9{CiF2F`jdkha-;w=aCB+S$xhog5L$}#MIaYe8mqJqcwT(mtk)g0#jta7hKZZZ!Xe!p&APgSZ;xaY&6 z6T;wu3$sZS87)kmeyytX^FT!N>7Dn!9aM+I44^rg(LU-`tpc!KY(t_oNc>o@Z9!DS zu!wcS5dhGZvK%lUG49-(eP~=tYL!f(p}OzAx)B77bZ6nnqq&7|yK9n{5j8L}1~~I^ zS-k%EOdH&~+UIjX(Y-R!PnJbyIx&hr9$bu+RC#%q@$-P6ua4}DWOs08DvM~q`t3GD z4_Uvvo{xO4j0YAkOgpRd?StRVwCL}-e0gfmXU22C5<3E)W(~{lQ7wMl)qDGc>T8P} ztqqtX7Wt+xzY?A5p$>YA&aPGm`gas`rb# zB#j(jv>5Ctp1-Nxt=4cJF#Ke#h(CGrL1+pi>}b7;7-G!jf=b|bmD^1U*IiAFFVxWe z&07hkM~$O2*xHek)%U#EpOF~Fn4cHjId^jadi2us{FtrMXY1ejYaUSsUS$pdN24_Q zQZjP#jCnL+n*dj%*~}-^>^Ozj1Nq%isHwdy>8B2{w`8ksyzGnK1Y!rJC0AMTAbDYz zvn>7U-us{rG`T=&5+rg#&~LA|LA-bqM0{Wq2uN?Gv}>mj!00K|veaW>AQ&*u2(SKg z?a*O?L8;oF$03?WQsy-?x+(Xl;^!wXMV@1IDSI)bnI~b6Mm6egzVRdxCz?EKTu=Z7 zf~Pv__}IVXjZuJnY+PVeJm6^nnXw%>{%!{6s6INtn?fopiVaz^dSL(n(AbpRVkpH;tnhctMD)^A9p{8avxN}Q3ZMizdRRfw^`sN=TD^3V>Atqn>Z- zT{|2}JC1)Y;TtF8*AHi6zmu>>qX)>M+)hCNH_sm#p#Gn&NMNzxMg@9&aDOeF>=^XP z>Yq0%(8L%Ek?*VQ-lYxDr~q;w!!(`vo)9;G?^~BGw23cFW<%w3WmKD!cXrd4u80p) z?NAD;6;dnm{59}mT+HdKUOtXWc3ZE->*vHCS{o?AXZxEMywA5CSYEr~*-zae;h#*m z{z4vq!jmx9$T&V9(4nYGkriBdiK6cCaup-06LLZkGspC=&ykn6)`W7A4wLc}g|Zu4 z*Lu1+Mt-?9umnPqYqnbeGB?pTZ~N&)aOQxsW3S2VC_+*GHHE84YRA&6I%7yV6=Ka3+ zGDFQSgz`;3v1t9-0ugGM^9D)!p*fg2&{*2K8BYTB2y!gb%ataaRT4}3UA-@#YaIRG z4aGWeGVMBHU52ueQW_%OOq_TQ`cGM=F)YUjTJ;{ z%8C7HY!v_y8RYSB)rK|m`u00djGD40=F{h9i8`*s=b8-TNd)nnD83*R7BS)}t-)?V z{YhFn+1I!|-Bv|b;G70REmn;ZBT=wUHL--%W+NaK}6O{WDLZx%b$03{# z`i%zt6j)@?PJNTR5Cp520uh|er#lXX^S{15#TZI z+`fy1ivU+PqPrO8-J5-S@`a-r)1n%wt3#&Ak6r}a@1WSH%LkrGkJb^`l(Ra>TdPsg zCYs5j!I%noss0r1Vkp`Y7y~+7Iv{sii(Z9|Dswp-k|dO@4>|2l;y=FHis&RrFfxH$%Ihy#Q0 z!(k_HVVWLZu9h6&)xDcoy6ZdU;okM7H0JH4)HH+A{4}bvpH>OFt=1C+#4;dfX23ih zr8N^C6>)ag&YlU2;H=eOphYpwyb%sSy{!290$gY|r?8KJ$}W}(@kTVU^``|F3mOjb zoyK54KLTUq<{%RoxFFxDh0T>)rP`jcxnFx}2O)>b_F+bnwN~${oH(R#$4}arf+RkP zlQeG^w=y<1c9d;`=||UI;cOS15=k#bl}ys&;Up}Yf*^X1itfY+uE;BLNAcPSx*(FL5mZDasVX?+ZJ@ zU`9a_2}=fBfchA-AhT22SpjsU#bg6yzr`EB;dWw7ZEp=Cm;a-e5p5C#9#YzB$J_v# zT#3}4dXHeQA@ajH0Dby}YO(ne7^dU3BrGN-L+~w7j|mwJ(pN2=%GlpIxiz}1!>l$x zw+I(46dQ`%Ha)E>{bUmAYu=7l4-09K4p}{7oI}zkWmI>M3}Z?{7jtiM_P(Wzcy1I; zsYZ{?zZpS8BoA`T89?HwdnA6f^g47RqNy)`5z_+T6h}IMbd_0J2EwGm0oR%?Lmymd zaD+IAJBdAoXfkiPx8~VCk=WeEwzBdy<6FR-!`K9facacy$O`v-!AwarKIP8fc3Utf z+$j0^+{lMcPBgW_gGv-FOT{?tFLS3)51^%(}-Z~?3t*qDOuHKUNwfUK|&*( zcU7z;88R*d)YhF=GU#4jT5qC`<2iGyc`qOD?TacJSe~HCE1(MJIrL;0!x-1m(ddLH z<^$HbwW8cC?k|}9wi|GGNVR(IDP=CCz0CMKM4_ z!cV?i>lR4+1zmNL09XVd<~PhaQ4N?3EV#LOgG<0_0-Mvcu?xSrNiBad=hpEje zxtXwv>wQLfk>poxPR;mudkOFUNrAznqmfMF?UPHkMpM7|xqzKk)j)}kD}PMB-+vNO zzjcT$I``*yaRLMX0$^|d7ORs5tqFCe!;}`m4>cMEMx@?OWX_UURo$jQf>qUS z;)Bya{9;yPa8-4p0h=o#>Gw+F(XGDy$1h~7zY0=)PZ*>UZgcu^s8WqIBn{HVB1tL;xlFhC*0>m+^&uCD_{ifE18%|&9T zCsT9Q&g#3Z*}mT~WAB48WASj!@o$<*OSiSIIBT^(9Mrh%4@s}q@UgpT9d}7oS4K@H zCM+iJRv`C6%zK(HFo~N4NS!wH*fA=pexa+cZTqtBmxJS<*^ zm4bH!BfgteuD|rCq>+cMv*+X2< z8~Ys`^ys@J0<5>M?k^t&%rHq>;n$+1_+Aday=tHjXPek*2?KMSPb4^`UA$tQ)e*ND zD|s`NXUsD?R1(a5=r8M0k{O+Z0;X2+{PnG@9a^Zt!q|{sI-aQF-!w^j~qL{so!@+yU;9B>jjv3>= z09G)z7zDYAjy~DKaa~k9b*m67dOpFiy|?HVvGVFHwQuY81C##=1YCfd*T zNr|0m)UOLQJP`F)8INQ?aA?sdDP5$O*=zi>oYIa?i^&{uWjt_hYsQ0)ech-%iO6Bb zs_B2kEs%*}cREkM*R#7eQ;c5)JbrlyJDNd%18kF_k**rDpSYt{rlU_$W_sW6DiD~=@DJ-3fH}F(KUZR z;5f6N>SGT1q=$K91$BOUjG3t_Y7WlgZ#~c+ACYJ|#k*5|OfN-M))bxIs$d?Xl{{HC z5Mon4k;KGut)dIz>KFidd4WUS<1+{zc}xDOXZH3So{kmDY%nql{1&e>r*Re)MB(c{ zCVAS5TEu94e;E2b4D_4QWvfyiXfwsyIOJ_^F)WMPU(GaWEbeEHr(_8l(PnS1#_-FmExA^L9V$-b{8WlsrUi7Og{ICsQ!@y3dORIN(()~-<>+=7 z7#ok~L?1`6fJ#pSYH|w)o>_Mb<$sfq^HQ|se?I1eP;n%uUAJ@km!-^C)?`&)WrU7~ z(HToeipegLgffu~h2<1?2}{(xh+;k=MjiNpMNZ#e|@Pd7*Z@Td8( zA5aO2=Kt|fH3b^B?(#j$*`q?|(iGp-y+xz`Ny5m9xGLsF5AQPuH*S|m#tHGrii|Dy zx#7ama@ zL{N~bVxx#sLo(P=broB>v``# zzVXKQ?U8H}vdh|Yl{wd%bN+s6kt5WFivE5L_x1J2NIXSIO5#@9NqcORKPyN@T*rc^ z`)m8t7>37Ta>if(1s}jF!*5k1REfyj{CoJy^bf~DqaU=bXOL2{pe=0qn`g<2T@4pN zSHaH)%M}jAe%v~ypa)Tt(98lMR)Wsz*M(jE=v8lzD&e+^{pjSBiAa;Q}Uwb%y75jlGP|;|9_t4jD9v!-Y zp|}<9Q!aQ%ly1!@@S{BA)+ONmRm)+0k;B5kGXprekIg2dYlN!b56Gs?JdTFpI6}O zuef=|Zm=-F24VCSh$0d~VclHMU4O>Im+3?!nE@iC>-Q#Ww!vU8I zzwoWWHTqQ_FcZ$zhQt1csS~m7$uLfLx@y%2&#YfplJ1w^KXq-z_h@KuwGK7z-o$C> zMPjeJ*rmZw7Zmyu&V<(~XZ1?nIOIh!3oIiw+irn(6Op1E%t07Zt4}uROQoz2yVVF2 zKvVtkThNWc+f@_^u^;^SXp1(-2(e zUa*IXJ}el9m;#-2c*b_ZF|GbItB=U?5TRwkfov4@EdAk%Nz z)(Z@hwor#;?`+(5*KBuXthD8yXL4A6J{SZNeQN_7S#pO4mR?bpwy0SqnJXawP*D4z z6_*&4E7=06t&*Fh7soO8>@NXmP?*2Y- zQcItPvk%vM6W5k&NMS0Ui>(DEq1vTy)q>E7u<4Pp8Jlr^9)S!ZSIX+^%bgy9?vG5~ z5k-Ic(m&zVpG0A<_(!rZ{iPW(B>#K_kK5Gz{2GG;iE6EQAP{mP%WjmIt#Scv7ZzPK zM+)M8j`5p$(CHpj6x2gY63cpRX7*;dg%!5y@L1<@cIH7(}HgQxbJ&vP7UohU)R|gV?5ezDaf* zJDPgtIf;lMct+}T9?ZIbYQww3JLsj;4;$eFAbFZ`oxP&%BsRT6f_HA(%+5RZ-5rLY zZcPMkNd8L_3WqEjkS_H>A}Ss3@7MbJaSJY|8GEAG;Ltk{zmixOV)>BYSI7&{GmeXI zZmk_A3?Ei%o>gQ}oF@(v1(;9E9x8gjHT&eiMXfIh-?X=~6?zz7i{FF$VRpL6nyx`` zSy1Q+9H5g3RkVR_pQ>~|q3ZVLfV*@L8RZo3E@vB#C26qlyHtK79ERg)j)z+xI_dmi zVDqj#zWNeN=8-zSy}1vg1~P3KqfA<6eDz0nq?4ucl#w_n~0{^bIxB`>+;vYVjysOwKei~+mN2rWj zA#YBf({H-SewR$CiYZKYxic`g_vewhtRf4YKLvc{VV7%3+v{wDE8qTj7$QP!>4+0s zLCnFgMo?lOD}Lpfqe1R@Mi|~F)%5=P&sw<0O=Dnf{k#s%%kctNjh35l_Z&)!d%tz^ zKz4%lg=L3y?hJSn|7yDHiVsAsvfX%9{xc$B1%cGc{G)332fB9DZmkM2C85|{(= z$NP0qGm#r}g)=p>P5ph?fo^@nTjPeohvD}S6j@e}Luy?3{`zZ0Y7_hehCMniKP*@u zm=cY8-%A7)%@z)T-T!!`L;Hr5a`_9lZ?Kj{xV0cAmZVC-XV9z{sDv88WFAhZXB8O< zN3omGhe_*ak~baZTlhu&&)SR^ZjQe%o5v>o^cg`2B3=uD(kEX$3XPYWO~|FC?>=19 zUW=0#kmR)-nB8?>QSauSel~~+T`S-oapH}o*g8aCF5edq^@cU~oIR1QdwaC|beX=P zPS=AajdH7)<67%Oj5KRe4`|5G9u1VTu%jP9QuXB2wtO`MF&lftwv6&`@jdSnIQiyH z);SsHeS3Jc1l&V%&k5A6(eL-@dE{UzZ`i}x2Y)bj3+$b$OO(_w0?BlE)~9$5iG08Y zK|qTq^Dt6p<~z5o^mlypNCLfXYoM< z>K=|Gut8}P>R&xoU*iU87-a1T+k3cn5DgvkN}EvQ|3UCX?ARqYxV?u*h$v`}`d6?M&91TMMxZ4>LVZ~r|w~4oCtz?-$9Qvi0z{P^#BNn z7d)|)jOc5VU;o?Q=hN^RzLT$+Zu6vGS=U=_2BF|2-lLdUZT1R>;yTw9Hw`tQJ-0t4 zaS$L}%1;ii$3#-P+Q}FkQo7gilH>j+y#XAGU!Z$Qp5+@rY#9t%&zH*CnSsU*z?6Kw zd?>^*)z%5oeQ=dSQB%!%1tzm_Qy_UsUsRYhtqR2S{Ax^2bn(HR5@uL-l5?1WJ(9*b z)5tQPAELGTP}APo`1KMU)Z@OGn!);s%;sZX@B%kySGq&jpuV)FWFB4%7Wy>`wzV+n z3PToxa5FKFhO=HtRBkfgACj|@I{Soh@bGTVb2mD`OOOpnv{s?f3o*U~DhsvCiz@2i zIc&GEaTj2GS7Sk-uhOTP3&>^_(!D6$5Q0#i0yJ#HoNB1@_qKZ|j|x`W96yJBqrcqx z?pP<^X!fzhaVC%4_|=S;P04!^k9*=eDWqDe9`*1NkVC(&0(y_Dsbp4 z`G&6~bKTZ&X5JAcx7SJ5&wSGS4t$->TTTMMdGp&rU0&M(oZ56j5hbeQAcTONk>^kO zZ}BPIhtKadq3L?o?@*xLA~*JB~PbHxX546J-HI)5JH?xXn= znp3H#-RHGyvtrqHQH6D$%9{XF2AMgXqIYqsz`=XHUSi;J&5MsaZP>5q*RUZ3I~wXS zIH^V%#{9F-JR()*eWx#u95%Qz)4RyXejM90a2VE95Q>_qP6; zJ(Z&AL7X<_({Co3Y})WKJyZYm@JsevXP;|JD6414?~({9-mZ4ctN61?qWcQ-iF}7_ z{3c>9bJ!{bLU$C|k7vYG#+p?GC3%VxDUNY=ha(}|Z>OHr3k*o?=30K}`My*zfAPJE zkc43htk<44B1~Xc0>vXC*!!#jHj8ah4~=&}r!hWm{(dM}m30TevEC?(1cFhR@>z)+j+2e?KQxPOs+1Ptuv zb(se%=7IUJhwv`4Ou6{WpbE?&t=wW8Y@`|Z zMvIK2wF|hpMR4uYeh&+ujO&1@Xp4iu;c;W%ZySO!T%ApT(vdiQw6PM-Q&7#?U54Uz z<{Z%n;v{&Y9q1)J?IrXuBxAZKjiJ^m&uEfQlrsNFSZjumuAMdQ^)YdIHm}3<6?2FW z&gPMWDzr^sxzum|_$b1Itvu7IjZQg={k-dL%u9_FtD=6XS`c++o0XKsvl?Z5G$d;Hw-&AJh!TzlYcx&tPr^pxg1D(y5p3zsc`v;a<(vgn- zAix@sww-e7ZQEWjQ->`Sz5&=06EA^Uc_9z&Z4HS5svj*oAsB(%qyFXE2O$qM(96Xb zs^aJOqGTOk8wdc32HQPAuNN$WxEdj2eXrIO*2$&0-^gj(1ERSH~^g`qlOSQqjOxxO$=x#Hs+* zm3;+EHAYk>whXA_26&M%PenovAgTCg$+16Qm{Gb!)QWCL-DAD^MG`;c;pU*r2BqKl zR0w-~eezT&4?<_(k}L}(o{yZh?wPj`&4Vc|dM=RTk^x3R@FCM%e}~%3R<#C@2m&Zg z0m7|Ps>!mW7X}80NJ-kwKkbwMUY0=syl=T1Av=hRfZ?idI*?9nZ6kzMked?->_14#*Ja(tdGF@Q&DN50i}F-~yg!RJ?#Cnhzjd~=@q zD&Gb+hz;GGR`tKPN|ILZ2*kn^A~)~3m4hH#;zjTFd3XYzPXBNMeZZ}B zHeGnbn*`;XPWccU?NoL=^pc#016EZ?XNYM~U6~z*Qm0^kG4=^-XTOip4GYD&8b`b9<-n;b@~gE$q|ieX>_*&FG^PxKSZAsaHIR=&JhsIh ztJ&BA<1M_yMn1+5IUl^D`MXi1)?twT>$SwE$fh9(7`7AJhUXl%-E_Mtf!4GI;0ya9 zp~lSAyY-@}c$kgIO7gR;PB?ycLgz%&B8b%*WP!;NnTQ9u&s1W=mv3H0yu2#2$Ogzb z=j`CBO1qI_Jc9CRBnx7LKx2-z*X;NIWpVw|YLQq9r##dazV!v2re)j4L?dcq(hLdE z(I}Xh^bG`n?)2wN7)PV{>PusuA_<}B*&gb(Q3eMQ*dlsIo&uxYEAgq+ufFKL-4}O( zzUcM_j0%6ge%GBaM7a7k7vu@1Eyl?#5a-7PBo5(3BeFyg0Lt3ZnN&4|&Z2{8(7cc* zBoY+w!$70QQO6_a&8}m7KA%-qlwiE?8nkkig@*d|L<*^j!iAIBbuSU8bts?B{IT5ra}0dL4r2twGDne?EIJ3&(2k-ab`IW z6m*ISViW9Tp|AZIfg0%zA{>?-RYQ;U!f>WdMNu#b2Z=z4^XR{y8wnF_f*uC^r?z0yHeKeX~J2`24}lJT*JbV7ss=|uU!ZQW9a(&^JbO@qj2+x~K*6n_GKiwGU?ar)IHm@L|7)Qe&9i#9Vw5Rjul^r;_J$Ly&jKhRI*Ajh( zPL;dVtH$5Gb`-|4f7F_TSFs@Vdp>DZa$qYYGx?E&?>_9-x(LMi?gDMhb2rx#Td4{9 z1bB`82h$V#c@KoOYj{&$Ts{0#mM*l2cvEX1v($-_fx&6_GnG2i*Up zzihZNl=e;e%J)HwDyNgGZs9_{(+#I{F~rKWX@zN_y>S2hx+{nH%|!8ks9CzI;RzhV zpAO7l5<#D#`2Z=pv|I}1Pjd~b7^E7DmS==Asp=~^OrHP8!1lo1u&qiS#F?WYN%cm@ zWaep)?FrD>uU~6lP_52!g+|(y;%#+v?boj(?O=i$>%}vU^zGRm`acFzwc)jeDe81e zJ=zOV<_>xzitQ|(su(`{tWcF#T8%oczX;yen0DL0mimGTs=`-C0fNUF?DqUiZu?hT zjo%zkRWSeU`ZK>NPv>vSpZ}ZZ1$G{gPc2nG|MpxYpFfLF;raEbe+Ys|{Hr|h-z6Fg zmI#t36k_dFUxSEJAp8fv9#8Op_`o-yoe-){FELbFpLMXD4$`OpNK~WYG1>n3f%^Rc z0W4DfHbR6$bcp^BKk4?;BMjTYTUdCUlRzJMts{@Dw0BIKHi(qB$TT7y2aZTARcyFb z%32f^l2E~Qj{9mTQa>#)b3Nfzx{prw{XFb+WI-hf_+_U1ZStk>Aj<3Y0G!0E+BiccOj(tum+y!Y|<*KJrtx$f0p9K;E1 z($(qIkZAW=KA&Q4*;HMceR+zC^!R0${rKhP#z4;DEnzBv4h$>q@RTDN;ZE(Fy&8L* z*<=3VvA6OAuC=mph1Z)rHWJLfzwuF8_xDzCAeE%`Yjl;P6lK*Kq0~<$-WfQJKzbjD z1<^x18n0om=QqENXOs$DEuj)8DIN`C52D#2y;KJ_bMY3zd{Iq0L{EhrG}|KT98DC? z)W&w;c`i8_4ruR%cJa;iX0Ks3%|5Wgn{ghfQu}i+s&6QJH{bA=Bx3w93Rs);4@Ew# z8@<9|#2wQo{N$uYzfAxbnbc{xYLp=N6!GE?Nf-;(e*d-oL39cJLGf6O9oa7|7bfyg zwaJEf5wsn9K)pmB1-~Q=2_~n0gmSra2}#@wyGl4-8Scd|p{w3+!PE#m;%O;-jcAQ> z-ALsrwrT#SlIaTblwL@sKa8I;n{476bW4&}Vo7Sn>wER)9FI)EQxMmK)FgPGj-9|C z!L@F#RUU9=zQww^v@~%W28194c46x~Dv-E)xp6bB*!U)qFr`^_ShE3&?sn}i&GP3o z8tPVwA4nHYF==6zGhPQvJ^%{u7v^K=do`n}I|V%FKTeu`ClQY;=kJEYWTpAHa-H2w z8pAig?1CYsEPAX)6J5!hH*j~j?B_ALN`T0@a%S4vLMD8NUB`>O zJ}d9JiV(SeD${iJaffp^KR^z?uUByUSAtd`MM5B9N73n-?6|Fix3|7u+3KlUN@?uH z2F>S{x;TQ09K+ciL0atk6-YAwi-{UICi*C6rT?Mg0Pp!Q`+tG9n`gMG{PEBbKg-%L z=PAXkdhrkwWa0SG{V`v^wtAM?SoP8P5=T^^@EC`LFiEfwDdg*D+I&pd4+IkeLSg2E zPhX{>uKNbwxK2N4J3oRA{aSwa&7p9zq_sdwY%hIQ1wKJ0?glknh3XSoZQ^eesm%(z zOC_fUIq(#XQkk=C^De9_>N^iuOx^a_ocj}Jf2Y*APw+bby5Blq?RxPwIu4k-_T7XF z(fmjYo8FE2=GkAc6PBPSMH=v45Y1%ht8TdgsH%b0J_rp>zxTl$5d+}D)eHzjT|N}* zr1&*$&>7&r!aYE7fD8Zmc7_-Dw2uEJ(`}4}-wkI_8RA9NzlY3o;@G+O&lIn24CBG2 z?A7#c%kGz|Qe~9_`DOHK7mRT{V{%wQ)}@g85+k08hoLkzp0tC_!}E9(bvZx?QYGLU z5?yh-2|yWz3PMDOEhc3o6etn(Gh{TnHls9*M^(l;dA&UK)rOUnMbW^^YVzw-ti6qLxZ ze(Sx)cRKh>$@neRXeO(J&zr+``pmDb#s1}w-6k%kjvzpccHX40HWCRTAm>2bK$QeLOwI@Sdp1$Ru^e zU3}{8C)_)N_viT?G~kOh=(|jF!UBVlBX47Xr(L&P_KZV0U$p}zs|iOsb$#I6m6H*? zbG7Sy)<;pYI{kEi%d*pDH6)vs967@_fMZGC|3&*Svu zb%4UL^~Qs8FnVvhGB@&+Q#n%N(vy`D(az_HnIK7B@YZ9r;izu1*Auf5h8BkRj0?%Z zm3lOGg)dwdGu^~6_iwC?*aLCufmR-UfkD^!4|Z&WDpx!pIH|!7Y>@`w2CBUN-2ULl zrhZk0$Ebh63X|$KBKU7x^;<;F4tsU#vD;h6bO*IDcf7Kc;lf>gkf_NNX>yY1hDDgm z>ok>hCXv8_Aq5AKF}15WH{BZnn)K(=hw)qfr`~3JinRM(=i|K~VtX$<96K&Kq#Mr1OUM-tFt& zRyd5ja=>0VlV67S`p0Mn$34+6Rg9VnbIHf+(368K^j{1LCgui$3VPV+j6U(N2%}^( zmbF6Po~L=~d_shae%GY7lVBUu6A`zuAjzyZ8wkpS1r*Jpro%!A=3IF?!KL){+RmlgQrNMsdR;?S*V zmW{AwwuN{6q)&AgtyffqmmZ$7=IdUyK}AoqRz1b-k7TV(Ckan4x_b)l34O)w+)Ob0 zq)}~`N*>3eSTj8hTKjqV?E`n333wD>5~Z@UZi@OIDd@ShprE9@5(QTcL&9(Dj}{Yz zpE|!)T~Ax7d_kW<=(t5enSyXEZ#Mgqh5km(DmbDc=%9(w6?`Cd&`|)*H$Idd`+wYG zsVDueqM&j_&f&keR)DV?s~j44>_qr^summgjEYe!MniQe$+AodH*jV87pk*2+VJ7> zBs&nQ(L}+XTd;ofY+;*fyB+h+Q?fi|S?%JF?JiYs+H3U0lyt8uK9EP3f+XLZfN@eQn(HFdCF^8qDd=`z z-vB%iT9&~1IKURbPntc;pidp-x=GZ|^sx;%i(Q~VI`t(FCNg5}4&P}qnp}P+by3*9 zNSF}Q9{6HqM6hgo5>+>cdM7y8*r+%M@Lq$O4 zn}cqX_=FoUIIv$`=``NZ+r$t|z6Zf`pdVdjGz}WS1Y?3`UEgbT+)wH3G{9^w;Njnz z_i)3I(LXh)ors($d+A?o3G6%Ozg^@E){2$=kOvI6z_)r3)9nYU8Pj{^2w{TRMt-mk z)5Pb!d29F8wnUzr_IAfRL}TznO3^wT=;(uD4@&yxPauVcPHb7&QMLe7Xlk!_!Zc3B zQSZ8-$v|n75R1Z5nP#q|oop1F3POTvhOxW5fC9YE#g+sD`ntsxG5(FnmBb9___Gl8 zrCMM+0!&DMHeAr8&s?BOtP-JNZU*G*{D@ClO$F_Nmz`IkX4Du1=(A7rat3nl=MwP@ zfuIEetN|nTKx7i2w?5k)EW7RvAm>Uw{;S!;FKW6#O=}lJUR6gr$ynGf ztW1QRDTCWcl(RS5A7UsS9UU1e4{C1ecH}@2aE`R+if65u&$@)Dt!Tj7DNNo5Ij}!> zT8?S#4x9UQNAE0Ue2$Nhz=O)=^W(YJP0xc2-t;vR?8%LqeRJ^GtDFM|+#?EQ0c5+> zL}$#YtR%)3F@|%FC)xVK#_ucVygu}#@d*Ph?d~|4{bxJ3&I;wy>O=q%XOi~cZ!Zh@ zvrW4qJB|3|yR$e@TN^{|t|M@d-H6pWSE2MbyQ*mxwD zJG&)z+Q?ye9=6N|3ag#5p>7;+TQoi%~fCQmfd`c2*T5@Up;j3OTa0~7aX!O zlJs(yh3T44G7cjMqNW`dUAGgB_?5fGIZ)dEftpi&$}4c2ZQIoRvvkhfwe@N1u%Rtu ztI!?y84es%R)duHe4}l*IFe@4`s}`X%4^e0UJ|jc23&3XIfz|q^72L|@5srV6tg9f zZjUoAjt=yCffu7Q3Eeyrdkns)I{Z|;x89lfV)q49)y%F_ucUg)4V~r75cZ9aievXW zt>-7dKS`)KBF^QUS@dGiVP(HiS^I95Oo-L-#$I?C+QImUjgbHd(G&hwFtz``B*5E= zjw}49h5wGS=beGc9w<({)nx&U$bbh?b#Nx~Opox2DG z4K4ewKw0(Y0S3OT40Z(y(ROC3XFXcw511^z9w{@`S{=`LHog(XDV0yx--{Qv zgKKtfVmi1IcM=PJ^g+#k}R%11Rio6EekS<#N}G~F07?+ zYbT7`%G`P1Zq==oF)Z#??ShsMJr*w8zDK6}hd-0?Gq+m55S~|vzH#~0yxq%U+UIq@ zyUVuzu&?Y9F$uY>9KYF-$2;pU3PvO;pcs;?8Ep4}2>@9fmJ9s@;1`IM;_+)bu!W^~ z{PRrg4kD-FZv%e&=b_ifw&<5UQ|H=5Puv%HD(m(D%<)TuWjF$cU5I9}Ati>rHw(1e z%NI-$d&Kty2fg`lpNVfrI@4F9XDT|JD&5G28K!4Y=2TUyntNUN6-GiBE1~)Ntjrp4MhSNQhD~mzGcx=i~Tb=20KC zG_EN*=HRtY+B5!i2KXlMuo)p=IXIL9YLCBDQ^82#x!MPlZr$5`@5JoJG#0Mn)}_4$ zhejW;bjN6~zEUe_H=&}FI_BO`{ggmKG*?;pxOLc!o#0*hp%IRWAWMlMP8zb`^wFll zfM8w)u1ERCUHk6dOH7^McUURXa^zdhueLPc6V$3w88~x8PmNnNX;!K*T>MqbbH)St zMyo=GK5lM|hI*?V1D49c$yvC0Tau$u+L+pr!OQJ$vqxG~P7j?qM~AD46$}WIc1;R( z6mQe#*@ohiM@4D|WzG+k$?+vid_57r&;o$?#DSK1zCVbu&IR3mngz?QsAuf3$Z<3v z#*EU*K9{VmXY2up!J!lce;ySB=+QQQe# zHqXWZykvV?l_W>!Zl2jM%!#d>ZO9|f9}BDy>f;3H;_oUk*#!0oniqt`PckbpIRHj+ zg?J?YQHA%jOgG19zqry*20gWEiS-@4K+vBnT3k#%U$xpf74}3R!pJq*k@?IFdo+%x z`&3MZi(|2rij|R>3A0Rks8hb6Bg$El5)ItI#AU($1t-MFh7BFP%O= zEIm+-FmAcZ5Ap6Vxq4&YGW+x@>Bfh^iONYfH5@0~1nc#1`R{j*y7EG|Q<*{@$H0m6 z!_bqTYB4ybq`nWIl6=uCoBjuTF`Q2fq4cp zY3XUGpD|^<(CsHY6dE`y`#3Hq*|NSyN9uiS1~6#ci|dlfinB6Htc@V$*EX3;dtlcf zrPTMli9d&1v0~t%m^dd>%7~|WPU!F+zm)~?@c*>vO$@9*&gJ{i|CuJ{bGRldUYg4u zzll?N*f{l$Z$bQfFx32cNiQuvkV3r~OZ+$aP(~4{*$X>fK7UD5F!(sgg4@D=IC|HY zb5oH^-nSI! z!dJ(u{K<{|@qvMvkdpS4$0K{!!=MB7jI{DevISj0N{rfy<(=s<-*ugZr%KVRhZj{CL+ zW+lg#G}i5r$%>SbX|N>rP-vL~1vChSv+X0$h}>KFbBhxNDwQs_`g~m0%E*|Kq zNf@&Ftq3_KeHux(dOb zfQEj;t5Kxu%uG%Ok!Me9hPY)dWXL^JIKNQ6H1h3*cJ9Koo^5=MF9=fOpiMXP3%f3h# zY+!I+>DN&S<>qAA#&PVx?AoL~jT2I~_SM%-2W(`nXpF)Iq#-M(oHXKcN&EH*;r&+z zu5s`=*J;lvEEY!1!}}l;!UfVw%J+PLi~|VN>9e7$T3p};Q(A}u3|`;v)}w0msy_8N zr4Rq@4xv}lEO1CpVN0{f&pf-d*fUy>@A8D1x?XzdHnCo3acrD(?5q7z39+1yeA{s3 zijiOYAB^hfr%p|NG#Zq;4o;}2EB<^)6B=DKdX6&h|gw_-ij7+d|dGW!a zZ3cDZRw8YnTUuJ~Hn>wJ?8&?S=GwJ4hoX4dZ-#6UoX0=bfBCpm;=-YBR*(epp)N)C zyYD+OgA%(RpedS4$4sY z|3^Q~;*7JyqhFMqi`jkTh>zdDe-qiJXy1k!gh5U&fNdb-!HN7PzwM&h{O~%hslz~{rWy^ z%4}X6^bPAa_v7wI*@W!|0b^*n-5y2@)m$K=Mhv7Ap+F28gfrTL5SO9aW-$oukFI&y z^}~3#5EISepCHb0lgmJV(5y2{Oc=t%u3}a1Di}qUUJQCbAR~mw1`p@q*6c$e>?X~* zM{6CiYjrjV^wx^-(%Qf_qQ!nNr%4+H`0;pN7`rxt{jaI=pvuSt@Po?ue`pEN7sN~E zzY$`$!Ch*Ad94nt-3M-wEm0%J8&7dIokMmaGU}QkpDa)pr9G zm+zjqL>O{$)Mf6y4XtAU|C+HXg`=vEEL!mW(kq@ctag>Ks~@L>DIL1~phSgZr)1}t zHeN9QC=3T5&hGz3;~swRd<(&kct0W=e(k8Tx!vHYYsD`P0NU&Awc@|Lm)ptee{_tF z_43Sr5D4P9=uh4M;{2s1t3OWisn07Oz9C7LqSZ19x8L@@VM1eh)LfU~GJ8=Ig#&=leW+hj+1BwO7C^H|@53MffYb14 zBBmBn3mopXBmq#g{|Tdef2?rj-ulY}^|Y^_UX&kFzVp>>PGZH%J9aJ9$i`?8#?0+V zx;JG{(FPKy`ZXS-0Ga#$sVDBA{2B-Z;-%TY`IZ5Zd*~@ip57-tR^A_6|Nn z4kAZpd#;U0N9zpBS)^BA9!hs<_UPxxXRwqHNc3x$cpAI7aIJ>JvW0+cASRbPO2)`6 zeG9$)_+pW7?lf?Gl<#Yo|2jv5o8)G^De$;Jqij_=0>qW!VOw2x_8npb{pWfiKMz0h zm|4*x8ZsH%J^yY}uu+W_yM45C&$brIpiuPaepOnwSFl_!P}t0++pBRA6+ z7KcG4f?EQcK)wJK7UiS5qcB4J2bo~Bg5TqiYK?HxM?S%q#!C`#G?X7J{hR8j$Eun1tuMbw}#lv*>O|h9~BA@^qbE<=hSUSk4xVW+p)lX z-7YRD5&c8wT4dPW^-zQ(ha)8L=CpHj0LPjfSkizK>d7_{B1a4yD{=^spuis}jL6_o zwxXc%Ug@?a!VYceyD4t)k8{_oC@Y)jM=O|sjg&X$Q_a!o{=!S|>%&1FwyUZK#f9{c zX!cC596U#){>ZC{BJXlO;s;TWyta$4E{#jkMUam4dW5I3Z0K#!?PnT4dIoT@izywM z0HBK44*L9%;Mqns*#QoKl*(48bBaC_V_M@|kJYrr{#P3IFoAQ`G#B?ZM+rTSUP&6@ zOxDpiheMw>JFhrrp6At)*w5r;!J zl-&{>|2sVoeMY>z`*&8VdBCp8FKdVjSs7fOG{tX|uH&b28 zqWS^{{*|VE^4Y^UHbua>-t1MRU7jIWPFCU%*Nz{ll)pf;k*S@jfBWn*pC6LrS}$R0 zb9P9M_c4~v-N)YHsxVpG+$}$>xm@8lH}FxDP@8hjoM9%Y*igc-^#oP!}V8 za=|n|s>1V`zsD1o8{bFNh~vtP2lp!7RWFO@o&WYs5kCv4+jrR=>etiE-c=Mm;?&xC za_hy05&#OXd2PiMdy6CVZ$iRHc~0k21({c*y+HhZ6flufUIhwT%ch zx|eZW@j9x1*r25Or$Dgb_aiIz=uxM5li}8#_fa*-MM*41VM5z$vSp2Y`)VZdJIR!_ z_$3Q0lVVMpK=TOs)p;PU+<)zj^0|3;=s*o(ay*+Y%wB{wu@nmJ@W!rD;A$T6c{Os^mlzW!gapjp~qSWAG9ABpN3ln#g~N zI58&mQ^w^s=!c4ei3483(qYA{{Pa9u;dF!s?9#RsK~e^@pb z71ac9WrBnYeic*ZXm0h|UD-NP?_vRs%my5h?Ui=1@TE41AWcWWHVxxGKOEj$WyjNRS&N-mSLqmn)Heh!cD*RL`)W+~^4x4v^CX93({~6#C zMlYllUw~#>#>G>7RP9dG-Wt@ab=dQLB7|j{wG`VGJ9J*8pSuJE0uLDQ^BWTQiT|A=XxZ;7=Mn4}Dyaaf>4z zt?-SGI&1rEtJt+=9h%i{{T1dzLtpw+h317=2~6T2!;E*WEwGMYZ*lwDPe6xC%=h8Q zmp`5~dj%nQC8yVEMSZzE;35Zkz94y;Hz^1A>X)`EyPIgN9>IPU7#NZRNVUQH5^ED+ zKO%w4IqbeSmTCbsk#aaWKfO)`F?fT+dt4njZD0)U(B4jAQT`1Qt>jMYt)r^CIcR)_ zch@cqBhA&Wi#s~i6X-yD+5-esaf5&#l0=qVQd<_5h`89kuuXYqzVC#|VslI39@z52 zmgHF?NHn(n#ca)htr{C-EPv&_rn+H8)FJFVZmm(JDX0AgLs|f}0(}G>^z{YR*}+T} zQ3W=nOpy@*(&0S$81O$bIaDPh(Z<|bnh{;&r@&2=#A{+ToH$zc(P!?GKg|)h$|VjjV2M7$S{+B0G65|-zhWG0 zzQ6Tx#9Afxkk-Gp$_$u_5(+ke zj8x8r1BL&s+MYq=a@%|VaW04)#_sf|VY?Wmzt}@W7W+Olev_L0omv-oCOYTaQlDg) zBRdw|+5GcMki$iYXl}U}iF%ifCIH{*t5=X?*`mAW!paCHb%GhhT#G%F4g-!)wtE zRUgg7)czF4skC_t8?#acL8XX)b^K1J;{xV60~)e+sbdmdA_TJH;$t$JiM8u36i(mj zZI1XGg-eHe9a%g2l_q`8`9mG0P}7?#w}I{CjaGR z5-0g1l6?TU0|x%HzYhF!cZGh6&N%#M;Lz5vlQ#6_`v6;y8*f?q= z57=%QN!jz1Z@MZUz&Q-Ws%uJ@>r+?90 z4^cy-X*pN6I$9UcOG+FVu?LkvrHp?Ys`_)FXQ*l%H_T)nTE}G9-#tf^LL6qt%-8q= z&UhNY8LyI4*hXGkOAiRAQG3e+8JCNhbaB#pqeysfz~pKHQp|jjIZEx~Zu7SL&?|jux^C)yyBzjyr*tch)t)D94!RVoPVdh)3j*q7kq$Aec0k3tkL&W81F~s zTYSPjw{`b=RBu&`Fi_(l*uGGOiqvQEJq{cH&`t27;m`dp5_@>Orl$q}MImos{WXlK zdVAsqU}|Jvp9@_s#bvUEuz5=8&?L1c`Y3TUzn{k5T_#tc^0eH1nyap=IWP#<4k<8m z6C|%}W%o_S6NPlKr5?6CnZTWU6uR@hXTR;*XWhbcY-(-cYah4xngMbk_BEi!OIm6y0XYy0!>Om_>;4M<3g>kQ_zJ5wf3M(skpU z^@)>KG%Q)DyLT=_xu59$=aq_qu`&uLNu2tC+)V4sS!>E_sI!>2PkwtVITw|ttNNNk%vm6eBCeOW}vG(P_H zYF(0gcO2HYQ(10bHzVZd|9Ul zqSwnJUsn2tB>+VmaiJFT1}R0C;%|8)&-hNm@cC&lEfmeCYv-1TNHK7L;D~r0bpv}$ zr2VaPTi!6m40HqPwg%q+8MVIx)}sC?x)=J0$W8hCv=Q*g)3BZ5Wa9bSK4AOj>WYSq z49jK>>Ju$kRUwGq`gR)7u?$K+uV~%~O{5aC*i;??+{WvHoVyw?e0yr^D}UE|Us3b% zfWWXOxn1eAsLX^Z!Gt-Tu zFU*S@Vs3iBbQd0*==h=G2jWD3amq`0uI09({4-*YKv~S&A~vF3@$GllRB zv9+dz?eGWj+9O$PrMObR#kJ_^Dkf86@sL_xRSu^}dB$2tzsg}6yGid&>cTlyy8)3= zRrNTvE3HsGUVzc@x4L>$bnfbZ$=M>CWO>SEZvH~Dgy(U|V6t$6N|@tWinwHjWS5K! z@pO8JG-ekIbbxHW(&EOh^-NT6;z@bHP#Pt@KT`0NiBa@Hys0{NbbC>xn80;i>_^~L z|7Sjk&;OO0qA^(911OFR5W&fi6@HRzZt(TMfZ5s-7d6&7vf2HZ;Bwe9`m*AszL@y) z2TilD!XT1vp?`}sZwQmq(PogmW?n3TW}a;MAkq&$yj;rZFJNmIbrvEoM|AP(aIQYo z&tXN7biPbqKt6+5=W7T+F2$flf2@{t*J=q9xN~0qf3f!-P)&7P-|tSLBORrOjv`eQ zP)cY5Du^AVS5c%{=p~^@5d;wnRX{~VK}1E6mQVyy5R@iG5{iJdgdQMde>>>&9M3uL zbIKj}j`7|xzBL8}9XmVOYpuD;T=PGF%Y8)d>DlYk&alpHfjW9zKbiH8H=gAeqHd~y ziw+>=5Ozn-BcWG8x@bJ+Hh>^IL_|Rp@NH(}7~Ng^ymkY3!zTzo_i3DEi+IrPhAt5e zl14Y9$ZNP>9p55Yh}}vtZUv;koO-7F_^0nWhfFMjlk;dOx_?DHP>iK2*%7SP%ppOu z%HPWG;;nxZ-3i=bRil_QhB%YXohq+BN{$IH2KV}+IE5Zc8OPn zd7#U}dmOS}T(Zd-uEWP1^Z~h($ERjgYQFnB7Jo32EY)!V-A9DNKLtR|=XpEO!|K(X z^B64Z-r&)4|661qk}!dq13d@5Y-O{9^bhn<&6341J*ZLtsUwbpF9{DU)jHA|+oQ`gfh| z@N(16N!ZL>5YCYSdk$Lu0?#MOi`<@QTl}n7&C**;#v~|cgj7S)S}0_zQMy&E1)O94qs{a1L30+uDB%ep=rw4V{G3c$~8%)WS9bHtTqvyqUm?KobdvM~pq1QHR zEd9mYx_Uq4_e)wOH4A@N&X+JCix~S#zlL3X%JY0pcWE!|{++^D(U+bfabR=~mN|Sb z0KGAx(G12C8D$!8C{_cUH88$@nO=Q= z7O0Kr3Fx5mZ&ycSup-glBGq~~*N}WifA-lIb$rmKR-E;Qy0rnIsHcXhyqn4<&OBB# zNFW~N~ zrCTs&3Je}l@x4%8<>6J91JU3&7JTKIP1)T)YqkTj7b~f@utEvNSx-S+;QP3iL>-=^ z+VmbC_aZy;b3C*@@aMq0V7D1ec0iPyn3K1@Ww-pg~dfev#!9m_ac~K zC3K~KN@S!m4B2oX9HUHE67Ggf;e}t6+|3T|a6-;c5BLT(hh9fe`MpzbotXVqmxe>f zeGzcn)|-C*+T79x(2?{NDHohw6NuX1$j=EgV!&k|*UGgB^RexhU-9D#;;(OAE;n*0 zG1>&!79wkCV%YtIb}f_RJ~@uMeV1vtQ%Y1}Jf8WX?4d00xu#c+S}k0Ab;6`v2v~?s z@2nZsDCFefbuX_Ng43HQ>Fu5%Cl!6#6+%b^VCmACm@3AvgSby1mTNX8-gPy1DQ!Vl z{W1H5xAeV$hD@pqMVyC$`_iuD2WXHizca4+&|TaR)XJ1s9NC3j=mu3~<2$@>f2w%P z>)rdwdQM3mzV|+Z?N~?dgCPK=)n|Hmr`4FqEY)~dWva!O zmUcjG;U2(>*+l>}g=urNAKy?VqVF7$B`Ic%YSS6QF>+IUj>B!Rk{*}!+b}N3v7)xm z&l;>ZBC;VmMIn-906vw)vji$(F&cNxC8+~9~)2%Er z(`e_WfQIAV&ZuVv*y)94DrxOGhm~Qjnwu~BR=_@^QdyVmhrMDvCxuMs9zwpft-br& z7MdQ)F0NyJSFBi;^&KBFGChz*@KeEU2X52hve%i5%}T}CixR)49iiN7&0BbSFUyFu z%t>@r^V<_m`!xf#Lfa14o>8kkjv)h|D%YD8-eI}n8!D5At4sF*I3VCcHF01icyh!Q zhsR-xIZ$ zLbj$bNyu(X!=h{LMp3o2dEED{dWDuPyFdsY2rW!M{%cXSnZ$hj|FGN&OizwryRY2cp5nYt34^IJiLDzf{K_I{#~b&U{{VeAttD zpU@Gk7PASsKmP(>JdVc-(N&9BO@og;E2s>Ayh?%6m^tCulD_ScuQ>%V={E?Z#a~Q% zxMd+GVp4!dhhqiAiwwT{B9}yCVmCVKnqhdK_gx}vcNY#1HpG=0TAar7Y?2^caZ z2M`3gF=!IFwIiWN5;RHwzYs|PwA)}n*9XXg^r+(B`oZ)3tVtp(EkLqLh0JS7vgl(#-+G@zcCuYzLfB7QvB21EB8=whsDC(A5B zY#VR(9f7kIw|2mN^ny}Wx27JtBt2!DChR;xQh)xJVK#wBfi`-MXAV!Ul_RDer;P;$}z!9}15;VCKA5Y_WwCD94 ztsK+|LW9+N#0{biT}M9;Wq4?-^Iu8c%XiDbUk@9($HzNy(aKTfI9wP0;ELWepN4el z+d&j4WzobH;gMd{XV>TV@1M~Lf?_Hje3d|dU_K&(LpL^#gh0^x%YP58pKb~zK_OYQmQ|p5)sE?AP)m;aV{>Z2~LpUsQ`HD(96BpU)4Kw3h zjhojtvAMGd<5)&U>C1IH#=Xqv&s{$#x2ygPwlS;peshf-Y^8$Z?VW-avbR1D%KE~K zf=3x4z7TkRETEx`Z~kjCpLnO{t2cp@P^>&X?&5OOkBjz zKY|~)D}JF#AoT9Q7^+zi`0?$?*QYfU$51az8n?rhX4jTCDB$Y+X8r$PnDq~U zj(qDbkix8g>f%`qnpObIn6Y2s3$JrsgyRiEwVbN*jt5*$wJfW`t3y^n7_)pvk9kvG zvp1Qm=&=YV<5h01VzEtiHPdZDzV|=Z>Y02dbv3filL+)1_Plh~%#0PO$dXpWD=-d~ zg`H|Ncpb8YIMZrm0paC`Wa}=dnZJ3qAE{R&wn^=tl1Q>OduJmis!^1x8(N`grB>ps z-+|B0M1GZYHtY0y3WtT>eZiuKIv4-%A>MSpe z8q*^QmAT?OS}p>&VGAWz><)ETPDyb$3-qh{h=@wwayr4#_@n;nd@RlJNEZHpIGxWg3!vGu0#mLsz9TFG)h_p`TV6jd3nNm{k4Y60K&<+*G zfzA0JH%=mV{_tLN}1>V!7}m&p7z;U+%WtctjX=uqbP}@s*hz(!)^0G37+Z+y6nA2M%3! z^i*QJ{l@%t=EhXmzEYB0_d3086xf2b3S*^Xat1@+b!xLL#1_G1J|dia_vXJm_r-@) zxYW~Jontv8RY$VgzNA(7_F!ZhryoqljBIgpd4`EW-HeyT*ap{GxNI-ha@WkC1GZa0 zVyLTbg_Inw!caDN&n_*Y_G{p-J1ULMoYz7rJft_w4vl4fn`Vj~zARQyZk9rvH)VAc zu(50Ln;iKQZ=dI&%Mwso58>?t!pydlec4JQMQ6=7I4G-R`d#h4y@w}j&EOLMh^(*e zWTX)JU0^eZ(?>YA0O>AVugxtZexm95;^h}1z5Esl-S|&Ryo&_HWY3{VZe4!91H!4d zuTLMXn4tsTq03FI`lY?hod2Jq>HmUc|8E%d62cuBD%8Jy=)VTsoBf7~pDsQyTIO>2 z$t*Y`YhZe-1ipVW{uw7>x#v#?Jum%ve=+Fk4?1i0<*62i5`XiS^fP=C#@VA`mEv}x zSM=9sZn5Tn0q)uVc5~JGzukQJPJyleR!BS5So09iX`%_bbf444?+p4a@O@N~7mxa5 zP?hC@NA>TQPYWB}DEu98&-L({AkJ>46#TNq8_S!8V(m!HLND$nB3 z?P5OGAvKSi3?YB2MHInN1Y3XgzD4%JR z!UKatXBF}!#2ZUpo~H9XHaHQTRO9+2F-wz&eH(YWRR)ylW2v}{n0@&0%FF8qoDa|1 zX5cgtB_-#)&*;^|P5a!`&AT&`c3!Ib`eA8Y|I#I20H%5hrSoqel_+68VLWg?{yMj~ z&p`vEF2c{)di5y=YdUclaCVA!0xSpviQjDt8PMfXjRW@zdaZzzk-wBpPh1*pQj3?hm z*;mVUG`;^e^>_`X%E;I>`_`=b=_UP!*5iH8;Q(uzp4(@IsTE04kH{#CU6Ohi;uDzR z5=L3o1-<(ZKW%j4)?m`|9L#qht1Vu7?yC`Em+E%ZU2J?hJUX!KgsVy51CvPaZl*eN z=(4yTt(t`u?AiG39r&xL3)imJHQcPXCg0x@MpZ)@Z*~s4X@+Xlfol4R0HfZ3 zAkId+LpU6Gn794aV#0Sd{Bdiqa}KrVi)#FxJl0EEH=fLZOO_30?X6bQo(!b+6f5zg zlrB&$iGry=hHR1-jv<%|Y}ihOt%4C9lH!Z3cuO!kD^j)~Got&O&R*ALOuQ|NFtDvi zr9UNYojsTgtYB~(q31Zq1shEmEkJ5qT`CqKB7{-Z(}wP7w$e3BFm=$2X^<`c+Q%sM zs2@tww62}k?@G8BVwGnm=}Zvdbw7{Zk4FuPZjjYhlW4)vW*h?@4@Rt4U+pQqEK5BK zE7qK1*rn*M3%jAcq)n@;2_)T@;~qYQhR+UWdxwEE1cF<6)Dar@=b_E=Cs&yT3{y@# z9UzaP3v5<$#Y0Wv{+=h_HiDz-o(D**KOUGkY=pash@;30d`Y{k^2)!!OEW*);*zJD&Exd5oh{ zU>3rX?x#sq4)JSmr;yBCe(RgzwOmj?y03xG$)bfjY>nVbNEC>c`Dm0+bOO0=_XbIzk=V(c<2?7QPFTMaJH#RBl#!l{*^{p7^W4X z;rZ}`;Z)W2ua3~sUB^mk?;QkdD%-m z{n{hN<^zdh((RLG-clpFQqP^XN2uRz$D|lz8+9W$+bcV)4KJc0ynVx92mnLoAi~P& zbo*D47{E2$8e^)rd7MN9KF$?yPV9a40{sD_Hx4mj^c=9t{$Eiw_n}NEaEW~Fn>mP2 zUt5%RjA-V36)rIdReO_)rhF!5>|`djuwUCA(dR*pe9(P-te- zNHr2yMw-(gquayV$H6%xt9C#pz24-MT@mmTmmD#1vMo3B2cCg2eDDf~a#zl!b+Y{h zt+#x*dMhAI{jzLCVNMNp=yIi&9Le!;33y#`nF&lfG2ZaRuB!3o3z&x7#m=f)CvI+f zB&;noa(#)0IQR53Ea8AfwlFa{&{;g2sN1tT8YCi(e}FmP);yO6aLx<(0VmVcR?PsW zRH}Xi8$PsDyBqVX!_r@d9iZi1Ed8%V4D|!%Un>Y}p8)QNpmN`MYX z39FMS1^{!-k<9k>wuks=!`ITWxFz6|Jzu^9NnYgQd+8rZMeQ*N8l(e_)>FQse0oln zb;s>0LKB{C$A>HurDS7uTA*UadjPxpQtln5fVhvYmhzDRffx&by^L*%%T*XxJhx@K)`BSmIYaOpB==jmV@U;!Wr+a6pY6W-v<)@ zmKF;Zzww?cFD`KO0*~B8_HqkC$w`|_NPI*X{RUXT+)EY^OC~93^y)Juqt})4tfF^%G`KKlUoirXPFh z(&lS6#z^$)g-Si{mu9!(UkQ2O2PKvZk&BM$FVH6RcP-@AVJZML{ZFVk(1#f)Ni=MF zz%a4ueUaMku`HYPJkE_!OR(NKdofO3AQ;N?-xo2qJrpxiIMpO-u|btUYKeAJJP{{g z(V9X_Oubi4I7DbJda2*iC!f6r^3ufQ^8Oww+-7i-2XMPcs%l&8u9^_}D0 zjg}HB+}wETm~bdEWPjVpno@hKwSb>niQn2Ww{5Xtsx>8+9f~=-q~e5Op-`>x+rLPV z){Zoqn}FY-W)Y8AQi`byl4Vaq@?AZt-&Q$?Cf`MEHCSTY5t#}# zpYAdmz;Gd}#=e);G-=#ddXSN3m-mgBMPi8PMVj2ir9q%(c(K~*^~pqT#A?z&*txC=KQsbF|A+57h1nbHxqbOx($ zyOi{Alu$!qReNCmpIkiO#W(iK9E3;B&XDmEeyU^xSH=8Xm!`yCm5I z2;AcqKJr@dm9;Ur=}Z0a!w>v|8on{)oWp!j>FS>Caheei)siJ-Z~cuLV`I|5eYbc!et+BuJ8?qqJm2b==j-zT zM>PllNPx(;`>Q~q3OsV0DJhYW>Q22+4WQ;gRrhE4eNLu1{ObnLh80i$o_PK@=zWte z4p4e;_nyHjsiym^J&&q(sl%2narLEt_)-eX{`^?uYG;)NvzJP!Hw3*;^fEvD=03dH zC{0ii(tW1qs$IMW+%cnE(SL5juET1%kcgUe!sSo`ho7Xmm$>R`+&QxbjpbVb^shuS zw?axA8WZ!Yk@jU1RKJ%(hOr8Qz55@uY~&ChUp@|h8ZblIdtFCQbVwHism}fgq(5eD z^*iz&sZTSB=dgV7=1%kk=SNPLlIdQM)<>&vQ*=s zFphhOn~aHAuIcG%(niHcu1wVT1{6`KIL``j^_~q&pmD;Z9*Xa~$}sP2xMAu8UdO7{ zSJZ6?*S&z+Oad~1^5U2UWqK9?(FM%UMxgP75bYciX8dc-2yCy!>f681tpU9sO4?09 zNIjeWdidMP!83R^|Dvh9UKkA~R{M3IxA>2zr3t;BPTWG) zxn3Mx&U+;Hoa5vcR09@Wggf-_bTwd^TLbxobtLt6~3S486@n^(gDPd)eWNy55gSQ za5mcu`!o@!r7o+OMFuyOBovD-q0Aq9OdHz3ObRyAPtbO3_~03Dmr?IEHN9g z(YN%qjMXIcC&1o3THegbp2B_IjI*Ajp^HX!-<+R@o0ugIL0COTXDloYVP49|{>TT* z(e4vKYHw|H0AsIf#m(wr5^zkztE0HFpDp|AH!Ji?&!6%)Z!kU1@UMnBpaS+>@%KPW zh*>|}d>CF!kL(J5$13=3HZB5oNBMFEP`?1XCY`}qsa4LO>T$R7nAo5p3uie*Zx9yQ zY5O7XjNx2~-JJ;evvXVC-^c9HQGA1@9DN;7Z2S#FrJ$9u?u(oth@sUm$L-X@>YrqS zm2O&hxxm*#&5It_^x~# z_f@Dd6}ASPcjP_{uk8*Ba>~7jMFg*n?Wbx9MTi3S!-CxMj)7P!X{*hVCfc@cV?>0l z{H=~1;0J2^?`Q}=>aJUYGAlprQoY0Go6@^GXCY)65?rl9KPx`5^N+ah zGKn{uHMX7G;?IXdz48TQETc&N4RusAISq^8Z}h|hdUBRn$NKQ9lc4*{M@=G8+-i+R z)MIhvG$ACD!S$eTl=k&Km{D?;S&t711lVzv0f+bsImD4qWWl+k(B@Q)G_B>x7`Ex| z2>!&*n{m#g`=L!Z0H9auz3pd*M_R{l5S~d3B;UfSMe?|bKcz$G4-MQtinKq7w6}mB za;t1Y`^OR}7!?ZWqlff?|9b5Q$xWX7{BB94Atz0#!B$xI^>e0+>w-|E?J5*WkA)L}qS$5(9TSnxjIx{0CzGMdO3I8++eKjpG9MwCFJRl??5sLEfF^ z7kHgiY~sVt#kj#&eMI)=8&@oj&ZY?9<}h;C-P`HLMOBS+qWD61`Oa($HHa>MPx_7p z$_5Hno_%s_M}!oa)DoleQ-TUoNbGCLNnlbbeX_8GOzCY+q)yC%(5n!QP|wUBi%34^ z&G3TH5$`|pVimF&Mjf79jB*LrUS+_?yD&tiL#KRNP>GhWx&0PdLD=QPl8_vtew0M|FUU@FXqi+^s=!v&9Ms6T?aO5#eIvo!^CjEs75 zf|IRIE9JwgfFWhmR3+W#b>?@H=FH9Q5pny3Z-CksP+;-R4n_%Mv*eO+Cr(Jc^&;hb z3DF@UVu~^gI+`-i>T#4|7}inhYiOtf=>-~Wq3!{0Ex@5AIQX6X2>MokIX5-Ko|pa^ ziwOlEueZt}_YS$~n_AtXSK#t>E}*|`huX$wQ8k>K<8v`)9dJ=*tp{hmj9MQOvACiu zz#6JdF(dN9LT+9zNi*9~yL~0}*f#gV!(mX8a<63SeZPq<;X+=%t8xl0)mO ziWY9i;OFfJI`)fSsNRzAZ>{N$GQya}FM~mAc?wtX?6uRSG+S6PBnwbS@UGsJFyxwV z`XX)7u3Jvm3A2ZyDWNZzGiKKN8*;bO|C>VgRrxM@Nq|P+K<#CcRN>!)w0?TOwmh-J z1?(4)z;b=Fn_eW;Sq|+Bevb`&|Kl1Kz;Y7g=(R@0LCfZP6g|lDUlM;{J0#XW|8r-C zKr4XCE4y!`9>F`K+{+b)Gy=U1ph<~It`d@6k1_%peO?|1OW{^mJLF%5nJg~ea%;zK zE6+3Dw0p&pd`y|;U~uQ>>hi+C9G-x^eVYXoGrNFKM1TvS6*}XXFrPzk_^5_ZT)KDf z4XT~)0|CdWr{d$kooS|f%2{UW{ylY^JMGsAiF#%3sjmrXuAKQp&0+M&H_CL!lq zgyzi4$Qh9`NIJJQy{tv#gUORw?*I<@R+}lJfofzyY7$CMDQ~|H5qgcQibiUG3b`(MQDojb zx|C@Iv=T(`Pf_Ubi*V1{Qk_daxY2zP6cPo#?}z)_0B`$bG#I{@;6Ovk!oqfLGjhO> zQgfh3`?LHPyC7f=_I&Yo8-Nllp#@GI1!RgpE?W{2Z;V>?sm1mkQNO$iVoXmodj)nq z;V%$VdY`Ij>gIKN7GSMu)JmvCnc z8wJUDc{W5cRr=)4TiVa?t>z1ybMteBjqA;0(2+e^VrBjs zHonS!1xOB$+UNi{u}VV`qO$V6hPa$>qmIyU5CWM>Ra-Rlpd0!ux$L0}QYiTL${%Xs z$KHLd#x-;xbO~qsMvr4Leu&k|qJve8tBLjkE0WJxr{itmCevRLX!m2V1}xk1w`cCO zoUG^1xV?u^Z>u!82F=4p4N*|DNF)3VjU4{l9g(2KM&JK%$QgLDkq=72gVPIJQT}OH z3*pjlCAhH+%sn~MK7k4!JVQ5`RElZZl}D97$DH-fyk=93j^~wFf(?8{YOfUU-fW-N zlnCWuqrY2Y+HKFHqAXx!Omaoc>yvS12;M-Z($46H9&@^PY?YrlY%1bqj;unfgX}lU z5k0|f1CJ-}wyEra&Nygzg>FDKym)$2X%P`ME^y(D^Q^bYdi<=VBAY%K^?sHenks>pjql8WO4Gj;ecQLR5B7oovNn zWo3oTvfMR|O>ymIFxL7e4%aQ2J1%m5jSlLeICl+zEMl;vV)T2K;%(UoFM}bL_-6b> z&-}p9{$M*qd=@MvbP2r)h&>g3KTP=(;e}i)bu&K3b+={>?HJD6TqEKhwZ)vHi|wns zBV~qf=zMM*vf;;a+2Bk!o1tWvZE-}^&n3EHEDARrgH_Y-&!9(>zz$6$d+w1*a6Bp? z^cITt5cgG(j`G@{(|+An&lgo;M5M~a+zdw%hP3|JKSD`&eu-D0ZsZ9y>R(OFFmDO! z@IQz0LlX_GynZ(R9(F&qGIZjXTVRa3hgmhn7+R5Z{_r)|az9R?+B1Y27bW zS>IO&g+KZ`iiaQhMnCJL65{*!o-4zf)P}p7hr~2DRev4_o4U=xrv|1N=PxY$lchfs z68bVic(ug@KehMC{s$JsIWEnNH7Tk%6;>!#2N$a*J4Y1Toed*H=)+23Op#k;F%(p6Hxlo<>`?& zLuB%Qe=CIPN}pnPWZJKt=Rw zszLINQ$d%!ZL8NITUp*{X4EBo;d)5az9#czqj7+DMWDGNnG!_dDff9UKxw9-us5wU z7eQnfz*Y0DkAOEWj5`4S%%!;pGMk!jQR3#}z(Mc1=~@8v^@0|jKQn7u{Hm||KaQ_( z|8DR9L}K&DKQFNsSw<0z^SoCaVcgvq6wdy{iaj)qLS-IGs%Yb_x4%V+K9G?lEY---$6=8()^Q-!bPnQv|J z$-n0y6rnseb}IqT`n6bW^pacFabe--dUyI`HpU=@`VlJq3u7QrSBwVZ?UQu5y$nm@ z;9la{N{KMU-IyyEZ6coOrD+u@36yfIyY=XYN7Wyz^^|Z3a1PU$84||_anpf~VHauTf795*_uS9PwzszjGTZ#LH%!w` zEpEEWhED(5+dG2fdw^xZ0d0d+W!QF~?9v{~hy(n}BL)4_sUiX!hO^Aa8(um)H!eQB zsN(z1@3=!O=L^mfF?__NrVBrKnw_@@7CwuXFS0pS=lbLYRh7K#5XsQoP>JuTzA~dK z3V9YGtx~MN+?ku-FkAZ;y6UU;dlVgnw6W0yC6)MDAiv0;VUzQ8|G{64EU;Ax+B_Wn z>uvOxUmNVSQcZ8+dw7PdKBZ@4t5bpW>KkWqx@!Zuml9N7yK=`eJ@Cpm<>KUUVJwRn zWmmuo7wT;DL9gA0RK~N56u4H&y<7fuQYufB>Uh%2nM>K47DEpb9rxV4CSUmP6aF4fSWPLH)nV zH5j;y34R3F`9Y0aY@$}gXn#DRZQenn6N2(FyUQA9=-B_kE!)O)#WBn?P${`2!vQ+^ zLEbU?_HH#NX(VfJ>N-&?HVFN&alD}5OIqG7my3wmVGz$O74QR9v1DAjNJY9`_|#2; z%x)fAV8YgNO#zTB5AcInxszJ9bBXs$Fq?}zzXo353N^+#!+Zpx6s)yH-dc&m41;a$t)bj=jY){SUn*|8Rqe>TpY2_}T-?u0$D?frERwkL^Oy^=%MLyP5u2%=#XH@Vj=$=SU)GE@Q z2hV9;i;Gg~K#y`(ejQE*-{(fZ0IE~{CXb#Wk%_3-vxmqG*5?H#+EE~hwz;M$f)tk> z!hk{EPmW}fc?0~euwl1JN0;_w0!^D^%*Twx^whrah)-mx?lzS4sdtMNr>ZeA4P!+- zf_`8Oe&Nt|6PcFJ^nvq4)YoH3pAv^z5Gy}87~82`Pd|qIfrqrd-}cZ&G^v2X6K{>0V$nG#sq1p?|diD@cPv^B^4TuqhNl zy*IXZDszeR zCuPMPcU2v@tghlZrI0Nmv6D-6)bvQDF}JT;YV6_22nw9*@v&XjvgfZ_r^N{_!EX6% zwCM^)YpQ?%vUbBJz3Hx80MU789~8MupvBc?%%mw9$m)9kHPShmE0i3}IVhLZ1bKjk-s}|# z5BmL*CW6l_!Y1=A50+&Mrk8(^O;NLcu&eR4Szo7hhMAvJVus*VE$y^VpIR06vb`!Z z%R0xmqifcN<=Tr-6jK9M!hHH@-!pz@;eF19aFniY^?dh0Yzg?PYkje+Yb4Ollou?H zrEGD1k*d76Eq5^|Mey319yLquySsGS=2GU)?tFFrlWneNtsZ)+cDA|N zSe43~9|Fpzac+ATi->XIrJ_~4ZiMfV^DAq5m+?jM#DgyiW&FiGyV_P#D7SDYyadvxxzw3 zT)Yu~yC}FuBe^+-S*t}1V#b-{nVObwCOvviL^?nN4E5NPdG51&;F9xA&L!Wua+MUm zxCgeq{c*<9a~9ipoNF)Io{joLU|w~;L9IZI`v)P*3vFYsgBBdW1Xx+bYh}b#PWr4P z5~Q0_NNY98XFoHz2yjmy;ZQiHQsdJrwHNQ+{)O4O~ z*OOameV29Av$9e>;WS~tBhb8-uJs117`pAGHu8IF>RN2jqx1dgW!>lr+J~#v>XDCI*Zlr@ zr6m68`lE@dUTr~|tOiSCc&y>NCzpbwqqBO04nCr{py?o9{F+=W&m%eJJt0N zS_S7c%qtE0e8YZ3s;nOsV|DY#UrgE7SqBAJd9cRE=JM~lKe%$Q3K=dgy07i)8jDO` zG!61N_zN9K9c?#ZoyJIrWrI)%g=#ZaNVjmi8KCA>d(wB~u5Kr6Fkr9H{wcuNYwtzN z+ZK^uH2sse2Ta7hOzeQ$r!JD4Ntk)LKM1yLry>?LC&Rfk(Gb)Q0)8~KYF(UQpm5t) z4sXzKkoU;3t5FF}PKi95Wwh^LKf7vJO98EJ_{o?%S&qaqQ)*a%bwVUs*?jJ1g7z z`Z-*`t46i_h(Fo0%W7ueybEjap@MP*-bI{yG} zRTnUZV8+Vuy#Tmi;lRh8LJCaG0MZX8!elA?NYt)D06IoFh~0h8sB@8+u$tIH2j?{i z^X=q7+>ACj2S{+9k{@|R+&h%4nesNm&&gz&bt=5zm~)qG&y)$4xS!cb)+u3|SdX7i zIXKUfKL_@BDX8&AE88tA%>MR?E{6;}kc4;*PgVj-l!p^roFcqnG?Z5R-!iU~}IYIKGOM9w223AYrM zfEzUnZ$Rq*hj&oad=E=EO~kt>b%=(L`nQ9_o>m9Uf6O&K1%eL^+NQYYBE3j=%0VJ2 zDEg__dL`*Vr7I?92k*Wk-rcqKF}jcSkH}%7@a!Lq&LIT-vD1X`j&kr3z);6DrX}C7Q8YI5`~J8O<3xj^snn~di_g+>7K_QfPf4Vu&jYWU zIi>{G(-{=9{-JHw^#EJ0aKqB4Sg~8~^;)m1(Cv)E@6(IzfkBE}A=2N^-tP)8&97Ey z*>01Tq2-@8{LK*cltDBPS4V^$9Y0;9didy>)>ejq_M-son8Cu1>k-sDp#L}=w6_wPdqIC+o$+h%>ja#t8+2T28AjSfGJkwN@-cqw;{$$(~nPr zp~#(1!YEN&#>=l?B?{K*Y&+T~PTh2K@a42sqTy^tXB1fe{a-BHJUT9!+k zh08&+uQ>1m{*%ttcc_hFVKYP27DkZ$`vrFawa8$h?3em$>%~s@t1Zv;f{mBXffVvq z66=VpiCQ-CP}tS^lfnQ5=g7;x>XkV^E>q#Oszbs06uNAb;f*p zW@%jCU&HS2cpa{;)t0XF#CM7To(r0s4Wrd2-kSJ%i@xCE##127^PfpFA^_TB%^C>MypvYTHLzn8l)c#nG++*^bOMdqV(~~VqK{Q~&OaI%w zrv&TDFDJ?ZRU)o4IhAa#bazzN6e?|l-7Ojy@o$ye<=C?!?5hg0`+NN#>fQt#%J=;n zzQ+uM?7PUmBs+y{Gu9AEh)VXP#nMW)8T*p#Su2ucsVv!|%-AU+5>X67h#C7}%>CZ< z{r-Qy=Xsz1_xC=>@xI6LymJiq+%xxm-Pd(q*Lhv%a-E;EkG*l#!}6-2W+=J{_4%t4 zrtF!-+gUO^MJ;b~-nG8u%=z~da4wb>r=7*pr*{I+I2?q_pX=6G%sh3b>D7iB0R!bT zJfd>6?uq+uaPRI|a3Nb&CQq8>s$8LhOv+K8T{7G(1|??M!^f8X1SypChh=pvt;3zV zK;0;<>%TgkIN#-#y#X5Pw5kbaADy0a;KC8Id(Oe{5ytKFvcfdF_j$Y&ROv?zQ z;R@l#93sKL|Eu4vFFT)@ZN|&Wp(Kd>2aRIGcu1JX!JBL%^qmJxL(`eAnTzATz4-34 zgMXyI)~B%+in)~F`jiNNlYTJ7a%+8L>{yL*{nPkBvAqVryo}s_kJ{L~nL)+*QW$?B zJ#izPJU#{^mY=i;Pc-4(u%9_1M3O!3@&bZ@`yX!33XUg$b}y*S2pB(1%ABd(;Aqn! zY9B^m2d}fiG2lGaPrI9bJTCej%P0FQTd3KgYyMw{+vlT{+miVOCNFIOk~gK*auxTU zt>(HmqyRyWh0@#fV&lKhUL_$Lo7aY+%9s5VO7@#UUY0vb$z7ex`=}Eoc(>Ed{2VM9 ztC1y-e%Sfwo30}?oIm=_MrFP~_7MjXMfAB<3F7LWC4$=@zV; zo^J`dzqC3u4Q1rF?7U{%XnjmL;Vkg zv~j;$S@^dy93Iqrs`R=*prcTJM!@~rvdZ~T+2rGuLGL*1UZfLy;fLm4UxZ>VJ&Cqe z;1gQjl5rm}RB^bn`h6|sAXRUUH^f=}{1axy&e6hfxlO(sqoR9R8zVHb`b}_sMgkMZ zWT?ceUlKHye~b2x}xj&J+};+4OF|td|VDxpX;E6(<@pN!5wT7 zYT#8cl?|FOV3uSbaXUC$;G{HVp3iuW{u%4rKh>G!zO_3xSS(zXtLR}lG=f>02}o8i zZ=>XWrq;72{jX{g0X{}U5}*|3%|`FBXQs~`B28M2FXn-lfT9=tp7(e!{?soN&5T+^ z?qF@K)jMJB69*BybNj7cfSP2`1yt{W>YI1YNwDxF2=T@8euvEe74c|7C@G2Q4FTUNbiI8=UHfH96p7e zlg2z6*h};%c6^BHT(YCe@o16^iyN0mt%cqjGCmpjD(296S)n7XJlL$#XQ{z%+HAH{?^k#@oPtmNoupA222%`Q6JOa`&fVOH z62<%*&A>?LY;S8C%%au1k>TZ0 zN9@kt!`cJiKlepujQRM6rnQA$*5R)41FQHgmxL7@YAtt(%j`jcm$5K=7C;Y*)c?08 zoppDa;QEsHqfE`fR5RaueAU=N560WWZ;>%c=q*m&BgQVUBWZbhipsxE5vo$f*Bmns#&3dmqdu(gjhE`@NVyi^mHcRdRF;omAdw+x~ok;(F_IG^B%kNe{#J^K|{QSw>R=o zkgmDI2<}F)6mLI1{fd&&8b_srW2bu?4=9<}&i7=a3M* zY}6a>-?iGnf&I~P#mCw>+-AOspO*CUuBZ0olre}ETDK(L+Z|NdVO!qR#e3$a_6Js26yo;ta(Il_x< zo06elxstn0^#aVorrDEUTm}jFwDx2h8O`6XaJvNBU)<9dCTFHq(WavLDW(_yxMS@a&VP@mG5{%KNt{@j(eU0`Iv)rg)3;6ZZ|RF zVX4N*RuaAep z7{4k%xOTo>`PF3-NCmjE_=G&>>G3)k>N^^4$2I8L!ih#sn*?B6G4m?+!_j`+ye4qg zYKWx~w*{q?jr2D7)Gd5w=;EEBi#I+45W|Qvh@>!x?4grjVZI2u@8I9ZD&5pdMu3ha z2wfFwA?0i8FTs-Kq1dhD8u-f}5P(Lk2o3GgEd1|p)(1nx!67f5+idQ?C1Or`q?nj) zp1#wSRCMdm@$ip_h$N%xkqZvrj~4<=sq4b8pH|wlGLA*Tu8(ALcKN6hayKXHyp&?p z3Sl)l;rQy7x6i%=II5za3kSqvMOAekvTO$?d}9{Or?zMec_j*1ONLLv=iPprJa@y! zugF=ok=>ipR#S}~OgbC|yD_+Rkqrs^Gptdo#w9woiiRczghd5`%!eJ;nN?mX@B{Rs zn95l*v3rxYmK!6|CgQTAOt5p6GdD-KWz!~llmLF|`729WuD5R`?x=BWR6oeGOAL93 zXuPTe>Q8*{s}_2gNS2ShueUI^U&9hdLpi;50jTAYnOs3i#pu|uK)8=@>qo#?(20|;>aD3tR?0^bIoQmFgv`>fIBRL8u@8u#u95a4Iltrx& zxvCXVuz>*>-P`-VKRtX*WoS_~!XZHW?f7o-or8)QyTp-VvBMDwn9!8&8D;&v1f@;|X#r!5=6M>}x!nk93~l_;xfHHY+79jIpd=1B;y47!mF z;zZzk98%{<^Wx)j;8+$zggf(u>f$iR?(x%6TtQrBAvb>25^r{! z-?==El#jT~!$z!Og?lNb|)EsXprD{`Dx@z8!ek{q|8! z*C`gLFX$2STcZjT#?kZm<9UN7;WO@C`2;Qm%1yy} zg2&^g-o;c)NH=!JLEzpw}Z#ukxeibz7{^oHVrIvTh) z=I|g?%Gbe&)$o{=)2GJi|P7Ee8!4$2R;D*0|=(2DD@FY{oy8s4ob}o`9o| zip zh!IOQC)jpK(uZkPsX{?qw&3O#sju~6sf=CmQ^_`xIO=!ByczSPls zXqH~h0w_hOe+gyYbZTS>x)tIwXGcWJE4AMDQ4ATpfW4;xFxdv4Yel(ASG1#nYiW1k zw1eJ}JgLlOI!;ZGzcFZfZe&5*P_0I|6iVbGf7&buQj(`@cXp`|$i@~ITQenxX36CZ`QVyL7EThe@9(y4GPyv0y1G2>}k?g;SlSi%EbJcxz${nPnsW@<>>gYmr2Np(w)eumQ8r7T;`|l$PbQ5wK=5IQ543 z7LD|`W%IJQ;>$`ly^EK*llLmOHiYHI!_yjEJxY(7pBCvjeq&TwxtWBcNDyd<+U(qR z6+2}BV!p#9BASOc6QEJ+159sc!&wYt;rB3Um$D*x9)&#%^%G&T?jH~|0|Pj1V2b3E zIW{hVv{p-n;pN?kG=*OBwd?N@Hsunk;9`mLh~#A5TK;ch#1)qao$ukQ-}>SV2zLbb z7<_sk$X^VIR3x)fzlByD+18$2*rGxpP@r!MmdBvhJb`FS#{}gN582!`{9<@J55~S- zHV1+LV^@y;_2*}OQY+Zmc`JP(y`ai4{%TAfY_7h369@TqOT>(%SaLUCk#JsO#ndG_ zKt-_x8i3@c+TEKuyOhth;Q2C8FPt(*z1^gHXK4abGUo=#81nVs3|&8#eHs8B{aVNP zGFyLrui#nY&UWlSkAg$dSQuMDim9R;t9k_FMxjN12cc=Ih$egq^W9=|JQxxaFeBp( z`e7n8nbU(34uRl`K$LOP3n)D{-G{X)3&mZgWYNZal$dLB2tyulbKG_n+T82rvpp?L z1o6q98#)i;aX37Q2H#mTcbFUi$T8igrX)t^b#VyKSw@KJ2?5ABi(|>Eg&@e*3cO*0R2aal@+* zAvh{qupbnMNkmv&9C!o%h!Van4DLKRkX=@W8D9psXJ2zWpS)C-b)k_6b^r6?Eq2GZ z&dNHket_ZDL*S;EoO1%e&f8@^VhPaShZ3?%iwL8>7Tg;H6ui%BcF%$by}&a?7-$cz zNY8vtd<0WTRsAe}Y=VTuP&rNm@h>lQ zzu?GVse`>KzNNX?LeCs%;&NyWx8wx2G<%Gz>E;or+f(@f8-UQ~(39Xm3;F2oDP;7_ zZ}$~5=(x-ZHhTbE(FuMU6HcG!H}x_BHjx=lRXp$sjz!QPkLVfMqxXNkQ2>HpZCY(w zs;ZC-{FZFq5v&Y$1fgaaA`ZOmFcX5Flwx`*ouoYmsfTDTfm^wu`yrd z;Wm0tA=EdK2s45A%`AMTYL z!3hsoL{GB`bM-AUv<(9*q(L9lBat_1<;=!XAm_`rl?|l_FFPQJ(Dg_;?N!>`0b|W7 zND{aTwhP%C>ET5VnP?#3#ds*EI4nYHbP+{=3PQ#()cxNI649jp zrOQVT9KNjtXfr%w0iro??f-*^(qHPsJy^^!Me_aU-z!pcScs!r?vVlTu=6_qsy*vxhpDu3Guk@A= zm<9lBP%{)ZkChwkXDim0^P#}bH4lpVR}IQ;!rku_a6Z);M1fm$H)__ejSreb+nh#S ziH@0u7%B@sUac^<$h-+8u3-U{L#9a#Je9}qmxN>;m0O;OH~}t+zvMS;8XKQ*%}nkywN9nV8WT?UVDZlxaEA>2F~ZortX+feQbSe&XdEVZJYXM25SM90nJ z;`!wGI-6Iz-a}Ek3U1H;4`X5G=u8>Nj!FM!T{qmFgVrK0BNvg*N=_>pWljdGZ zr8+>uSghQ(DAd6-O9TrIAzD1!L9+`&dHagDL|Ci{^MVg$|7!uoKU`S3JP%+2F}4&F zkrZI8W{=4s-mLulqW`*;;s2alhxg|cQxRxR2^js$e(>>+0p|L* z{*sIxQNI7GQaIT1|6Zm3nG$GPENuDF=G$KX2?{UN>E?8Z?@*N(u=uPXXzIZ`TR=h% zCoEKD55w!fb0g3wh)yv4i7I*M8yYo-`JhO{>JgaBcuNkr;A$>77PRN(eei>@c>z2PVM~;!~OVO()jlx3~6?6`=N5)@eAhR539Pg zEjdICFW_@VP@6kpVdkEI6PgiaM=Q>}y0Ky<1s73}9m`p-ptY_h(@43xm7zr`A!2V$DiL$Y26m3JHmDy2=n;kEFx@pzTktwMN3?(}31a@eM@)3KWKO`(t zhPB7uUDXlS`E=OZsWWfdOLaIi23r1)2^q*5$T|W7afafu#g=xj-YeA@+M(8~+d|-z zuP)Df+(82(NLPRz+zqFl`o?`$>LTcNlODg3eJ3RBt>q~DFV+I#+as6PZ+!aVmWWXJ z*3t)3oqHF3Z^b<5zHF|0yGbLDPPQQ$1ZnfNN=G4)2yWl_rhUO}9pK>%d1(J>-7YjC zd+5dZCdDsl9BgPV!*Y67l#0LpigZe~NY4df5yd@@m;ua>CCX(iops7hrPcy0LzVqt z@{lJBPAW$pMMV;tZDz_)1W;`$MwBA3RJke&*oTNd zq0M%ZkZ-!rW4!blg-rASp;#B->>ffYgds=~oA}i?Et)x!iArt5Lqkas+L0O|!EgY= z&lCm~<5vRr5(-1EtK~<{8e)CIUH%o0Y}$*N+S}2~p>t-B zyI!7lfN6|ZPLRG$1xiZ1L*?WpS&P=CZ*a5=RL|2OCd_LT?A80_%pqU!JG z!4Z6VP1u%2F6Qd}Pdi7;;gX{8R-gW$!hXi@S-FaU`A=45s!jp7d3ezY;*25<$~h2} zB#xKqi;2I4@@T+BjE;jbLVk0|0~s*oQHBwRM$Eb}tn3Jqb@1~uF1@Tf_II2%bu8ob zV+#ko53rZ$U8iLclsp+v&YRq$Gci?dGj}{ONmAEgL z@@*R2B7~-rD+)s};CBGkFQ26(!M!u$Wp&F{YmS+nG_m&O6g8Ls<@oqiB^_!fnMavK z+&}Z9Kp@5UNq*J_KE%AO)xW0NORo2%lTbXm80$?Hhh< z{Aq8r&)K5Zl*g8jM~D_-S|~7ME#;wp#s2FCv|vP?Ae!MEK&Q}%Ymn$cI3=#mfWY7) zBOWf?@Ypxbk(FlRu^{tBm~HYKy`o1U)babrt858-xM*S!|HT+`**ySpAtoNTtn*2Z|WK75DHyliR)D z1MevH#?lZhKu8TAveK89$51!1TWqNj*GPh^oIiN4bfB_Z>IP~FlhTzNvlk!!C*3ii z^-blV=GE0wMZn66|Lv%-LPZu_xq;Nt|Hy^DDT(IJnQ2|(il7j8!C|lO&f4zxylLIM zT61y<3_`E8W6pNo9g0HML9nN2dZJbeDrAEdbK$Utxyp0gMOOku2mxp;K4XTmVQjv` zbS-D8L!)sDB;!_GaXtS;Czyli6#rl0mZWFRstkB|k#5|}`|Ov%nT}uM-=`31Zxj8* zsg|4&v7lFGpWLsPpA2UOMZw;dfA2JDJ`r6MpYvN~y`-kl|3U2rJAGudO zO87G;*%SKCq^>rzDRdhBLK$gh)J=sS_quP=P(0OHRPQdbhe%p~iYLF@c5!#@$`g?s z8jbhFrx&ysYl9p9%6$xhZ*QCe_#f2fTfDHXY)^=3aLT*MAYd!IjulU?3iIGesurAA za!5tRK<<6Ac?*U(1cKR0dpVHj#6_4yl?1NRlHiasq!a<^Pk^RLC!F3iw5E&&qnNOI zlLxVlrMeA=OTD|?cmklmbRj@uBwEd7{nHDca4gRu@AtI<(^SCz&B;rJJH1sqSSW1y z6A9F&Iq1~mxM|6m1Hq2a#{g>AvjzB$+)7Y1##&uEk}$7BH;3GYoENDPpPKSygF` zQSUI6M%6B2b1u|t^q6)GRSSZ({_+nj1LJ`e)BeRWi!+=N7Bjyq-?3}IONYifSQf_z z|9H1~)V`V)Jyv3&EK&}bCX_Q-W%y5|&yU_0>v)~FWIN}X9by1D5y|Ez*h<>y_IZ+D zA!GiL-1YTN&FJm2T>l#=aJ$`~-ZF6YO*YlY>ieo>Co*^YYzJ-71yrRAFjO4@cq z2@{hdhL zGR+V0@gg5#+T9uToYVnsgb4y-aW|48N16rp%v&VLyrl+_%m`wx0`920jC$=AG*~uQ zk|cfLiiS)o00S6TDFDDmgOxa+#2&ulOl#K1%Z7v{Zt>cKsZ%OG(3I5yE@OVS{f9+C zL-eO890w74e^GE~_62%swk {SK8bl}8vlA+=MlXkkDUR)90WG$sVjCw9HmT4rw2 z6|;8>mE^{yRXg*xtIO6?-z=0A0zlxsveO;eebN0oqkBKJ(6~I5SGx5pe-Rxon&$9) zbO8X2P3x(8HEV~*H?MVRF(cjqN9I!VtF(H=jlVSGrj0-iU3y6#IJ=vLR%Xy?UBXl8 z$MI^1`EsG>^^l7>IqP5LMD$h@CZ(^qavD&`h%@g)SJ-i7SXY-zmS5i7KA3cWYcn|c z)++Gm?m4}?EazXc?}7h7@lA}cX+Z|1L!;J-dMhS(FIozuSEzJU)3mww%I(UU1)p)> zm2x0mUfEuL;^U|~#xLp*G~nu2!NtOsIm;$EaL)ELk%>gvt_H{dNNTSk7E6jy)#ie= zN{IoN&UWzu^fXu3)U?jS;x%polE0Jd1DoWPzg=;B@7LP;6QrjLSjMgS7`_;YWJZ3* zEtR5@343rT5xP^D@hx0`f}uS`|7Pv9o`N5YfTDV93{{cJ3ZJc?bG!{)d~4ug1BEa?H@tJMa5&kGaCux_rh6v?^8ehNfFi5FL}(oX|MRK^ zKxpVVVc*RW;*7~5i?XC7VkZdxMpbdOpH+kc{ z@02rrXIcb1{yoX0tq8{dw&&`~{RxQ#feR8oy&9>$G^wWKL= zACr_1LF*)@`FIFKW2z;UYp>HNc3a9$GuzmIm^FcE(P^1~iE~c=S&3naSsU;VAunc{ zC1vgoy~iZ(YmyLv><4rVo>n2as><{DSFN2gzIJBAhbk*D5hdLbC0ch+VdY!0t4}@f48jEEPkIqchI_b6@ z+)$!Q42hK-054YkB7TinyM>|{LWX{NEYs6dnO%Sq`MRYC2qQ`z$E&SlDqr_ z^OwX2@`791cHj(H^iMs}0V|H(M?NFJ+$JhLqVdsgtTmh77m$?%+fDMP1)cN5ZYIm~ zkE^W|g|*) zTN#mlkdijO36<9(7!V%c6xV}2QC1^#c+Q9ABi^FNQ&;cMQh(z3dn)t2GmM)do%M!G zF71hbB*61ImZvbrs}sS zL^O}at{m8P8;Uxt4jJU}V(WK5+Pz;s?PX`ka&#hs?$t{@$Qs|Z3HAI6xGx`q+*EVB zt;W3n(?K_Xi_R$j1s_GR%N^QE#Ikhf_rz!K++J3BhZrOYZ8`lVpQe(#4Z|7Gm+~cg zbV^I&3hFbR&qN>)$@k-3-kuC8(;R#=zBeFp$mg4;cmRuym^;YvL+a>YzA4*b?y*pMT*_5SN+TYFk%rNvH`y3(j4MKkrg7id7wdZPbc^kXgacwUdzNI!T06 zWe-@THsV)ScC~uG$JH-rtfBjo6MRizzHSvj?%B%ra ziV@5a?4A0lD0jQn_pS2^$43Jg2yG-GUpnjVnQ?6}G~&$tboXN0dy|;m0P-7?KC9P+ z!+WsMxhYW&pm)PrdPu1nDsvTMJfJ~;n{XU;l>W?nyz8|(zwT$dmU7g?53L=qUuEU# zbPTF*_xP&nk{J2^exx9WuFlTWFr62(qJ+-+lqRfx-8$cM8B(7}?MMO-aZ*wyMt z&5b=tN+1>s<(w6&cptz7hbb{cRXRtLXlE%Ij;F|m_3P^i$#{Wv%6lrG6(2oj;%8SI z0~*7o>NCALj#&wY+D^&cBPZnb>!q6Sk@BBckXg~$<9`LZ?~QJ7Uol;kyYviNGMe-9 ztO45x`4I5jpzC)m;_jKY$o>so=B9(4%o2vNTM;lf4Y)5~$!5^T1Qndb>}hBpvh)i> ze7^P`r5hzMYO-HLX*3r4!`iM?XN7F#SFX?Sl$B6=>l1oGqoAYRf2;sqPpwfg%c)V9 z4s@Sp6(*%|>Qrm^_4D?LmUorjRnv=^Q+v=sp*lIL_AImqsDnRA`u?!c>7cs+FJ?0B zox%7v>Nz2YFu6i8BOqrBbUQx)xmEp#O#E4!X&!#BhH5*B!I;}vcL zB*R?3E{yuUws#FAQn!9Bqjvp?8zSy9?-jRDM5u@M)_ibp(Fe)U-?9^!+J>R}{BytM zz)G0+(VZX$SQQ4;95Uq;9a%5R)J{VS{`ejPXtNuAw&OdDS#)<^B@}(HckzTNJFQ~c zt6$b6^1ro}<@vhfNd{xV&A)Smov^g*)yQfRdG#kt*w?~TT?|wdE`)C)9Bg(#)E*NO zHO;`@$7s3j3r*RMd}Ovx9HK2EL1>NL`D9B=8vSXB_xo$eC1`XP9SddlcU$Rv>xMuZ z#kV2?4zsPM(H})ft`gt7xse9Gm-EqAJV697OYdm2vh1`7&vJheo6Th?)`pN4u|k*T zS{MAR!haAK4voLI#6grv{cGX42X^hvqu}X(Sdbxj*#L3o7##=z#1bMosf%?!eQpUcTV&ifoaoyX zr(I9mAr*t)(h!pTWV&E9l(@tQ=Fh2kVf@Oa(3^ggJ%+n~CR!XH#h@&Y$ysJlMOH(= zq_R^r^5Ss_vVHRtqgh>8ZW!0qick4XahSi=lEi2#2e#gmKe6<52oUGVpK$fd-XZSl z;6(5A`jqzAJC{b`{-me=EaDm*=YjJN^=-%1iAI2G|5NyedaAPk7D-wq!B~HM8UPFN zBEsYlz}3NIhHrwBXIJi3l+B7EV|>c8j#X9R#R z#UdZ{KYVd=Ik%e;*d)hfuTMEgaKy1k#6#A_PRuw=jNw-6(60ZIfxb5rlzs-p?ezk< zg#yXe&~Xa-g9ff8H@JoS$H{vJR$}@0SL#IT!^Fq#3Ry^!M~94r3xt7@wk zKQ1Hp3H3OseF;4Ua(8T=>Q_2#L=efmY}q><_;t?!BL}fTu}-)QGvIoSd}wF->oF>| z;z!8;{%BqkoinAuL4^9FqIVFOXSP>I0qt-%Q$Q*_*$`?N*bsqH3g*5MD#A!JxaHA;1;*SCkNen|_ zaHd<<5sit|05}jQJB)01!#KeXi>q1Z&YyD#Esn?K`dyElTE6j=8hlo=7%?`hE)?F% zE&#O+12ry-rXevgB8nezwsAa@Tyy7sa1;b&UVLc0jgjif`}&DJ%GBhP_*}1xE=c2&_Kg1aN2SBU`!Nb z>?h-9z`+oDUcB(b6Mlg3kBj1CDCl{tbM&In?x8pnvz^J1HFoskO%;{5^J~kB>@z}T zV9N|}&a8;&$=dor{rvb}tf~jG>T?Nh%*TcH75dBKQTW8RE+!lkdVU;QLpB-6A(JBB zaQqOJWK_}U{l9CchDpLolK0WYphYA^4^sIN^1?e9p@$B8(^v?f(ly=Xypmxo_qCbd z;LqP_xk3OX0P~FQH(j>x9Zi1-_7Qvx9?P4K(1fem!MCJu*_b5D|LAY~*tAwrkWjEP zgNlX1lJ>zzuJBw3@GFg4tY@D`mzsuE7{Npe9chej6;JcFp3(5~lAj z#6e{nwmPuc{DZ`U5|S!sFmls>Q&P??H9EYu`%CG~ipMJ%AfWpCq8pDZ9`TW=afqI{ zMuK+sv-!{7T%OCM-vq~B4u!{8G3@Z0$RcWSsgiP-6F*`97&`zf-+|Oo! zWjGRBoxjtUG+)rQGyTh3(xt4Zi3X7LJUq%8kWLY*m2;VWHde8x|BFL>Tw(-el5=xv zgcx||=MF@mEfh5EQBlx>{U0rCr$pzi{!PjnlX4?OzS*3FZ>~{>4WBD=zYFOg=R!q7 zfP>Q_hR$$SV#dK5=6kTa+Ir%voS9!CI~_ibhs>)`M)qLhPyP}B4k+5L^GEWM zk8Et@A$jvYjPIAxLk>T}@%-g?*a<_;#GdjyKD{uTN4b#)fozWWhEg8nYv!~qWe?Zw zC#UYi7Fs`~jA}g^2b1*}2nge06FawE0{lxOd^2+gM1s`WjOE@!dbim`CrIZ2K{owk z<2jM#de2T`wPnCZ{Z(;>vlAmk(QRU*)KcxQ1tmM~q$>=HM( zBBftIVE7<#efK1V6^&2+-c}VF5UWur0ptpOQK(p1fjYyI6kK$se(og z6j;yK0LNYbUXNuTsxT)3j+#`Q-32!n_C2KX5MvY@N`i`I0w8963I|H>?$rr;LcOypPp;62@-bQyAYOd;9u3ZP>dr z_tAG&fFzd>=-v-HR$LpL$!6Gz7~Zc?8pY5sK!W`cQ#$L%%nzgQ{XJeuo~(w%;e7~Z zCD%93kenI)=J`7|;x@i;n~Lbh;>c3mhq#z&AfY!Djb;JFWI*FE)}a zI1y`Kg0LvN3KJiU27ffqC#nMB)ZAl%@B(LK@6QKy1p?&vM7Lj`L2IyZb(^_Gal zThzmMk~d#E{59xHEy5Ht?8k90{kC)=g8aK}3I(12(=rcB6kRw6D}%0rbP~JAlP6n0 zIKaH0-t4AWX8alKZ3p4}s$J}!nqr8TI$OFDhLwhI{778r^13Cdl0})BzOQd(PQixm z`~=x!xM{oz>o@CdvZM~Yv?rZ2{4QOPaMLwlmgAmrvc~dGo_7 z@g^N69A+JgrQ(ko&>`;85PtjzQupt3dk@~iaYx{buVJ&Fgy)`KnlpZUOY{M+$=jk> zw`BG^sUaeU+^49B@xr^=3DNei9$$57&P;vl^*+OOb_<1XrUT?cNd^S_n_QwIN8mib zC9L2ltwfMjY3)){G$t6A0TIdT69*WPW_HmWkvMWy@A)@3lk;kGewR`fDo*B3y52Yh z8JC-H0tk1>sGu!&mGGn$FV|p>a3c-?#V*d9ktFd?fD4z4FUWf9v#x9fspY%$&YRa;+j|P2;MD(!SC9Q!3*iO-WMo_%=<^^44h;;n#~xleN6B% z%rAW-Ye$Z)HgSC_D0hAJ6wSu(o_MC3-fi|R331bhol?g|Kn~xgKyikoZTFDeRBAIiJ2Cyx&PtR&VW!i{A1@Nc53ZFumG?5&l%o=x59W+RUEmCciI^ zIXWHf6JI^zbNW`BK9|}fMw`IajaC;?V3(KJvxl+?Fa~eB6VNv_2v_$ha>djC$5)FJzF@P ziL@EeRDk=Xe6VIHXU$DmM`~N}7<&KD7ugp2SmA%9^vFc~t0eWnUOuRa?9Xa!Z+u=a zGKZH8s235uyFAjGZ`-o2ynEdtYjA4PfNru%a#onu9h2$gwD4+T3GTHshez=_<(+}w@nZVVE zJPPJhum$hvP?CT)YcmUtJ_%T@|HY|Sky;v>MQyf>qty9I%oAXzm0}0A6(=C>s9`G7tfAZ)wFBXi`jhXF znk6&bW8*JRDcdp&_&-3LH}|fAk}s7r=-qvP897NAY?s#q6qYrQ_u2(qbOH4>+FoEk z*T(cUo94J(Zha=!5T7T})HlO~NDX8@fe=ejwo2MSkvr*q`r} zNlgc{Z(oA*7YfMfxC<(DklxTEYxRKdEvcJSc* zFq=w0cYlG2Puw+kRYKzj4s+0uv<{v)Y7eUcgRTa+h-!rB-b-3ovr5&<(r}h!LN<*a zP4H3!i4QKAOXgAOgH}a{eihICW`Oy#4EGEdIyez$dJLEA#Vis{&VCiYlhT;-gqCm<|*BYW&lmC+b5 zeI*w>(S%)Nxo-eFVk{x$g@8{@K80g`{HDE(J%0W&S&17>KB~k~&>GQ`hYbp{q4NeC zh8cT-n^nCe=Odw?J)I>@px;sqESKQw&~3>4$>>8JH?`Kc*TxcG`ko9YU*TjiWk%Jt zR`oKJ`-gViXzC;mEexFJV-`+`rAIvwbLkR&v1uihHSw$NX~&IH4*BiffNKV@XB)II z%F)IGW>1 z(pU9godNWVeeuWn7GEGV0{M=dzZ|1suKnz)$L9eO-o~d{XjB$H8Vlt9db!K3d z(za0JDPy_?PKy7>@06~-!ch#}?{VGFF_K52x*Z$b=t@SxR^t=NCU5^P?EmG9jPjmK z6FzLq^I|gJ-)(2Mtp#JMxC$uzPDc5}Ro>UbO(iwpGEZ1qZn*5Ps*6xc{o{kEVKi_U`=Fy#AsW|mD4*Ul?|P$I_ogQY$oJ46by zO5=T_@x}b~+^GM0+#!#C<1hc=I}17+inowewfc_d$J~@-)q6<=Ag}$;Wz?Pk0{*l2 zrWaPq?R*@%iu`h6s4SB#K1T1f$kYm16?QR>d`hzRLdsZsbdbwjf`wb&nBWiA7?-A%V@I-*@McQc&_&YiZ~Gc7Us&$WZR;)n z*{E>KRaidcUh*%DrYYt0OoR@G#Fps4Sg?ESXTKow+s|OPSm}X!{v(21(USd~J*zhz z6h#aklU8nOn7^u@IEIHL+xm7K40Ja?=6%cX zsW*uC?rY-@OJ?tZub(VAT=g06-5D?sx#Vf9bR*W?oMmUgDC&Uea;%{ZXXC2amv5#g z&-t)5cs}PeDlkeur60UAG*)~i*}Jg*_Oy+gP5;?XUws_(&)SI;^iit91Ac1UT=7l-R~*NjTQLfi;s^pHo8cI zZ@5b1?CkRbX4R2CH-=B*o|`%{6iVU0A*`$fbLQpIBL%HbISC6dOeDZ&CV~R`4kJNF zT7XTchK;f=f~LM>)D>P5wb(HleJzqjBaAAfHtyd0nwU`*rLF@J629Gc7>hYe%PRDa zd77Z($w#mK!J%@r=b-w#THcf?KfQx$3>M8gb}p7Uj)iHNFGqq+2adh*^^i$ULe3y1 z*Hd|#jb?p0ObW@!+Y9otPa+eQsh>JvYBS{RGcFf0XZRnl4V_xLow&f2W?~x2$Ky(e zthuq9-=2-Qe7C;Mk?o;j1Q&gCe)6zW-g;wJ&!85+yd#GY``SRb0Y4vSvmvTtL(z01 zid#7;x%7v@hqHvPe0^@;=6aPn)kNUdM{45uJ_1q)I{q?6E#R8avzzy=~9C{V6~^c+#E zqM=--IkePBu<`)#niW`DW+YM!{b*nMR1dNVGQXcAfA@e zFHKp=ane>E{cvg@mP{aV;Ca*{(+!~{wT2+c*o}V9)<@1+NAZ|L`!e2#iAU`oRQ11{ za3iily4Jm2gfm z*YD6FD2!x95ZH8c|ALyL^@ z1F>R4maEE2inw?vR-bS8-)!;+}?bm;TkI*rQEnNRATIH3rl1ZNd-~Pcc>8}>0Ld#9??ZJYY~%v{qs`=b zaD}GSku)1u?>r9ln6T2W)jEycDF<+~9>IZoDzxK2Lx}~iam*guJq-l}RjHU@ItE0ZnyK~8@f*Zj+J7}`afYCnhT%fg1GbKY0ya2wmzUd5ZZ?W9La_RbzL1NM|||Vnvg>?(2h}?u=GszJ#u6GNU?Op#Lwlu2Vp6mtCko-Ew~LL zgfnOnqYKdBQ2N3G#HKcQ%{76Ln}1PPhdpzf+J(O=QR}x#m4Hc{_gf_e*~J|yl-id6 zX7#P}&%*|NUp;~wJAs*^?tmbm-!IM1m}zg)?I z3$Ow<>kqf9m`;i88&Bjv=M=lSmobuCDnc*YuN+JTY^~l-fzUdekZ(5{+BK9w-##7F zR%cy%jR<8dUp)Qb&S)>|@zlKH7c`q;Ww4-}l0UU(bBNwnOSs1qgd{^y^qkIKsVg2J zo#P_zgSejbo+X5-w|{6<;_Fiy5S%IlN=etxzj9k#Tzq*i6p?d=Tb-JyUivJ^hz16< zJ=S`aT5C@^yJ9)_Qt8!5)0`DUR3U(nW2g+J;mVq_ zgK^x^LuYR(Tzfizakd&JQSsnzNRO+LLv0y^PnZ=#pMxU zLUbZf^?HB|;Me@`Hiobs&BaR`@HC}RZNhdH1BV&)l5LRMdQrY1efqU27<*OB-HV~7 znX$3D6A~XZFAJ-yYn$dHG0yxV^pSG8m1?Ke;PWlJ263a(EsO;b zcIKu``=VKMBH>s43I%<=yy>EGo7(zt*;4KErQ0o=2m2JI2^YzJj!UkzkhJ6b@ zoCjYZwqIj=>b2T1wHhGS9BNYt)V|_)#X0h_QzxfLn1?;rg&$?n>;{}KOYSReEPMVw zT@(+(8LhIkUdzA80+NnrKfYc<1+r548TTXlaiIJLii#2iZ1Qo&?%u*0eS;X1Q4!+d zJ~X;BkTx3lLZiWZNR%i%PFRyT{jlCyvotM8{qyd54hR+7LPeKMdb(^!$Cm4DZLfmt zfkmS^^f1&Nj7JoExHcKxX{DZ6XS^qeIDVWv)(ns!CkAarCABrC4%#YJ{d$yty(fN< z!Y^3yuI*6FGQqfi!*79^!14xuBZZ;q4`R5ug_&YeCK{t0)>!uMJOVIt$HLu_DiV+Z zY=GfxaE9U|H{Tlgl{w0GT{VvAw{eeEbRXN~%u_v^EZw;}%r>CSSFLkSX#_vg**F1e zy?n-hAOMSFg1Rh4SmQ}&{A1+PxwTOtCpKTy##D%OCJ3GMm!yF+pyaw~%_P(CP@Ab^ zBG}-tHshy`yM@xV+(x6N?+nPRQL4ax+f8VerciMdko6oxP&1X=_F#v&(#aAwR+Aas z8Pf9glL(bM?}W^?LPUqzZssMD|f}QpG7$hg+5kc z{VM+mFJDOP=h&qq%i3a|@ zdabK?_ZZqYV3Xnpt(~_ouyD$!6d}~}Q?;s{s!!Rxo?Et(NmmBmZjBR?6-t)^VTNQ# zk2sCuSodrHC7%J+DTtvP2-J|2Uf`Jz*(`s-HbdM>5pWX?UEyEle-}912g?`v zZ3SRGYAb^AED83ryMuF$1iP!(E_yb#ul8NFY8S2bsr<@}`l;#fFJL=n+CO!l+VZx1 z)f3@-OI#(pdZ-ru?Gf938@BIRESFie&u07kvpzqZuzw9bcMJm9xfHn%t3BCRj&;?l zgyvY1eY}}_n#!kNsiMB#u*B2ks+&$fFB29Rz8gxVfTMEzL?8BnXAJIh7$H-~q1Ayk zP2V-?FA%Vd#61y-x0g>>7^7PzI6dZkn_O+-MWtakizxEYr*{rB%*(}_ka3q!yLqjL4QZj!AUJZFVLcm|6>1P zv>km^a*)%De%U8Yws;`YK!cgN`K~dy7nL<;xsW=i(0?kGmbPts z8gud_D(sjJjGl>`b;{~U{;lngu>A_xa{S}M3Te16awdCJy*yU$8(jZz`4pbTXHX9W z2M@n+@l<*ikdK4qTR3N+mz_)ab)_B|8yn$l5Y}Y9H43cpzP-^JxrAp-ejC9&f7uJ{ zm?!9`m_&}vi=0;38;^oo3o@hUI_>zARPNhmrw=TR?C89*UeVv=X4)Q(xF>efD&&Ye zePr21+euZj+F*c}puxsla;u;uu5*r1C;$;;1?CA%VExoQyE8Qc9oj3PL%Mwk4+`NW zd@lrgnDT5b(@+knkOkGzOU)C0u^cjuIj1@SD$<|PW!Gf=lrBlsMwiSn+$p@_UY~Rt zmbNZ;-JTcbYNq?5X&05=E(uP=5|FuM3}tx^&%ThoPc;onPg0QuxBz&eZ-!hV#{jl` zV!GwP>M9o(hOA*`w5s+74+=v$+c`Ed&|Usj{#RxQl*00@f1}C3!i({tmk*p}&~rya zu3LYzrwc4x@ZiYs5jaZ=o&1Z@_+#f>WF&iJ?<8zQ^BV==>g@2UBDrmfuZmK(^9Xm! z=zUiQO(6+c#}5+iiwv;-qkKQu%C5rS_yyG36`ZDZ#18hCyNqs+CbM6H;T+NNX6^Lz zs+>Hn`+J{qY@-BUt=JNJrh3<6hSy>SBI^Yr`i`bs;`zv=b?XsPzmDbIAX|L}VU7m0 zhB8PTdK(ZTS2`N^p0*?wg|Sa-co49V-je2&ceGH1JF$78UGPFXkKUcJ3tB+=QoMua zapLC#AZoqFb&PEe6Zn=e@w?Uj7nom|mDq9=9n?TjA;yF4{{C`8wx3xVOqyOoG}S!Q z?v29zzVY{VR<968)qJnkMJtg-vVlUzOcU+Y zf%>E378U|)7hsWAI>$V%?Rl(GSIDs(tM#|bHFPuUiyVT{fYsE6&;c~!xEDiONl`%Tf}qqCR!fU_da(yXZY$6`i7AqoxmB}w0Nnb1^TFXIFeV~i2ZVIn?4UcP z)?mmf?B~1Dk>k(!wSrb^W_CX2uG<5y*! zmwY3sJ-a#~QS!A2w7?vp)~*gItI!v{Hc#LfHxk2-st z{RT+V^Z6={Ej$1RofRV}mVCyyW(?<0xwu^xJuX1X-Y$?Oy@ z>k9dcAP-7GIBY&0LZ!V6yk%871>yzb1wBm9FGPu_Y~b?Wnr4DKt2nn0;OHSB?YTkj z7_V{l&S;3T>{ap$uvd9*WW`M+c-wQlMANfEZpt`fCuiQg*Xl3QycJ|}@4`aY`Dd0P z%}`E;iz--H^D9-lZ#on@to>z%XPVTvIGuPJJ5L}7qnWLS2#n8kFc?-Pzd{%+)>O;8 z5XI0>DE1}q(ZAd9zf5BPw^LcB#8wjjb&<&0E`{Yga4A5JdWIJ3qLoSZUi#Bs2?q2* zsOA*{{+^@+fXZ-~5OpEN*bnZ=8PnAg8vXQYNCGsYA~@~2q6ce8Ip8{!hLS!+>E!6r;t>tv2yHw5y|Ne<{M~Gaz>+_$#dfGJ#i^ia# z5BAZ{PQyV*bZa*_pD!fRpV4l(DPu;rAKzdpV-bNa46Js-L9b$e*?E8I3qZ`_HLr~= z#nQ8VcLCiyPv%xXB#1Je75e35eF9nFM?KZ)%pjXRK{ov3p>A-+>}wf?07CLT%LN0( z9`-8)^UbZJO$-TVZd^-&pw0mTQMG(zNl``&Di?7;%SDuY!`o;*+G^8p+7_qfok^|s z63c>@E4L=O)NF=o)>HRX9yk8R(aFkjX1tu7L9ZRZpd*FYrc3g4 zan&*$V6oBLg1xTBp4K5gtVjyTlr9dO^pHEZD9Mc8?}e)Y4qCtV!1+gkU@s?8+|>=Z zd(DHZy}GxIsPTQI!r_ruru4P7pb5;ExKW$ds`2Ui#WFM$00k#TY&fxLJ|JakGIY5U zmOOMNy#0V7ck?A@xX{MKgsjM3?M@@3kf2PO4bnI-5g^ASz+~u3Rp;Ox-yOJ~31oQ1 zvG+dP|03{(+K4E^4?W1vs4b2CY!CLs>E-E!UMyK>P?>Arw)N`46H~h(hdqFrpk*lOy(Jmcg#Z&;r4qD5d)d*KZsH^K9y%$@qkA6gfq4@Fme zz_P7dUP^QhI(YQju8Xy&$>fPtj}iE9f@*V-%89~~p9?R`-uqZ{yM9vUSU}g=&DDBA zsk4{{rkuH4l(y$cK0%LGP^P}4tIN=Kb+@Ch^6?$c~}kv zzD&#d8fx8HHGeNN1Xh0a!EWszv?L(3wuW-pRE}5^lVC%o!akk%b;~VDgQZcAAbCd_ zNgt<~OJ`=2q-GSSLjJ`X7#;MN!?29?))p8HRy~l(8-Qay1DS3kof%DmfZupYnmu$l zsICTHvk`-EQiKyro*_|KUEfJIorzCZRrY^Dav=MrJE zF4nJcfXF*ZJC4a48?Y9x$ep2vp9B8vUaWiY?h>GiP28QWp zaIMjx>OaP7R>gikg|sqhWheGmmmzvwe}rMps}a z4CdF-NFl6bXiU``{h+zvt18DG?K479JD}y~Ll>b-pyHsng(w`d7#=dof8B5mLQ-z* zpeeVZ|^jP{oTkQ|MCg6N1DXy{vmY-` z%26QKg3U5Cl7nPq zMfsGlgNOr-gus;B)=;be$MED#T1yifbIYmR8gP+Im;|0nLI)82VbzjSDEO~IU%~e$ zyQCXJf8!}Q4XmA>4oAhmQnMc!1IH`?(=@)bS7A&y2}$e7Q4PN@P2O6+D3ET@b6)x+ zc;9HO=9h+Hp3G%mc|^D8LL*hdG=H2GJRh9b!Bgl#%$v8%xDl~_j^ zAzKpuvvx&~^H}d5F5GBSU#EZ9M@H>WR{}8*-oC>Q&s_RS`Y3n?4-C65i}=fYi`-*( zlc+&&RfAInMGSULTu->e@~#e(&mj@(G2x@>-Ewz7{`Lqh@mxiUE}k_cUX=t7GN4rfL4ZtFs3)%$`=494+8o~twnECqXet{37N@rre!9t&TJaVMZ4S=2>YrY%&Mvba4?K{z7 z?@iy=Uvpl}PU3+6POb6d;yf)!CnCviI>EI?cD%8P`FVP%yC+)up^jzO;qUURa~+k# zZ|~K+`%>ok`ALQ|jAn*#CiC8X@l3Dmfk7l$gTyL+tBik#xJRecgHz2Jd5opoT~)O- zB5}4s1Vh)>^rPzEeGAa0H?$zUq5fGYHL)omygxp-!=5WlD+ZrI(lUsw>Mty*Ya0vI zE=B|N48E|wiOx+zfhZ%v2NPj$rjM6%-^YChmai?%EhloBZJg5F{aW7b-2N&no|dAN z$Tk``0t8h=oL9APC1ItHGX9MJ^gcZ^18|Re?r^hKzV(7%Ukrx@Xq`IuY93s>H=?P8 zh7N!>2rJT8jj6gZ!EIv_zCiEhJro!kNoTLhrp6b*SsRj!u%G=Z+}slTnhcRsK4$gy zs$8ItnTZ(fiVn%C09URQiSXog~=ciP%l@8|-n@N~pn4^b_#ZaIE z>JnH0^%Svr?ljg<3MOD`+F^fln8>rg{m0;fc=jQ5CvWEy3^c|-L0z|cBD5nfG&#IS z)S(T}+q%y%?p-w#$#m;R=FK-I_Hfj-fTzsrbfJe#`&EjOtQO}Oz=&_izIYpLvchYU zr`d<2cy!L8vlk3lB;&p9M`v;LEGYIl__4K^Z+1sLkvlZXKcchezCbLcUlgR*p7`&kYOi*vT#KyrF; z%Z+4*Pmbr#p02XKo{5#_tUnOjzdFH^ZUF`I!$%(+-IJ9BUwNuT#i1~tvrf}pnLH8q z6HVZ;rKKn%14=@!dTFQfuEvUR-NpS%QPvZC`<7^G*b7<1qcOX=omQA)i!oGvdPyiX zCzY8uKhQ>9I}j5wq7=CC!2HoEASfFDRbi>$m=H*Er%u-P9nlEFO)(Cf%5B7I|vNUo&07di2jh@InN#l{mFTz1LZvP z!V}esV3hrFZ+WKzU{&A}ncuDbD0wJ+`$%mjS?hxC5k=+ko~3r)t?SE@BnITIpf&jX zg+uWcpX5O65xNu4T*kIL%LU+A4KJzC4)&`|QJ+jrUn=PCZR$l1)Pq<~gQYIC`*f`R z6p8U;_mjL~Xg;&A6W;S(DeIi^ejC`Xs;W02fYRxoy5q3s2mZFmE09GFPcT{kP;%yF zS`(<2iy!ZuR}iU#i?E(Os8Q89*8g^VG*mNA*LmaA=5AKqA6v_Wg?PAa65JTmAMvsj zCH7w&*d!>G`hS@AOcVA-_Rr=9r~lv-A8nsc$T!2n5-;kvZ&U02@S(aT`yy~Z z0h0-0z7}|`&iSV9pdnXJilR=qGRc~lS|{oZ?6u09Xt%pEbZFh*4F0Vq*R;C)8{|{# zRl+CMc3NUZQrYcz+rHSZjjpN&l^s34=CeGRkUf&8$hoQ&k32j!VmvIVfh7I==?f+>id z3EO4{V%O#@-%=DAGswEfx$Ec)_NU7-PRm2-GGr1 zjBc2Z7dal(o)g;?-&QeQVc2@Oj|d<8&SJ$PwqZI4L%UGIq-MxL=(8*LQ7VD=5?$XP zU#Etf5(00F&34An`(=~kOi!5hXhnf`MF&dXvMofc|zcN~-Oc(IVSZ|_!wgS`j9P?(+;M}mmo?iP*9VkQW4zkM)v#|&nZ?;pvZNGv9-W-5_HL^EX`aI)D4Rcj{cU!CkG<8KeeW(l zIU^)^t6P@)w33rz&)M(o58CwKb*prz1|E96ekD=jx2oSy?3r_54{%WP>}vZe0T}Z{;$T1S^d#&7kOE3T_`xG zq@Qcl7M$&QM)}f%7LnE2SB8R6$zv9(-0Rld7hkz=`luvk=NW1luY0tXOZv*Tj`CD5 zeN_s-V8^)p`W#-cYOSB2FSvonrs7Nf=|Y2y*=_Khk z?0;){Ugk!lUC!Gx-B20&auAsHYnwR?iLw696C-`2r@rQ{wq!*w9UG15J zzQF7`x#mu?A2gG%aqW{(#+z)#T+^j^ch4+sdJlb8NE%_eTYNEAX}a2rdHmC38uUIbS z)2BwuUg_KM2S8{o1@+h8D-R+$qmMhhBWkk;giMIq`@{M6pIJjp2c&JT_sF8vgx-DK zZ8If6CEn&2BhnStnp<16t5wxgxwSbqx<8A%WZ;Mz2rgvG`2+b7Obqy7{G!)-ZWN1B znCMu#=kZmxKRT!ru#@`yAo37y8pMF$bPHX@Zt~usD5snJKg@cmKYSbN19F5bwR)Bh zTc1s*n0Vl)NRfk5Tw5X>(|3*pGjc>k2?7fbP)QtXb4`9+8nv_?ars$ zVnkCIt#0-q>*Bi8ULGM)_|YdR4f+pS$}VelOQZxy#WN^Y;cq6frV?EowfVAMrT9EQ z5QtQLO3QEv>%QEpb*$@i9R~6}s+B$7-z@Si<_Y*ogZyLAZGbzM#QvgEQu3LmY>S5kvmL=hLpT(_n5Q`w8IUVRo6No+%}sMmbI^n-6f?-nut(I1*>9&$VYD-U?7ot|3Ni^J&<+Zluh<$6}=kkVd#Nj)rOV}?`!TQe5N}>iF}A$8k2cj3ip`^KRtpZ|GBQr2^gi%k@hK_UX*c%xwxXJWt zlu*j<^Sl_dH#xJO2-#z|TwZvy!xKV}Ir0~MS#UZ}5_7JA#J1ZN!V9Ph2{1~g;wrtgTW{FjW82f~=^D(}7Qq>2T+e@lFfIUa zM!eqTevv5XYM5>`h_5Vqz7^()KJ!Z92G31TQJ`%*=ML+m?Eiksd}~1iZPt%^j&Omy z*f~Pr=W>w6?n9TWsaH7(-ZlK^ga8tP+rfrcna&QZxzod*(TzF4xrSf0fSJ1dHyWQc zB|_k?px8FwCLVz{kDDvmaDw>JOK=;ndHtbpPj3o zok^tnUpDTMtvbKy%fFS%aPSG015nz}mBM|2jE$8n_*!g{jPpL&EcSxZIZI`TT+*kL-#>#g!|xNbw2ZejIT_OlMW z@7(`etIhy0H=RxPrq_V)@l3|Wu6a;{-&NeP)En+G`sfAM_a2{~cGJyX(#;+yKzePV z-#)^V)xU=>?lWP82;_Ji=;ePY!|oKDh*^^YfLCHZEREXK9)AK<(*o5S5&P-hrSpKo z9)sHqsM!>Rj=W^|7{Yk7wbt)kZ#Mu%KJS+7y1?bozlRyzRu z2S1jE??3+Wdn)$L<_sPY=KR08e8N_3_5};e#f0Au^UE-PXW)-diwrMYQ=aw9_(0yJk;stLIGfUCN zN@{Z-89#Y?s1vTX)_WYRrK@M&r_0AK{lPD4Hf#`<-fMsOqQ(t#Sm7cNcp(a72JbpN z&2pK%iC&(7a)RsbF?Z%z05&QcMBdgY`drr4+$ zrXP*H;GK7fYYz!< zk~yjNA)V***M<8WoxSHafVH}%IdDv^7(@04R5wmd+k_rSV&sH?(CN;-)ygAIdn)bX zDa6=pvG`P}g%~X2c1dxJzz0pXQ{P3&l=DTMRx)`ve;w})I1*NB9UccC#YQ!Kx>MF$LYEHrxK%VgVxLhnr|;i zkqcFi^w(70tnt8*`LV#cZwQ{B+nL+mF!ULwUHj993ogU0!g{7{`41)vGWmr*oSE~Q zirF7M=bGh!ntcye&0dcB)R`QV?scdO^KsSVN!~zqRi7&O;Ss=a8Y`Vyux^dPvX1mL zNs(tu-PnA0TZC+ca|O3@WhGY}x5_9F^sY;JQ?`ZBq2^_7*S>5?AKdi*e_fY=4RDU1 zE^3Q#b%O+Suw90XIL`v;d+O^UFQzx+dOPggx}Y0jCcO)}b+m11 z?WaSs#!eNBP!$DNuJ6B8&9B`EFY2Ri-bF^Il|OMB{pDE7$CSk9m?ga6S)EPpz-#!>5~AAAU_*`TH`U+I223GdyY_vvFKdYj zJ0$fUZSA>%x}KaHY#v38=50FL5Gw@U_IIUVm0yLdNRqzVpP`TQ?&|gO_`2P} zc9u|B)TEgxAb8oBvpj@6w^R`X7-(NI=9|{N9;{BuqN;8LsfEpCxzEs1+k_i+hmlSP zmC2c_v!&HHq4Q7M?`esNJtUPU@PS%rN(p78Q=~Ia5wHpWb1>F#Ud|*W-e~vwg~;isTs)x3<97{xD;!2utMKASf`O)+KR;j1sApGqP{=-rZNUp0Kgv2WamqPUj{f1y zkE+#rW2?tM2;fG77;`F-D=odZkk0z;)ti2Z><+Y1 zy_CTw*D{bDa&Vm=QW1_-wm}%+c=o;Ge$SI;njC!M=g*{!kM}H zid~F3v~xZ1`((*=<-CMk{>XbJsQIj2yyLPQ;&auJXB(6_hq6F7=4kgv5s99|dI#(T zB3(XXDj4+D+H_kgm&A7|ur{b(L-!++#OmHYiS4iY!kie>?gHiV>2gpzuk^Oc!dJ{( zAvLxi927K;U~amrdSglNfPs=imGySW@r2O}9Zd^Yro)Vy993_EZr2rsWdyzr<<)TJ z^0zlFU>4aVb;In{g-X4i?UE2k87icFc+ujP?__`X&Cg>m?3IK{!3yP6_FXaaElLXv8vNDt4a|o|jXQ6(!QT3~;SsG=)(#v^y z;Q>+3ktuCudQFII!N_0=0k|Tw0MT8LhAEvW{rP1J8%9iv=$7zZdoTnNuoS0ndUV}&851!{EkgSNV&@58(2v<+AU;`?qq0csZjE=Re;Ahjt@`zuo71kpB6f!$H^bDg zEQ~Zp=91MPRN78o?`U&1gH)ye0Nn?Zg1vcbvky9sluy})qIC2_h41gk&}2?1U^K5n z$ou2TWyx68FzFJcwJ5_bcJsSmw)D*Wu#^UKcBE+ViM>H zn8%!p6@oF(h7?gF5;(KH0V@#Hxo2(yh8D4UUZ-lyNWSg8;}Sf?6xAfW%^L7>!Fhkg z)!ImF?SOrNpI00;AiNYAxJ9v78Iy0!zZ`|*!8*;)GH^aB#sP#^KQ$SKAS!n4uNa>= zv{$ceq$OPpr2coHJE`#BiVMYvZGHI{tP-d|gnhp!6?o?60^VQeBz9M;B-wC#dj}Xo z<3e#!N z4EcjhxQp?;H!Pn-Tv~i3a(t$Uz^UYcy}zf`^;H0{YIe6IO_JiQa~4{V7zbG!*KGB2ZnAmQqz-GVb%k1kzRz&usbfoyt1iNdC zuLXgiyB{%-2QP7@e~>zZM>e{=mx;C#NUL4SP$zr>x2q43;5V<231Gtmw2{<7lfdk+R(}&c*WnV=tb5}e2v7wE5Oo^1EaXd^KWshWOGdHuuEu~c60wFW8;qX{C@jifudkX zU~g9cfTCy^*&LLf*@yUd1_8bTQ9Dl19Syq{g`xy{>VSe*9^=`Mr-Usp-dAXIM0TfB z9f>(;HEvnpQbcS-Lg4CN*@ID%wpT-1PRj1UX77 zVvGY%nS$M*dZQ>0fYxp4AQzM~eyE9vpN^ql za1#WXN|J?lMCr=$Oz|Isd7M%9eg;vSBax&t&#TUXtA|RtWT|+3LD|nFS8(p?8?!zf zRdJ6N$L9BG<6E}(pzGd(Ud!-m8|q>$v zVBL~4A>Nvj7GnyLM&kQuLUxGP2HmR)zT-<2B3!Yg`%;Z%+1_Y-LLm8E{0_$UcMf`( zszL0T2I*99_~kT@GOe<$CWkM!ME8~fY_cJT&@b;6kb*jEM`e@} zkJKc<(3;PU6>;-ULnXq>wY=>{HY+h!q&oX=*PUgkts-}yJDgqBs?gjK=rrnc430MK z9R4({gL*2Vl6z}$P@v1XA#G!|4=o<5l`6KLJgRUzDE8H*wp$B7mF@F|Mx2ssNHR(l zyY^Y+gfwD6aQ{nwrBkjnzzGS^&4U0ZSI)Ny?ScR&qO2i?J#x-ux+4NFc;pX8(jX^@ zcaj*<6aogc3u#fXLpOs{V5HmE!og04W)_l(ZNaxxj^o&RBfnXfkt3TYKNojE9Iar9 z{qdX6fN`OahW7Y^mm~7uWuQ%2s4EL1FE~-K< zhrh({ke93`^EWEJ(`me7J#ARAqOuC-*C|E|1FZDBuq(XVwfA;t3?CqSS`B5n92&u8 z`uYRcLO|w+!s#K8t#rEtI$$i2-biN&4*(H(7Cr~s8E$EfpuwfpYIG;y`Ev0_rynkD z{oqjKax|c&t={1%4+l2-uvmQh5&srQV^7cLtn(;lclB}@~7 zZ^akx0#_oNPm;aBf7UR9DZ&c9Y@9Zraa#sWndAwUioFl1@G+*vdU$6-$@BuLT>Nl{ zk8^&~pIQ$9LZd&bwX}dBAA62!{)dRm=iMTHA{GjM(inXDci2bHTXN`Qv4=6u4#a@H);o{MukqX!h8w;mis;|GCN3&L6 z5JQB`!^77Lo{#53l$6nsii3L0F>_f0{)=(V6p#SoCPvISv5dapb7<+T`7XgUx)1Pr z^5%`BD(sBf`&)`?cvhw6tSHW75nZelP9rF_Ktb)>_?kI^QfO@pG0mkbK9>M1g>#-& zw_KAmK_bhH_6>2e0=053>=yDmfr7yv^rCu|*d=~!7%lJG!Q!(6T>5G)$0)XJJq#K- z{!T+bg`hF^6f}6$3zIa7Aba$(U1 z4!RFP0^V3v+w?IPHrvWaGWU;6pQ}DL==f)QBqVZM01NAO%OUs*)a5q`ImT}uGik-cRgLd=(073?pR zJE+V}1YD+DW((NUzX%AOK~UaVXd>k?Oo5CHA&l?NprSUw5HWFuE~lEEbSO~nWpO*N zbH#4P>%Htu%w2VoZ>bm{+M)=hkhVoaNb=pGoRmqpaZGM%XkD+HxGV>c63~7a^3dxk z)K&!OHOaUm;OG2Rxf{jT@z$lutu*X{p|9H8iy4<{&p`ry*SCz*iLBHbD9JJfdJ&^o z@Nn_2Ex#)&s1t#V{B+Fc%u!Nd<8#Ge&aZW8D`e9fFLq%D@CghFDUq;;7wh<0qr7%KwEH*brh-^qc{rs^{}C$%M;xZg5GS7s-9~S;^@hU-miV!60UG7-rrBmuWvgO_0N#8@L6XZH~qRx)!s5MicYT5r=F|D@OPAEmZ%P&h9vd0 z%JUsJ@*TgP;_saHsAo#1bA*zaYq;aG&~1|;^D{Zd#XiXReu&>4u(pfFiaXZ~ohQ-?68VCXxjC2565{ELUg7yliv1_l$O zF8_;RFY(By!ye|1LY~XxOUE}uPneJ6`U;n!O$e=!>&iIyr0M?<)u(%~R$`)P8h2tN zvyjPqr!PBxB8?g0BD!-^0lYL_zdbdz z?_n#b`;azjiw$ibOw;uuNa7jx#N(qC({@RYJk^ysIO zuHU4tjV8BvF>PgI{uQygco#(u5$MwmUyAcS?aE5IcmWa_!rZkrcf6ULpe#%yK%z8; z({PD=(!;2=HfvUw`uyf|>6NmenO0;k6U{Y8>LK#%d9qYv=q-u6$j*E^(<&UoqCZ^y z`lRpB09AFJ@I5=-2DGNgc_PKt^OCQ(vd_x%+WK9 z`?3+y4RDKskyg@gvo5GIj`UU(`vlBb*ye_+FS9ZN8YT$Zs4w!qjr=%q)UAoca`jai zZ);1`W&eC+IswBlkWzK&N;3bnE@bT7m889Y%QE<^L7`_aOyh_762n$9LrtWRA^v3Yuu5BLIG!`pp>mJ?!-GQV`R? zLMqCHgcKYXz)pgHr3bVm@5Odt&a>kLZBJS3z-#N3ew^v@kjg6fb7-eL z^j{?XKM#-tvS4HeoV3vfv~n~^jrT>7Ka||Ev~()Z zk(_qucHk+;gG)09>TL0P6eTJLUepyK|3~(kL)uaDt_fVbRSaYvKLj z_=moqTxIkif^1q9Xzn|V&F@zfpPzB^2v2#I$c_JE48x6RzRqOBA*xAR8zK;}7AVKI z$=f;xjGG&xH!UBTQT%pTwC1TMPZ#mwIz<)>h#QMb89b9$P`K5qdTmt zD;aZl^-h|+&Uk0aDApR>^jP6KI1CDKCbWMhLyv_%dJ4zGiHy~D1+E=w@jIk{`iWlP z)cCy%4q6}f%Ob6(YZBT{@fA9BZrT3m)>TrW`=+ao zy|a;)Tb}TW-UC0$T8eno7=C#|f}5d_dPDQI{WT-WhgNDB?n(rRkGn*JK)9;KVhZB$Lf*yCJVZ`e~6>&(?K`@Mhp?nCmNpkBZK7?# zN+{!M<0~A(=)}jzZ<}+w!A~F<)PLqy)hg+`+||mj6sVz5al1qR;u&kT5uHa8&o^E` zEh1iAl$X!cXA%nFt5rK=tw6e%kZ(zILB?+EI#B!VV2N^=*Fvv^T-0&b$>-~nm5mG7 z%;|_Rm=x@>H1ze^CwBvrO-@r9dHG7V?H@XDnv%-m`$==6H?=LoREALi53)ltF#gb! z{qm~-SCi&Y8u0Z>&*1Sx`R3QgzZ`9}v@!dfwPe(EAlb!abz~EqdNm79FS$)>;1fV* z0jjU)xqTG|R`RZ%unihjT-;LnS@Q6cCq-`C{M1y$Oe6zi9=S<&Qn}QF25)=q*R&ZF z8UkzWPh-A*@4TUGWH$+!9r*7N1Qja)4HywAd+%OM4*;h~0@2(@kKskrKGsFs_}TDp zwwJ$K3WfHe`GLLX^6m-q&UgcC!p8}CB5Mz(5>Y_j)ULO|`j2sBIQI?@;>I5AAR~dj zp?OmV5}$~{Fm_Q5^2QzV}0MUtAl#M;ONP`1HtOs$dR7e8m)?KuX zJxHU&04}Kb6e4nf50EXIpl|F!ItIY8LB&Jyjb}Ikl=C^}#vWv%0W&yMd>3)J8i7Nq z)?t6`K^dGZjP+h}&@tG?r~h367$6SSSaqA+W5-{A+t^pYx7a+>Y@g{1WX!5VFhS@SD@TwaKA#k{S^`b$AQ}R4+C%Bp5lZjR(y!t`l^7$kMp|{ zK^eY23<&32y}8SgcFEY{N4jHh85#{*gba1<8^hUAY2A$k?8oRooGP}1c&f%Xp=ziPl z*}hiCAFx*TIl5wtR4wD&j}hv$`S_RY6AR-Ceb)*EBp%=&UBK;_kjAN~KU(SAXW@J9 zA@36PTZuk)pr^h!WYKYkm(yCu9kK0t_N>CC^`P6*d7Iw6j1B+6@4Z(Wp?^Q<2;T0l zF{Rh_`j2Ywspot*kp!wa=eZxd!J0s!y8<`oXo!^h-9gj0Lkj^ENAOOite$tpP(n=k zD&p-_xH6eab2ljNJ@@c7@qh z)#k07Um}*v><0n8SJnaf#kNYjNKx~})b;qVD7KwL<6vJ**Rt%9oh2iiP32X7y*xZd zy}f(;zSYk`TU?yMC{CSa;e96Hg0WPVm_&0Xp)7mIi^#X|`YUN%|I5qNCfpHS!^FYU zo*sa3?J3_U+wvxI)>Pqd_r{3TKYn{VoN?~DSa#~5JHH`dl>E#*QSv2oRkd;ajLa}h zngFpHaf@=d*be1DknPaaK`i(tqRTR_vnHunZhFxzA?`yn{yS}Mg#7hYhjqzpMsk{n zc0E|$Z8!@yafs=;ps7sS2$@6e2HTMFcI(;lrk_lYk+CaFZHs(UM0YxmbBINy$ zba8f&|HE^)nxwmx#iTy!++QnklAs&**`zHop@iHVFq8iXW?yM26BHAx#KpI+;)6o`4Tt?B zcp@td)r&O~uAr#IcyQ^a^d0Ok$Ij&<-KUKwfY!C3{W4(@?c5d!SjRgby?4dm*SUJH8vF~tt^H@R&=PUbRQO={DJ-Zx<19#;<>43%ve!4% zxSFLJP6WUQw`Q7sl__Xh%(@u^fj(q-_e>@Gm_gqXU;Be2B@ z;I_K6OV`#~1+;v&PwJt$ubp17&=0)Nx@;ME8RRaHcR@s7pa7HU9VXnRy|Q}gVZ&`q zGH_Y?*3V2Q<~xPk{$Wb%G04N=7a{W*SU|=RVD=(Mlq$Q>U|eZR0@T&}WKZtGEnQ@d zBAe=d_0;HZXxfbkK!_NO^x{$u=0lWnC*SkvK7G20AAm<}u*h2;wgg*{OLjRY?ONOi z;sNe{{EPRPRWcB0B=#jo>*>nO=8F5iE~bJrH^DRml~>P`#nF-diU@w%?n|7_LR*7q zML)Ej+lFon8+<9o-~=AvK6`0on<$@z>uy=(pJ_n{UpLe@SBe#FN4?*$IqKVqq8I=c$~RC(CCPA>-k0S4lgp- z+jDtOICEPdr690}HE7#>1@GUyOeI0zticOD#0G z{v?I1`QdFuZ73EjeSs=YKZC1)Zwmh=Qwv3<2R0oz*KjlNDyc6e`Qp+vqA!sAT-3n? zEQ9$TrK-AVJCQ)FTbv9Q9GL_-(&lbwpMN?(VDGZ}7CT1-WUgOY0KI?8w{zq83&UMmsXj65hBV-)&P_+o_E6B%l6}Wa)T;&0!G-nNAJ%cE|Ij9o>(yRW z0Er|Uz}SR~d?SF(#9%mbt5tU!3E~LopNHcl)>PHj;`~}SNwKksd+!BO0py;_ZgcqZ zUIIufHC$lvqo$I$+X}>x;M&xa&G?eX;kWNafL(OJRe8lY!dD{~-n}d10@$=7{EzDbff~kaK zGe4`O6JX5SziM*k<{J1e2khSp(mC15466<+Ko$m#Fp|WJ4Zj$T#aFWRd12C!qPx{$ zpE0Dm%NEUJHx%6|hSi3y1aTa;AB^uN!!Gu2d#C81wZ0-LD?|B#INiJyFx`W#Au9N1 z`gR`qXlx2BfGw_ozGJpson)vMW%>iVpK4X9TP^Pc;wmE=1%gJ*36QR+yx{Zv;tRVWP!#Fyb4d@1@jUqYEn-KKg>UM0@khp>dJy&clz7r5&~F9DnS_xtQ8+;EYobjJ1%fqg|;MK*miCL=GZj zpFe6-uSl@cNAG*Q(Mz!UihopeX*letT?Amj2SbK%WlJI@?+QUvq+h3b2!4<~`bd>% z8{{|%Y(njZqRr~~ECk0X`7$Vw{8W2Ce*(bPTHy&8bCQGin!GVkksjw0;yNd(EI5wf zXX1T)dp%G980}?9PyOTI1fVi7eU=@kp_0C(b`m72oVyV*a-_-sm3~_Kx!oXEpw46-{E3AY zEEY0Lh!u*-mjvGH~S?5{AKUlM2s&XS-2m<)8je&($P3Z-+ zoKzh0%KCGaAeMJgo2Ehe51z5DsZcq35B}#n&9L(aozI0vv}}$)U{aM8_$YF^{L=UU zU@gV1!Wax5@Yj?)Z`<>d*}cl!a~+(qcv6>!nA2$SZoL+N;{M^LNL3B^g_$Us(JtQM zh579usC9>xN=Ro3Bgb+Dg5f8i%pi9|%nCM%9q4SBBI-~qk`L|r;Hu>Wjg?IAb~DJm z85~!XiS(ntixb0gnYromblkizN)*_G(CR*lV;%M!ZP-O`GU^^nrZ8_@*+dKxCtmMm ze}CVhescYt8PD>4Ge+|G00$XHH>LxY)X*yMTLqGnDT5Qs65N?}TETWHN&)1*j}ZT& zTknC{2@#Qn+ZU^NSgw$B?Wb{L2KH{ikUzenN0U21|%h>I) zMuY})>KGcaV7v!QN(SkKe-U{DR|}*-nh%r@0eeHP{ivx2x7nZC$pUsCzY$Z;x}}^+ zSkR)xr%=L#r{j=bM4D|5zR&x`nXxIjx!sqfSe4!V}Q z%78?WMKT!nM%l!y!GLe~%VXThnb^>nZ^BiYEZ3TsDQrp71tQ;912yI4v%v4GTX4PL zv2P^eC}Cl(eFxi~d1K{T*i&suOOu(NkwEgLS&EWR#h15kBf;3&*4hZX!0ljkj7EL& zQ;@*~7gnJ}JhEIhOH9-BGk1kX^WlNvhc!P(mxS#9;y-{u5-v_Fr=8@#E52r7#mNy> zJ3BBjlFEeqh>ve1;gGjUH#X?2d@hb_Gt(h3E{$t}QXNSYpslA7`5eNsxx6fQ((T1z zw}yHqJCD~T=0ZLfMr^24l9R49up=jw%e??J<4Jr0uElJtw7EXVxxjL+VL_f1vB%|G znhCrUFQJ1w789?ZX~IQ-}S55oZ(YybBn8*4|=xY6aZ)R6HeLK-6t{xuB>T{$*Y7V7qa{1(Y zjuOoPqV&$}qq!%i-!6eKi?bAYT}JXIL+st@o&e7)#X+Xn&VjFxZJEqwbi(_H$+U^G zacc5|m|cTcm4+yjAmmfShPOKI;4_^H(z&lePBkaXsn8dJxr_UiRW2M;ffm@vxK_yz zBO1kE0dQ^m0B5@o)&r`I9>Btw_Zqj@ux*poqQo(V3gqGsw;>23qz=6(@iC17@C5GZDUOD!1n~avbjvM%g(dCWeA~#WdlEMx+#Rl zEGpQ3s##yGfEdXd>IxF9He)1b%1lu1{z>4KVfR~EE&=PTdzgeZ#wuHvNR&WT_{Y^WvG!PR!UD*kc{Z1= zw?{wnhSH!zV0yR3w};@+(goj&2gDyVf9$J}!l+^2g15*M(T0eUx~Hc0Uq1@AwY%}> zHEhj(Z&7D_m<8Gi_^;kQQn8WN!sKYC^kZf2m%?n(IT2jqZ%c1@2tbK%s&bb)c09(N zmRp5t1||QvFBbyF=G?G{64m%BuX0i&s1B|jD*T*5IS&rMZV!L$K?mN}c}P}@01_Gv zvr=3cMBt|wD8Svyy{OA+b*Q12!gXxH-v>-7=3bm%^`uCjjO8`pS4bJYk@{q@IW>Mc zc568x=puC5ntDg>qkRUotM{uztA}$m8{p9ETrIt#PBS^{YR;fB#ylYsvhslx^Fr>n zV={Bh#m4ms7R8_q%3(mWggCLDUc3KKl-@5lCjJ}E<=2g@Wp6APk&}wwK`~yApIR%( zwz{Wb-{tWV%PPQ_kiCPCe|xi%&T>EmYTb_kpHzC&i^e_+#|!wCDs{T;OD%Uq>vcODpjnUnba zqM;gRxzM&vVN^*Hm~PHRX0sWvJM6b8BGFL=-hxrWw?1;fW`9IutTaOe=2)OC7G zMjzy#iN)>2++%VUdfF`;4T3=ExgNWGqg<{CHM><1Ks64Luw(#Jqk5r#3M6gh&rydYBo=Qv z@Y*HLd23m6a9iRGw#D1584yIK#O>yscysc^g1dP2^?P3yJ-}AU$e5(h)o0))mn(jr zuZeAFcy{(v%s6Qox75#+I%UBG4_=GO4k?~;CqVt$NaBGYx?%)}VHGH=T($Ec@AFL& zEZEvSt?ir5u2#;OiOW2aSvtPs{*opV{cX8Cro@x8XFR#~uEZrKcl~vE;!Uw_8n}AMhWJ<``^i< zS;tEZM+UAxykcK>-mAwwH2lDPjnIS7k!nKN^{C-?0l}g}TDN62xaYLz_90B^PcUny z^AWS**?oSW^U@sy6%GaMA1Sp&f`i9}ToTyr8+AP(?~eXFu?qn7jP8&$(h| zbLE7i!2!W=^_pk1$3YdEm>H1+Wr~d2#AgvJh`50#i%A2a1}q=`=IPJhQ40$-;ALoy zikg6uO(WeA8j=>ky?6X^OAj$GCWN9G`fC{74e|^r37wN)3+;i0+3V09_bRZsUly=A zwN?+(c7~fWB6@Nmbeq^%MJ7go%B#ylwc)MOVg|6!CyE)hfW|4GT8#Z9-zbj|jYZVs zZekE6e8K1E#jN?8JMhZ$_z7<*HL3^yTNtV(lwR@7}r;9H1*T+ehMX z)1N&L0338kw$ftRL|54?XKQ|bJeKKl_88rYcjE}1fukthTih|mdXl$c;h8^k*40oo zsnjv!f}f|F+q+W-3dyA<-#_l=^KnPm(vo=#4D|5w46O(pdE%TGuvvq2Z)Jx5zTEG2fLL!p4(Nd4&!+&e1r zozShkw_8PDd!D(U8F&H-JJjfX)OVKYweS91O71=8WRMM$pUbT<+HudO9ZA)mI}h$Q z(4>?W7OQo>$7-s^5PBcf6?Viv<)&F0IIf`rC8~6kFYwz)ltifB(NK6Ae(`)$K%wpA z!QsNGYq6?<21%5gUyzE;+9Gb^(;crh9k(5z2|W$RurWQIIk82TZt+CyMwQ0u#P;0b zXy>1Ear_?GdcKEUSZN|4WG$n^BA|l5AZ3Nqc#nv++k&yz_9~Q3%4e4j+fR2i`5u&< zKhCkBbfZMbQwA;doiE~+TEftOE%eB7xENorbn5`u-%qkSOU>7WzDmLN%)_zbnSI%u zE+s+E#G&imTVtmm%1m5zOF0yGyDhCt+RTsHTUY$}n*RJN2S;^BP!Z5_xu<-ay@e>< ze`VNk;6U}*(P0Zr@52#7wQSyHG0`l7!~=4Z9pHWMcd^48#a^^OZ-`~wacRY#F*jJ# zJpPFJ{nDx|>{`i6t_BYs<;vm$ri$@ZgFO^?#O4#vg2qyYh><}F zdunt=1O(a@`#4IKZK|?$PE>+KpCf9yLlz=~4GJa(g*))LcPI;~z59#H?6Xw+4!{ET zt$<7p-Q79@?IVLbMn|>z;__ZK^CWz-5KntYP%xh!dN23gQ~jVx2z`lb-h@qQSS2NN zCj0Q^3%Nxf&5DhaD@=a)o=6ZY*)8j^>G_NSIzM2(=mUyB;)k73erk1V)_0t_v`_MTc~DeyDeqmm%ZUaiucF(15DnSzZqWm8 zRXI7b?C&gpqn->X(7>&H%jdW^jW}F#W~+9U9q#)r-|t3~DE_n2uxivf3`jiZo=x*i z-eahZPwL~%lzzr1>O(scix@1#o%MRP4#HkV`iw;D=}y1q&~e=98rf;!mOA2#;w7wS zpTjI;J9@OGFga%J0XMi{!Jc7TYoi|;oI5^(YpyX9-lFyG*;TGG z9D;s{TyH2lWX$B@+#FC)yx6dryHHhGQCf`WlNqeFqiIuR(H2Kc8RA;i+n>fyIj-zO zuz8!0;JQx$l4uh9=Xboy=tHoVNBu5IyWWy*7E9w@Qp$jG)htrQA5R^#awGE{$^n<7 z#Q4pot271gdRzGRnwgqzL+LYyiH9N(H%qWFu!H7Umab*$?z>tH!7*w|{#Y;}QstDkyZ`J^p2Dz$(*wWl&7-5Q!%w~~t=Rd-&ykKzghTemyQMhNPa*Vv^h>sf85W~I(|=?z$}(>vIb3_{uD|I^uiw4 zdhTKs-Pqo*%uJfXQnI2qGwx((mqS{;yO`#7J87+!7Q`682Ih;QMnFsf?8{ejzcl?Oy)CaD`jem)m zGr0Y%^4I~b;F8>jrvlTre0g{0&1=KTlLHx^{Vpn@57a)a$j`p54*i0NyYO?}EBs_~ zdn@hx0>8=gd&5lbc{f)SdX1t%16Iy;GF(v&krk@gmGU52W*P6q$d@f%Z@+Ekft_68NV3a| z%|tB$esS{(OECrQLjmEBo^QJ$aqP%Gd%J|KN~L>3Mlvz25!>a3ODuBX-(DACJp5~N zgzv@}C-zjyte4be9}#d+v}ZFvgO6UCG%`nF+&)#mxWt~;H6my(*aZ;neGP2{={-(I zQjV~v2`0&B%9bH?I<#IRV~C%>>yNdmMUM*Zb5L^Nfd$*ZvOOavqjsRI5@S{_8kPH{ z79MX-3+B+Y8jXIPsdN>(EFL8J8b9@E4BO~S2&k;J#yf`sVe)KuuG+D&Cw;dRxTd~* zsRl!H*3txEQ*;pBW%%~=N7CkD&+-;FFPreNX)!U$XH0)Fu`Mg#D`=*FBGbH_C&J8M z^8clu|DWblfpQaDp)_&-xj{hJDqXCpKS(o2y*hFhHGtncPbzJOfkWz7pCKmGPd$$Q6BEi6yI?y-U8;UcnlG>%eSyzd$+cr)y<1g z!1|(1YhB<8u9XvLkyYIjALBH4#+5M6tRaGkB8z-?dv;I+bl&r=d_3&YU2ytlK6St= z1Fhw0@f9-*rh73ubW)(%%07PQJOQBV8x`zhnin2{5Lyx7h)S~6`My^=eSJ)&;H$u8 z7{a+?SwfaSAnyzNx)wh3A{ty|i?4ao4A<1dqTFg<4Jcd+${!H=d4b+$CM`3fSgx~a zg+tR)JMC+;a)v1lEa(?@)#d7Sz;EN)r)0j3?Y{E*v4KJEGX{=Cn#Gj{?L-ZCqXDNa zj?9#fp9aV;)u3M4@yE10L;GtZyL#{bL36#49N$cf7Xprtm5MZ)w^53DU z(2cuD4;9Kqkg3v!C1@1TObBahIQ$YVRbbTEHepd(p)G>-b9g)0I*IdeKsbv|N~8E` z7dbf&eAz_NG%oE3TCL#3G6jho2hO*@vweL#4;RoOnhvyikWB!)QTY%VTywV!IHE-q zdVFQP@hRIYt_+1pbLNJ^Y0OCr1=`2$8B8$F zz>A5x-ppSwbR%V;4U;dMmGn|_(%Gr8|1-8l z&3|{Vtmu93vH7FVDwAFAIQolJ=#2?H6K7O=FPwaRo;YBjIH9Q3ad%7c8+n~Bd6C0V&W3~@b+dhV8%2+nz-u?JCDgmO;>E1ZXxM2q)Nv&0 z!bQG^Ec8$kB9PRDe9Nw~#j_}#(+)2zxjAH`+p6mbs0__Z8>xxs675Fu=wHib%>~iI zr=GqoYQ6@A%?~Xhqiu-pblR0xEj2qpC|qn|JvtEI=v}eI)VlAxeUy^Qe$&O}iTA^i z6)gjmk(pRdOz{v<;CZ^uVwrO!s(Zs14K4%4I9vk3&TX40d{i%ia=Q8X_xRDuaOn?9 zryp2GZe(0EU+&eBK2%7D3HRzqe!R~*2!DLkT5#h|Ef#H#{%IsLFdHJUivTvDayOtL zyXFpFLNb<0bP6&OZfl)xRYmh4KGL0Y=s=uqm1%opmV)I^qyUXQ{b*Kk_`?RRo%JNr z!dPQLHw(EWAEtUY@NhO;QTlUt_H`1ML>_>pSE4Y|=~3?RCHtXOY-|Nw?ET13y;<>a zCzXXY4)C%-V<$Rw@=cMkytLvKoDN^p>7aEgQ=Jb4%3_Heo%CH z^0+SQ8%UT_wBCj!QP3DHElF^8*~r4nRJ|*!lK0A7(x_V1zd9PI6OdtX+-fDZ?FQJx z%B9OP$FU4@VAqHp^!R_W#{uK82VEOUS6IbCu#dX%E^-GX!dOy~wJgW}`Y&NcO|X#W zW2S)exu;-5X5;C^j$lbm87f^_kyGfpui;e_mtm%&WVQP&bu)-z_=xf-XU^hwpSL+V z5=8$@7JfbVwJ3|Nrq#18=T^O;Ee4XaW|v?HabP$Dc9?7<)I0fzuudH(N1@E04*R|8 zV6t@&VWX`Q_L&Uxs=|63*!v`zq=3la2Kgbx8J0)$yAqhIJMewlLNwpbufm zK6HSp{eL6pPvoX{aV&XhNT;$0HhEkVKLXy^3+Mmb04)`>wiyt762!Z;Bk^0Wsk#JF zj&y7R%q8;3zsn?$hM_c$+}bO7a$wLkaP^9wS1Jseb!@(aryexgHi}Ievpa7170FG0 z^?V?be7f1s%%|`Y2eP5jk7k`=hZ6PoRP{_aQ)>lMPefcc3f;n%Kl|41(KCQ&!+ZNP zgh&$WXrMC z(z~F=O#hD9gOqfSTW6SkbY+eD<>^TrU}h{iYbH0J5Wh^aQ5QA}3QQa%$xzTQAuWJ% zwIcoYC>&84CY9ij&3LaS-NEsC$OyPEs0 z6tnkeV(TD`eBwE08@1`Fak+(jsCXYwXbD#v-){sYk8>38IZcWm-;y`Zbv!PbGwHzUzEgn_-PVwwKo{AZ-cwQ017h^ko0a45Gv8YkW5<*D zKZNM7Ufh$UjNRboU%O6n205&p8#?)|C(!Rk*o^IzMel@cT5;to6;GqK{-K+JIlvzB zdS3Ybz%_7&DF%KpuqcJxCv;+=_!iDHSCeoLbPgxBNeHl3ghyh`n$Nu5<91DF-PgMz zBd%+(ME6xk;<#nm(0<6(Z)pG#*2`Wldur;Or?-<{kcnEOT`Rj2l#nhF@XMAozTH!> z4gU>`X=<$8vW#7*TythEyF|c>zo+|dB=V(XL}cuPht|oaC+>smghKfAqAm84JFD%W zyqL;lcIAvE7Fq-4B^1eTOIK`xK<9l~k^H$I`Af%M-c<8LWo-LO*D5&b>vj7_B8Ur} ziI}5wfb*0G5gVg|clEcCCF4*1;7S~NUVf}S0*1U~Wf()*xX3+N8vllZVO`~4NwC1d zXoY|*Li{=Y-QhKf$JJ0Yi`=|iuPR;3D6l%8zvBdt0TIeJAI#;Z;=xeRUxeIPHxRJy z>p@9lBHpgAw^LU=ei4=lg(7b(!<=RO_;as6BR6gSKdnF>XcI09MiI;||J2x+K0xWy zJ>kkew*v2M@ogO|WUtQT$~Sn~ZZL!-?S8Fz98X}+$rrmg_okeR?u!;BlAl6fvV@U+ zed57seZcu0U-8lzsbfn-7ZsHe8z>cK@s62v&q(rTrwkEajR)h?719lk_xXKNSRE&; z8(!quLoh7VEQhdH_Kk2C0M=n4=rIan|B(bkhnXRln`8D#taUD)Eo??Qv+UkH zR9|0*w~lBJZm&TJdx-5zwr5*_>*Mi$toGy6l#F&!Z66u@PPdi;e?xfxaOE`4>Y=i zts*5PnjMAP@ae)2p*=oj_lMXYv&D|_T@I3Jj5AGRqDnMXJWU>rKRQzV#3-m0j{1Ne zVZ!pQw>c^Cc#CP!m53DS6N-`gP}at}Q<7Rt*uyWIaSo(Q{NY^~#q&+dVzemzSCy=!qS`uqOWGf2hY5$Pi6Heq)3nRXNyijFx zOXVY&yYlqZ?F^jW{+$JR#~$Q!Nzb~ByK*9`b9_p8^z_+lQe8^4LZRgV)Un3g5i~7|f$uKpoub@= z6j;8~&9oqx#0SpzWsB&I1@R1s>+dNFtm}_r_X?wc(muAWOGHet5_>oEJUVumA~%O$ z|GYf#oZB{v^z_nhvBEvE+Z?^zX#&?A`CIr}KQJLxba4i5>zFhgln-!t<6znFJ+sz) zFG6wrr-}8AZ|HBVL0Uv{ZOR8uT0I3LgE3-yu;~7KW3svsmRA!*Byht=Vq*gRPc00T zLis@dO%?5*=`S*X2)wdr#k*1_FT&y3_?pb4A*;Z>S8O>v>X3trx>AEB7c1Fii|sdB>WKI-ZW)&`+hLri>BV zi4d2%K&<@G8qa^aRqFg&o@bsJ7iFXe1Ms)128r2rgwT9`sx{wBYSxX}i-u!6p4Bc| zxGxr*{>1cZ9X4wJyJLa+lntk^Rft9`>ZBcj{1PPqFO)8e6pG z9Xw5CMYu#1wkNokWNN7yJ*fuSN^rJ^2ltnZoxfFUdJ7@&{Air^owI`5CPJB5cX~JhWAwR6rajHV zRWe3EM@TPsed_8HA4~r*jt2HPB1G6qNEjYiZC>9g(?Q9`AvU+2fizr|!#K|tO#K1S z@7djU){Sje^nF)beavvv&Q3;k~%R^;sWj{Cw zhK}z2S`;k*Lsfni&2(Z__4oFl0`o_2EuaSWux|qt;@7>9{Y5A?@)Ryr(bukPO`PTE z2Z4I>g>c6_hifYOJ+=ejrZ9B+lVK3AS?ZJ>UT5&-)|Q7+WPB@(u0)d+5&KX*(L@*l z9#2RQFM2TPT5B;ph|dPd*CuF#Ln1+z(EDk!~)!>Q;v4B#8(Qy@b3%wpDOqgmxXUhzfM{!3 z@%=mRM_|{mXo#L9sKlB#e+@f9(EN_b=2Z^m zczJj8VM%=jT;lG6M?Mc8uqYh$z8t|C>RBi&k5A}NlQKWi(j|d64{oVEBEqgdvG|07 z<6B#HW6v+3Qs$4_fdy7p{RHvpH(oz$MzjDql1z$uY**y_psa?mXJ$t^WIvqMr!S%z zv|&p#p30;gi3)~S<~MtQBOZ`` z@!RK_`DcG;pd0pR^WRQikk+>LMg?x;__eF>(bnJsHZ_)}=4$1+^YQN7bw*hOo4gd4 zFE&&A9ZuY3#MO=2t&lUG-gdz^N>iAX&+--EJ}&uaQiy%wWn+Ob!g>ClDf50gI3rHZ zqJ6vs$ZOcj-o|#Hrt|NNF!gf#bkV`mGon0jS~5+S#J^fPRMW%i{$3F&a%_Aa3us-X zln7YXP#C%k#~Z*E6i^{n(17O_i%;2^E|0mm(hvr%=lP6)trIw_e!owjq!8^ys158P zF)MS4T^3`K_+)fBjQoflf$8g+-8-?-MQ-OzUQt7IhU*L-4$Q>D@T-C-Y8 zE#h+Kr@O~cO7VN(kMuua(Yut7)1YaRMP$s%=Li%0GiUdzau|^$FcW7I65< z*=fUUf?d6G6TQE?_ZKjqbx#X1FYE|}VSAz(sw)%v{~MN1YS6i(a8=Q0$DP@;N87rj zKWy5ZVO+VaZV!IQLEC2;i!&}Q4l`&AzBE*4ozEsfAg<{N69neSSvY{a>F_d}A#o1R zwa`Ro^>cZU5Il|5hd^BfqJ)sRP2cvs5r{{-0T(b_=Kwy=Ge|Q-0$ZIiC%%$y<+RYg zB`3Y6=b8Yp$)>(+w22fzg+U0|fi$H~GoR;ghDvC&)Wa=-kjA$9Y^`nOWfPe6iF1rV zM)p54>AE{Hu6q$&Uo2SzDXW^BKBR3)AmD3QYQ^6h4PxMbt!@9&{}Gsj64m{e2@G27 zAPvZ@(fH_r zXSeak{HUvUy`l>*?WSZ`aK%a*$Mj@db`1w7*GP1N1k?2a*6hU?c(-E50tUOeI1u^5 zHL_0gkZPggt}I-7-NTF4l&TboV~Wt+d=HU32F=o!dEkW=24IWhYsFL-a-dTu|6u3& z4=RY7pIGFelTG+*4JP3CX>oAa$SW1kUz4Q9w&x4Ag6-0>%rFj!f`u(3ziEA{4X1HVmClCxe9rrekjPmMP7W(VgVJ{%4FUqXzIjBkQ zVn5{{anD>m4!4~dK%o8h!CGQb z3Dr+`cc5z9A6vc|X_$Jg=osJ2_l0QLbM_>*j^W3qfp7LEKrBx;zX|1V-wPBMN!d;g z7}iYT9`1E&Ne1?C**$6aZ*IYefw4M>n^?las7Nk156_mA(QI{qz_*M@1gRw~_2tNZ zvLM>M1^av(MY`0Elxy~tL?uDCk3FBSZ4E}Kyb<08+SvYxS(w9CpDM+nyX(`CV9W7i zqF=et*kxGI(kid;CsM(}M(5=N$J^T2?OEoTmtf7O!%5Ow9#H#fO3HrZlq_cBs|-*$bygIoexo@@8PMYQk53)`U(LM< zJe1$tKYouHyX?E{YmqfeiLqrVMQI^2wg^eu$Tnjqgf>dqOOh?wml;baM3yMaj3sM~ z-C)f9zek_X_xpLC@A5pq=Xw2quitsSkeD;KbIx_nbzSFrzu$dU-9Aghoi2L$!DS4z zaRfWs3yRwm!&y&g?p0dfXm#+v8)R7D2@HT(@P5_Ojl4=Y1)8$ypu_6U^2`N2<#F#@ zk^cU>`W=_*OsxRcISh&kUFtXy>eV>PE6Y#KIT82Q`P0JST5!qLZg36of3p@TI{ik= znJ^BHUj!^tdCy&eF?!-3ZP1S$vmJmX(2r7YFt0JBY3GO@C|W;?$iXF`-|J^_|xJ2 zLTj)_S^6;@lB-Pp@;{y(&|;zHU;dS21Pc~l^nv}=1%_S#9qB0+Fl@vSml9wG9^4uI zGn!A2kx`YyF;=_3y$5L*5LI6ZBnCMkOsuYe*K%3cT4HMnXxW(P=%*^0i3z-Z8(g%D zC($?~_YJWBF<)Yz{;ZI9XW0G^-RibuUERqy;&aqQRShACm>aztw``ETSg`2Nbm$o1}d)wdUlF?;J}Wx3=H_Zx`GgM zEu_-fX{Qv!3$Dr?MVk=-Uro}3dLFCG(EyNGAL5H9vxZzSxI3wd z`du||02x|UGlw{g?WeM2x9DdbG-Ome%lBo+4UUqb7((-p3t{TSKn?P^_b?9BjK%K) z`@P$he>K5CD=dG=LFM;rq0dlEUk~kByZ#>~GWi+xl=+iApfkO3h34j?$O{jqKe{~4 z7d+_~$tmi+lv3h&pU?X#m)P8vEAENHA2B_H?R8pM&q3awy3_kIORJxoQ%{5K4GFQV zi!?k6tQM0T+vF<)H*4e;XXie0pU5bf75sJ2;^NCYwKpMEP^^Cooi4|=0XGM(@myJq zbE5}8P7?;Q>B1ROy&{$Oz<7ywygO$}G8sU`;^Gd8pHM{6wn{|H?Il$H)?7d^Y0e_9dY8lf0l%e37-Ru0?4kA|l4k$XD;+ExM@t@=RE0-l-o;X~)BxjV?pv+926RYWTxJ z4Q(h?Z-7-0m{>z~+@^-VSabne&0pWEkCI$6vB8zciLCcFS-aJ?N@j2VVZnV;Q1LO<1wH5?wu3dmcLR$ zHdg|(I4Y{KI6c?25+v#55*u*&a#{qD5lGKxU(EJ#GR3e$7 zdihZ=$T2>rjk{j{#J1@7n%9EXeBIb|XKTbl zR}pN~@1{U<{lCpmLQc~=;lF0DpnyE8#FER|UF&b*xUz&+ShJv`qnNbUH0U?k=Kp~J zND}5cIzNOVJ`?+-1%1j?(#rg9;LvPKdJ1kDKSA3T$$8Xz?L`pF5?oHz8Q^%lMxI+) zSwf6@=1u=F`e=dtcGm3+7K+BnDoylYcqL8U;Xc0*vt&%H=9j^Fd0cup_&RT+^17n= z4d(^6590c~v)N8@1GyALH6?QAw*nb zMh)#}*TGn!x>E{~37kanuxs&MyS@`w5*Wf2tuG-Y&hlDo8Hqpa@za90jvps;cMlKW z(K(^%xuCX0OT&NVOpU#@f)5G=Tew1XN=Ke)AQMsP&ZCAGa1HLSLtJ+q%o~U}xC+Dv zR@Lw2Yy#O=_Yp+=+b454j1)hSmC36C?1)vaf0Rk#@QOdMSZ-TTf^I)ApCU z)GZJMB^cFOeu*JD-8WD1JA&bvJ;r+c1`Zm1%mjK!e87=WOrsBg6bb0qABK6^?2X>El*g^s_ixolIu1eO)Czuq0a z4N_5ZzI>ww5}+>sQuDB7v`NFdfB@mh%Y&lc22QuEdS}foKdF?3Y%GBU1V_zU!mvN& zP*7-8KTLaUVv*@7OMR&a^%f!&0Er6UJ9q+oM%!*NF0BY+Eg*M8i^>}^%|-;HU3fe$ z-~Fe)Br_kuqVmi4dly*>t(IS$8!zc@u9h^f=^7t8Ufd|sDqbFt8~B;Ap3WV8jp0(l zPXEpV3BRdzjv)=xGePOoq#XaStYwnEko$&IT$+v8Y>_J6xk0-!s7 zg-;W|Av6l512PqKz}&bG4v5h-z9{?x|EYMtfavj~rLZ^777-xh3kfd#Z zYj^$yQs9X9^}AkEAgmK36@fe*1b;B!sixwY(*v5s}q)&<{X21 zo95)6I_8mGLcuPT^cKSDXZ$CB{t`>q4$;khsG%ZpqJAx!)E}pLtTEF~l$K6aq_e~K z^Gy+tQ{U)=GzAi_gk+$TeRT_@Edt;4ubfOh_enjPp;>w3_O17m;ms2;2v=nrrWgFI zT4^n&lgE}fVw33FGH~kK7cYj0f#aR!15S%RkMtt5&C6aMjW^v;+%kSJC-d;(j-Oln zdZ+BQ;7i<3bGVltx@!k&`?NBlSUhtua=apH$0ouDtv{kYd$?)e0yO8vN_9?mNgsXo z{mEs9*}Gg{K-7V{)}Y+%+r=88(^+?&(eIt>19$0Lv(L3pVcJ3md_P>l*&%TDZ>SZ) z|7kcD#ZT>6+Pog@7E&KdRKm9Q)$BoOKUBg=|4LupK6pdojM|5zi~o=^hxJ#2})i-Ku=F-igJq?ef{JQ zkD;L^3tU)%9W8LqQb#PF+XQvt$4|=kQLEPe3pLaGhaPT4-bm8*J1=q}i`EIX4VnzD zX|}Jz6M`HDWq4DtB&5nRuW`ASw3Dp3QrIdeKXY$bwK+$dU0q04@0T!K%lxOx^{{SF zQm|;$*leMqLNzp+1(7#&0<#;$<~#IsX$b#s75a{fFUS0Yw-{_@M3CwAUibNB;S!yS zVN3mHaP(n~Lo}9ZWSN#dr@C)PhL6Ayu2wQG5Evt+uTz|(N^jx8dpU&P(nQ_^lZaD? zn(%g_!4!?P(#`d2hNZ`*90D2f5U(m4QjRfq7a@Ek44DWff6J4lT@_dey>)b zXTNXe@_tE=H7IOS%sCLwd%$X)ZYC&oYoq@VQcLK4AD_dt0A=YWzxWbOQTg9~oqrYZDsvPv_zk(u2y z49elB`9-#0PS0qP&7|hMb>T@#y;{-ftpQ>Dne4P@yuT>;3tXCqem-tM9v7Pn6KO90 zlCY&_`;#K#H080?@*EXJzFX^C!u8uNm4ME^7Ad2E88uWe2;kcbR`7 z?5NpX<%6A<>AEVNS@z2D43x0g>9|UMyL=_au{q)b?!>CPeue{k(1*)oyth-s6&XkJ z{d`{bb_wzyW^#-& zg$?^27SwtINNPOyy!hB6)NH@DNv!;8vyFK-js2t5rB)((S(d4*Tk{9f+C)BsrW%C?c1VLT$B7=aa9hM0=kQwP=lbqQHnA zJ9*z2^!UF1+SM@VCo_l9aG14Nma6UD*#aId$0U6w7hh zYhn&vE^58Z?g35{`(J?{zo)Rj2d+Gj0pEw)B+k=axFpANJhF%!?^`2pm&L~k0~V_t zOz!eOC^dMY@C|2@j#Rn#e6ZZY$n|T(<$|IWqvO_n!cy*GQjhkToX{XS8*#mOEhc$G znB$VQu@yc|Ocg);(w6B!*9;dqYhJDQsw3Cq7B<<}(iYaQoJ+kj;||Qqqz$vd;=;mc zo}23YELz$(bT%2&(A5xL`-}SrU0ZTKHOs(pz$BajBh6h5u)~6Zb~!->dIkV-2ezO7qD+qP zh!!m{xZh0>Lh{|s{sdNic^zG*-KkO#QU*kaVzB(!3t7~9zuLB!tO#KUFz3qPEBRS zcXE`>%NBieESJK6jF|3e)x)LpA{7n?*!0&k*edQf;8A07%tyz$00ts&&VO{nxz~yK zNZz8EYfPBq>DxV>@$t>6f<6pfY4K&Z>ZN~p%aTBM0YL2lM+(c8AMm1}9Roc1P%OP! zoz5tpz;@E_k2ib+2xET+(g$=%TY2|4v(rU0$0V|t_-9K}f}l6&jTJQ3WBF|43KzJG zna2lrSAfh;4L#l#z7-^R&*=DMtPUXQ9aw+`|78y;J*t4~SxII7_7C*-I~x&Lk}WUm zBmaOpEKcOj8G`!G=q6n{@?}IFhHdkIm-Dw zpd-~4hW>Fm{m*``2degkY9B2+S``Bx#qaZn?n_Py*O=c}%uL8jJo~BTKaFY*K-)k+ zsV(>hHY*b-S#z?KyyRFL^Sqz1uPgFWqKVu2>5D4JY1^@)^LYGhc7^)`;Xaksb4=QX z=rA13%Z_|&r^oM(q-h)n`(6Mv84;68Jn)_K5V2Ct$%-w4pr*zlcWa>eoekP3jlA#?=gSWqnsq;*{=R-y^Px@RQ~&cG{w$P@-SEGZ$i@ExP`N=tn+t0z#^id z2u&OJePv@k=udm4pxHY3AVzJfx(4H)K?%~%b`J^|TM$l}uM`ny%4tNvB!DwtoKJf2 z5ZpwnuOK&Z29ew+A{F+Z3EkxCXRd@FdDr4mJaXp%Ft7-hM(0VW+02R?H zyCK%pwOzti*PjI8bZ*pagQN!vcu*8z!B+bkBE-+7=wYPv11DU|#&W4$aHEOgUMehs zpODvF0JSHtUO0SVobkB(iGF%6_KjN+Pk$M>yx#^(IkrdQq5Cu>RyU3ru`nDgZK6BZg zZIs`bS;{!neoWfme`ITd$*Fp1Mu2|15WTpaEOG1BPlB6p`-k+ET1dryW43U;6I{B2 zfu!Daj&!SQ+h684zg5kF(h7_m~;9y_or+gG0}_^2ZgiawEY%mC@g|&kypLH#^Z!Xrz-9j>K*bT{M{6 z$f-O`cd0bRXGr%5OA7Qb1 z_viA=JT}8wEVcKciRFb6{R?I{uCkQ5DNmF;9yv)@F*p~w?V>f`FEVj1PRbzy7Zb)km=aGq% zHX~hDL@jlz;QA*14I>wKA7z74w$-BgaRf{N=B{j;x$iXtaU+a`A4QDwy@p=IyrXc7 zhs{s;MRD&6y6f$?p}Au0w9Hi!rn@sybW=75MYTFk*3?2CI%3 z>brBwn*iLepONX0C_#5C;=SUozi}36i;Gv3K{;z7`)9%85WrZ^>=9gny;Io){Xw*a zvcwh?FqPFq+vaR;153haJv*fL zr0vCbU3>by1wHm!>C{akxYNcSVNPP`{Ni~rL}@UqtgHemfnqbQS%p>iEx899j~o_o zD{gx5oy9#?OjVhlOZpt6T})?gJ8rVbLWbD2PsQIe84Zr=g&%ao8DGD3sg@S&bpPAd z9Y`DvdJ_1ZJVH<5UpmPKRMkoU=}8FAb?WU{kk~0aSDwC#%UZWx0GFh9xG$8KgJGyP z9SLFw-Mm%9t1Y41-B;2kpff}{zW4rNt!F)^*zV&(W9kPeM326N9~Q|KvhzDi*p3y` z)Io!V3qGJ&BXi#lNFf|#TboCr!vUH%I4g=!TR*N@galc7BuBN6F=pJ&Oaj#B_73mM z-Konzi*(nuA5Jg&RS&9tlJIt9F0*MRhcPHwK|_UkgX}E`qOb!@*|08>HwP*M>L(n0 zX~-}l&h5B))QoSNAv@5Z5MA@5OmgGV&tIRmcPw^?yUxmN@M9kfA_w$WX!R*CJ&8*g z;5n|+}muDhOTU<3g z!5i+X`{e}&NAl~~^Y}Yj7SN0PWDFymwS~%jvv?#0Qbvk)8*x}->w5oa^tm`!=eyWVx<}%TB`@QD)O=-1ii3)TIB6>mIP{#AdgzDVt8DM2*d2gUcK<3}51SWXNrLYMrPRO_YSeUn zhir)arBk39;n`SAt$904ad;~%Ji$wP%lhHtN^P`K83+baOQ*<9*(>=UlmAofi3+#r z32Nj+EcVxGeVLt(zh^3ku?gJD>Ze4AyhK;nJG1who!yUPYU|c@nzA3+@e-W=$#!Z_ z36Sfki30HC9{xCgb9_xyk$0iq?WoE8=}}dFDAN5CgCGmYTyK+HVJo?C?2(8cgVFih z)iHFYh;xUU+;YX{TmbL8G|X?$&ob9qYUXF9|6K{NO-2`NljLtFr-w*M$RJYMBP|^+ z;zX_0>I||~YHVROBO^pKg94!9f43fh0SRANZ^QLku>b&v0eJ*KjDs6M&`3b#R7Sx4 z(SyHWY+Eps0ak6lfg#9u1wa(8#6tY2snS-URk zb5PR~o4ex?Fn%hd+NcOHdcY*(=oWC;@w3HBLXX5tTs+4KhnoyiS;s@V4a7P=$X!nh zm5V%(1G`$!oww>IeO@U)5?W!8Fw~wh+EGCy>FLB=w)B@*_JE zvs_hCg1Tsu!$lsBrKKbSoL2Rb4Z0{iGWPaN;cZnqT_FbIE0BffBC{H2$_o?$A&=%Y zA&1->E|u~=oEvpE?tHuujA<^cm=cx9{@M?)xA;xXCXG4MpMXw$?kVi%I&x}U%&V)XeeQmL=?w@z7Z%Oy4-9aC3`euEA84YdOejgu6WE1;`QzL$Q``*v(N

iwh-FI_6(7L4k)-onwq1b82_>{O1s)nLHc-9iQ zKQb~92)o_wqT~U=Au8wM+LFqY(e~6z90kb6zPS7i^b3-);NKfr9?D4m_fWhrD_DW_ zUrdZzyb5Rx?x==^RD60Ix7yudPThoA1Zm&x^I=htf+5RY6>?eky*(t+;;Cx5rxkjh42?890>MS zWrVOywaK&?L}Py-t!mX8S8+2qI5;Bd@Yf>UgXiwml_OcgbSrNvu|UgLTmx_$n%Cw> zSvDn{BIe6AzTRtlG$o-yVJl2?Biv!KaL^&u4!k0?2&5?)%PASl}@~;L+(6U zPQYlCKMHo(SCE4b@#-lxo(9a~*&Rv#hBP5_h$Mahd^mGEfjI1Sy{mrdXv^E|VsxRl zhpfS!y{l`gHGX*VKeWae@wH5vzfS1h^){HYgAg*Rh2r>46hVriZ@Vd&=C z7tpmJgoWri(YP(?#{3f8UdB1`y!-+_?N^3ye;piZFFi?ZHbw_XU6x;;q-&wkp!8`vZi;(DLDB zdU`;9)@2NKEho&E7Omn8EB`jn7lR5p)?*VMMv7=xuTAX=RBRUsyg0#)En*tP`BR{_tYpUs#SCbk9yn(arW z7;Hz8rJ|lg5Z9(B?WmJ%ubY)oq?1tyAsc|N;MIB!c5&4D#3&L!1p@sGOgOmc^J!T& z0f!|;{&xhA8HP_uC7I{0BhlWUUkqc)^ot=&qn>6x;lfn<-2dHa28_ZA-2Q56RCFKd z+-cyxrwn z*3T7}yWd_oR1k2Lw7N1|vWL4EbbzY$sfA^od4=|1Aka~Gc)`BlX>*c!0RG#V+%9kn zDu;KDWCIy*AVvh$E!eZJ5cb{l`ZBmZ1TA^z8(k23Z=zAzg=X7Q)KXmj;Vt)-4S2`N zLk+3H1w~7oZ&h$`9E9rG#AC! z^AI3Z9#$E|1_OT@hJqPf+R*pZHUQN`{p1VPNDj&fcFP39g6Y4#wjf`-G+q|6IKKpt z%Vp24#n^6Y=(tj@IXq0JJ(P3jD{&h#k-=#++AtakwPyxM}N-#~&q z6mS8=@X{U{crQO7cKH5sCWroR9D19eAJ3J#>SIH6m>_}`Sh46@ljx~&gnq5c9YlNv zH}mI4MUjyS#Kp#wp{GK~<@@#Hax`{=X>N%=l3z25zWx)0TqJLg=p89#dj0xTF}~BgiWjtGY(ApK8?|2%(K~ zEE}%!Db9n~8zO}poWxw*?11*^+jo&@%4z6zr|BCQpbYFh2(E2>*5~6X1c=&~?K-a0 zP$~aiTmi>q;&Fs&ia4fCZB1Vi9;Q9-`JjWeP{cxe5p{q0c$*+_tbO}>g;&AKDoB9^ z$?Y>jMIr|--zdmf(1rlzv=6{98*yikSijKNM(sh@Y@n^N{8ea0+j~yHEITspO%1A9 zpotIjScUkxzxfjsr%5cJF;JAoPGj;b2{6#D!m##d@bN3^*E;{aJW;bZOMlRgjM?w* z?7;v=cK$sM0OlaRQ36L&C*_Z}=Si$GQVY$tEK+~oidPTnL5EAl5*~fhc#iYA?ozixIM=I1D@5a-b={@jJ0yCvC5OZ99kS(QiHxSOne3VM}uP)BFy0|0ZPV!3*X^zV{(eSyZ8~Xbv zp^p@?N+|8h*|9v&e&+u?m)rlF>fddhSS}dD*Lttkw~S#j z5HPZ<4yfsMT+1bdU_{OqCe`OgOw5;pxf2A)C|aS-^L9_2CYr=Z^9}}o33RIvyMooe*HICR@)ni&&Ch=L zB*LNnPul`_4(U#y@mtuQ2S(P7H-P9v%~l#ln>-l$3EL!&-6S-`bKJFFeT)bwx^Zi` ziBjGSZJ+brhU(yaSN!zkcN}8<4t=X^J_gtJ1|OofGr%DYBa^9pR4Vhow+J-&-z6qs zf)&jFr9uFU=9L9*J6^b5P6p665Ywt;uA-R(Qg-=V`|F{Vl|@1rNWg)J`h>8h;_Le*;8C(Fkg2LquQkA`fyq9C-W zxb-(a{>|4!I)=a{QB2Sc=?+5@9#3*+d&xGYQ7^t|$~M}?T3&bfaJ44!ckb44)F3P!Z8L}@zYbUupRHrG*f!ne6LZpr$it9C z;nY874w|;#*zX%T|7J@DDB_z{|7iNV)_UAZjcY^cSF#Ijr&K(T3I{8U$CM4^rfSeN^jAnLT3P z0s0{Yy;qV1pPf}mwx)JedsvU()EaO^>Z>PXyQgFJ?UmifLWVgy$%Foit@zBInV}`S zUqzLMXMxyHJZ4U*BXt>r8<7m=fK0VUmFVcMb(d}vY=2fU5UrGC{#`~C|3EbXgKp}e zKO-enW*+)qs)=J>oVxZgQN_8ibnC{}Fz) z16FwGuhpVEPzZja=Z6KkOr**Q3xfEMOsq$yvJ6Y_kq`|`mLEjGMA%mMtw+1*4be$6 z2cpl2z#}!b@eoFi2`sb$4k+2whL%pXl2!(@6!&I@GvSrBv4up;Csv;?P5tj<6zk1PA`)@65+0*ofUD7)pf{ zH2x7{{eSa+{+&^R;-rTEh|7akOA$zJ#nHPejBK4MD$l75t%Ye=ER7L~P$USo6*PmB z6#ofezEP@)`IcNAk5P4s)0~(YA~w+Q7F6>;@~TZ2pBFV53?+R!$*^~c5T!`CPL}XV zVtB$lW?Omr-~x-SG>%~>wZrGFo94VzzqTykk>iEbs<1l7sWUj=hB?yk{Zrf}hbF5V zwtnlEocWMY5Qc;>-Hl2h;}IGdNAmTU;U{@@Tq^Qspzo5jUnh=SdvD~jQ^v=}L%E?B zEqLl472WDB{0mPb>dkMBz*cS#A`;BmMgcg1`HDl^BYm{+>>pwqRBn+81P6Kwq;wlx zg-dd~8WK*UTZ3=YVmQTPp=91s&Z6K1ETu6&Akm!wav+HRgI5a zL(s4N98GO}K_)OvVyh|)msgliN|>eCIIM8C8^SIec7a5TiD*- zh=OdisxDM%Aj3gmzXY9BuY}qUbLFB^7ZxOeg)8{Uw9drQH3k|Q2Ns9^&?9g**Fqm6 z39b`tnpVI3UJHgrQGz!f*}1A>#3?B17=HS@{XxUgg8O$yuqwXw2@d_%-`el=*0O3$ zqYUkF2)P6agtePcS3Y7tQ)tTR373cf8G?=#?96b;g1RwB0Cs|Kg+@Jbf0npQuoKK# z+Zy=ks}I%>+vZdASD@y++jID}7cl*9lbm3$j!E(oJnoc`%)@ioag%Xx3-u=^Ad&S_i$6&S~d_f_pJVMacDu8fCPzS8~Me^oh!M+5K4+H z>apktPPk2hcI%DB#_cuoZj^KoP++nxa=BP&?YO;zChl%R7`@#_MKu8g7jg^zx7mPJ zGn88V?;^f)V1*@rg}XwEH+1buA!56JI!CR%+sCoHAQ%ZRZQ#Dl;}aSI)-jG3*D`no z_d3QFBW|LGM|OFMmf%Fo_46k_rr?K^2FO&Qr+G&Vn+rkm!0cA%%1Q@J^ZDGpjU?r~ z=^X+3E)aw$sD$XKSu9$A_pjr$GWIkIcx~r-zh8q3N-Tj4E~rqaMiVxFhGOZlvCjxO z&b@@W8?@l7KZYsRs%*KS;y7TuYU~^{8liN4H$#{Z&o)PwlSuB1)^OoAJay1M&YzCGu|;K8#&_`|Ce0{M|8u z1kAqYUa~UR!9jsIuHW1KD!tqB<9vLYaoiV#&C7c(c)fkcJA)5!{Z4>;&746lj<9t* z3drV;gRbN-wJjyee7xQ4Ls9o&E?)TkDCr}sfol%6jL8K{=vW2KfLamijlds#9xQC~ z6Xk~_?;}XojcLcHbzuRi;xSh@pbXbn(POpGGM)i!ngd$y#w!l|E?vF=S;f2&Bvi=s{VJU@kLFbGEH~*CJ-~VW z<+jD}lK=kR@3#he$$+RkKFQ z4C@*W;qS$n)Fu$oZabd(61L}Mo$N)KJ8#@5~>0c$kHEIpEQWx z+NRO*o*X{#X^XN4yp@LxqNX$Sz&=1VExltCVg&rFEYsg{HqdrJb?W}r`A8!ozVn?1 z2@TkvZErVU6~$PmMt3Wi8=+{fqK5}0$eRSZ26V4PbTI5$Nm6OuADV*DMw7`Rxsm;7 zsV&aM3K0I4azDb$9y`a(9(Q{wn#`-6NXEe>KbR*$(a-g=G}yX3Kc|M&K*6^C;yrVR zUd%Bs8uYcw=jPL0D&LrRQdl+>ADE$Dlcjn@}wQF_gcH@qK?`BX;^&fhJ z{)4AXj_htHup4_z)!AKcUg~Q&Ka3rdTXaoo&9h*#v(?m$yzzc1PZ;0K z%-mt4&{aJ*x~1}rh>!s1SjexSV9^W@h#>I5z-;exgRQ0JsU6!fIV*rq`Dee>Z5?on zmUJLqkvnj3|J{-*IX{Z~oJI|Y1QXM8^4L_J9a?hr49nF)Fmyhd`I` z_IN6we5~j}Q-7Z0T#v)MGkT`Clwgua`c`7c4?xVIN!Vk36~KWuHjsM%;`By=6}j|C zHAd2-mZcdlMj?vKoE9Y2?rYM z-awLsSVNq&cU@)z*;kmDi=i|Y)wryof7-76fRBJFDX!&iv>yU?+=`wz$3f5EQk zDNY{yCx_a&t1bc+x5AdYo&Hp+>STG{JQ?zDscq-8z9HbSIdn2_@Nk#gjLOM$}iCKCltrH>l00Q|GJYjlRdIKJt z7&~~c;)viZ5ytSeuR2B$!-7NY=T zLM@5zmLiPuvpYqrmS2LqvRXm{!C8y!ij0Q;o{QihTcSB0Fc?8fC(wLOs(| zCmCX_p@a}+*b>9vsx5J4M>h?AlRNV&YrP)*t&FWOq>I04gh<0q^ci?alTeU1$=sA% z2w;plxUo^J>$!8gYC>KGH42Fqn%#wVQb@KlV@%mA6-Yo`J9egLlyiKAZn&p458jvF<{ai!l5F~|Tv)cC zM>nt@i0)^8d(49!IlG*{8`A3sTiue>HUSavZVO+A^z(-uT z4J&bL?0vi7(V(I=cDoi?1u_UndHkSd>NyQ!$f$ zL&{S6qxBASR=Mf}*<$ZG*wt3j=;X|3Z#Wq`Z&5;U${`cVRgnQb&% zYk<0BZcj?VjTo|OjY=w;m4-LuL)IG-*gbObe{hK?!(d9Ak0rolh(H&+vyA_96WSY< Jf5sg0{{b~n^|}B6 literal 0 HcmV?d00001 diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.h b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.h similarity index 100% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.h rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.h diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.m b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.m similarity index 100% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.m rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.m diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.h b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.h similarity index 100% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.h rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.h diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.m b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m similarity index 79% rename from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.m rename to Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m index 4692f5c..ecb227f 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.m +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m @@ -31,6 +31,28 @@ #import #import +@implementation NSURL (BundleURLMethods) ++ (NSURL *)__bundleURLForFileURL:(NSURL *)url bundle:(NSBundle *)bundle +{ + if (![url.scheme isEqualToString:@"file"]) + return nil; + NSString *resourcePath = [bundle.resourcePath stringByAppendingString:@"/"]; + if (![url.path hasPrefix:resourcePath]) + return nil; + NSURLComponents *bundleComponents = [[NSURLComponents alloc] init]; + bundleComponents.scheme = @"bundle"; + bundleComponents.path = [url.path substringFromIndex:resourcePath.length]; + return [bundleComponents.URL copy]; +} + ++ (NSURL *)__fileURLForBundleURL:(NSURL *)url bundle:(NSBundle *)bundle +{ + if (![url.scheme isEqualToString:@"bundle"]) + return nil; + return [bundle.resourceURL URLByAppendingPathComponent:url.path]; +} +@end + @interface WebViewController () { WKWebView *_currentWebView; } @@ -90,12 +112,18 @@ void* URLContext = &URLContext; NSString* requestedDestination = self.urlField.text; if ([requestedDestination rangeOfString:@"^[\\p{Alphabetic}]+:" options:(NSRegularExpressionSearch | NSCaseInsensitiveSearch | NSAnchoredSearch)].location == NSNotFound) requestedDestination = [@"http://" stringByAppendingString:requestedDestination]; - [self.currentWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:requestedDestination]]]; + NSURL* requestedURL = [NSURL URLWithString:requestedDestination]; + if ([requestedURL.scheme isEqualToString:@"bundle"]) { + NSBundle *frameworkBundle = [NSBundle bundleForClass:[WebViewController class]]; + requestedURL = [NSURL __fileURLForBundleURL:requestedURL bundle:frameworkBundle]; + [self.currentWebView loadFileURL:requestedURL allowingReadAccessToURL:frameworkBundle.resourceURL]; + } + [self.currentWebView loadRequest:[NSURLRequest requestWithURL:requestedURL]]; } - (IBAction)showTabs:(id)sender { - [self presentViewController:self.tabViewController animated:YES completion:^{ }]; + [self presentViewController:self.tabViewController animated:YES completion:nil]; self.tabViewController.popoverPresentationController.barButtonItem = self.tabButton; } @@ -173,7 +201,7 @@ void* URLContext = &URLContext; #pragma mark Navigation Delegate -- (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error; +- (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error { [webView loadHTMLString:[error description] baseURL:nil]; } @@ -186,10 +214,12 @@ void* URLContext = &URLContext; float value = [[change valueForKey:NSKeyValueChangeNewKey] floatValue]; [self.progressView setProgress:value animated:YES]; } else if (context == URLContext) { - id newURLValue = [change valueForKey:NSKeyValueChangeNewKey]; - if ([newURLValue isKindOfClass:[NSURL class]]) + NSURL *newURLValue = [change valueForKey:NSKeyValueChangeNewKey]; + if ([newURLValue isKindOfClass:[NSURL class]]) { + if ([newURLValue.scheme isEqualToString:@"file"]) + newURLValue = [NSURL __bundleURLForFileURL:newURLValue bundle:[NSBundle bundleForClass:[WebViewController class]]]; self.urlField.text = [newURLValue absoluteString]; - else if ([newURLValue isKindOfClass:[NSNull class]]) + } else if ([newURLValue isKindOfClass:[NSNull class]]) self.urlField.text = @""; } else if (context == TitleContext) [self.tabViewController.tableView reloadData]; diff --git a/Tools/MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m b/Tools/MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m index 81d209d..2b000ac 100644 --- a/Tools/MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m +++ b/Tools/MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m @@ -60,19 +60,9 @@ XCUIElement *clearButton = urlField.buttons[@"Clear text"]; if (clearButton.exists) [clearButton tap]; - [urlField typeText:@"http://test-safari.apple.com/"]; + [urlField typeText:@"bundle:/looping.html"]; [app.buttons[@"Go To URL"] tap]; - XCUIElement *captions = app.links[@"Captions"]; - [self expectationForPredicate:exists evaluatedWithObject:captions handler:nil]; - [self waitForExpectationsWithTimeout:5.0 handler:nil]; - [captions tap]; - - XCUIElement *viewInPage = app.links[@"Video in page"]; - [self expectationForPredicate:exists evaluatedWithObject:viewInPage handler:nil]; - [self waitForExpectationsWithTimeout:5.0 handler:nil]; - [viewInPage tap]; - XCUIElement *startPlayback = app.buttons[@"Start Playback"]; [self expectationForPredicate:exists evaluatedWithObject:startPlayback handler:nil]; [self waitForExpectationsWithTimeout:5.0 handler:nil]; -- 1.8.3.1