From c1cf3a39f1d4b6d4da93ecbb92a28c97697f0650 Mon Sep 17 00:00:00 2001 From: Filipe Oliveira Date: Thu, 27 Jun 2019 20:25:00 -0400 Subject: [PATCH 1/6] Create .gitignore --- .gitignore | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..312d1f65 --- /dev/null +++ b/.gitignore @@ -0,0 +1,68 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## Build generated +build/ +DerivedData/ + +## Various settings +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ + +## Other +*.moved-aside +*.xccheckout +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +# Package.resolved +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +# Pods/ + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output From a9b2bf8c3b332887d9c8ae3f0346e6fb253af42d Mon Sep 17 00:00:00 2001 From: Filipe Oliveira Date: Fri, 28 Jun 2019 18:45:21 -0400 Subject: [PATCH 2/6] Estrutura Inicial do Projeto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aplicativo possui dois fluxo de tela, cada um com seu controle de navegação interno. - Arquitetura MVC - Projeto não utilizará Pods para auxiliar --- .../SantanderTest.xcodeproj/project.pbxproj | 693 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + SantanderTest/SantanderTest/AppDelegate.swift | 46 ++ .../AppIcon.appiconset/Contents.json | 98 +++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 + .../SantanderTest/Base.lproj/Main.storyboard | 175 +++++ .../ContactFlow/ContactViewController.swift | 23 + .../FinishContactViewController.swift | 24 + .../CustomTabBarController.swift | 61 ++ .../SantanderTest/Fonts/DINEngschriftStd.otf | Bin 0 -> 29432 bytes .../Fonts/DINMittelschriftStd.otf | Bin 0 -> 29448 bytes .../Fonts/DINNeuzeitGroteskStd-BdCond.otf | Bin 0 -> 30452 bytes .../Fonts/DINNeuzeitGroteskStd-Light.otf | Bin 0 -> 30424 bytes .../SantanderTest/Fonts/DINPro-Black.otf | Bin 0 -> 88940 bytes .../SantanderTest/Fonts/DINPro-Bold.otf | Bin 0 -> 90228 bytes .../SantanderTest/Fonts/DINPro-Light.otf | Bin 0 -> 88240 bytes .../SantanderTest/Fonts/DINPro-Medium.otf | Bin 0 -> 89060 bytes .../SantanderTest/Fonts/DINPro-Regular.otf | Bin 0 -> 87364 bytes SantanderTest/SantanderTest/Info.plist | 65 ++ .../InvestmentViewController.swift | 23 + .../Utils/UIImageExtension.swift | 26 + SantanderTest/SantanderTestTests/Info.plist | 22 + .../SantanderTestTests.swift | 34 + SantanderTest/SantanderTestUITests/Info.plist | 22 + .../SantanderTestUITests.swift | 34 + 27 files changed, 1392 insertions(+) create mode 100644 SantanderTest/SantanderTest.xcodeproj/project.pbxproj create mode 100644 SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 SantanderTest/SantanderTest/AppDelegate.swift create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/Contents.json create mode 100644 SantanderTest/SantanderTest/Base.lproj/LaunchScreen.storyboard create mode 100644 SantanderTest/SantanderTest/Base.lproj/Main.storyboard create mode 100644 SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift create mode 100644 SantanderTest/SantanderTest/ContactFlow/FinishContactViewController.swift create mode 100644 SantanderTest/SantanderTest/CustomTabBarController.swift create mode 100644 SantanderTest/SantanderTest/Fonts/DINEngschriftStd.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINMittelschriftStd.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINNeuzeitGroteskStd-BdCond.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINNeuzeitGroteskStd-Light.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINPro-Black.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINPro-Bold.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINPro-Light.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINPro-Medium.otf create mode 100644 SantanderTest/SantanderTest/Fonts/DINPro-Regular.otf create mode 100644 SantanderTest/SantanderTest/Info.plist create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift create mode 100644 SantanderTest/SantanderTest/Utils/UIImageExtension.swift create mode 100644 SantanderTest/SantanderTestTests/Info.plist create mode 100644 SantanderTest/SantanderTestTests/SantanderTestTests.swift create mode 100644 SantanderTest/SantanderTestUITests/Info.plist create mode 100644 SantanderTest/SantanderTestUITests/SantanderTestUITests.swift diff --git a/SantanderTest/SantanderTest.xcodeproj/project.pbxproj b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj new file mode 100644 index 00000000..7afdc049 --- /dev/null +++ b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj @@ -0,0 +1,693 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4320F22C597D500E116EE /* AppDelegate.swift */; }; + A0D4321222C597D500E116EE /* InvestmentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4321122C597D500E116EE /* InvestmentViewController.swift */; }; + A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4321322C597D500E116EE /* ContactViewController.swift */; }; + A0D4321722C597D500E116EE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321522C597D500E116EE /* Main.storyboard */; }; + A0D4321922C597D700E116EE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321822C597D700E116EE /* Assets.xcassets */; }; + A0D4321C22C597D700E116EE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321A22C597D700E116EE /* LaunchScreen.storyboard */; }; + A0D4322722C597D700E116EE /* SantanderTestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4322622C597D700E116EE /* SantanderTestTests.swift */; }; + A0D4323222C597D700E116EE /* SantanderTestUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4323122C597D700E116EE /* SantanderTestUITests.swift */; }; + A0D4324022C59D0F00E116EE /* CustomTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4323F22C59D0F00E116EE /* CustomTabBarController.swift */; }; + A0D4324922C6B28200E116EE /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4324822C6B28200E116EE /* UIImageExtension.swift */; }; + A0D4324B22C6BC4800E116EE /* FinishContactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4324A22C6BC4800E116EE /* FinishContactViewController.swift */; }; + A0D4326822C6C37000E116EE /* DINPro-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4325F22C6C36F00E116EE /* DINPro-Regular.otf */; }; + A0D4326922C6C37000E116EE /* DINNeuzeitGroteskStd-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326022C6C36F00E116EE /* DINNeuzeitGroteskStd-Light.otf */; }; + A0D4326A22C6C37000E116EE /* DINPro-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326122C6C36F00E116EE /* DINPro-Medium.otf */; }; + A0D4326B22C6C37000E116EE /* DINPro-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326222C6C36F00E116EE /* DINPro-Bold.otf */; }; + A0D4326C22C6C37000E116EE /* DINNeuzeitGroteskStd-BdCond.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326322C6C36F00E116EE /* DINNeuzeitGroteskStd-BdCond.otf */; }; + A0D4326D22C6C37000E116EE /* DINEngschriftStd.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326422C6C36F00E116EE /* DINEngschriftStd.otf */; }; + A0D4326E22C6C37000E116EE /* DINMittelschriftStd.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326522C6C36F00E116EE /* DINMittelschriftStd.otf */; }; + A0D4326F22C6C37000E116EE /* DINPro-Black.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326622C6C36F00E116EE /* DINPro-Black.otf */; }; + A0D4327022C6C37000E116EE /* DINPro-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = A0D4326722C6C37000E116EE /* DINPro-Light.otf */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A0D4322322C597D700E116EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A0D4320422C597D500E116EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = A0D4320B22C597D500E116EE; + remoteInfo = SantanderTest; + }; + A0D4322E22C597D700E116EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A0D4320422C597D500E116EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = A0D4320B22C597D500E116EE; + remoteInfo = SantanderTest; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + A0D4320C22C597D500E116EE /* SantanderTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SantanderTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A0D4320F22C597D500E116EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + A0D4321122C597D500E116EE /* InvestmentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentViewController.swift; sourceTree = ""; }; + A0D4321322C597D500E116EE /* ContactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactViewController.swift; sourceTree = ""; }; + A0D4321622C597D500E116EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + A0D4321822C597D700E116EE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + A0D4321B22C597D700E116EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + A0D4321D22C597D700E116EE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A0D4322222C597D700E116EE /* SantanderTestTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SantanderTestTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A0D4322622C597D700E116EE /* SantanderTestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderTestTests.swift; sourceTree = ""; }; + A0D4322822C597D700E116EE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A0D4322D22C597D700E116EE /* SantanderTestUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SantanderTestUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A0D4323122C597D700E116EE /* SantanderTestUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderTestUITests.swift; sourceTree = ""; }; + A0D4323322C597D700E116EE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A0D4323F22C59D0F00E116EE /* CustomTabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTabBarController.swift; sourceTree = ""; }; + A0D4324822C6B28200E116EE /* UIImageExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; + A0D4324A22C6BC4800E116EE /* FinishContactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinishContactViewController.swift; sourceTree = ""; }; + A0D4325F22C6C36F00E116EE /* DINPro-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DINPro-Regular.otf"; sourceTree = ""; }; + A0D4326022C6C36F00E116EE /* DINNeuzeitGroteskStd-Light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DINNeuzeitGroteskStd-Light.otf"; sourceTree = ""; }; + A0D4326122C6C36F00E116EE /* DINPro-Medium.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DINPro-Medium.otf"; sourceTree = ""; }; + A0D4326222C6C36F00E116EE /* DINPro-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DINPro-Bold.otf"; sourceTree = ""; }; + A0D4326322C6C36F00E116EE /* DINNeuzeitGroteskStd-BdCond.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DINNeuzeitGroteskStd-BdCond.otf"; sourceTree = ""; }; + A0D4326422C6C36F00E116EE /* DINEngschriftStd.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = DINEngschriftStd.otf; sourceTree = ""; }; + A0D4326522C6C36F00E116EE /* DINMittelschriftStd.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = DINMittelschriftStd.otf; sourceTree = ""; }; + A0D4326622C6C36F00E116EE /* DINPro-Black.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DINPro-Black.otf"; sourceTree = ""; }; + A0D4326722C6C37000E116EE /* DINPro-Light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DINPro-Light.otf"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A0D4320922C597D500E116EE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A0D4321F22C597D700E116EE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A0D4322A22C597D700E116EE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A0D4320322C597D500E116EE = { + isa = PBXGroup; + children = ( + A0D4320E22C597D500E116EE /* SantanderTest */, + A0D4322522C597D700E116EE /* SantanderTestTests */, + A0D4323022C597D700E116EE /* SantanderTestUITests */, + A0D4320D22C597D500E116EE /* Products */, + ); + sourceTree = ""; + }; + A0D4320D22C597D500E116EE /* Products */ = { + isa = PBXGroup; + children = ( + A0D4320C22C597D500E116EE /* SantanderTest.app */, + A0D4322222C597D700E116EE /* SantanderTestTests.xctest */, + A0D4322D22C597D700E116EE /* SantanderTestUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + A0D4320E22C597D500E116EE /* SantanderTest */ = { + isa = PBXGroup; + children = ( + A0D4324322C6B16800E116EE /* InvestmentFlow */, + A0D4324522C6B18800E116EE /* ContactFlow */, + A0D4324722C6B25800E116EE /* Utils */, + A0D4320F22C597D500E116EE /* AppDelegate.swift */, + A0D4321522C597D500E116EE /* Main.storyboard */, + A0D4321822C597D700E116EE /* Assets.xcassets */, + A0D4321A22C597D700E116EE /* LaunchScreen.storyboard */, + A0D4321D22C597D700E116EE /* Info.plist */, + A0D4323F22C59D0F00E116EE /* CustomTabBarController.swift */, + A0D4324C22C6C33000E116EE /* Fonts */, + ); + path = SantanderTest; + sourceTree = ""; + }; + A0D4322522C597D700E116EE /* SantanderTestTests */ = { + isa = PBXGroup; + children = ( + A0D4322622C597D700E116EE /* SantanderTestTests.swift */, + A0D4322822C597D700E116EE /* Info.plist */, + ); + path = SantanderTestTests; + sourceTree = ""; + }; + A0D4323022C597D700E116EE /* SantanderTestUITests */ = { + isa = PBXGroup; + children = ( + A0D4323122C597D700E116EE /* SantanderTestUITests.swift */, + A0D4323322C597D700E116EE /* Info.plist */, + ); + path = SantanderTestUITests; + sourceTree = ""; + }; + A0D4324322C6B16800E116EE /* InvestmentFlow */ = { + isa = PBXGroup; + children = ( + A0D4324422C6B17500E116EE /* Model */, + A0D4321122C597D500E116EE /* InvestmentViewController.swift */, + ); + path = InvestmentFlow; + sourceTree = ""; + }; + A0D4324422C6B17500E116EE /* Model */ = { + isa = PBXGroup; + children = ( + ); + path = Model; + sourceTree = ""; + }; + A0D4324522C6B18800E116EE /* ContactFlow */ = { + isa = PBXGroup; + children = ( + A0D4324622C6B23100E116EE /* Model */, + A0D4321322C597D500E116EE /* ContactViewController.swift */, + A0D4324A22C6BC4800E116EE /* FinishContactViewController.swift */, + ); + path = ContactFlow; + sourceTree = ""; + }; + A0D4324622C6B23100E116EE /* Model */ = { + isa = PBXGroup; + children = ( + ); + path = Model; + sourceTree = ""; + }; + A0D4324722C6B25800E116EE /* Utils */ = { + isa = PBXGroup; + children = ( + A0D4324822C6B28200E116EE /* UIImageExtension.swift */, + ); + path = Utils; + sourceTree = ""; + }; + A0D4324C22C6C33000E116EE /* Fonts */ = { + isa = PBXGroup; + children = ( + A0D4326422C6C36F00E116EE /* DINEngschriftStd.otf */, + A0D4326522C6C36F00E116EE /* DINMittelschriftStd.otf */, + A0D4326322C6C36F00E116EE /* DINNeuzeitGroteskStd-BdCond.otf */, + A0D4326022C6C36F00E116EE /* DINNeuzeitGroteskStd-Light.otf */, + A0D4326622C6C36F00E116EE /* DINPro-Black.otf */, + A0D4326222C6C36F00E116EE /* DINPro-Bold.otf */, + A0D4326722C6C37000E116EE /* DINPro-Light.otf */, + A0D4326122C6C36F00E116EE /* DINPro-Medium.otf */, + A0D4325F22C6C36F00E116EE /* DINPro-Regular.otf */, + ); + path = Fonts; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A0D4320B22C597D500E116EE /* SantanderTest */ = { + isa = PBXNativeTarget; + buildConfigurationList = A0D4323622C597D700E116EE /* Build configuration list for PBXNativeTarget "SantanderTest" */; + buildPhases = ( + A0D4320822C597D500E116EE /* Sources */, + A0D4320922C597D500E116EE /* Frameworks */, + A0D4320A22C597D500E116EE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SantanderTest; + productName = SantanderTest; + productReference = A0D4320C22C597D500E116EE /* SantanderTest.app */; + productType = "com.apple.product-type.application"; + }; + A0D4322122C597D700E116EE /* SantanderTestTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A0D4323922C597D700E116EE /* Build configuration list for PBXNativeTarget "SantanderTestTests" */; + buildPhases = ( + A0D4321E22C597D700E116EE /* Sources */, + A0D4321F22C597D700E116EE /* Frameworks */, + A0D4322022C597D700E116EE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A0D4322422C597D700E116EE /* PBXTargetDependency */, + ); + name = SantanderTestTests; + productName = SantanderTestTests; + productReference = A0D4322222C597D700E116EE /* SantanderTestTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + A0D4322C22C597D700E116EE /* SantanderTestUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A0D4323C22C597D700E116EE /* Build configuration list for PBXNativeTarget "SantanderTestUITests" */; + buildPhases = ( + A0D4322922C597D700E116EE /* Sources */, + A0D4322A22C597D700E116EE /* Frameworks */, + A0D4322B22C597D700E116EE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A0D4322F22C597D700E116EE /* PBXTargetDependency */, + ); + name = SantanderTestUITests; + productName = SantanderTestUITests; + productReference = A0D4322D22C597D700E116EE /* SantanderTestUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A0D4320422C597D500E116EE /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1020; + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = "Filipe Oliveira"; + TargetAttributes = { + A0D4320B22C597D500E116EE = { + CreatedOnToolsVersion = 10.2.1; + }; + A0D4322122C597D700E116EE = { + CreatedOnToolsVersion = 10.2.1; + TestTargetID = A0D4320B22C597D500E116EE; + }; + A0D4322C22C597D700E116EE = { + CreatedOnToolsVersion = 10.2.1; + TestTargetID = A0D4320B22C597D500E116EE; + }; + }; + }; + buildConfigurationList = A0D4320722C597D500E116EE /* Build configuration list for PBXProject "SantanderTest" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = A0D4320322C597D500E116EE; + productRefGroup = A0D4320D22C597D500E116EE /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A0D4320B22C597D500E116EE /* SantanderTest */, + A0D4322122C597D700E116EE /* SantanderTestTests */, + A0D4322C22C597D700E116EE /* SantanderTestUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A0D4320A22C597D500E116EE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A0D4326822C6C37000E116EE /* DINPro-Regular.otf in Resources */, + A0D4321C22C597D700E116EE /* LaunchScreen.storyboard in Resources */, + A0D4326922C6C37000E116EE /* DINNeuzeitGroteskStd-Light.otf in Resources */, + A0D4326D22C6C37000E116EE /* DINEngschriftStd.otf in Resources */, + A0D4326E22C6C37000E116EE /* DINMittelschriftStd.otf in Resources */, + A0D4321922C597D700E116EE /* Assets.xcassets in Resources */, + A0D4326B22C6C37000E116EE /* DINPro-Bold.otf in Resources */, + A0D4326A22C6C37000E116EE /* DINPro-Medium.otf in Resources */, + A0D4327022C6C37000E116EE /* DINPro-Light.otf in Resources */, + A0D4326F22C6C37000E116EE /* DINPro-Black.otf in Resources */, + A0D4326C22C6C37000E116EE /* DINNeuzeitGroteskStd-BdCond.otf in Resources */, + A0D4321722C597D500E116EE /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A0D4322022C597D700E116EE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A0D4322B22C597D700E116EE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A0D4320822C597D500E116EE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */, + A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */, + A0D4324B22C6BC4800E116EE /* FinishContactViewController.swift in Sources */, + A0D4324022C59D0F00E116EE /* CustomTabBarController.swift in Sources */, + A0D4324922C6B28200E116EE /* UIImageExtension.swift in Sources */, + A0D4321222C597D500E116EE /* InvestmentViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A0D4321E22C597D700E116EE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A0D4322722C597D700E116EE /* SantanderTestTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A0D4322922C597D700E116EE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A0D4323222C597D700E116EE /* SantanderTestUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + A0D4322422C597D700E116EE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A0D4320B22C597D500E116EE /* SantanderTest */; + targetProxy = A0D4322322C597D700E116EE /* PBXContainerItemProxy */; + }; + A0D4322F22C597D700E116EE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A0D4320B22C597D500E116EE /* SantanderTest */; + targetProxy = A0D4322E22C597D700E116EE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + A0D4321522C597D500E116EE /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A0D4321622C597D500E116EE /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + A0D4321A22C597D700E116EE /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A0D4321B22C597D700E116EE /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A0D4323422C597D700E116EE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + A0D4323522C597D700E116EE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + A0D4323722C597D700E116EE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = QDM8KY5J4B; + INFOPLIST_FILE = SantanderTest/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = br.fdso.SantanderTest; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + A0D4323822C597D700E116EE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = QDM8KY5J4B; + INFOPLIST_FILE = SantanderTest/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = br.fdso.SantanderTest; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; + A0D4323A22C597D700E116EE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = QDM8KY5J4B; + INFOPLIST_FILE = SantanderTestTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = br.fdso.SantanderTestTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SantanderTest.app/SantanderTest"; + }; + name = Debug; + }; + A0D4323B22C597D700E116EE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = QDM8KY5J4B; + INFOPLIST_FILE = SantanderTestTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = br.fdso.SantanderTestTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SantanderTest.app/SantanderTest"; + }; + name = Release; + }; + A0D4323D22C597D700E116EE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = QDM8KY5J4B; + INFOPLIST_FILE = SantanderTestUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = br.fdso.SantanderTestUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = SantanderTest; + }; + name = Debug; + }; + A0D4323E22C597D700E116EE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = QDM8KY5J4B; + INFOPLIST_FILE = SantanderTestUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = br.fdso.SantanderTestUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = SantanderTest; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A0D4320722C597D500E116EE /* Build configuration list for PBXProject "SantanderTest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A0D4323422C597D700E116EE /* Debug */, + A0D4323522C597D700E116EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A0D4323622C597D700E116EE /* Build configuration list for PBXNativeTarget "SantanderTest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A0D4323722C597D700E116EE /* Debug */, + A0D4323822C597D700E116EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A0D4323922C597D700E116EE /* Build configuration list for PBXNativeTarget "SantanderTestTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A0D4323A22C597D700E116EE /* Debug */, + A0D4323B22C597D700E116EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A0D4323C22C597D700E116EE /* Build configuration list for PBXNativeTarget "SantanderTestUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A0D4323D22C597D700E116EE /* Debug */, + A0D4323E22C597D700E116EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A0D4320422C597D500E116EE /* Project object */; +} diff --git a/SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..7432e55c --- /dev/null +++ b/SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/SantanderTest/SantanderTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SantanderTest/SantanderTest/AppDelegate.swift b/SantanderTest/SantanderTest/AppDelegate.swift new file mode 100644 index 00000000..e39888b7 --- /dev/null +++ b/SantanderTest/SantanderTest/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// SantanderTest +// +// Created by Filipe Oliveira on 27/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/SantanderTest/SantanderTest/Assets.xcassets/AppIcon.appiconset/Contents.json b/SantanderTest/SantanderTest/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d8db8d65 --- /dev/null +++ b/SantanderTest/SantanderTest/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SantanderTest/SantanderTest/Assets.xcassets/Contents.json b/SantanderTest/SantanderTest/Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/SantanderTest/SantanderTest/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SantanderTest/SantanderTest/Base.lproj/LaunchScreen.storyboard b/SantanderTest/SantanderTest/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..bfa36129 --- /dev/null +++ b/SantanderTest/SantanderTest/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SantanderTest/SantanderTest/Base.lproj/Main.storyboard b/SantanderTest/SantanderTest/Base.lproj/Main.storyboard new file mode 100644 index 00000000..02b62b39 --- /dev/null +++ b/SantanderTest/SantanderTest/Base.lproj/Main.storyboard @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + DINPro-Medium + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift b/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift new file mode 100644 index 00000000..50729286 --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift @@ -0,0 +1,23 @@ +// +// ContactViewController.swift +// SantanderTest +// +// Created by Filipe Oliveira on 27/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class ContactViewController: UIViewController +{ + override func viewDidLoad() + { + super.viewDidLoad() + + // Remove linha navigationBar + self.navigationController?.navigationBar.backIndicatorImage = .init() + self.navigationController?.navigationBar.isTranslucent = false + self.navigationController?.navigationBar.shadowImage = .init() + } +} + diff --git a/SantanderTest/SantanderTest/ContactFlow/FinishContactViewController.swift b/SantanderTest/SantanderTest/ContactFlow/FinishContactViewController.swift new file mode 100644 index 00000000..0240dffc --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/FinishContactViewController.swift @@ -0,0 +1,24 @@ +// +// FinishContactViewController.swift +// SantanderTest +// +// Created by Filipe Oliveira on 28/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class FinishContactViewController: UIViewController +{ + @IBAction func backAction() + { + self.navigationController?.popViewController(animated: false) + } + + override func viewDidLoad() + { + super.viewDidLoad() + + self.navigationItem.setHidesBackButton(true, animated: false) + } +} diff --git a/SantanderTest/SantanderTest/CustomTabBarController.swift b/SantanderTest/SantanderTest/CustomTabBarController.swift new file mode 100644 index 00000000..7e00bb6c --- /dev/null +++ b/SantanderTest/SantanderTest/CustomTabBarController.swift @@ -0,0 +1,61 @@ +// +// CustomTabBarController.swift +// SantanderTest +// +// Created by Filipe Oliveira on 27/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class CustomTabBarController: UITabBarController +{ + override func viewDidLoad() + { + super.viewDidLoad() + + tabBarAppearance() + + tabItemAppearance() + } + + private func tabBarAppearance() + { + // self.tabBar também server + let appearance = UITabBar.appearance(whenContainedInInstancesOf: [CustomTabBarController.self]) + + // Remove linha da TabBar + appearance.shadowImage = .init() + appearance.backgroundImage = .init() + + // Sobrepoe propriedade BarTintColor + appearance.backgroundColor = #colorLiteral(red: 1, green: 0.07238733253, blue: 0, alpha: 1) + + appearance.itemPositioning = .fill + appearance.itemSpacing = 0 + + // Calculo para criar imagem do tamanho BarItem + + var tabBarItemSize: CGSize = .init(width: tabBar.frame.width / CGFloat(self.tabBar.items?.count ?? 1), height: tabBar.frame.height + 5.0) + + // Correção para layout com SafeArea + if #available(iOS 11.0, *) + { + tabBarItemSize.height += UIApplication.shared.windows.first?.safeAreaInsets.bottom ?? 0 + } + + // Efeito de selecao BarItem + appearance.selectionIndicatorImage = UIImage.imageWith(color: #colorLiteral(red: 0.7934507728, green: 0, blue: 0, alpha: 1), size: tabBarItemSize) + } + + private func tabItemAppearance() + { + let appearance = UITabBarItem.appearance(whenContainedInInstancesOf: [CustomTabBarController.self]) + + let attributes = [NSAttributedString.Key.font: UIFont(name: "DINPro-Medium", size: UIFont.systemFontSize) ?? UIFont.systemFont(ofSize: 40), NSAttributedString.Key.foregroundColor: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)] as [NSAttributedString.Key : Any] + + appearance.setTitleTextAttributes(attributes, for:.normal) + appearance.setTitleTextAttributes(attributes, for:.selected) + appearance.titlePositionAdjustment = .init(horizontal: 0, vertical: -16) + } +} diff --git a/SantanderTest/SantanderTest/Fonts/DINEngschriftStd.otf b/SantanderTest/SantanderTest/Fonts/DINEngschriftStd.otf new file mode 100644 index 0000000000000000000000000000000000000000..ae85f8ee3b9487c8ed754a72d2d14ee5c5004243 GIT binary patch literal 29432 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 Y%kQT5oru3neL=`iEUtfENfi+I7d^Ox6aWAK literal 0 HcmV?d00001 diff --git a/SantanderTest/SantanderTest/Fonts/DINMittelschriftStd.otf b/SantanderTest/SantanderTest/Fonts/DINMittelschriftStd.otf new file mode 100644 index 0000000000000000000000000000000000000000..9a6e0d4ff5d0db37d9e7c5e3c6c479a47f21debd GIT binary patch literal 29448 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�v3OYaenCm)= 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

