diff --git a/Assets/.gitkeep b/Assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/Classes/.gitkeep b/Classes/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/ConsentString.swift b/Classes/ConsentString.swift similarity index 100% rename from SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/ConsentString.swift rename to Classes/ConsentString.swift diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/ConsentStringError.swift b/Classes/ConsentStringError.swift similarity index 100% rename from SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/ConsentStringError.swift rename to Classes/ConsentStringError.swift diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/ConsentStringProtocol.swift b/Classes/ConsentStringProtocol.swift similarity index 100% rename from SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/ConsentStringProtocol.swift rename to Classes/ConsentStringProtocol.swift diff --git a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/ConsentWebView.swift b/Classes/ConsentWebView.swift similarity index 98% rename from SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/ConsentWebView.swift rename to Classes/ConsentWebView.swift index a54a6ce5c..00efcd7c0 100644 --- a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/ConsentWebView.swift +++ b/Classes/ConsentWebView.swift @@ -12,7 +12,6 @@ public typealias Callback = (ConsentWebView) -> Void import UIKit import WebKit import JavaScriptCore -import Consent_String_SDK_Swift /** SourcePoint's Consent SDK is a WebView that loads SourcePoint's web consent managment tool @@ -269,7 +268,7 @@ public class ConsentWebView: UIViewController, WKUIDelegate, WKNavigationDelegat windowFeatures: WKWindowFeatures!) -> WKWebView! { if navigationAction != nil && navigationAction!.request.url != nil { if #available(iOS 10.0, *) { - UIApplication.shared.open(navigationAction!.request.url!, options: [:], completionHandler: nil) + UIApplication.shared.open(navigationAction!.request.url!, options: convertToUIApplicationOpenExternalURLOptionsKeyDictionary([:]), completionHandler: nil) } else { UIApplication.shared.openURL(navigationAction!.request.url!) } @@ -661,3 +660,8 @@ public class ConsentWebView: UIViewController, WKUIDelegate, WKNavigationDelegat } } + +// Helper function inserted by Swift 4.2 migrator. +fileprivate func convertToUIApplicationOpenExternalURLOptionsKeyDictionary(_ input: [String: Any]) -> [UIApplication.OpenExternalURLOptionsKey: Any] { + return Dictionary(uniqueKeysWithValues: input.map { key, value in (UIApplication.OpenExternalURLOptionsKey(rawValue: key), value)}) +} diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Data.swift b/Classes/Data.swift similarity index 100% rename from SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Data.swift rename to Classes/Data.swift diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/String.swift b/Classes/String.swift similarity index 100% rename from SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/String.swift rename to Classes/String.swift diff --git a/ConsentWebView.podspec b/ConsentWebView.podspec new file mode 100644 index 000000000..8d0ef0a34 --- /dev/null +++ b/ConsentWebView.podspec @@ -0,0 +1,11 @@ +Pod::Spec.new do |s| + s.name = 'ConsentWebView' + s.version = '0.1.0' + s.summary = 'SourcePoint\'s ConsentWebView to handle privacy consents.' + s.homepage = 'https://www.sourcepoint.com' + s.license = { :type => 'MIT', :file => 'LICENSE' } + s.author = { 'SourcePoint' => 'contact@sourcepoint.com' } + s.source = { :git => 'https://github.com/SourcePointUSA/ios-cmp-app.git', :tag => s.version.to_s } + s.ios.deployment_target = '9.0' + s.source_files = 'Classes/**/*' +end diff --git a/Example/ConsentWebView.xcodeproj/project.pbxproj b/Example/ConsentWebView.xcodeproj/project.pbxproj new file mode 100644 index 000000000..03fe3004f --- /dev/null +++ b/Example/ConsentWebView.xcodeproj/project.pbxproj @@ -0,0 +1,551 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; + 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; + 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; + 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; + 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; + 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; + F76637244B9AC5CD71B12F07 /* Pods_ConsentWebView_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A32DFC3799BD36A08392D5A5 /* Pods_ConsentWebView_Example.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 607FACC81AFB9204008FA782 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 607FACCF1AFB9204008FA782; + remoteInfo = ConsentWebView; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 36C713B0FF3D9458F2FFA2EA /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; + 607FACD01AFB9204008FA782 /* ConsentWebView_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ConsentWebView_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 607FACE51AFB9204008FA782 /* ConsentWebView_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConsentWebView_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; + 663DE362110AEABD75816094 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; + 87B05BCA1D581C2C0CA7D12B /* Pods-ConsentWebView_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ConsentWebView_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.debug.xcconfig"; sourceTree = ""; }; + A32DFC3799BD36A08392D5A5 /* Pods_ConsentWebView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ConsentWebView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B5AA36A7D29C1E427A75F8D4 /* ConsentWebView.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = ConsentWebView.podspec; path = ../ConsentWebView.podspec; sourceTree = ""; }; + EB8C0D0D69E8DC276205D9C9 /* Pods-ConsentWebView_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ConsentWebView_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.release.xcconfig"; sourceTree = ""; }; + ED080B599B860DAE5BFF73AC /* Pods_ConsentWebView_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ConsentWebView_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 607FACCD1AFB9204008FA782 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F76637244B9AC5CD71B12F07 /* Pods_ConsentWebView_Example.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 607FACE21AFB9204008FA782 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 353109D52C429F9D370049A5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A32DFC3799BD36A08392D5A5 /* Pods_ConsentWebView_Example.framework */, + ED080B599B860DAE5BFF73AC /* Pods_ConsentWebView_Tests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 607FACC71AFB9204008FA782 = { + isa = PBXGroup; + children = ( + 607FACF51AFB993E008FA782 /* Podspec Metadata */, + 607FACD21AFB9204008FA782 /* Example for ConsentWebView */, + 607FACE81AFB9204008FA782 /* Tests */, + 607FACD11AFB9204008FA782 /* Products */, + E9A55E959364B51837BE6A09 /* Pods */, + 353109D52C429F9D370049A5 /* Frameworks */, + ); + sourceTree = ""; + }; + 607FACD11AFB9204008FA782 /* Products */ = { + isa = PBXGroup; + children = ( + 607FACD01AFB9204008FA782 /* ConsentWebView_Example.app */, + 607FACE51AFB9204008FA782 /* ConsentWebView_Tests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 607FACD21AFB9204008FA782 /* Example for ConsentWebView */ = { + isa = PBXGroup; + children = ( + 607FACD51AFB9204008FA782 /* AppDelegate.swift */, + 607FACD71AFB9204008FA782 /* ViewController.swift */, + 607FACD91AFB9204008FA782 /* Main.storyboard */, + 607FACDC1AFB9204008FA782 /* Images.xcassets */, + 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, + 607FACD31AFB9204008FA782 /* Supporting Files */, + ); + name = "Example for ConsentWebView"; + path = ConsentWebView; + sourceTree = ""; + }; + 607FACD31AFB9204008FA782 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 607FACD41AFB9204008FA782 /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 607FACE81AFB9204008FA782 /* Tests */ = { + isa = PBXGroup; + children = ( + 607FACEB1AFB9204008FA782 /* Tests.swift */, + 607FACE91AFB9204008FA782 /* Supporting Files */, + ); + path = Tests; + sourceTree = ""; + }; + 607FACE91AFB9204008FA782 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 607FACEA1AFB9204008FA782 /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { + isa = PBXGroup; + children = ( + B5AA36A7D29C1E427A75F8D4 /* ConsentWebView.podspec */, + 663DE362110AEABD75816094 /* README.md */, + 36C713B0FF3D9458F2FFA2EA /* LICENSE */, + ); + name = "Podspec Metadata"; + sourceTree = ""; + }; + E9A55E959364B51837BE6A09 /* Pods */ = { + isa = PBXGroup; + children = ( + 87B05BCA1D581C2C0CA7D12B /* Pods-ConsentWebView_Example.debug.xcconfig */, + EB8C0D0D69E8DC276205D9C9 /* Pods-ConsentWebView_Example.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 607FACCF1AFB9204008FA782 /* ConsentWebView_Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ConsentWebView_Example" */; + buildPhases = ( + 6F499D0E389E9201EEE38041 /* [CP] Check Pods Manifest.lock */, + 607FACCC1AFB9204008FA782 /* Sources */, + 607FACCD1AFB9204008FA782 /* Frameworks */, + 607FACCE1AFB9204008FA782 /* Resources */, + 63EDF142FEEF46CD515868B7 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ConsentWebView_Example; + productName = ConsentWebView; + productReference = 607FACD01AFB9204008FA782 /* ConsentWebView_Example.app */; + productType = "com.apple.product-type.application"; + }; + 607FACE41AFB9204008FA782 /* ConsentWebView_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ConsentWebView_Tests" */; + buildPhases = ( + 607FACE11AFB9204008FA782 /* Sources */, + 607FACE21AFB9204008FA782 /* Frameworks */, + 607FACE31AFB9204008FA782 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 607FACE71AFB9204008FA782 /* PBXTargetDependency */, + ); + name = ConsentWebView_Tests; + productName = Tests; + productReference = 607FACE51AFB9204008FA782 /* ConsentWebView_Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 607FACC81AFB9204008FA782 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = CocoaPods; + TargetAttributes = { + 607FACCF1AFB9204008FA782 = { + CreatedOnToolsVersion = 6.3.1; + LastSwiftMigration = 1010; + }; + 607FACE41AFB9204008FA782 = { + CreatedOnToolsVersion = 6.3.1; + LastSwiftMigration = 1010; + TestTargetID = 607FACCF1AFB9204008FA782; + }; + }; + }; + buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "ConsentWebView" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 607FACC71AFB9204008FA782; + productRefGroup = 607FACD11AFB9204008FA782 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 607FACCF1AFB9204008FA782 /* ConsentWebView_Example */, + 607FACE41AFB9204008FA782 /* ConsentWebView_Tests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 607FACCE1AFB9204008FA782 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, + 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, + 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 607FACE31AFB9204008FA782 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 63EDF142FEEF46CD515868B7 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/ConsentWebView/ConsentWebView.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + ); + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ConsentWebView.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 6F499D0E389E9201EEE38041 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ConsentWebView_Example-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 607FACCC1AFB9204008FA782 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, + 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 607FACE11AFB9204008FA782 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 607FACCF1AFB9204008FA782 /* ConsentWebView_Example */; + targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 607FACD91AFB9204008FA782 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 607FACDA1AFB9204008FA782 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 607FACDF1AFB9204008FA782 /* Base */, + ); + name = LaunchScreen.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 607FACED1AFB9204008FA782 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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 = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 607FACEE1AFB9204008FA782 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "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 = gnu99; + 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 = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 607FACF01AFB9204008FA782 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 87B05BCA1D581C2C0CA7D12B /* Pods-ConsentWebView_Example.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = ConsentWebView/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MODULE_NAME = ExampleApp; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + }; + name = Debug; + }; + 607FACF11AFB9204008FA782 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EB8C0D0D69E8DC276205D9C9 /* Pods-ConsentWebView_Example.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = ConsentWebView/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MODULE_NAME = ExampleApp; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + }; + name = Release; + }; + 607FACF31AFB9204008FA782 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ConsentWebView_Example.app/ConsentWebView_Example"; + }; + name = Debug; + }; + 607FACF41AFB9204008FA782 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + INFOPLIST_FILE = Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ConsentWebView_Example.app/ConsentWebView_Example"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "ConsentWebView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 607FACED1AFB9204008FA782 /* Debug */, + 607FACEE1AFB9204008FA782 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ConsentWebView_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 607FACF01AFB9204008FA782 /* Debug */, + 607FACF11AFB9204008FA782 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ConsentWebView_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 607FACF31AFB9204008FA782 /* Debug */, + 607FACF41AFB9204008FA782 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 607FACC81AFB9204008FA782 /* Project object */; +} diff --git a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/ConsentWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 66% rename from SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Example/ConsentWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata index aac4f092f..55525de64 100644 --- a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/Example/ConsentWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:ConsentWebView.xcodeproj"> diff --git a/Example/ConsentWebView.xcodeproj/xcshareddata/xcschemes/ConsentWebView-Example.xcscheme b/Example/ConsentWebView.xcodeproj/xcshareddata/xcschemes/ConsentWebView-Example.xcscheme new file mode 100644 index 000000000..cf517a7cd --- /dev/null +++ b/Example/ConsentWebView.xcodeproj/xcshareddata/xcschemes/ConsentWebView-Example.xcscheme @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/ConsentWebView.xcworkspace/contents.xcworkspacedata b/Example/ConsentWebView.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..8c50fbf82 --- /dev/null +++ b/Example/ConsentWebView.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/ConsentWebView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Example/ConsentWebView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/SourcePoint Demo App/SourcePoint Demo App/AppDelegate.swift b/Example/ConsentWebView/AppDelegate.swift similarity index 85% rename from SourcePoint Demo App/SourcePoint Demo App/AppDelegate.swift rename to Example/ConsentWebView/AppDelegate.swift index 3e055cfd9..cf6bfdc59 100644 --- a/SourcePoint Demo App/SourcePoint Demo App/AppDelegate.swift +++ b/Example/ConsentWebView/AppDelegate.swift @@ -1,9 +1,9 @@ // // AppDelegate.swift -// cmp-app-test-app +// ConsentWebView // -// Created by Dmitri Rabinowitz on 8/13/18. -// Copyright © 2018 Sourcepoint. All rights reserved. +// Created by SourcePoint +// Copyright (c) 2019 SourcePoint. All rights reserved. // import UIKit @@ -21,7 +21,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { 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. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } func applicationDidEnterBackground(_ application: UIApplication) { @@ -30,7 +30,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } 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. + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } func applicationDidBecomeActive(_ application: UIApplication) { diff --git a/Example/ConsentWebView/Base.lproj/LaunchScreen.xib b/Example/ConsentWebView/Base.lproj/LaunchScreen.xib new file mode 100644 index 000000000..68ff03e60 --- /dev/null +++ b/Example/ConsentWebView/Base.lproj/LaunchScreen.xib @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/ConsentWebView/Base.lproj/Main.storyboard b/Example/ConsentWebView/Base.lproj/Main.storyboard new file mode 100644 index 000000000..e555f4ca9 --- /dev/null +++ b/Example/ConsentWebView/Base.lproj/Main.storyboard @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SourcePoint Demo App/SourcePoint Demo App/Assets.xcassets/AppIcon.appiconset/Contents.json b/Example/ConsentWebView/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 53% rename from SourcePoint Demo App/SourcePoint Demo App/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Example/ConsentWebView/Images.xcassets/AppIcon.appiconset/Contents.json index d8db8d65f..7006c9eeb 100644 --- a/SourcePoint Demo App/SourcePoint Demo App/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Example/ConsentWebView/Images.xcassets/AppIcon.appiconset/Contents.json @@ -40,51 +40,6 @@ "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", @@ -95,4 +50,4 @@ "version" : 1, "author" : "xcode" } -} \ No newline at end of file +} diff --git a/SourcePoint Demo App/SourcePoint Demo App/Info.plist b/Example/ConsentWebView/Info.plist similarity index 75% rename from SourcePoint Demo App/SourcePoint Demo App/Info.plist rename to Example/ConsentWebView/Info.plist index 5ee6264c4..8c4faf025 100644 --- a/SourcePoint Demo App/SourcePoint Demo App/Info.plist +++ b/Example/ConsentWebView/Info.plist @@ -8,7 +8,7 @@ CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) + en CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -21,6 +21,8 @@ APPL CFBundleShortVersionString 1.0 + CFBundleSignature + ???? CFBundleVersion 1 LSRequiresIPhoneOS @@ -37,14 +39,6 @@ UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight diff --git a/SourcePoint Demo App/SourcePoint Demo App/ViewController.swift b/Example/ConsentWebView/ViewController.swift similarity index 96% rename from SourcePoint Demo App/SourcePoint Demo App/ViewController.swift rename to Example/ConsentWebView/ViewController.swift index 45e13c364..b9674b149 100644 --- a/SourcePoint Demo App/SourcePoint Demo App/ViewController.swift +++ b/Example/ConsentWebView/ViewController.swift @@ -1,14 +1,11 @@ // // ViewController.swift -// cmp-app-test-app -// -// Created by Dmitri Rabinowitz on 8/13/18. -// Copyright © 2018 Sourcepoint. All rights reserved. // +// Created by SourcePoint +// Copyright (c) 2019 SourcePoint. All rights reserved. import UIKit -import SourcePoint_iOS_SDK - +import ConsentWebView class ViewController: UIViewController { var consentWebView: ConsentWebView! @@ -78,7 +75,7 @@ class ViewController: UIViewController { // API for getting IAB Vendor Consents "\n IAB vendor consent for Smaato Inc", cbw.getIABVendorConsents([82]), - + // API for getting IAB Purpose Consents "\n IAB purpose consent for \"Ad selection, delivery, reporting\"", cbw.getIABPurposeConsents([3]), diff --git a/Example/Podfile b/Example/Podfile new file mode 100644 index 000000000..111cedb3a --- /dev/null +++ b/Example/Podfile @@ -0,0 +1,5 @@ +use_frameworks! + +target 'ConsentWebView_Example' do + pod 'ConsentWebView', :path => '../' +end diff --git a/Example/Podfile.lock b/Example/Podfile.lock new file mode 100644 index 000000000..32859ff03 --- /dev/null +++ b/Example/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - ConsentWebView (0.1.0) + +DEPENDENCIES: + - ConsentWebView (from `../`) + +EXTERNAL SOURCES: + ConsentWebView: + :path: "../" + +SPEC CHECKSUMS: + ConsentWebView: c6cae7018cd2c7482a754ab3de8068697f0004e0 + +PODFILE CHECKSUM: 1d3aa78e44f343be71d3a0c2a96ef61c05d43b08 + +COCOAPODS: 1.5.3 diff --git a/Example/Pods/Local Podspecs/ConsentWebView.podspec.json b/Example/Pods/Local Podspecs/ConsentWebView.podspec.json new file mode 100644 index 000000000..1c9032e85 --- /dev/null +++ b/Example/Pods/Local Podspecs/ConsentWebView.podspec.json @@ -0,0 +1,22 @@ +{ + "name": "ConsentWebView", + "version": "0.1.0", + "summary": "A short description of ConsentWebView.", + "description": "TODO: Add long description of the pod here.", + "homepage": "https://github.com/andresilveirah/ConsentWebView", + "license": { + "type": "MIT", + "file": "LICENSE" + }, + "authors": { + "andresilveirah": "andresilveirah@gmail.com" + }, + "source": { + "git": "https://github.com/andresilveirah/ConsentWebView.git", + "tag": "0.1.0" + }, + "platforms": { + "ios": "9.0" + }, + "source_files": "Classes/**/*" +} diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock new file mode 100644 index 000000000..32859ff03 --- /dev/null +++ b/Example/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - ConsentWebView (0.1.0) + +DEPENDENCIES: + - ConsentWebView (from `../`) + +EXTERNAL SOURCES: + ConsentWebView: + :path: "../" + +SPEC CHECKSUMS: + ConsentWebView: c6cae7018cd2c7482a754ab3de8068697f0004e0 + +PODFILE CHECKSUM: 1d3aa78e44f343be71d3a0c2a96ef61c05d43b08 + +COCOAPODS: 1.5.3 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 000000000..efa4822bd --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,629 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 069E318AA9B1980E634173D6ACFCC173 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8AE11A69911EAF1376AB7843F0DE7AE /* Data.swift */; }; + 29FBC67BB653FC3F9EF2C0DA2A7830CE /* ConsentWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AD815F30355005FE5E714175E33256C /* ConsentWebView.swift */; }; + 5B67BBB946667E8B234B24CEAB1EC094 /* Pods-ConsentWebView_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 153CD73C04C35E05A8C2F36E9FF7CFF2 /* Pods-ConsentWebView_Example-dummy.m */; }; + 7E3101D1916FC9BB0BA79EA1329DED26 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B4A79C1B9B5F469933C755D240F0BB4 /* String.swift */; }; + 8EDC841740E6C302E367378C26AD0027 /* ConsentStringError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0AEB8CF85D5868986AB37469CB54545 /* ConsentStringError.swift */; }; + 9DAF53F4E7083B1674271207D51645BA /* ConsentWebView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C1E8C9FC898B84A68ADBEA509C5E0A /* ConsentWebView-dummy.m */; }; + CDA913058CA731C8456289B120B39FCB /* ConsentString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A5E94E00058332EEF74BEAF321415FD /* ConsentString.swift */; }; + D45404BC2C2600946C677E2F3BD49F7A /* ConsentStringProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2117E16DFC43D07ED8D6E588E51D8C /* ConsentStringProtocol.swift */; }; + D47EB56418367BF704CB9897562E350D /* Pods-ConsentWebView_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D8F5F4C931A0DA72F3154786F7D61CC /* Pods-ConsentWebView_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E77E54ADD744B2FB9D5EEC5C8D931AC2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; + F4CEDCB9C231B99951DC8A2E5ACF0A0A /* ConsentWebView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CF7C650E6B23B9A11F635797B0050642 /* ConsentWebView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE96992652760DBEEDE91B42513184C3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + C8939E25D287BDF58E89B593B8CD44EF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 094FD17DCAB3B4BDA49963F2ED20EEDD; + remoteInfo = ConsentWebView; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 153CD73C04C35E05A8C2F36E9FF7CFF2 /* Pods-ConsentWebView_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ConsentWebView_Example-dummy.m"; sourceTree = ""; }; + 1D8F5F4C931A0DA72F3154786F7D61CC /* Pods-ConsentWebView_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ConsentWebView_Example-umbrella.h"; sourceTree = ""; }; + 2C2117E16DFC43D07ED8D6E588E51D8C /* ConsentStringProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsentStringProtocol.swift; path = Classes/ConsentStringProtocol.swift; sourceTree = ""; }; + 31BC20164F6D52BFDBE14BD9A9F50F2B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 32D9FA4D1DE81E6AD803201EFEF5DA06 /* Pods_ConsentWebView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ConsentWebView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4744DE84989537C326F6F39C59B14536 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4955B363D40E791B61C57083249214C6 /* ConsentWebView.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = ConsentWebView.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 6C5C33C1A8DFB44B007C9DE8B57FFA1C /* ConsentWebView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsentWebView-prefix.pch"; sourceTree = ""; }; + 6DB9CD7B1B995F59E35D06AA25BDB430 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 76D54ABE40D80D8BD0DE084D98EBAA19 /* Pods-ConsentWebView_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsentWebView_Example.release.xcconfig"; sourceTree = ""; }; + 7AD815F30355005FE5E714175E33256C /* ConsentWebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsentWebView.swift; path = Classes/ConsentWebView.swift; sourceTree = ""; }; + 7B4A79C1B9B5F469933C755D240F0BB4 /* String.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = String.swift; path = Classes/String.swift; sourceTree = ""; }; + 87C1E8C9FC898B84A68ADBEA509C5E0A /* ConsentWebView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ConsentWebView-dummy.m"; sourceTree = ""; }; + 9146750B11D93EA564F1A2BFFFEC2329 /* Pods-ConsentWebView_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsentWebView_Example-frameworks.sh"; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 94E2C3B4A81C165CADAC6C8F872B8BAB /* Pods-ConsentWebView_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ConsentWebView_Example.modulemap"; sourceTree = ""; }; + 9A55BC8FFF8848E9BF6D4D8DDDB6F99A /* ConsentWebView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ConsentWebView.modulemap; sourceTree = ""; }; + 9A5E94E00058332EEF74BEAF321415FD /* ConsentString.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsentString.swift; path = Classes/ConsentString.swift; sourceTree = ""; }; + B1438FA25CA0B47AD6C46F0EBFECFD53 /* ConsentWebView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ConsentWebView.xcconfig; sourceTree = ""; }; + B9FEA37CF2B593A0FE1BD453BB0CE814 /* Pods-ConsentWebView_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ConsentWebView_Example-acknowledgements.markdown"; sourceTree = ""; }; + BDA96CBDAF6E86300B50EA46126D40A5 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + C0AEB8CF85D5868986AB37469CB54545 /* ConsentStringError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsentStringError.swift; path = Classes/ConsentStringError.swift; sourceTree = ""; }; + C916A33C0CBA96ACCAEC440E0201E24E /* Pods-ConsentWebView_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsentWebView_Example-resources.sh"; sourceTree = ""; }; + CF7C650E6B23B9A11F635797B0050642 /* ConsentWebView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsentWebView-umbrella.h"; sourceTree = ""; }; + D005701E8E8CF9F0CEE34E8738A39F7E /* Pods-ConsentWebView_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsentWebView_Example.debug.xcconfig"; sourceTree = ""; }; + D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + E82B131362B56808C4F8E9943E3D6F2B /* Pods-ConsentWebView_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ConsentWebView_Example-acknowledgements.plist"; sourceTree = ""; }; + E8AE11A69911EAF1376AB7843F0DE7AE /* Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Data.swift; path = Classes/Data.swift; sourceTree = ""; }; + ED092711673B5F0E2809C4464A2E1B68 /* ConsentWebView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConsentWebView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 570CB02AAC36F889E970CBFFD2E5BBB8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FE96992652760DBEEDE91B42513184C3 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CC4BA5446CF172C7A2405036B99176DE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E77E54ADD744B2FB9D5EEC5C8D931AC2 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2E212322E62D6BFC91B0DC1A4EA5A09F /* Development Pods */ = { + isa = PBXGroup; + children = ( + D5E86F541574D330FA45455860151A90 /* ConsentWebView */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 44D5347904CF754D6785B84253F2574A /* iOS */ = { + isa = PBXGroup; + children = ( + D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 5AB0801FE54E0669B4F5D54AB53B5D32 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + B11E498B974A7FAB79F37E11147B3341 /* Pods-ConsentWebView_Example */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 2E212322E62D6BFC91B0DC1A4EA5A09F /* Development Pods */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + EEAD21ADCD3BE9E1FE782BF037242BAF /* Products */, + 5AB0801FE54E0669B4F5D54AB53B5D32 /* Targets Support Files */, + ); + sourceTree = ""; + }; + B11E498B974A7FAB79F37E11147B3341 /* Pods-ConsentWebView_Example */ = { + isa = PBXGroup; + children = ( + 6DB9CD7B1B995F59E35D06AA25BDB430 /* Info.plist */, + 94E2C3B4A81C165CADAC6C8F872B8BAB /* Pods-ConsentWebView_Example.modulemap */, + B9FEA37CF2B593A0FE1BD453BB0CE814 /* Pods-ConsentWebView_Example-acknowledgements.markdown */, + E82B131362B56808C4F8E9943E3D6F2B /* Pods-ConsentWebView_Example-acknowledgements.plist */, + 153CD73C04C35E05A8C2F36E9FF7CFF2 /* Pods-ConsentWebView_Example-dummy.m */, + 9146750B11D93EA564F1A2BFFFEC2329 /* Pods-ConsentWebView_Example-frameworks.sh */, + C916A33C0CBA96ACCAEC440E0201E24E /* Pods-ConsentWebView_Example-resources.sh */, + 1D8F5F4C931A0DA72F3154786F7D61CC /* Pods-ConsentWebView_Example-umbrella.h */, + D005701E8E8CF9F0CEE34E8738A39F7E /* Pods-ConsentWebView_Example.debug.xcconfig */, + 76D54ABE40D80D8BD0DE084D98EBAA19 /* Pods-ConsentWebView_Example.release.xcconfig */, + ); + name = "Pods-ConsentWebView_Example"; + path = "Target Support Files/Pods-ConsentWebView_Example"; + sourceTree = ""; + }; + B7983494921F0158DC15E1105E616816 /* Pod */ = { + isa = PBXGroup; + children = ( + 4955B363D40E791B61C57083249214C6 /* ConsentWebView.podspec */, + BDA96CBDAF6E86300B50EA46126D40A5 /* LICENSE */, + 31BC20164F6D52BFDBE14BD9A9F50F2B /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 44D5347904CF754D6785B84253F2574A /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + D5BE7CEFE60BA5959DBDF9AD55201E86 /* Support Files */ = { + isa = PBXGroup; + children = ( + 9A55BC8FFF8848E9BF6D4D8DDDB6F99A /* ConsentWebView.modulemap */, + B1438FA25CA0B47AD6C46F0EBFECFD53 /* ConsentWebView.xcconfig */, + 87C1E8C9FC898B84A68ADBEA509C5E0A /* ConsentWebView-dummy.m */, + 6C5C33C1A8DFB44B007C9DE8B57FFA1C /* ConsentWebView-prefix.pch */, + CF7C650E6B23B9A11F635797B0050642 /* ConsentWebView-umbrella.h */, + 4744DE84989537C326F6F39C59B14536 /* Info.plist */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/ConsentWebView"; + sourceTree = ""; + }; + D5E86F541574D330FA45455860151A90 /* ConsentWebView */ = { + isa = PBXGroup; + children = ( + 9A5E94E00058332EEF74BEAF321415FD /* ConsentString.swift */, + C0AEB8CF85D5868986AB37469CB54545 /* ConsentStringError.swift */, + 2C2117E16DFC43D07ED8D6E588E51D8C /* ConsentStringProtocol.swift */, + 7AD815F30355005FE5E714175E33256C /* ConsentWebView.swift */, + E8AE11A69911EAF1376AB7843F0DE7AE /* Data.swift */, + 7B4A79C1B9B5F469933C755D240F0BB4 /* String.swift */, + B7983494921F0158DC15E1105E616816 /* Pod */, + D5BE7CEFE60BA5959DBDF9AD55201E86 /* Support Files */, + ); + name = ConsentWebView; + path = ../..; + sourceTree = ""; + }; + EEAD21ADCD3BE9E1FE782BF037242BAF /* Products */ = { + isa = PBXGroup; + children = ( + ED092711673B5F0E2809C4464A2E1B68 /* ConsentWebView.framework */, + 32D9FA4D1DE81E6AD803201EFEF5DA06 /* Pods_ConsentWebView_Example.framework */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + E22A90848CB57E11878D38AF45944FA1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F4CEDCB9C231B99951DC8A2E5ACF0A0A /* ConsentWebView-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ED69D1873576C80210C0523C8BD2554A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D47EB56418367BF704CB9897562E350D /* Pods-ConsentWebView_Example-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 094FD17DCAB3B4BDA49963F2ED20EEDD /* ConsentWebView */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6D9E54668ED16BAD8588C920F3B1AF23 /* Build configuration list for PBXNativeTarget "ConsentWebView" */; + buildPhases = ( + E22A90848CB57E11878D38AF45944FA1 /* Headers */, + DD44BBBAC627A9F90DEC5F3DD1DFCB3C /* Sources */, + CC4BA5446CF172C7A2405036B99176DE /* Frameworks */, + F4BCD9E526EC683D018238B85F4391F5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ConsentWebView; + productName = ConsentWebView; + productReference = ED092711673B5F0E2809C4464A2E1B68 /* ConsentWebView.framework */; + productType = "com.apple.product-type.framework"; + }; + 375A9B5F318CD47235EA68AF39F01B26 /* Pods-ConsentWebView_Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = FC12D1C1AF84527057DD5589A7D780D6 /* Build configuration list for PBXNativeTarget "Pods-ConsentWebView_Example" */; + buildPhases = ( + ED69D1873576C80210C0523C8BD2554A /* Headers */, + E08EFABEEFE4680461D917200921F5CB /* Sources */, + 570CB02AAC36F889E970CBFFD2E5BBB8 /* Frameworks */, + 7252B8E1766579042BF0D7A448C237A3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 0ACC0A4DAC5594B00C73601FC73D6352 /* PBXTargetDependency */, + ); + name = "Pods-ConsentWebView_Example"; + productName = "Pods-ConsentWebView_Example"; + productReference = 32D9FA4D1DE81E6AD803201EFEF5DA06 /* Pods_ConsentWebView_Example.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; + TargetAttributes = { + 094FD17DCAB3B4BDA49963F2ED20EEDD = { + LastSwiftMigration = 1010; + }; + }; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = EEAD21ADCD3BE9E1FE782BF037242BAF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 094FD17DCAB3B4BDA49963F2ED20EEDD /* ConsentWebView */, + 375A9B5F318CD47235EA68AF39F01B26 /* Pods-ConsentWebView_Example */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7252B8E1766579042BF0D7A448C237A3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F4BCD9E526EC683D018238B85F4391F5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + DD44BBBAC627A9F90DEC5F3DD1DFCB3C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CDA913058CA731C8456289B120B39FCB /* ConsentString.swift in Sources */, + 8EDC841740E6C302E367378C26AD0027 /* ConsentStringError.swift in Sources */, + D45404BC2C2600946C677E2F3BD49F7A /* ConsentStringProtocol.swift in Sources */, + 9DAF53F4E7083B1674271207D51645BA /* ConsentWebView-dummy.m in Sources */, + 29FBC67BB653FC3F9EF2C0DA2A7830CE /* ConsentWebView.swift in Sources */, + 069E318AA9B1980E634173D6ACFCC173 /* Data.swift in Sources */, + 7E3101D1916FC9BB0BA79EA1329DED26 /* String.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E08EFABEEFE4680461D917200921F5CB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5B67BBB946667E8B234B24CEAB1EC094 /* Pods-ConsentWebView_Example-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0ACC0A4DAC5594B00C73601FC73D6352 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ConsentWebView; + target = 094FD17DCAB3B4BDA49963F2ED20EEDD /* ConsentWebView */; + targetProxy = C8939E25D287BDF58E89B593B8CD44EF /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1A523F67EB2B0D81D595D02C1CFA9E8C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 76D54ABE40D80D8BD0DE084D98EBAA19 /* Pods-ConsentWebView_Example.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-ConsentWebView_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 1FEFED1B60C735EA72F39941912056AC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B1438FA25CA0B47AD6C46F0EBFECFD53 /* ConsentWebView.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/ConsentWebView/ConsentWebView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ConsentWebView/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/ConsentWebView/ConsentWebView.modulemap"; + PRODUCT_MODULE_NAME = ConsentWebView; + PRODUCT_NAME = ConsentWebView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 21BC5330F10959902FF3F81619F406CB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D005701E8E8CF9F0CEE34E8738A39F7E /* Pods-ConsentWebView_Example.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-ConsentWebView_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 43E15C11CAD0C1C80B68D360DD4C813D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B1438FA25CA0B47AD6C46F0EBFECFD53 /* ConsentWebView.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/ConsentWebView/ConsentWebView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ConsentWebView/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/ConsentWebView/ConsentWebView.modulemap"; + PRODUCT_MODULE_NAME = ConsentWebView; + PRODUCT_NAME = ConsentWebView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 50646285DD9FD95AF390BDA3FB1948EA /* 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_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + 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 = ( + "POD_CONFIGURATION_DEBUG=1", + "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 = 9.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 58DCB2BA7C34E84C00C38CEF18A96D11 /* 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_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + 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_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=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 = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.2; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 50646285DD9FD95AF390BDA3FB1948EA /* Debug */, + 58DCB2BA7C34E84C00C38CEF18A96D11 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6D9E54668ED16BAD8588C920F3B1AF23 /* Build configuration list for PBXNativeTarget "ConsentWebView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1FEFED1B60C735EA72F39941912056AC /* Debug */, + 43E15C11CAD0C1C80B68D360DD4C813D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FC12D1C1AF84527057DD5589A7D780D6 /* Build configuration list for PBXNativeTarget "Pods-ConsentWebView_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 21BC5330F10959902FF3F81619F406CB /* Debug */, + 1A523F67EB2B0D81D595D02C1CFA9E8C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-dummy.m b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-dummy.m new file mode 100644 index 000000000..4ca72f4cf --- /dev/null +++ b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_ConsentWebView : NSObject +@end +@implementation PodsDummy_ConsentWebView +@end diff --git a/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-prefix.pch b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-prefix.pch new file mode 100644 index 000000000..beb2a2441 --- /dev/null +++ b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-umbrella.h b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-umbrella.h new file mode 100644 index 000000000..9f9f959dd --- /dev/null +++ b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double ConsentWebViewVersionNumber; +FOUNDATION_EXPORT const unsigned char ConsentWebViewVersionString[]; + diff --git a/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView.modulemap b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView.modulemap new file mode 100644 index 000000000..a1501b67a --- /dev/null +++ b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView.modulemap @@ -0,0 +1,6 @@ +framework module ConsentWebView { + umbrella header "ConsentWebView-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView.xcconfig b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView.xcconfig new file mode 100644 index 000000000..652493af2 --- /dev/null +++ b/Example/Pods/Target Support Files/ConsentWebView/ConsentWebView.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ConsentWebView +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/Info.plist b/Example/Pods/Target Support Files/ConsentWebView/Info.plist similarity index 67% rename from SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/Info.plist rename to Example/Pods/Target Support Files/ConsentWebView/Info.plist index 1007fd9dd..136cec7bd 100644 --- a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/Info.plist +++ b/Example/Pods/Target Support Files/ConsentWebView/Info.plist @@ -3,21 +3,23 @@ CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) + en CFBundleExecutable - $(EXECUTABLE_NAME) + ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + ${PRODUCT_BUNDLE_IDENTIFIER} CFBundleInfoDictionaryVersion 6.0 CFBundleName - $(PRODUCT_NAME) + ${PRODUCT_NAME} CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + 0.1.0 + CFBundleSignature + ???? CFBundleVersion - $(CURRENT_PROJECT_VERSION) + ${CURRENT_PROJECT_VERSION} NSPrincipalClass diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Info.plist b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Info.plist new file mode 100644 index 000000000..2243fe6e2 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-acknowledgements.markdown new file mode 100644 index 000000000..94694783d --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-acknowledgements.markdown @@ -0,0 +1,26 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## ConsentWebView + +Copyright (c) 2019 andresilveirah + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-acknowledgements.plist new file mode 100644 index 000000000..5f241cb4e --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-acknowledgements.plist @@ -0,0 +1,58 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2019 andresilveirah <andresilveirah@gmail.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + ConsentWebView + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-dummy.m b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-dummy.m new file mode 100644 index 000000000..96a4d4e16 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ConsentWebView_Example : NSObject +@end +@implementation PodsDummy_Pods_ConsentWebView_Example +@end diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-frameworks.sh new file mode 100755 index 000000000..09e3fdee1 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-frameworks.sh @@ -0,0 +1,153 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=1 +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/ConsentWebView/ConsentWebView.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/ConsentWebView/ConsentWebView.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-resources.sh b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-resources.sh new file mode 100755 index 000000000..345301f2c --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-resources.sh @@ -0,0 +1,118 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-umbrella.h b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-umbrella.h new file mode 100644 index 000000000..59fe976f6 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_ConsentWebView_ExampleVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ConsentWebView_ExampleVersionString[]; + diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.debug.xcconfig new file mode 100644 index 000000000..a51ef3fe9 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.debug.xcconfig @@ -0,0 +1,11 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentWebView" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/ConsentWebView/ConsentWebView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "ConsentWebView" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.modulemap b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.modulemap new file mode 100644 index 000000000..a49715f56 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.modulemap @@ -0,0 +1,6 @@ +framework module Pods_ConsentWebView_Example { + umbrella header "Pods-ConsentWebView_Example-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.release.xcconfig new file mode 100644 index 000000000..a51ef3fe9 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-ConsentWebView_Example/Pods-ConsentWebView_Example.release.xcconfig @@ -0,0 +1,11 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentWebView" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/ConsentWebView/ConsentWebView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "ConsentWebView" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK SwiftTests/Info.plist b/Example/Tests/Info.plist similarity index 89% rename from SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK SwiftTests/Info.plist rename to Example/Tests/Info.plist index 6c40a6cd0..ba72822e8 100644 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK SwiftTests/Info.plist +++ b/Example/Tests/Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) + en CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -16,6 +16,8 @@ BNDL CFBundleShortVersionString 1.0 + CFBundleSignature + ???? CFBundleVersion 1 diff --git a/Example/Tests/Tests.swift b/Example/Tests/Tests.swift new file mode 100644 index 000000000..730831a90 --- /dev/null +++ b/Example/Tests/Tests.swift @@ -0,0 +1,27 @@ +import XCTest + +class Tests: XCTestCase { + + override func setUp() { + super.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. + super.tearDown() + } + + func testExample() { + // This is an example of a functional test case. + XCTAssert(true, "Pass") + } + + 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/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/LICENSE b/LICENSE similarity index 86% rename from SourcePoint_iOS_SDK/Consent-String-SDK-Swift/LICENSE rename to LICENSE index ab602974d..bcf4ba6c8 100644 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/LICENSE +++ b/LICENSE @@ -1,6 +1,4 @@ -MIT License - -Copyright (c) 2018 +Copyright (c) 2019 SourcePoint Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,13 +7,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md index a6ba12792..5614ae1cf 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,22 @@ # iOS Setup guide -* Clone https://github.com/SourcePointUSA/ios-cmp-app repository to an arbitrary directory on your system. -Open your existing iOS app in xcode -Make sure you do NOT have the SourcePoint_iOS_SDK project open in xcode and drag SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj file to xcode’s navigation panel on the left, directly under the root item of your project. screen shot 2018-11-01 at 10 06 25 am +We strongly recommend the use of [CocoaPods](https://cocoapods.org) in order to install our SDK. +In your `Podfile` add the following line to your app target: -* Change the active scheme to SourcePoint_iOS_SDK on the top bar and build the library from Product -> Build (cmd + B). screen shot 2018-11-01 at 11 33 04 am - - -* Select the project (root item) on the left navigation panel in xcode and select the target you want to add the CMP library to under the TARGETS list. Expand SourcePoint_iOS_SDK.xcodeproj/SourcePoint_iOS_SDK/Products in the navigation panel and drag Consent_String_SDK_Swift.framewrok to the list of “Embedded Binaries” screen shot 2018-11-01 at 11 35 06 am - - -* Import SourcePoint_iOS_SDK module in your AppDelegate.swift to test the library can be imported successfully -Switch back the active schema to your own project and run the app and you should be all set +``` +pod ConsentWebView +``` # How to use the ConsentWebView widget * Open your project’s info.plist file and make sure you have App Transport Security Settings/Allow Arbitrary Loads set to YES screen shot 2018-11-01 at 11 36 50 am - * Instantiate a ConsentWebView object in your main ViewController, set configuration variables and a onInteractionComplete callback and add the ConsentWebView to your ViewController as a subview: ```swift import UIKit -import SourcePoint_iOS_SDK - +import ConsentWebView class ViewController: UIViewController { var consentWebView: ConsentWebView! @@ -105,7 +97,7 @@ class ViewController: UIViewController { // API for getting IAB Vendor Consents "\n IAB vendor consent for Smaato Inc", cbw.getIABVendorConsents([82]), - + // API for getting IAB Purpose Consents "\n IAB purpose consent for \"Ad selection, delivery, reporting\"", cbw.getIABPurposeConsents([3]), @@ -139,11 +131,6 @@ class ViewController: UIViewController { } ``` -# How to build the and export the framework as a binary [untested] -* On the top left corner in Xcode select `SourcePoint_iOS_SDK` as the active scheme and select `Generic iOS Device` as the target device. -* Clean and then build the project under Product menu. -* Under the Products branch in Project Navigator on the left right click on `SourcePoint_iOS_SDK.framework` and select `Show in Finder`, it should point you to the location of a `SourcePoint_iOS_SDK.framework` file, that's you compiled framework you can import to other projects. - # Complete Docs For the complete docs open the `./SourcePoint_iOS_SDK/docs/index.html` in the browser. In order to generate the docs you'll need first to install the `jazzy` gem: diff --git a/SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.pbxproj b/SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.pbxproj deleted file mode 100644 index 0ee494455..000000000 --- a/SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.pbxproj +++ /dev/null @@ -1,411 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 27C5EFD9218B5D2B00F2F7B7 /* SourcePoint_iOS_SDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E5C3AD218A66AC0058BD36 /* SourcePoint_iOS_SDK.framework */; }; - 27C5EFDA218B5D2B00F2F7B7 /* SourcePoint_iOS_SDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 27E5C3AD218A66AC0058BD36 /* SourcePoint_iOS_SDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 27E5C388218A657D0058BD36 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E5C387218A657D0058BD36 /* AppDelegate.swift */; }; - 27E5C38A218A657D0058BD36 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E5C389218A657D0058BD36 /* ViewController.swift */; }; - 27E5C38D218A657D0058BD36 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 27E5C38B218A657D0058BD36 /* Main.storyboard */; }; - 27E5C38F218A657E0058BD36 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 27E5C38E218A657E0058BD36 /* Assets.xcassets */; }; - 27E5C392218A657E0058BD36 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 27E5C390218A657E0058BD36 /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 27C5EFDB218B5D2B00F2F7B7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 27E5C3A1218A65B50058BD36 /* SourcePoint_iOS_SDK.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 273E6BDA218A46A40065DDD8; - remoteInfo = SourcePoint_iOS_SDK; - }; - 27E5C3AC218A66AC0058BD36 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 27E5C3A1218A65B50058BD36 /* SourcePoint_iOS_SDK.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 273E6BDB218A46A40065DDD8; - remoteInfo = SourcePoint_iOS_SDK; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 27E5C3BF218B3D9C0058BD36 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 27C5EFDA218B5D2B00F2F7B7 /* SourcePoint_iOS_SDK.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 27E5C384218A657D0058BD36 /* SourcePoint Demo App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SourcePoint Demo App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 27E5C387218A657D0058BD36 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 27E5C389218A657D0058BD36 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 27E5C38C218A657D0058BD36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 27E5C38E218A657E0058BD36 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 27E5C391218A657E0058BD36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 27E5C393218A657E0058BD36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 27E5C3A1218A65B50058BD36 /* SourcePoint_iOS_SDK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SourcePoint_iOS_SDK.xcodeproj; path = ../SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 27E5C381218A657D0058BD36 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 27C5EFD9218B5D2B00F2F7B7 /* SourcePoint_iOS_SDK.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 27E5C37B218A657D0058BD36 = { - isa = PBXGroup; - children = ( - 27E5C3A1218A65B50058BD36 /* SourcePoint_iOS_SDK.xcodeproj */, - 27E5C386218A657D0058BD36 /* SourcePoint Demo App */, - 27E5C385218A657D0058BD36 /* Products */, - ); - sourceTree = ""; - }; - 27E5C385218A657D0058BD36 /* Products */ = { - isa = PBXGroup; - children = ( - 27E5C384218A657D0058BD36 /* SourcePoint Demo App.app */, - ); - name = Products; - sourceTree = ""; - }; - 27E5C386218A657D0058BD36 /* SourcePoint Demo App */ = { - isa = PBXGroup; - children = ( - 27E5C387218A657D0058BD36 /* AppDelegate.swift */, - 27E5C389218A657D0058BD36 /* ViewController.swift */, - 27E5C38B218A657D0058BD36 /* Main.storyboard */, - 27E5C38E218A657E0058BD36 /* Assets.xcassets */, - 27E5C390218A657E0058BD36 /* LaunchScreen.storyboard */, - 27E5C393218A657E0058BD36 /* Info.plist */, - ); - path = "SourcePoint Demo App"; - sourceTree = ""; - }; - 27E5C3A9218A66AC0058BD36 /* Products */ = { - isa = PBXGroup; - children = ( - 27E5C3AD218A66AC0058BD36 /* SourcePoint_iOS_SDK.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 27E5C383218A657D0058BD36 /* SourcePoint Demo App */ = { - isa = PBXNativeTarget; - buildConfigurationList = 27E5C396218A657E0058BD36 /* Build configuration list for PBXNativeTarget "SourcePoint Demo App" */; - buildPhases = ( - 27E5C380218A657D0058BD36 /* Sources */, - 27E5C381218A657D0058BD36 /* Frameworks */, - 27E5C382218A657D0058BD36 /* Resources */, - 27E5C3BF218B3D9C0058BD36 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 27C5EFDC218B5D2B00F2F7B7 /* PBXTargetDependency */, - ); - name = "SourcePoint Demo App"; - productName = "SourcePoint Demo App"; - productReference = 27E5C384218A657D0058BD36 /* SourcePoint Demo App.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 27E5C37C218A657D0058BD36 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0940; - LastUpgradeCheck = 0940; - ORGANIZATIONNAME = SourcePoint; - TargetAttributes = { - 27E5C383218A657D0058BD36 = { - CreatedOnToolsVersion = 9.4.1; - }; - }; - }; - buildConfigurationList = 27E5C37F218A657D0058BD36 /* Build configuration list for PBXProject "SourcePoint Demo App" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 27E5C37B218A657D0058BD36; - productRefGroup = 27E5C385218A657D0058BD36 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 27E5C3A9218A66AC0058BD36 /* Products */; - ProjectRef = 27E5C3A1218A65B50058BD36 /* SourcePoint_iOS_SDK.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 27E5C383218A657D0058BD36 /* SourcePoint Demo App */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 27E5C3AD218A66AC0058BD36 /* SourcePoint_iOS_SDK.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = SourcePoint_iOS_SDK.framework; - remoteRef = 27E5C3AC218A66AC0058BD36 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 27E5C382218A657D0058BD36 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 27E5C392218A657E0058BD36 /* LaunchScreen.storyboard in Resources */, - 27E5C38F218A657E0058BD36 /* Assets.xcassets in Resources */, - 27E5C38D218A657D0058BD36 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 27E5C380218A657D0058BD36 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 27E5C38A218A657D0058BD36 /* ViewController.swift in Sources */, - 27E5C388218A657D0058BD36 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 27C5EFDC218B5D2B00F2F7B7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SourcePoint_iOS_SDK; - targetProxy = 27C5EFDB218B5D2B00F2F7B7 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 27E5C38B218A657D0058BD36 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 27E5C38C218A657D0058BD36 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 27E5C390218A657E0058BD36 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 27E5C391218A657E0058BD36 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 27E5C394218A657E0058BD36 /* 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 = 11.4; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 27E5C395218A657E0058BD36 /* 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 = 11.4; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 27E5C397218A657E0058BD36 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = "SourcePoint Demo App/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.sourcepoint.SourcePoint-Demo-App"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 27E5C398218A657E0058BD36 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = "SourcePoint Demo App/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.sourcepoint.SourcePoint-Demo-App"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 27E5C37F218A657D0058BD36 /* Build configuration list for PBXProject "SourcePoint Demo App" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 27E5C394218A657E0058BD36 /* Debug */, - 27E5C395218A657E0058BD36 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 27E5C396218A657E0058BD36 /* Build configuration list for PBXNativeTarget "SourcePoint Demo App" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 27E5C397218A657E0058BD36 /* Debug */, - 27E5C398218A657E0058BD36 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 27E5C37C218A657D0058BD36 /* Project object */; -} diff --git a/SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 6dc7616c1..000000000 --- a/SourcePoint Demo App/SourcePoint Demo App.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/SourcePoint Demo App/SourcePoint Demo App/Assets.xcassets/Contents.json b/SourcePoint Demo App/SourcePoint Demo App/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c9..000000000 --- a/SourcePoint Demo App/SourcePoint Demo App/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/SourcePoint Demo App/SourcePoint Demo App/Base.lproj/LaunchScreen.storyboard b/SourcePoint Demo App/SourcePoint Demo App/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f83f6fd58..000000000 --- a/SourcePoint Demo App/SourcePoint Demo App/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SourcePoint Demo App/SourcePoint Demo App/Base.lproj/Main.storyboard b/SourcePoint Demo App/SourcePoint Demo App/Base.lproj/Main.storyboard deleted file mode 100644 index 03c13c228..000000000 --- a/SourcePoint Demo App/SourcePoint Demo App/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.pbxproj b/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.pbxproj deleted file mode 100644 index 8afeec66b..000000000 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,496 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - F142B52A2093A1C5001ABE60 /* Consent_String_SDK_Swift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F142B5202093A1C5001ABE60 /* Consent_String_SDK_Swift.framework */; }; - F142B52F2093A1C5001ABE60 /* Consent_String_SDK_SwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B52E2093A1C5001ABE60 /* Consent_String_SDK_SwiftTests.swift */; }; - F142B5312093A1C5001ABE60 /* Consent_String_SDK_Swift.h in Headers */ = {isa = PBXBuildFile; fileRef = F142B5232093A1C5001ABE60 /* Consent_String_SDK_Swift.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F142B53F2093A207001ABE60 /* ConsentString.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53A2093A206001ABE60 /* ConsentString.swift */; }; - F142B5402093A207001ABE60 /* ConsentString.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53A2093A206001ABE60 /* ConsentString.swift */; }; - F142B5412093A207001ABE60 /* ConsentStringError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53B2093A206001ABE60 /* ConsentStringError.swift */; }; - F142B5422093A207001ABE60 /* ConsentStringError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53B2093A206001ABE60 /* ConsentStringError.swift */; }; - F142B5432093A207001ABE60 /* ConsentStringProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53C2093A206001ABE60 /* ConsentStringProtocol.swift */; }; - F142B5442093A207001ABE60 /* ConsentStringProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53C2093A206001ABE60 /* ConsentStringProtocol.swift */; }; - F142B5452093A207001ABE60 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53D2093A207001ABE60 /* String.swift */; }; - F142B5462093A207001ABE60 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53D2093A207001ABE60 /* String.swift */; }; - F142B5472093A207001ABE60 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53E2093A207001ABE60 /* Data.swift */; }; - F142B5482093A207001ABE60 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = F142B53E2093A207001ABE60 /* Data.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - F142B52B2093A1C5001ABE60 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F142B5172093A1C5001ABE60 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F142B51F2093A1C5001ABE60; - remoteInfo = "Consent String SDK Swift"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - F142B5202093A1C5001ABE60 /* Consent_String_SDK_Swift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Consent_String_SDK_Swift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F142B5232093A1C5001ABE60 /* Consent_String_SDK_Swift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Consent_String_SDK_Swift.h; sourceTree = ""; }; - F142B5242093A1C5001ABE60 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F142B5292093A1C5001ABE60 /* Consent String SDK SwiftTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Consent String SDK SwiftTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - F142B52E2093A1C5001ABE60 /* Consent_String_SDK_SwiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Consent_String_SDK_SwiftTests.swift; sourceTree = ""; }; - F142B5302093A1C5001ABE60 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F142B53A2093A206001ABE60 /* ConsentString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsentString.swift; sourceTree = ""; }; - F142B53B2093A206001ABE60 /* ConsentStringError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsentStringError.swift; sourceTree = ""; }; - F142B53C2093A206001ABE60 /* ConsentStringProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsentStringProtocol.swift; sourceTree = ""; }; - F142B53D2093A207001ABE60 /* String.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = String.swift; sourceTree = ""; }; - F142B53E2093A207001ABE60 /* Data.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F142B51C2093A1C5001ABE60 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F142B5262093A1C5001ABE60 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F142B52A2093A1C5001ABE60 /* Consent_String_SDK_Swift.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - F142B5162093A1C5001ABE60 = { - isa = PBXGroup; - children = ( - F142B5222093A1C5001ABE60 /* Consent String SDK Swift */, - F142B52D2093A1C5001ABE60 /* Consent String SDK SwiftTests */, - F142B5212093A1C5001ABE60 /* Products */, - ); - sourceTree = ""; - }; - F142B5212093A1C5001ABE60 /* Products */ = { - isa = PBXGroup; - children = ( - F142B5202093A1C5001ABE60 /* Consent_String_SDK_Swift.framework */, - F142B5292093A1C5001ABE60 /* Consent String SDK SwiftTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - F142B5222093A1C5001ABE60 /* Consent String SDK Swift */ = { - isa = PBXGroup; - children = ( - F142B53C2093A206001ABE60 /* ConsentStringProtocol.swift */, - F142B53A2093A206001ABE60 /* ConsentString.swift */, - F142B53B2093A206001ABE60 /* ConsentStringError.swift */, - F142B53E2093A207001ABE60 /* Data.swift */, - F142B53D2093A207001ABE60 /* String.swift */, - F142B5232093A1C5001ABE60 /* Consent_String_SDK_Swift.h */, - F142B5242093A1C5001ABE60 /* Info.plist */, - ); - path = "Consent String SDK Swift"; - sourceTree = ""; - }; - F142B52D2093A1C5001ABE60 /* Consent String SDK SwiftTests */ = { - isa = PBXGroup; - children = ( - F142B52E2093A1C5001ABE60 /* Consent_String_SDK_SwiftTests.swift */, - F142B5302093A1C5001ABE60 /* Info.plist */, - ); - path = "Consent String SDK SwiftTests"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - F142B51D2093A1C5001ABE60 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F142B5312093A1C5001ABE60 /* Consent_String_SDK_Swift.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - F142B51F2093A1C5001ABE60 /* Consent String SDK Swift */ = { - isa = PBXNativeTarget; - buildConfigurationList = F142B5342093A1C5001ABE60 /* Build configuration list for PBXNativeTarget "Consent String SDK Swift" */; - buildPhases = ( - F142B51B2093A1C5001ABE60 /* Sources */, - F142B51C2093A1C5001ABE60 /* Frameworks */, - F142B51D2093A1C5001ABE60 /* Headers */, - F142B51E2093A1C5001ABE60 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Consent String SDK Swift"; - productName = "Consent String SDK Swift"; - productReference = F142B5202093A1C5001ABE60 /* Consent_String_SDK_Swift.framework */; - productType = "com.apple.product-type.framework"; - }; - F142B5282093A1C5001ABE60 /* Consent String SDK SwiftTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = F142B5372093A1C5001ABE60 /* Build configuration list for PBXNativeTarget "Consent String SDK SwiftTests" */; - buildPhases = ( - F142B5252093A1C5001ABE60 /* Sources */, - F142B5262093A1C5001ABE60 /* Frameworks */, - F142B5272093A1C5001ABE60 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - F142B52C2093A1C5001ABE60 /* PBXTargetDependency */, - ); - name = "Consent String SDK SwiftTests"; - productName = "Consent String SDK SwiftTests"; - productReference = F142B5292093A1C5001ABE60 /* Consent String SDK SwiftTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - F142B5172093A1C5001ABE60 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = "Interactive Advertising Bureau"; - TargetAttributes = { - F142B51F2093A1C5001ABE60 = { - CreatedOnToolsVersion = 9.3; - LastSwiftMigration = 0930; - }; - F142B5282093A1C5001ABE60 = { - CreatedOnToolsVersion = 9.3; - }; - }; - }; - buildConfigurationList = F142B51A2093A1C5001ABE60 /* Build configuration list for PBXProject "Consent String SDK Swift" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = F142B5162093A1C5001ABE60; - productRefGroup = F142B5212093A1C5001ABE60 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - F142B51F2093A1C5001ABE60 /* Consent String SDK Swift */, - F142B5282093A1C5001ABE60 /* Consent String SDK SwiftTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - F142B51E2093A1C5001ABE60 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F142B5272093A1C5001ABE60 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F142B51B2093A1C5001ABE60 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F142B5432093A207001ABE60 /* ConsentStringProtocol.swift in Sources */, - F142B5472093A207001ABE60 /* Data.swift in Sources */, - F142B5412093A207001ABE60 /* ConsentStringError.swift in Sources */, - F142B5452093A207001ABE60 /* String.swift in Sources */, - F142B53F2093A207001ABE60 /* ConsentString.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F142B5252093A1C5001ABE60 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F142B52F2093A1C5001ABE60 /* Consent_String_SDK_SwiftTests.swift in Sources */, - F142B5482093A207001ABE60 /* Data.swift in Sources */, - F142B5442093A207001ABE60 /* ConsentStringProtocol.swift in Sources */, - F142B5462093A207001ABE60 /* String.swift in Sources */, - F142B5422093A207001ABE60 /* ConsentStringError.swift in Sources */, - F142B5402093A207001ABE60 /* ConsentString.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - F142B52C2093A1C5001ABE60 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F142B51F2093A1C5001ABE60 /* Consent String SDK Swift */; - targetProxy = F142B52B2093A1C5001ABE60 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - F142B5322093A1C5001ABE60 /* 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; - CURRENT_PROJECT_VERSION = 1; - 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 = 11.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F142B5332093A1C5001ABE60 /* 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; - CURRENT_PROJECT_VERSION = 1; - 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 = 11.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - F142B5352093A1C5001ABE60 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = MQN7FXPCA7; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Consent String SDK Swift/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.iab.Consent-String-SDK-Swift"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - F142B5362093A1C5001ABE60 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = MQN7FXPCA7; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Consent String SDK Swift/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.iab.Consent-String-SDK-Swift"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - F142B5382093A1C5001ABE60 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MQN7FXPCA7; - INFOPLIST_FILE = "Consent String SDK SwiftTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.iab.Consent-String-SDK-SwiftTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - F142B5392093A1C5001ABE60 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MQN7FXPCA7; - INFOPLIST_FILE = "Consent String SDK SwiftTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.iab.Consent-String-SDK-SwiftTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - F142B51A2093A1C5001ABE60 /* Build configuration list for PBXProject "Consent String SDK Swift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F142B5322093A1C5001ABE60 /* Debug */, - F142B5332093A1C5001ABE60 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F142B5342093A1C5001ABE60 /* Build configuration list for PBXNativeTarget "Consent String SDK Swift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F142B5352093A1C5001ABE60 /* Debug */, - F142B5362093A1C5001ABE60 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F142B5372093A1C5001ABE60 /* Build configuration list for PBXNativeTarget "Consent String SDK SwiftTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F142B5382093A1C5001ABE60 /* Debug */, - F142B5392093A1C5001ABE60 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = F142B5172093A1C5001ABE60 /* Project object */; -} diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 766aac4e1..000000000 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Consent_String_SDK_Swift.h b/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Consent_String_SDK_Swift.h deleted file mode 100644 index 7bb3fe080..000000000 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Consent_String_SDK_Swift.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Consent_String_SDK_Swift.h -// Consent String SDK Swift -// -// Created by Daniel Kanaan on 4/27/18. -// Copyright © 2018 Interactive Advertising Bureau. All rights reserved. -// - -#import - -//! Project version number for Consent_String_SDK_Swift. -FOUNDATION_EXPORT double Consent_String_SDK_SwiftVersionNumber; - -//! Project version string for Consent_String_SDK_Swift. -FOUNDATION_EXPORT const unsigned char Consent_String_SDK_SwiftVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Info.plist b/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Info.plist deleted file mode 100644 index 1007fd9dd..000000000 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK Swift/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK SwiftTests/Consent_String_SDK_SwiftTests.swift b/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK SwiftTests/Consent_String_SDK_SwiftTests.swift deleted file mode 100644 index d621d3e0b..000000000 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/Consent String SDK SwiftTests/Consent_String_SDK_SwiftTests.swift +++ /dev/null @@ -1,372 +0,0 @@ -// -// Consent_String_SDK_SwiftTests.swift -// Consent String SDK SwiftTests -// -// Created by Daniel Kanaan on 4/27/18. -// Copyright © 2018 Interactive Advertising Bureau. All rights reserved. -// - -import XCTest -@testable import Consent_String_SDK_Swift - -class Consent_String_SDK_SwiftTests: XCTestCase { - - let base64 = ["BOMexSfOMexSfAAABAENAA////ABSABgACAAIA", - "BOMexSfOMexSfAAABAENAA////ABSABgACBAAA", - "BOMexSfOMexSfAAABAENABAAEAABSABgACBAAA", - "BOMexSfOMexSfAAABAENABAAEAABRVVVAA", - "BOMexSfOMexSfAAABAENABAAEAABQAIAAA", - "BOMexSfOMexSfAAABAENABAAEAABQAIAgA", - "BOM03lPOM03lPAAABAENAAAAAAABR//g" - ] - let binaries = [ - "000001001110001100011110110001010010011111001110001100011110110001010010011111000000000000000000000001000000000100001101000000000000111111111111111111111111000000000001010010000000000001100000000000000010000000000000001", - "000001001110001100011110110001010010011111001110001100011110110001010010011111000000000000000000000001000000000100001101000000000000111111111111111111111111000000000001010010000000000001100000000000000010000001000000000", - "000001001110001100011110110001010010011111001110001100011110110001010010011111000000000000000000000001000000000100001101000000000001000000000000000100000000000000000001010010000000000001100000000000000010000001000000000", - "0000010011100011000111101100010100100111110011100011000111101100010100100111110000000000000000000000010000000001000011010000000000010000000000000001000000000000000000010100010101010101010101010", - "0000010011100011000111101100010100100111110011100011000111101100010100100111110000000000000000000000010000000001000011010000000000010000000000000001000000000000000000010100000000000010000000000", - "0000010011100011000111101100010100100111110011100011000111101100010100100111110000000000000000000000010000000001000011010000000000010000000000000001000000000000000000010100000000000010000000001", - "0000010011100011001101001101111001010011110011100011001101001101111001010011110000000000000000000000010000000001000011010000000000000000000000000000000000000000000000010100011111111111111" - ] - - override func setUp() { - super.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. - super.tearDown() - } - - - - func testPerformance() { - self.measure { - // Put the code you want to measure the time of here. - let data = Data(base64Encoded: "BOMYO7eOMYO7eAABAENAAAAAAAAoAAA".base64Padded)! - XCTAssert(data.intValue(fromBit: 6, toBit: 41) == 15240064734) - } - } - - func testPadding() { - var string = "BOMXuBxOMXuBxAABAENAAAAAAAAoAAA" - XCTAssert(string.base64Padded == "BOMXuBxOMXuBxAABAENAAAAAAAAoAAA=", string.base64Padded) - string = "BOMXuBxOMXuBxAABAENAAAAAAAAoAAB" - XCTAssert(string.base64Padded == "BOMXuBxOMXuBxAABAENAAAAAAAAoAAB=", string.base64Padded) - string = "BOMXuBxOMXuBxAABAENAAAAAAAAoA" - XCTAssert(string.base64Padded == "BOMXuBxOMXuBxAABAENAAAAAAAAoA===", string.base64Padded) - string = "BOMXuBxOMXuBxAABAENAAAAAAAAo" - XCTAssert(string.base64Padded == "BOMXuBxOMXuBxAABAENAAAAAAAAo", string.base64Padded) - string = "BOMXuBxOMXuBxAABAENAAAAAAAAoAABoo" - XCTAssert(string.base64Padded == "BOMXuBxOMXuBxAABAENAAAAAAAAoAABoo===", string.base64Padded) - } - - func testBase64Decoding() { - - for (index,string) in base64.enumerated() { - let data = Data(base64Encoded: string.base64Padded) - XCTAssert(binary(string: binaryStringRepresenting(data: data!), isEqualToBinaryString: binaries[index])) - } - } - - func testBase64Encoding() { - let notEqual:[(String,String)] = - [("BOMXuBxOMXuBxAABAENAAAAAAAAoAAAA", - "BOMXuBxOMXuBxAABAENAAAAAAAAoAABA"), - ("BOMXuBxOMXuBxAABAENAAAAAAAAoA", - "BOMXuBxOMXuBxAABAENAAAAAAAAoAA"), - ("BOMXuBxOMXuBxAABAENAAAAAAAAo", - "BOMXuBxOMXuBxAABAENAAAAAAAAoA"), - ("AA==", - "A="), - ("AB=", - "ABA"), - ("AABAA", - "AABA"), - ("===", - "A") - ] - - for pair in notEqual { - let data1 = Data(base64Encoded: pair.0.base64Padded) - let data2 = Data(base64Encoded: pair.1.base64Padded) - XCTAssert(data1 != data2,"\(pair.0) == \(pair.1)") - } - - let equal:[(String,String)] = [ - ("BOMXuBxOMXuBxAABAENAAAAAAAAoA=", - "BOMXuBxOMXuBxAABAENAAAAAAAAoA"), - ("BOMXuBxOMXuBxAABAENAAAAAAAAoA==", - "BOMXuBxOMXuBxAABAENAAAAAAAAoA"), - ("BOMXuBxOMXuBxAABAENAAAAAAAAoA===", - "BOMXuBxOMXuBxAABAENAAAAAAAAoA") - ] - for pair in equal { - let data1 = Data(base64Encoded: pair.0.base64Padded) - let data2 = Data(base64Encoded: pair.1.base64Padded) - XCTAssert(data1 == data2, "\(pair.0) != \(pair.1)") - } - } - - func testInit() { - - for (index,string) in base64.enumerated() { - - let consentString = try?ConsentString(consentString: string) - let representation = binaryStringRepresenting(data: consentString!.consentData) - XCTAssert(binary(string: representation, isEqualToBinaryString: binaries[index]), "Actual value : \(representation)") - - } - - } - - func testDataExtensions () { - var data = Data(base64Encoded: "BOMYO7eOMYO7eAABAENAAAAAAAAoAAA".base64Padded)! - var byteLength = 23 - var lastBit = Int64(byteLength * 8 - 1) - XCTAssert(data.byte(forBit: 0) == 0) - XCTAssert(data.byte(forBit: 1) == 0) - XCTAssert(data.byte(forBit: 6) == 0) - XCTAssert(data.byte(forBit: 8) == 1) - XCTAssert(data.byte(forBit: 10) == 1) - XCTAssert(data.byte(forBit: 15) == 1) - XCTAssert(data.byte(forBit: 16) == 2) - XCTAssert(data.byte(forBit: lastBit) == byteLength - 1) - XCTAssert(data.byte(forBit: lastBit + 1) == nil) - XCTAssert(data.byte(forBit: lastBit - 8) == byteLength - 2) - - XCTAssert(data.intValue(fromBit: 0, toBit: 5) == 1) - XCTAssert(data.intValue(fromBit: 0, toBit: 7) == 4) - XCTAssert(data.intValue(fromBit: 6, toBit: 41) == 15240064734) - XCTAssert(data.intValue(fromBit: 42, toBit: 77) == 15240064734) - XCTAssert(data.intValue(fromBit: 78, toBit: 89) == 0) - XCTAssert(data.intValue(fromBit: 90, toBit: 95) == 1) - XCTAssert(data.intValue(fromBit: 96, toBit: 101) == 0) - XCTAssert(data.intValue(fromBit: 102, toBit: 113) == 269) - XCTAssert(data.intValue(fromBit: 114, toBit: 125) == 0) - XCTAssert(data.intValue(fromBit: 13*8+1, toBit: 13*8+1) == 1) - - data = Data(base64Encoded: "AAAB")! - byteLength = 3 - lastBit = Int64(byteLength * 8 - 1) - for i in 0..<(byteLength*3-1) { - XCTAssert(data.intValue(fromBit: Int64(i), toBit: Int64(i)) == 0) - } - XCTAssert(data.intValue(fromBit: Int64(byteLength*8-1), toBit: Int64(byteLength*8-1)) == 1) - XCTAssert(data.intValue(fromBit: 0, toBit: 23) == 1) - XCTAssert(data.intValue(fromBit: 100000, toBit: 1000000) == 0) - - data = Data(base64Encoded: "AAEA")! - byteLength = 3 - lastBit = Int64(byteLength * 8 - 1) - XCTAssert(data.intValue(fromBit: 15, toBit: 15) == 1) - XCTAssert(data.intValue(fromBit: 0, toBit: 15) == 1) - XCTAssert(data.intValue(fromBit: 16, toBit: 23) == 0) - - data = Data(base64Encoded: "AQAA")! - byteLength = 3 - lastBit = Int64(byteLength * 8 - 1) - XCTAssert(data.intValue(fromBit: 15, toBit: 15) == 0) - XCTAssert(data.intValue(fromBit: 16, toBit: 23) == 0) - XCTAssert(data.intValue(fromBit: 0, toBit: 7) == 1) - XCTAssert(data.intValue(fromBit: 0, toBit: 8) == 2) - XCTAssert(data.intValue(fromBit: 0, toBit: 9) == 4) - XCTAssert(data.intValue(fromBit: 0, toBit: 10) == 8) - XCTAssert(data.intValue(fromBit: 0, toBit: 11) == 16) - XCTAssert(data.intValue(fromBit: 0, toBit: 12) == 32) - - //Bad Data - data = Data(base64Encoded: "AAAAAAAB")! - byteLength = 6 - lastBit = Int64(byteLength * 8 - 1) - - XCTAssert(data.intValue(fromBit: 0, toBit: lastBit) == 1) - XCTAssert(data.intValue(fromBit: 0, toBit: 63) == 1) - - - data = Data(base64Encoded: "AAAAAAABAAAA")! - byteLength = data.count - lastBit = Int64(byteLength * 8 - 1) - - XCTAssert(data.intValue(fromBit: 0, toBit: lastBit) == 65536, "\(data.intValue(fromBit: 0, toBit: lastBit))") - XCTAssert(data.intValue(fromBit: 0, toBit: 63) == 65536) - XCTAssert(data.intValue(fromBit: 0, toBit: 100) == 65536) - - - data = Data(base64Encoded: "BOMexSfOMexSfAAABAENAAAAAAAAoAA".base64Padded)! - byteLength = data.count - lastBit = Int64(byteLength * 8 - 1) - XCTAssert(data.intValue(fromBit: 0, toBit: 5) == 1) - XCTAssert(data.intValue(fromBit: 6, toBit: 41) == 15241778335) - XCTAssert(data.intValue(fromBit: 42, toBit: 77) == 15241778335) - XCTAssert(data.intValue(fromBit: 78, toBit: 89) == 0) - XCTAssert(data.intValue(fromBit: 90, toBit: 101) == 1) - XCTAssert(data.intValue(fromBit: 102, toBit: 107) == 0) - XCTAssert(data.intValue(fromBit: 108, toBit: 119) == 269) - XCTAssert(data.intValue(fromBit: 120, toBit: 131) == 0) - XCTAssert(data.intValue(fromBit: 132, toBit: 155) == 0) - XCTAssert(data.intValue(fromBit: 156, toBit: 171) == 10) - XCTAssert(data.intValue(fromBit: 172, toBit: 172) == 0) - XCTAssert(data.intValue(fromBit: 173, toBit: lastBit) == 0) - } - - func testConsentStringLanguage () { - let consentString = try!ConsentString(consentString: "BOMexSfOMexSfAAABAENAAAAAAAAoAA") - XCTAssert(consentString.consentLanguage == "EN", consentString.consentLanguage) - } - - func testPurposesAllowed () { - let consentStringArray = ["BOMexSfOMexSfAAABAENAA////AAoAA", - "BOMexSfOMexSfAAABAENAAf///AAoAA", - "BOMexSfOMexSfAAABAENAAP///AAoAA", - "BOMexSfOMexSfAAABAENAAH///AAoAA", - "BOMexSfOMexSfAAABAENAAD///AAoAA", - "BOMexSfOMexSfAAABAENAAB///AAoAA", - "BOMexSfOMexSfAAABAENAAA///AAoAA", - "BOMexSfOMexSfAAABAENAAAf//AAoAA", - "BOMexSfOMexSfAAABAENAAAP//AAoAA", - "BOMexSfOMexSfAAABAENAAAH//AAoAA", - "BOMexSfOMexSfAAABAENAAAD//AAoAA", - "BOMexSfOMexSfAAABAENAAAB//AAoAA", - "BOMexSfOMexSfAAABAENAAAA//AAoAA", - "BOMexSfOMexSfAAABAENAAAAf/AAoAA", - "BOMexSfOMexSfAAABAENAAAAP/AAoAA", - "BOMexSfOMexSfAAABAENAAAAH/AAoAA", - "BOMexSfOMexSfAAABAENAAAAD/AAoAA", - "BOMexSfOMexSfAAABAENAAAAB/AAoAA", - "BOMexSfOMexSfAAABAENAAAAA/AAoAA", - "BOMexSfOMexSfAAABAENAAAAAfAAoAA", - "BOMexSfOMexSfAAABAENAAAAAPAAoAA", - "BOMexSfOMexSfAAABAENAAAAAHAAoAA", - "BOMexSfOMexSfAAABAENAAAAADAAoAA", - "BOMexSfOMexSfAAABAENAAAAABAAoAA", - "BOMexSfOMexSfAAABAENAAAAAAAAoAA"] - var consentString:ConsentString - var purposesAllowed:[Int8] - for (index,string) in consentStringArray.enumerated() { - consentString = try!ConsentString(consentString: string) - purposesAllowed = consentString.purposesAllowed - if index < 24 { - for i in index+1...24 { - XCTAssert(purposesAllowed.contains(Int8(i))) - } - } - for i in 0.. String { - return data.reduce("") { (acc, byte) -> String in - let stringRep = String(byte, radix: 2) - let pad = 8 - stringRep.count - let padString = "".padding(toLength: pad, withPad: "0", startingAt: 0) - return acc + padString + stringRep - } - } - - func binary(string:String, isEqualToBinaryString string2:String) -> Bool { - if abs(string.count - string2.count) > 7 { - return false - } - var index = 0 - var max = string.count - if string.count > string2.count { - max = string2.count - } - while index < max { - if string[string.index(string.startIndex, offsetBy: index)] != string2[string2.index(string2.startIndex, offsetBy: index)] { - return false - } - index += 1 - } - if string.count > string2.count { - while index < string.count { - if string[string.index(string.startIndex, offsetBy: index)] != "0" { - return false - } - index += 1 - } - } else { - while index < string2.count { - if string2[string2.index(string2.startIndex, offsetBy: index)] != "0" { - return false - } - index += 1 - } - } - return true - } - -} diff --git a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/README.md b/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/README.md deleted file mode 100644 index eac636983..000000000 --- a/SourcePoint_iOS_SDK/Consent-String-SDK-Swift/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Transparency and Consent Framework: Consent-String-SDK-Swift - -Encode and decode web-safe base64 consent information with the IAB EU's GDPR Transparency and Consent Framework. - -This library is a Swift reference implementation for dealing with consent strings in the IAB EU's GDPR Transparency and Consent Framework. -It should be used by anyone who receives or sends consent information like vendors that receive consent data from a partner, or consent management platforms that need to encode/decode the global cookie. - -The IAB specification for the consent string format is available on the [IAB Github](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/Consent%20string%20and%20vendor%20list%20formats%20v1.1%20Final.md) (section "Vendor Consent Cookie Format"). - -**This library fully supports the version v1.1 of the specification. It can encode and decode consent strings with version bit 1.** - -#### IAB Europe Transparency and Consent Framework - -In November 2017, IAB Europe and a cross-section of the publishing and advertising industry, announced a new Transparency & Consent Framework to help publishers, advertisers and technology companies comply with key elements of GDPR. The Framework will give the publishing and advertising industries a common language with which to communicate consumer consent for the delivery of relevant online advertising and content. - -Framework Technical specifications available at: https://raw.githubusercontent.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework. - - -## Consent String SDK (Swift) -- [Installation](#installation) -- [Usage](#usage) -- [Use cases](#use-cases) -- [Additional Documentation](#documentation) - - - - - - -## About - -#### About IAB Tech Lab - -The IAB Technology Laboratory (?Tech Lab?) is a non-profit research and development consortium that produces and provides standards, software, and services to drive growth of an effective and sustainable global digital media ecosystem. Comprised of digital publishers and ad technology firms, as well as marketers, agencies, and other companies with interests in the interactive marketing arena, IAB Tech Lab aims to enable brand and media growth via a transparent, safe, effective supply chain, simpler and more consistent measurement, and better advertising experiences for consumers, with a focus on mobile and ?TV?/digital video channel enablement. The IAB Tech Lab portfolio includes the DigiTrust real-time standardized identity service designed to improve the digital experience for consumers, publishers, advertisers, and third-party platforms. Board members include AppNexus, ExtremeReach, Google, GroupM, Hearst Digital Media, Integral Ad Science, Index Exchange, LinkedIn, MediaMath, Microsoft, Moat, Pandora, PubMatic, Quantcast, Telaria, The Trade Desk, and Yahoo! Japan. Established in 2014, the IAB Tech Lab is headquartered in New York City with an office in San Francisco and representation in Seattle and London. - -Learn more about IAB Tech Lab here: [https://www.iabtechlab.com/](https://www.iabtechlab.com/) - -#### About IAB Europe - -IAB Europe is the voice of digital business and the leading European-level industry association for the interactive advertising ecosystem. Its mission is to promote the development of this innovative sector by shaping the regulatory environment, investing in research and education, and developing and facilitating the uptake of business standards. - -Learn more about IAB Europe here: [https://www.iabeurope.eu/](https://www.iabeurope.eu/) - - -#### Contributors and Technical Governance - -GDPR Technical Working Group members provide contributions to this repository. Participants in the GDPR Technical Working group must be members of IAB Tech Lab. Technical Governance for the project is provided by the IAB Tech Lab GDPR Commit Group. diff --git a/SourcePoint_iOS_SDK/Info.plist b/SourcePoint_iOS_SDK/Info.plist deleted file mode 100644 index 1007fd9dd..000000000 --- a/SourcePoint_iOS_SDK/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/SourcePoint_iOS_SDK/README.md b/SourcePoint_iOS_SDK/README.md deleted file mode 120000 index 32d46ee88..000000000 --- a/SourcePoint_iOS_SDK/README.md +++ /dev/null @@ -1 +0,0 @@ -../README.md \ No newline at end of file diff --git a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.pbxproj b/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.pbxproj deleted file mode 100644 index 75570a231..000000000 --- a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.pbxproj +++ /dev/null @@ -1,402 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 273E6BE0218A46A40065DDD8 /* SourcePoint_iOS_SDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 273E6BDE218A46A40065DDD8 /* SourcePoint_iOS_SDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 273E6BE7218A46C10065DDD8 /* ConsentWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 273E6BE6218A46C10065DDD8 /* ConsentWebView.swift */; }; - 27C5EFD5218B5CE500F2F7B7 /* Consent_String_SDK_Swift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2778C42E218A5C3400A63588 /* Consent_String_SDK_Swift.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 2778C42D218A5C3400A63588 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 2778C428218A5C3400A63588 /* Consent String SDK Swift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = F142B5202093A1C5001ABE60; - remoteInfo = "Consent String SDK Swift"; - }; - 2778C42F218A5C3400A63588 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 2778C428218A5C3400A63588 /* Consent String SDK Swift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = F142B5292093A1C5001ABE60; - remoteInfo = "Consent String SDK SwiftTests"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 273E6BDB218A46A40065DDD8 /* SourcePoint_iOS_SDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SourcePoint_iOS_SDK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 273E6BDE218A46A40065DDD8 /* SourcePoint_iOS_SDK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourcePoint_iOS_SDK.h; sourceTree = ""; }; - 273E6BDF218A46A40065DDD8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 273E6BE6218A46C10065DDD8 /* ConsentWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConsentWebView.swift; sourceTree = ""; }; - 2778C428218A5C3400A63588 /* Consent String SDK Swift.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Consent String SDK Swift.xcodeproj"; path = "Consent-String-SDK-Swift/Consent String SDK Swift.xcodeproj"; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 273E6BD7218A46A40065DDD8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 27C5EFD5218B5CE500F2F7B7 /* Consent_String_SDK_Swift.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 273E6BD1218A46A40065DDD8 = { - isa = PBXGroup; - children = ( - 273E6BDD218A46A40065DDD8 /* SourcePoint_iOS_SDK */, - 273E6BDC218A46A40065DDD8 /* Products */, - 2778C431218A5C3F00A63588 /* Frameworks */, - ); - sourceTree = ""; - }; - 273E6BDC218A46A40065DDD8 /* Products */ = { - isa = PBXGroup; - children = ( - 273E6BDB218A46A40065DDD8 /* SourcePoint_iOS_SDK.framework */, - ); - name = Products; - sourceTree = ""; - }; - 273E6BDD218A46A40065DDD8 /* SourcePoint_iOS_SDK */ = { - isa = PBXGroup; - children = ( - 2778C428218A5C3400A63588 /* Consent String SDK Swift.xcodeproj */, - 273E6BDE218A46A40065DDD8 /* SourcePoint_iOS_SDK.h */, - 273E6BDF218A46A40065DDD8 /* Info.plist */, - 273E6BE6218A46C10065DDD8 /* ConsentWebView.swift */, - ); - path = SourcePoint_iOS_SDK; - sourceTree = ""; - }; - 2778C429218A5C3400A63588 /* Products */ = { - isa = PBXGroup; - children = ( - 2778C42E218A5C3400A63588 /* Consent_String_SDK_Swift.framework */, - 2778C430218A5C3400A63588 /* Consent String SDK SwiftTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 2778C431218A5C3F00A63588 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 273E6BD8218A46A40065DDD8 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 273E6BE0218A46A40065DDD8 /* SourcePoint_iOS_SDK.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 273E6BDA218A46A40065DDD8 /* SourcePoint_iOS_SDK */ = { - isa = PBXNativeTarget; - buildConfigurationList = 273E6BE3218A46A40065DDD8 /* Build configuration list for PBXNativeTarget "SourcePoint_iOS_SDK" */; - buildPhases = ( - 273E6BD6218A46A40065DDD8 /* Sources */, - 273E6BD7218A46A40065DDD8 /* Frameworks */, - 273E6BD8218A46A40065DDD8 /* Headers */, - 273E6BD9218A46A40065DDD8 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SourcePoint_iOS_SDK; - productName = SourcePoint_iOS_SDK; - productReference = 273E6BDB218A46A40065DDD8 /* SourcePoint_iOS_SDK.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 273E6BD2218A46A40065DDD8 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0940; - ORGANIZATIONNAME = SourcePoint; - TargetAttributes = { - 273E6BDA218A46A40065DDD8 = { - CreatedOnToolsVersion = 9.4.1; - LastSwiftMigration = 0940; - }; - }; - }; - buildConfigurationList = 273E6BD5218A46A40065DDD8 /* Build configuration list for PBXProject "SourcePoint_iOS_SDK" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 273E6BD1218A46A40065DDD8; - productRefGroup = 273E6BDC218A46A40065DDD8 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 2778C429218A5C3400A63588 /* Products */; - ProjectRef = 2778C428218A5C3400A63588 /* Consent String SDK Swift.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 273E6BDA218A46A40065DDD8 /* SourcePoint_iOS_SDK */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 2778C42E218A5C3400A63588 /* Consent_String_SDK_Swift.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Consent_String_SDK_Swift.framework; - remoteRef = 2778C42D218A5C3400A63588 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2778C430218A5C3400A63588 /* Consent String SDK SwiftTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "Consent String SDK SwiftTests.xctest"; - remoteRef = 2778C42F218A5C3400A63588 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 273E6BD9218A46A40065DDD8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 273E6BD6218A46A40065DDD8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 273E6BE7218A46C10065DDD8 /* ConsentWebView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 273E6BE1218A46A40065DDD8 /* 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; - CURRENT_PROJECT_VERSION = 1; - 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 = 11.4; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 273E6BE2218A46A40065DDD8 /* 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; - CURRENT_PROJECT_VERSION = 1; - 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 = 11.4; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 273E6BE4218A46A40065DDD8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = SourcePoint_iOS_SDK/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.sourcepoint.SourcePoint-iOS-SDK"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 273E6BE5218A46A40065DDD8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = SourcePoint_iOS_SDK/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.sourcepoint.SourcePoint-iOS-SDK"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 273E6BD5218A46A40065DDD8 /* Build configuration list for PBXProject "SourcePoint_iOS_SDK" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 273E6BE1218A46A40065DDD8 /* Debug */, - 273E6BE2218A46A40065DDD8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 273E6BE3218A46A40065DDD8 /* Build configuration list for PBXNativeTarget "SourcePoint_iOS_SDK" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 273E6BE4218A46A40065DDD8 /* Debug */, - 273E6BE5218A46A40065DDD8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 273E6BD2218A46A40065DDD8 /* Project object */; -} diff --git a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.h b/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.h deleted file mode 100644 index 186e08625..000000000 --- a/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SourcePoint_iOS_SDK.h -// SourcePoint_iOS_SDK -// -// Created by Sina Sadeghian on 2018-10-12. -// Copyright © 2018 Sourcepoint. All rights reserved. -// - -#import - -//! Project version number for SourcePoint_iOS_SDK. -FOUNDATION_EXPORT double SourcePoint_iOS_SDKVersionNumber; - -//! Project version string for SourcePoint_iOS_SDK. -FOUNDATION_EXPORT const unsigned char SourcePoint_iOS_SDKVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/SourcePoint_iOS_SDK/docs/Classes.html b/SourcePoint_iOS_SDK/docs/Classes.html deleted file mode 100644 index 03d80be6f..000000000 --- a/SourcePoint_iOS_SDK/docs/Classes.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - Classes Reference - - - - - - - - - - -
-
-