(C`csk zfySo7t%Q`y5nKTj#6JKddAwSFTXs)LlBiYEVA_DaI~8+n`%LngG*(4my(vsg-nMC{ z;$V{dgw1Lgxv<1aG;yhi`*ekSz!ynwYHHyroOJ5A&kY6XP*_X`qmz6TGuh8Q)gNrL=&VD_}5s>3rrOYDb@+Q;@>?Lc*ZGR_#S=BkLZj(qS5u~B?;Ch_n= z#5sySNw8zHTPJT3uxR}FfYhJ<6_cvbfHGCG0PG#x5Nq}T=}hDpUPa`*{1cJ0cYI1p z{EjsB9T6urw2|LHyrTnR;sNCqLE7e(3qnou=w=MHbRulTn@v)QQ`dpOUI39QWl$tU_RROWS zLKM_GAD#-8O?aZ|eo`0h^Aw&8lv9~J7f6(m4#2FQ#z+kN(Z`9(rx;i9;^Pvsl~Mxb zJ-JH#5lRT$P%xdLd{fT`Bbp6zSsR}su_o!L>L#%)n71#ggAdfb5=MEX71c>ZD$nzq z4~JI_vu^eyZXA_(y~lWkSE4c61NfPar6CGLqzzB;rcp#%@uO&i66-zKoAOKkYy_NW z${jLFppBCgu{%nQn;j?v*@_uN#LWdggMIiLz0lSZ7nlvFDpQr*G2H`ivYmJ0Anso) zWwGoDE9v$t`TUm)N(7a_f7NjA7HJS7F<4rUl;{hnGIhQkx;nVh={`3VryuptB>GZG*-$=GM>icI?YMM5N!NQ z?zF}uI9Ro6)yh>NijbA-*RN6sZ&{O+X_NW+&MjNurV$YysfdgSTeV)jCHQl9CmUiF zD!&?(<+e+euy}gnc*XeXo?eU9F3!PDeQo+h%}RDrdF?ppc~WumU}C}!b;_=-`>xx_ z5TOY2m|L(X?*QuSj?iFBNcCzjRj@Wk_?hZrt~x~g)rpgkt8VB`1BZ$7xDSLsiSoz? zLPSzAbRf6nzjC*mJm+rV{aer)P`ykQVfRgmu17aHnIYnGNVZUKOWKt}+)ICRGem}( zhMGc|ZW7np`(-!u{9q9I%UT2u7Bj?#nmXLYeQt)BWRo0WX%je~HxbK_V-r3{9sh)m zK7ky$Y&^l?2}mUP4DFENAey0!%%mA|*<20^z@Y&6jSP`7{RAz*KyO_h0)3EANz-aC z<#BSuOx;Xf@6}v0(oASbGo*bI9<4=d-aXd_#g&TSs@DTNL(cvXS?{NAV;|opc z3z+Fq9*HhXP90=u#_M$U^fN+3x-MOeB|tNS{c52sm@e0YNsF(D>YRi)iAmF*&$(`0 zhXxwMMySeFV(S24sEUP6*aT^Fgfd4KLE zH<)`0txy%-G*WqRBBpI*ai14!aad?e47P*tHixiY1E}|uHNx-cvV}78)wiV0kE9E{ zDmv?ClFrriSIIH3&Vf(3#(h7XGZ8A6sh{ratKb?BY!6l_y4;>LzII{Xi6iQXM=s2{ zrXY^Lp6p|T^AASe_bIB z)w)3O(d6w1RI=;2{81cO}R!w?t5%Fd_;pg3b~KDcE?1M2N(DGg*1ZWvXi%- zYI@g_$%zu(IKyN)=_59bBa`5%hJG>M)iqAS-4Vu{obl#J<>@8fdM~_O05;6U=`6T7 zg9QPE_jDHWZk$CoVsVdH2xZw|{U(1zm@kknScTmER6=eW6mnCrLom4S-k*Wl1P2TAb@>hkk&Rpq<%DttzC zZ}u7SH|DdRq+@>6#gJ5EoTk+BI8B_BF;{*vpg#+V&R6LLjd~%qVD&OONlm6p5C?sA zv*Qo$>ju#EftOL8??To2U5&p-yi1+$WK!q1r0RSxeeL(r;^!B$y6&&mA2MT^h@b8S z)c0d0jWBP`!qh9q1Y>k2_c1$@Kf&d-ZW1@@O#VH7e@@-Ww;0{Yzojl}2g=>aLn#Y! zB&vH*NW8?O+o^B43%zLaEzdw7Q{VE4*~(D#JoPP4rM~6iUqB*lM_S`nVkaflrkecA zU%g=TQNKi5@_PhpIC|>V&sDZYF8>0LGnQTVFOQNAd{`eF15UFrO0*% zsn=N&a#u-9Xh+LEOR^b8BeY6~bz`X>W-UT|b%0q&PcgUFa88K$zp~2p4EaV<{`MRt zH!F;c((TwO*~>LsEa76q$|IWoJW#@g;?MoKa*f6~%^=U^-IZMUUMxC!clzsVaqBTy z4T*s}{TN;HK*>Dhc6Xc2Tx~<=#S-0z+@POGttW5-wI(cK(2z2{3TvE~J;^gU zS-^D#Q(nU*BjV_IE((Pozzrdps>h<<9feW2Y<~<=4q_+0@WQ?lwb?40*agJ!*G`YWYkd zsVl-7r8a3ox~L6Gce!tvf0(~&+0 zMy-!lByaO`R?FPKQMOhh5{AjMeJmmgd- z8t6V+3^VXMq_f!!e2lK0trz z!9(DCk_|F5jM@v!G2{U|`?~b)Ncsm1s_g03t-U_bR(WTh@^>wv2^PO|_aV~j2n#aP5w5BgE+m0y>)2j8Ys;>KBgnYZtzZv-N%5YEdmx*6=dkCWMTD!mXv za=OCU89f7o==QYOw3CeE1JvNV5Qc_x{`~=crVreOC`I<*+u$cWSJAL}038Qwaj}wR zvp>BWj>f5AuAEJ;ae=s4#a=m%f0!=p(-PL043>N7o^Hm&Ml0iE2^9>M-SrJOgVgw9 zR5T3kLvxA1<%*WUq4eTyTzt)7be_S`OoEYua#t}JRT)+{lfWu_^5Y z80t{o@yfE1u(~t0FpL5*n#~rk^ZjrH#;NoYwQVHF^u5si|9zQ9fW!SvCb8rf{TOea zzhTRO;*|UTE-^B|L+)ldHc7kvXAM*Rq=?Or281A2ou-P?tG4_=w>+4HaPmV0%O7q)wp1s-k$OLp!l(KT06 z!#(;=1;agiLnCS&%N>2^14#D%cuhPf=!xk zAeVyq-T-HJ`g;%kO|SFjR2A6r>%GL#Ub;-pO)1-a&6=uFA$8L_0pFWJyeZZ9Fr~8U zr618;2}3H_IK%LLH*AG2!j8)78C~;*^Ug};WxYtRMN>{)Ztjq&YmZYA-Vn8SjgoZp z;2oPV;P3GNL2&yitYAoo;qWE;R7H9~I@3eUeL5UAd2sML%Sp*lHP-_SrH7adJ-bYa za}2D%4}~$^ckn-!XUEkv+_oEcEpVvYS}de^zflp8{`CRHf~~ReKYvA_N_r@ zgUW?=rc()~mkJj1KhTzmrq=)ERqIDD<&>&~CCPEpznX6A zbvdH_iiOV3-YXU=7I|$(FyX-M%XfukTVl>?194jT=`WI^wp+$UCvHwvq{pvxPE%v4 zQ(bs^#JKqG=av1%lh$&=Yxb&fn#*o?6%RB!a?U~^2@YuN{C#vzF1J*G_McRTr9v%O zDkQ;DK}0PTiq0vA(Ge-t2f=-T>eHdtwueu+S)nfGGN4a)p!#%D7YcP6E?C!vj+}aU zvL4olZKw+Mjy1_#C(hazGJ1!4e{*B#^ad3}rw43F4_42Av}CtyT6yU7od}&C8C^AW z`Vy~T=UL6`FIck3-Amy{c0muj%T469Xy@)F>RHc%)0QOoQ**AFFy|VQAk0PK!F9MMI+hi=CtV#Avo&E$+Wu$tzuK`cGE1?J z%M{6Cs2Z~g)cDrWL=rs~Ub=l`o}5?UtIP^~uG(#`L7VoAhxP~kasuJ*OwFbfihWsL z_m#&p7dqlZWyi6DqcdizX|yq+{kZYA^+W|M4R*t)=JD z=RIZwsEMmCOiPQ8NLQpLF7=64NBMr?5kAI}vxnxlk0@;1a+g3~OP>I*rHd2`y*H*g z(<+LEqt0p;KTzDgoSdyuU%R=M2#?#ypwiWSMb){m=E)^fAKWh%Ph+A0x2eQ;ODjd9CtVHDP)0fGN`~`+pkNlw)m%i_0~z zm%J`3pa~Uo^Pvc>C5pSe?fP@72PHw6@h=g@IVv21Z;{T=8s>Ss*2INI%}?!9e?(#i zLhPGj_HRvEs`fp)JkclqjWPSjR*l&oLSy!GlS4#4-Z60;S(-i~s#@|9W>s)zR98uglO#0Mnb8XBTfsYZSr4TgXqM>74fK#4j25}X}3B3O7O z$5SpF=LVFkU&sS=OFa2d9Qx$(TNB}UB226gE;_~?k!(2$2L4O$tv)T6%F z@}RXo3QtaTQ*<>W6~%o_uE|?`B3|H|l$5kRX}20Gnb)=ex;4?JEm7soKssgMy6`RZ zrfGXbqSlf+&q!TfIfkk}hE`-Zv?2#2kEvEfbX>B$+=qHJ_~3jxagp1m&FVwqREWKU z{_)RrV{@@(cAOVr|bTS$&BTv7B2IC2%rgskd-M`WRGjNnNJ>p3X;qvr{sOQKw z>c+Xq_}iJfz&PlmNk@2&yzC0k5&cd&IImIX83+9;qvy!W+ID#Pgi+MAnMTlX;J-`| zl%uM9kAr>*l{Oh|u2M|JBFWgg^;K@69-6OQomLri?Im7%|43HvL!FimU^)$fw+lpP z2PkE6)N{I$7Ze;<%n#9B`YgKsFaM$Yj?6}=Z{2rY-?(xgflv7+uzFXzR$m#Ri%KS+ zY!PvTBE+irkKM~^R3{ziK^8<6TcZZCJQi7_CdsO&yDC3i*LW(~Kt{s~SP|Qf9mqPe zf$Vbjn7~4y7PJ`1iV8(9#r4D=;PkQfVrOxL_>}m%_>Q>LQebIqX=CYP>0udbnPqvz@{#2e%b%S4)Kx#G2RouvV8^pVaDGYYW)?ko%->X`W_X-n5HFV zoJ%_s?sypM7$Oj!8{R9inS$%mstsq&2T)ZbfU5V`%L;?*Cxk_>*tE=YbIAH2f18;L zyatRKvNh8Qr&C~o)92c^K7>_3Y*za=X{M%!EE(f*aE)8EELbL))X&cGcuJ;vEdH*XyPtSlb zKZQ>~M5M1ec9Hk`MT#j4eWp)WUmhS#OxzY8tB8wP8M0mNmm0q+RdIB8+`)rtneHjM zATQ?9x#rK8irrSY`1s&BFpt-d13R1IJ~m2C`r)`C|DJSP(@j}$Ip*tgI1el~kDdpn z%YLJmZRr%Tv|V`|O5*skZW%r-l7pbxkHTbd`*RAq@52PN$H8*iy{=G_*Yc_*dDZ;o#Zb0Q_T;9W7^csLYsdr0bZff~k+Yc~n*gIu6V zT_M%a$5+f}>`lTMdpOc7ZqxGe6Z4EtxXYI>T^XeC_Dg^@j2$wu6EE`f@(x-W@x^l0 zcIBoo;uLV`?mUT}&bOJCbU~VC?j^;ItfV~&>iG#-9yb)1G<$LQ)#2ltX~E@r%P+uP zYM0BD_+g4^bNoYs)F5)i{xA$MbR{2(w{P5%eoV1Hd2x>!E8PPF)rg;lL;Ys>q#O;! z_EEHc{Kk=*36{=jxz2YKcTT19ry^}VUT7nOX;%lORQ_=K!P&{Gy$SpF6<}%J`VqV; z>o)7o*{I+#c`z+;&z>|d$A!N0CLtJ)Z34~^SvY;dB9G}a7bcyc+2c4X=};)aYZHsB zq!msA{BUi%4?UgG+H<&_U zmGJ(q2!=?~@en)_j?8-xPlU}Yw*^nN2^I&gnL$UM(HCK=$roXJ6<-9SxMvv}X8T*r z%NB$Lu5dA$mznpBQ3;W0mQvkjIy&Lem#niBl7@zbsD2cV;xX7!y{>c&4x%Bm3nWxs zZddQ2&Vyt?XEIXk?iaBo7={X=aVa)LD$WWzFn^C~r~9mJ;}l#YuH{uxN^Dq2BrF!z z`!29)BJO@FXnUy2H*{=Jcl@jb)Ls0wd;NC2 z9~l`No`OvZ4$l#dn-$>huAV588u_ie3kpo{Q=nua9^ot)@rXM@Z$2?x_`AAf8uDrC-ZT%pH%mpntJqwHfFfl zFqn^_QTepFiaJlJe4jGqw)m`z6_KcUn?%UY*nhB!WQ%MMizQFVr0 z*yJvK)Ke%AGbpfGQHZ55Y6U+=)Y}v&hTyq3QDo0qI}mI73&Of>h=ZFVBojq(<&(hrw}SiNsQ>mmH6Yw)%Wi&drT~-YbIAS)HldS z1$}$KG(|6IhVp}1%5f6I9P(=jJqOQsg`|TnaI#VgrC|9nYea@!)t4}c)me*=hn;jk zsPZ^Cd++=`9OM!8lRUPDY>uGe)5ahX&s^!c)L-T6yd=cKg9?H9FUv5FHTh}+2AY@hoIbdt?o(o-#s$GK|d zVWFkE&his(iT>Mgq-etSV>UO3pYGOU@OZn=p}!NwuZi9qrHG1J>a%pY?_za8%Wb0A z=m0;j;9wu0C0i3dS7SbFw&oU$8uGt6@I4OXe3M(?zY$Y*N}3Y9>D-~MJ5r*91GcH8 zb)qr!i(e;`(kY+8-7HiowJ{sV!%caeQVN;T;p0*S!|hRd!ktoS!tH?xH$+NsLfnVV zuYc&gIBc1}3MSA8c*Uy?;;2q&>pHX*WVA%o3l{VBi6|c@kG}D!HeC=h;n)JM9{$hv z7V3OBa$sA`pItaCcrt-gVePzTwC?-WzPBce1xG11_D%b=yCt z0haB=b?=fMkz&({ZO0M77bk{#;lxl7DlG7tLzve=3X3imoT|A&w*kVU#@`^^Y0akg zTthm=?Tt-7us_ayUO=!{puehrH{qgrAzsaKRNv%qU$2U?!oDNgk6J6lb?8<9Zm(44!+f7 z!b1NAPO2h!y4T?rLF#QkgR67E@C7#Co5Tl_Quggja-E@)+7N535wU1~LVf1zh_Gy^ z8p(*b(BXvlDu*zV!hAs*q}1K!66pbT-3#vCQc|n-3^6(g#!F*FTrXJvccs?<@C0ba zZ4|<-rW?%Gr6n-$r00L}6N6zlHS8qA4cVZ|j;1r+$RKb$Egv2_hfaQmb9BbUp>B3V z>Ed?A48I90##r`l_RX+<&2EV{j*gjdaJuFAll)?SJlJ=+4|aMdlLh%CYEV^MB=cEB z&oC3XXL795I5AO^7$KY+aQ-Ax0U3xWs@XV{ls|sYcqku)o@ApmUlJgZLS&EAz=YB& z3oy9v$$zoG!Lh0)WGFq`6pJ3-6#}OHVpy&w3P~b0yr!Ke;?&$ikPm5RaOB#FrEvU- zBYvlp(kO}UUsCp(hf=zPa_2@q*t(MloM#4m-TL@ImE$V)Q&!M=w1cF!4eVdr;Qu%q z41eKYv2-!lcp}$8)gNYkJx~}e+^|1_0$h3mqmR_aa=W%zO7)`OzEWd_AUF6_1^+;T ze?X9TSVvIfV+XK1jLnW94mR~osKFVbC9Oa{|c z(lV3Oxp@<8x2yb@#TO=?RGk_>cxN|7_rdOCCt&9Y4OCyL8V1`ejkrVWn@SYYbVYg+ z&Jff0xGM2ktdi<`G?7Rx_9@}S0%->IOt&Qp9J>c+OS#ka}^4%r~QZ;j!pNu4*adeuTMo;}_{77o~LXc(g|c^ei$q+4?+# zWNMR?e}wN-HTqN}o3avfJ*jn*G?3~_Af%GQ1sR8h($g`eMl0mz29~!#mWD#VW0b9} zha-`cp08YCza@=`-+@637K_&B6X#_Y@3D!ScR|vQrI3&)49@E zsngKDQf`j%1Pz>tL1LskBr*lpwo^;4H#fMjB^bCnRcCwvUQSm=QZjxeX{BrCBOS0Z z9Tn`L%LYl&{U6Fh&wrM30&g^U19)uO;^{7wFFFt#T}w>tn;}X7g(7OSSSoVkdJ5qp zmP~pIG35{UhVf}Tl8qDL0+gGjYp?K)Hybs84a3J$u5alSX(DNhQ(i=#Tw9?Ohblah z&XCaUr7RbR(7~1WG!FfPz5pj1O6S29t45ND*l(6nmA}!48fzcYP^z2ywOq>Je=Hzj z2I1(mYP0-2oSAxaJ?1QAY@KI#xiB3V3;IY|86!Yat-@a{e!sdWV1$flmYb&=)13de z4gYVag>yVy7(4#oUi`oPkPH1@)qm+VoM31ASHOrEndvVp{>v;=hhcqI;44CumGym2 zzs=eS`~_KpVjP*)$)bZrcZ*D6b72Q@FL9RmvE`=f(UPXpjnWwDH?q%Vkycmggx2kB zZEZc`gE}9y`QT~&4Go$%u(xrr*`Vmvuzte?Wm9F5s-^0TdUhj0qxi;M8eg#$+19YF zV_V-=WxL7tc9TX;oSN)z@=McsOA()@ml6)m>6INai!7TT7gmW^6=Z#kx= zOUtlUy;?nM9r|H?9Cr1v&Gt6=Z8x^P*lta`fba;q^ zteB2nIy!eu=yX!n@zMLp~HJl%Ul?=`(Q^p3>gQVG3xIS3r;I}Go)qJQiD zcKv(xPwHPZpgs<5avt~?M>P2liXU`)aMQtQL%cq1{b|2X4}SW5sO``;Ll+E98k#mV zYnaWj>BEi=w-|0cyyftA!@Y(t8-94WX84uQWS=$qtkY+9pPl*a+s~ekU`ANu*rj$O z@<-Mg*<<9mk>8Fi8O4lJjhcYtlrD~T8Dl?Y)R+llW{&Y1vu4chF<*|kKBi=>ozuY?542?$DSMe&DgtRi^e`5XEV-z+<lxK5#;p z30o(2n&>q#ZQ}Qnk|#HuVm;;hRL80F99ui~b99{6aN6zZTW3s~S%2oFnO-x)XIaeh zpY?3E)0}!vHclO!Je&fZzMRX7q(mUy-TD^l1rMamFsZV9M?Rz8g4dj zjocjF+}xJA#k(DJ%W?b0?XFvidqek5?ql3%x(B+4y2rR@xS#Xr<$2euj`u}I#&%;= z>?e#b+XLtc^kQbSy_rbXo|!FJ%Zw1LW3mL{zI97XzOJG{9OZ*Ih! z8}Vi!-ps(8fp~KQ-aLah&*057cykxt)Zxut{F`0y=2pD96>o0En=A0A>OhZ0!>wq^I&Hb@8K+PE?;JE5$Ios4U<%AT-`0571ZER+4NEK|_8tVGZc z7zT_0rT|j`M_@YO1k3{#00Ct=f|WpI**(D{q*~Nbz_cy0SfHMGcLtV6}ixzb$L0z~T1FF%2YP6slEvQBds?maK zw4fR-lYsmZfh1rjkPM^%yMR<64M+!e1ABn|_*NFu1HeJx5O5ec3LL||DNdvAiaq664E@RmyzB8ZUF_r9pEmm-v=H7ML;pyi9`OS zKp7~ML2t8V4?xXYwi;3kq(Y=(+^Y^qff}F&8DIs}0UF?%0#E{KpfS)CXb!XlFe(MT z$`V24T2MKqq8w1V7L=|PpbrG2fib{10Q~?8%Mnb*?tQm1G8{#4&a2}^MD0_ zH=g$e{P2xnq?EeNW8lFbK#dRHn;L8IBkye^tis4Lk0KnN`X-(=rR?rIdDBVUKLz|& zzGUP>Mc_SJ@Sc0@FKDsfz;|%SYxAr!hlgAh*kC|wE-FeDxeWyi|cKGqOt|xvI|h#$DqH*puOjyy~l!) zNT(p33OEAO0ViM{umA`EXI_G5Rw8`_Xi-jEzL(o#B>jH=`WkJq;IHgxU^1`})LoU| zVxB7Jxs$>3Hlj3n;B{f(ZzbSwCCorz5HJK71&jg40n6~*a$p6p5(ouW0bxJ_?k56C zz)m0;NC9>MsX!W#4(tZ@09n8R;2>}aI1C&GP9v|ckmexGMS2G5S)}KI3&17dGH?~R z2HXH{0R_Mv;2!V*C#bsgOMJ3=vCE!6NY)zmRP#dTVdx8Fyaa@a~1rKnM(r-(0~Fopa2ahKm!WUfC4n201YTW0}9Z90yLli4Q8$aP=N+i zpaB(VKm{65fd*8d!OT^FnX3RZR{>_O0*veejO+r_45l&7U>eg5rZLT68q*A>G0k8a z(+s8owP-*s8c>S{)S>~kXh1C*ekQwzl+I=kkkT2g5GkG29w9A8dvo}1DNt5cV4B%r zvw)tdR;B^>pfj5WGg|>>wgSv-1)wkuC`nAr+2vlU=wE5OWFfSIiTGg|>> zwgSv-1)x9;)^}P^VGh=KMW93tC{e>Y;@%9Ta{wn`F8-bmECO8dw>#hoEC&35Kp+TM z0{nt;--}-pzG=49fPyukU=1i(gW0mcG+Sz3n=SEuP_+hBt*J6&7GTCK0Htd%V-^UO z0W0u(3$PW4!rwcPCIFNsDCIv#Yd*)J<3<|3S3Ylb!pP_h^aJM~01N~M0Yd=H?x0^S z=rO3;7<3zo$i4<-2->J2kvwa-09vs=fVW! zl?WsOJAq^%1=t0o0%<@xup8I|?8mpVkRAXI0*8RZz)|2B?i~kC02<&V%61AkjWT?N z`#DH+k)A<%7Ac*7&m;XB=>?=0kzPVd_XwAfUInfJH-K9}0dNPni~IMG(mlijq;wxq zh_ndlBcvR@T?&+euIRpk1&0$Lt%lSBsSv3c_o@R@peFvV1=I%W0u69Y0Vn}A&=_b6 zU}X%N)q-a8P4s2la}32k!o2T5UxB{zL0|cxuYAy#7W8!wTr&T)J;@AQn+41PoWLdL z0Sf?cyyFY_<9aaC6{yo9P);7W-?R6k97-{iS}3I~!#m4?6~Ia$6j%j>0jtqsn}9d% z;C?G*yp1YO<2%OQe`f0aXMbkzzqQA!_Oh`T^U7CnL(87MwHGJh-f!ta+Hr>G?)(>%m)qTzq2J0kWV6z z1ndNoffQgDkP4&$>A-Ga53nEkWg$HP90U#lhk>KOG2A;2oB%YyY2Yhd&q11t^bFFo zNR3=6)5MiBOl`_GVGEH15)5MiBOnuFOi2eWBDX44#YCQ@)5b~b*`0i1xj_Cjj?@$I!tcdMy#XKm_67X#I}ixM?(>l`QVWG;Ei)(dj71jxw}ASX+Joa}SR$uy9YeGWO96XayqAt$>IIoWl{ z$qou4SP|r82O;I|2dUS9vSQFb-5(T#=8Lg>29w4E1@2`aENcn0oAYOg+#M-FG}g-JYRt&rmnY zi=Tlmo}pgPm{usY9=)PR$@Sn$dX!!dPNYXk^(d(xCDo&(dX!X;lIl@XJxZ!aN%bhH z9wpVIqUxw?k5cMUNPaP!dG-1!w!k)Nx`M$UiEnJB57ovp=QHMgba3T17$vgJGg{WI0>Q;!l6{2p1 zs9PcGR*1S4qHcw#TOsOJh`JSmPD(&0C7=_!DlA0(3Q@m8)UOadQHY)>L_G^p&qCC* z5cMoXPZXjj3egjV=!rtqyAbs*M7;~aJ73%Df|kNed)Pv>MIqXv5VS=1uZ3unLbOSt zdH>4PMeSZP<53!n8|3y9ocJX;@k?;xm#iGuJ^((%@3u&bFyj2NQ^k&15Cp8i?@**q zfFF^^hu|Njpn+1fVJX_L6zx`u@l}fPRf_Rdit$y7@l^_{Ek(PPqTNc-Zl!3qQnXts z+N~7rR*H5jMZ1-v-Ad7JrD(TOv|B0KtrYE6igqhSyOpBdO3_}WXs=SVS1H=76zx-r z_9;dCl%gF}Cgm3l0KC0lR=yAPqtA^Ui{RyGWrzN)03YE@Z=>Nj8i z*R0?Azty(ZHr3(Hnh(^WTzi2%*lYEPL>+0J{>i1X2Ho5)=01IM>n;QJEC*HqD*>#{ zAc1(Lw=afh!_ z6FCoD04@QSfj7xL?&10apb&TjRFrYBkVjMlD0dJd{ZF!uzo0Aw>yTI0C6KH9CFB^b z{wrz3`$!_*C55;FDFT%~P|3sZlQ_Ix7V&%URNlo_%nZW>hMguJM5w=>*uIWt})XT9!$;gt2NLG=nQl%OK0rL zerCGC%Dg+!1E5yIVR+WqpVSv3ADX^=(6`C%jS*tEYP1p`30j|ozu~t5YuzWX)_o$F z4$K1<00FT4UQ+h6U}af4q)bH&<-3mHyM4iT9l>`U!FL_OcOAiZ9l>||g75YP-|Y*& z+ZTMdFZga>@ZG-PyM4iT`~E?4s)`)4@(%8gk%PTGfAhTYX8u%h-l!-?GS3%gd6KnB zru4q@q_>xc&KQLGWAw6rA)PGyF(~u5=w*%V(AcD%e7jzH7j(jA9kN+}TvcEEEo;s{Q{hn*ZOL_iwc* zScg?mMQ^P?-WHyEYZ<+=-fr9eN7%K01smyH;4E++xBy%NE(33~U8i>I)MlO9t3LuN z+Nra!0j~zU%RarTZF)tU^gq}h-6TQ&YuKW<2H$*tJCy&W4azK&2IbGCaq3%PrZ+RK zRi&*Tv0kP=4i)_yDE(BVnLojg;V(ruGOP!OU_ICZ>%k#d4-Ub4a0u3eL$Dqkg7sh* ztOvVbE!YKX!7f+}cEMV(3)X>M-k=+!v!+>F76~r)=jh1Zr62n}cEe`f7_}9ysvoOr z6Z~6sV{fzh{fpcCnkeEF*dRD6#Pk~{n{Xf%yq1OF>rpExR_L*9|&nYZ4+1UW~J6(j`GW9+6 z1ibKjF;Z{97clyxYT;*~r9P=lP2S!J@;i16=I62S$A)F|J7Yv3-UHJWs|qj7ImwW$ zP`{L9ScN3RDkK?JA<3``NrqKOGJK-);S-e)zw3PXUFXB^n%Z1YpOIupgOec*PKN(R zK72Q*M_E4WfWHSL9f}k_F(^qMJQ>4KzcAJj*JdD{T^55nhQZ$=8NL=_@U;j-TOUQ8 zV^HTX_*g7KeZx>sFZff0p`Kx=XBd1bsJEFHeK;@OuZ+1RxQ% z+DhJAhsNxnu{z%7*@f5~y!VL!ZD#?zDc(lab}fSS#&@uUpz>04{0wvK3>DgwMhej~ zpCIi4RFsZXw6=-EJ+p)a5_R6<#w;PBRyPi~MkOV%R7H=Lu&};}=RX7TNlkM_yqy>qBmq9(%Zb4DtZ=y3%u34s4Z%egR!8+SSZ3+ zc!II;1Y*PM*e8_*UtgJpq{5%Ub4Fq(%mX_BzS~tRMJ~<3{~mN?t1yQ>zje0k?RK zLsZ}ls9EJ0I#RT~(O(hvaXe>x14Z#14E|<_e6$Epd0{O6zIjN7Rx(CVKokUiCNuYl zJN~ZREBSmcm?I*v@S)RIC`SW+K18%4%*gLQCkEizK+u3`UgTpgYy+2$1-1k6zz(!j z0+5K>)&&S`?`}EZuUQ|AZn_B|jF?9Y$u37=4OME$LizEQFe05%HPba)l zu}$gffUXM6InvyEVO&xQr?ob>uLa+Zre5aT`t>Vxy@NKX^iAXUe&%aI`|y3gSItaO z{I_cIEi?lyG8=FOJOOXO51>7^1huEF5DU;AN(40+%kz3Ue;KL9ne+4y=c z%F5ynWW%_Yhq7zgoq%a(e#=#39W6|`Y1wqVk&RYwjap}-#_Aqb+zY%o`HO^-dbqcjEVo%~XzQCSF3NLt+JD;W8 z@+@!xzb_)agqp+e2Q8o#>;?UP3C@W8(Gpt00sKas1;HWUFu0bC_iR~?l2Pv#a|vk- zH;iwzKt9^}2ljT^&*qj8BqK-U%1HQnVNJ-_Egnx}wBd~s7QRRP_tWtt%77W+)labujuU70!@KR&nl`vxd-e%O!NI6=xPf>Y)%UI07lzL2UqGb_{tWvvxGE8lv z73{`u+BcbKo4TNsji8i`css9Bi_+Gl^pt@VJqQXZ0VR~6cS|a^F3knKTZG;$VXE`= zO?&e#G|rv_owwwv(+X<~YE!O690(Oa{jF*J!_oH}k%PIO8Tgx0>VBlJC^HA+ky2)k zi7InICqht0$9t62Fb^DRPY$xM|ws6&q62+GyDeEiV5 ztoj|}=n%gCzGDe1kGG8{_6qJHeh6ED^d4H9j)M0bV*(A@+=B0sD7=l4g5Iax2BVFS zmzYO64W6KUr!vo>)VHZJB{7zjXv{S3D$*8m&PL9bpqdi!loId}%HvAVLnY{;63~Da zBN|Vb=-?>NsVJRM8lz8x&cG!~P$nZ!($e?9Kj;f zD$jshm7w3XXhAJg-Bd2h>$K%%qxs|O^c(z_g?z5G)U?E~MdrU=4PP|Y<*KRtd6eQ& z{ycu1n8yfxiaue18q(SwrQhN66_~zA*GZ5nl=*Ca*Y+{RfMGcfiRnb=!o z!W%nBumUhfT-Ct)Qv>f$4ZJ_&;r;mx-kYjkQ|AM+FyjFLs|Egpa>WH{*UCZKOp_B;=r9A9? zw`{+n9~`ca;R>& z)*Ud)qh5dpUw{T*fCgWH248>%Uw{T*fCgVMoAAzNAQIRDYz3l$INUo8>;Ep4_OPK9{x7Uu3n&CT3B5@6!Zgzmc0;+KspKO6r@uDM_@Wob;tVtHbxbtXt3Ty z=_*OmP`cM*A)+LeJ>?#ulv=b-uQysu{?#J={*k`aW=ZAWn_B)lkuzUKwEO>ZT%5Pt z;{Cnp=%3R6?>PS7f4uy?sfXG%uQU0RtcD%SYS^)?h8@dl*s-jBFMpDXT%oeh#@p}w zZ|3=bzG__myjulbwB)%?G)wWPM2h{_DR0%H{9 zB&=_0@wO1}va|Gqw2+?HVYVBg771pX5xSEwTGlK>`ld+U&=^CC`uaIw(0fCIN@M=# zSF$;Dz~40TN<~{Q8a0|mSfVzDRV{R8;o1MT^p)*0j20HZuRUJ3o_PIAW!r^#l;32x zz-!~*Y_(90*W$un09xV_XzHNT<@K)6&oKg%{;~x6d8+HB`hNN()yqh7* z5mM^gRtzmyRsSRN`6~2ml|R`J3HG9Yt@BiBGF9#BO)-z(8PoWm9nn8KqQB?)L4U6u z5z8Dy1PjC&!``MP;-|F68m$dZylaP;T^*Q?Oef|e*b99O&%myX9n+2J&V0i3V0tpk za0cZHW+fBKtU^?a)yx`ZEzT!hhclDbGaHx)oIU&nvx(V^b5gf3TbXEP8{+@OGTWIr zCZ0LXpg4qHm!Cb*S!2*G^z(wFHa2I$A z77Kg?eu4nO5DA**}EQl0j3myrm&59k)UluY_NV6*U zfU)&y%U5mpUd#ZT>pU0|@Xwf0%vfd|WZ)B-Nz7zs3eFs=*e9=gWaC@%t_`{dHK1yd0R45RyvJxi{fwUa z6@B#ry+zPZEPARM`bvo25~IJWqsOG^vzq9&TIjdh=()P+J2`sqgG&9^n*ES%!?s2L z(Vpvro}>LXnD4I{50ayPRFchOw*JHSAjUb2gk^&u(BN*iGzab}JjhZfE1zcyws!1>Hcpfq4$nbjEG3*h0s(i2&?E?C}M9h1c_8hC;}ox zMeJP{*Aj$v6?sVxA9=@7F*<=t&`ER({ftV{FQ^Pvq6_FEx`KX1@Dv-mhHjvn=nlGz>d39an(QG^iXM;2`aO8A>+uG> z5$EB2ycuu7Tk$r$9q+)q@NT>p-lBZ~|Add>q5c;KTm_wh9^D@DHC|s#sdCJhxxXfZtZ$8?+jOi_jl`n3>#6V z@SkXwR44e>{;pt4K8(e@OI#h~9G<LWGap2iyJI3Dd`Oy-pm7z$LP+b9E zEJUV+S`um#k-!%qdqQ0a^@tWt;iDde_9e7`bZlY_8cb*ip`&7^Bt)SJgoYD36}lv# zctVp1O^;))k`kIj=;FA9@L05x(6xlhmB8Qq!JllA88Z zoz%3a^1HXE%!}j^tl0<3tS7VHAE-9Tx2KHUAR;|VszYkpQx#I9qjHbg?4cuSl=S`GZcRpU!+mS|+d8 zsZ*5yP^7OEX{$Wd>!?U+3LCzHx7n28a$JEc@dbPlU&2+m8ehgd?14S87xuK176#XEl=m$AvKVDluURyt2TR&b~zp}P|Wo`Y++WM8r z`=KT!e@sr^kL1XGNsinXH7WUHa>{;6{z#p&pMpQAQ}9P}it(UM*-ybAv?}-`Ib}cK z4{Rfg%pXbN{_>QkNJ%^4AL`*+($3tAX=lcQYwf^a^MWVE`h#aM0>1Gpf{LY*s0{GV z7J~=2f!Yl3W1UIvVgj|y-OLnai9E$l@_Ou|D0?c(-imUCqI`iV12<$GNXa;ml5v0= zG7h9<97xGHkdkpACF4MP0k}5=eXs$K(;d9Zet^qoDmWu4j37_F73l>gC3hsLyq%0J zFaHxG{%_9gR}KHF;r~B1{HtVtmF%yQ{naZ2j}vx&h1W=ON^k3{S0?w7LgWIqrZvVhdQuFFZG?s>1ikG*M~bZ6^K+MXGE#zp2An zT9wkq+K>*$IzWd}Smi0ix!$2x$Th)fC7MbnzgXoFwFLLVy>TDh7yIFU1gH51_s0Wp zARdSZ;cq`e|3V0M69(wbNIVLU1~hQ&M>x)8Kyt#{upAK}gHeDD#t?Kc9`L~gKnNv( z5hek;lL9!Q65q+dGYMWOZ9{tI;v75=&j-Y3;YSGK3I&F^27gB|pzrZI1r8(wBxn<0 zK?V2+z=M7yh)|&d6WU2op*?^L?IXz0LBNI%;lua{K8lM7N>mJ}WC=crPvO(}3}8h~ zxDh|ZkMRSTu?K(x{neafcH!3<{C6|RK1~&Xl*x6VH`ptMv{BKFyiw_lUO*n?4)TnC zFw)292qS@J|BW)p=n}!Q|I>2F*o0zY75+*d5&I-y7$X3~2nQXO0E&?b=iG%5arjPg z(mhBO0fzlERRMU$HHarP05<&!A_r{1pY;K2wuA_QBXUPQASTcsu#FHj3gY!}I;U8G z_c(&AvjFvRg0WeE{WycI!GHj{0KJG^fnLIHK&vpIM1Tl!fnElr2g8Zn2(It|w1yeM z6VAxY2ws5xFe7-wSs7y=z=1IC4pdL{aZkX6Fknc43xOppgDV_yIT^tTPRq;) z&bX3{-~y*+4A{~|plG3f?)Wm;IwRnM1?Z9oGXiA-T)+sFDR2QiP-egd zrp$p0OmzS*Fx3&bz?21WfhkJ{$%2m&@InDE?ttt<8L$jrD3`(bq^xLHmJ#%XcCfs< z&|*yf+B9O*oe7@hMR2N0Xtx18Q5%qAc=IP<6qBeJDvp|gZlPNA2t6i!Kf%?=m7m~m zFpdr&2Lx49>>F}Cjv#f=iXc9Mz}g3+P)ON;Si4gJfO#Q^OtArhwgMd6hM>=m@E-+3 zC;_}zbUH{;7D&-Nh+r*K$kA4ajO>A!$YJU@#6-?g=M)huCK__FEe0ZwSlxk`)jfz; zJ%orA69-YmKpJ8fSO*j5Fhd;F8Kkc(vI7Z}$2i=P2l57#tvkqL`)HLPM5Q1C zg~p-rB)%~T#X~eB1tJ+~5X+bWNZd@63DJyfK;#wxCMS2alHXZY&G>K+eg9b4=#C({PGEIckn5l$(3@tSkscJZ82WG$2L26hgH5~(0BQQc- zU0PdJUEYFKR496qs-}}F*gB~<#7Si#bP(;_uEuhcb*3dmaGB3AYBD8;HHxN$U?qgG zhVY>|ACJe@-{lwS^YY2-(GImx631+aW2+kBF@9VV+K4Hr8)=UeiY3B?SdKqGUdT134Vh{+ zBdvhMgvtEaBvEvhMT@vP8(WqAi#TEhA%j1;<~QAQ44~1bm4oE|%Mg zwqlxDMy879;i4G03qK}a6g!3E??+pk>Cil`JMBS}pD|`ST&Bo#=XrMb>^_DLZO3d_ zDA$ZOk>6i;gfKxADw-1O%o!LfaOFDD4)Pn>C>uD;tvI2|dxZ)Ul0*Wbn7OGG*|eV( zq(ZTzNRNVgO)N!-+FH7|psbv;OLNA&?Q;{K?jPD*TcTGyg?}tR-16GdmQvof+4Q_o z84IsR-Spa^SA6kN%CqFn8F9YFD|YD|iF_Wtvh-Mp%eKH?FAiQFKhXkjeC-xxUGOr0 z?dFa@<2y44huqVh^r)|8#$laXea`K#oqKFz>Qt^PD>ut%%K%OVSFAJAr98!hx5_Zr z@bIljx5E4PPR?KGcxplCxe>=^jT#x3SnOM9H+OugzKQR~*$;-7XvUsyJu~R$VKsv_ zHtE-Uce`kv@@OOXeDi&q4%bib8{ogT<3ySD(z*#Rn$nwRY@3XhycnW&>w?XQEvw3R z<|OTGI->J?-H;mDn@HJCvYyt+Cxd4I#EYZAaTG%QVV1 zkCaH_d$_s93B>WPNw6SdSP)l1Tnv#NDcs9r`_Nu851D&5 zt+-r}5dG2BZgN>^FDm|iuF#7}s#RCEHm#}Tf~8LDGUMto_hN$vr~-#jHeiEf7IdJ^ zl=96o(jFe_2ZH9~!gcZFwO@bG3RYGYH7Kg(!Kjk~mfU&MbDdTfOShvdmV?W8&mR?A ztL~6L;pfs7M)m9vohJjjxlum5>&~wjy0+S8vdPOn-kpcVb2FP4_{`nc(6EMTtqfZ| z)b`TWZbMUd{>1nD-Lazne9eTLN1f*MKCu2k&7G0&kMBQ|@uE_D!_zgbPE|caEG&Gw zz3ejxbof0j#q|n3)@gKlT7A_a$J|{-W5U{`oKHCZXEft;b)9wsHVW+C_wrwtZs4QeHB4NS*iH0q=wZ&d zD$N#|h2!I}5uN#0t*_S=@uJQ>xtZ@RTx_vI`(UW`xbz6mi7NBIX-yhh8=AQ(i?e=b z&bUqLFMp$3nryrW_tUJXJ=^K@m9WOFJ_kbboeNRwvrUDIJX<&3A3s%PW3Q-t#j8)W zmQ8BuTdyVyc$gI&`-9`NgY)(6A1}F~D$5R9n>I*Yhqfx!-w^e(anw%s*1oxW?HiVu zZuh+x8ux9L=lTP2;a2-rJ0I;;KmB1$YK!T8yB)ip4mM;A=?}z8T}r0 zx85|>^#16hwvkttF5B|I zOIx$&}%qyH!0Qj><|Os{C*#J& z^!%i0qLOvP2GE|J_iWnLak8&d&Ei5wwY00|`^Kf+UH?N|tM9xWw3J;8zxE0f;I}Mq zO!t)9%7MZNAFIKMCqJ1odg2#qqc`ozXrq>qtA8|KEavbyL5Y*2MFLJxf+&WcF#Y3A zo8y-#iHu7SNv4zC*@O1xdVScPnWCq1ch1`Xg&ZjS04*ca5B4A-Q7qvM6-tuh5~8?0 z>F#nC-G>VkV#J)d2u`9{$l*&kj9iLglSxia{&<&2i05ee>hY@>aab-O!z z;7*JAdGESPo%QL4Y1`}@k_QDhKPrFqba-{#iF+}cOKPr$FB0r^8QSfSIl8Se_Z)KX z&KZ#Il0CCwelOoxdr#X-B{5nU+?p-IBWlr@dY{;`1 zPkU)?P1Lx9S858g-c2l@bwsfKg3a5lJ^P9FF79!lX#WPi38x=8OBdL`3sqlz^8n&p zZ27^w{zOx7y!V}hDuE$^aXt@DHAJTc%vS9GQX~VjyzWo;@&LvXaM-nY_iE>!&-ml5yT7lJYs?vcM?1RQ`%U0 z7Z!k;au0>Y`pg$FP}Pt#*ALtma1SU%{6ugMY-mn_HEqf5NSn)L$AE|o&tK^yc<_kt zYNg9IWgDx%2yS@O+N)Q%S9)aS*pw}`htGJ^S(ywoUD(s<1jdWm*~9G6ptP{p;bD*Z7Cav4w={R%yrNyMR;4LjS}Z&0&3qVH z^m&vubo{jYrmri4*=vJwQuU48fCm ztuSGz;MLWNORC`bpD-a>6sxRIYpbxOZ5TP!G`8p;I*`*pE>iL`t|g7TsV4O&Z=v_CE$x!uStH)#-j=!Y4_TEYj;%kpxkel<2%239K2~=bUSLj zMfTv|-!JW&o{{;y!c6WWNzqKOT505jYh}b{e4URD2x^&hUq)>^vAe^PdCGV)Znm4k z_wf()=eaPOgv)0JsI7@uq5q8eW6s^5oMu>bqSBgy!4lC^zVN)&M|l;Evw5HWHGC2O z-br}SebU+}#GjTTWX?=9!j&mmhCe3*$`0dKI{i7R)pTT?f zY>Dr+Yx~3qe$#Zp)<*TbAA51iuem)}9Ut60Hur9Q;R=uEg=0hA8;cWrd;VB(z0-8_ zey1{O|JXdoBPgIlgxdYt=Jj_tBQudRXZY#7f&H|6o9|q(EBWJBVad9*X{G&6JUu^Z zw~2Y@X1Yg}I9L#VzRtO1rODh{*J6Q4_KmQySAzP&EklnadL?an@6bKZC3jo&s39qK z=X!b_T)w!Ds&jtjk$U)Kr`ucK&K)ey5B1((eK9|>j9$ArdFq4JEVr@Wy7J2IXl>cC z&2w1bM6Q(W3632XBSdGN{~xt_SpPF?{t?_I%PN9xSwn$%*(0tR3zi=+GrB_?1f{{^ zYPS;`Hf`Ciq(uO<4?<-EVyOh$G}v52wtlyA_q5TK^U=A`?^E7tK6^tCYInId*O%@g zv(2;tG%X%5v{-65V4h5l15e|{L0O_q^9(cf8HX|g>@4$3K#O)j8CW)UR_6XwC%q5M zuG{aju0#5&W@GC^OAjyXxlw(4WAm>$S5r!a{MM59ncJ&}t?abC*AB_<(3Z#VcxPpc z?&>`d-?iG|SFMpJJ5(pE_$la*qF*H>2**}cT~qiz_9AGvhDv~rMGD|OQW-*w@2{qv-tO;Ysc!z8G3rRWhNPr z!^f*U8a$@9Rbg?p+6rn2Ri_H#?lk*0V9mi<|EOPC#C)qqKFXj4SOEb0Y ziE4x63W8+=hFs*0Up{V@`?HWWt~eX*|7-H^;V*-`H1o0}hJ2 zJ$8J?;f<*kmxVoeXzAKGH7`D`Zve~T#O7vQ1FvS;dMm>P-kbL6tlGN{|1#CTDDClr z5?yQLmKx@}@`CdOk3Am4ZU>#p@JO9emb1LanC;Jr=72AOyi;mMUeOTrLn-9vBBVH+5m%HgdLIczlrwy!nQ<9Oo#)?Y5VC;wXz%Q- z+`PJls4esj@R2>D;48~N$xjgP8fMw?6B3J|-v}L#u$SxOniF*%b+(ep;yQwfL<9=| zpq|9KPK6lBAt+ChOcp5V%Y?7!JwlO)e34k>Dmsj4BoSQ|#gamOOtHudeSsXJ#bOdk z%8+PB7i2$z;E;bIQK3T2i$t|`jVODGHTvBip$Y;NA<=n=?15?k(xZ`{L!btsZ0cv! zO|%QY6W}QjcYx3u zf)0W|1P=&a5Wa)ZmTHHFkO1jm13XxyKwU+j0e38-Me|XVC>>}lfOrUma0sQ4uS8Ll zCxkkfm8AgdjH1M@5TAoE3Ci;zo(S=5h$E0n)B$Nl%TW(eFsw`=l8Oca?T%2_2{}`v zVJy&Rh+B&WqRtQy^%13tY>|`51BFsgkh{newFO*vY5;03a)q=%z*VR_rK)=)a))#< z>LyM{p=1upxJW%xhdKvkpO7sz9NG^+LDcUs&lrLwGKaa7P>)ax>H>15hN4Uoi-w{W zhPm%W{RQm?A!pGF)E@dTrs7bhNQDBRZ~er*VI9uGT;?H1XwQwzy#V`&1_4d|nj{0= zYzQCGDNz>`0^@Hktj|ZZigH3Nsho8wrEyy~U z1Xu^Puoj+mPbkm2zeHP5i~4mSYhfC6$Wt^EU}P;!16hk=pxX)Njm-Oh3E~jsB&-Fj z16d1WfOViC^nkUv3gHFJhhP0VkhSHF(Ou|^Kk$%e9S`Gs3v;c6@k)d_S3#d) z4*>j{un&M2$zCA*_#bf};I&BLL$XH*pZ+r@>qO?t5R1>=ogNlXRTRSWA*ZdNhs+I`cVVs*ki1^z^hfQ4dD{YIMD{d?eM@8xj74k)`;^F=Hz43~)3t_!l!agT_6J+4SruuT|zpJobU0~0Xb@hOG6d^g;(}Z8CuTW0bEfVz>HGw)r zUim`25Y~p!JOpJRZ$Njn2iemW#`r>jlRBgvV5Ci9oWCI!`Y-_GeFtHliH!BE`;+jP z_ye+r5G5iwWvD;MQi*6g7Hqp_+0$vH|j)9=lry?E56um7#^gq$1phpFrM)VozC!(8(o*`{O z+Z~MkhWuy6)^!5F^!xWCiXpfVe5viQ*DQgyEpmXhYX$2b zATmcTpc`Ew?+xizB74Bw2Y5~ZYYced0BeOhiCO@j3(OJ0gEU2KoK~=}I-~wzhx7;i z*HwHG`s)P&h=BVM-2yzleM0bn*I|$RBJ6)6+dy{^J|KJnb#FtT zi4JljvQJohqh29(^`WDHPtrtx=;cj=-XQwH7)Lb+`=HL{_EG@{dx=jfe5agZvx^a?}IjGLSI`LB_Qc z=7rGxPg&PSkXNT*ydakV|F$5D{+mpKc>y{viTn|*0e%JfBEANF2tzhP9%PDP9$SlM z2)ZJW$N;f5;ItI>ygArLZGjK8`ZW>O^p;_7niCw@QyoPKsFkq3gdYq+;Bg%q3~M_Z z)=-FH4t|30fbb#&V&i&4AT}XRCL!CjQNt6Q8)1eO_HHu{Vc(MouB*UjPJsnnDW5 z>C+-4Lp=;>F;b%lLt0{jLxcU9Xn;#i;4k3|nxz}_{|F*ix;$D+qkqP}7$ zLtQImE-o;nt-(f^U`X4LK6rU}w6hOPk59_UYtu6>(>^jQE8RXjKR!JzH#I5IKEBu< zPHXldS($mc_W7BK_EA~Md4+K~N%q|{;(K%p4Uf#pYST3^PF!MAMqJKF z`>f>usqz1zU;h|SYF=J;dw2K3!a}!X7zhb&30WEc0(MV=fw-rqB_w6$Cb^~NWu)te zLPiNETMzhahwM=xN=NZ13FV+X)CToLa2f(=B+7!nbVy~Rd?-&xX($(^0$w7(;!!bt zLr@f)Y)PC2b@HIx9&j@Sj3|I51FR6}0HNo(&^yux&`u^bBcXqK2xujs)&csT1${~oa0{T! z6Rz@GmOjzY4m@z^r1E8j>X~GFUQ9GS6OZZ)dNyceHP5?_uBGzMK6v2U`b6hn5Zt9F{tY9Howy zjy8^Vj#@`2$5xK6jy)WQJ0>}vX>pMk)scH5(yl$6)@`ZQlpEzu`BQ;ZZz_@+K@~x} zO`zSgqC4VA(C%#UT4yFnQtvg(Iug$fL zre}4S#@$Zjc zKYsD}@#BY&?>#>Hc;n-BkAois$`l64FAVwr*N;?0Bt2=Kth?#If96fgzD?^f#Yh6Y zA_W~QM`nlt-DwW1rv&|Ig{+YcQlUnmb8SHvHbG619q78X=OQsc0FTSaU^kkr~+0=@d`>O?{=ZMKtWp5-JvL0()XS z?EOp;MY)KiR50w>QaF3WqY0=SEv6(CO+BI>Q!l8O)KfSY9RU0L1m#G*qux`$QNN4K zMHaAMi>c?-E9xzpgl3|NXcn4|=AgM~9-567qD3&m@6mF!0{wt~r`*BT9|b$vi)st@ zg%9j3a%)T^0sO0*4|Dxr{!wr=gqtSH+(groeETmg(3h6fmsaNJi?is9v-pdPgx8ph zkD5zZbo6*v3qFw_-%K+3%X+$*^Ha-e7NO}gZJMQ4=(5~vIi6%(mB)DP5ZY9qCqI!2wLE>Tyh+b~)0sZSK#35(1`wxZ@D7m>TD zgQ&YGOcW)G6%7-O5ao+XMdhM-q7|aGqRpZzQMKrZ=#=QZ=tt2#(QDB=(I*ivro;-d zTI?WhBlZ?|5C@5Si2I9&iBrXS;u3MWc%FELc%yi~_=xy~_^kMn_?q~Z_^$Yo_?h^% z_;>Mp@gL&9#9zd<;yQ^$A_L)NEomfaENLcjmiS5nC1H~OAk1GcMsitlMRHAYQ*ux8O7e-OXbZYA-HdKQyV1UM z7dn*gOAn$G=?uDn9!F25=h4gPwe&W6FMX6gNB>OUrJvDn>5ueRsZ?qyZ6bA$wwAV) zc9aH7!==&E;nFl|j&zK4l601Ik+ed(NxD;dPvXXRJrcjS-dzsTRq zKg<6%qs=VM8k;$qwKi*O*4Zq?EX-_>*$A_IvvRXVX6wv$o1HPcYWBkHz1bJWoY66@ z7%!#+6U0O^G0bo#oyld!Fw>cZ%t~fGvz6J&9AJ(!=a?Uvo6JMz1@jy87xP6SRwxuI zg`J|g;yZ=6qO+o>qMssOk)iCTbt|5+n9GS z?_oZ`JkdPIywrS#`BL-s<~z*~n_o7+Z~m+KCktd@X`!`fZQ)}PV$sK9xJ8ylnZ-Pd z6&9N<_FG)AxM%U!qE;zW+9;bVy_Lbr0m=krwsO33zH)_fvvRNUl=7PLsq#-tv8AP@ z#?r;o+p?2oq~$Qn49l^WGc1={Zm~RMdC~HT*4owD-@3bXf9nM6QP$(EXIcMXz1h0j`i%8;>!;T5 zt-snRY?|7%vT0`%WD{u&g zu8krZ4Q-UrXchczZM4%ZGe12&sBeB|nukZAhd$~iL|xkjX2d1rWWm#v5Cz8PBo!pZ z3E#l1l&s98k#YJcC@vvCFDXIz1|_8BB;;o#rzaI9G$ex(v-08+zyQxns80nY!~yXH z;oD94CK}Q?S#f!Z&~jW}u)b+HJ&=wB*Vj#|PX+6{kfe`-1q#p=!0z7Ad`d&IyU_m> z;oH5QN=kjIJDejj;`Dt@F-iAmAd%XT>=7TAlL{eJ-@!C}6sqq`nm!7xr`@xm;)sT1 zFOybAnxuOR^O-Judz--1P13!Ek){jZZ~-$@_=cO{WSXSI1!PmOhF|&Cg7U z%gN73kIT=?GR^cADCP*?z9zJCOwxS?iaEkJO2Et&zEKUs%xy?UB_t)LrKiW`8sdH? zl;8weKmYv%dU?XPzrLIK`l!FKe)+<;e@&`9*12`dP|O%Sp}3CH?jkzIk!^hGw!;(-KnCpvf%KdqTn3@IU%t zpk&%bAuZGsQlx*Lami_Eo*o`vZ4HTbMo2p^Bc#5_+X!iAO!ycRzQ%-~G2w4W_;?r- zM#?@0%AVdvI-bVrp2q5)#_C?i>R!g`UdE1j8T;d9q~m4mkC&04myw{CkziXR!L~+% zZH)xm8b{jJNV%<%a$6(iwnoZrjg;FODSI0!dmAZx8!3AmDSI0!*N@%XNZH#++1p6j z+eq2R*bN^evX2qj$B67>MD{gy!`Illud#JsW9z;~g1$zAzD9z+MuNUZf__GVe#UY6 z87cc2Df<~I`xzk)B z29DNqou`MP$kW3>+0(;7+0(;7+0(;7+0(;7+0(;7+0(<&XHO3!WltmJ`X08cABBJn zo5{m3I3F}SY%L$pw(Yz?mU?*tZ|3A=6{aU8=Lw1YY$3`?OG(uO60-_31x$Y*edMc; z{PdAO;OC{qr6;B(CliR5hfj7+R$_iaUT!|fm^`?u6u_STa1)u95SN~onVgoHmRBr5 zy}Z-2QV29IGcheQFDWGllG#9@C}~uFTso29Bqp+6NTlQ>#pQvtCqU2vKtDA-Yjjd( zN)mJ#fpA*I)WK)Z?Quoa7#_nd8s)`B$u3(52(q>X{3M2xoJh@3-&2Ao}5G&2ja{$p`t(~D_0-`5urmO zfe<7FN+c$vASSd(BoKpyo*ET{#= zlX3|M3Po{wLKGx?y9?hm;X6Y3>M0X$7qa!U-p~{=p@H`dP3p}k0oT|}edWM!Y6lri zEde+9o1)NfauMI;`hSzF*QWv%Fy{p;PRKw~ZvY9ov~O}*-{cb03esTx$&m8DDJcFX zXE1$f2hzW8#tac)o`%Tmzr3U0>Jc$Api_#2O(`ZK-GroI3$wf7Bx`d%5V zb^&ZK-Gy}QH=NR7!3%{AX1tI!wdDnXsX;FQi1Y-j-Xz^sNPj!wCaW)4hV_ro0hfx2GiTuw9NY(OrLLh z=JQRNua{{(-)}H|zoF^(O_~2UWxl2(0;|u2CYXNT@$?PtcbOnf&^UaL8^b6SBrq;7H+$$yjX6 z8_ESUAP@96F(*h&3;`h)ECG@dOaUQ5YypxW#()qD)&NQA%>j}U>;aO{TS@s1R#Lvv zO3F7_N%^K$5@ZAsmv69=prWy>ZuxpE2~1bPO3MG%N;1?SR+7*f)PqDngCZ8F3JS(V z%LvK5{2aJ>)2nNE^G`Ar*e1A!#rn2f0M=6xa>fRQjFGM$j|@ye7P5j{!2eec3E^2e z8FA_82zkrnEO5PWPjS!e#wvdNN$pUzhqz)1?!o)8GPrK3u^sldh4z zg=_b}WzA(HWLdHavU75UJY3#a9xWdXSLXBK%6y%?QvMb$$v>KXXXat%Yu3pu(rkcP zrdg@kc(@$jWwy`kN4OflYxdCWC1b&;7%daR^kE8^Nz6267Bin&#QeZiFl(7p%xmU% zxCrN%I)#;@v4T~!RCG~Q6tC2%di#bT$$K8q6;KU&j@9PpcLEWEH#WfZ;_y5GV;5F{9d?!8yGf~*`&CyNA zk83;Lp+}6!8q-(PHU98VC)t^6W-nc^Qod#BrZv@?>P>m+OLYs1W|z*)lPfCNOa0=}WwrR;W)8uMW}n zlC51fy0EZhbgr(K>`Ha@X`ParTFCOY{1sWZA-VDKL)Tu@;wzAUD(kyw;NCcG=BB-) zk7*7aTCt;2H%O-7VlJ!OKBF_U^TwrV(sLKBDbf|Lo3P`g-O2B_SFF>nS-E!67ER@v zahV%*&!5wWhV)+@q-oBp`|&9-Ty@l6*H5fDbU>$2^G$F7-CW8y;REOo(nqfzdC*EV z&q{moo#odMj1eW40 zCk`pj){ZS2U7A}a=P8)S*|zwp>~z`TxV_p8fr=;l)@v7Pt*cM-rT|2OL z&z}9c-L$YY3bm^=gl|b>3#n4=Ege2NZ8Y$5+VXvqb>31Q&AB=Jspjd8eHhKvDb+ts z{3+@b5FNTQQZp!_xVT7%+u%LethRM+ORSJ>{C@4`3Cb|oalwo)x+fJTTYC+skwP{{no9zW5*Vqx^JiCeyka+=3S*QdAs?hcsC7c zJfhZ*=J#VQ-VdGZbDADCs$}YDP2rgNi;Hy2GmGYC!1|RA8>TzmmtMbq*{tQ7ish5a zR_exVtSH~4*|m9Tb+t~pkl`(-d0h|E#vW1Vf`Vpw@s@T9TX#lTBM)P1d&v0hTo0PJ zietD?Dc)WiN-Ow%I2H#{=Wvi1kHb~!LkYVF4N6S7%PKXUqBGJ)>IM%S7um+{I|VoP ziQ4xroiseLu%9M6VeR(S%Qv0Ty?f^(O&qmqV`b&)Lx(mOr|r|-cut=V8nmo~hDWWV z+C=V1-7r=+vSeslupKYKXxPW!&#t_7ORG@#!kuW~QY-~FRdNHl9QBTrlqE5msMt{% zIl3c;#rsM2WA*0UTbGv=RzMvCS3j5HE4Y)I*GhXs<)>2RsxU@@587f;tZc;CAGYW? z#M{=&Wr6#;h(b9*c%;s8BzRKOD0`dvM+M>N|GW+~YBC!<&EC znO9BKVq58n**mr#)*RfO9ub?Zz{7^9xl2Iqlq`Mhm=W4oUUXCXdH=1Ou=8A`!=~mG zr)W}gR#Z>bxe)fbmwHcgPoaq!+?j={L>$zvkSX}%I2AinSFnp1XW&#dcII7pXPL6R zH={@{$096$0UxB`LTs@aKURjv;xqKS+D5z?&Xn zjU73dr<#l?F3yeD^u*P?_Um9^yCY|$JNHb8TCLm5qea`~1{Y?Ub; zUcPL5sctx?MptKTiCfxq^NO__mR8CYI6?g^=3wG_?T&TT2XEV98|OQ`f>*Ta#M^YP z9=sz*n>Z>qfJxeU?C8#2M~_w|#%PtAqX$=P+5~%H=F7WPjL-N;W??TMt-`iuFt1Z! zTe0H!sv(Tx5!NYIB{7Pa$)B)dBBLnBX5856%*n+pSAyf!__z!=YjvBK^YWIR`DR-F zxQuW1p);0a`TN@#^0qV85veILF)2IF!PsQyc2pfbx;;5Ut1Q3)g$la{Rad|&xN2K| zFusJtaWc(&O8G!Ojpm$r+XoDGmz}(T8}S*mVmgCs!dY$%w@i&yE;o3Zm$&K6TM>>q zu%YVsku9l%^T+0nDbNOfM~_Mymp$Ar1KX~WEnl!|;S%l5-|3B2t9Bl-QyeRgV-@PE z^v%i185uH3x4l#Uwd$Hk5z#hejzN&Lg~$)RvkR3yMKS;U!Oq( zqbV_?Mrt#2N0toIIC6;}rH8hbWUke%A30|zkL(mUUyU8z?m3RkpHh~u#hvgGn%7Br zcYZ59#4j)0&yH{PM|<1^H~H`ww}LsErtUgySVY9|>KixqRiC@CcW^LtWU?ANxZZ;; zVdLu0+w)CccYM2i<*fP3wY)Qbkj4&D?26CRTQ6@ociE1&ovsc|Od8NHdC$ckckMiW zd{LEB-e3waAU0$B!PQIF{;*1W^H+L(<>C$d z>^AeZg|g8T3&xMt20GJO$puNVcD(Ahu9(L1U+-Wmt->Y}wx(@7qab^2qYMwiW9Y-D zH&p#>hZ}j4VJp82;BCpW{#?C!-^nd014fkPk4o3_EBOmFZw8J9sf=Rdkt4e6*A-ce z%@gR58rY=GFK>RKA?9cCGihaChVU(Z@iQ3|wv#yzHGCv)j3Z?aPp+%l zrrURL$@w>S%2m^WjX)K}^2IP~5-8@!)V?OmqdW^u3kKXm7$mnsaS+?#0^Cf&O}E7_ zWmpt(pO+39R-BTm#S;Z4zb3n~4^(7zUWk^zCWEE3!DfmaFk@>6;=hhE3eY^uRu}3< zubfaZWuF|oJmTGMVYf%Tvvkhx1r^Iz%2!ux2HOt=v`m`9x2Io8m3X)tWlA-cVHu2G zseUoyf@fHu3_IaU+DXbc=PPM1+^z4+)1cKa?oR9znUL5UtOFb^h2G$WAotB+?Cas| zph#iGig-i+A+NBg7nk*GdNcV zJHooQwPFUaKn#Rcg+RuZd&Aqx_?BR{^7b;^60F$TA<)GZQvM|vwtq+!_64{RmT|2Q zvx?jUtfDGI5JrmH{X-Lcw1vFYAt~;1=`lA`hka_FC<-aSZY0L*iP6$dy0x~Hek)bX z_yeo|z>z>=5`)XjS;ga6MzK^l5-4zEag8l7JzfH=TqO$_H7G=@7|tlM_LtW%mA3A$ zd7X}Tz^kOnLePquTez8+^HOZvJbCzX-NvqT&_-cIfglFdgEA6&Yxx#92n_Ozn-d3t z-W@n%M5LB)hW&6e>Dg@~2I>^sLs*5)jkCZkp|DI{Cc~_X-hCt*^#kriDQ=MY34*!u z%LYTijPHoUz^o19JAi`ip!oCJ&%giP?TV9*x4@B7WjR~p&wHuyc7N_kZJ?qva{#)r zj-jAS;sQpos(@>aWeUuKk*X-X41C$Rc7=lLK$?h#CY-PprNHJqTY$Z0K&=4(L z!rP(x1ZMZHLtur0^#Xq~rSA1>S^+Z+`;?kOAxa89)5y#hl_1oWrKTY?Tm){2;M$2+ zA#m6R&q{Cx1wT__LEsb$ zex=}k3BIM^(+HlVXe$Nx1mMpIex=~734W#ER*H6s&;f+@iO@0xUZLnHLWd}H41td+ zxQT)rBsz`I2@yI2|C;~=j-BWdLgy*;BSII2-}b}L@qa?-8bVh@=oUiPMc}}SZX@uN zM0Y6k0HJ%r58vVU-cJ#FBtp*+c)FtJh??0NTt%sBGjJY7^AUBz4E#pHWt6(4K*te! zh^X5Z=q#dMiqSdpGZ*l5rQS%;SOm_kXgmc@r{JWC#t}bS>YX?E(2AO8gLgZ))QY}G z;Ghdmp5UYoUi;ws4qmbFvor8a2bWdwk_E?C(LxHmJ4K7l!M{_qPJuEgQPmUCdvcf3 z9DIUZz!x|W*5y2vPwfzO6Acv&7sZQKgCpiE(O+UYxL-C02h5J*NO6)lM?6M6Mf|;Z zz4(myH8@o^lLSb5Nopi@v=!W|w4~kX2zoG`OsCShbTK`io=DH8m(a_klvF8gDs3)p zBkc`tj+3SHq>H6XrMsnjrT3)2O8E)XTL_^>epQv3C@1^l$@oVWw>RomfI|kT3)w&X<1_x zWEE|dZZ+QOd#lY>`>oDdJ+XRkEwa{FyIBWXM_H#@kFnlv)5)f5_XQ(Nqa;4 ztF~6xMCYdKsvDpisVmXV(XG_&)}7Ve)%~KYwYPxZ8Ti}xwjXMrZ9m?AvHe#2WA<0= zU)X7csg`*7~qiVQ0#Ef;fljEhtG~OMidXj)NT29CIAUJI--j z@3_(NnB!f?Pt7fxyEG4KKCt=l<~hwLHJ{vkPV4wwe7P&3*TfAuTS4&aLCM_dc#9h~bBS}g z^G@e4&b2O0U8cA!a9P-zX+5m+`T^;g%r@4o+T^LMwu z``l(go47U!ZF1U_wprTddYcb!Qn%)A!EU|W=DYpsR_orz-N${L`%4eTqnk&VM}kL^ zN0!Ggo+8fx&r;7Rp7XuLUbI&muaRD}y-u`c+UnZ6ww>qQ+&jbja=W4J4zxSn?u(Dy zr>{?y&vBpUKEM0Qef@o7eK+|Y^0W0D?l;bFk-xdW(%-{>r2ka^E&h+%TelBrKcRy~ zhsX}89rkzlv7=Q-wqx6lAsu5o7Ii$>@l${_z$>6{KwiL-fMo&816BrX2{;sRIpBG~ z*G`Q)d3Ng4DZA6^PJec)?JVnT*ST}&7hT-Dbm}s)%d#$KyL=9885k8fA#i8c;I7@f zCU;%YwW90luIGX}26YPR5>yiOteaD}{@u#EP3g9~+x1}hIc~5d*g9AhtPa)%y9D zkj)|cLQaR=3b`BdCZwi&QT^U*xdM@-q=-bf0ds_Ew-qXKlSkK`-b9?USd7|g_p09d-?Pc9d*UP6@ zk6r_MP3*O#*S22Adp+p&p*PjLQSX+$JN1t2J)-xN-ivx~?tQHH_1?dQiNiEuZNoys z62pqa=7g;Y+Z%Q+>`~Ys;dFSjaQE=Q@aXUn;icho!ncL*3qKbAF#Kcq=Lltlb40g@ zp%Fz9^CPMw9z?v26h-<*_KF-DnH{+(a!KTuK9+qP`n2m4)+eq{UZ0Xa^ZK0abFvy96i2gqeP!4b(&}+c@XezpCbnEDV=+4o@qNhY}kG>Io zEBa3Kz32xqnwVBG-Z7nHdc{P?B*Y}ehsfekLITLd&=26U>n9s4ISY>RJSf^Nz z*p9K?W20i@VzXk$#LkLc7P~!mf9%QF%drn*U&sC#`*k2QkR9kg(0|;FXWaH@)Qx9& z-ZSwHTds4>;M&g8XJ2VGw;j)`-7ZtsK2-9bg#RYYz|P$H)$9g7xBlvZx8PP5;1pth zDIa4CG49JvQ{xm~305Y)Zwo04NGU(9D!_fQ5)23n99&4%H0J!&*dj!>0SD83GieqN zkzBfwMcm*e`FOEK%v_qS*F@8nQg-P?8;I6VgQxA{bHuCwiCjF0vt!qD5 z{-UL)jJGWf@Zn{45zB{GrfD~49Lhg8aqE;Oe5fp9R^K1u_Ii3Yxg2^c=j~KEk3L|D z3|lXIc?&D;_-0eUkj#jfq{Uri>!+-nT2UllRyw~R$ByrSbJSUL^1mOmOkT3IeB}ze z>PZXvC^?~UCwLK_wz8tGxj+uilYo_`$PyMCMYSQyPW#%}7& z5$R*&G!cXLoISc}(#ksp*ck&duf**j z2N*IXf0lPDz~=}rHW%ZRerg;G=caQ|&=%)o3yKrt{8bEp9N5@!hh}TMLF0Ss?Q71p zW`mknO8K2%KhRhyRYtLW89WnAW91Lb3^?``!S&7GkS$APM=~4*sfjqg3!B)3xr!Zi z%2fp)F0uF)wia{We@JFpV(SlZJ-3kM5MWNglRVg;*+bO~S2mD=1HkL)3^#*&od=|< z!HNzCoTtC?57?zxE!K3**LWGO)MU zQH&=DV|RqH;}%?xd+fymZcHJ?W$jgCR>qfq!sVaAI+xY9<|AmHmMP)nto#)#DVW}; zrx`AS&p6E}jg@e*8q7GxR&a@G(f{UN!y2)3>l&uGGt6xdprJ^%yV`8 z=@{+Hm-L8DWfe#4@Lt*8d0RGZ(r(<7EdT}vU ztr_K9Sew1%44BP`xx*uv+O#+Z0F`jLREdLR${3c)XYqWj6}MuPD;Zo}xR&k0D07*> zY?i`D%h~>n^8RhM8>1XQV-YJ(V3k1(w#i^|MLFxkD$jGwYOXX|g}$%ERdLrd20)?MsP`*F7FplR`C>DmFu1G`=brzeaZGiCJu(aW0h zM}{KfEGcI_8Rfk4nJiVriX9kb>3$ZcL#G(!Bj|c6BX(w#Q~EO8Epm8=8-V7uiF|V| zk%nc&gr63FxY&oq)Tc>cd&5M1R)6A~I)D^m1Xv(D zv&P8)8U=VMg_GC;P-n>uEaKjQ>tSY;8jhOuXqIc01n+b^*sAw_qX zw}C6z@v@}KU8Toi@^Z`AA6Y(14YQ^iDBGQqbe|d2nLSv1RC9dy(w&t$m`N^1Qa^#b zZ7w^B?Z7IpvQ%?M$(PQ^VyGwKtOuhU#ZW&jW?QmKcX+xeCQ8 z1zbicao34#%@lp9FMrD(O23mj@V9&knpTRv0qwICQ}{ln`1_DlhO%>5sy(BuWT+mj zavY1j!r872Kkhgy+zQ%$1=&50z0L$OtKdq;hT?w2m1@6-baHauI=!95cPilWzJH0EQm?RDjLTpaMslTeYw1Y1^TICNZ8dJnvwTyT zvfZkJzc2&x-uwwMTWn8$5OZm`hq~S4!h+FbvnMshyJQz>_uG9e&^mtjC_A-q@4B74<$Ugbb;+Eu-;ZA+FI-o)9bSPKkyqe_ zim#t*?u5dEH~Z^<6+-+kr4>d|>?w69*##|K1L zbke|su)>e`)U^+9b)G*WQ$F5Oum`$47BhPasdtbXht0&?=eO#vH|UDW#k=>}?Hjkd zuu^;DhR@T$u5?9O!s6kY;fdo4({zD1+O@mcl`c#hn=ssN_>zQ*G;Ltlr|oXupbIN^ zjoYW$w|j9#r4BH<;!WzF1EPEOj6Qbx@-YaUU~>wDhysBHZa8e6{)lq&g><1E)h zjsJvA{ih7u*3LJkmHqixEUO6yGwU{37WUXi%w^yW>W{Iis6F2R6>&fbru|?y?X~&H#nvkQ( zDg1u%INi9#<5upl+rDt+(xuwPiz~igr&+gR!nh^6rKO7s)9jQ!+@IK*;=H*(T^YQ% z{K1pkc+#E652$lb|9XP|el~{jwgqd+9RA$l&jOp{cJN1Hclaalc5oNUJE@~i(RtZL z6EZZt(+}RbvE|^!%_}G5ZP1-MMQ=+=s)*9G>KMW|;v3!T{{GaimD{R-C4~ZW;G+z5tPkPe)^s5!K5@y3n16xlS~Mx8TdOxbwtn9)U3Gc}3DD>iOixw1<4K&sq#XeYy+ z-9R2mTz`41eE#NvsPaFLz#<_UsEU;Pd{$KFKU&y!} zVcf3VO!ckt2a|SdH;js38&2LSvPbEX62=eiV%K@$(47g|?Dczc&uh-_S-WAqZs+cW z`)}Jh+Qv;wE+~NgFs8f^d>Q7!ekfQqt!l5`-dQ_Wt%CjV!@LSj#Si7<7VB0O%u0&0 z({syfyiv{1#xrT&UG~PUjT?zG@yv7v&skM)`UQ7U=qNYfrMLzR7dU{;J-vXft-?jK zSiE`06TIv(uGEjE=A7+v=2z+VRWOS`z${MsiM;{Br=|Wa9x9RIx^w+I??c zyyGl@atlIv?ofuC%HsvBG7N-^87E%&3e*EPB#Gr)a*ggX5pcBaWTSfG#Hy^0;H~Xh zQvi10`nv!G91|D;r3vniw>lFDJhC+^)YoeQPZRIk0i{>i+CT~W;!0P5oWG9EZWys_ zI2$j9(}E`0ip|!5KIjN*%?$;4`o)WAgGaav-VX70D0qaeY7fb3<-}}rkv_m4G|ne} z0_!EbzZ7iyE3|TZJbR)yGm}wew_sFd{BVA&8(RVI4L{>f@HF;IYer>-x7Vz0|4$$% z|I*7v0KPoIs9peG6VAP6wX*=ahOLd2Iksl4E5mOKAT#94U>%{=kR3v(kSrDfne#X& zjQu)Trt-k^2rW_o(*f1W2$kPvz%i=#CwTp}q&^YzKAgG6=;tsQjBu<|UG`yB9$RZ( zwqw8;zlb{xVO4kRS(SYV7to&l7POjs?ZTeThvOls2S^_0xBzE@^b1)Os3`zXapMJI zm$9{x*j}!)EAzO3>kBsQ1l&Rm3QG9%f5#XaH-H22SaLn2;eH62^5ybSlgA`;mV8^7TJa1iam=UHkAlE%E!} z7Rb)7*?x7)+DWC$w2RB;k14i`%PJnJ&1$hxy7Gte@e6ee$ImS-u;ZO%1?5C>jV~*m zT&Nkvi;hXp>|P35ZR3U|dyd*E`?7a%r$koun*(g|0`DXII$Q&Pt_ z%KA5VOMFjwto(OZN~I$RlSIY_EMZl4D;C6winn%SyOW6mU?bHpjxc%g_)zFsoPwj!>%e zfarl|avwmPz{%_*w%!3JGpIX;*jnXqcd`@H=U-8$;Jnlc)a7VAU;X>o{R4m1CfuP9 zymFVOpCjHgTO#Q09#|@^3>!6j)Rf%vrpe>eM;GMFhYT9m$HUHjai0T&v?I12$-Jex zb!5}Ft-1q;7N2=t#l%b-mNQCQT3R?USCd<`U}>o?XZ_UbqjpDU?_0NCyL9Qw1#2~H zD<+mM)vX&fYj}(uIiuH&;>wm zV&Q+w0fGxQ=^Omk86Y184Pyj8;oJx@xZ$cNb{qfh%D_&!gDvi0TM8#&+eS|=z~u)X zsK&NnUE31t+Qpbwf)Il_JBC4!t$~{`I7PpibvJyocG}EyALtI!)ChWMR_cN{KXy^X zp+VZ2(<58b_oO?{)1@0LC+yYSIlj4atM1_8#bemu?t-y8 zaB#_?=jG1I9BCJan}Jg+pF@|goxXXi-HF-zH*C-@Tefn+dd|)EBcP?xm zm{B+kp3RRz`1Y3JZw;_Y!%2A#;VENX=b8|ru|GUBsBqpFSI>gY{p$*qmuXLy10WtxcbtF@sL~R&K@V8PY;GLHmYnV*hzRuJbNB8*Xxl?egH6(fYVtQ#p(24zu4NM9$!!W(!8jT`V`E;r2C~%K%Rp zu~AO(Uij2}wj!QA*O39lA~12vxHPbmlR?UX!-L*iQy^Rf605ATme!k24F-|xm!57w z)l_z`yD@YW@Fe3FK03W;%|Ux zr}70K#wjFlT3fvMNC<8KNSF6^r{%d^*~aFoj}ze z#a2&0{SN>4Y#1Oo1l5FcbJd?he&=;Ad^!1sIQ(2Y7s`&}a{egzugsP4x^`;5{3$M% zlB+af&4s(P|8!J)^W>oq;eiB!{EYPsm}N8A1frz&3ih$#c95JguAGGnLY4gs0v`{&xt{Q5HsF@wtz;-m047`| z+FXIP$p+lA6#`XwUc3GM3^MpC!0y7SYlf5py8hmA*Y`%kxKB-SDZ2nVL47D^xpRW& zB~Fy#Mh|E#lktt((|851<3GxJ#l!oZ>=IntOocQ0EW-unW4JWEp!dNZ2R_(1S9WeE zjVW0~GL3U!s~(s2Pou$M|HL+$ZzBt=2H$MuH8Nm>1%C%Dc>Aejbf5`=DM1b10X1lU zoJezQW0*t1*e?RqvOpNzIG9K9qE+u^&1)O@UT=9*dhpW|#c`8m!k@^c(`(h!cGxCFM; zZ=N9HR&qnYqJ#To;D#M=#jLXbfz!FLKTlwB6<8vX*a}#OV3z=PS#<4D*afzFj(~lY z4He3GyV_oE?2io5PXzN7U^Y3;4R&J)-2-|%5fD92aauQqyrY0dwJCy=kpt|t?`n!& z*sFp@RUK~*fFSO(3rn!pv4C?Ka6Ec*SDXRo03%>{6mh+s*?AyrXR?G$5ulWTKlvIr z))#<>L8}i3LS^7ro#*xsND(tbrWA(r1X~@1;rKwcxnG;X7)xQNj|AEt z09ghsU%HNYNlYEUIuBSLpYY!>K5`NN>U-j!toj8ot#Eg;zv1xq;hFL5R_o6ln8kpl zWbwji6kQ|Y5|Ez1G$Ogwbae;A>FrA+%FUWGcY^XWIko_na5Cf@*EI72QjZ7_Fa?{d zx@MRc1DK|V&61kvj^CPVeQTC=WFNuojAnpZ5u7v2T=~F`SWs*m+z&K!sb$}J(nh*(63GUYf(t}9S--rMKBvAVXBpgJfc_s4->>LA9 z3yzylkY2(~4I$*g`4hoW$^1nCK*xh?N`waQMIH%C-s3cQC*mC7l?Oyz;7o^^eL9Z~ zY?{t@rF~odB=xQ>q2c`cjDv`N?<(Dd+tZupu2{ZBqx?VRjeo5ClK)uw)i5FD%p^9D zh0991A4_o|#KbkGNoReyH!ms9i>#Lq$ARZGKF`6g{NOhe#9`Wpdq5V8;;hLsk*h$? z6=?d@fZf~(ZaAXI`GY*aEg=iU=X0;Xr4_8Q$u**$OmprTw%!I<1G#5u%<)yDS^R_) z+o*m9tJQ-q`OuRIW-GR`*sTDbSq1fT0}LtWuH5^c@c#@1Fkr*}B}T>rFfu%9V@U}Q zS8?2ReVMAtsH}$zwf+}--vQR-)%Kr&NiflfBdAI9#9epQTKB4Z;zAstqD)z`1QbL? zQM7dr5L6HZSxQ6&XFx^Vqt#ZZ3$RsdDW!|^#3z*h?>q^LR{QGrw%_~yuj{+Gemu#O zXPk4N``qW8d!2#^3}v$e4-?A>s-?+*>SmImC;4owG_2+(BX4M-f^dMM;mTNP0R%HU zx~hX6KY3TUUFBjMTDi2YjIh@ zeJ0*eye)a}K8wA34#a9z+KiAzdo+9fw)t%6Wx>hntnIeKcag8fq9BhYE-DxIUGU3a zl(Zsg?PCj=tBp45B-nd@vf?6WG^1F|t)fam*l@eCt4RmLYSF8<>!?d=vKSRRLdW~z zFeo*_u?gu9t%Idu8D~j`!%eygj!huOhI5vZTGs9|&;%2@aNPa_rul|wN*EGuD3-tw z?wqe?w}M)BE#b_-g+kpOE8@&qH$48lgmfmGV1IBE)iPMuvL+K7C}crGmRRb7geUQi zW=1rT>%9;sbAQD>>x<0!$<}fGR60&GL(i{ z(d0|+U5q<_UUTu{_Ivj;rPJ5W@^oRm{oI$&R}ofnBx9NPK24g-db{aLE)iDe`R+SX z{4}20wWo5Gx$94+X_=IL8Bs@6Fn5!lnB~?755jHgG}KlSlu1IECLid>k!l6`nPa%0 zCC*KwoW|fP@%Y>$CUCDsaNP2}hm@x4#_XPP!k#%b>*B(qbr!G$ zXh?lY(dQTUpE_l6;>2#W+dsTa(K#bBP`){_lQOXagg`k~zU&vwV&ocm_Mn~33v%w$(sppetu;QoT z2fH%f;<4^KkNrq`e_M7`vj>qoG`z2exWn|WgW{oVVY47N)*3rBz1=uGDn?fBo0>%pW#2xSu=d#dQRM0*?KJ} z`EnpL?~u;_OVyXU#G{8aUly(*7QdjHw-ua?c>T34y2NCQT`}=d`&Iknmo16WB=~He zv3`uj=Ug4d@W^4_?#z5o)$2X!}i6TD!LuUe9?c=j-P6AZ3tf_X%U zU=X1&o2cM$hjxh2TPQA1`7~vKife$ty@sQ+rkxAcjP$b|-x-$Mhogv+$q^se6B%Hl z{xj>tT{LsWQ)Z`J|MBUL{hE7fc&kitO+8nj%{-r*?eCDKky9li6k@zf#cJuSwXjK$ zQ^e>ZG8D>-#Ux7cY~{I`c}#}q^tAq}?z83~xYf%o*ntx(4N!5D5Q%?s#-gLDYsdFz zq-su|+5Yv{2&(&BF>u+)!A?tdCWSIflh$QrD=%(LiQUJzmh+*aOj)A+&cA4HsFibHqWH`AEq%U9af2YLYh?bXRf@^*LqP29A%QMwPYv^#m~n|v!%QkzN~J1y$fbZTs*xx z0(G|_KEJ@?XU3aF?5ND#PrMZcOOGy0XO`>N6=o7$%E)I zU*EqsJS2wMv21&wuhMzx%%O~R8=W{kZcTWcCUJRO0OTN5!2QYoM|yvTKH+>sO74(* z3L+ChDWQQ%!WVR4n)3N7sOjN-!t9$);iQV8c(fFp2jd z)g9D%(gNxnJPE#}Q5DjA4PK*>879yF^WGKRSQja%nU{E~DdZEl)t5ntV)@ zWKfz^??Y~FQyV6-YQ+{Q$&jR|+5Rz@)22zE&xaY#80p5)NH-`>;<*TVoF^r>p#i&1 zGQ`GsI1RVDY#SK5H)a?2j!5-GAQhseHI4JoZN>yiEBFw!9ne@R^CHw=NDakY1P!Dm)1co}k{%M1FXc_@ zT10~f+xSS0Q#romA3xz*Gh92wvtj*d@PLEeAu(xFiugThrJLm9G=bqXxKAU#q;-Uq zj=E%G9=MhjDhe`EPTxRW{U>)gCBtRmR-KqAAHt$@I_$7#h9)#-`PPLo7F>FPg2wPk z@(+5>nBnF*MFT&UJO$>=Z6*1c?$f5ZE|{W``yW%6;JGiEL7uB-?X%U~SP9q1m+LgC z8#5XvZ&ZlYa6QC5$w39@BR*BW6En4z%3nx#$xAm-Qi+*yn+P@OWkteaFf~{}4QV04 zjMYL!28g-steh+*r6R76nDgcyi^yX%+hYmmO&-&8WGPq5Z8yk8^7sfm-3H=kB#{Z( zR(Rs^2nG4D@&Qp4Ii4H8Uvn;1djCY4v@n;05&E~oSO ziCd%+tP*OiXG~75_t}n!bPc>QQ^)9Lj!7P@8Z^dd#!QXP)X*thE9E4~pwC<09L~%* zea)v(Rd_Wi_q67VTc1CDs^m0T@IH-j!-T?bk!KiECV1^k^w+p&th@e|GE?$s{q^*N z%)Y(p(V42uv@pNDn*E+zoVdD5`A--Uz<-IRg2nO+j0n2G$VP98hjA3fWolV|0H+T0 ztax}w6Q&GYN~}6O;nW(q>)ldNW3mK-XVRqk&J#2yXJPg(SqKZhc*;`Oxg%80p0#tM zq#-xT7nygYMv-C4i^7YE4*N8#Q4x zetrd{`WzknX^`*=$`wG%bcwPQ!xc#)yvK(-sAf7PT+)!OVAdQ7Cw*-5_|A>!&028G#y7MVKB z&0C*8ATs4`$&X8J+MZ!@XN*l61P6M9T+x2b3@_Su+?Tqk+&p&fTZGI@E06xF%#nPz zC4YZ9voD_SJL$CVBzta|@sUz~mG2-8kl#Qq%qL8`lw2qA3glafhbxXfmm=oW9Y5hd z=ze0v*9$bT+CC49Uq2*!&j8~+YckdLtJda zmLyeD!pfi+&91<0j#HG@E9Nf=WP(E$A?eO~uCC(J+4wB2=Gcin=YLgx8}!ZWY$nNj zLF`!76kFc~L7L0E(@*YW3ep}$T-#)UI3TX;x-P56&a@aaeaS>FQrU4wpR`$w&B2?# zg(|t*XFrhoWyJgk;VrB;2hh3IYSK}0&OdWz5_2pm{@^KP>G*RU7z_rx$sX~Km(D-Y zAc4q!#gV;1Zmx@h=4(0QUj zqvyzAZVeI|q>1D`sIfrul$iZSeGgINNr)*r=aFL{$7ILt&pxGm(*4wj13z7AKZ&{3 zUzB*@a8#Bm@8A+wH=jignn7K^5g$)k;^a6dc=oK>(HSn9A$>(tFFjm*Usd_!a+yZH zkzXnzT>@tIJFPaWH%?X;-D`x^BRz#-%UqL9f+8YD2@F(7`=1J~t8PDyXVK0(qazF(g^UDbO}e$r*7u){b9^ ze$&9+USw7Hw-4qt^88Io{{!PuD;H z?%R@0eMd9$Whd09rG`&wQIIyEzoDaqy57?%`)xI`V?7l$-uEurjL;h(Rs{qDP~2~M1l zF~vQw#>8Ttp1~^?s7AS+{^`eqx*HksD?C$?NX#=ebo;`n=1~jXH@m914|{gt`f#5X zcOV@y(>F(_X!b|NY)?zIkaG&KDJExVuF3qEZy3o*NEZYXp&k-B{O@h0E@4YoIIFz4 zx;pVUIq6^ThY)N@eJ8B>MX?33ro&)U*u<=WrqJ9CqzT1_btvLK+QtxTm;|jQ+(+RZ z26Drc-0+`zlP=*5XN{|^@uqD*JtV`i99yUO&|zl3wG7FXJXm*R_J>Mt1J_y6Z@t6m zpOilxIsV{t2FtT;yVX!wqO3Rgel&vZh$UJ_u0PxHw3rcH33PXXBEM;-C3TW?oSoP4aVc^!1yk;U9m4vR?^xh%73uh}4Eo`IpOkU!(bkiZ zTH+^S{)p7QD!oUVKyvF{NsOW_|%^Wx1X{&}?^dojCR8!)5 zPrPYh@{|)U7T%dBL(ZByQTFlJGruZ1U(#NYny?};MicA5Wx*unUVz9UwMvZ#EQ={HSI*4HO_^8(Ck@pQZ zd(0bT)3O$@YSE6&3;r7EfFP45u-v1cLiGU6wh*cZEI^eAuwjdl1BO$=;CG!@LhwU3 zfnn?pv3i0CUbZh4jBB7%X~OwIz*|wlm?GVaKkh198AyW9N^{}Tf0f-3NP^Bv-KE?I zTo4>4uJ_@8qxO~$Ab;d-_={83xl*kBgC(4*l?Z7uahl$jsy5v>2|L=kFV*S6~M_(o~0RQrsU_G;F$}CTv>2mM9T6UEv(O zm=Bxg{^+K7Erc4s1$*!z)ZDU@homGk*;8%&bd&7&lp5+!fnuq)Kfk;@L#nSwS9UG1 zvU8q0GE{w2dq>&^x}QijY4+iO+imIj&xqcd!i}cxr81d<|Kjojz^4GHTT0EO8#I+o*71w(740NdHR>X-u zn!AHAKfMiyqDVOUXuJY1v!X>A8_3?HL+Jz}F@J9Hxxx^^u4Wz9A`cj}IoSqi6Jgq3 z$2zbP)X@3jdc8ZY*WbUXV2>D%N~rmpby#m$ZCG8}6ZfxPYnV$f9uFU`dq{HNPcMEv zUcny5rNm;rVXgre^~9yPW$t>K=&RP{5EmBa`ajrXik_v02t&krb}oIvI>S*m`*Tc% zBnF3dBDt5*-&poN6t?HUa((GI5(tlD5(I_C;Bu}@f18l$)0lgGMf+1yqH}!lraleiS|V7(9;CPJ7d=qA3|^nqwx9Mx z_c-=XGI<;)8a<8^R0(^i$8n>uN>JiJLFs%}c; z?%Y&jsRx8?6n=*Mxk2-ZofHv;1WL_x5h=jx)QvL}V>(B;$%c9&&WsAd5$YY2)ur^l z%Mf4FB{b}~H%Ssf-9m;Sp7S>`v1N-zaf3=W7u5G(z1O6HPPyC^QBcK~>5l zSWZFApi&eM8q3wy7>-Nqd>74OW^ra$k)pKl3aP7Mk4sJ_B^+bq@%OL_>CVTMLhoyg zD~+IWrQ3~hrQ4&`D{A6OxxhMoY2fK18hGk&3_SJNjwEjmG|Afon&d5EGm^X|tS}~d zqcOD>`X{ls?kGG0%!4`A{;LakdJsQ1M?ipcj0E|xXpVhv^_)?kk55^JvD>T-Qy zVd;xyTOR~=LzQO?uZBw!nXpt!ZhQra%*RP95hr~aeuU&SAAe0R7`If)c0pb;cv+f~ zy5>SMUoa+hZLdP))ZriD862FMq_m3v8RqaEsUQBy}^+O0?>x~E6u3! z;Q4@h@Vwb?rx$zYo{;VKa)u=5OF+EXU;0XsCWHG3L+C8{Zr+QPPOiz6QBK!KZt58x zQo`cnlG>><{EWFW9?)DFyI$nVaHGjG>fqYdG+BoAP4yAvz*sy>It{H((`Brp=`#F0 zq!-b&BXHTKacXOf!KQ>6S-3dJUOj)Rl=~1je2*!N9g1{6R_#KI)Eq`Z8qgT#DxC>t zuZu8f5gCJ%w46&G4^caghUE!qJT|orBwdimqnucpvnNuK(7Zo904$;1>MtQ{;EhGI zp+>?v3&D*SxGvDvb&<#yaP?7k5gvuyCEe7ng-9AgOK7L|=orX8L*ZlC0L+>UUfg2b zQHMB7z~|_OEyQxvC>J%FL9ZVtb-gYH;OOxW2vbNBeey|!&QYSf+7Rg1To8PmU;v&wpbb(v?@^L;TM+^w|?)&IL(gy*wnb) z7SS=gx5TT`lY-`I z0XgVU#1erPeQ3!W=W(4l=eB$_!d0S#YxYwbZ;326#jSY5Bku2wC@}gJZpsBjS>vaC zjty-^T`F-wje}-iwyYHbO>PrqO&rOu?9^7$R>)jw3d!n&aF0Ah$IWVsz$#qV=tW4@ zL-HIi1nJ6&(&R9|j@COEc39;LPw4O1j;*BOWLN>IUjY6?Cf8x+m!#wx*A9G_WoPH; zWM_BS@#M*@!zUTGdmWyC9UXDb3FpAW2-v~%Yy3yQqc7M<-w5YRKJKQweq}3Z-eBo% z8uii#{)2f$R~67xI%BZ(L`~GoAVj_75evhtp3?I*VJ|!>TMW~~G#ub9<-c_c(@$%! zKCixnr(fXB$h$!97F<1j)I@}?6w%5XBU@Urzs{_E8+>Ljs$<_NW~G>|vsp^b-8Wvg z9m&=|nuw4O{tY#eBtE2iraEr0G?xz~8Gts`O}Bm)phl2>Rrj9RN7 zQg7b#(#DTFz+1T=8)6Ix!HF`QuxzKdq>&$}Va*wCB71rwqCW8Mnotfew&hH9F1LWD zVLm=jjVlM?-aO9TFt{y(K5oxZ<4Qi7mnKl;EtUa#n+j4(vEHP(n)(Tt-=GmJJURtZ{WdO&jKb^dWzS_lJ(x_ni4R*Mo}8-a_(FKTL7V zHFM4!SJydnGF^`y%gn@lnMzRBmKOL$vVtM-9)^ew(6?B2<3pC})5~kQ6Spw*(c9Aib4(|) zjK4L0;Z8ink^aWJ6A!@SU{8m5JqCB;AqGr%I;g2TF@Mubcj6)3A8a4oLl@G$U)}?E z;vw8|`ZVfJtgLbVAwAz*v#?8QHWqFzF0je7y|^4KsSIM{=hO5vJeyShwdbG_2ItyJv<11_Ga*dv$E}qIpFC3XR zuUpMT+kSlo{xvT#eC5G^hitZbh+`p>4y8GU@8yNXTDTE1i10!F< z7wbnT`hWC8f$3;s^1Ldi<4Y8O=0$<$vLCkMLw@0TMM;3LSU#Zk45dmGU)>kij$yZS zfOi)zgVWVLI9;{i#?s5+raFpP4&nv>p9bv!YW^JsuaM!%Qcf85_|aMoae+UQi@0=s z?6<$Gj_h0JoOM^7KXKZ=KAWTu&Lo{HfHoN7)7a7*=tvL0qW+j?^?Kn~Gz#m>cx0y# zr>MV$Cq3Lrsdp46a*dykMe{|nksZ{zYC<#m_sB+qxcfewaw^x583~6N6&zxi8i$x* zarV#2q%m0rHyNm1)W(Mi**?@2;H(uny-)Jqdp~F&H_Q50yGwY`-6gmj5ApoPi5ZJE z_Cy$#zAPzZPxFIbuF*49n9L`O4@HGLMQgO(b}mTtNnPB0-qMAhOXfOYg9^8$5upw$ zZ_e_vSa&G;V2Wl}eDwYu$w!Hx*}1((u&u>D?zC9GkrI9~TyYS6g-`~#uq0!92;K{a z$xqGXy>MC;a#kPp4VXBJDfw8WJ*tb!SDiiKW%R-6&WXPjU&(QuFlG7z>v5BIW!q_b zbQgVEbU)}f6?DM@xb$e`Ch8;Q8e=|I%{$ESEmh+%GfEP#7RxCQus+FBXYVK&=ohA~ z%7S;tA<2!;zB-r%@0Qdkt&t6oINM1Z9JOF)^Jq`E%}$%7hcdTBrD_iB+!K|hwcsCP zWF_hu@drW&$a**uw72)OnWQQ0D$3L*N9U-HAMtmJ)oc&g8nAw}1vejhct`PC>osuF zw7}-LVJ<2Un?$7P>Dfax<)Y5-q3U49rX497ZFEL_@_vh(UwmGESNW5qApAm54)e&d z!|_j4@@v#1<6}^gDtrpyzPyxj$54`~;4%pV#b_GzI3IW7&MRn96u&host_;}veDVnI%sMP3Gi#*i$fQlP~RGw$E4qs%DJ8LS}Tx{)h_?(6} z`jb>FLly=Juc9*#!E#RvwO6-C%JcHu>l`N^IA(E+9B!QRJjmgO|^+vluaMO*>AgoGAHx{HAHq^S61$ z1ndsBaMqp=ysTOa9STD6V?#8Hi$pP_;clTRp}r$F6jT z3x5cfBK|6BrLPCN)U{Se6N%!s6e}0rP>+a6|B&trx}sWE2{(3^(1h@Hxf~ep>|rnb z;rAzSXn+qNEON7vO?9gzO|2az4f0V169-PgIRuM+{Nnbn(D>gJT?}+d8m+SD>g*Ax zZC~ZJT@yQNoA0iWgq6)bmM>ns)YX4Nvw-krNFxxyNsfxY*6zNA+!VJ(*}GCVWvI4t zu41{HF)Wn?6IVr=I%|}4v5(4`%z?fHW(k4|U_m#7KQHtKa@2*cZm9*mo+J)Fmn4c8 z*>qzJ1YyBBMjSC)aVE^gM+v0*M^)hR*h|IC|Z zd6K})l?5|b95M`vkE-2ZX+oxnw-OWvD1Y_>!cupdmh=^5=+AWdUTa~`p0wH^OaCvszARR^DL60FUA++vUUcgfbl%Lj*dFL*q`Y& z-_u!PFMT}yTuJAQQ)#ACs)<<-c4-i+u2IBLh0q#T=_`5|f^#ct>0wN2m?Ekpib{2n zLeU~g;e9>6;#twsLlfGP;JQuJ9QVMo@gx_K+~$8;Wti+94Eal)tavP+z!Rw zi|riP`ZSYJfj*JuO$(*IxxMrUN`;SU?6>I(H|iZ*pwFgJaT{oWx{LAiJQ~x7O46vf z=e-aWr%$6%aW*s@u$Ml<6b|>?q6Z$7Ym9D=m-c+L&{PcJW`+J_nZQlX&M zN49JZ9y5)-vs3y`>kR$ESfPF-U0OtJW_NEVW44O9nb8s^-gj7ay}HB_+%6+#JL}aW zR@>^;XAd`F?<;Z|8@FV%7u*nhjSU$;6aI>AEEbx@n*CrdHm_&iz&zRfn0cQ0qdKZO zpVpaJ$F)veoyatAsca-R zPTVa^k{ywqkQK-Z>q+X>tEZ@^tf#5hrC#591M7{bH@2RCy^wnQ>ZR5Dvfl6Y8`SSv ze^~wT^{3UhuRp)O3${kwQa`GGPW{u^4Dn+9tMzZ!zhA!uTOnFt8^j^lJYa%+x_qvD ziF}JZU49nZ2t1TOk^j*^(m>UqMT0gC+BfLhU}%GB4O|;6Y!J|3af8nrY;UlqL1KfH z1_v7)Zjj&Lc7tyllsEXjL6xP@Qes)(vazMcvbAM*%fXf-EUhi4TRK>}T6$S7v0Q@< z2zFY=TP9f^vOH~h$?}$Eq2+zcQp+DLe{U#gC~MfTp|YW-VVi~>j44)@71*C*4tUt6 z4tga-`>p9z-X#`W#vbPLYvA+O zB2bYIL{dZ;jjWxN3$%g|awdHgkEWk(vz_U?RWy6!%DsD(NqZA>j~!p>lgiw^Cps~6 z)XsjYmYpYaf==h>e;=;7zfyE$&CbQXN+bBiaB)uD1T|?s96?;Bmgwr)%Je<+gIZ#Y)FD zlduWh#z|WpnXQg{T+=))rsrPqy`v%@{Ctx;V^bfA({hhM zf5ykpJ#4<|y$drU_LCM$(sFAOl7C}X8Ld^_JnA-bmj?Q1Vj0}?SFYDPzW466edo?< zPUY^o_$#(*d`gh(*^Ofij*`B!W(^r)cj`XFI>LX~O~Q2|7VTm9Yey`~Nhi?b0Xd=g zncIyrHu96Wt#k?SWBdZVLg(>r)T<;!(aZ<_tyEKLe zUg{~gFIBfQ(+($T9FsCVZ>zpMeeh_i=HThA1^1LPWD@Mtz0Y@|cJT1Q2AnjVazoA> zh9DV11`RWNiRaQ?utjcoQvMO?ijs7-X@8d6L9JN7W6x1DD`?&?h;Ht?c>*L|!o1C7WgpDSXut}VJnEE7=_MSZyb2w8oOQyIY@ekb<7ZEw3y+Y?YXwLClO>U^!YH|s-noPxZoH2B( zN%j!*7+c|@ZEYwq9b&cY%1>K#sQ;#39@@vtvE!UeHalaesd4#TUn2epfvBnut z*eqbt@|D3WEmkdAv?fqB*y&KwnzQOJHe?>Ypt^9-Y4}Fe@gu3sR_YuU8t!8BG0e`| z4&TVw*r>fbQY>WbCdx7hBtFmjiHMoO4kgKvaQOxw5myJqN48v`KeleN@2TXNpNGI^ z+vw-734F_~)+=lr9BgbHvd^B)&H?7yFe}Je#dH_v88c+>8b&n|VN`})1X-tj6LY-( zMI4orDUK@XUE-*?1#{H0FQi-!;)QaI-r_W44t6^2L3D`TpDpoUvUSIDB$izrw_k~1 znPXvE?-VA{-!*!=sx4PHPn;SXxqOFa$Ffa}7brQEWLWm%q!o~q58p zTl}@^D3Jt+{g-V`2-o;uTAI0dx5tj=30rr?ZcBfRieT`TFW1j4h zhTuixu7 z(RY}0vqtVmMC^7h7wMU}3uLSK!OgVX6PjzcBX5$X2;5n#z_zH1g1i~`MXo`%s#Y-m zSo{vbKm0dwZpPvTiJEw?jSIPkO8G{qvumm+c2h>kynO7yfh(>S7jM5(R3zip4-I_Y z3=4^d@OdHI2%}&}OL8KQ1srAqvOLny$)wCt(SmTzUnRH9gniAf{67|3;g@0n`&Lt@pD|WBme@Mv=kQ~~yfBSA` zS4zyz#KfMZ&D`BRJOi980vsdf%vEAj-MJg)Bsek&PU)T*?iO-(3<*=Pei%1BC4J{Q zj+(t_S3&^uQ8$roUS3e43aUEU1JWH+7KAX5k;+~RV`3k(VKhNz1x=8dVhm_{B{`;3 zt>llZCf-4nFXBY5#b z-@w>(O&4*OFPy*p`r6TNu|*~|K+#+$vHCgt)y7q?3ycg})2dg7AVX{(`zh8jjRNQ% zf7q!n5ShJDp9W*0cxuQs=Q>D8By|A*QA{oXIs6`=dnItRk%(?xIh%*wfMs2a;L=&I z;~=gHLxYU6lX7woEU_*vJ^d>Uiw_d~^e>hL<8QH1N3Zz24 z%(TzCK+GXuh=`p^?LWH^APNZ&&D2YUM+`PzI9;>xf{X-M(NN6|G*okt7|up=xNRa- zv!58knuco9En&3DDa`K}9x>ckFFVMjKkg*&hjm`E5w+>c#7%R9JjR z2S+4c6hpsNm)lM^9-t8r6TpDjqS2Cd0yi{TL^o>v0vn2oZ`H3(aCqNx3-BX(y* z2RQop%`-Y$A5Dg%wQM=>3M^YVb7oJqtot?lZ;Gy;_>Pge(P%4B0=YfAmeNo=E2ItZ zg6)aU<+>r<4m&*3sp9TEwWf+wv*%!{81ZmQAjy2V=pmW+Fe0c?F5G)bAN-T?Ub7Oe zt!c;6wsgl)xDOU{-6hzBQk0RoCoxBPck)T}``LZ41Mh8cC?Y$NJgRAV>Idbw-g(hQiFo* z!PgJqy9xb!9k>U|T0r?l4x=j}(*XRJAZ0Kz(tlP~5HqW=Ic6h-^vH}Z;S%mglRG%} z0R?gKkO|PH`_V_!9_CXMw%=4nhSEd}rwQI{MaE+zPHLOND`Y=nGu1}K6a2=GR zZ2UqAD~I!%Tp~j*$n{ia)@7dr$yOV^O|+sZ7n_Vjs_28iV}pr0LK#9%z=V_~H8R!7le>|{&JO-^MX`_Mo zHxQNO)%VVA9ZzU68uS}m6`=F!R+gIayFcqur-!shn;wID1oTMjQT(y;<2E1n_;^##UOkU|GWL^;z07*8>J`(g zxYzUELwe8ZeY5wo-W7d*>BII7>$|Go>VCWWJ?>}dKeYdh{(Jf#>HmCCw?W?walkHy z@k5e_WDLm~a%@E9~*tbz;E8@QKGJ>L%WtB%jn` zQjbY}CKXKjcG9!Sg2`5sKbYKca?i=$lcOhRO&Ky}$`t!4OQsx|YBsg=)ay3!Hd!{u zY|h%;ws|(K-n2&3dQP*Q<~Gf5+VW|8rsYrjX4+F*sqF{0?QFZ*_Ocyq>utNuHpcdp zZGr7Q+h1(i>C)*ROi!DBb;jx$PiKbD%%AyuR-ajwcAoYwv)jx*IQ!U~C3CjTIXKtT zp`*jod1>?A=BLfipZ~zo#__V#5T|TsCl_~@O0fAQ(&GstJSPq@!EpJbnWpKpAg`c(P~e64(k_}cmg`>yld=X=mM z-}h_Z3O|>CIsyFxD+F?3UjZZRF9;S600shs1Wv-if_UK&fs@&1f&pgh1@UGZfQ`T= zLAcpw!Ix%R1mXOh?O(fdKJMIuJLluhk+?Grcc$UaG~D?)?!1RPKj-i4iaW#b&M>?) z4DWQuo%?X7JMQd*J9pvEUAS`>?hM17*KucezP`wOPFB9~_Gly3{6pRE$1Cy#t1(Sg(_&gQIX#hAwU062{I9KrD@kPYMj$AA;SN&I#SI1T84vv~J8oX^McJdOo8Ucm7p-g^nh%Q#-a z@hXnjaJ-J=4IIA$?f^x=UEm(hKLCn>QlK0(;_&<`pc*|x0B#UgKLm%A3C(e=gQEyX z34W^!$bfq2NpipvXaqFJITfG=G(bzB4bTo~4?q%_4XREAca@=cm4Uga00b_kIKKJvN(+qdktZfjNK!-~zY-?m!4e zgfLtaf#V~f4CQRaw{jQsB%>VvcO=}OcuNS*5KaZ`01t5Y>k<#+;|p0k3njS@85aq; zRtdRQDHsKe2F3zY02{y-2*-6RfmJ{Ruo_qcL;?x;JrURkBmv35ejo)%1=4_YAOko6 z90863*+33(3^)Ot#k0=gn2+Om91C!~fa4|L3UCd$0ek`60=@$707bxE;6CsWC;=V; z<<*gpLzR$0m5@J`!umi1pdrv0=mdFLe9|scO5dO(hT=Ou2e#;d98t=a7fbArGH}@5&(aoNIDnR_Ju0QW7?p-s>(FvK zw44qtr$fu>FftWkWGX@n>M$}Dp%rx)or=(sI*d?7m^T#(W&w79Jun-1+h`TZ_r$*% zv2+9*4Lr+b!dGZT3?6O*P-=wXnh@8Ux(J$VZ+gb}R>BU+JZMAMl@G##V{9no|c z(TXsl6=6gx0(a@aT{>`=4&0@~h*pFVtq3Dp5k|BkjA%s|(TXsl6=6gx0{7`KpDY6h z=3`D-3NF-v3w6Rd_-!7J&VUQxith^mFJK|Q`vU&JB49BP3M>V}fM3wx2k~>zH;s}y zaIX&Bs{{AyFiIAgMoHbDMoGLM9IXRK>s}ivi!f3afy;FmDT~a)fmQe%1w;co@qI6j z2>|5@%Jsj2n!gFwgMaV87^`}qNAv`SL)wo7MggONu>eMN@NOA+w-CHr2Hq_M@0Njg z3&Fc(;Mp?pY$bTM3_N=uQt3XV(tSv!`;bcaA(ie!D&7Cf@h<_-N(A-+NkB5NA4maG zfixf;$N&xihw-i>I35MEfgIo%Z~{1q-%bIi0UeNwvYi3Wq73Kodp?fmaV)^`0*-Xd zy@cas9IxPb6~}8h()Gv<9KQf=0bc=kfFj^7a1X!V$C0jA9^y#XEG0OW;`j(h4)3l4 zs=-rq4I_kPGsDpw$2vHQaFpP;x_}I*kM9kDhCpMWInJp7HJ|}n0&M`ygu$<6;MYPE zZyDD&vFsz*~jjtwQitA$Y3{ymcSau@JoV>iTCM&N%|kfD3+e1Kfc?+!G8e z!TDu4u0owW!8H}{#5I&#D5p>^3CBGvfmJ{Ruo_qcL;`C;t!==YR*LV-6>sB+vv`lO z!Z*9R@`0agKkG2|ZvA4}fi~o}HxmZ`80chW# z{et$1cUhks=c9BDUMdU#-giEl1O6&}!CzhQ`K4siLNaL~nY55hT1X}>BvT5K@WqUm^If5d2pN{woCk6@vc?!GDE+NrePFClS~OBmv35 zejo)%1=4_YAOko69LDpG;CK|s26BL7zzN_aeme!626Vt#;2h59<9Hs&0vs>kXp}}; zlQhzrq>&cVNDFDCg*4Kdq>h`r_yh1mN=`90P$Md=3T{<8vsm6raOzT!tg%I^(EYBN+>8^(!qTqZX1;3(2U3 zWGsYaEJWYZzCki-AsMxhjM~>EV<9ACAta*~l9Bc^Ek@jYjJWw2aSP3M+XuQ+-QRHN;kH2!w+(u@ZP3GoK@WEVdblv?;if1kB z@Mt;svmE?c4*o0$f0lzk%fX-J;6(%Y&;TAZU^FbpNLY?hupA>`Ie4zzG`}wg&y|Dc z%E5Ex7}3fxnw4WDE5}^i0J@fguH~R>Ip}FH&BMzcZV6{uGQ>Q#X{RiI84s8a>%RDn8GpiUL2Qw8c&fjU*7P8FzA1?p6RI#r-f6{u4M z>QsR`RiI8(=2Ll3Wqk$eRDn8GpiUL2Qw91@1?p0Px>TSp6{t%E>QaHaR0vB2O@!YG znt+Gs8lwXBszALeP%kQjE5H*Ks8fZY14^w&i|A2uJtUGIrPo6W=}}TWN~%Xm^(d(x zCDo&(dX!X;lIl@XJxZ!aN%bhH9;MTxbb6FdkJ9NuaXl!mM=A9vr5>f!qm+8gH}sfm z=rPaGV~(Lmsr4we9;Mc!lzNm>k5cMEc|A(0M=AA!wkYKjl<)~kSB6$7fZmivIW= zczRE!8C_zhj!FC(yA9JWvH1R)Kz1pj#FCR~7nK75Y~d`d1bDR~5Ln z3UsRi-Ks#hD$uP8bgKg0szA3Y(5(t|s{-AsK({K;tqOFj0^O=Ww<^%B3UsRi-Ks#Z zD$uJ6^r`~Asz9GA(5DLYsRA9Uz!O!VLlx*y1v*rL234RzmEaRos~fc*Q&9fDZt3^a zXuR6ef7W8Wrolj||596lRy|{C)t6cb+N!T<9|SEye-`v-L4Ou>WEa=Okq%7#mg1#(DRRsF7 zpf3yhvM3D;+OmQcC`B1cLDzC+C`B1cQHD~Kp%i5(MHxy#*Hv$p0GDw73UCd$0ek^` z1>6COfV=4NwR%5FP=*qenRC=~%J*$!zkb=mf0w@M-)P-`)sljSCcE7fjNMZ( zc2B|B-5z7N4aV*P!WEcxtOMdP+J7c!fpL63#_{{ z#en-wmNI^RW}ICctzCborHfj*{;y>3XC3_Srdiu}=CfIt?@^0w4WIp!JofITs$C+g zEBPl&rNWx?-L1N?-eSG}KeMP(YpPH{?V5l7Ut{0;-?g$fMBS-v_sy1%NKhWu3f_8w zb=ey&7qm|Q_mo#{*gG%-pmeEe(>GH$9F$)PtO6nc%-NuocxgE=hlREY#?)45fzCMA zv;^iCZ?z-UaM*7=hrRlL2ip4Y*R4<;3LU5ZNnHumlTaPWCEyBh4Y&ckNe^-#=N|$k zz$2ix&O-?OggHPZiU`MlrR(@F)NNp%^3tOPdY1nRy+#Mj+23C~@h+N)ztT#41+4+}zo&tCyKds&{pHn_ZSAN1XMXAY-t+HwwH4RQy)Qu)ylxx*i&fRXoOja_XF(fq z=1=Rwzgji?ou$4DX;Et(_%BP`=6^Ex`bTFt?_DBZLjIF;u6HkyX(srOmq>}x@ttRZ z|JDrfqkl|V{%`1UnfIX+EG)lMpGLG^@&A}+HGYUxPyEk}GVe>b_tky>=V~m;hJ<6M^Xh2cZIJ3Um=T zn1upMfz`kh;78n7v+nu#*RoW9{Vra^wA{64SFc)_-u{bm9sc&;-~LN|6V2bew!_N# zjkNvWyi5MxC9ILOX1pa7zVV3F0cX|JM9}n&GaKsL3jb9hT~!(93@`jqUwAf5z*GK( z@BRNL)-(-h@a`V7@PGwf9>YfSy0_}%_x4t$o~r+yw!Hr=P2_L2Z&I73$ySLK;;Z&Z zYJ+ScXalJMk9K%Km%`Je6h3gJ@Bz*c^r`+{(6{<)K|k>Jfa+V&kX`_fUqD-yqAhb^ z)yx5Jm-3#+;{{@@!b{PfrSLxf-fR}W+v77L4&Z@YYUTjA0q#IZbq2hTzc-7(u?+7K zLDsg1jAbBW8OT@$GM4$9^l7za*Q=||zeiv9_UG5g|2NCV+Ip|r`mVE(H~GB0f7OTj zUG-jXFAtUSMDX|6mH&%u%EC_|Ro}<1Y@|a=(@Og7cJ&n4v}_a>H%5=W-53Aw@WVd`pYHR(1>h2J1-J&>0N&r-{Cvo5pwh0{b>G^J~Z?GasH-pAT_*J z!)LGY6(5UHI}U^LO>JKJ2jVUMtN2BZxm{1Jqd&kpx+ms%Ju%1Yi8)?R%<+0+9o-J= z=yq5`x5FB`9oEq8u!e4j^>e#7*zV|PS!2!n=j?cYWyAY-e4T6TchtZ6bsOI6e$4M{ zzk8dX@_)IHvWZjwyZn>iJXfgyr@2DSc>XreLppx{XU5o?IJduZZ2eD-tN%+eYX4O- zlUkDho-y{H^ieghoo7NIq}~{U<^md#@J~iLAksk4fRBrXcd5_`ps}%D&}-26Sbrb@ zpBLd62m}MhnAtMKMwHRGSwVeXKL!cB^h2T$?#f9hSy3myjGGC!&QhFu0q6x7a}ga5OLwuFNDUqBx6;djQEyh#GDi& z-h@WK6$*#q`xqR@-|*U-Gs{G~_JdBWBD%JF4e=Qy!An=~@a8lkecILG_+Bc|~e+icpIX&7M*w z=#S$7pte?|wl`25eyh=p6!34Z$?jqF3L1)YR6_z!TeN7U5MJYN^bV@g?TTOU0FBV0 z++)fc0KF59wfZM0L9?^`6*cOD8(w;v)vig6uM<3~5Ir*#Jn}B_;jhPfH$u(c8ZV7@ zE#u>e>6(YGUl8xgM=v?@^eF^=uJaK^G!9mSzMw@to8a@OuMuf#TDZf~p)%`H=kI+UUgrKm$G>QIV0 z&>SzND1Rx+Ps>}1^3urif0f^WmW}32`BRw$4PKENkPf_$pcQJ^3ZFaUSgZe_X0K+| zk%9Kcm`eEU@sjKfoWx5k#Ka-{lNYWEK;QfK#vM7RWX$R?56`0`S51rf;`6JmQpmT$ zUbI9a-YZ0$UsCrz z>G38#Mj<`QtH&s$2M6gf%IYaSFv99lZato=$B3gxne}+89#7QcNqRg*FR;Q>%7k+P zT5BpzXw4VkJB^NgIcAr>7_)0AfhZn2UgN1{X3!$><)joz0BHFd{fVB4+kS#RWC-N#gg$ z_Z5CKb9e6CnR8E@nR9050w=}V)U`?e?3ag=DwTwo{&7zsg$LWo63Kp2j| zDVBt{=U7;Rz$vs6+@OKyO*sD^kG@&on>my&ha^|QinRX33S*kmNF9+@L>P_UemcTz za60yY(#4?hCX7WgFjm=$bQ{8UgdGSwk+&P^9;AB__Tf4c>A_e1>0w-F;rb{-HbM?U z?yJQNCm^s*2&jjl9<~!<*Q>?E2$1BXnd4 zaNB0UU<%9>QjD*FokGAO;G>#o zHv^^lzRV2pd>(i{4?LeQ-g7#}L9M4tHFC@vfY5o zQ$Wafs`K}mAfz#0OAr2D8cu}-(ape42ErDEt@w>y`;g2+@OM6-y+Xf2*oCkgzj0z4 zAkL>au?i{E-up= zDJ#ZJ#JCurX=P8#6@tG|^8wUs417EmxY&&pIiS#Eyys(3rVvt%5?Vgk!}&n)8s{@! z8oY)#cnp{{xGdz);oUgAIIRWu3yDnJD?olG@{M%)!0KaQv=G>P3|bcgYlXz52o~%{ z7AEIXnkZpFT`)&(+i}*TXyKWbn}&@Bi=8w13WZZWz~Qz(ziibb~HP#r0SOoXbGQ zBcvffBVaXZ2FBz3%ng3t20s&HA~lC@!G3e>uFiswG7Gz^v#`_io#(7VCV3x!1=?Dp zJ)k8pR?om#Jp;S2v)DLY_BYRnVW zm=UQlBT{1)q{jSC&8{L8qRii$L)8J)kA&C$ub%$;z9+xlg;f99$*%s|y@>BR*|p>h z@cq~3=v$$%o)MTWW{HCI6kn%&P&b!yJecXKX3HtXt>-$4!{EuH=K5p*e`za!@ z4n&1@AcL_EWH8o&48}T;!B__}80$b(SO=oQehL-Vf~c?-M1{2=Dy#)jVLycm>p@h1 zX=lU#Oh5mr)j#v+{oRq&yUug`biVk9K41L5-?4%72Qc5rz#3e>mw@jhSoZ1^>;?zm z7d`;XZFBs$MQDf69-#w5M}+S1#s1y%ssGtC#5Q8i^I=!aemd>?(`nbbZ$kW2r(J(s zC*SdL!XK>{b-*~m0pkP*j1wF%PH@0D!2#n02aFROFivoQHAHVO0d&p#on-$>Q+zrX z|Nr{A_#c<1`2Vy1kgsRN>B{iEYfdv>1#7jXSTDfWF}!Q-;c!?0`FA#SYb&_dUbn7- z&ki)JPg0S-?L_W(S^VH{gVmm&*`Hr*9o}13uZXo;{A47)?ylr2mS8~sSD`Pyc0scW z;qT$&%@qc3<`nnus{y~(w=cZvZ};qLy!Y@^3ZJp~C48qDu%9xm50bA6;Qm^yDM5{e z;y(PUTA%QA+~Ifi+T(s;;lt$Kc<#~XZ3{1cktcBzo;MbLtrC92Vm>?Wf71A-;eUe{ z^f5gCdO6%92S4azcy+n&ki*9Pif{L56|W0V{lQ#WH#dDKR#4SLSzm-dpRc`mi{<-a z$yHbHw0sZx;3MZh+KcleD8l!7T|vtCdf_`NZ|uv_eIJGQ0UvmO4rKG+^*t1GQgXey z_6*}cJfry2YzV71ppW@i>pp$^Cl)JIK8A1qd|YE3O7`M(2Amj6YGCzIE#i!G%w6!6 zIyX`WUqet5cjAHBk{79q{Ruv#9`PmhNdwXl-$@-y#*y(PjZ7dD$s{tFOu-jWr;+Jo z2AN4_;rqmM$me7(nMda1y9x`*BC?n)Axp_Jq9%t(7WsyJN3ux{$s@Pdm_# zv=i-2185-aLc7v#v^(uVd(vLCH*3cHSv%IAbzmJ?C)SzuVtv?WtS{@&2Cxt|kPTv? zY%mLFkt~W0Ww9)tC9>gcBuiq+EQO6_Q`j^%oy}k~*(^4jea_~xdF%kY%J>?Tx;Xd6 zfRw^XK*cGb!9K@)NxV10+19OKK ztS1}DMzWpkAUnxdWEa^(_LGA}^f?L&{RcG41(lA0PA5RAGvs?vs(_p?q7}Z`3L4!9 zm3{@C9)VI%KqCq&$v`IqP|66jG6A(pfnMgIm?dad8dS3e-E2TPyJEC+rnRXHbp`D> z)%-v;PP5j6R-N9UQE%Fp_M^cxgbt!%bTA!4BWM&IN@HmpO`wT%7#&VW&`~srrqEP6 zmQJ7(=_ERtPN7rjbUK61q_gPfbT0jZE~ZQAGODJ_=?c1%uBGX8J>5Vz(am%V-A1?5 z9dsAnM>FYudVn6Jhv;GY9nGfyp*i#zJx)*1v-Eq4RcQ1a{efPfm+2LHjs8Th(+5R7 z#Q7(Xbz$AKJk$?d6vTp=s)&y?JQOE*Xau-u6dMg58pp=7G;k8QHNDPe@ae|0P zMe(OnMLbc&)1zWSBI)NMUMONUe}JwL@dgoZjpfkp5^<)8vtnZh;PR6dhUw&p@^RY%ls?t{444uQwqHDJNmJq$kC5YM2>ze6FK^^smRffjYW=r ztZ7|8#%Jcyx_-=ggVXzUY$mStW6n2JaE~rF7diT|fymLtmf(b%=w*CJ6KJ(gqzBG4 z3nkHH7)eH-G846-Myo7vBhoVXlDv32RGUuMrrWjYISqU$B+8jj)}}d{eDiDC-`MTI z>oI?-O|5BCO0)e3d4L<+40>j2&ku*hzMZon~j42lHfJtS<9rKCB+|W%XGD zls<>jwU{%j&0Lr(b7OUw#FWe(Qc)JtV+*b?2kEE)DRMyReQz)Qj=Gnkj?$?ctO>9kfSzI?a6AIN_jL5kE6@Y%BnP1B zPowX>2`&CRG`1D`(yG*r`at`(Lx0#Gnl%nObRwNi7eYU#)2(z5bYM2U1MHRogx0z% zR;%dBqv$F}bH!@u$^l>6a=6l#!@$?pUBgd)53>5EqvliTOaat<+SkOt`O;=A!JFe>Oq`hvQVI6p86BeUrkeJv$x z$R;vIv|@u?-kP2Ecbq0=wKe(7Rr}jZ``cUlJ5T%jIR6c3L_J7FJxE18fJW4VRMdl1 z)Pq#igH+Um^f;g|19@=5Xww}d%BG|ZBwhoVNKu0(_131xc`8~Isph_@S@Zit)cA2? z_LGEvlJNhX68?#^KXLXa&i*ti!-x|-zjo9pu5_cVPopx;7)diq`!|frn4vLoViwGj zS+UZr46|lsnGLgLcB~vL&nhr`(D6OzO@@XzSLH4liP2{KTViS`$NbG0b7@0j#>|km zW9EoE5@v7@{;e1EC9dvbwh~T8iNFjB$qd$zHDZlf6XwU73Oh}6)`GQUtypW;hP5qb z`3n%Xo360lbZ0$SPgnwb7qjCGfF&oS$d(fZtKbmW1tWxIFdDYO7+446U>{6?b!QlC zggX095*s6Ig{eiBo(XIso5Uu=;xo0F^>B{XemI|fA#6a4*kY|6NDWKS3fO{HvDL5# zeJLzL=~|o6CSeuY0=v*QVHw&9+t4nyo9$tH**;+<+7FB5L3W58W?AeAY(;n3Ep~_f z%x(i?w_yc(7tWbH{SyZN41@A4vI<@*tNbVaNWb`H<^`{X#3eiyx`{5NsITV8aN349CHWk&JonRCpV{(9U#sl6|mW ze@F6Q&o~EP!cEwwpTcV(hyB?Kwq^%-2b`%p^@Ts61#BAuv^;ulbs4Na zwNbYWwjUSh8U_oHE8-K(4e?1<2k|KeD-kS0O2lVi>0y|WTjL2&SZjC8i);`Kn=tePyhyE2PhaR2PhaR4=5O^ z04Nx-2NVn|+hEDUzcpYXfW;k_UHpbEqXB;BpnmaNdtdjPq9pD^^IG6eS@E_bg-&-7 z_N=0|o%qA%Md6i_!vgIHJGPUsK09MIaC;JrodLtaMJeE- zN$_6H((=(dcty6rAF`Wd!XNSt`Bv+#;+~Kb@KtGiAR2GgW%#SE!dG<%-YV_~(fUB( zt9l{)9^BW#{Ty~wK`Vp%s?qA;K#h;XoqAGlSlQ}C$I$qw+|^8b!x0Eq>S!m;lq4xthMmlVb8lUq&dv3kI^Go}}2 zg|5!pa%cHjb!zEVQmQNq!Bs6|lrgK8`^(S0G%cV-vnS^xTA3?XN#;esQVvtf6lE#N z#8B2%ZfMPV`6+EAYyQL7+N`@OHck~2sc04ytx}ei%J6I>>r(#lF$01k6T-s7RZ2_L zhFnu?!!DsgiE%2Wqh!xBN?DiHWGI@cV&cLEh6M-3g+)awD@l(0w#?dAd%H_m1X>A- zhz^S!q-f?RRkSmgJe2N|rzHM**_kW(PY-twuX0^Z&5LqgypR?I~Pw2z&&$GV{a9!W3;iH{rKI>=CmOZaCq~fY4D;KV*@EyB6rd_~Q zi~fa89FlgMUu^vC_Dd7K?l)qv(oMD?#d>W^MV>O&yt`}eFi(%UWfqj#eKE97`t_@a zCQo%fJf-r4fnSg9(LE}De}nYu6F$qfvT3kv-0dz0O(U~j9%*x7w^8Z&PNU8@s&S&? zu)<}^qxY{nl|P@gt!1-?75b?w&b-$5(cMw^N3S11XFO_O>f&*yZfob}Zkm{|>Fyr$ zU$3<tTJpB!kN`tKh~K5<;LKI!B|9B|%dE}1 z1p0x|d|Z{TULN}Nhg8T?Qb?O2&u;fP zvgcUekO!Fm(y~S!;*)Xh=$sAr<8^8G136Sm#FIiI{d)^%Qoswdag z=rCf_S3!QiI_KRuTG02x-rD0E?O3v-;Bxm@ncI&fJvwH#^xpiJwNKR#u($WA@uYDZ z$nYyEmEF+FvH7jq_fF^6npn==z@+cOgoz~}{xFj9rZ`GI`r_FAJ;kw(VGDV zT!vLKe=3q&JJoD;;Z*2|apn96#($QSwQE^$^;Zp>Egn_c$EsS_*n;>PVJ|xDR`fY# z`b=%_{BzfCm4ostp1-!wW5~C^Tv+L?nr=VGY-eD_KBESD^)r~<{AEIiOM%HNQWQ%z zP3*J6_{mSwv%5~-?V6hAUHYa{*4eJNQX20FSm}~ZM?6@OKF#apvg@A>Hdxkh$kqMx z4!q3i|E$RkBenmXl+KZ>ogeI+Y*q8;89x}R(>g62*~Zvha?G|`I^@Z%9-HLrnk?8_ z^X3fO4GpdaMzuZVwPZ(Bh~u_-E_)l^7=9;W#53FL)i-YbWkKLqOs4Ga*!FtQy;Vc=Npdr*3CTmWBAG3veESzg(u|9R5J?P{B@h0qlH5gdmTIc2 ztE;9ty-OJ5Vq;x{gM|3m@`tK%N&5o{G(7NL66jfipP_*%nJ_H+T!#Rv=>6mHqp4EX zi{0hteLagD{yI1Jn}-(pub#C(;4wfdedJM`{pr~k`z=;jZyD7*vs3Qa8_9NKzpOE5 zkadgSvUh#qC(BvXxwpZTF>9lKweMtK)$Kvpv~Z^IH-VSp`m$QlL`KiHSFHDY2z8AmOWKqGh(p{@B z406vL!7@gsWv)0p#mQyZ39p2Gvt#=_+kL&AjcJvfYbQ^8y0va%)4;O-h^pVL9{9_= zW6^gS-FRr8^uvi!D-(u>9bDY8rQ}t4%Zkkv1~jN$Fg@MbXk>o5ZGA>wS+Y9nWrIl@ zrBwNTgqm6v;5Tb|uX@8S9c!%`=;PQf{!j^&N&Vha8oebiE{&zE-I|35#l|W;6rJJ+ zgogzyI>m%V1jP(5-f1iR;^RW2V#4Bvi{9B&@>bS;-8=K2Ub@~nW&3+VpdAO4vbKG# z4`SkD;}jiKafwkeLzMNUdKwVjyQpF!Vii#X74fkuMNpiA^JOeLnZ(4z;=M#nbdaKE za4pGG>4ssI7-du|s$KV@&7wju2!M{^;|+I7@_e8EKXc#ReM!HJz4N1Y$KPaDKAFZR zr;c9oeD;{~W`~B{Z5lB3;wgt#*41tw3?A{Uv+C}t^!ktPeZIK%Zx05Zu6pjtqh*oh z>($+Nd}V@hMW-57!+mDexH7KwCi}_DUsOwVv65~MU0?HNVw=wQ3v-{|>vB5kz|{!T z83p+v(}K6UcBt`qyv56itF;zf8Q*f0YucEb-DhkZbjZVfmbK#dbydnPj5su|Z9=I0 z%utulDnFlSUj0QS*IBi1(5~$tM0nLqy;Lxy&(5<2=_xPz<&NDGyyUpk@9XL}4cj{1 zcgMc%OD+3m-F8WxQu9Ti@w^K=sN%%4)#Yv+xZ63}`|?hMRspS|d~P4U89vf~oVNc@ zrD~|<#c%D){kbMk$Qw$WZl(ICwW4WHn^Pk@8P_MezL`;5hd-j8q~x_!lH(BxDoE{= zCWsAMzcC_+4i54VDu@p!F#@oa%IaE?!KkSjp~z%!j0H*?nrMJ)is1`}2ZV}oB8CS} zl44aw$w65`DyQL{(t>3?n(4*}o*rWC>S!Uim6tVs)cNLbFB>)tsXHq4SnpwLFYP|! zEu|!LV5-Q6ONq;aR|S1=aZI&}-gC{-s-TwVPM_?NvYb8pODF_BirM6Ax2w&_uFpfd z7B*S+b8Eku3l>k>x7p1xdsvlc4&^P!+zH+1UNF(;;t!2aP1@dgOX|G)t9tGE*{%Ai zi=${Hj0&p^XP0he(&U*#x#5GVRQ+-9naiCv**~(l@S|HwZt}|TfR3}`yH4KY^x))e zzxauDg1e5c*rnIpp4kPSDF^!XeLP}^lxk20Bbnz~6-HM*&Cfe&=zXm6z0n?5Tdpqw zvGkE@5I#<-i;0U@kz$m*F=?q=q!`cWDMtV1x_OhawP90LOn6wNF2krOqpIY@`Ovhi zeT%@>iWX6kaj}Z{$Ph(f)WEpJpcs{+WyFA1%0^NHUaFL}mw(uxu(+UbMQeYBPS?3A z+J^bmz+CsygWH+p zs>eswT97yPR^l<$kol4KcicMWFnwt7Wy>1}+}n5FYHE`g5L3plzPIz#o|7idJ@-=# zJCT1b?#ndRBfZe9;hKvXL(gLag^K%r9J0hdt=+G$W>y=Ol>9KyPBTPG zrDLGAMv57(qqUrmb&5?8jFP1$Tx=`J>w#omY7ezCt&Vo=(=4!=hb!+ST;EVYMYn_& z`e)Q1pLds-&B&y9oi>BQ3X=xC=X|TN?kS0-dA#v9L196~yUwDwapkvyG5)T^VW}bq zeF4gCfN-5nmh?w0ZL zFB>Xy&((Qo_*v)sy%$`$kv_-sVS4XC_gnkp8+m=X>U^c)<(eK&y7YL>c+XD$Z0h9wY+uHQVs53K3@Icn5yyRjb}|*9Ggtd$b=`{oDF=cg~)Eja+ki z>N#Tfp-Mll`+Y*Y*p-3a+fScZ8JZ(4T$4EX_B>gg-fi7HaxRxzyK%i&$5#E6sd6t2 z?39dBDdp%#s`Z%F8``{>xl5h058bkf*5Xx@Dve|yKWt`F`63gPiA-sx$2M}wLGM>7 zVL*G$R5oBsouSP{t}G+BT0LjRy6tDi*Q^rPAu@Z_&e~ENy~oXz4J2Q6)nq4F)1qNR zizHoO^W;|wtj3GN?>Jq$yiBqcA5ad2p5;LpE%Xd!&}{OQgx-A2p6>&sIiO{w&^*GMo_rqV)W-QF2w5n5S8g3i68l(s@zKb;#kG5Pt&F@U#IzP0Z`(XaM8HX~xn@t|&>)3pFoBCsiI2W|3Za1mb zo))&gX&HyQ4-L#YA9TsN(W(JuDpy*hXzAZ5_i?Uz;=E~JHVauZ@yoIIYkzNIa+P>K zwXR@kaL}l<&0@cdT;t=)R=Ya}hJ5QVz5b{Z10pI`3A;V!VEdmOlbc#B9oeY9YGL-u axGu^Di+^-cwl!H^xyk;UG0O%)dj20v|70ov literal 0 HcmV?d00001 diff --git a/SantanderTest/SantanderTest/Fonts/DINPro-Light.otf b/SantanderTest/SantanderTest/Fonts/DINPro-Light.otf new file mode 100644 index 0000000000000000000000000000000000000000..8a7f085abd28e11f37fba052fd493514a3be21ad GIT binary patch literal 88240 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 Mo`yNvtp)A*A0xKva{vGU literal 0 HcmV?d00001 diff --git a/SantanderTest/SantanderTest/Fonts/DINPro-Medium.otf b/SantanderTest/SantanderTest/Fonts/DINPro-Medium.otf new file mode 100644 index 0000000000000000000000000000000000000000..b4608d06d170998c463a5451d552b533149dabef GIT binary patch literal 89060 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 literal 0 HcmV?d00001 diff --git a/SantanderTest/SantanderTest/Info.plist b/SantanderTest/SantanderTest/Info.plist new file mode 100644 index 00000000..3f47b7d3 --- /dev/null +++ b/SantanderTest/SantanderTest/Info.plist @@ -0,0 +1,65 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarTintParameters + + UINavigationBar + + Style + UIBarStyleDefault + Translucent + + + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIAppFonts + + DINEngschriftStd.otf + DINMittelschriftStd.otf + DINNeuzeitGroteskStd-BdCond.otf + DINNeuzeitGroteskStd-Light.otf + DINPro-Black.otf + DINPro-Bold.otf + DINPro-Light.otf + DINPro-Medium.otf + DINPro-Regular.otf + + + diff --git a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift new file mode 100644 index 00000000..7799aae2 --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift @@ -0,0 +1,23 @@ +// +// InvestmentViewController.swift +// SantanderTest +// +// Created by Filipe Oliveira on 27/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class InvestmentViewController: UIViewController +{ + override func viewDidLoad() + { + super.viewDidLoad() + + // Remove linha navigationBar + self.navigationController?.navigationBar.backIndicatorImage = .init() + self.navigationController?.navigationBar.isTranslucent = false + self.navigationController?.navigationBar.shadowImage = .init() + } +} + diff --git a/SantanderTest/SantanderTest/Utils/UIImageExtension.swift b/SantanderTest/SantanderTest/Utils/UIImageExtension.swift new file mode 100644 index 00000000..5890550c --- /dev/null +++ b/SantanderTest/SantanderTest/Utils/UIImageExtension.swift @@ -0,0 +1,26 @@ +// +// UIImageExtension.swift +// SantanderTest +// +// Created by Filipe Oliveira on 28/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +extension UIImage +{ + class func imageWith(color: UIColor, size: CGSize) -> UIImage + { + let rect: CGRect = .init(origin: .zero, size: size) + + UIGraphicsBeginImageContextWithOptions(size, false, 0) + color.setFill() + UIRectFill(rect) + + let image: UIImage = UIGraphicsGetImageFromCurrentImageContext() ?? .init() + UIGraphicsEndImageContext() + + return image + } +} diff --git a/SantanderTest/SantanderTestTests/Info.plist b/SantanderTest/SantanderTestTests/Info.plist new file mode 100644 index 00000000..6c40a6cd --- /dev/null +++ b/SantanderTest/SantanderTestTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/SantanderTest/SantanderTestTests/SantanderTestTests.swift b/SantanderTest/SantanderTestTests/SantanderTestTests.swift new file mode 100644 index 00000000..fd81e835 --- /dev/null +++ b/SantanderTest/SantanderTestTests/SantanderTestTests.swift @@ -0,0 +1,34 @@ +// +// SantanderTestTests.swift +// SantanderTestTests +// +// Created by Filipe Oliveira on 27/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import XCTest +@testable import SantanderTest + +class SantanderTestTests: XCTestCase { + + override func setUp() { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/SantanderTest/SantanderTestUITests/Info.plist b/SantanderTest/SantanderTestUITests/Info.plist new file mode 100644 index 00000000..6c40a6cd --- /dev/null +++ b/SantanderTest/SantanderTestUITests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/SantanderTest/SantanderTestUITests/SantanderTestUITests.swift b/SantanderTest/SantanderTestUITests/SantanderTestUITests.swift new file mode 100644 index 00000000..9f034aa8 --- /dev/null +++ b/SantanderTest/SantanderTestUITests/SantanderTestUITests.swift @@ -0,0 +1,34 @@ +// +// SantanderTestUITests.swift +// SantanderTestUITests +// +// Created by Filipe Oliveira on 27/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import XCTest + +class SantanderTestUITests: XCTestCase { + + override func setUp() { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. + XCUIApplication().launch() + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() { + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + +} From 4494e9fa7a4a5ec79afc567a2eba292f58c41d07 Mon Sep 17 00:00:00 2001 From: Filipe Oliveira Date: Sat, 29 Jun 2019 09:38:26 -0400 Subject: [PATCH 3/6] Criada Estrutura de Rest: SantanderApi - Response dos Endpoints mapeados e prontos para serem utilizados --- .../SantanderTest.xcodeproj/project.pbxproj | 12 ++ .../ContactFlow/ContactViewController.swift | 20 +++ .../ContactFlow/Model/ContactScreen.swift | 71 ++++++++ .../CustomTabBarController.swift | 2 +- .../InvestmentViewController.swift | 20 +++ .../Model/InvestmentScreen.swift | 62 +++++++ .../SantanderTest/SantanderAPI.swift | 167 ++++++++++++++++++ .../Utils/UIImageExtension.swift | 8 +- 8 files changed, 356 insertions(+), 6 deletions(-) create mode 100644 SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift create mode 100644 SantanderTest/SantanderTest/SantanderAPI.swift diff --git a/SantanderTest/SantanderTest.xcodeproj/project.pbxproj b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj index 7afdc049..86637681 100644 --- a/SantanderTest/SantanderTest.xcodeproj/project.pbxproj +++ b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj @@ -7,6 +7,9 @@ objects = { /* Begin PBXBuildFile section */ + A08FFCFC22C6D0B50087F29A /* SantanderAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */; }; + A08FFCFE22C6DA3A0087F29A /* InvestmentScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFD22C6DA3A0087F29A /* InvestmentScreen.swift */; }; + A08FFD0022C78D5C0087F29A /* ContactScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFF22C78D5C0087F29A /* ContactScreen.swift */; }; A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4320F22C597D500E116EE /* AppDelegate.swift */; }; A0D4321222C597D500E116EE /* InvestmentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4321122C597D500E116EE /* InvestmentViewController.swift */; }; A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4321322C597D500E116EE /* ContactViewController.swift */; }; @@ -47,6 +50,9 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderAPI.swift; sourceTree = ""; }; + A08FFCFD22C6DA3A0087F29A /* InvestmentScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentScreen.swift; sourceTree = ""; }; + A08FFCFF22C78D5C0087F29A /* ContactScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactScreen.swift; sourceTree = ""; }; A0D4320C22C597D500E116EE /* SantanderTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SantanderTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; A0D4320F22C597D500E116EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; A0D4321122C597D500E116EE /* InvestmentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentViewController.swift; sourceTree = ""; }; @@ -133,6 +139,7 @@ A0D4321D22C597D700E116EE /* Info.plist */, A0D4323F22C59D0F00E116EE /* CustomTabBarController.swift */, A0D4324C22C6C33000E116EE /* Fonts */, + A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */, ); path = SantanderTest; sourceTree = ""; @@ -167,6 +174,7 @@ A0D4324422C6B17500E116EE /* Model */ = { isa = PBXGroup; children = ( + A08FFCFD22C6DA3A0087F29A /* InvestmentScreen.swift */, ); path = Model; sourceTree = ""; @@ -184,6 +192,7 @@ A0D4324622C6B23100E116EE /* Model */ = { isa = PBXGroup; children = ( + A08FFCFF22C78D5C0087F29A /* ContactScreen.swift */, ); path = Model; sourceTree = ""; @@ -352,10 +361,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A08FFCFE22C6DA3A0087F29A /* InvestmentScreen.swift in Sources */, A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */, A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */, A0D4324B22C6BC4800E116EE /* FinishContactViewController.swift in Sources */, + A08FFD0022C78D5C0087F29A /* ContactScreen.swift in Sources */, A0D4324022C59D0F00E116EE /* CustomTabBarController.swift in Sources */, + A08FFCFC22C6D0B50087F29A /* SantanderAPI.swift in Sources */, A0D4324922C6B28200E116EE /* UIImageExtension.swift in Sources */, A0D4321222C597D500E116EE /* InvestmentViewController.swift in Sources */, ); diff --git a/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift b/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift index 50729286..7456f3be 100644 --- a/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift +++ b/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift @@ -10,6 +10,14 @@ import UIKit class ContactViewController: UIViewController { + private var model: ContactScreen? + { + didSet + { + + } + } + override func viewDidLoad() { super.viewDidLoad() @@ -18,6 +26,18 @@ class ContactViewController: UIViewController self.navigationController?.navigationBar.backIndicatorImage = .init() self.navigationController?.navigationBar.isTranslucent = false self.navigationController?.navigationBar.shadowImage = .init() + + SantanderApiClient.request(operation: .contactForm) { (response: Result) in + + switch response + { + case .success(let result): + self.model = result + + case .failure(let error): + print(error) + } + } } } diff --git a/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift b/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift new file mode 100644 index 00000000..c6acb54f --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift @@ -0,0 +1,71 @@ +// +// ContactScreen.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import Foundation + +struct ContactScreen: Decodable +{ + enum UIType: UInt8, Decodable + { + case field = 1, text, image, checkbox, send + } + + enum UITypeField: UInt8, Decodable + { + case text = 1, telNumber, email + } + + struct Cells: Decodable + { + var id: UInt8? + var type: UIType? + var message: String? + var typefield: UITypeField? + var hidden: Bool? + var topSpacing: Float? + var show: UInt8? + var required: Bool? + + enum CodingKeys: String, CodingKey + { + case id, type, message, typefield, hidden, topSpacing, show, required + } + + init(from decoder: Decoder) throws + { + let container = try decoder.container(keyedBy: CodingKeys.self) + + id = try? container.decode(UInt8.self, forKey: .id) + type = try? container.decode(UIType.self, forKey: .type) + message = try? container.decode(String.self, forKey: .message) + + // conversão para tipo comum + if let value = try? container.decode(String.self, forKey: .typefield) + { + switch value.lowercased() + { + case "text": typefield = .text + case "telnumber": typefield = .telNumber + case "email": typefield = .email + default: typefield = nil + } + } + else + { + typefield = try? container.decode(UITypeField.self, forKey: .typefield) + } + + hidden = try? container.decode(Bool.self, forKey: .hidden) + topSpacing = try? container.decode(Float.self, forKey: .topSpacing) + show = try? container.decode(UInt8.self, forKey: .show) + required = try? container.decode(Bool.self, forKey: .required) + } + } + + var cells: [Cells]? +} diff --git a/SantanderTest/SantanderTest/CustomTabBarController.swift b/SantanderTest/SantanderTest/CustomTabBarController.swift index 7e00bb6c..1446501f 100644 --- a/SantanderTest/SantanderTest/CustomTabBarController.swift +++ b/SantanderTest/SantanderTest/CustomTabBarController.swift @@ -36,7 +36,7 @@ class CustomTabBarController: UITabBarController // Calculo para criar imagem do tamanho BarItem - var tabBarItemSize: CGSize = .init(width: tabBar.frame.width / CGFloat(self.tabBar.items?.count ?? 1), height: tabBar.frame.height + 5.0) + var tabBarItemSize: CGSize = .init(width: self.tabBar.frame.width / CGFloat(self.tabBar.items?.count ?? 1), height: self.tabBar.frame.height + 10.0) // Correção para layout com SafeArea if #available(iOS 11.0, *) diff --git a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift index 7799aae2..2b41a68b 100644 --- a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift +++ b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift @@ -10,6 +10,14 @@ import UIKit class InvestmentViewController: UIViewController { + private var model: InvestmentScreen? + { + didSet + { + + } + } + override func viewDidLoad() { super.viewDidLoad() @@ -18,6 +26,18 @@ class InvestmentViewController: UIViewController self.navigationController?.navigationBar.backIndicatorImage = .init() self.navigationController?.navigationBar.isTranslucent = false self.navigationController?.navigationBar.shadowImage = .init() + + SantanderApiClient.request(operation: .investiment) { (response: Result) in + + switch response + { + case .success(let result): + self.model = result + + case .failure(let error): + print(error) + } + } } } diff --git a/SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift b/SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift new file mode 100644 index 00000000..1cf1017b --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift @@ -0,0 +1,62 @@ +// +// InvestmentScreen.swift +// SantanderTest +// +// Created by Filipe Oliveira on 28/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import Foundation + +struct InvestmentScreen: Decodable +{ + struct Screen: Decodable + { + struct MoreInfo: Decodable + { + struct FundCDI: Decodable + { + var fund: Double? + var cdi: Double? + + // nome de variavel com caixa alta =P + enum CodingKeys: String, CodingKey + { + case fund + case cdi = "CDI" + } + } + + var month: FundCDI? + var year: FundCDI? + var months: FundCDI? + + // nome de variavel iniciando com numero =P + enum CodingKeys: String, CodingKey + { + case month + case year + case months = "12months" + } + } + + struct Info: Decodable + { + var name: String? + var data: String? + } + + var title: String? + var fundName: String? + var whatIs: String? + var definition: String? + var riskTitle: String? + var risk: UInt8? // range de valor baixo + var infoTitle: String? + var moreInfo: MoreInfo? + var info: [Info]? + var downInfo: [Info]? + } + + var screen: Screen? +} diff --git a/SantanderTest/SantanderTest/SantanderAPI.swift b/SantanderTest/SantanderTest/SantanderAPI.swift new file mode 100644 index 00000000..ee5129b3 --- /dev/null +++ b/SantanderTest/SantanderTest/SantanderAPI.swift @@ -0,0 +1,167 @@ +// +// SantanderAPI.swift +// SantanderTest +// +// Created by Filipe Oliveira on 28/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import Foundation + +enum SantanderApiHost: String +{ + case test = "https://floating-mountain-50292.herokuapp.com/" +} + +enum SantanderApiPath: RawRepresentable +{ + enum HTTPMethod: String + { + case get = "GET"//, post = "POST" + } + + case investiment + case contactForm + + typealias RawValue = (items: [URLQueryItem], path: String, method: HTTPMethod) + + init?(rawValue: RawValue) + { + return nil + } + + var rawValue: RawValue + { +// var items = [URLQueryItem]() + + switch self + { + + case .investiment: + + do + { + return ([], "fund.json", .get) + } + + case .contactForm: + + do + { + return ([], "cells.json", .get) + } + +// case .other(let id): +// +// do +// { +// items.append(URLQueryItem(name: "any", value: String(id))) +// +// return (items, "test.json", .post) +// } + } + } +} + +final class SantanderApiClient +{ + static let host: SantanderApiHost = .test + +// static private let headers = ["Content-Type": "application/json"] + + static private var dataTask: URLSessionDataTask? + + static func cancelRequest() + { + dataTask?.cancel() + } + + static func request(operation: SantanderApiPath, completion: @escaping (Result) -> ()) + { + func debug(objects: [Any?]) + { + print("\n##########################################") + + print("\n 🔴 BASE - " + SantanderApiClient.host.rawValue.uppercased()) + + if let operation = objects.first(where: {$0 is SantanderApiPath.RawValue}) as? SantanderApiPath.RawValue + { + if let r = objects.first(where: {$0 is HTTPURLResponse}) as? HTTPURLResponse + { + print("\t⚫️ " + String(format: "%@ - %@ | %@ ( %@ )", arguments: [operation.method.rawValue, operation.path, String(r.statusCode), HTTPURLResponse.localizedString(forStatusCode: r.statusCode).capitalized])) + } + else + { + print("\t⚫️ " + String(format: "%@ - %@", arguments: [operation.method.rawValue, operation.path])) + } + } + + if let items = objects.first(where: {$0 is [URLQueryItem]}) as? [URLQueryItem] + { + print("\n 💙 JSON_SEND: \(items)") + } + + if let data = objects.first(where: {$0 is Data}) as? Data, let receiveData = String(data: data, encoding: .utf8) + { + print("\n 💚 JSON_RECV: \(receiveData)") + } + + if let e = objects.first(where: {$0 is NSError}) as? NSError + { + print("\n ⚠️ " + e.localizedDescription) + } + + print("\n##########################################\n") + } + + if var uCp = URLComponents(string: host.rawValue + operation.rawValue.path) + { + uCp.queryItems = operation.rawValue.items + + if let url = uCp.url + { + var uRq = URLRequest(url: url) + +// uRq.allHTTPHeaderFields = headers + uRq.httpMethod = operation.rawValue.method.rawValue + +// if operation.rawValue.method == .post +// { +// uRq.httpBody +// } + + dataTask = URLSession.shared.dataTask(with: uRq) { (data, response, error) in + + debug(objects: [operation.rawValue, uCp.queryItems, data, response, error]) + + do + { + if let e = error as NSError? + { + completion(.failure(e)) + } + else + { + completion(.success(try JSONDecoder().decode(T.self, from: data ?? .init()))) + } + } + catch let e + { + completion(.failure(e as NSError)) + } + + } + + dataTask?.resume() + } + else + { + completion(.failure(.init(domain: "CUSTOM_ERROR", code: 0, userInfo: [NSLocalizedDescriptionKey: "URL Mal Formada!"]))) + } + } + else + { + completion(.failure(.init(domain: "CUSTOM_ERROR", code: 0, userInfo: [NSLocalizedDescriptionKey: "URL Mal Formada!"]))) + } + } +} diff --git a/SantanderTest/SantanderTest/Utils/UIImageExtension.swift b/SantanderTest/SantanderTest/Utils/UIImageExtension.swift index 5890550c..668a58df 100644 --- a/SantanderTest/SantanderTest/Utils/UIImageExtension.swift +++ b/SantanderTest/SantanderTest/Utils/UIImageExtension.swift @@ -10,15 +10,13 @@ import UIKit extension UIImage { - class func imageWith(color: UIColor, size: CGSize) -> UIImage + class func imageWith(color: UIColor, size: CGSize) -> UIImage? { - let rect: CGRect = .init(origin: .zero, size: size) - UIGraphicsBeginImageContextWithOptions(size, false, 0) color.setFill() - UIRectFill(rect) + UIRectFill(.init(origin: .zero, size: size)) - let image: UIImage = UIGraphicsGetImageFromCurrentImageContext() ?? .init() + let image: UIImage? = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return image From 7a01663985d4fec2f680ee84a4b2306bb7b52a57 Mon Sep 17 00:00:00 2001 From: Filipe Oliveira Date: Sun, 30 Jun 2019 09:20:53 -0400 Subject: [PATCH 4/6] Tela de Investimentos Finalizada MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A Tela faz uso de TableViewController no qual possui a ação de Pull Down Refresh. A ideia de utilizar TableView de Células Dinâmicas e com uso de Seções se deve ao fato de que na estrutura do JSON retornada a campos nos quais possuem Arrays individuais, então podemos utilizar do artifício de Seções de Tabela para conseguir exibir de forma concisa e ter o controle dos valores individualmente. Também foi tratado a falta dessas estruturas caso o JSON não as traga, então o funcionamento devera ser modular, ao fato de que os componentes estão encapsulados em Stacks para serem exibidos ou não se vieram de forma incorreta. Também foi adicionado utilidade ao Botão de Compartilhamento, no qual tem a função de capturar uma imagem da tela com as informações relevantes e assim compartilha-las . --- .../SantanderTest.xcodeproj/project.pbxproj | 40 +- .../checked_checkbox.imageset/Contents.json | 21 + .../checked_checkbox@2x.png | Bin 0 -> 597 bytes .../download.imageset/Contents.json | 21 + .../download.imageset/download@2x.png | Bin 0 -> 365 bytes .../expand_arrow.imageset/Contents.json | 21 + .../expand_arrow.imageset/expand_arrow@2x.png | Bin 0 -> 569 bytes .../unchecked_checkbox.imageset/Contents.json | 21 + .../unchecked_checkbox@2x.png | Bin 0 -> 1277 bytes .../SantanderTest/Base.lproj/Main.storyboard | 522 +++++++++++++++++- .../ContactFlow/Model/ContactScreen.swift | 18 +- .../InvestmentTableViewController.swift | 301 ++++++++++ .../InvestmentViewController.swift | 43 -- .../Model/InvestmentScreen.swift | 20 +- .../View/InvestimentButtonTableViewCell.swift | 38 ++ .../InvestmentDownInfoTableViewCell.swift | 43 ++ .../View/InvestmentInfoTableViewCell.swift | 31 ++ .../InvestmentStaticInfoTableViewCell.swift | 82 +++ .../SantanderTest/SantanderAPI.swift | 5 +- .../SantanderTest/Utils/FloatExtension.swift | 23 + .../Utils/ScrollViewExtension.swift | 40 ++ 21 files changed, 1202 insertions(+), 88 deletions(-) create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/Contents.json create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/checked_checkbox@2x.png create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/download.imageset/Contents.json create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/download.imageset/download@2x.png create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/expand_arrow.imageset/Contents.json create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/expand_arrow.imageset/expand_arrow@2x.png create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/Contents.json create mode 100644 SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/unchecked_checkbox@2x.png create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift delete mode 100644 SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentDownInfoTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentInfoTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentStaticInfoTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/Utils/FloatExtension.swift create mode 100644 SantanderTest/SantanderTest/Utils/ScrollViewExtension.swift diff --git a/SantanderTest/SantanderTest.xcodeproj/project.pbxproj b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj index 86637681..f700578f 100644 --- a/SantanderTest/SantanderTest.xcodeproj/project.pbxproj +++ b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj @@ -7,11 +7,17 @@ objects = { /* Begin PBXBuildFile section */ + A039D15B22C8DE1D001F8772 /* ScrollViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D15A22C8DE1D001F8772 /* ScrollViewExtension.swift */; }; + A039D15F22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D15E22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift */; }; + A039D16122C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16022C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift */; }; A08FFCFC22C6D0B50087F29A /* SantanderAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */; }; A08FFCFE22C6DA3A0087F29A /* InvestmentScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFD22C6DA3A0087F29A /* InvestmentScreen.swift */; }; A08FFD0022C78D5C0087F29A /* ContactScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFF22C78D5C0087F29A /* ContactScreen.swift */; }; + A08FFD0422C7CFF30087F29A /* FloatExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFD0322C7CFF30087F29A /* FloatExtension.swift */; }; + A0CBACFC22C7E72400B66CDB /* InvestmentDownInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CBACFB22C7E72400B66CDB /* InvestmentDownInfoTableViewCell.swift */; }; + A0CBACFE22C8005800B66CDB /* InvestmentTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CBACFD22C8005800B66CDB /* InvestmentTableViewController.swift */; }; + A0CBAD0222C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CBAD0122C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift */; }; A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4320F22C597D500E116EE /* AppDelegate.swift */; }; - A0D4321222C597D500E116EE /* InvestmentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4321122C597D500E116EE /* InvestmentViewController.swift */; }; A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4321322C597D500E116EE /* ContactViewController.swift */; }; A0D4321722C597D500E116EE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321522C597D500E116EE /* Main.storyboard */; }; A0D4321922C597D700E116EE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321822C597D700E116EE /* Assets.xcassets */; }; @@ -50,12 +56,18 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + A039D15A22C8DE1D001F8772 /* ScrollViewExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollViewExtension.swift; sourceTree = ""; }; + A039D15E22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvestimentButtonTableViewCell.swift; sourceTree = ""; }; + A039D16022C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvestmentInfoTableViewCell.swift; sourceTree = ""; }; A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderAPI.swift; sourceTree = ""; }; A08FFCFD22C6DA3A0087F29A /* InvestmentScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentScreen.swift; sourceTree = ""; }; A08FFCFF22C78D5C0087F29A /* ContactScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactScreen.swift; sourceTree = ""; }; + A08FFD0322C7CFF30087F29A /* FloatExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatExtension.swift; sourceTree = ""; }; + A0CBACFB22C7E72400B66CDB /* InvestmentDownInfoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentDownInfoTableViewCell.swift; sourceTree = ""; }; + A0CBACFD22C8005800B66CDB /* InvestmentTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentTableViewController.swift; sourceTree = ""; }; + A0CBAD0122C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentStaticInfoTableViewCell.swift; sourceTree = ""; }; A0D4320C22C597D500E116EE /* SantanderTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SantanderTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; A0D4320F22C597D500E116EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - A0D4321122C597D500E116EE /* InvestmentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentViewController.swift; sourceTree = ""; }; A0D4321322C597D500E116EE /* ContactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactViewController.swift; sourceTree = ""; }; A0D4321622C597D500E116EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; A0D4321822C597D700E116EE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -106,6 +118,17 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + A0CBACFA22C7E6F800B66CDB /* View */ = { + isa = PBXGroup; + children = ( + A0CBAD0122C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift */, + A039D16022C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift */, + A0CBACFB22C7E72400B66CDB /* InvestmentDownInfoTableViewCell.swift */, + A039D15E22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift */, + ); + path = View; + sourceTree = ""; + }; A0D4320322C597D500E116EE = { isa = PBXGroup; children = ( @@ -166,7 +189,8 @@ isa = PBXGroup; children = ( A0D4324422C6B17500E116EE /* Model */, - A0D4321122C597D500E116EE /* InvestmentViewController.swift */, + A0CBACFA22C7E6F800B66CDB /* View */, + A0CBACFD22C8005800B66CDB /* InvestmentTableViewController.swift */, ); path = InvestmentFlow; sourceTree = ""; @@ -201,6 +225,8 @@ isa = PBXGroup; children = ( A0D4324822C6B28200E116EE /* UIImageExtension.swift */, + A08FFD0322C7CFF30087F29A /* FloatExtension.swift */, + A039D15A22C8DE1D001F8772 /* ScrollViewExtension.swift */, ); path = Utils; sourceTree = ""; @@ -361,15 +387,21 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A0CBAD0222C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift in Sources */, A08FFCFE22C6DA3A0087F29A /* InvestmentScreen.swift in Sources */, + A08FFD0422C7CFF30087F29A /* FloatExtension.swift in Sources */, + A039D15B22C8DE1D001F8772 /* ScrollViewExtension.swift in Sources */, + A039D15F22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift in Sources */, + A039D16122C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift in Sources */, A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */, A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */, A0D4324B22C6BC4800E116EE /* FinishContactViewController.swift in Sources */, A08FFD0022C78D5C0087F29A /* ContactScreen.swift in Sources */, A0D4324022C59D0F00E116EE /* CustomTabBarController.swift in Sources */, + A0CBACFE22C8005800B66CDB /* InvestmentTableViewController.swift in Sources */, + A0CBACFC22C7E72400B66CDB /* InvestmentDownInfoTableViewCell.swift in Sources */, A08FFCFC22C6D0B50087F29A /* SantanderAPI.swift in Sources */, A0D4324922C6B28200E116EE /* UIImageExtension.swift in Sources */, - A0D4321222C597D500E116EE /* InvestmentViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/Contents.json b/SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/Contents.json new file mode 100644 index 00000000..d95ee239 --- /dev/null +++ b/SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "checked_checkbox@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/checked_checkbox@2x.png b/SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/checked_checkbox@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1a54abbf07dcdb7fbdcf51559bfbaf9b32b38377 GIT binary patch literal 597 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlJ8xIA4P zLn`LHy=#~y8Yt2B@Vz~AIaeunmi|Fg317kO6C1Wl2Re$hzA$51yzZdVw?{%MV#SH) zHhvH@6Z^mOpnv+k<^S6f@7)Q0<^ePw2qL;~d}o|&#=i7OX6CN@OKwkE_x69(|1I*0 zwQCphZ{4;z@OF2t+%?$+o{wXWEzhb_S^4I((Ep9AF05YY*YAAmo6Q1khsnn*kCjh) z_w|kVi^~_5J)XxATfehda(-w3|J{do_V`z|y^KGw!P;QW9Jj0RT#$e1egRVl?gdco5bw9~+Upo6s2H#)P?yhkyshRypU!i2) zy)`bpd(Y=xV$8}-pY-fa9_zEH+qd6n$R=F*=Ctto&AX3U*q{V;ufVaeHdT$2ya z`^!`-bL-28^|6UUm&!6OZ*gTe~DWM4f17!tR literal 0 HcmV?d00001 diff --git a/SantanderTest/SantanderTest/Assets.xcassets/download.imageset/Contents.json b/SantanderTest/SantanderTest/Assets.xcassets/download.imageset/Contents.json new file mode 100644 index 00000000..4daf64e6 --- /dev/null +++ b/SantanderTest/SantanderTest/Assets.xcassets/download.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "download@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SantanderTest/SantanderTest/Assets.xcassets/download.imageset/download@2x.png b/SantanderTest/SantanderTest/Assets.xcassets/download.imageset/download@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..543b222564b7138fcb792fae3ea97e16a8088728 GIT binary patch literal 365 zcmV-z0h0cSP)nSTvBR-QVcPA$u5nl#MFogh?|uj9VPJV(+X)4D;HHD((Z&d$w|hO7mo}%s@*G!qt`kcgm{$H$C$mY+ z2^0}NRbnboRQME$c&y0qkpu^pw{bY>reTW=Z+utyJPNsVl@{Jek|;I2@ux)T;f+~| zTEZJ6iQ2*&3UEMsUuAg5ajr|!A!6xdbp&gFh*bZYt6soy949Yd$C45B^u;Ah00000 LNkvXXu0mjfRdk-K literal 0 HcmV?d00001 diff --git a/SantanderTest/SantanderTest/Assets.xcassets/expand_arrow.imageset/Contents.json b/SantanderTest/SantanderTest/Assets.xcassets/expand_arrow.imageset/Contents.json new file mode 100644 index 00000000..24afa3a4 --- /dev/null +++ b/SantanderTest/SantanderTest/Assets.xcassets/expand_arrow.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "expand_arrow@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SantanderTest/SantanderTest/Assets.xcassets/expand_arrow.imageset/expand_arrow@2x.png b/SantanderTest/SantanderTest/Assets.xcassets/expand_arrow.imageset/expand_arrow@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8d8701eceb15fd55847dc3f33bbc99846af7d5 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlHo-+8(? zhE&XXd(%Eo*ipv)qxm-1#6nf66%Gz3IoE7`B3;0(<^7E}qj?IS)Vh`!g|%(Rq;(!1 z$xbgXt9wy9%cRfkmtFsV6$Q^pDi}y4P^&iKvdQTwm%<;M&fESw?$@8*r-^}?| zxiO;VR^ImgUh{0VDScl&GxwU_ovwWpY!;~_XD@L<-RwcefIRE=i<8= z@BTRO@btKgwDA0oxk7?n`#9q_$o%g8IqReM%BQL?u4tG)y!G*a_w)tlt_Wty z$}jsb@oS2s(iIy!k$-A2R!(mpA9ktlTHw&a@%S(cW5OSfz+>&5Ob03im3sMw*%}@y zyGYBc@i82B?Xa*55nz}nulVXmfG5KaTc_LG_Al<^7iDc||39tvwB`PHKegK*pHH37 z4s`UBIreY9|33WGeR^Oh!;Y6~UxIEM?+=b;kg#)F``CFYW5Ny&(|&$Y_J-%~D{5<2 z*f89YQ#|xTK!G7fUh&iq0TqTX{Q{Xa93l*Q?j2@!EZhwJ?m+ulco_b>by(T4@G{gZ qFPReOB5S{AS?09k0%)<)WZ$2!epc+Q)mmU$VDNPHb6Mw<&;$TY3i~Ml literal 0 HcmV?d00001 diff --git a/SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/Contents.json b/SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/Contents.json new file mode 100644 index 00000000..e5b03851 --- /dev/null +++ b/SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "unchecked_checkbox@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/unchecked_checkbox@2x.png b/SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/unchecked_checkbox@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..38230472dcfdee439c379d9526e26ae96273f8ad GIT binary patch literal 1277 zcmd6n{ZrBh9LK+=a?V5`%NVC=X`xM~Mrtm#Xqe&y*P*#|8(J8kkq=R*8M>J|eCpaz z)H9z@ayg++R-~eGIw6xzu@dp&$hpMkOo0+b#nJwX-RIt)_uc#b^ZQkD4j%@#Mc4uW z0LF!531(0JBpZhL)rrGmVzcip&qh<7E<4Gz>YZ9% z;B{>>Go|HRaCo|359?vz<7_nlATc6Mh#o$3I-#}i!+qB{&uko-VsPx;8(k+X7{A~- zR1w;|&}vQkqVKzZ*6xzCOb0r53rPcVHu$4jzC*90XmWHuYVlS39Dr9zi16f9c8jP; zM{Q7gAxp~jKpf_V0YRXo6?_M3(i!OA^)wV4DHp?w=X6bF_InC%sa+@w1|Z09@hqcc zA2}rEp>jX4%5a>FgDP)85Tp?6)fvWuMk12dIAEYNkLsz;$*HM-7kQLA0zt_q11Kht z53G3Z8-I33!Fu1R=ki2glAWCbmROUCUVClTq6Gfyjg5_y{#VrLN03N^W7*Igqi6d# z%-J%-X@~h`R*T11uD8I(@x?g-_Rv&;#CuG(vzVccSqnTpu-| ziFvlJ{dE)VcA#ZY-ZtQ~bz&aTlhC4Ax0YOK(Dd5BaRcxM9Jb#+ZIH4Swb#0~NJ7@sm!ZKAs9B zo4i6Mn7Mb4`mvU}-4^p3GnH^XXVy_K%e)uxNIQZbZI0kwJ8_km3YBFNads&Aix=Cp zuKtE6?Bkmsa^6Y?GvgKLIUr+ zEKfx1f8@Vk9@c%mtymu#8yj2UY(7UFGNOEccf*uw%Ty{A=f!;;jZHZ}^FdnUg?Sa+ ziYZjM4p5;NkF$IbSUC7lIS6+4woS|bAdcd=istvfPWAhkKiUpPqtOueViT^8efSxF zeaL7u=G8^NRZUGL=;CLi%xSo~f5cx}N%OCw$Y%^4Eb6K&_ElEXK6KlGt|ost$#}<@ zv=I4#KAz^vEh}lBZ_os%bctp%zc(c5*a4;7-6?v)Z7WO$SQ0^_LVhstvue=N8iCL_7L1pXSCvk^b)n@p0Ic$5luO)8z~z`fsMkB;uQEqa-A zsyg-NO=AhZjn1i+Ie2d?(nLt1fOO+S`%<^}=cK+rj)ax(Q4GDWjT|XDbMc1AWsAU% zD_dsd!X-Aa3SYf1Ezf=VXCJ%%;qLbg2-4&v8GJ&gFL;yWSg2LvbX2G5+c>CIb%pQf zG5zJ~t{eq(C9bo=!j2&czNOB8oLlg=88e{@6 - - - - - - - - - - - - - - - - - - @@ -52,7 +34,7 @@ - + @@ -141,12 +123,12 @@ - + - + @@ -170,6 +152,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift b/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift index c6acb54f..973ef40e 100644 --- a/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift +++ b/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift @@ -22,14 +22,14 @@ struct ContactScreen: Decodable struct Cells: Decodable { - var id: UInt8? - var type: UIType? - var message: String? - var typefield: UITypeField? - var hidden: Bool? - var topSpacing: Float? - var show: UInt8? - var required: Bool? + let id: UInt8? + let type: UIType? + let message: String? + let typefield: UITypeField? + let hidden: Bool? + let topSpacing: Float? + let show: UInt8? + let required: Bool? enum CodingKeys: String, CodingKey { @@ -67,5 +67,5 @@ struct ContactScreen: Decodable } } - var cells: [Cells]? + let cells: [Cells]? } diff --git a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift new file mode 100644 index 00000000..159c4813 --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift @@ -0,0 +1,301 @@ +// +// InvestmentTableViewController.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit +import SafariServices + +extension InvestmentTableViewController: SFSafariViewControllerDelegate +{ + func safariViewControllerDidFinish(_ controller: SFSafariViewController) + { + controller.dismiss(animated: false) + } +} + +extension InvestmentTableViewController: InvestmentDownInfoCellDelegate +{ + func onDownload() + { + if let url = URL(string: "https://www.google.com.br") + { + let controller: SFSafariViewController = .init(url: url, entersReaderIfAvailable: true) + + controller.delegate = self + + self.present(controller, animated: false) + } + } +} + +extension InvestmentTableViewController: InvestimentButtonCellDelegate +{ + func onInvest() + { + showAlert(title: "Filipe Oliveira", message: "Investimento feito com sucesso ;)") + } +} + +class InvestmentTableViewController: UITableViewController +{ + @IBOutlet var tryAgainButton: UIButton! + @IBOutlet var indicatorView: UIActivityIndicatorView! + + private var model: InvestmentScreen? + { + didSet + { + self.tableView.backgroundView = nil + + self.navigationItem.rightBarButtonItem?.isEnabled = model != nil + +// self.tableView.reloadData() + } + } + + @IBAction func shareAction(_ sender: UIBarButtonItem) + { + if let image = self.tableView.screenshot(correctionValue: 70) + { + let controller: UIActivityViewController = .init(activityItems: [image], applicationActivities: nil) + + self.present(controller, animated: true) + } + } + + @IBAction func reloadAction() + { + Server_Request() + } + + override func viewDidLoad() + { + super.viewDidLoad() + + // Remove linha navigationBar + self.navigationController?.navigationBar.backIndicatorImage = .init() + self.navigationController?.navigationBar.isTranslucent = false + self.navigationController?.navigationBar.shadowImage = .init() + + Server_Request() + } + + override func numberOfSections(in tableView: UITableView) -> Int + { + var numberOfSections = 0 + + // Verifica se as estruturas possuem dados e exibe o que de fato existe + + if model != nil + { + numberOfSections = 2 // StaticInfoCell + ButtonCell + } + + if model?.screen?.info != nil + { + numberOfSections += 1 // + InfoCell + } + + if model?.screen?.downInfo != nil + { + numberOfSections += 1 // + DownInfoCell + } + + return numberOfSections + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int + { + // Verifica se as estruturas possuem dados e corrige o que é para ser exibido + + if section == 0 + { + return 1 + } + + if section == 1 + { + if model?.screen?.info != nil + { + return model?.screen?.info?.count ?? 0 + } + + if model?.screen?.downInfo != nil + { + return model?.screen?.downInfo?.count ?? 0 + } + + return 1 + } + + if section == 2 + { + if model?.screen?.info != nil && model?.screen?.downInfo != nil + { + return model?.screen?.downInfo?.count ?? 0 + } + + return 1 + } + + if section == 3 + { + return 1 + } + + return 0 + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell + { + // Verifica se as estruturas possuem dados e corrige o que é para ser exibido - mesma lógica do numberOfRowsInSection só que aqui cuidamos da contrução da cell + + if indexPath.section == 0 + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "StaticInfoCell", for: indexPath) as? InvestmentStaticInfoTableViewCell, let model = model else + { + return .init() + } + + cell.applyContent(model) + + return cell + } + else if indexPath.section == 1 + { + if let model = model?.screen?.info?[indexPath.row] + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "InfoCell", for: indexPath) as? InvestmentInfoTableViewCell else + { + return .init() + } + + cell.applyContent(name: model.name, data: model.data) + + return cell + } + + if let model = model?.screen?.downInfo?[indexPath.row] + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "DownInfoCell", for: indexPath) as? InvestmentDownInfoTableViewCell else + { + return .init() + } + + cell.applyContent(name: model.name, data: model.data) + cell.delegate = self + + return cell + } + + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? InvestimentButtonTableViewCell else + { + return .init() + } + + cell.delegate = self + + return cell + } + else if indexPath.section == 2 + { + if let downInfoModel = model?.screen?.downInfo?[indexPath.row], model?.screen?.info != nil + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "DownInfoCell", for: indexPath) as? InvestmentDownInfoTableViewCell else + { + return .init() + } + + cell.applyContent(name: downInfoModel.name, data: downInfoModel.data) + cell.delegate = self + + return cell + } + + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? InvestimentButtonTableViewCell else + { + return .init() + } + + cell.delegate = self + + return cell + } + else if indexPath.section == 3 + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? InvestimentButtonTableViewCell else + { + return .init() + } + + cell.delegate = self + + return cell + } + + return .init() + } + + private func Server_Request() + { + model = nil + + if #available(iOS 10.0, *) + { + if let refreshControl = tableView.refreshControl, !refreshControl.isRefreshing + { + tableView.backgroundView = indicatorView + } + } + else + { + tableView.backgroundView = indicatorView + } + + SantanderApiClient.request(operation: .investiment) { (response: Result) in + + DispatchQueue.main.async { + + if #available(iOS 10.0, *) + { + self.tableView.refreshControl?.endRefreshing() + } + + switch response + { + case .success(let result): + + self.model = result + + // Teste para dados divergentes do Servidor +// self.model?.screen?.risk = 6 +// self.model?.screen?.moreInfo = nil +// self.model?.screen?.downInfo = nil +// self.model?.screen?.info = nil + + self.tableView.reloadData() + + case .failure(_): + + self.tableView.backgroundView = self.tryAgainButton + + } + + } + + } + } + + private func showAlert(title: String, message: String?) + { + let controller: UIAlertController = .init(title: title, message: message, preferredStyle: .alert) + controller.addAction(.init(title: "OK", style: .default)) + controller.view.tintColor = .red + + self.present(controller, animated: true) + } +} diff --git a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift deleted file mode 100644 index 2b41a68b..00000000 --- a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentViewController.swift +++ /dev/null @@ -1,43 +0,0 @@ -// -// InvestmentViewController.swift -// SantanderTest -// -// Created by Filipe Oliveira on 27/06/19. -// Copyright © 2019 Filipe Oliveira. All rights reserved. -// - -import UIKit - -class InvestmentViewController: UIViewController -{ - private var model: InvestmentScreen? - { - didSet - { - - } - } - - override func viewDidLoad() - { - super.viewDidLoad() - - // Remove linha navigationBar - self.navigationController?.navigationBar.backIndicatorImage = .init() - self.navigationController?.navigationBar.isTranslucent = false - self.navigationController?.navigationBar.shadowImage = .init() - - SantanderApiClient.request(operation: .investiment) { (response: Result) in - - switch response - { - case .success(let result): - self.model = result - - case .failure(let error): - print(error) - } - } - } -} - diff --git a/SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift b/SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift index 1cf1017b..39389e84 100644 --- a/SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift +++ b/SantanderTest/SantanderTest/InvestmentFlow/Model/InvestmentScreen.swift @@ -16,8 +16,8 @@ struct InvestmentScreen: Decodable { struct FundCDI: Decodable { - var fund: Double? - var cdi: Double? + let fund: Float? + let cdi: Float? // nome de variavel com caixa alta =P enum CodingKeys: String, CodingKey @@ -42,17 +42,17 @@ struct InvestmentScreen: Decodable struct Info: Decodable { - var name: String? - var data: String? + let name: String? + let data: String? } - var title: String? - var fundName: String? - var whatIs: String? - var definition: String? - var riskTitle: String? + let title: String? + let fundName: String? + let whatIs: String? + let definition: String? + let riskTitle: String? var risk: UInt8? // range de valor baixo - var infoTitle: String? + let infoTitle: String? var moreInfo: MoreInfo? var info: [Info]? var downInfo: [Info]? diff --git a/SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift new file mode 100644 index 00000000..fcacc77e --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift @@ -0,0 +1,38 @@ +// +// InvestimentButtonTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +protocol InvestimentButtonCellDelegate: NSObjectProtocol +{ + func onInvest() +} + +class InvestimentButtonTableViewCell: UITableViewCell +{ + @IBOutlet weak var investButton: UIButton! + + weak var delegate: InvestimentButtonCellDelegate? + + @IBAction func investAction() + { + delegate?.onInvest() + } + + override func awakeFromNib() + { + super.awakeFromNib() + + investButton.layer.cornerRadius = 23 + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } +} diff --git a/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentDownInfoTableViewCell.swift b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentDownInfoTableViewCell.swift new file mode 100644 index 00000000..d44e0d27 --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentDownInfoTableViewCell.swift @@ -0,0 +1,43 @@ +// +// InvestmentDownInfoTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +protocol InvestmentDownInfoCellDelegate: NSObjectProtocol +{ + func onDownload() +} + +class InvestmentDownInfoTableViewCell: UITableViewCell +{ + @IBOutlet weak var nameLabel: UILabel! + @IBOutlet weak var dataButton: UIButton! + + weak var delegate: InvestmentDownInfoCellDelegate? + + override func awakeFromNib() + { + super.awakeFromNib() + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } + + @IBAction func downloadAction() + { + delegate?.onDownload() + } + + func applyContent(name: String?, data: String?) + { + nameLabel.text = name ?? "-" + dataButton.setTitle(data ?? "Baixar", for: .normal) + } +} diff --git a/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentInfoTableViewCell.swift b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentInfoTableViewCell.swift new file mode 100644 index 00000000..05c40b20 --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentInfoTableViewCell.swift @@ -0,0 +1,31 @@ +// +// InvestmentInfoTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class InvestmentInfoTableViewCell: UITableViewCell +{ + @IBOutlet weak var nameLabel: UILabel! + @IBOutlet weak var dataLabel: UILabel! + + override func awakeFromNib() + { + super.awakeFromNib() + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } + + func applyContent(name: String?, data: String?) + { + nameLabel.text = name ?? "-" + dataLabel.text = data ?? "-" + } +} diff --git a/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentStaticInfoTableViewCell.swift b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentStaticInfoTableViewCell.swift new file mode 100644 index 00000000..5f0f01a2 --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestmentStaticInfoTableViewCell.swift @@ -0,0 +1,82 @@ +// +// InvestmentStaticInfoTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class InvestmentStaticInfoTableViewCell: UITableViewCell +{ + @IBOutlet weak var titleLabel: UILabel! + @IBOutlet weak var fundNameLabel: UILabel! + @IBOutlet weak var whatIsLabel: UILabel! + @IBOutlet weak var definitionLabel: UILabel! + @IBOutlet weak var riskTitleLabel: UILabel! + @IBOutlet weak var infoTitleLabel: UILabel! + + @IBOutlet weak var monthFundLabel: UILabel! + @IBOutlet weak var monthCdiLabel: UILabel! + @IBOutlet weak var yearFundLabel: UILabel! + @IBOutlet weak var yearCdiLabel: UILabel! + @IBOutlet weak var monthsFundLabel: UILabel! + @IBOutlet weak var monthsCdiLabel: UILabel! + + @IBOutlet weak var riskView: UIStackView! + + @IBOutlet weak var riskStackView: UIStackView! + @IBOutlet weak var moreInfoStackView: UIStackView! + @IBOutlet weak var monthStackView: UIStackView! + @IBOutlet weak var yearStackView: UIStackView! + @IBOutlet weak var monthsStackView: UIStackView! + + override func awakeFromNib() + { + super.awakeFromNib() + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } + + func applyContent(_ model: InvestmentScreen) + { + titleLabel.text = model.screen?.title ?? "-" + fundNameLabel.text = model.screen?.fundName ?? "-" + whatIsLabel.text = model.screen?.whatIs ?? "-" + definitionLabel.text = model.screen?.definition ?? "-" + riskTitleLabel.text = model.screen?.riskTitle ?? "-" + infoTitleLabel.text = model.screen?.infoTitle ?? "-" + + // esconde a UI caso não venha dados + moreInfoStackView.isHidden = model.screen?.moreInfo == nil + monthStackView.isHidden = model.screen?.moreInfo?.month == nil + yearStackView.isHidden = model.screen?.moreInfo?.year == nil + monthsStackView.isHidden = model.screen?.moreInfo?.months == nil + + monthFundLabel.text = model.screen?.moreInfo?.month?.fund?.asPercent ?? "-" + monthCdiLabel.text = model.screen?.moreInfo?.month?.cdi?.asPercent ?? "-" + yearFundLabel.text = model.screen?.moreInfo?.year?.fund?.asPercent ?? "-" + yearCdiLabel.text = model.screen?.moreInfo?.year?.cdi?.asPercent ?? "-" + monthsFundLabel.text = model.screen?.moreInfo?.months?.fund?.asPercent ?? "-" + monthsCdiLabel.text = model.screen?.moreInfo?.months?.cdi?.asPercent ?? "-" + + if let risk = model.screen?.risk, risk >= 1 && risk <= 5 + { + riskStackView.isHidden = false + + let position = riskView.subviews[Int(risk) - 1] + + let imageView = position.subviews.first(where: {$0 is UIImageView}) as? UIImageView + + imageView?.image = #imageLiteral(resourceName: "expand_arrow") + } + else + { + riskStackView.isHidden = true + } + } +} diff --git a/SantanderTest/SantanderTest/SantanderAPI.swift b/SantanderTest/SantanderTest/SantanderAPI.swift index ee5129b3..e5925953 100644 --- a/SantanderTest/SantanderTest/SantanderAPI.swift +++ b/SantanderTest/SantanderTest/SantanderAPI.swift @@ -130,7 +130,10 @@ final class SantanderApiClient // uRq.httpBody // } - dataTask = URLSession.shared.dataTask(with: uRq) { (data, response, error) in + let config: URLSessionConfiguration = .default + config.requestCachePolicy = .reloadIgnoringLocalCacheData + + dataTask = URLSession(configuration: config).dataTask(with: uRq) { (data, response, error) in debug(objects: [operation.rawValue, uCp.queryItems, data, response, error]) diff --git a/SantanderTest/SantanderTest/Utils/FloatExtension.swift b/SantanderTest/SantanderTest/Utils/FloatExtension.swift new file mode 100644 index 00000000..892fff44 --- /dev/null +++ b/SantanderTest/SantanderTest/Utils/FloatExtension.swift @@ -0,0 +1,23 @@ +// +// FloatExtension.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import Foundation + +extension Float +{ + var asPercent: String? + { + let formatter: NumberFormatter = .init() + formatter.locale = .init(identifier: "PT-BR") + formatter.maximumFractionDigits = 2 + formatter.multiplier = 1 + formatter.numberStyle = .percent + + return formatter.string(from: .init(value: self)) + } +} diff --git a/SantanderTest/SantanderTest/Utils/ScrollViewExtension.swift b/SantanderTest/SantanderTest/Utils/ScrollViewExtension.swift new file mode 100644 index 00000000..cd0384bf --- /dev/null +++ b/SantanderTest/SantanderTest/Utils/ScrollViewExtension.swift @@ -0,0 +1,40 @@ +// +// ScrollViewExtension.swift +// SantanderTest +// +// Created by Filipe Oliveira on 30/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +extension UIScrollView +{ + func screenshot(correctionValue: CGFloat) -> UIImage? + { + let originalContentOffset = self.contentOffset + let originalFrame = self.frame + + var customContentSize = self.contentSize + customContentSize.height -= correctionValue + + UIGraphicsBeginImageContext(customContentSize) + self.contentOffset = .zero + self.frame = .init(origin: .zero, size: customContentSize) + + guard let context = UIGraphicsGetCurrentContext() else + { + return nil + } + + self.layer.render(in: context) + + let image = UIGraphicsGetImageFromCurrentImageContext() + UIGraphicsEndImageContext() + + self.contentOffset = originalContentOffset + self.frame = originalFrame + + return image + } +} From 893fd31cf8ea7d59f657e46f913c0d76dee1411d Mon Sep 17 00:00:00 2001 From: Filipe Oliveira Date: Sun, 30 Jun 2019 22:26:34 -0400 Subject: [PATCH 5/6] Tela de Formulario Dinamico MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Foi utilizado TableViewController junto com Seção, a Header da Seção serviu para respeitar o layout do topSpacing. Para cada tipo de componente esperado no JSON foi criado uma célula para ser reutilizado a medida que o endpoint muda. --- .../SantanderTest.xcodeproj/project.pbxproj | 48 ++- .../checked_checkbox@2x.png | Bin 597 -> 327 bytes .../unchecked_checkbox@2x.png | Bin 1277 -> 323 bytes .../SantanderTest/Base.lproj/Main.storyboard | 283 ++++++++++++++-- .../ContactTableViewController.swift | 317 ++++++++++++++++++ .../ContactFlow/ContactViewController.swift | 43 --- .../ContactFlow/Model/ContactScreen.swift | 24 +- .../View/CheckBoxTableViewCell.swift | 47 +++ .../ContactFlow/View/ImageTableViewCell.swift | 24 ++ .../ContactFlow/View/LabelTableViewCell.swift | 29 ++ .../View/TextFieldTableViewCell.swift | 153 +++++++++ .../InvestmentTableViewController.swift | 26 +- .../View/ButtonTableViewCell.swift | 43 +++ .../View/InvestimentButtonTableViewCell.swift | 38 --- .../{ => Utils}/Fonts/DINEngschriftStd.otf | Bin .../{ => Utils}/Fonts/DINMittelschriftStd.otf | Bin .../Fonts/DINNeuzeitGroteskStd-BdCond.otf | Bin .../Fonts/DINNeuzeitGroteskStd-Light.otf | Bin .../{ => Utils}/Fonts/DINPro-Black.otf | Bin .../{ => Utils}/Fonts/DINPro-Bold.otf | Bin .../{ => Utils}/Fonts/DINPro-Light.otf | Bin .../{ => Utils}/Fonts/DINPro-Medium.otf | Bin .../{ => Utils}/Fonts/DINPro-Regular.otf | Bin .../SantanderTest/Utils/StringExtension.swift | 44 +++ .../SantanderTestTests.swift | 4 + 25 files changed, 975 insertions(+), 148 deletions(-) create mode 100644 SantanderTest/SantanderTest/ContactFlow/ContactTableViewController.swift delete mode 100644 SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift create mode 100644 SantanderTest/SantanderTest/ContactFlow/View/CheckBoxTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/ContactFlow/View/ImageTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/ContactFlow/View/LabelTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/ContactFlow/View/TextFieldTableViewCell.swift create mode 100644 SantanderTest/SantanderTest/InvestmentFlow/View/ButtonTableViewCell.swift delete mode 100644 SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINEngschriftStd.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINMittelschriftStd.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINNeuzeitGroteskStd-BdCond.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINNeuzeitGroteskStd-Light.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINPro-Black.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINPro-Bold.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINPro-Light.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINPro-Medium.otf (100%) rename SantanderTest/SantanderTest/{ => Utils}/Fonts/DINPro-Regular.otf (100%) create mode 100644 SantanderTest/SantanderTest/Utils/StringExtension.swift diff --git a/SantanderTest/SantanderTest.xcodeproj/project.pbxproj b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj index f700578f..3fa19e89 100644 --- a/SantanderTest/SantanderTest.xcodeproj/project.pbxproj +++ b/SantanderTest/SantanderTest.xcodeproj/project.pbxproj @@ -8,8 +8,14 @@ /* Begin PBXBuildFile section */ A039D15B22C8DE1D001F8772 /* ScrollViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D15A22C8DE1D001F8772 /* ScrollViewExtension.swift */; }; - A039D15F22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D15E22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift */; }; + A039D15F22C8EA5F001F8772 /* ButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D15E22C8EA5F001F8772 /* ButtonTableViewCell.swift */; }; A039D16122C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16022C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift */; }; + A039D16322C8EFC2001F8772 /* ContactTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16222C8EFC2001F8772 /* ContactTableViewController.swift */; }; + A039D16622C8FEA1001F8772 /* LabelTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16522C8FEA1001F8772 /* LabelTableViewCell.swift */; }; + A039D16822C90620001F8772 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16722C90620001F8772 /* TextFieldTableViewCell.swift */; }; + A039D16A22C908E8001F8772 /* CheckBoxTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16922C908E8001F8772 /* CheckBoxTableViewCell.swift */; }; + A039D16C22C90E1A001F8772 /* ImageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16B22C90E1A001F8772 /* ImageTableViewCell.swift */; }; + A039D16E22C957DF001F8772 /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A039D16D22C957DF001F8772 /* StringExtension.swift */; }; A08FFCFC22C6D0B50087F29A /* SantanderAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */; }; A08FFCFE22C6DA3A0087F29A /* InvestmentScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFD22C6DA3A0087F29A /* InvestmentScreen.swift */; }; A08FFD0022C78D5C0087F29A /* ContactScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08FFCFF22C78D5C0087F29A /* ContactScreen.swift */; }; @@ -18,7 +24,6 @@ A0CBACFE22C8005800B66CDB /* InvestmentTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CBACFD22C8005800B66CDB /* InvestmentTableViewController.swift */; }; A0CBAD0222C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CBAD0122C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift */; }; A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4320F22C597D500E116EE /* AppDelegate.swift */; }; - A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0D4321322C597D500E116EE /* ContactViewController.swift */; }; A0D4321722C597D500E116EE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321522C597D500E116EE /* Main.storyboard */; }; A0D4321922C597D700E116EE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321822C597D700E116EE /* Assets.xcassets */; }; A0D4321C22C597D700E116EE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A0D4321A22C597D700E116EE /* LaunchScreen.storyboard */; }; @@ -57,8 +62,14 @@ /* Begin PBXFileReference section */ A039D15A22C8DE1D001F8772 /* ScrollViewExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollViewExtension.swift; sourceTree = ""; }; - A039D15E22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvestimentButtonTableViewCell.swift; sourceTree = ""; }; + A039D15E22C8EA5F001F8772 /* ButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonTableViewCell.swift; sourceTree = ""; }; A039D16022C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvestmentInfoTableViewCell.swift; sourceTree = ""; }; + A039D16222C8EFC2001F8772 /* ContactTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactTableViewController.swift; sourceTree = ""; }; + A039D16522C8FEA1001F8772 /* LabelTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelTableViewCell.swift; sourceTree = ""; }; + A039D16722C90620001F8772 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; + A039D16922C908E8001F8772 /* CheckBoxTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckBoxTableViewCell.swift; sourceTree = ""; }; + A039D16B22C90E1A001F8772 /* ImageTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageTableViewCell.swift; sourceTree = ""; }; + A039D16D22C957DF001F8772 /* StringExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtension.swift; sourceTree = ""; }; A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderAPI.swift; sourceTree = ""; }; A08FFCFD22C6DA3A0087F29A /* InvestmentScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentScreen.swift; sourceTree = ""; }; A08FFCFF22C78D5C0087F29A /* ContactScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactScreen.swift; sourceTree = ""; }; @@ -68,7 +79,6 @@ A0CBAD0122C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvestmentStaticInfoTableViewCell.swift; sourceTree = ""; }; A0D4320C22C597D500E116EE /* SantanderTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SantanderTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; A0D4320F22C597D500E116EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - A0D4321322C597D500E116EE /* ContactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactViewController.swift; sourceTree = ""; }; A0D4321622C597D500E116EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; A0D4321822C597D700E116EE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; A0D4321B22C597D700E116EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; @@ -118,13 +128,24 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + A039D16422C8FDFC001F8772 /* View */ = { + isa = PBXGroup; + children = ( + A039D16522C8FEA1001F8772 /* LabelTableViewCell.swift */, + A039D16722C90620001F8772 /* TextFieldTableViewCell.swift */, + A039D16922C908E8001F8772 /* CheckBoxTableViewCell.swift */, + A039D16B22C90E1A001F8772 /* ImageTableViewCell.swift */, + ); + path = View; + sourceTree = ""; + }; A0CBACFA22C7E6F800B66CDB /* View */ = { isa = PBXGroup; children = ( A0CBAD0122C8043100B66CDB /* InvestmentStaticInfoTableViewCell.swift */, A039D16022C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift */, A0CBACFB22C7E72400B66CDB /* InvestmentDownInfoTableViewCell.swift */, - A039D15E22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift */, + A039D15E22C8EA5F001F8772 /* ButtonTableViewCell.swift */, ); path = View; sourceTree = ""; @@ -160,9 +181,8 @@ A0D4321822C597D700E116EE /* Assets.xcassets */, A0D4321A22C597D700E116EE /* LaunchScreen.storyboard */, A0D4321D22C597D700E116EE /* Info.plist */, - A0D4323F22C59D0F00E116EE /* CustomTabBarController.swift */, - A0D4324C22C6C33000E116EE /* Fonts */, A08FFCFB22C6D0B50087F29A /* SantanderAPI.swift */, + A0D4323F22C59D0F00E116EE /* CustomTabBarController.swift */, ); path = SantanderTest; sourceTree = ""; @@ -207,7 +227,8 @@ isa = PBXGroup; children = ( A0D4324622C6B23100E116EE /* Model */, - A0D4321322C597D500E116EE /* ContactViewController.swift */, + A039D16422C8FDFC001F8772 /* View */, + A039D16222C8EFC2001F8772 /* ContactTableViewController.swift */, A0D4324A22C6BC4800E116EE /* FinishContactViewController.swift */, ); path = ContactFlow; @@ -224,9 +245,11 @@ A0D4324722C6B25800E116EE /* Utils */ = { isa = PBXGroup; children = ( + A0D4324C22C6C33000E116EE /* Fonts */, A0D4324822C6B28200E116EE /* UIImageExtension.swift */, A08FFD0322C7CFF30087F29A /* FloatExtension.swift */, A039D15A22C8DE1D001F8772 /* ScrollViewExtension.swift */, + A039D16D22C957DF001F8772 /* StringExtension.swift */, ); path = Utils; sourceTree = ""; @@ -391,17 +414,22 @@ A08FFCFE22C6DA3A0087F29A /* InvestmentScreen.swift in Sources */, A08FFD0422C7CFF30087F29A /* FloatExtension.swift in Sources */, A039D15B22C8DE1D001F8772 /* ScrollViewExtension.swift in Sources */, - A039D15F22C8EA5F001F8772 /* InvestimentButtonTableViewCell.swift in Sources */, + A039D15F22C8EA5F001F8772 /* ButtonTableViewCell.swift in Sources */, + A039D16A22C908E8001F8772 /* CheckBoxTableViewCell.swift in Sources */, A039D16122C8EA6E001F8772 /* InvestmentInfoTableViewCell.swift in Sources */, - A0D4321422C597D500E116EE /* ContactViewController.swift in Sources */, A0D4321022C597D500E116EE /* AppDelegate.swift in Sources */, A0D4324B22C6BC4800E116EE /* FinishContactViewController.swift in Sources */, A08FFD0022C78D5C0087F29A /* ContactScreen.swift in Sources */, + A039D16622C8FEA1001F8772 /* LabelTableViewCell.swift in Sources */, A0D4324022C59D0F00E116EE /* CustomTabBarController.swift in Sources */, + A039D16E22C957DF001F8772 /* StringExtension.swift in Sources */, A0CBACFE22C8005800B66CDB /* InvestmentTableViewController.swift in Sources */, A0CBACFC22C7E72400B66CDB /* InvestmentDownInfoTableViewCell.swift in Sources */, A08FFCFC22C6D0B50087F29A /* SantanderAPI.swift in Sources */, + A039D16822C90620001F8772 /* TextFieldTableViewCell.swift in Sources */, + A039D16C22C90E1A001F8772 /* ImageTableViewCell.swift in Sources */, A0D4324922C6B28200E116EE /* UIImageExtension.swift in Sources */, + A039D16322C8EFC2001F8772 /* ContactTableViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/checked_checkbox@2x.png b/SantanderTest/SantanderTest/Assets.xcassets/checked_checkbox.imageset/checked_checkbox@2x.png index 1a54abbf07dcdb7fbdcf51559bfbaf9b32b38377..f29e3b680bdc12a68e0ff14007ee2e7010f80809 100644 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}mo-U3d z8I5l**=8{XiX8n|T+_6K!}0f(X=$SCG-q?XQ;u}(T6uZd)@xx$Hcn{lF+b|CYUg?W ziek<=@zt^x_2~?P6Fttz^75b8J+IB+&Cq|?=T|XHfa+oGi);4E?_|7N@tZ9tEal$S z9sb8y3vYdib-$N<*IwRMjv?n(-!P;QW9Jj0RT#$e1egRVl?gdco5bw9~+Upo6s2H#)P?yhkyshRypU!i2) zy)`bpd(Y=xV$8}-pY-fa9_zEH+qd6n$R=F*=Ctto&AX3U*q{V;ufVaeHdT$2ya z`^!`-bL-28^|6UUm&!6OZ*gTe~DWM4f17!tR diff --git a/SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/unchecked_checkbox@2x.png b/SantanderTest/SantanderTest/Assets.xcassets/unchecked_checkbox.imageset/unchecked_checkbox@2x.png index 38230472dcfdee439c379d9526e26ae96273f8ad..8dd7a471e9ddfcbcf3de3ffb65c60907952ae36b 100644 GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}Go-U3d z8I5mm8gd08Od^m=O*qFaqo#F89gQvHjS|_`<^@j9~Z3ZWnpNTxfAn3^`vbN{452M0Xv9k>y v`aPHudaJBU--^7OyW-WshyPq$@^>(8cy1u-wJgpD7zPZUu6{1-oD!MJ|eCpaz z)H9z@ayg++R-~eGIw6xzu@dp&$hpMkOo0+b#nJwX-RIt)_uc#b^ZQkD4j%@#Mc4uW z0LF!531(0JBpZhL)rrGmVzcip&qh<7E<4Gz>YZ9% z;B{>>Go|HRaCo|359?vz<7_nlATc6Mh#o$3I-#}i!+qB{&uko-VsPx;8(k+X7{A~- zR1w;|&}vQkqVKzZ*6xzCOb0r53rPcVHu$4jzC*90XmWHuYVlS39Dr9zi16f9c8jP; zM{Q7gAxp~jKpf_V0YRXo6?_M3(i!OA^)wV4DHp?w=X6bF_InC%sa+@w1|Z09@hqcc zA2}rEp>jX4%5a>FgDP)85Tp?6)fvWuMk12dIAEYNkLsz;$*HM-7kQLA0zt_q11Kht z53G3Z8-I33!Fu1R=ki2glAWCbmROUCUVClTq6Gfyjg5_y{#VrLN03N^W7*Igqi6d# z%-J%-X@~h`R*T11uD8I(@x?g-_Rv&;#CuG(vzVccSqnTpu-| ziFvlJ{dE)VcA#ZY-ZtQ~bz&aTlhC4Ax0YOK(Dd5BaRcxM9Jb#+ZIH4Swb#0~NJ7@sm!ZKAs9B zo4i6Mn7Mb4`mvU}-4^p3GnH^XXVy_K%e)uxNIQZbZI0kwJ8_km3YBFNads&Aix=Cp zuKtE6?Bkmsa^6Y?GvgKLIUr+ zEKfx1f8@Vk9@c%mtymu#8yj2UY(7UFGNOEccf*uw%Ty{A=f!;;jZHZ}^FdnUg?Sa+ ziYZjM4p5;NkF$IbSUC7lIS6+4woS|bAdcd=istvfPWAhkKiUpPqtOueViT^8efSxF zeaL7u=G8^NRZUGL=;CLi%xSo~f5cx}N%OCw$Y%^4Eb6K&_ElEXK6KlGt|ost$#}<@ zv=I4#KAz^vEh}lBZ_os%bctp%zc(c5*a4;7-6?v)Z7WO$SQ0^_LVhstvue=N8iCL_7L1pXSCvk^b)n@p0Ic$5luO)8z~z`fsMkB;uQEqa-A zsyg-NO=AhZjn1i+Ie2d?(nLt1fOO+S`%<^}=cK+rj)ax(Q4GDWjT|XDbMc1AWsAU% zD_dsd!X-Aa3SYf1Ezf=VXCJ%%;qLbg2-4&v8GJ&gFL;yWSg2LvbX2G5+c>CIb%pQf zG5zJ~t{eq(C9bo=!j2&czNOB8oLlg=88e{@6 - - - - - - - - - - - - - - - - - - - - - @@ -89,7 +68,238 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -106,7 +316,7 @@ - + @@ -128,7 +338,7 @@ - + @@ -145,12 +355,12 @@ - + - + @@ -558,11 +768,11 @@ - - + + - + - + - + @@ -632,11 +842,11 @@ - + - + @@ -645,11 +855,12 @@ - + + diff --git a/SantanderTest/SantanderTest/ContactFlow/ContactTableViewController.swift b/SantanderTest/SantanderTest/ContactFlow/ContactTableViewController.swift new file mode 100644 index 00000000..9e507b2d --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/ContactTableViewController.swift @@ -0,0 +1,317 @@ +// +// ContactTableViewController.swift +// SantanderTest +// +// Created by Filipe Oliveira on 30/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +extension ContactTableViewController: TextFieldCellDelegate +{ + func onEditing(text: String, type: CustomTypeField, id: Int) + { + tableView.scrollToRow(at: .init(row: 0, section: id), at: .bottom, animated: false) + + if type == .email + { + fields.email = text + } + else if type == .telNumber + { + fields.phone = text + } + else + { + fields.name = text + } + } +} + +extension ContactTableViewController: CheckBoxCellDelegate +{ + func onAction(isChecked: Bool, componentId: UInt8?) + { + if let index = model?.cells?.firstIndex(where: { $0.id == componentId }) + { + model?.cells?[index].hidden = !isChecked + + tableView.reloadData() + } + } +} + +extension ContactTableViewController: ButtonCellDelegate +{ + func onAction() + { + let requiredFields = model?.cells?.filter({ (cell) -> Bool in + + if let isRequired = cell.required, let isHidden = cell.hidden, isRequired, !isHidden, cell.typefield != nil + { + return true + } + + return false + }) + + if fields.name.isEmpty + { + if let index = model?.cells?.firstIndex(where: { (cell) -> Bool in + + if let typeField = cell.typefield, typeField == .text + { + return true + } + + return false + }) + { + if let cell = tableView.cellForRow(at: .init(row: 0, section: index)) as? TextFieldTableViewCell + { + cell.applyStatus(status: .error) + + tableView.scrollToRow(at: .init(row: 0, section: index), at: .bottom, animated: true) + } + } + + return + } + + // logica é a mesma +// if !fields.email.isValidEmail +// { +// return +// } +// +// if !fields.phone.isValidPhone +// { +// +// return +// } + + self.performSegue(withIdentifier: "ContactSegue", sender: nil) + +// fields = ("","","") +// +// model = originalModel +// +// tableView.reloadData() + } +} + +class ContactTableViewController: UITableViewController +{ + @IBOutlet var tryAgainButton: UIButton! + @IBOutlet var indicatorView: UIActivityIndicatorView! + + var fields: (name: String, email: String, phone: String) = ("","","") + + private var model: ContactScreen? + { + didSet + { + self.tableView.backgroundView = nil + } + } + + private var originalModel: ContactScreen? + + @IBAction func refreshAction() + { + Server_Request() + } + + override func viewDidLoad() + { + super.viewDidLoad() + + // Remove linha navigationBar + self.navigationController?.navigationBar.backIndicatorImage = .init() + self.navigationController?.navigationBar.isTranslucent = false + self.navigationController?.navigationBar.shadowImage = .init() + +// refreshAction() + } + + override func viewDidAppear(_ animated: Bool) + { + super.viewDidAppear(animated) + + refreshAction() + } + + override func numberOfSections(in tableView: UITableView) -> Int + { + return model?.cells?.count ?? 0 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int + { + return 1 + } + + override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat + { + if let component = model?.cells?[section], let height = component.topSpacing, let isHidden = component.hidden, !isHidden + { + return .init(height) + } + + return .zero + } + + override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? + { + let headerView: UIView = .init() + headerView.backgroundColor = .clear + + return headerView + } + + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat + { + if let component = model?.cells?[indexPath.section], let isHidden = component.hidden, isHidden + { + return .zero + } + + return UITableView.automaticDimension + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell + { + if let component = model?.cells?[indexPath.section], let type = component.type, let isHidden = component.hidden, !isHidden + { + if type == .text + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "TextCell", for: indexPath) as? LabelTableViewCell else + { + return .init() + } + + cell.applyContent(text: component.message) + + return cell + } + + if type == .field + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "TextFieldCell", for: indexPath) as? TextFieldTableViewCell, let typeField = component.typefield else + { + return .init() + } + + cell.delegate = self + + var text = "" + + if typeField == .email + { + text = fields.email + } + else if typeField == .telNumber + { + text = fields.phone + } + else + { + text = fields.name + } + + cell.applyContent(placeholder: component.message, text: text, type: component.typefield, id: indexPath.section) + + return cell + } + + if type == .checkbox + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "CheckBoxCell", for: indexPath) as? CheckBoxTableViewCell else + { + return .init() + } + + cell.delegate = self + cell.applyContent(text: component.message, id: component.show) + + return cell + } + + if type == .send + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? ButtonTableViewCell else + { + return .init() + } + + cell.delegate = self + cell.applyContent(text: component.message) + + return cell + } + + if type == .image + { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ImageCell", for: indexPath) as? ImageTableViewCell else + { + return .init() + } + + return cell + } + } + + return .init() + } + + private func Server_Request() + { + fields = ("","","") + + model = nil + + tableView.reloadData() + + if #available(iOS 10.0, *) + { + if let refreshControl = tableView.refreshControl, !refreshControl.isRefreshing + { + tableView.backgroundView = indicatorView + } + } + else + { + tableView.backgroundView = indicatorView + } + + SantanderApiClient.request(operation: .contactForm) { (response: Result) in + + DispatchQueue.main.async { + + if #available(iOS 10.0, *) + { + self.tableView.refreshControl?.endRefreshing() + } + + switch response + { + case .success(let result): + + self.originalModel = result + + self.model = result + + self.tableView.reloadData() + + case .failure(_): + + self.tableView.backgroundView = self.tryAgainButton + + } + + } + + } + } +} diff --git a/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift b/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift deleted file mode 100644 index 7456f3be..00000000 --- a/SantanderTest/SantanderTest/ContactFlow/ContactViewController.swift +++ /dev/null @@ -1,43 +0,0 @@ -// -// ContactViewController.swift -// SantanderTest -// -// Created by Filipe Oliveira on 27/06/19. -// Copyright © 2019 Filipe Oliveira. All rights reserved. -// - -import UIKit - -class ContactViewController: UIViewController -{ - private var model: ContactScreen? - { - didSet - { - - } - } - - override func viewDidLoad() - { - super.viewDidLoad() - - // Remove linha navigationBar - self.navigationController?.navigationBar.backIndicatorImage = .init() - self.navigationController?.navigationBar.isTranslucent = false - self.navigationController?.navigationBar.shadowImage = .init() - - SantanderApiClient.request(operation: .contactForm) { (response: Result) in - - switch response - { - case .success(let result): - self.model = result - - case .failure(let error): - print(error) - } - } - } -} - diff --git a/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift b/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift index 973ef40e..684b5d71 100644 --- a/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift +++ b/SantanderTest/SantanderTest/ContactFlow/Model/ContactScreen.swift @@ -8,25 +8,25 @@ import Foundation +enum CustomTypeField: UInt8, Decodable +{ + case text = 1, telNumber, email +} + struct ContactScreen: Decodable { - enum UIType: UInt8, Decodable + enum CustomType: UInt8, Decodable { case field = 1, text, image, checkbox, send } - enum UITypeField: UInt8, Decodable - { - case text = 1, telNumber, email - } - struct Cells: Decodable { let id: UInt8? - let type: UIType? + let type: CustomType? let message: String? - let typefield: UITypeField? - let hidden: Bool? + let typefield: CustomTypeField? + var hidden: Bool? let topSpacing: Float? let show: UInt8? let required: Bool? @@ -41,7 +41,7 @@ struct ContactScreen: Decodable let container = try decoder.container(keyedBy: CodingKeys.self) id = try? container.decode(UInt8.self, forKey: .id) - type = try? container.decode(UIType.self, forKey: .type) + type = try? container.decode(CustomType.self, forKey: .type) message = try? container.decode(String.self, forKey: .message) // conversão para tipo comum @@ -57,7 +57,7 @@ struct ContactScreen: Decodable } else { - typefield = try? container.decode(UITypeField.self, forKey: .typefield) + typefield = try? container.decode(CustomTypeField.self, forKey: .typefield) } hidden = try? container.decode(Bool.self, forKey: .hidden) @@ -67,5 +67,5 @@ struct ContactScreen: Decodable } } - let cells: [Cells]? + var cells: [Cells]? } diff --git a/SantanderTest/SantanderTest/ContactFlow/View/CheckBoxTableViewCell.swift b/SantanderTest/SantanderTest/ContactFlow/View/CheckBoxTableViewCell.swift new file mode 100644 index 00000000..87c37734 --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/View/CheckBoxTableViewCell.swift @@ -0,0 +1,47 @@ +// +// CheckBoxTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 30/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +protocol CheckBoxCellDelegate: NSObjectProtocol +{ + func onAction(isChecked: Bool, componentId: UInt8?) +} + +class CheckBoxTableViewCell: UITableViewCell +{ + @IBOutlet weak var actionButton: UIButton! + + weak var delegate: CheckBoxCellDelegate? + + private var componentId: UInt8? + + override func awakeFromNib() + { + super.awakeFromNib() + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } + + @IBAction func buttonAction() + { + actionButton.setImage(actionButton.currentImage == #imageLiteral(resourceName: "unchecked_checkbox") ? #imageLiteral(resourceName: "checked_checkbox") : #imageLiteral(resourceName: "unchecked_checkbox"), for: .normal) + + delegate?.onAction(isChecked: actionButton.currentImage != #imageLiteral(resourceName: "unchecked_checkbox"), componentId: componentId) + } + + func applyContent(text: String?, id: UInt8? = nil) + { + actionButton.setTitle(text ?? "-", for: .normal) + + componentId = id + } +} diff --git a/SantanderTest/SantanderTest/ContactFlow/View/ImageTableViewCell.swift b/SantanderTest/SantanderTest/ContactFlow/View/ImageTableViewCell.swift new file mode 100644 index 00000000..c3aa71b3 --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/View/ImageTableViewCell.swift @@ -0,0 +1,24 @@ +// +// ImageTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 30/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class ImageTableViewCell: UITableViewCell +{ + @IBOutlet weak var anyImageView: UIImageView! + + override func awakeFromNib() + { + super.awakeFromNib() + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } +} diff --git a/SantanderTest/SantanderTest/ContactFlow/View/LabelTableViewCell.swift b/SantanderTest/SantanderTest/ContactFlow/View/LabelTableViewCell.swift new file mode 100644 index 00000000..a2360a0d --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/View/LabelTableViewCell.swift @@ -0,0 +1,29 @@ +// +// LabelTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 30/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +class LabelTableViewCell: UITableViewCell +{ + @IBOutlet weak var messageLabel: UILabel! + + override func awakeFromNib() + { + super.awakeFromNib() + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } + + func applyContent(text: String?) + { + messageLabel.text = text ?? "-" + } +} diff --git a/SantanderTest/SantanderTest/ContactFlow/View/TextFieldTableViewCell.swift b/SantanderTest/SantanderTest/ContactFlow/View/TextFieldTableViewCell.swift new file mode 100644 index 00000000..1472f158 --- /dev/null +++ b/SantanderTest/SantanderTest/ContactFlow/View/TextFieldTableViewCell.swift @@ -0,0 +1,153 @@ +// +// TextFieldTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 30/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +protocol TextFieldCellDelegate: NSObjectProtocol +{ + func onEditing(text: String, type: CustomTypeField, id: Int) +} + +extension TextFieldTableViewCell: UITextFieldDelegate +{ + func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool + { + if let text = textField.text, typeField == .telNumber + { + if string.isEmpty + { + applyStatus(status: .error) + + if text.count == 15 + { + return true + } + } + + if range.location == 14 || range.location == 15 + { + applyStatus(status: .ok) + } + + if text.count < 15 + { + nameTextField.text = text.maskPhone(pattern: "(##) #####-####", replacmentCharacter: "#") + + return true + } + + return false + } + + if let text = textField.text, typeField == .text + { + if text.count == 1 && string.isEmpty + { + applyStatus(status: .error) + } + else + { + applyStatus(status: .ok) + } + + return true + } + + if let text = textField.text, typeField == .email + { + if (text + string).isValidEmail + { + applyStatus(status: .ok) + } + else + { + applyStatus(status: .error) + } + } + + return true + } +} + +enum ColorTextFieldCell +{ + case normal, error, ok +} + +class TextFieldTableViewCell: UITableViewCell +{ + @IBOutlet weak var nameLabel: UILabel! + @IBOutlet weak var nameTextField: UITextField! + @IBOutlet weak var statusView: UIView! + + private var typeField: CustomTypeField! + { + didSet + { + if typeField == .email + { + nameTextField.keyboardType = .emailAddress + } + else if typeField == .telNumber + { + nameTextField.keyboardType = .numberPad + } + else + { + nameTextField.autocapitalizationType = .sentences + nameTextField.keyboardType = .default + } + } + } + + private var identifier: Int! + + weak var delegate: TextFieldCellDelegate? + + override func awakeFromNib() + { + super.awakeFromNib() + + nameTextField.delegate = self + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } + + @IBAction func editingChanged(_ sender: UITextField) + { + delegate?.onEditing(text: sender.text ?? "", type: typeField, id: identifier) + } + + func applyContent(placeholder: String?, text: String?, type: CustomTypeField?, id: Int) + { + nameLabel.text = placeholder ?? "-" + + nameTextField.text = text + + typeField = type ?? .text + + identifier = id + + applyStatus(status: .normal) + } + + func applyStatus(status: ColorTextFieldCell) + { + if status == .normal && nameTextField.text == nil + { + statusView.backgroundColor = #colorLiteral(red: 0.8374180198, green: 0.8374378085, blue: 0.8374271393, alpha: 1) + } + else + { + statusView.backgroundColor = status == .error ? #colorLiteral(red: 1, green: 0.1491314173, blue: 0, alpha: 1) : #colorLiteral(red: 0.6574365497, green: 0.8640290499, blue: 0.530384481, alpha: 1) + } + } +} diff --git a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift index 159c4813..69626079 100644 --- a/SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift +++ b/SantanderTest/SantanderTest/InvestmentFlow/InvestmentTableViewController.swift @@ -21,7 +21,7 @@ extension InvestmentTableViewController: InvestmentDownInfoCellDelegate { func onDownload() { - if let url = URL(string: "https://www.google.com.br") + if let url = URL(string: "https://www.google.com") { let controller: SFSafariViewController = .init(url: url, entersReaderIfAvailable: true) @@ -32,9 +32,9 @@ extension InvestmentTableViewController: InvestmentDownInfoCellDelegate } } -extension InvestmentTableViewController: InvestimentButtonCellDelegate +extension InvestmentTableViewController: ButtonCellDelegate { - func onInvest() + func onAction() { showAlert(title: "Filipe Oliveira", message: "Investimento feito com sucesso ;)") } @@ -52,8 +52,6 @@ class InvestmentTableViewController: UITableViewController self.tableView.backgroundView = nil self.navigationItem.rightBarButtonItem?.isEnabled = model != nil - -// self.tableView.reloadData() } } @@ -81,8 +79,15 @@ class InvestmentTableViewController: UITableViewController self.navigationController?.navigationBar.isTranslucent = false self.navigationController?.navigationBar.shadowImage = .init() - Server_Request() + reloadAction() } + +// override func viewDidAppear(_ animated: Bool) +// { +// super.viewDidAppear(animated) +// +// reloadAction() +// } override func numberOfSections(in tableView: UITableView) -> Int { @@ -192,7 +197,7 @@ class InvestmentTableViewController: UITableViewController return cell } - guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? InvestimentButtonTableViewCell else + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? ButtonTableViewCell else { return .init() } @@ -216,7 +221,7 @@ class InvestmentTableViewController: UITableViewController return cell } - guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? InvestimentButtonTableViewCell else + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? ButtonTableViewCell else { return .init() } @@ -227,11 +232,12 @@ class InvestmentTableViewController: UITableViewController } else if indexPath.section == 3 { - guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? InvestimentButtonTableViewCell else + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonCell", for: indexPath) as? ButtonTableViewCell else { return .init() } + cell.applyContent(text: "Investir") cell.delegate = self return cell @@ -244,6 +250,8 @@ class InvestmentTableViewController: UITableViewController { model = nil + tableView.reloadData() + if #available(iOS 10.0, *) { if let refreshControl = tableView.refreshControl, !refreshControl.isRefreshing diff --git a/SantanderTest/SantanderTest/InvestmentFlow/View/ButtonTableViewCell.swift b/SantanderTest/SantanderTest/InvestmentFlow/View/ButtonTableViewCell.swift new file mode 100644 index 00000000..ed11a79e --- /dev/null +++ b/SantanderTest/SantanderTest/InvestmentFlow/View/ButtonTableViewCell.swift @@ -0,0 +1,43 @@ +// +// ButtonTableViewCell.swift +// SantanderTest +// +// Created by Filipe Oliveira on 29/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import UIKit + +protocol ButtonCellDelegate: NSObjectProtocol +{ + func onAction() +} + +class ButtonTableViewCell: UITableViewCell +{ + @IBOutlet weak var actionButton: UIButton! + + weak var delegate: ButtonCellDelegate? + + @IBAction func buttonAction() + { + delegate?.onAction() + } + + override func awakeFromNib() + { + super.awakeFromNib() + + actionButton.layer.cornerRadius = 23 + } + + override func setSelected(_ selected: Bool, animated: Bool) + { + super.setSelected(selected, animated: animated) + } + + func applyContent(text: String?) + { + actionButton.setTitle(text ?? "-", for: .normal) + } +} diff --git a/SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift b/SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift deleted file mode 100644 index fcacc77e..00000000 --- a/SantanderTest/SantanderTest/InvestmentFlow/View/InvestimentButtonTableViewCell.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// InvestimentButtonTableViewCell.swift -// SantanderTest -// -// Created by Filipe Oliveira on 29/06/19. -// Copyright © 2019 Filipe Oliveira. All rights reserved. -// - -import UIKit - -protocol InvestimentButtonCellDelegate: NSObjectProtocol -{ - func onInvest() -} - -class InvestimentButtonTableViewCell: UITableViewCell -{ - @IBOutlet weak var investButton: UIButton! - - weak var delegate: InvestimentButtonCellDelegate? - - @IBAction func investAction() - { - delegate?.onInvest() - } - - override func awakeFromNib() - { - super.awakeFromNib() - - investButton.layer.cornerRadius = 23 - } - - override func setSelected(_ selected: Bool, animated: Bool) - { - super.setSelected(selected, animated: animated) - } -} diff --git a/SantanderTest/SantanderTest/Fonts/DINEngschriftStd.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINEngschriftStd.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINEngschriftStd.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINEngschriftStd.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINMittelschriftStd.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINMittelschriftStd.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINMittelschriftStd.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINMittelschriftStd.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINNeuzeitGroteskStd-BdCond.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINNeuzeitGroteskStd-BdCond.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINNeuzeitGroteskStd-BdCond.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINNeuzeitGroteskStd-BdCond.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINNeuzeitGroteskStd-Light.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINNeuzeitGroteskStd-Light.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINNeuzeitGroteskStd-Light.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINNeuzeitGroteskStd-Light.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINPro-Black.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINPro-Black.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINPro-Black.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINPro-Black.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINPro-Bold.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINPro-Bold.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINPro-Bold.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINPro-Bold.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINPro-Light.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINPro-Light.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINPro-Light.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINPro-Light.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINPro-Medium.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINPro-Medium.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINPro-Medium.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINPro-Medium.otf diff --git a/SantanderTest/SantanderTest/Fonts/DINPro-Regular.otf b/SantanderTest/SantanderTest/Utils/Fonts/DINPro-Regular.otf similarity index 100% rename from SantanderTest/SantanderTest/Fonts/DINPro-Regular.otf rename to SantanderTest/SantanderTest/Utils/Fonts/DINPro-Regular.otf diff --git a/SantanderTest/SantanderTest/Utils/StringExtension.swift b/SantanderTest/SantanderTest/Utils/StringExtension.swift new file mode 100644 index 00000000..5925be8f --- /dev/null +++ b/SantanderTest/SantanderTest/Utils/StringExtension.swift @@ -0,0 +1,44 @@ +// +// StringExtension.swift +// SantanderTest +// +// Created by Filipe Oliveira on 30/06/19. +// Copyright © 2019 Filipe Oliveira. All rights reserved. +// + +import Foundation + +extension String +{ + var isValidEmail: Bool + { + let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" + + return NSPredicate(format:"SELF MATCHES %@", emailRegex).evaluate(with: self) + } + + var isValidPhone: Bool + { +// let phoneRegex = "REGEX TELEFONE BR" + +// return NSPredicate(format:"SELF MATCHES %@", phoneRegex).evaluate(with: self) + + return true + } + + func maskPhone(pattern: String, replacmentCharacter: Character) -> String + { + var pureNumber = self.replacingOccurrences( of: "[^0-9]", with: "", options: .regularExpression) + + for index in 0 ..< pattern.count + { + guard index < pureNumber.count else { return pureNumber } + let stringIndex = String.Index(encodedOffset: index) + let patternCharacter = pattern[stringIndex] + guard patternCharacter != replacmentCharacter else { continue } + pureNumber.insert(patternCharacter, at: stringIndex) + } + + return pureNumber + } +} diff --git a/SantanderTest/SantanderTestTests/SantanderTestTests.swift b/SantanderTest/SantanderTestTests/SantanderTestTests.swift index fd81e835..3590f3a9 100644 --- a/SantanderTest/SantanderTestTests/SantanderTestTests.swift +++ b/SantanderTest/SantanderTestTests/SantanderTestTests.swift @@ -13,6 +13,7 @@ class SantanderTestTests: XCTestCase { override func setUp() { // Put setup code here. This method is called before the invocation of each test method in the class. + testExample() } override func tearDown() { @@ -22,6 +23,9 @@ class SantanderTestTests: XCTestCase { func testExample() { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. + + XCTAssertTrue("fdso@outlook.com".isValidEmail, "Email Correto") + XCTAssertFalse("fdso@outlook.c".isValidEmail, "Email Incorreto") } func testPerformanceExample() { From 20428528574fb9b25bc41179104e84920cf3557f Mon Sep 17 00:00:00 2001 From: Filipe Oliveira Date: Sun, 30 Jun 2019 22:36:00 -0400 Subject: [PATCH 6/6] :D --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 73f60d6c..88870dba 100644 --- a/README.md +++ b/README.md @@ -81,3 +81,9 @@ Faça um fork desse desse repositório em seu Github e nos envie um Pull Request ### # Importante: não há prazo de entrega, faça com qualidade! # BOA SORTE! + +### Execução do projeto. + +* git clone em um repositorio local. +* Abrir workspace no Xcode +* Execute o projeto em dispositivo fisico para desfrutar do layout.