Docs (100% documented)

-
-
-
- -
-
- -
-
-
-

Classes

-

The following classes are available globally.

- -
-
-
-
    -
  • -
    - - - - ConsentWebView - -
    -
    -
    -
    -
    -
    -

    SourcePoint’s Consent SDK is a WebView that loads SourcePoint’s web consent managment tool -and offers ways to inspect the consents and purposes the user has chosen.

    -
    var consentWebView: ConsentWebView!
    -override func viewDidLoad() {
    -    super.viewDidLoad()
    -    consentWebView = ConsentWebView(accountId: <ACCOUNT_ID>, siteName: "SITE_NAME")
    -    consentWebView.onMessageChoiceSelect = {
    -       (cbw: ConsentWebView) in print("Choice selected by user", cbw.choiceType as Any)
    -    }
    -    consentWebView.onInteractionComplete = { (cbw: ConsentWebView) in
    -        print(
    -            cbw.euconsent as Any,
    -            cbw.consentUUID as Any,
    -            cbw.getIABVendorConsents(["VENDOR_ID"]),
    -            cbw.getIABPurposeConsents([PURPOSE_ID]),
    -            cbw.getCustomVendorConsents(forIds: ["VENDOR_ID"]),
    -            cbw.getPurposeConsents()
    -        )
    -    }
    -view.addSubview(consentWebView.view)
    -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class ConsentWebView : UIViewController, WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - diff --git a/SourcePoint_iOS_SDK/docs/Classes/ConsentWebView.html b/SourcePoint_iOS_SDK/docs/Classes/ConsentWebView.html deleted file mode 100644 index 866740fb4..000000000 --- a/SourcePoint_iOS_SDK/docs/Classes/ConsentWebView.html +++ /dev/null @@ -1,889 +0,0 @@ - - - - ConsentWebView Class Reference - - - - - - - - - - -
-
-

Docs (100% documented)

-
-
-
- -
-
- -
-
-
-

ConsentWebView

-
-
-
public class ConsentWebView : UIViewController, WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler
- -
-
-

SourcePoint’s Consent SDK is a WebView that loads SourcePoint’s web consent managment tool -and offers ways to inspect the consents and purposes the user has chosen.

-
var consentWebView: ConsentWebView!
-override func viewDidLoad() {
-    super.viewDidLoad()
-    consentWebView = ConsentWebView(accountId: <ACCOUNT_ID>, siteName: "SITE_NAME")
-    consentWebView.onMessageChoiceSelect = {
-       (cbw: ConsentWebView) in print("Choice selected by user", cbw.choiceType as Any)
-    }
-    consentWebView.onInteractionComplete = { (cbw: ConsentWebView) in
-        print(
-            cbw.euconsent as Any,
-            cbw.consentUUID as Any,
-            cbw.getIABVendorConsents(["VENDOR_ID"]),
-            cbw.getIABPurposeConsents([PURPOSE_ID]),
-            cbw.getCustomVendorConsents(forIds: ["VENDOR_ID"]),
-            cbw.getPurposeConsents()
-        )
-    }
-view.addSubview(consentWebView.view)
-
- -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    If the user has consent data stored, reading for this key in the UserDefaults will return 1

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_CMP_PRESENT: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    If the user is subject to GDPR, reading for this key in the UserDefaults will return 1 otherwise 0

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_SUBJECT_TO_GDPR: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    They key used to store the IAB Consent string for the user in the UserDefaults

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_CONSENT_STRING: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    They key used to read and write the parsed IAB Purposes consented by the user in the UserDefaults

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_PARSED_PURPOSE_CONSENTS: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    The key used to read and write the parsed IAB Vendor consented by the user in the UserDefaults

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_PARSED_VENDOR_CONSENTS: String
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - accountId - -
    -
    -
    -
    -
    -
    -

    The id of your account can be found in the Publisher’s portal -> Account menu

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let accountId: Int
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - siteName - -
    -
    -
    -
    -
    -
    -

    The site name which the campaign and scenarios will be loaded from

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let siteName: String
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - page - -
    -
    -
    -
    -
    -
    -

    Page is merely for logging purposes, eg. https://mysitename.example/page

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var page: String?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - isStage - -
    -
    -
    -
    -
    -
    -

    Indicates if the campaign is a stage campaign

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var isStage: Bool
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - isInternalStage - -
    -
    -
    -
    -
    -
    -

    indicates if the data should come from SourcePoint’s staging environment. Most of the times that’s not what you want.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var isInternalStage: Bool
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - onMessageChoiceSelect - -
    -
    -
    -
    -
    -
    -

    A Callback that will be called when the user selects an option on the WebView. -The selected choice will be available in the instance variable choiceType

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var onMessageChoiceSelect: Callback?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - onInteractionComplete - -
    -
    -
    -
    -
    -
    -

    A Callback to be called when the user finishes interacting with the WebView -either by closing it, canceling or accepting the terms. -At this point, the following keys will available populated in the UserDefaults:

    - - - -

    Also at this point, the methods getCustomVendorConsents(), -getPurposeConsents(forIds:) and getPurposeConsent(forId:) -will also be able to be called from inside the callback

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var onInteractionComplete: Callback?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - choiceType - -
    -
    -
    -
    -
    -
    -

    Holds the choice type the user has chosen after interacting with the ConsentWebView

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var choiceType: Int?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - euconsent - -
    -
    -
    -
    -
    -
    -

    The IAB consent string, set after the user has chosen after interacting with the ConsentWebView

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var euconsent: String?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - consentUUID - -
    -
    -
    -
    -
    -
    -

    The UUID assigned to the user, set after the user has chosen after interacting with the ConsentWebView

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var consentUUID: String?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - customConsent - -
    -
    -
    -
    -
    -
    -

    Holds a collection of strings representing the non-IAB consents

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var customConsent: [[String : Any]]
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Initialises the library with accountId and siteName.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(accountId: Int, siteName: String)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Get the IAB consents given to each vendor id in the array passed as parameter

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getIABVendorConsents(_ forIds: [Int]) -> [Bool]
    - -
    -
    -
    -

    Return Value

    -

    an Array of Bool indicating if the user has given consent to the corresponding vendor.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if the IAB purposes passed as parameter were given consent or not.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getIABPurposeConsents(_ forIds: [Int8]) -> [Bool]
    - -
    -
    -
    -

    Return Value

    -

    an Array of Bool indicating if the user has given consent to the corresponding purpose.

    -
    -
    -
    -
  • -
  • -
    - - - - getGdprApplies() - -
    -
    -
    -
    -
    -
    -

    Checks if GDPR applies the user

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getGdprApplies() -> Bool
    - -
    -
    -
    -

    Return Value

    -

    a Bool indicating if GDPR applies that user.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Get the non-IAB consents given to a single vendor id

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getCustomVendorConsent(forId customVendorId: String) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forId - - -
    -

    the vendor id

    -
    -
    -
    -
    -

    Return Value

    -

    a Bool indicating if the user has given consent to that vendor.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if the non-IAB purposes passed as parameter were given consent or not. -Same as getIabVendorConsents(forIds: ) but for non-IAB vendors.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getCustomVendorConsents(forIds customVendorIds: [String]) -> [Bool]
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forIds - - -
    -

    an Array of vendor ids

    -
    -
    -
    -
    -

    Return Value

    -

    an Array of Bool indicating if the user has given consent to the corresponding vendor.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if a non-IAB purpose was given consent. -Same as `getIabPurposeConsents(_) but for a single non-IAB purpose.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getPurposeConsent(forId purposeId: String) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forId - - -
    -

    the purpose id

    -
    -
    -
    -
    -

    Return Value

    -

    a Bool indicating if the user has given consent to that purpose.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if a non-IAB purpose was given consent. -Same as `getIabPurposeConsents(_) but for non-IAB purposes.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getPurposeConsents(forIds purposeIds: [String] = []) -> [[String:String]?]
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forIds - - -
    -

    the purpose id

    -
    -
    -
    -
    -

    Return Value

    -

    a Bool indicating if the user has given consent to that purpose.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - diff --git a/SourcePoint_iOS_SDK/docs/badge.svg b/SourcePoint_iOS_SDK/docs/badge.svg deleted file mode 100644 index a096feca8..000000000 --- a/SourcePoint_iOS_SDK/docs/badge.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - documentation - - - documentation - - - 100% - - - 100% - - - diff --git a/SourcePoint_iOS_SDK/docs/css/highlight.css b/SourcePoint_iOS_SDK/docs/css/highlight.css deleted file mode 100644 index d0db0e13b..000000000 --- a/SourcePoint_iOS_SDK/docs/css/highlight.css +++ /dev/null @@ -1,200 +0,0 @@ -/* Credit to https://gist.github.com/wataru420/2048287 */ -.highlight { - /* Comment */ - /* Error */ - /* Keyword */ - /* Operator */ - /* Comment.Multiline */ - /* Comment.Preproc */ - /* Comment.Single */ - /* Comment.Special */ - /* Generic.Deleted */ - /* Generic.Deleted.Specific */ - /* Generic.Emph */ - /* Generic.Error */ - /* Generic.Heading */ - /* Generic.Inserted */ - /* Generic.Inserted.Specific */ - /* Generic.Output */ - /* Generic.Prompt */ - /* Generic.Strong */ - /* Generic.Subheading */ - /* Generic.Traceback */ - /* Keyword.Constant */ - /* Keyword.Declaration */ - /* Keyword.Pseudo */ - /* Keyword.Reserved */ - /* Keyword.Type */ - /* Literal.Number */ - /* Literal.String */ - /* Name.Attribute */ - /* Name.Builtin */ - /* Name.Class */ - /* Name.Constant */ - /* Name.Entity */ - /* Name.Exception */ - /* Name.Function */ - /* Name.Namespace */ - /* Name.Tag */ - /* Name.Variable */ - /* Operator.Word */ - /* Text.Whitespace */ - /* Literal.Number.Float */ - /* Literal.Number.Hex */ - /* Literal.Number.Integer */ - /* Literal.Number.Oct */ - /* Literal.String.Backtick */ - /* Literal.String.Char */ - /* Literal.String.Doc */ - /* Literal.String.Double */ - /* Literal.String.Escape */ - /* Literal.String.Heredoc */ - /* Literal.String.Interpol */ - /* Literal.String.Other */ - /* Literal.String.Regex */ - /* Literal.String.Single */ - /* Literal.String.Symbol */ - /* Name.Builtin.Pseudo */ - /* Name.Variable.Class */ - /* Name.Variable.Global */ - /* Name.Variable.Instance */ - /* Literal.Number.Integer.Long */ } - .highlight .c { - color: #999988; - font-style: italic; } - .highlight .err { - color: #a61717; - background-color: #e3d2d2; } - .highlight .k { - color: #000000; - font-weight: bold; } - .highlight .o { - color: #000000; - font-weight: bold; } - .highlight .cm { - color: #999988; - font-style: italic; } - .highlight .cp { - color: #999999; - font-weight: bold; } - .highlight .c1 { - color: #999988; - font-style: italic; } - .highlight .cs { - color: #999999; - font-weight: bold; - font-style: italic; } - .highlight .gd { - color: #000000; - background-color: #ffdddd; } - .highlight .gd .x { - color: #000000; - background-color: #ffaaaa; } - .highlight .ge { - color: #000000; - font-style: italic; } - .highlight .gr { - color: #aa0000; } - .highlight .gh { - color: #999999; } - .highlight .gi { - color: #000000; - background-color: #ddffdd; } - .highlight .gi .x { - color: #000000; - background-color: #aaffaa; } - .highlight .go { - color: #888888; } - .highlight .gp { - color: #555555; } - .highlight .gs { - font-weight: bold; } - .highlight .gu { - color: #aaaaaa; } - .highlight .gt { - color: #aa0000; } - .highlight .kc { - color: #000000; - font-weight: bold; } - .highlight .kd { - color: #000000; - font-weight: bold; } - .highlight .kp { - color: #000000; - font-weight: bold; } - .highlight .kr { - color: #000000; - font-weight: bold; } - .highlight .kt { - color: #445588; } - .highlight .m { - color: #009999; } - .highlight .s { - color: #d14; } - .highlight .na { - color: #008080; } - .highlight .nb { - color: #0086B3; } - .highlight .nc { - color: #445588; - font-weight: bold; } - .highlight .no { - color: #008080; } - .highlight .ni { - color: #800080; } - .highlight .ne { - color: #990000; - font-weight: bold; } - .highlight .nf { - color: #990000; } - .highlight .nn { - color: #555555; } - .highlight .nt { - color: #000080; } - .highlight .nv { - color: #008080; } - .highlight .ow { - color: #000000; - font-weight: bold; } - .highlight .w { - color: #bbbbbb; } - .highlight .mf { - color: #009999; } - .highlight .mh { - color: #009999; } - .highlight .mi { - color: #009999; } - .highlight .mo { - color: #009999; } - .highlight .sb { - color: #d14; } - .highlight .sc { - color: #d14; } - .highlight .sd { - color: #d14; } - .highlight .s2 { - color: #d14; } - .highlight .se { - color: #d14; } - .highlight .sh { - color: #d14; } - .highlight .si { - color: #d14; } - .highlight .sx { - color: #d14; } - .highlight .sr { - color: #009926; } - .highlight .s1 { - color: #d14; } - .highlight .ss { - color: #990073; } - .highlight .bp { - color: #999999; } - .highlight .vc { - color: #008080; } - .highlight .vg { - color: #008080; } - .highlight .vi { - color: #008080; } - .highlight .il { - color: #009999; } diff --git a/SourcePoint_iOS_SDK/docs/css/jazzy.css b/SourcePoint_iOS_SDK/docs/css/jazzy.css deleted file mode 100644 index d62828260..000000000 --- a/SourcePoint_iOS_SDK/docs/css/jazzy.css +++ /dev/null @@ -1,337 +0,0 @@ -html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td { - background: transparent; - border: 0; - margin: 0; - outline: 0; - padding: 0; - vertical-align: baseline; } - -body { - background-color: #f2f2f2; - font-family: Helvetica, freesans, Arial, sans-serif; - font-size: 14px; - -webkit-font-smoothing: subpixel-antialiased; - word-wrap: break-word; } - -h1, h2, h3 { - margin-top: 0.8em; - margin-bottom: 0.3em; - font-weight: 100; - color: black; } - -h1 { - font-size: 2.5em; } - -h2 { - font-size: 2em; - border-bottom: 1px solid #e2e2e2; } - -h4 { - font-size: 13px; - line-height: 1.5; - margin-top: 21px; } - -h5 { - font-size: 1.1em; } - -h6 { - font-size: 1.1em; - color: #777; } - -.section-name { - color: gray; - display: block; - font-family: Helvetica; - font-size: 22px; - font-weight: 100; - margin-bottom: 15px; } - -pre, code { - font: 0.95em Menlo, monospace; - color: #777; - word-wrap: normal; } - -p code, li code { - background-color: #eee; - padding: 2px 4px; - border-radius: 4px; } - -a { - color: #0088cc; - text-decoration: none; } - -ul { - padding-left: 15px; } - -li { - line-height: 1.8em; } - -img { - max-width: 100%; } - -blockquote { - margin-left: 0; - padding: 0 10px; - border-left: 4px solid #ccc; } - -.content-wrapper { - margin: 0 auto; - width: 980px; } - -header { - font-size: 0.85em; - line-height: 26px; - background-color: #414141; - position: fixed; - width: 100%; - z-index: 1; } - header img { - padding-right: 6px; - vertical-align: -4px; - height: 16px; } - header a { - color: #fff; } - header p { - float: left; - color: #999; } - header .header-right { - float: right; - margin-left: 16px; } - -#breadcrumbs { - background-color: #f2f2f2; - height: 27px; - padding-top: 17px; - position: fixed; - width: 100%; - z-index: 1; - margin-top: 26px; } - #breadcrumbs #carat { - height: 10px; - margin: 0 5px; } - -.sidebar { - background-color: #f9f9f9; - border: 1px solid #e2e2e2; - overflow-y: auto; - overflow-x: hidden; - position: fixed; - top: 70px; - bottom: 0; - width: 230px; - word-wrap: normal; } - -.nav-groups { - list-style-type: none; - background: #fff; - padding-left: 0; } - -.nav-group-name { - border-bottom: 1px solid #e2e2e2; - font-size: 1.1em; - font-weight: 100; - padding: 15px 0 15px 20px; } - .nav-group-name > a { - color: #333; } - -.nav-group-tasks { - margin-top: 5px; } - -.nav-group-task { - font-size: 0.9em; - list-style-type: none; - white-space: nowrap; } - .nav-group-task a { - color: #888; } - -.main-content { - background-color: #fff; - border: 1px solid #e2e2e2; - margin-left: 246px; - position: absolute; - overflow: hidden; - padding-bottom: 60px; - top: 70px; - width: 734px; } - .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote { - margin-bottom: 1em; } - .main-content p { - line-height: 1.8em; } - .main-content section .section:first-child { - margin-top: 0; - padding-top: 0; } - .main-content section .task-group-section .task-group:first-of-type { - padding-top: 10px; } - .main-content section .task-group-section .task-group:first-of-type .section-name { - padding-top: 15px; } - .main-content section .heading:before { - content: ""; - display: block; - padding-top: 70px; - margin: -70px 0 0; } - -.section { - padding: 0 25px; } - -.highlight { - background-color: #eee; - padding: 10px 12px; - border: 1px solid #e2e2e2; - border-radius: 4px; - overflow-x: auto; } - -.declaration .highlight { - overflow-x: initial; - padding: 0 40px 40px 0; - margin-bottom: -25px; - background-color: transparent; - border: none; } - -.section-name { - margin: 0; - margin-left: 18px; } - -.task-group-section { - padding-left: 6px; - border-top: 1px solid #e2e2e2; } - -.task-group { - padding-top: 0px; } - -.task-name-container a[name]:before { - content: ""; - display: block; - padding-top: 70px; - margin: -70px 0 0; } - -.item { - padding-top: 8px; - width: 100%; - list-style-type: none; } - .item a[name]:before { - content: ""; - display: block; - padding-top: 70px; - margin: -70px 0 0; } - .item code { - background-color: transparent; - padding: 0; } - .item .token { - padding-left: 3px; - margin-left: 15px; - font-size: 11.9px; } - .item .declaration-note { - font-size: .85em; - color: gray; - font-style: italic; } - -.pointer-container { - border-bottom: 1px solid #e2e2e2; - left: -23px; - padding-bottom: 13px; - position: relative; - width: 110%; } - -.pointer { - background: #f9f9f9; - border-left: 1px solid #e2e2e2; - border-top: 1px solid #e2e2e2; - height: 12px; - left: 21px; - top: -7px; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - position: absolute; - width: 12px; } - -.height-container { - display: none; - left: -25px; - padding: 0 25px; - position: relative; - width: 100%; - overflow: hidden; } - .height-container .section { - background: #f9f9f9; - border-bottom: 1px solid #e2e2e2; - left: -25px; - position: relative; - width: 100%; - padding-top: 10px; - padding-bottom: 5px; } - -.aside, .language { - padding: 6px 12px; - margin: 12px 0; - border-left: 5px solid #dddddd; - overflow-y: hidden; } - .aside .aside-title, .language .aside-title { - font-size: 9px; - letter-spacing: 2px; - text-transform: uppercase; - padding-bottom: 0; - margin: 0; - color: #aaa; - -webkit-user-select: none; } - .aside p:last-child, .language p:last-child { - margin-bottom: 0; } - -.language { - border-left: 5px solid #cde9f4; } - .language .aside-title { - color: #4b8afb; } - -.aside-warning { - border-left: 5px solid #ff6666; } - .aside-warning .aside-title { - color: #ff0000; } - -.graybox { - border-collapse: collapse; - width: 100%; } - .graybox p { - margin: 0; - word-break: break-word; - min-width: 50px; } - .graybox td { - border: 1px solid #e2e2e2; - padding: 5px 25px 5px 10px; - vertical-align: middle; } - .graybox tr td:first-of-type { - text-align: right; - padding: 7px; - vertical-align: top; - word-break: normal; - width: 40px; } - -.slightly-smaller { - font-size: 0.9em; } - -#footer { - position: absolute; - bottom: 10px; - margin-left: 25px; } - #footer p { - margin: 0; - color: #aaa; - font-size: 0.8em; } - -html.dash header, html.dash #breadcrumbs, html.dash .sidebar { - display: none; } -html.dash .main-content { - width: 980px; - margin-left: 0; - border: none; - width: 100%; - top: 0; - padding-bottom: 0; } -html.dash .height-container { - display: block; } -html.dash .item .token { - margin-left: 0; } -html.dash .content-wrapper { - width: auto; } -html.dash #footer { - position: static; } diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Info.plist b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Info.plist deleted file mode 100644 index 61863ec4a..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleIdentifier - com.jazzy. - CFBundleName - - DocSetPlatformFamily - - isDashDocset - - dashIndexFilePath - index.html - isJavaScriptEnabled - - DashDocSetFamily - dashtoc - - diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/Classes.html b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/Classes.html deleted file mode 100644 index 03d80be6f..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/Classes.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - Classes Reference - - - - - - - - - - -
-
-

Docs (100% documented)

-
-
-
- -
-
- -
-
-
-

Classes

-

The following classes are available globally.

- -
-
-
-
    -
  • -
    - - - - ConsentWebView - -
    -
    -
    -
    -
    -
    -

    SourcePoint’s Consent SDK is a WebView that loads SourcePoint’s web consent managment tool -and offers ways to inspect the consents and purposes the user has chosen.

    -
    var consentWebView: ConsentWebView!
    -override func viewDidLoad() {
    -    super.viewDidLoad()
    -    consentWebView = ConsentWebView(accountId: <ACCOUNT_ID>, siteName: "SITE_NAME")
    -    consentWebView.onMessageChoiceSelect = {
    -       (cbw: ConsentWebView) in print("Choice selected by user", cbw.choiceType as Any)
    -    }
    -    consentWebView.onInteractionComplete = { (cbw: ConsentWebView) in
    -        print(
    -            cbw.euconsent as Any,
    -            cbw.consentUUID as Any,
    -            cbw.getIABVendorConsents(["VENDOR_ID"]),
    -            cbw.getIABPurposeConsents([PURPOSE_ID]),
    -            cbw.getCustomVendorConsents(forIds: ["VENDOR_ID"]),
    -            cbw.getPurposeConsents()
    -        )
    -    }
    -view.addSubview(consentWebView.view)
    -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class ConsentWebView : UIViewController, WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/Classes/ConsentWebView.html b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/Classes/ConsentWebView.html deleted file mode 100644 index 866740fb4..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/Classes/ConsentWebView.html +++ /dev/null @@ -1,889 +0,0 @@ - - - - ConsentWebView Class Reference - - - - - - - - - - -
-
-

Docs (100% documented)

-
-
-
- -
-
- -
-
-
-

ConsentWebView

-
-
-
public class ConsentWebView : UIViewController, WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler
- -
-
-

SourcePoint’s Consent SDK is a WebView that loads SourcePoint’s web consent managment tool -and offers ways to inspect the consents and purposes the user has chosen.

-
var consentWebView: ConsentWebView!
-override func viewDidLoad() {
-    super.viewDidLoad()
-    consentWebView = ConsentWebView(accountId: <ACCOUNT_ID>, siteName: "SITE_NAME")
-    consentWebView.onMessageChoiceSelect = {
-       (cbw: ConsentWebView) in print("Choice selected by user", cbw.choiceType as Any)
-    }
-    consentWebView.onInteractionComplete = { (cbw: ConsentWebView) in
-        print(
-            cbw.euconsent as Any,
-            cbw.consentUUID as Any,
-            cbw.getIABVendorConsents(["VENDOR_ID"]),
-            cbw.getIABPurposeConsents([PURPOSE_ID]),
-            cbw.getCustomVendorConsents(forIds: ["VENDOR_ID"]),
-            cbw.getPurposeConsents()
-        )
-    }
-view.addSubview(consentWebView.view)
-
- -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    If the user has consent data stored, reading for this key in the UserDefaults will return 1

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_CMP_PRESENT: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    If the user is subject to GDPR, reading for this key in the UserDefaults will return 1 otherwise 0

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_SUBJECT_TO_GDPR: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    They key used to store the IAB Consent string for the user in the UserDefaults

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_CONSENT_STRING: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    They key used to read and write the parsed IAB Purposes consented by the user in the UserDefaults

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_PARSED_PURPOSE_CONSENTS: String
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    The key used to read and write the parsed IAB Vendor consented by the user in the UserDefaults

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let IAB_CONSENT_PARSED_VENDOR_CONSENTS: String
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - accountId - -
    -
    -
    -
    -
    -
    -

    The id of your account can be found in the Publisher’s portal -> Account menu

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let accountId: Int
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - siteName - -
    -
    -
    -
    -
    -
    -

    The site name which the campaign and scenarios will be loaded from

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let siteName: String
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - page - -
    -
    -
    -
    -
    -
    -

    Page is merely for logging purposes, eg. https://mysitename.example/page

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var page: String?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - isStage - -
    -
    -
    -
    -
    -
    -

    Indicates if the campaign is a stage campaign

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var isStage: Bool
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - isInternalStage - -
    -
    -
    -
    -
    -
    -

    indicates if the data should come from SourcePoint’s staging environment. Most of the times that’s not what you want.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var isInternalStage: Bool
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - onMessageChoiceSelect - -
    -
    -
    -
    -
    -
    -

    A Callback that will be called when the user selects an option on the WebView. -The selected choice will be available in the instance variable choiceType

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var onMessageChoiceSelect: Callback?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - onInteractionComplete - -
    -
    -
    -
    -
    -
    -

    A Callback to be called when the user finishes interacting with the WebView -either by closing it, canceling or accepting the terms. -At this point, the following keys will available populated in the UserDefaults:

    - - - -

    Also at this point, the methods getCustomVendorConsents(), -getPurposeConsents(forIds:) and getPurposeConsent(forId:) -will also be able to be called from inside the callback

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var onInteractionComplete: Callback?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - choiceType - -
    -
    -
    -
    -
    -
    -

    Holds the choice type the user has chosen after interacting with the ConsentWebView

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var choiceType: Int?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - euconsent - -
    -
    -
    -
    -
    -
    -

    The IAB consent string, set after the user has chosen after interacting with the ConsentWebView

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var euconsent: String?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - consentUUID - -
    -
    -
    -
    -
    -
    -

    The UUID assigned to the user, set after the user has chosen after interacting with the ConsentWebView

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var consentUUID: String?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - customConsent - -
    -
    -
    -
    -
    -
    -

    Holds a collection of strings representing the non-IAB consents

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var customConsent: [[String : Any]]
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Initialises the library with accountId and siteName.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(accountId: Int, siteName: String)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Get the IAB consents given to each vendor id in the array passed as parameter

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getIABVendorConsents(_ forIds: [Int]) -> [Bool]
    - -
    -
    -
    -

    Return Value

    -

    an Array of Bool indicating if the user has given consent to the corresponding vendor.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if the IAB purposes passed as parameter were given consent or not.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getIABPurposeConsents(_ forIds: [Int8]) -> [Bool]
    - -
    -
    -
    -

    Return Value

    -

    an Array of Bool indicating if the user has given consent to the corresponding purpose.

    -
    -
    -
    -
  • -
  • -
    - - - - getGdprApplies() - -
    -
    -
    -
    -
    -
    -

    Checks if GDPR applies the user

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getGdprApplies() -> Bool
    - -
    -
    -
    -

    Return Value

    -

    a Bool indicating if GDPR applies that user.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Get the non-IAB consents given to a single vendor id

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getCustomVendorConsent(forId customVendorId: String) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forId - - -
    -

    the vendor id

    -
    -
    -
    -
    -

    Return Value

    -

    a Bool indicating if the user has given consent to that vendor.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if the non-IAB purposes passed as parameter were given consent or not. -Same as getIabVendorConsents(forIds: ) but for non-IAB vendors.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getCustomVendorConsents(forIds customVendorIds: [String]) -> [Bool]
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forIds - - -
    -

    an Array of vendor ids

    -
    -
    -
    -
    -

    Return Value

    -

    an Array of Bool indicating if the user has given consent to the corresponding vendor.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if a non-IAB purpose was given consent. -Same as `getIabPurposeConsents(_) but for a single non-IAB purpose.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getPurposeConsent(forId purposeId: String) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forId - - -
    -

    the purpose id

    -
    -
    -
    -
    -

    Return Value

    -

    a Bool indicating if the user has given consent to that purpose.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Checks if a non-IAB purpose was given consent. -Same as `getIabPurposeConsents(_) but for non-IAB purposes.

    -
    -

    Precondition

    - this function should be called either during the Callback onInteractionComplete or after it has returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getPurposeConsents(forIds purposeIds: [String] = []) -> [[String:String]?]
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - forIds - - -
    -

    the purpose id

    -
    -
    -
    -
    -

    Return Value

    -

    a Bool indicating if the user has given consent to that purpose.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/badge.svg b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/badge.svg deleted file mode 100644 index a096feca8..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/badge.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - documentation - - - documentation - - - 100% - - - 100% - - - diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css deleted file mode 100644 index d0db0e13b..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css +++ /dev/null @@ -1,200 +0,0 @@ -/* Credit to https://gist.github.com/wataru420/2048287 */ -.highlight { - /* Comment */ - /* Error */ - /* Keyword */ - /* Operator */ - /* Comment.Multiline */ - /* Comment.Preproc */ - /* Comment.Single */ - /* Comment.Special */ - /* Generic.Deleted */ - /* Generic.Deleted.Specific */ - /* Generic.Emph */ - /* Generic.Error */ - /* Generic.Heading */ - /* Generic.Inserted */ - /* Generic.Inserted.Specific */ - /* Generic.Output */ - /* Generic.Prompt */ - /* Generic.Strong */ - /* Generic.Subheading */ - /* Generic.Traceback */ - /* Keyword.Constant */ - /* Keyword.Declaration */ - /* Keyword.Pseudo */ - /* Keyword.Reserved */ - /* Keyword.Type */ - /* Literal.Number */ - /* Literal.String */ - /* Name.Attribute */ - /* Name.Builtin */ - /* Name.Class */ - /* Name.Constant */ - /* Name.Entity */ - /* Name.Exception */ - /* Name.Function */ - /* Name.Namespace */ - /* Name.Tag */ - /* Name.Variable */ - /* Operator.Word */ - /* Text.Whitespace */ - /* Literal.Number.Float */ - /* Literal.Number.Hex */ - /* Literal.Number.Integer */ - /* Literal.Number.Oct */ - /* Literal.String.Backtick */ - /* Literal.String.Char */ - /* Literal.String.Doc */ - /* Literal.String.Double */ - /* Literal.String.Escape */ - /* Literal.String.Heredoc */ - /* Literal.String.Interpol */ - /* Literal.String.Other */ - /* Literal.String.Regex */ - /* Literal.String.Single */ - /* Literal.String.Symbol */ - /* Name.Builtin.Pseudo */ - /* Name.Variable.Class */ - /* Name.Variable.Global */ - /* Name.Variable.Instance */ - /* Literal.Number.Integer.Long */ } - .highlight .c { - color: #999988; - font-style: italic; } - .highlight .err { - color: #a61717; - background-color: #e3d2d2; } - .highlight .k { - color: #000000; - font-weight: bold; } - .highlight .o { - color: #000000; - font-weight: bold; } - .highlight .cm { - color: #999988; - font-style: italic; } - .highlight .cp { - color: #999999; - font-weight: bold; } - .highlight .c1 { - color: #999988; - font-style: italic; } - .highlight .cs { - color: #999999; - font-weight: bold; - font-style: italic; } - .highlight .gd { - color: #000000; - background-color: #ffdddd; } - .highlight .gd .x { - color: #000000; - background-color: #ffaaaa; } - .highlight .ge { - color: #000000; - font-style: italic; } - .highlight .gr { - color: #aa0000; } - .highlight .gh { - color: #999999; } - .highlight .gi { - color: #000000; - background-color: #ddffdd; } - .highlight .gi .x { - color: #000000; - background-color: #aaffaa; } - .highlight .go { - color: #888888; } - .highlight .gp { - color: #555555; } - .highlight .gs { - font-weight: bold; } - .highlight .gu { - color: #aaaaaa; } - .highlight .gt { - color: #aa0000; } - .highlight .kc { - color: #000000; - font-weight: bold; } - .highlight .kd { - color: #000000; - font-weight: bold; } - .highlight .kp { - color: #000000; - font-weight: bold; } - .highlight .kr { - color: #000000; - font-weight: bold; } - .highlight .kt { - color: #445588; } - .highlight .m { - color: #009999; } - .highlight .s { - color: #d14; } - .highlight .na { - color: #008080; } - .highlight .nb { - color: #0086B3; } - .highlight .nc { - color: #445588; - font-weight: bold; } - .highlight .no { - color: #008080; } - .highlight .ni { - color: #800080; } - .highlight .ne { - color: #990000; - font-weight: bold; } - .highlight .nf { - color: #990000; } - .highlight .nn { - color: #555555; } - .highlight .nt { - color: #000080; } - .highlight .nv { - color: #008080; } - .highlight .ow { - color: #000000; - font-weight: bold; } - .highlight .w { - color: #bbbbbb; } - .highlight .mf { - color: #009999; } - .highlight .mh { - color: #009999; } - .highlight .mi { - color: #009999; } - .highlight .mo { - color: #009999; } - .highlight .sb { - color: #d14; } - .highlight .sc { - color: #d14; } - .highlight .sd { - color: #d14; } - .highlight .s2 { - color: #d14; } - .highlight .se { - color: #d14; } - .highlight .sh { - color: #d14; } - .highlight .si { - color: #d14; } - .highlight .sx { - color: #d14; } - .highlight .sr { - color: #009926; } - .highlight .s1 { - color: #d14; } - .highlight .ss { - color: #990073; } - .highlight .bp { - color: #999999; } - .highlight .vc { - color: #008080; } - .highlight .vg { - color: #008080; } - .highlight .vi { - color: #008080; } - .highlight .il { - color: #009999; } diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css deleted file mode 100644 index d62828260..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css +++ /dev/null @@ -1,337 +0,0 @@ -html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td { - background: transparent; - border: 0; - margin: 0; - outline: 0; - padding: 0; - vertical-align: baseline; } - -body { - background-color: #f2f2f2; - font-family: Helvetica, freesans, Arial, sans-serif; - font-size: 14px; - -webkit-font-smoothing: subpixel-antialiased; - word-wrap: break-word; } - -h1, h2, h3 { - margin-top: 0.8em; - margin-bottom: 0.3em; - font-weight: 100; - color: black; } - -h1 { - font-size: 2.5em; } - -h2 { - font-size: 2em; - border-bottom: 1px solid #e2e2e2; } - -h4 { - font-size: 13px; - line-height: 1.5; - margin-top: 21px; } - -h5 { - font-size: 1.1em; } - -h6 { - font-size: 1.1em; - color: #777; } - -.section-name { - color: gray; - display: block; - font-family: Helvetica; - font-size: 22px; - font-weight: 100; - margin-bottom: 15px; } - -pre, code { - font: 0.95em Menlo, monospace; - color: #777; - word-wrap: normal; } - -p code, li code { - background-color: #eee; - padding: 2px 4px; - border-radius: 4px; } - -a { - color: #0088cc; - text-decoration: none; } - -ul { - padding-left: 15px; } - -li { - line-height: 1.8em; } - -img { - max-width: 100%; } - -blockquote { - margin-left: 0; - padding: 0 10px; - border-left: 4px solid #ccc; } - -.content-wrapper { - margin: 0 auto; - width: 980px; } - -header { - font-size: 0.85em; - line-height: 26px; - background-color: #414141; - position: fixed; - width: 100%; - z-index: 1; } - header img { - padding-right: 6px; - vertical-align: -4px; - height: 16px; } - header a { - color: #fff; } - header p { - float: left; - color: #999; } - header .header-right { - float: right; - margin-left: 16px; } - -#breadcrumbs { - background-color: #f2f2f2; - height: 27px; - padding-top: 17px; - position: fixed; - width: 100%; - z-index: 1; - margin-top: 26px; } - #breadcrumbs #carat { - height: 10px; - margin: 0 5px; } - -.sidebar { - background-color: #f9f9f9; - border: 1px solid #e2e2e2; - overflow-y: auto; - overflow-x: hidden; - position: fixed; - top: 70px; - bottom: 0; - width: 230px; - word-wrap: normal; } - -.nav-groups { - list-style-type: none; - background: #fff; - padding-left: 0; } - -.nav-group-name { - border-bottom: 1px solid #e2e2e2; - font-size: 1.1em; - font-weight: 100; - padding: 15px 0 15px 20px; } - .nav-group-name > a { - color: #333; } - -.nav-group-tasks { - margin-top: 5px; } - -.nav-group-task { - font-size: 0.9em; - list-style-type: none; - white-space: nowrap; } - .nav-group-task a { - color: #888; } - -.main-content { - background-color: #fff; - border: 1px solid #e2e2e2; - margin-left: 246px; - position: absolute; - overflow: hidden; - padding-bottom: 60px; - top: 70px; - width: 734px; } - .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote { - margin-bottom: 1em; } - .main-content p { - line-height: 1.8em; } - .main-content section .section:first-child { - margin-top: 0; - padding-top: 0; } - .main-content section .task-group-section .task-group:first-of-type { - padding-top: 10px; } - .main-content section .task-group-section .task-group:first-of-type .section-name { - padding-top: 15px; } - .main-content section .heading:before { - content: ""; - display: block; - padding-top: 70px; - margin: -70px 0 0; } - -.section { - padding: 0 25px; } - -.highlight { - background-color: #eee; - padding: 10px 12px; - border: 1px solid #e2e2e2; - border-radius: 4px; - overflow-x: auto; } - -.declaration .highlight { - overflow-x: initial; - padding: 0 40px 40px 0; - margin-bottom: -25px; - background-color: transparent; - border: none; } - -.section-name { - margin: 0; - margin-left: 18px; } - -.task-group-section { - padding-left: 6px; - border-top: 1px solid #e2e2e2; } - -.task-group { - padding-top: 0px; } - -.task-name-container a[name]:before { - content: ""; - display: block; - padding-top: 70px; - margin: -70px 0 0; } - -.item { - padding-top: 8px; - width: 100%; - list-style-type: none; } - .item a[name]:before { - content: ""; - display: block; - padding-top: 70px; - margin: -70px 0 0; } - .item code { - background-color: transparent; - padding: 0; } - .item .token { - padding-left: 3px; - margin-left: 15px; - font-size: 11.9px; } - .item .declaration-note { - font-size: .85em; - color: gray; - font-style: italic; } - -.pointer-container { - border-bottom: 1px solid #e2e2e2; - left: -23px; - padding-bottom: 13px; - position: relative; - width: 110%; } - -.pointer { - background: #f9f9f9; - border-left: 1px solid #e2e2e2; - border-top: 1px solid #e2e2e2; - height: 12px; - left: 21px; - top: -7px; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - position: absolute; - width: 12px; } - -.height-container { - display: none; - left: -25px; - padding: 0 25px; - position: relative; - width: 100%; - overflow: hidden; } - .height-container .section { - background: #f9f9f9; - border-bottom: 1px solid #e2e2e2; - left: -25px; - position: relative; - width: 100%; - padding-top: 10px; - padding-bottom: 5px; } - -.aside, .language { - padding: 6px 12px; - margin: 12px 0; - border-left: 5px solid #dddddd; - overflow-y: hidden; } - .aside .aside-title, .language .aside-title { - font-size: 9px; - letter-spacing: 2px; - text-transform: uppercase; - padding-bottom: 0; - margin: 0; - color: #aaa; - -webkit-user-select: none; } - .aside p:last-child, .language p:last-child { - margin-bottom: 0; } - -.language { - border-left: 5px solid #cde9f4; } - .language .aside-title { - color: #4b8afb; } - -.aside-warning { - border-left: 5px solid #ff6666; } - .aside-warning .aside-title { - color: #ff0000; } - -.graybox { - border-collapse: collapse; - width: 100%; } - .graybox p { - margin: 0; - word-break: break-word; - min-width: 50px; } - .graybox td { - border: 1px solid #e2e2e2; - padding: 5px 25px 5px 10px; - vertical-align: middle; } - .graybox tr td:first-of-type { - text-align: right; - padding: 7px; - vertical-align: top; - word-break: normal; - width: 40px; } - -.slightly-smaller { - font-size: 0.9em; } - -#footer { - position: absolute; - bottom: 10px; - margin-left: 25px; } - #footer p { - margin: 0; - color: #aaa; - font-size: 0.8em; } - -html.dash header, html.dash #breadcrumbs, html.dash .sidebar { - display: none; } -html.dash .main-content { - width: 980px; - margin-left: 0; - border: none; - width: 100%; - top: 0; - padding-bottom: 0; } -html.dash .height-container { - display: block; } -html.dash .item .token { - margin-left: 0; } -html.dash .content-wrapper { - width: auto; } -html.dash #footer { - position: static; } diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/carat.png b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/carat.png deleted file mode 100755 index 29d2f7fd4..000000000 Binary files a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/carat.png and /dev/null differ diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/dash.png b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/dash.png deleted file mode 100755 index 6f694c7a0..000000000 Binary files a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/dash.png and /dev/null differ diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/gh.png b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/gh.png deleted file mode 100755 index 628da97c7..000000000 Binary files a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/img/gh.png and /dev/null differ diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/index.html b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/index.html deleted file mode 100644 index 85ab76e26..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/index.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - Reference - - - - - - - - - -
-
-

Docs (100% documented)

-
-
-
- -
-
- -
-
-
- -

iOS Setup guide

- -
    -
  • Clone https://github.com/SourcePointUSA/ios-cmp-app repository to an arbitrary directory on your system. -Open your existing iOS app in xcode -Make sure you do NOT have the SourcePoint_iOS_SDK project open in xcode and drag SourcePoint_iOS_SDK/SourcePoint_iOS_SDK.xcodeproj file to xcode’s navigation panel on the left, directly under the root item of your project. screen shot 2018-11-01 at 10 06 25 am

  • -
  • Change the active scheme to SourcePoint_iOS_SDK on the top bar and build the library from Product -> Build (cmd + B). screen shot 2018-11-01 at 11 33 04 am

  • -
  • Select the project (root item) on the left navigation panel in xcode and select the target you want to add the CMP library to under the TARGETS list. Expand SourcePoint_iOS_SDK.xcodeproj/SourcePoint_iOS_SDK/Products in the navigation panel and drag Consent_String_SDK_Swift.framewrok to the list of “Embedded Binaries” screen shot 2018-11-01 at 11 35 06 am

  • -
  • Import SourcePoint_iOS_SDK module in your AppDelegate.swift to test the library can be imported successfully -Switch back the active schema to your own project and run the app and you should be all set

  • -
-

How to use the ConsentWebView widget

- -
    -
  • Open your project’s info.plist file and make sure you have App Transport Security Settings/Allow Arbitrary Loads set to YES screen shot 2018-11-01 at 11 36 50 am

  • -
  • Instantiate a ConsentWebView object in your main ViewController, set configuration variables and a onInteractionComplete callback and add the ConsentWebView to your ViewController as a subview:

  • -
-
import UIKit
-import SourcePoint_iOS_SDK
-
-
-class ViewController: UIViewController {
-    var consentWebView: ConsentWebView!
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        consentWebView = ConsentWebView(
-            // required, must be set first used to find account
-            accountId: 22,
-            // required, must be set second used to find scenario
-            siteName: "app.ios.cmp"
-        )
-
-        // optional, used for logging purposes for which page of the app the consent lib was
-        // rendered on
-        consentWebView.page = "main"
-
-        // optional, used for running stage campaigns
-        consentWebView.isStage = false
-
-        // optional, used for running against our stage endpoints
-        consentWebView.isInternalStage = true
-
-        // optional, should not ever be needed provide a custom url for the messaging page
-        // (overrides internal stage)
-        consentWebView.inAppMessagingPageUrl = nil
-
-        // optional, should not ever be needed provide a custom domain for mms (overrides
-        // internal stage)
-        consentWebView.mmsDomain = nil
-
-        // optional, should not ever be needed provide a custom domain for cmp (overrides
-        // internal stage)
-        consentWebView.cmpDomain = nil
-
-        // optional, sets debug level defaults to OFF
-        consentWebView.debugLevel = ConsentWebView.DebugLevel.OFF
-
-        // optional, callback triggered when message data is loaded when called message data
-        // will be available as String at cbw.msgJSON
-        consentWebView.onReceiveMessageData = { (cbw: ConsentWebView) in
-            print("msgJSON from backend", cbw.msgJSON as Any)
-        }
-
-        // optional, callback triggered when message choice is selected when called choice
-        // type will be available as Integer at cbw.choiceType
-        consentWebView.onMessageChoiceSelect = { cbw in
-            print("Choice type selected by user", cbw.choiceType as Any)
-        }
-
-        // optional, callback triggered when consent data is captured when called
-        // euconsent will be available as String at cLib.euconsent and under
-        // PreferenceManager.getDefaultSharedPreferences(activity).getString(EU_CONSENT_KEY, null);
-        // consentUUID will be available as String at cLib.consentUUID and under
-        // PreferenceManager.getDefaultSharedPreferences(activity).getString(CONSENT_UUID_KEY null);
-        consentWebView.onInteractionComplete = { (cbw: ConsentWebView) in
-            print(
-                "\neu consent prop",
-                cbw.euconsent as Any,
-                "\nconsent uuid prop",
-                cbw.consentUUID as Any,
-                "\neu consent in storage",
-                UserDefaults.standard.string(forKey: ConsentWebView.EU_CONSENT_KEY) as Any,
-                "\nconsent uuid in storage",
-                UserDefaults.standard.string(forKey: ConsentWebView.CONSENT_UUID_KEY) as Any,
-                "\ncustom vendor consent",
-                cbw.getVendorConsents(["5bc76807196d3c5730cbab05", "5bc768d8196d3c5730cbab06"]),
-                "\nIABConsent_ConsentString in storage",
-                UserDefaults.standard.string(forKey: ConsentWebView.IAB_CONSENT_CONSENT_STRING) as Any,
-                "\nIABConsent_ParsedPurposeConsents in storage",
-                UserDefaults.standard.string(forKey: ConsentWebView.IAB_CONSENT_PARSED_PURPOSE_CONSENTS) as Any,
-                "\nIABConsent_ParsedVendorConsents in storage",
-                UserDefaults.standard.string(forKey: ConsentWebView.IAB_CONSENT_PARSED_VENDOR_CONSENTS) as Any
-            )
-        }
-
-        view.backgroundColor = UIColor.gray
-
-        view.addSubview(consentWebView.view)
-
-        // IABConsent_CMPPresent is set immediately after loading the ConsentWebView
-        print(
-            "IABConsent_CMPPresent in storage",
-            UserDefaults.standard.string(forKey: ConsentWebView.IAB_CONSENT_CMP_PRESENT) as Any,
-            "IABConsent_SubjectToGDPR in storage",
-            UserDefaults.standard.string(forKey: ConsentWebView.IAB_CONSENT_SUBJECT_TO_GDPR) as Any
-        )
-    }
-}
-
-
-

How to build the and export the framework as a binary [untested]

- -
    -
  • On the top left corner in Xcode select SourcePoint_iOS_SDK as the active scheme and select Generic iOS Device as the target device.
  • -
  • Clean and then build the project under Product menu.
  • -
  • Under the Products branch in Project Navigator on the left right click on SourcePoint_iOS_SDK.framework and select Show in Finder, it should point you to the location of a SourcePoint_iOS_SDK.framework file, that’s you compiled framework you can import to other projects.
  • -
-

Complete Docs

- -

For the complete docs open the ./SourcePoint_iOS_SDK/docs/index.html in the browser.

- -
-
- -
-
- - - diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js deleted file mode 100755 index 3965b5fb6..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js +++ /dev/null @@ -1,46 +0,0 @@ -window.jazzy = {'docset': false} -if (typeof window.dash != 'undefined') { - document.documentElement.className += ' dash' - window.jazzy.docset = true -} -if (navigator.userAgent.match(/xcode/i)) { - document.documentElement.className += ' xcode' - window.jazzy.docset = true -} - -// On doc load, toggle the URL hash discussion if present -$(document).ready(function() { - if (!window.jazzy.docset) { - var linkToHash = $('a[href="' + window.location.hash +'"]'); - linkToHash.trigger("click"); - } -}); - -// On token click, toggle its discussion and animate token.marginLeft -$(".token").click(function(event) { - if (window.jazzy.docset) { - return; - } - var link = $(this); - var animationDuration = 300; - var tokenOffset = "15px"; - var original = link.css('marginLeft') == tokenOffset; - link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration); - $content = link.parent().parent().next(); - $content.slideToggle(animationDuration); - - // Keeps the document from jumping to the hash. - var href = $(this).attr('href'); - if (history.pushState) { - history.pushState({}, '', href); - } else { - location.hash = href; - } - event.preventDefault(); -}); - -// Dumb down quotes within code blocks that delimit strings instead of quotations -// https://github.com/realm/jazzy/issues/714 -$("code q").replaceWith(function () { - return ["\"", $(this).contents(), "\""]; -}); diff --git a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js b/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js deleted file mode 100755 index ab28a2472..000000000 --- a/SourcePoint_iOS_SDK/docs/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("